Abstract:
Embodiments of the present invention include a method and system for verifying intended contents of an electronic message comprising: accessing an electronic message destined for a recipient comprising a link to an intended data source. The method further includes accessing the intended data source and computing a first message digest value associated with the intended data source. Additionally, the method includes sending the electronic message and the first message digest value to the recipient. The recipient side may check the message digest value against a recently generated value and alert the recipient of any digest mismatch that represents a recent change in the intended data source.

Description:
TECHNICAL FIELD 
     The field of the invention relates to electronic communications. More specifically, embodiments of the present invention relate to verifying intended contents of an electronic message. 
     BACKGROUND ART 
     Computer users, in their daily course of activities, send electronic messages containing URL links to their friends, family and coworkers involving items of personal interest or work related subject matter. For instance, a user may send a particular URL link to someone they think might enjoy it via an email, instant message, or any other electronic messaging system. Furthermore, the URL link may contain data content such as a word document, a PDF document, a gif image or plain text. 
     Consider the following case when the contents of an intended URL link change after the message containing the URL has been sent. For example, suppose one co-worker sends a second co-worker an email containing a URL link pointing to an image that contains a joke that the sender finds funny. After the message has been sent, the contents of the pointed URL are modified by the site owner with inappropriate contents. When the receiver opens the email and clicks on the URL link, he/she finds the new contents offensive. There is a possibility that the relationship between the co-workers will be compromised. More damaging would be if the sender had sent the email to a distribution list, thereby offending many individuals inadvertently. 
     DISCLOSURE OF THE INVENTION 
     A system and method for verifying the intended contents of an electronic message would be an improvement over the art. Accordingly a system and method for verifying intended contents of an electronic message are disclosed. Embodiments of the present invention include a method for verifying intended contents of an electronic message comprising accessing an electronic message destined for a recipient comprising a link to an intended data source. The method further includes accessing the intended data source and computing digest value, e.g., a first checksum value, associated with the intended data source. Additionally, the method includes sending the electronic message and the digest value to the recipient. 
     Additional embodiments of the present invention include the recipient receiving the electronic message and accessing the digest value associated with the intended data source. The method further includes accessing the intended data source and computing a second digest value, e.g., a checksum, associated with the intended data source. The method further includes comparing the original digest value and the second digest value and provided they do not match, the method further comprises alerting the recipient that the intended data source has changed since the original digest value was calculated. Alternatively, if the digests match, the recipient is unaware of the activity herein described as it is transparent in the matching digest case. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other objects and advantages of the present invention will be more readily appreciated from the following detailed description when read in conjunction with the accompanying drawings, wherein 
         FIG. 1  is a block diagram of an exemplary computer system in accordance with embodiments of the present invention. 
         FIG. 2  is a data flow diagram of an exemplary electronic messaging environment wherein an electronic message comprises a link to an intended data source in accordance with embodiments of the present invention. 
         FIG. 3  is a block diagram of an exemplary electronic messaging system wherein checksum values are used to verify intended contents of an electronic message in accordance with embodiments of the present invention. 
         FIG. 4  is an illustration of an exemplary system for verifying intended contents of an electronic message in accordance with embodiments of the present invention. 
         FIG. 5  is a flow diagram of an exemplary computer implemented method for sending an electronic message in accordance with embodiments of the present invention. 
         FIG. 6  is a flow diagram of an exemplary computer implemented method for receiving an electronic message in accordance with embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention. 
     Notation and Nomenclature 
     Some portions of the detailed descriptions that follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, bytes, values, elements, symbols, characters, terms, numbers, or the like. 
     It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “retrieving,” “accessing,” “verifying,” “comparing,” “sending,” “receiving,” “entering”, “computing” or the like, refer to the action and processes (e.g., process  500  and  600 ) of a computer or computerized server system or similar intelligent electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     Referring now to  FIG. 1 , a block diagram of exemplary computer system  12  is shown. It is appreciated that computer system  12  of  FIG. 1  described herein illustrates an exemplary configuration of an operational platform upon which embodiments of the present invention can be implemented. Nevertheless, other computer systems with differing configurations can also be used in place of computer system  12  within the scope of the present invention. For example, computer system  12  could be any electronic computing scheme, e.g., a server system, a personal computer or an embedded computer system. 
     Computer system  12  includes an address/data bus  10  for communicating information, a processor  1  (e.g., a central processing unit) coupled with bus  10  for processing information and instructions, a cache  12  coupled to bus  10  for temporarily storing data, a volatile memory unit  2  (e.g., random access memory, static RAM, dynamic RAM, etc.) coupled with bus  10  for storing information and instructions for processor  1  and a non-volatile memory unit  3  (e.g., read only memory, programmable ROM, flash memory, EPROM, EEPROM, etc.) coupled with bus  10  for storing static information and instructions for processor  1 . Computer system  12  may also contain an optional display device  5  coupled to bus  10  for displaying information to the computer user. Moreover, computer system  12  also includes a data storage device  4  (e.g., disk drive) for storing information and instructions. 
     Also included in computer system  12  of  FIG. 1  is an optional alphanumeric input device  6 . Device  6  can communicate information and command selections to processor  1 . Computer system  12  also includes an optional cursor control or directing device  7  coupled to bus  10  for communicating user input information and command selections to processor  1 . Computer system  12  also includes signal communication interface  8 , which is also coupled to bus  10 , and can be a serial port. 
     A System and Method for Verifying Intended Contents of an Electronic Message 
     Embodiments of the present invention include a computer implemented method for generating a message digest for electronic messages comprising links to an intended data source. In one embodiment of the invention, the electronic message is an instant message or an electronic mail message, but it is appreciated that the electronic message could be any form of an electronic notification that is sent between a sender and a receiver, or multiple receivers, such as a multicast electronic message to a group of members. In one embodiment of the invention, the message digest comprises a checksum value that is computed based on the contents of the intended data source. The message digest is sent along with the electronic message when it is sent to the recipient(s), e.g., sent within the message or associated with the message. Upon receiving the message or upon the message being selected for reading, on the receiver end, the intended data source is accessed and a second checksum value is calculated based on the current contents of the intended data source. If the checksum values do not match, the recipient is warned that the contents of the intended data source may have changed since the message was sent. 
       FIG. 2  is a data flow diagram of an exemplary electronic messaging environment  200  wherein an electronic message comprises a link to an intended data source in accordance with embodiments of the present invention. In this embodiment of the invention, the sender  201  creates an electronic message  202  that comprises a link  203  to an intended data source  204 . The link, in one embodiment of the invention may be a URL pointing to a web page on the Internet or an Intranet site. The recipient  205  receives and typically stores the electronic message  202  comprising the link  203  to the intended data source  204 . This form of linking to an extended site  204  is very popular because it reduces the size of the message  202  because the subject matter of the link  203  is already incorporated into the message  202  by reference. 
       FIG. 3  is a block diagram of an exemplary electronic messaging system  300  wherein content digests, e.g., checksum values, are used to verify intended contents of an electronic message in accordance with embodiments of the present invention. On the sender side,  360 , a sender composes an electronic message  202  addressed to a recipient  205 . The electronic message  202  comprises a link  203  to an intended data source  204  that comprises contents  345 . In one embodiment of the invention, the link  203  is a URL and the intended data source  204  is a web page on the Internet. The content could be any information capable of being represented in a web page or Internet based format. For example, the contents  345  could be a picture or document posted on a particular web page on the Internet. Before the electronic message is sent to the recipient  205 , a first checksum value  340  is calculated based, e.g., at the sender side, on the contents  345  of the intended data source  204 . The first checksum value is then sent along with the electronic message  202  to the recipient  205 . The checksum value may be embedded inside the message  202 . In one embodiment of the invention, the recipient  202  may be a group of people, for example, members of a conversation group that receives a multicast message. 
     Upon receiving the electronic message  202 , or upon a selection to access the message  202  for reading, on the recipient side  365 , the intended data source  204  is accessed and a second checksum value  350  is computed based on the contents  399  of the intended data source  204 . If the intended data source  204  were modified after the electronic message  202  was sent from the sender side  360 , a different checksum value will be computed. As a result, the recipient will be notified that the contents  345  of the intended data source were modified since the electronic message  202  was sent. The recipient then has the option of blocking the link contents  345 . The process described herein is transparent to the recipient upon a checksum match. In the case of a match, the contents  345  match contents  399 . On a mismatch, contents  399  do not match contents  345 . 
       FIG. 4  is an illustration of an exemplary system for verifying intended contents of an electronic message in accordance with embodiments of the present invention. In this embodiment of the invention, on the sender side  360 , there is a message digest engine  415  that generates a message digest comprising a first checksum value  340  based on the contents  345  of the intended data source  204  that link  203  points to. A messaging application  410  is used to generate and send electronic message  202 . The electronic message  202  is sent along with the message digest created on the sender side  360  comprising a first checksum value  340 . The electronic message also comprises link  203  that points to the intended data source  204 . 
     On the recipient side  365 , a messaging application  420  receives the electronic message  202 . In one embodiment of the invention, a message digest engine  425  examines the electronic message  202  for any links that point to an intended data source. In another embodiment of the invention, the messaging application is notified that the electronic message  202  comprises a link  203  by examining the first checksum value  340 . Once the link  203  is identified, the contents  399  of the intended data source  204  are accessed. In one embodiment of the invention, the contents  345  are downloaded in the background when the electronic message is received by the messaging application  420 . In another embodiment of the invention, the contents are accessed when the recipient clicks on link  203 . In the case of a match, the contents  345  match contents  399 . On a mismatch, contents  399  do not match contents  345 . 
     Once the contents  399  are accessed, a second checksum value  350  is computed based on the contents  399  of the intended data source  204 . If the first checksum value  340  and the second checksum value  350  do not match, it can be determined that the contents  345  of the intended data source  204  have been modified since the electronic message  202  was sent and therefore contents  399  do not match contents  345 . If the first checksum value  340  and the second checksum value  350  match, it can be determined that the recipient of the electronic message  202  accessed the correct contents  345  of the intended data source  204  and that contents  399  match contents  345 . In one embodiment of the invention, when the first checksum value  340  and the second checksum value  350  do not match, the recipient is alerted with a warning that the contents  345  may have been modified since the electronic message  202  was sent and may be given an opportunity to avoid the contents  345 . 
       FIG. 5  is a flow diagram of an exemplary computer implemented method  500  for sending an electronic message in accordance with embodiments of the present invention. The first step  502  is accessing an electronic message for a recipient. The next step  504  is determining if the electronic message comprises a pointer (e.g., link) to an intended data source. As stated above, the link may be a URL to a web page on the Internet or could be any other pointer to any data source. Provided the electronic message comprises a pointer to an intended data source, the next step  506  is accessing the intended data source and computing a first checksum value associated with the intended data source. In one embodiment of the invention, the first checksum value is calculated based on the contents of the intended data source. The next step  508  is sending the electronic message and the first checksum value to the recipient. In one embodiment of the invention, a message digest is sent along with the electronic message. In this embodiment of the invention, the checksum value is included in the message digest. The message digest can be sent in the header portion of the electronic message, it can be attached as an attachment to the electronic message, it can be included in the text body of the electronic message or can be included in any one of numerous ways for sending data that are well-known in the art. 
       FIG. 6  is a flow diagram of an exemplary computer implemented method  600  for receiving an electronic message in accordance with embodiments of the present invention. The first step  601  is receiving an electronic message comprising a pointer to an intended data source. The next step  603  is accessing a first checksum value associated with the intended data source. The next step  605  is accessing the intended data source. Alternatively, process  600  may be invoked in response to the recipient selecting the message for reading, at  601 . As stated above, in one embodiment of the invention, step  605 , accessing the intended data source, is performed while the electronic message is being received. In this embodiment of the invention, this step is performed as a background operation. 
     The next step  607  is computing a second checksum value associated with the intended data source. As stated above, in one embodiment of the invention, the second checksum value is computed based on the contents of the intended data source. The next step  609  is comparing the first checksum value and the second checksum value. In step  611 , a match is determined. Provided the first checksum value and the second checksum value do not match, the next step  616  is alerting the recipient that the intended data source may have been modified since the electronic message was sent (e.g., since the first checksum value was calculated). Provided the checksum values match, in step  614 , the recipient is transparently provided access to the intended data source. In one embodiment of the invention, a message digest is generated using MD5, SH, SH1, JAVA, or any other well-known heuristic for computing a message digest that uniquely identifies the data it represents. 
     Embodiments of the present invention include a method for generating a message digest for electronic messages comprising links to an intended data source. The message digest is sent along with the electronic message when it is sent to the recipient(s). Upon receiving the message, on the receiver end, the intended data source is accessed and a second checksum value is calculated based on the contents of the intended data source. If the checksum values do not match, the recipient is warned that the contents of the intended data source may have changed since the message was sent. Embodiments of the present invention allow a recipient to verify that the contents of an intended data source are the same as when the message was sent. 
     The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and it&#39;s practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.