This disclosure relates generally to electronic message systems, and more specifically to verifying the integrity of electronic messages.
Forwarding electronic messages is a common practice used to redistribute information. An originator of an electronic message may include sensitive information, such as personal or financial information, in an electronic message and send the electronic message to an initial recipient. The initial recipient may forward the electronic message to one or more forward recipients. In some instances, the initial recipient may modify the content of the electronic message before forwarding it to the one or more forward recipients. In various situations, it may be desirable to allow an originator of an electronic message to authorize modifications made to an original message.
Techniques are disclosed relating to verifying electronic message integrity. In some embodiments, a computer system may store metadata for a first electronic message subject to redistribution restrictions, including a first signature generated from the first electronic message. In some embodiments, the computer system may, in response to receiving a second electronic message indicated as being related to the first electronic message, compare the first signature to one or more signatures generated from the second electronic message. In some embodiments, the computer system may, based on the comparing, determine whether the second electronic message includes a modified version of content from the first electronic message. In some embodiments, the computer system may return a result indication based on the determination.
This disclosure describes, with reference to
Referring now to
In various embodiments, message server 102 may be configured to transfer electronic messages between various computer systems. In one embodiment, the electronic messages may include emails. This embodiment, however, is provided merely as an example and is not intended to limit the scope of the present disclosure. In other embodiments, for example, the electronic messages may include text messages, instant messages, personal messages, or any other electronic message. In transmitting an electronic message between computer systems, message server 102 may append various items of information to the electronic message, such as a header containing one or more fields. For example, message server 102 may append a header containing fields such as: From, To, CC, BCC, Subject, Date, or any other suitable fields. Additionally, message server 102 may assign a unique identifier, referred to herein as a “message identifier,” to an electronic message in order to uniquely identify it. In one embodiment, for example message server 102 may be implemented using a MICROSOFT EXCHANGE™ server and, in such embodiment, the message identifier may be referred to as a “Message-ID.” In some embodiments, a message identifier may consist of two portions, for example, a first portion and a second portion separated by an “@” symbol. In such embodiments, the first portion may include a unique identifier assigned by a message server, such as message server 402, to uniquely identify the electronic message. Further, in such embodiments, the second portion may include or otherwise reference the message server that assigned the message identifier.
In various embodiments, originator 106, initial recipient 108, and/or forward recipient 110 may send and/or receive electronic messages via message server 102. In such embodiments, these parties may use a computer system, such as a personal computer or mobile communication device, to send and/or receive electronic messages via the message server 102. For example, in some embodiments, the computer systems may include an electronic message application installed thereon. In such embodiments, the electronic message application may include a mail user agent (MUA), also referred to as an email client, configured to facilitate composing, sending, receiving, or otherwise accessing electronic messages. Further, in some embodiments, the computer system may include a web browser, which may be operable to access a web-based email client. In such embodiments, a user, such as originator 106, of the computer system may use the web-based email client accessed via the web browser to compose, send, receive, or otherwise access electronic messages.
In some embodiments, originator 106 may send an electronic message to initial recipient 108 via message server 102. After receiving the electronic message, initial recipient 108 may then forward the electronic message to one or more forward recipients, such as forward recipient 110. Further, in some embodiments, initial recipient 108 may add, remove, or otherwise modify content contained in the electronic message prior to sending the message to forward recipient 110. In some instances, this process can result in the efficient dissemination of information from the originator 106 to various parties. In some embodiments, however, originator 106 may want to verify that the initial recipient 108 has not modified the content of the electronic message before it is redistributed—that is, originator 106 may wish to verify the integrity of the electronic message before it is sent to forward recipient 110. For example, in one embodiment, the electronic message sent by originator 106 may contain one or more items of sensitive information, such as salary or other financial information. In this example, the initial recipient 108 may modify the content of the electronic message in an attempt to misrepresent the nature of the sensitive information to forward recipient 110. In another embodiment, initial recipient 108 may modify the content of an electronic message in an attempt to take credit for the work of originator 106. For example, in one embodiment, originator 106 and initial recipient 108 may be peers within an organization, both of whom are managed by forward recipient 110. In this example, originator 106 may send an electronic message containing sensitive information, such as an idea for a project, to initial recipient 108 for review. Initial recipient 108 may modify the content of the electronic message and send the modified version of the electronic message to forward recipient 110 in an attempt to take credit for the work of originator 106.
In various embodiments, message server 102 and/or message verification server 104 may implement one or more redistribution policies to verify the integrity of electronic messages. As used herein, the term “redistribution policies” may refer to restrictions on the sending (especially forwarding) of electronic messages with certain content. For example, in one embodiment, a redistribution policy implemented by message server 102 and/or message verification server 104 may restrict the forwarding of electronic messages that include information deemed to be sensitive information based on a set of rules. In various embodiments, originator 106 may send an electronic message, via message server 102, to initial recipient 108. Upon receipt of the electronic message, message server 102 may, as discussed in more detail below with reference to
In some embodiments, initial recipient 108 may then attempt to forward the electronic message, via message server 102, to forward recipient 110. Upon receipt of the forwarded electronic message, message server 102 may determine that the forwarded electronic message is associated with an electronic message subject to redistribution restrictions. In response to this determination, message server 102 may send the forwarded electronic message, or a copy thereof, to message verification server 104. Message verification server 104 may then determine whether the forwarded electronic message includes a modified version of the content from the original electronic message. As discussed in more detail below with reference to
Based on this determination, message verification server 104 may return a result indication. If the two message signatures do match (e.g., are the same), this may indicate that the forwarded electronic message does not include a modified version of content from the original electronic message and the result indication may specify that no redistribution policy has been violated. In some embodiments, the result indication may specify that the forwarded electronic message is to be delivered without restriction based on the determination indicating that no redistribution policy has been violated. If, however, the two message signatures do not match (e.g., are not the same), this may indicate that the forwarded electronic message does include a modified version of content from the original electronic message and the result indication may specify that at least one redistribution policy has been violated. In such embodiments, the result indication may specify that the forwarded electronic message is not to be delivered based on the determination indicating that at least one redistribution policy has been violated.
In some embodiments, in response to a determination that the forwarded electronic message includes a modified version of the original electronic message, message server 102 and/or message verification server 104 may take various actions, such as sending a notification to originator 106 indicating than an attempt has been made to send a modified version of the electronic message. In some embodiments, the notification may include a request for the originator 106 to authorize sending the modified version of the electronic message. Note that, although message server 102 and message verification server 104 are shown separately in
Thus, in various embodiments, system 100 may allow a user, such as originator 106, to send electronic messages containing sensitive information to various parties while still allowing the originator 106 to review and authorize any changes made as the electronic message is redistributed. For example, in some embodiments, the initial recipient 108 may make modifications to the electronic message that the originator finds desirable, such as correcting a typographical error. In such embodiments, the originator 106 may wish to allow the electronic message, along with these modifications, to be forwarded to another party, such as forward recipient 110. In other embodiments, however, the initial recipient 108 may make modifications to the electronic message in order to misrepresent the content of originator 106's original electronic message. For example, consider the situation in which originator 106 and forward recipient 110 are both bidding to purchase a product sold by initial recipient 108. In this example, originator 106's original electronic message may include an offer price for the product. Initial recipient 108 may then attempt to modify the offer price included in the electronic message and forward the modified electronic message to forward recipient 110, in an effort to persuade forward recipient 110 to increase its own bid. In the event that initial recipient 108 is able to send this modified version of the electronic message, originator 106 may both lose out on the bid and assist initial recipient 108 in obtaining a higher purchase price. In various embodiments, however, system 100 may be configured to detect the modifications made to the electronic message and provide originator 106 with the opportunity to approve or deny the sending of the modified message.
Turning now to
In
Referring now to
As shown in
Further, message verifier 302 may include signature generator 306. In various embodiments, signature generator 306 may be configured to generate a message signature from one or more electronic messages. Signature generator 306 may generate the message signatures using various techniques. For example, in some embodiments, signature generator 306 may use a hash function, such as SHA-2, to generate message signatures based on the content of the electronic message. In such an embodiment, the message signatures may include a hash value. This described embodiment, however, is provided merely as an example and is not intended to limit the scope of the present disclosure. In other embodiments, for example, signature generator 306 may generate message signatures using a variety of techniques, such as checksums, check digits, fingerprinting algorithms, cryptographic hash functions, keyed hash functions, or by any other suitable technique.
In various embodiments, the message signatures generated by signature generator 306 may have various properties desirable for use in determining whether a second electronic message includes a modified version of content from a first electronic message. For example, in some embodiments, the process implemented by signature generator 306 to generate message signatures may be deterministic, such that, when given a particular input, such as a given electronic message, signature generator 306 will produce the same message signature as an output. This property may be desirable, for example, for determining that a forwarded message does not include a modified version of content from an original message. In such embodiments, for example, signature generator 306 will generate the same message signature for an unmodified, forwarded version of an electronic message as for the original electronic message. Message verifier 302 may then determine that the forwarded version of the electronic message has not been modified based on the two message signatures comparing equally.
Further, in various embodiments, signature generator 306 may generate message signatures utilizing a technique that produces a low likelihood of collisions, such that, when given two different inputs (e.g., an original electronic message and a modified electronic message), it will be unlikely that signature generator 306 generates two identical message signatures. This property may be desirable, for example, for determining that a forwarded message does include a modified version of content from an original message. In such embodiments, for example, signature generator 306 will generate a message signature for a modified message that is different from a message signature for the original message. Message verifier 302 may then determine that the forwarded message has been modified based on the two message signatures not matching (e.g., not being equal to one another).
In some embodiments, when a user, such as initial recipient 108 in
Further, as shown in
Message verifier 302 may also include message signature comparator 310. In various embodiments, message signature comparator 310 may be configured to compare a message signature for a forwarded electronic message with the message signature for an original version of the electronic message. Message signature comparator 310 may make a message integrity determination based on the result of this comparison. Message verifier 302 may include this message integrity determination in a result indication, for example to message server 202 in
Turning now to
In step 354, a message verification module, such as message verifier 302 of
If the received electronic message does not correspond to a previously-identified electronic message, method 350 proceeds to step 356. In various embodiments, if the received electronic message does not correspond to a previously-identified electronic message, this may indicate that the received electronic message is an original message. This received electronic message, sent, for example, from originator 106 to initial recipient 108 of
In step 358, metadata associated with electronic message 352 is stored. In some embodiments, message verification server 300 may be configured to store metadata for a plurality of electronic message that are identified as being subject to redistribution restrictions, for example, in metadata storage 312 of
If, however, the received electronic message does correspond to a previously-identified electronic message, method 350 proceeds to steps 360-364. In various embodiments, if the received electronic message does correspond to a previously-identified electronic message, this may indicate that electronic message 352 is a forwarded version of an original electronic message that is subject to redistribution restrictions. In step 360, a message signature is generated for electronic message 352. In some embodiments, step 360 may be performed by signature generator 306 of
In step 362, a previously-generated message signature is retrieved, for example, by signature retriever 308 of
In step 364, method 350 compares the message signature generated in step 360 against the previously-generated message signature retrieved in step 362. In one embodiment, for example, step 364 may compare a message signature generated in step 360 from a forwarded version of an original electronic message against a previously-generated message signature for the original message retrieved in step 362. In some embodiments, step 364 may be performed by message signature comparator 310 of
As noted above, if the message signature generated from the forwarded electronic message and the previously-generated message signature generated from the original electronic message do not compare equally, this may indicate that the forwarded electronic message includes a modified version of content from the original electronic message. In this embodiment, the message integrity determination 366 may indicate that at least one redistribution policy has been violated. If, however, the message signature generated from the forwarded electronic message and the previously-generated message signature generated from the original electronic message do match, this may indicate that the forwarded electronic message does not include a modified version of content from the original electronic message. In such an embodiment, the message integrity determination 366 may indicate that no redistribution policy has been violated. In various embodiments, message verifier 302 may include message integrity determination 366 in a result indication sent to a message server, such as message server 202 in
Turning now to
In various embodiments, message server 402 and/or message verification server 404 may implement one or more redistribution policies to verify the integrity of electronic messages. For example, originator 406 may send an electronic message via message server 402 to initial recipient 408. In some embodiments, the electronic message may include information, such as personal or financial information, that is deemed to be sensitive information based on a set of rules.
Message server 402 may be configured to receive the electronic message, for example, via incoming message interface 402A. Upon receipt of the electronic message, message server 402 may determine, for example using filter 402B, that the electronic message is subject to redistribution restrictions. In some embodiments, filter 402B may include one or more software modules installed on message server 402 that are configured to detect electronic messages that are subject to redistribution restrictions. For example, in some embodiments, originator 406, prior to sending the electronic message, may provide a redistribution restriction indicator with the electronic message. In such embodiments, filter 402B may determine that the electronic message is subject to redistribution restrictions based on an identification of the redistribution restriction indicator provided by the originator 406. In some embodiments, however, instead of being based on an indicator provided by originator 406, filter 402B may determine that the electronic message is subject to redistribution restrictions based on detecting one or more items of information included in the electronic message. For example, in such embodiments, message server 402 may determine that the electronic message is subject to redistribution restrictions in response to parsing the electronic message to detect one or more items of information defined by a set of rules as sensitive information. In some embodiments, various users of message server 402, such as originator 406 and/or an administrator of message server 402, may establish the set of rules to dictate what information is classified as sensitive information. For example, in one embodiment, originator 406 may establish the set of rules to define personal information, such as a Social Security number, as sensitive information. In this described embodiment, filter 402B may parse the electronic message sent by originator 406 and, in response to detecting a numerical sequence in the format of a Social Security number, determine that the electronic message is subject to redistribution restrictions.
Further, in one embodiment, message server 402 may be configured to store various items of information associated with electronic messages that are subject to redistribution restrictions, such as a message identifier, a date and/or time of the electronic message, the sender of the electronic message, etc. In such an embodiment, message server 402 may be configured to compare information associated with an electronic message, such as one or more message identifiers, with the stored information associated with the electronic messages. Based on this comparison, message server 402 may be configured to determine whether an electronic message corresponds to a previously-identified electronic message that is subject to redistribution restrictions.
In some embodiments, one or more users of message server 402 and/or message verification server 404, such as originator 406, may define a list of authorized recipients. For example, in one particular embodiment, originator 406 may specify that a recipient, such as forward recipient 410, is included in a list of authorized recipients. In such an embodiment, message server 402 and or message verification server 404 may, in response to a determination that an electronic message corresponds to a previously-identified electronic message that is subject to redistribution restrictions, determine whether a forward recipient of the electronic message is included in a list of authorized recipients for the originator of that electronic message. For example, in this particular embodiment, message server 402 may determine whether forward recipient 410 is included in the list of authorized recipients for originator 406 and, in response to determining that forward recipient 410 is included in the list of authorized recipients, message server 402 may, in one embodiment, facilitate transfer of the electronic message to forward recipient 410 without further message integrity verification.
In response to a determination that the electronic message is or corresponds to an electronic message subject to redistribution restrictions, message server 402 may, in various embodiments, transfer the electronic message, or a copy thereof, via verification interface 402C to message verification server 404. Note that, in some embodiments, rather than sending the electronic message, message server 402 may send one or more items of metadata associated with the electronic message to message verification server 404.
In various embodiments, message verification server 404 includes message verifier 404A and metadata storage 404B. Message verifier 404A and metadata storage 404B may, in some embodiments, correspond to message verifier 302 and metadata storage 312, respectively, of
Upon receiving the electronic message, message verification server 404 may determine whether the electronic message corresponds to a previously-identified electronic message that is subject to redistribution restrictions. In some embodiments, message verification server 404 may make this determination using restricted-message analyzer 304 of
If restricted-message analyzer 304 does not detect a match between the message identifier(s) in the electronic message and the stored message identifiers, this may indicate that the electronic message is an original electronic message subject to redistribution restrictions. Message verification server 404 may then, as discussed more above with reference to steps 356-358 of
In various embodiments, message verification server 404 may send to message server 402 a result indication. In an embodiment in which there is no match between message identifiers, the result indication may specify that the electronic message is to be delivered without restriction based on a determination that no redistribution policy has been violated. In such an embodiment, message server 402 may then facilitate transfer of the electronic message to the initial recipient 408 via outgoing message interface 402D.
However, if message verifier 404A does detect a match between the message identifier(s) in the electronic message and the stored message identifiers, this may indicate that the electronic message is a forwarded version of a previously-identified, original electronic message that is subject to redistribution restrictions. For example, initial recipient 408 may receive the original electronic message from originator 406 and attempt to send to forward recipient 410 a forwarded version of that original electronic message. In such embodiments, message verification server 404 may, as discussed previously with reference to steps 360-364 of
In the event that the message signatures match, this may indicate that the forwarded version of the original electronic message is or includes an unmodified version of content from the original electronic message. For example, initial recipient 408 may have attempted to forward the original electronic message to forward recipient 410 without modifying the content of the original electronic message. In such embodiments, the result indication may specify that the forwarded version of the electronic message is to be delivered without restriction based on a determination that no redistribution policy has been violated. In the described embodiment, message server 402 may then facilitate transfer of the forwarded electronic message to the forward recipient 410 via outgoing message interface 402D.
If, however, the message signatures do not match, this may indicate that the forwarded version of the original electronic message does include a modified version of content from the original electronic message. For example, initial recipient 408 may have attempted to add, remove, or otherwise modify content contained in the original electronic message and send that modified version to forward recipient 410. In such embodiments, the result indication may specify that the forwarded version of the electronic message violates at least one redistribution policy.
As shown in
Further, in some embodiments, a definition of a policy rule may specify that, when a result indication specifies that at least one redistribution policy has been violated, message server 402 and/or message verification server 404 is to send originator 406 a notification. In some embodiments, the notification may indicate that an attempt has been made to send a modified version of the original electronic message and may include a request the originator 406 to authorize sending the modified version of the original electronic message. Further, in some embodiments, the notification may include various items of information corresponding to the policy violation, such as an identity of the party attempting to forward the electronic message, an identity of the party to whom the electronic message is forwarded, the date and/or time of the attempted forward, the content of the forwarded electronic message, an identification of the modifications made to the original electronic message, etc. In such embodiments, originator 406 may respond to the alert notification, for example using an email client accessed via a computer system, such as a personal computer or mobile communication device.
If, in the described embodiment, the originator 406 sends a response denying the attempt to send the forwarded version of the electronic message, message server 402 may drop or otherwise cause the forwarded version of the electronic message not to be delivered. In some embodiments, message server 402 may additionally send a notification of the event to initial recipient 408 and/or forward recipient 410. If, however, in the described embodiment, the originator 406 sends a response authorizing the sending of the modified version of the original electronic message, message server 402 may facilitate transfer of the forwarded electronic message to the forward recipient 410 via outgoing message interface 402D. For example, in such embodiments, message server 402 and/or message verification server 404 may return a redistribution result permitting the forwarding of the modified version of the electronic message. In embodiments such as those depicted in
In some embodiments, message server 402 and/or message verification server 404 may be configured to store multiple message signatures for a given electronic message. In some embodiments, originator 406 may approve of the modifications made to an electronic message by initial recipient 408 and authorize the modified electronic message to be sent to forward recipient 410. For example, in one embodiment, initial recipient 408 may have corrected a typographical error in the original electronic message and attempted to send the modified electronic message to forward recipient 410. In such embodiment, message verifier 404A may be configured to generate a second message signature corresponding to the modified version of the electronic message and store it, along with an associated message identifier, for use in later message integrity verification. This may facilitate further message integrity verification of the electronic message, for example, in the situation in which forward recipient 410 forwards the electronic message to another party. In some embodiments, storing a second message signature corresponding to the modified version of the electronic message may prevent the originator 406 from being required to authorize the forwarding of approved modifications to the electronic message.
Referring now to
Method 500 then proceeds to step 504, which includes, in response to receiving an indication of a second electronic message that also includes the first message identifier, comparing the first signature to one or more signatures generated from the second electronic message to make a determination whether the second electronic message includes a modified version of content from the first electronic message. In some embodiments, signature retriever 308 may retrieve the first signature generated from the first electronic message. Further, in some embodiments, signature generator 306 may generate one or more signatures from the second electronic message. In various embodiments, message signature comparator may then compare the first signature to the one or more signatures generated from the second electronic message to make a message integrity determination.
Method 500 then proceeds to step 506, which includes returning a result indication based on the determination. If the message signatures do not match, the result indication, such as message integrity determination 366 of
Referring now to
Method 550 then proceeds to step 554, which includes sending, by the computer mail system, the electronic message to a different computer system to have a message integrity check performed. In some embodiments, the computer mail system may send the electronic message to the different computer system in response to a determination that the electronic message is subject to redistribution restrictions. For example, in one embodiment, filter 402B may determine that the electronic message is subject to redistribution restrictions in response to parsing the electronic message to detect one or more items of information defined by a set of rules as sensitive information.
Method 550 then proceeds to step 556, which includes receiving, by the computer mail system from the different computer system, an indication that the electronic message includes a modified version of content in an original message that is, according to information stored by the different computer system, subject to redistribution restrictions. For example, in one embodiment, message verification server 404 may determine that a message signature for the electronic message does not match a previously-generated message signature for an original version of the electronic message. In such an embodiment, message verification server 404 may send a result indication to message server 402 that specifies that the electronic message violates at least one redistribution policy.
Method 550 then proceeds to step 558, which includes, in response to receiving the indication, taking, by the computer mail system, a specified message redistribution action. For example, in one embodiment, the specified message redistribution action may include sending, by message server 402, a notification to originator 406 that indicates that an attempt has been made to send a modified version of an electronic message sent by originator 406.
Turning now to
In
In the depicted embodiment, a message server, such as message server 402, may be configured to receive electronic message 600. In various embodiments, message server 402 may be configured to append various items of information to electronic message 600, such as a header containing one or more fields. In
Upon receipt, message server 402 may determine whether electronic message 600 is subject to redistribution restrictions. In one embodiment, the originator of electronic message 600 may, prior to sending the electronic message, set a redistribution restriction indicator to indicate that electronic message 600 is subject to redistribution restrictions. In such an embodiment, message server 402 may be configured to detect the redistribution restriction indicator provided by the originator. In another embodiment, message server 402 may be configured to determine that electronic message 600 is subject to redistribution restrictions by parsing the electronic message to detect one or more items of information defined by a set of rules as sensitive information. For example, in the depicted embodiment, message server 402 may include, for example in filter 402B, a rule that defines Social Security numbers as an item of sensitive information. In such an embodiment, message server 402 may be configured to parse electronic message 600 and determine that it is subject to redistribution restrictions based on detecting the Social Security number included therein.
In response to a determination that electronic message 600 is subject to redistribution restrictions, message server 402 may transfer the electronic message to a message verification server, such as message verification server 404 of
Message verification server 404 may send to message server 402 a result indication specifying that electronic message 600 is to be delivered without restriction. Message server 402 may facilitate transfer of electronic message 600 to an initial recipient, such as initial recipient 408.
In
Upon receipt, message server 402 may determine whether electronic message 610 is subject to redistribution restrictions. In one embodiment, message server 402 may be configured to detect a redistribution restriction indicator originally provided by originator 406. In another embodiment, message server 402 may be configured to determine that electronic message 610 is subject to redistribution restrictions by parsing the electronic message to detect one or more items of information, such as a Social Security Number, defined by a set of rules as sensitive information.
As discussed above, message server 402 may be configured to append various items of information to electronic messages, such as a header including a field for a message identifier. In various embodiments, message server 402 may append the items of information to the electronic message without removing one or more items of information that were previously-appended to the electronic message. For example,
In one embodiment, as noted above, message server 402 may store information associated with electronic messages subject to redistribution restrictions, such as a message identifier. In such an embodiment, message server 402 may be configured to compare information associated with electronic message 610, such as one or more message identifiers, with stored information associated with electronic messages subject to redistribution restrictions. In the depicted embodiment, message server 402 may determine that one of the message identifiers included in electronic message 610 (123456789@mailserver.example.com) matches a stored message identifier associated with electronic message 600. Based on this determination, message server 402 may determine that electronic message 610 corresponds to electronic message 600, which was previously identified as being subject to redistribution restrictions, and send electronic message 610 to message verification server 404.
Upon receiving electronic message 610, message verification server 404 may, as discussed more above with reference to steps 360-364 of
In response to the result indication, message server 402 may implement one or more policy rules. For example, in the depicted embodiment, a definition of a policy rule may specify that message server 402 is to send originator 406 a notification in response to at least one redistribution policy being violated. In
In various embodiments, the disclosed systems and methods facilitate various improvements to the functionality of electronic messaging systems, such as improving the security and integrity of electronic messages as they are transferred through the system. For example, in various embodiments, the disclosed systems and methods may allow a user to send electronic messages containing sensitive information to various parties, while still allowing the user to review and authorize any changes made as the electronic message is redistributed. Thus, the disclosed systems and methods improve the functioning of the electronic messaging system, at least, by identifying and preventing unauthorized redistribution of electronic messages.
Turning now to
Processor subsystem 720 may include one or more processors or processing units. In various embodiments of computer system 700, multiple instances of processor subsystem 720 may be coupled to interconnect 780. In various embodiments, processor subsystem 720 (or each processor unit within 720) may contain a cache or other form of on-board memory.
System memory 740 is usable to store program instructions executable by processor subsystem 720 to cause system 700 perform various operations described herein. System memory 740 may be implemented using different physical, non-transitory memory media, such as hard disk storage, floppy disk storage, removable disk storage, flash memory, random access memory (RAM-SRAM, EDO RAM, SDRAM, DDR SDRAM, RAMBUS RAM, etc.), read only memory (PROM, EEPROM, etc.), and so on. Memory in computer system 700 is not limited to primary storage such as memory 740. Rather, computer system 700 may also include other forms of storage such as cache memory in processor subsystem 720 and secondary storage on I/O Devices 770 (e.g., a hard drive, storage array, etc.). In some embodiments, these other forms of storage may also store program instructions executable by processor subsystem 720.
I/O interfaces 760 may be any of various types of interfaces configured to couple to and communicate with other devices, according to various embodiments. In one embodiment, I/O interface 760 is a bridge chip (e.g., Southbridge) from a front-side to one or more back-side buses. I/O interfaces 760 may be coupled to one or more I/O devices 770 via one or more corresponding buses or other interfaces. Examples of I/O devices 770 include storage devices (hard drive, optical drive, removable flash drive, storage array, SAN, or their associated controller), network interface devices (e.g., to a local or wide-area network), or other devices (e.g., graphics, user interface devices, etc.). In one embodiment, computer system 700 is coupled to a network via a network interface device 770 (e.g., configured to communicate over WiFi, Bluetooth, Ethernet, etc.).
This specification includes references to various embodiments, to indicate that the present disclosure is not intended to refer to one particular implementation, but rather a range of embodiments that fall within the spirit of the present disclosure, including the appended claims. Particular features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure.
Within this disclosure, different entities (which may variously be referred to as “units,” “circuits,” other components, etc.) may be described or claimed as “configured” to perform one or more tasks or operations. This formulation—[entity] configured to [perform one or more tasks]—is used herein to refer to structure (i.e., something physical, such as an electronic circuit). More specifically, this formulation is used to indicate that this structure is arranged to perform the one or more tasks during operation. A structure can be said to be “configured to” perform some task even if the structure is not currently being operated. A “mobile device configured to generate a transaction token” is intended to cover, for example, a device that performs this function during operation, even if the device in question is not currently being used (e.g., power is not connected to it). Thus, an entity described or recited as “configured to” perform some task refers to something physical, such as a device, circuit, memory storing program instructions executable to implement the task, etc. This phrase is not used herein to refer to something intangible.
The term “configured to” is not intended to mean “configurable to.” An unprogrammed mobile device, for example, would not be considered to be “configured to” perform some specific function, although it may be “configurable to” perform that function. After appropriate programming, the mobile device may then be configured to perform that function.
Reciting in the appended claims that a structure is “configured to” perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112(f) for that claim element. Accordingly, none of the claims in this application as filed are intended to be interpreted as having means-plus-function elements. Should Applicant wish to invoke Section 112(f) during prosecution, it will recite claim elements using the “means for” [performing a function] construct.
As used herein, the term “based on” is used to describe one or more factors that affect a determination. This term does not foreclose the possibility that additional factors may affect the determination. That is, a determination may be solely based on specified factors or based on the specified factors as well as other, unspecified factors. Consider the phrase “determine A based on B.” This phrase specifies that B is a factor is used to determine A or that affects the determination of A. This phrase does not foreclose that the determination of A may also be based on some other factor, such as C. This phrase is also intended to cover an embodiment in which A is determined based solely on B. As used herein, the phrase “based on” is synonymous with the phrase “based at least in part on.”
Although specific embodiments have been described above, these embodiments are not intended to limit the scope of the present disclosure, even where only a single embodiment is described with respect to a particular feature. Examples of features provided in the disclosure are intended to be illustrative rather than restrictive unless stated otherwise. The above description is intended to cover such alternatives, modifications, and equivalents as would be apparent to a person skilled in the art having the benefit of this disclosure.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.