Portable security transaction protocol

Information

  • Patent Grant
  • 8190893
  • Patent Number
    8,190,893
  • Date Filed
    Thursday, July 1, 2004
    22 years ago
  • Date Issued
    Tuesday, May 29, 2012
    14 years ago
Abstract
A technique for providing message authenticity includes accepting transaction information, accepting a first data item used for authenticating an originating user, cryptographically processing the transaction information using only a second data item, wherein the entropy of the first data item is less than the entropy of the second data item, and authenticating the originating user using the first data item. The first data item can be a sequence of digits corresponding to those displayed on an external device, such as, for example, an RSA authorization token, credit card, etc. In general, the first data item will be a short alphanumeric string and the second data item will generally be much larger, e.g., a 128 bit sequence to be used principally for data authentication. According to another aspect of the present invention, consequential evidence of the transaction may be secured to provide after-the-fact evidence of the transaction. This evidence can include a message written to a tamper-resistant log record, the message including the transaction information, the first data item, the second item, and an identifier for the originating user, as well as other information. At a subsequent point, the transaction can be shown to have been sent by the originating user and received by the intended recipient, by consulting the log record. Preferably, the validity of the transaction would be ascertained by an independent, mutually trusted third party.
Description
FIELD OF THE INVENTION

The present invention relates generally to secure computer communication systems, and, more particularly, to methods and systems for providing end-to-end message authenticity and securing consequential evidence of a transaction.


BACKGROUND OF THE INVENTION

End-to-end message authenticity generally includes three components: message authentication to authenticate an originating user of a transaction, message integrity to ensure that the transaction does not change in-transit, and replay protection to protect against replay attacks. Conventionally, end-to-end message authenticity is addressed through Public Key Infrastructure (PKI) technology, or in some cases symmetric key technology. However, various aspects of the PKI render this technology problematic.


One of the main disadvantages of the PKI is that it requires secure storage of private keys by the originating user. If these keys are simply stored in a computer system, the authentication suffices only to link the equipment with the transaction; the authentication suffices only if one protects the computer system from unauthorized access. This may be unacceptable for many applications due to the difficulty of adequately protecting computer systems. An external device such as a floppy disk or IC card might be used to store the private key, but this has proven to be unwieldy and expensive, especially where widespread dissemination is desired. Moreover, the floppy disk has the property that it can be easily copied, so the owner of the floppy cannot be sure if another person had not previously copied the floppy without notice. An IC card or USB token may incorporate copy protection; however, these devices may require installation of system software, drivers, and sometimes hardware, all of which precipitate user resistance.


SUMMARY OF THE INVENTION

According to the methods and systems of the present invention, a technique for providing message authenticity includes accepting transaction or other information, accepting a first data item used for authenticating an originating user, cryptographically processing the transaction information using only a second data item, wherein the entropy used to construct the first data item is less than the entropy used to construct the second data item, and authenticating the originating user using the first data item.


According to an aspect of the invention, the first data item is obtained from an authentication token. In this case, the first data item can include a sequence of digits corresponding to those displayed on an external device, such as, for example, an RSA authorization token, a credit card, etc. Usually, the first data item would be manually input by a user. Typical values for the number of digits corresponding to the first data item are around 5 to 21. In general, the first data item will be a short alphanumeric string and the second data item will generally be much larger, e.g., a 128 bit sequence to be used principally for data authentication.


According to an aspect of the invention, information obtained from the authentication token contributes to the first data item exclusively.


According to another aspect of the invention, the authentication token is a one-way authentication token.


According to another aspect of the invention, the external device is not electronically connected to a computer system.


According to another aspect of the invention, the first data item is inaccessible to an entity authorized to process the transaction.


According to another aspect of the invention, consequential evidence of the transaction is kept. This evidence can include a message written to a tamper-resistant log record, the message including the transaction information, the first data item, the second item, and an identifier for the originating user, as well as other information. At a subsequent point, the transaction can be shown to have been sent by the originating user and received by the intended recipient, by consulting the log record. Preferably, the validity of the transaction would be ascertained by an independent, mutually trusted third party.


These and other aspects, features and advantages of the present invention will become apparent from the following detailed description of preferred embodiments, which is to be read in connection with the accompanying drawings.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a high-level diagram illustrating the Portable Security Transaction Protocol (PSTP);



FIG. 2 is an exemplary activity diagram for the PSTP;



FIG. 3 illustrates an exemplary message layout;



FIG. 4 illustrates an exemplary architecture for providing consequential evidence of a transaction using the PSTP;



FIG. 5 illustrates an exemplary screen display of a value-bearing transaction entry form for securely wiring money using the PSTP;



FIG. 6 illustrates a RSA SecurID token useable to generate a unique number; and



FIG. 7 illustrates the architecture of a RSA SecurID token.





DESCRIPTION OF PREFERRED EMBODIMENTS

Throughout the description and drawings various terms and expressions are used with meanings as per the following definitions.


Asymmetric Cryptography: ASYM(e,K) denotes that public keying material, e, encrypts information, K, for the purpose of providing confidentiality. It is assumed that ASYM combines an encoding method with an asymmetric encryption primitive. The resulting encryption scheme must ensure the integrity of the encrypted information. A specific example of asymmetric cryptography with encoding is RSA Encryption Primitive with Optimal Asymmetric Encryption Padding (RSAES-OAEP). This mechanism ensures both confidentiality, and has the property of cypertext indistinguishability which has been shown to be equivalent to non-malleability (See M. Bellare et al., Relations among Notions of Security for Public-Key Encryption Schemes, International Association of Cryptologic Research, 1998, which is incorporated herein by reference). In this disclosure, the notation RSAESOAEP(e,K) denotes encrypting K with the asymmetric key, e, in accordance with RSAES-OAEP. An example public key is the public key of the application server ea.


Symmetric Cryptography: SYM(k,y) denotes that symmetric key, k, encrypts information, y for the purpose of providing confidentiality. A specific example of symmetric cryptography is Advanced Encryption Standard (AES) in CBC mode using a 128-bit key that was created using 128 bits of key entropy denoted AES(k,y). Other specific example of symmetric cryptography include but are not limited to AES in CBC mode with 192 or 256 bit keys created using 192 or 256 bits of key entropy, respectively; or Triple DES using a 168-bit key.


Message Digest: MD(x) is a deterministic function mapping bit strings of arbitrary length to bit strings of fixed length such that MD is collision-resistant and one-way (non-invertible). A specific example of a message digest algorithm is SHA1 denoted SHA1(x).


Message Integrity. MI(k,z) denotes the keyed message authentication code (message integrity) function, MI, using key, k, applied against data, z. A specific example of a message authentication code function is HMAC, using a 160-bit key which was created with 160 bits of entropy, denoted HMAC(k,z). In this disclosure HMAC denotes the message integrity function specification that uses SHA1 as the underlying message digest algorithm.


Unique nonce: r denotes a unique nonce. r must be completely unique, e.g., unique over time, server reboots, multiple machines, etc. Let ∥ denote the concatenation operation. A specific example of a unique nonce is SHA1(n∥t∥Server 150DN), where n is a unique number generated through a secure pseudo-random number generator (where the generator has the unguessability property); t is the server's current timestamp, and server DN is the server's unique distinguished name found in the server's certificate 611. In this case, the secure pseudo random number generator has a seed of at least 160 bits created with at least 160 bits of entropy. If the server generates multiple nonces with the same value, t, then each nonce must have a different value, n.


Userid: userid denotes a unique username


Tokenfactor: SIV denotes the Secure Identity Vector which is a value supplied by an authentication token. PSTP uses the SIV as one of the authentication factors. A specific example of a SIV is the current value displayed on an RSA SecurID token. PSTP uses the SIV as one of the authentication factors.


Password: SIP denotes the Secure Identity Password. The purpose of the SIP is to demonstrate that a user knows a secret. PSTP uses the SIP as one of the authentication factors.


Authentication token: An authentication token provides the facility for two-factor authentication (provide something one knows, and something one has).


One-way authentication token: A one-way authentication token is an authentication token that has the following property: A one-way authentication token displays information as output; however, a one-way authentication token does not accept information as input if that information contains or is derived from the information being secured, e.g., signed, HMAC'd. For example, if one wants to obtain the message authenticity property when transmitting the message “1234”, then a one-way authentication token would not require the user to input 1-2-3-4, or any other data derived from the value “1234” through a mechanism such as a digest or transformation. An example of a one-way authentication token is an RSA SecurID card because it displays a token code without accepting as input any information pertinent to a transaction. An example authentication token that does not have the one-way property is a PKI-based smart card. A PKI-based smart card may digitally sign data by transforming that data cryptographically. The PKI-based smart card accepts the data as input and provides the transformation as output. Note that the SecurID illustration 400 has digits 0 through 9 near the bottom. This is an optional feature that appears on some SecurID cards that permits the user the ability to enter a password directly into the token. Despite the fact that the user inputs a password, we classify the token as one-way because the user input is independent of the data being secured.


One may employ an authentication token, or a one-way authentication token in the context of a multifactor authentication system. The authentication token provides one component of the authentication credential, while another factor such as a PIN may provide another factor. Typically, a validation module permits authentication only if the authentication module successfully validates all authentication factors.


Message authenticity: An originator resides at one end of a communication link; and a recipient resides at the opposite end. Message authenticity ensures: (i) the recipient authenticates the originator's identity, (ii) the message received by the recipient matches the message transmitted by the sender (the message was not modified in transit), and (iii) replay prevention which ensures that the recipient does not obtain multiple copies of a message that was transmitted only once by the originator.


Entropy: The present invention uses the definition of the term entropy in: Denning, Dorothy, Cryptography and Data Security, Reading, Mass.: Addison-Wesley Publishing Co., January, 1983, pp. 17-22.


Pseudo-random number generator and random number generator Pseudo-random number generators and random number generators are discussed in the following literature: Menezes et al., Handbook of Applied Cryptography, Boca Raton: CRC Press, 1997, pp.169-190.


Unguessable key values (unguessability property): A pseudo-random number generator has the unguessability property if the “sequence of output bits are unpredictable to an adversary with limited computational resources.” Menezes et al., supra, at 169-190. A discussion of secure pseudo random number generators is also found therein. The unguessability property holds even in the case that the adversary knows the history of all previous outputs of the pseudo random number generator.


Consequential evidence: Evidence used to ensure that the sender of a message sent the message, or the recipient received the message, and that the message authenticity property was preserved. Such evidence is particularly useful if the sender or recipient were to subsequently deny being associated with the message, because a cryptographic mechanism could be used to determine the veracity of their denial.


Certificate validation: The topics of Public-key certificates and validation of Public-key certificates are discussed in Menezes et al., supra, at 559-561.


Trusted Party: A Trusted Party is an entity which is trusted by all participants and independent judges to operate in accordance to its specification. Examples of Trusted Parties include Certificate Authorities and Trusted Timestamp Authorities.


CVV: The Credit Card Validation code (CVV) is typically a three or four digit number printed on some credit cards. The intention of the CVV is to demonstrate physical possession of the credit card because the CVV is not embossed on the card and hence not printed on receipts. This makes it difficult for anyone other than the genuine cardholder to know the CVV. Some card issuers refer to this number as the Card Security Code, Personal Security Code, or Card Verification Value.


SSL: SSL refers to the Secure Socket Layer v3 protocol. While this document references SSL, one may substitute TLS version 1.0 for any reference to SSL. One of the options for operating either SSL or TLS is bidirectional authentication. In this case, the two peers of the SSL protocol authenticate each other through demonstrations that involve asymmetric cryptographic methods. That is, each peer demonstrates access to their respective private keying material, and the other peer validates the demonstration using the corresponding public keying material. TLS reference: Dierks, T., et. al., Network Working Group RFC 2246, the TLS Version 1.0, January, 1999.



FIG. 1 is a high-level diagram summarizing the Portable Security Transaction Protocol (PSTP). The PSTP's end-points are a Client 120 that initiates a transaction and a Server 150 that authenticates and then executes the transaction.


In Step 1, the Client 120 downloads from the Server 150 two items: a server-generated unique nonce, r, and the Server's 150 certificate, which contains the Server's 150 public key, ea. The Client 120 validates the Server's 150 certificate and extracts the public key for subsequent use. It is to be appreciated that the Client 120 will have already obtained through out-of-band means the certificate's distinguished name and root certificate required for validation. It is to be further appreciated that identical notation for the Server's 150 public key and certificate are herein adopted, but one may readily determine the notation's meaning from context.


Next, in Step 2, the central cryptographic aspect of the protocol takes place. The Client 120 transmits a single message that contains three components. The Authenticator component 130 contains material that uniquely authenticates the user associated with the Client 120. The Message Integrity component 132 is a cryptographic seal that protects data against unauthorized modification. The Key Management component 134 securely transports symmetric keys, k1 and k2, encrypted with the Server 150's public key. The Authenticator component 130 and Message Integrity component 132 use these keys, respectively.


Next, in Step 3, an optional signaling takes place. The Client 120 may ignore this signal and proceed to the next step immediately.


Lastly, in Step 4, the Client 120 transmits data to the Server 150. The Server 150 cross-references this data into the Message Integrity component 132. If the cryptographic seal communicated in the Message Integrity component 132 does not correspond to the data transmitted in Step 4, then the protocol raises an exception. If Step 4 is executed without an exception, then the Server 150 executes the transaction.


To better appreciate the protocol described above, an activity diagram is provided in FIG. 2. In general, an activity diagram shows activities and events that cause an object to be in a particular state.


Step 1


The Client 120 begins by sending an initiation request to the Server 150 (201). The Server 150 prepares for the first message by generating a unique nonce, r (202). The value r need not be a random value; however, the Server 150 must ensure r's uniqueness. In this present example, r has the properties of production by a pseudo-random number generator and unguessability. The Server 150 could create r from the current timestamp and additional entropy information. The Server 150 stores r in volatile memory, and subsequently references r as a countermeasure against playback attacks (203). If the Server 150 wishes to cancel any transaction before completion, then the Server 150 must delete r (or any unique number or timestamp used to create r) from its volatile memory. The Server 150 downloads the first message including r and the server's certificate containing ea to the Client 120. The Client 120 then validates the Server's 150 certificate and extracts ea. If the Server's 150 certificate is not valid, then the Client 120 terminates the protocol in the state labeled “Server cert not valid” (204). The Server 150 stores the nonce, r, in its volatile memory.


Step 2


The Client 120 then generates two unguessable key values k, and k2 (205). In order to produce these values, the Client 120 confidentially seeds a pseudo-random number generator with 160 bits of entropy, and then executes the pseudo random number generator to produce any required random values, e.g., k1 and k2, any initial vector required for symmetric cryptography, and any randomness required by RSA OAEP. Then, the Client 120 prompts the user for the two-factors of the authentication material: SIV and SIP (206). The Client 120 uses k1 as a key for the authenticator; and the Client 120 uses k2 as the key for the Message Integrity component (207). The Client 120 encrypts k1 and k2 into the Key Management component 134 (207).


Upon receipt, the Server 150 uses its private keying material to decrypt the Key Management component 134 yielding k1 and k2 (208). The Server 150 applies k1 to the symmetric algorithm to decrypt the authenticator, and then perform the authentication. The authentication step uses the information extracted from the Authenticator component 130 to query a server which knows how to validate authentication requests. In the case of the SecurID token, the server is RSA Security's ACE server. If user authentication fails, then the Server 150 terminates PSTP in the state labeled “Failed Authentication” (209), and cancels the transaction. The Server 150 holds the Message Integrity Component 132 including k2 for subsequent validation (210). Referring to FIG. 3, the Step 2 message transmitted from the Client 120 to the Server 150 has the following specification:

  • Authenticator 130: SYM(k1,(userid∥SIV∥SIP))
  • Message Integrity 132: MI(k2,MD(userid∥SIV∥r∥MD(data)))
  • Key Management 134: ASYM(ea,(k1∥k2))


The Server 150 uses the private keying material associated with ea 611 to decrypt the Key Management component 134 yielding k1 601 and k2 609. The Server 150 uses the k1 601 to decrypt the Authenticator Component 130. Using userid 602, SIV 420, and SIP 604, the Server 150 authenticates the user and cancels the transaction if the authentication fails.


If the Server 150 detects any errors, then the Server 150 discards the nonce 202 from its volatile memory in order to protect against reuse. Note that data 608 is the message which PSTP secures, i.e., PSTP ensures that data 608 gets the properties of message authenticity and stores the associated consequential evidence.


Step 3


If the Server 150 correctly authenticates the Client 120, then the Server 150 sends an optional message to the Client 120 signaling that the Client 120 may proceed (211, 212).


Step 4


The Client 120 then uploads the data 608. At this point the Client 120 concludes its PSTP processing in the state labeled “PSTP transmission conclusion” (213). Upon the Server's 150 receipt, the Server 150 validates the Message Integrity component 132 by revalidating the HMAC using the userid 602, the SIV 420, the r 202, and the data 608. The validation relies upon the Server 150 to input (the message digest of the data 608) 613 into the HMAC computation. Additionally, if r 202 contains an embedded timestamp, then the Server 150 should optionally validate that the timestamp is not too old, e.g., over 10 minutes old. If the HMAC or timestamp validation fails, then the Server 150 terminates PSTP in the failed state labeled, “Message integrity failure” (214) and cancels the transaction. If the validation succeeds, then the Server 150 terminates the protocol in the state labeled “Success, execute transaction.” (215) In this case, the Server 150 may execute the transaction authorized by the Client 120, i.e., use the information called data 608 above. Regardless of the outcome of the validation, the Server 150 discards all of PSTP's temporary information from volatile memory in order to protect against the reuse of the nonce or other temporary information. Any notification to the Client 120 that the transaction failed, is communicated from the Server 150 through out-of-band means.


The following example provides further details of the four steps described above. This further detail augments the description of the four steps by specifying exemplary algorithms and other pertinent information which instantiate the abstract specification described above.


Step 1: The client downloads r=SHA1(n,t,serverDN) (202), and ea 611 from the Server 150, where n is a the result of a pseudo-random number generator seeded with 160 bits of entropy, t is the current timestamp in milliseconds, and serverDN is the server's distinguished name. The server stores n, t, and serverDN in volatile memory, and can regenerate r upon request. However, if in one of the subsequent steps of the protocol, the server were to detect an error, then the server would discard n and t from volatile memory, thus prohibiting any practical possibility of regenerating r.


Step 2: The client uploads the following message to the server

    • AES(k1,(userid∥SIV∥SIP)) 130,
    • HMAC(k2,SHA1(userid∥SIV∥r∥SHA1(data))) 132,
    • RSAESOAEP (ea,(k1,k2)) 134

      where SIV 420 is the current value displayed on the user's RSA SecurID token 400, and SIP 604 is the corresponding password.


Step 3: The Client 120 downloads a message from the Server 150 indicating that the client may proceed. In the case of HTTP interaction, the client sends the Step 2 message in an HTTP POST which requests the next URL. The client downloads this URL from the server, and this download acts as the proceed message.


Step 4: In Step 4, the Client 120 uploads the data 608. The Server 150 uses the data and the values stored in memory to validate the HMAC result. Additionally, the Server 150 fails validation if the difference between the current time, and the value t is larger than a predefined threshold. The Server 150 responds with a PSTP transaction success message if and only if the validation succeeds.


Referring to FIG. 4, an exemplary architecture for providing consequential evidence of a transaction is illustrated. FIG. 4 includes the Client 120, a Transaction Security Authority TSA 145, a Transaction Execution Engine TEE 150, and a Trust Distributor 147. The Client 120 is communicatively coupled to the TSA 145. The TSA is communicatively coupled to the TD 147 and the TEE 150 (an embodiment of the Server 150).


Asymmetric key pair (ea,da) where da 701 is the private keying material which decrypts information that was encrypted with ea 611. The private keying material da 701 resides on the Trust Distributor 147. A collection of asymmetric key pairs, where each key pair is used to authenticate a bidirectionally authenticated SSL link. The TSA 145 and the Trust Distributor 147 conduct all communication over an SSL link where the two parties mutually authenticate under the auspices of the SSL protocol using db 702 and dc 704, respectively; and they validate the peers' authentication using ec 705 and eb 703, respectively. The TSA 145 and the TEE 150 conduct all communication over an SSL link where the two parties mutually authenticate under the auspices of the SSL protocol using db 702 and dd 707, respectively; and they validate the peers' authentication using ed 706 and eb 703, respectively.


The TSA 145 and the TEE 150 create their bidirectionally authenticated SSL link at system initialization time (before processing any PSTP signatures). Each respective machine implicitly trusts that any information received over the SSL link was transmitted by the peer of the SSL link. For example, if a message claims to originate from the TSA 145, then the TEE 150 allows the message if it arrived over the SSL link from the TSA 145; and discards the message if it did not arrive from the SSL link from the TSA 145.


The private keying material of each asymmetric key pair is held confidentially by each machine and is not shared with other parties. The private keying materials are: da 701, db 702, dc 704, and dd 707.


The TEE 150 operates upon the data 608. For example, if the data 608 is instructions to move funds, then the TEE 150 contains the business logic to execute a funds transfer transaction.


The Trust Distributor 147 includes, but is not limited to, all functionality of the RSA ACE Server (the server that validates RSA SecurIDs). In this case, the ACE server authenticates by interrogating the userid 602, SIV 420, and SIP 604. The ACE server returns a Boolean result: success if and only if the userid 602, SIV 420, and SIP 604 are currently valid in accordance to RSA SecurID semantics. The operators of the Trust Distributor 147 (ACE server) apply best practices in their operational duties.


The following scenario provides further details of the four PSTP steps.


Step 1: The client 120 downloads r=SHA1(n,t,serverDN) (202), and ea 611 from the TSA 145, where n is a the result of a pseudo-random number generator seeded with 160 bits of entropy, t is the current timestamp in milliseconds, and serverDN is the server's distinguished name. The TSA 145 stores n, t, and serverDN in volatile memory, and can regenerate r upon request.


Step 2: The Client 120 uploads the following message to the TSA 145:

    • AES(k1,(userid∥SIV∥SIP)) 130,
    • HMAC(k2,SHA1(userid∥SIV∥r|SHA1(data))) 132,
    • RSAESOAEP (ea,(k1,k2)) 134.


      The SIV 420 is the current value displayed on the user's RSA SecurID token 400, and the SIP 604 is the corresponding password. The Client 120 saves a copy of the message in its non-volatile storage to be used for the client's record keeping.


Step 2a: The TSA 145 creates a value called “TS”. The TSA assigns the value TS with the current date and timestamp, and keeps TS in its internal memory.


Step 2b: The TSA 145 forwards the information that it just received from the Client 120 to the Trust Distributor 147. The Trust Distributor 147 uses da 701 to decrypt the Key Management Component 134, thereby discovering k1 601 and k2 609. The Trust Distributor uses k1 601 to decrypt the Authenticator component 130, and then validates information in the Authenticator component 130 using ACE server functionality. If the validation fails, then the Trust Distributor 147 returns a failure message to the TSA 145. Otherwise, the Trust Distributor 147 returns a success code coupled with the decrypted Message Integrity key k2 609. Upon receipt, the TSA 145 stores k2 609 in memory.


Step 3: The Client 120 downloads a message from the TSA 145 indicating that the Client 120 may proceed. In the case of HTTP interaction, the Client 120 would send the Step 2 message in an HTTP POST which requests the next URL. The Client 120 downloads this URL from the TSA 145, and this download acts as the proceed message.


Step 4: The Client 120 uploads the data 608. The Client 120 preferably saves a copy of the data 608 in its non-volatile storage to be used for the client's record keeping. The TSA 145 uses the data 608 and the values stored in memory to validate the HMAC result of the Message Integrity component 132. The TSA 145 responds with a PSTP transaction success if and only if validation succeeds.


Step 4a: The TSA 145 creates a log record which includes the following:

    • AES(k1,(userid∥SIV∥SIP)) 130,
    • HMAC(k2,SHA1(userid∥SIV∥r∥SHA1(data))) 132,
    • RSAESOAEP (ea,(k1,k2)) 134,
    • data 608,
    • TS, r.


Step 4b: The TSA 145 writes the log record to a tamper-evident log. An example of a tamper-evident logging is found in the following literature: B. Schneier and J. Kelsey, Cryptographic Support for Secure Logs on Untrusted Machines, The 7th USENIX Security Symposium Proceedings, pp. 53-62, USENIX Press, January 1998, which is incorporated by reference herein in its entirety.


Step 4c: The TSA 145 sends a copy of the log record to the TEE 150, and then discards all information pertaining to this PSTP session stored in memory, e.g., n, t, r and TS.


Step 4d: The TEE 150 extracts the data 608 from the log record and acts upon the data. For example, if the data 608 includes instructions to move funds, then the TEE 150 performs the actual funds movement.


At a subsequent point in time, suppose a user questions the validity of the PSTP signed data 608. In this case, the TSA 145 may respond to this question by confidentially presenting the following material to an independent, mutually trusted 3rd party judge:

    • the log record of the questioned message
    • Information required to demonstrate that the tamper-evident log has not been tampered
    • Information which demonstrates that the log record in question appears in the log
    • da 701
    • SecurID seed 801
    • serial number 802

      With one exception, this same judge repeats all validations of Step 2b and Step 4. In addition, this same judge validates that the tamper-evident log has not been tampered. The one exception is that this same judge validates the authentication component using TS from the log record, as opposed to using the current date and time. This validation requires a special tool that is similar to the ACE server.


If the TEE 150 executes a transaction, then at a later time, the Client 120 may demand that the TSA 145 produce the corresponding log record; and then the parties may use the 3rd party judge for independent validation. Otherwise, the Client 120 may deny the transaction.


Advantageously, the mechanism described herein allows any, or all, of the Client 120, the TSA 145, the TEE 150, the Trust Distributor 147, and the 3rd party judge to be operated by different parties. In the case of a SecurID credential, the consequential evidence in the log record provides a valid record of an historical event. Collusion between multiple of the above parties would be required in order to obtain log record entries that may be incorrect. For example, the party that executes transactions, the TEE 150, never discovers information contained in the Authenticator component 130; and the TEE 150 does not maintain the tamper-evident log. The TSA 145 which is the party that validates the Message Integrity component 132 and maintains the tamper-evident log, never discovers information in the Authenticator component 130. The Trusted Distributor 147 which is the party that validates the Authenticator component 130 never obtains the data 608 and does not maintain the tamper-evident log.


One factor that contributes to the overall strength of PSTP security is the relative strength of security of the authentication credential. For example, a SecurID credential provides better authentication than a credit card because it is easier to make an illicit copy of a credit card number than it would be to compromise SecurID security by building a copy of the authentication token. Nevertheless, in some cases, the lower security afforded by a credit card number may provide sufficient security to authenticate the client. The determination of whether or not a credit card number provides sufficient security is a business decision. In this case, one may use a CVV number wherever PSTP requires a SIP; and one may use a credit card number wherever PSTP requires a SIV. A CVV number is an anti-fraud security feature found on many credit cards that is used to verify that the cardholder is in possession of the card. Note that neither the TSA 145 nor the TEE 150 discover the value of the SIV or SIP. In the case of credit card numbers, this property may be important because it allows vendors to securely sell merchandise on a public network such as the Internet, provide a secure historical record of consequential evidence of all transactions, issue receipts for transactions (the copy of the PSTP signature held by the client); yet never discover the value of the credit card number or CVV. That is, the value of the credit card number and CVV would only be known by the Client 120 and the Trust Distributor 147. In this case, the entity selling merchandise may operate the TSA 145 and the TEE 150. Alternatively, for added security, the entity selling the merchandise may operate the TEE 150, and communicate with an independent entity who operates the Trust Distributor 147.


Based on the forgoing, it can be concluded that the Trusted Parties demonstrate (1) they had sufficient evidence to ensure message authenticity at the time of the event, (2) they logged the event correctly at the time of the event, and (3) the log has not been tampered after the event.


The invention will be further clarified by the following user case:


EXAMPLE


FIG. 5 illustrates an exemplary screen display 300 of a value-bearing transaction entry form. The screen display 300 includes a customer name box 301 for entering a user's name, an origin account box 302 for entering an originating party's account number, a destination account box 303 for entering a destination party's account number, a transaction amount box 304 for entering an amount to transfer to the destination account, a token box 305 for entering an authorization token, a password box 306 for entering a password, and a signature button 307 for digitally signing the transaction. It is to be appreciated that the screen display 300 shown in FIG. 3 is a simplified version of an actual form and is provided for illustrative purposes. Furthermore, it is to be appreciated that various other graphical user interface widgets could be used to implement this screen 300.


In operation, a user points his or her browser towards a Web-based financial application. The Web-based application then presents a logon prompt. Thereupon, the user logs into the system by presenting his or her authentication credentials. The user then executes facilities presented by the Web-based financial application. Eventually, the user indicates that he or she wants to perform a function that requires added security. For example, the user might decide to wire $10,000 from account 437286 to account 739292.


In this case, the user would enter the customer's name (e.g., “John Smith”) in the customer name box 301, origin account number (e.g., “437286”) in the origin account box 302, destination account number 739292 in the destination account box 303, transaction amount 10000 in the transaction amount box 304, current token code (634917) 420 into the token box 305, and password in the password box 306. The user would obtain the current token code 420, for example using a SecurId card 400 (commercially available from RSA Security, Inc.), as shown in FIG. 6. As depicted in FIG. 6, the SecurID token code 420 is displayed to the user. As is well known in the art, the SecurId card 400 continually generates a series of one-time authentication token codes 420 that can be used to access a server. Heretofore, the SecurId card 400 worked in conjunction with a server to authenticate a user to a network. However, rather than use the SecurID card 400 solely for purposes of network authentication, the SecurID card 400 may be used to establish user authenticity for a transaction.


To accomplish the transaction the user clicks on the sign button 307 with a mouse device. The user's Web browser combines the information that the user entered into the form with the values r and ea, previously generated by the server and downloaded to the user's web browser along with the form. The browser cryptographically processes the result and uploads that cryptographic result to the server (Step 2). The server replies to the user's browser (Step 3). This step is hidden from the user. The browser uploads the information in the form to the server (Step 4). The server downloads a page to the user indicating whether or not the transaction succeeded.


A user may repeat the process described above multiple times. Each time the user


securely transmits a new message and obtains the benefit of message authenticity. On each message the user reuses the same authentication device, e.g., SecurID token 400. However, the token code 420 displayed on the SecurID token would be different for each message.


This example has the following properties:

    • SIV: 6 numeric digits
    • SIP: length not specified, but advised to be at least 7 characters
    • k1: 128 bits of key entropy (examples of 192 or 256 bits also provided)
    • k2: 160 bits of key entropy


In the example, the originator's client must contribute at least 160 bits of key entropy toward the creation of k2. However, the originator's user only needs to copy 6 characters of information from the Authentication token 420 into the box 305.


This invention uses technologies and concepts that are known to those skilled in the cryptographic art, including:


SHA1: ANSI X.9.30:2-1997, Public-key Cryptography for the Financial Services Industry: Part 2: The Secure Hash Algorithm (SHA-1) (revision of X9.30:2-1993).


HMAC: ANSI X9.71-2000, Keyed Hash Message Authentication Code (MAC).


3DES: ANSI X9.52-1998, Cryptography for the Financial Services Industry: Triple Data Encryption Algorithm Modes of Operation


AES: Federal Information Processing Standards Publication 197, 26-Nov.-01, Advanced Encryption Standard (AES). AES supports key sizes of 128 bits, 192 bits, and 256 bits.


Public Key Infrastructure (PKI): Menezes et al., Handbook of Applied Cryptography, Boca Raton: CRC Press, 1997, pp.


Distinguished Name: RFC 1779, Kille, S., “A String Representation of Distinguished Names”, March 1995.


RSA OAEP: RSA Laboratories. PKCS #1 v.2.1: RSA Cryptography Standard. June 2002.


RSA Security SecurID card: “RSA SecurID authenticators (also called tokens) allow users to identify themselves to the network and thus gain access to protected resources. Referring to FIG. 7, starting with a random but user-specific seed value 801, the token generates and displays a unique number every time period, e.g., 60 seconds, (SIV 420). The generated number is valid only for that user and that time period—and only when combined with the user's secret PIN or password (SIP 604). Because of the dynamic nature of the token, a user's electronic identity cannot be easily mimicked, hacked, or hijacked”. RSA Security: http://www.rsasecurity.com/products/securid/brochures/SID BR 1202 lowres.pd f, 22-May-04. The seed 801 is hidden within the SecurID token's 400 memory and security measures prevent its discovery. The serial number 802 is printed on the SecurID token 400, and can be read by anyone in physical possession of the token. The Trust Distributor 147 which may serve in the capacity of an RSA ACE Server has a copy of the unique seed and serial number of each credential. For simplicity, this disclosure assumes that the userid and the serial number are the same. However, in some cases, these values are different and a table exists which defines a one-to-one mapping between them. In other words, when presented with a userid, the table immediately yields the corresponding serial number. This table may potentially be implemented on the Server 150, or the Trust Distributor 147.


This present invention assumes that a tool exists which operates in a similar manner to the ACE server; however, it allows an historical time to be provided as an input, in addition to the SIV, userid, and possibly the serial number. This tool is used by a 3rd party judge to independently validate consequential evidence of historical events. Unlike the ACE Server, this tool does not guarantee one-time semantics for the SIV, e.g., the tool can validate the same SIV multiple times. Also, the tool does not require the SIV.


The SecurID mechanism is one possible authentication mechanism for use in conjunction with the present invention. Another example is the credit card number (perhaps along with the CVV number). In this case, the 3rd party judge must determine validity of a credit card number at the time of historical transaction. The validation performed by the 3rd party judge includes, but is not limited to, validation of the start and end validity of the credit card number against the date of the transaction. In addition, the check should validate an historical record of credit card number suspension to determine if the credit card was cancelled by the user or any other authorized party before the date of the transaction.


To facilitate a clear understanding of the present invention, illustrative examples are provided herein which describe certain aspects of the invention. However, it is to be appreciated that these illustrations are not meant to limit the scope of the invention, and are provided herein to illustrate certain concepts associated with the invention. For example, while the user case example shown herein is described with respect to the financial services industry, it is to be understood that the methods and systems of the present invention may also be suitable in other industries. In general, the present invention may be thought of an alternative to PKI-based digital signature.


Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be affected therein by one skilled in the art without departing from the scope or spirit of the invention.

Claims
  • 1. A computer-implemented method for providing message authenticity for a message by an originating user to a recipient's computer, the method comprising the steps of: accepting, through the recipient's computer, from the originating user: (i) an encrypted authenticator component comprising authentication data and a user authentication key, wherein the user authentication key is displayed on an external device of the user,(ii) a message integrity component, and(iii) an encrypted key management component;decrypting the key management component, through the recipient's computer, to yield (a) a key which decrypts the user authentication key and (b) a message integrity key, wherein the entropy of the user authentication key is less than the entropy of the message integrity key;decrypting the authenticator component, through the recipient's computer, using the key which decrypts the user authentication key;authenticating the user, through the recipient's computer, using the authentication data;accepting, through the recipient's computer, a message comprising message data from the originating user's computer; andvalidating the message integrity component through the recipient's computer using the message integrity key and the message data, thereby validating the message.
  • 2. The method of claim 1, wherein the message integrity key is not derivable from the user authentication key.
  • 3. The method of claim 1, wherein the external device is an authentication token.
  • 4. The method of claim 3, wherein information obtained from the authentication token contributes to the user authentication key exclusively.
  • 5. The method of claim 3, wherein the authentication token is a one-way authentication token.
  • 6. The method of claim 1, wherein the user authentication key includes one or more of a sequence of digits corresponding to those displayed on the external device.
  • 7. The method of claim 6, wherein the external device is not electronically connected to a computer system.
  • 8. The method of claim 6, wherein the number of digits of the sequence of digits is less than ten.
  • 9. The method of claim 8, wherein the entropy of the message integrity key is 80 bits or greater.
  • 10. The method of claim 6, wherein the number of digits of the sequence of digits is less than twenty-one.
  • 11. The method of claim 10, wherein the entropy of the message integrity key is 80 bits or greater.
  • 12. The method of claim 1, wherein the user authentication key is inaccessible to an entity authorized to process a transaction related to the message.
  • 13. The method of claim 1, further including the step of providing consequential evidence, wherein providing consequential evidence includes writing a message to a log record, the message including a transaction information, the authenticator component, the message integrity component, the key management component, and an identifier for the originating user.
  • 14. The method of claim 13, wherein the step of providing consequential evidence further includes consulting the log record for one or more of the transaction information, the authenticator component, the message integrity component, the key management component, and the identifier for the originating user.
  • 15. The method of claim 14, wherein the consulting of the log record is performed to validate the message authenticity of the message included in the log record.
  • 16. The method of claim 15, wherein the log record is sent to a trusted third party to validate the log record.
  • 17. The method of claim 1, further comprising: providing anti-replay protection to the message.
  • 18. The method of claim 17, wherein the message integrity component comprises a unique nonce and the anti-replay protection is provided using the unique nonce.
  • 19. A system for providing message authenticity for a message sent by an originating user to a recipient, comprising: a computer-readable memory that stores, from the originating user, a message and a user authentication key used for authentication credentials representing the originating user and a message integrity key used for providing message integrity, wherein the user authentication key and the message integrity key are encrypted; anda processor communicatively coupled to the computer-readable memory, the processor programmed to perform actions by the recipient, comprising:accepting from the originating user:(i) an encrypted authenticator component comprising authentication data and a user authentication key which is displayed on an external device of the user,(ii) a message integrity component, and(iii) an encrypted key management component;decrypting the key management component, through the recipient's computer, to yield (a) a key which decrypts the user authentication key and (b) a message integrity key, wherein the entropy of the user authentication key is less than the entropy of the message integrity key;decrypting the authenticator component using the key which decrypts the user authentication key;authenticating the user using the authentication data;accepting a message comprising message data from the originating user's computer; andvalidating the message integrity component through the recipient's computer using the message integrity key and the message data, thereby validating the message.
  • 20. The system of claim 19, wherein the processor is further programmed to perform the action of providing anti-replay protection to the message.
  • 21. The system of claim 20, wherein the message integrity component comprises a unique nonce and the anti-replay protection is provided using the unique nonce.
  • 22. A program storage device readable by a machine, tangibly embodying a program of instructions executable on the machine to perform method steps for providing end-to-end message authenticity for a message sent by an originating user to a recipient, the method steps, performed by the recipient, comprising: accepting from the originating user:(i) an encrypted authenticator component comprising authentication data and a user authentication key which is displayed on an external device of the user,(ii) a message integrity component, and(iii) an encrypted key management component;decrypting the key management component, through the recipient's computer, to yield (a) a key which decrypts the user authentication key and (b) a message integrity key, wherein the entropy of the user authentication key is less than the entropy of the message integrity key;decrypting the authenticator component using the key which decrypts the user authentication key;authenticating the user using the authentication data;accepting a message comprising message data from the originating user's computer; andvalidating the message integrity component through the recipient's computer using the message integrity key and the message data, thereby validating the message.
  • 23. The program storage device of claim 22, wherein the program of instructions further comprise instructions for providing anti-replay protection to the message.
  • 24. The program storage device of claim 23, wherein the message integrity component comprises a unique nonce and the anti-replay protection is provided using the unique nonce.
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application Ser. No. 60/514,760, filed by Glenn Benson et al. on Oct. 27, 2003 and entitled “Methods and Systems For Providing After-The-Fact Transaction Evidence Using Authentication Technology and Message Digests”, which is incorporated herein by reference.

US Referenced Citations (561)
Number Name Date Kind
3896266 Waterbury Jul 1975 A
3938091 Atalla et al. Feb 1976 A
4321672 Braun et al. Mar 1982 A
4567359 Lockwood Jan 1986 A
4633397 Macco Dec 1986 A
4695880 Johnson et al. Sep 1987 A
4696491 Stenger Sep 1987 A
4713761 Sharpe et al. Dec 1987 A
4725719 Oncken et al. Feb 1988 A
4745468 Von Kohorn May 1988 A
4799156 Shavit Jan 1989 A
4801787 Suzuki Jan 1989 A
4823264 Deming Apr 1989 A
4882675 Nichtberger et al. Nov 1989 A
4926255 Von Kohorn May 1990 A
4941090 McCarthy Jul 1990 A
4964043 Galvin Oct 1990 A
4992940 Dworkin Feb 1991 A
5016270 Katz May 1991 A
5050207 Hitchcock Sep 1991 A
5084816 Boese Jan 1992 A
5117355 McCarthy May 1992 A
5157717 Hitchcock Oct 1992 A
5189606 Burns et al. Feb 1993 A
5202826 McCarthy Apr 1993 A
5226079 Holloway Jul 1993 A
5233654 Harvey et al. Aug 1993 A
5235509 Mueller et al. Aug 1993 A
5241594 Kung Aug 1993 A
5265033 Vajk Nov 1993 A
5287268 McCarthy Feb 1994 A
5297026 Hoffman Mar 1994 A
5317683 Hager et al. May 1994 A
5321841 East Jun 1994 A
5347580 Molva et al. Sep 1994 A
5351186 Bullock Sep 1994 A
5365589 Gutowitz Nov 1994 A
5381332 Wood Jan 1995 A
5412708 Katz May 1995 A
5420405 Chasek May 1995 A
5446740 Yien Aug 1995 A
5450134 Legate Sep 1995 A
5450537 Hirai et al. Sep 1995 A
5465206 Hilt et al. Nov 1995 A
5467269 Flaten Nov 1995 A
5473143 Vak Dec 1995 A
5473732 Change Dec 1995 A
5479530 Nair et al. Dec 1995 A
5511117 Zazzera Apr 1996 A
5513102 Auriemma Apr 1996 A
5532920 Hartrick Jul 1996 A
5534855 Shockley et al. Jul 1996 A
5537314 Kanter Jul 1996 A
5537473 Saward Jul 1996 A
5544086 Davis et al. Aug 1996 A
5551021 Harada Aug 1996 A
5557334 Legate Sep 1996 A
5557518 Rosen Sep 1996 A
5560008 Johnson et al. Sep 1996 A
5568489 Yien Oct 1996 A
5570295 Isenberg Oct 1996 A
5570465 Tsakanikas Oct 1996 A
5576951 Lockwood Nov 1996 A
5583778 Wind Dec 1996 A
5590199 Krajewski et al. Dec 1996 A
5592378 Cameron Jan 1997 A
5592560 Deaton et al. Jan 1997 A
5594837 Noyes Jan 1997 A
5598557 Doner Jan 1997 A
5602936 Green et al. Feb 1997 A
5603025 Tabb Feb 1997 A
5604490 Blakely et al. Feb 1997 A
5606496 D'Agostino Feb 1997 A
5611052 Dykstra Mar 1997 A
5621201 Langhans Apr 1997 A
5621789 McCalmont Apr 1997 A
5621812 Deaton et al. Apr 1997 A
5625767 Bartell Apr 1997 A
5634101 Blau May 1997 A
5638457 Deaton et al. Jun 1997 A
5640577 Scharmer Jun 1997 A
5642419 Rosen Jun 1997 A
5644493 Motai Jul 1997 A
5653914 Holmes et al. Aug 1997 A
5657383 Gerber Aug 1997 A
5659165 Jennings Aug 1997 A
5664115 Fraser Sep 1997 A
5666493 Wojcik et al. Sep 1997 A
5671285 Newman Sep 1997 A
5675637 Szlam et al. Oct 1997 A
5675662 Deaton et al. Oct 1997 A
5677955 Doggett et al. Oct 1997 A
5678046 Cahill et al. Oct 1997 A
5682524 Freund Oct 1997 A
5684870 Maloney Nov 1997 A
5687322 Deaton et al. Nov 1997 A
5689100 Carrithers et al. Nov 1997 A
5692132 Hogan Nov 1997 A
5699528 Hogan Dec 1997 A
5703344 Bezy et al. Dec 1997 A
5710886 Christensen et al. Jan 1998 A
5710887 Chelliah Jan 1998 A
5710889 Clark et al. Jan 1998 A
5715298 Rogers Feb 1998 A
5715314 Payne Feb 1998 A
5715399 Bezos Feb 1998 A
5715402 Popolo Feb 1998 A
5715450 Ambrose Feb 1998 A
5724424 Gifford Mar 1998 A
5727163 Bezos Mar 1998 A
5734838 Robinson Mar 1998 A
5737414 Walker et al. Apr 1998 A
5740231 Cohn et al. Apr 1998 A
5754840 Rivette May 1998 A
5758126 Daniels et al. May 1998 A
5758328 Giovannoli May 1998 A
5761288 Pinard et al. Jun 1998 A
5761647 Boushy Jun 1998 A
5761661 Coussenns Jun 1998 A
5764789 Pare et al. Jun 1998 A
5765141 Spector Jun 1998 A
5765143 Sheldon Jun 1998 A
5768382 Schneier et al. Jun 1998 A
5774122 Kojima Jun 1998 A
5778178 Arunachalam Jul 1998 A
5784562 Diener Jul 1998 A
5787403 Randle Jul 1998 A
5787404 Fernandez-Holman Jul 1998 A
5790650 Dunn Aug 1998 A
5790785 Klug et al. Aug 1998 A
5793861 Haigh Aug 1998 A
5794178 Caid Aug 1998 A
5794207 Walker Aug 1998 A
5794259 Kikinis Aug 1998 A
5796395 De Hond Aug 1998 A
5797127 Walker et al. Aug 1998 A
5798508 Walker et al. Aug 1998 A
5802498 Comesanas Sep 1998 A
5802502 Gell Sep 1998 A
5805719 Pare et al. Sep 1998 A
5815657 Williams et al. Sep 1998 A
5815683 Vogler Sep 1998 A
5818936 Moshayekhi Oct 1998 A
5819092 Ferguson Oct 1998 A
5819285 Damico Oct 1998 A
5825863 Walker Oct 1998 A
5825870 Miloslavsky Oct 1998 A
5826241 Stein Oct 1998 A
5826245 Sandberg-Diment Oct 1998 A
5826250 Trefler Oct 1998 A
5828734 Katz Oct 1998 A
5828751 Walker et al. Oct 1998 A
5828812 Khan et al. Oct 1998 A
5828833 Belville et al. Oct 1998 A
5832460 Bednar Nov 1998 A
5832476 Tada Nov 1998 A
5835580 Fraser Nov 1998 A
5835603 Coutts Nov 1998 A
5838906 Doyle Nov 1998 A
5842178 Giovannoli Nov 1998 A
5842211 Horadan Nov 1998 A
5844553 Hao Dec 1998 A
5845259 West et al. Dec 1998 A
5845260 Nakano et al. Dec 1998 A
5847709 Card Dec 1998 A
5848400 Chang Dec 1998 A
5848427 Hyodo Dec 1998 A
5852812 Reeder Dec 1998 A
5857079 Claus et al. Jan 1999 A
5862223 Walker Jan 1999 A
5864830 Armetta et al. Jan 1999 A
RE36116 McCarthy Feb 1999 E
5870718 Spector Feb 1999 A
5870725 Belinger et al. Feb 1999 A
5871398 Schneier et al. Feb 1999 A
5873072 Kight Feb 1999 A
5873096 Lim Feb 1999 A
5880769 Nemirofsky Mar 1999 A
5884032 Bateman Mar 1999 A
5884270 Walker et al. Mar 1999 A
5884272 Walker et al. Mar 1999 A
5884274 Walker et al. Mar 1999 A
5884288 Chang Mar 1999 A
5889863 Weber Mar 1999 A
5892900 Ginter et al. Apr 1999 A
5898780 Liu et al. Apr 1999 A
5899982 Randle May 1999 A
5903881 Schrader May 1999 A
5909486 Walker et al. Jun 1999 A
5910988 Ballard Jun 1999 A
5913202 Motoyama Jun 1999 A
5914472 Foladare et al. Jun 1999 A
5915244 Jack et al. Jun 1999 A
5918214 Perkowski Jun 1999 A
5918217 Maggioncalda Jun 1999 A
5918239 Allen et al. Jun 1999 A
5920847 Kolling et al. Jul 1999 A
5921864 Walker et al. Jul 1999 A
5923763 Walker et al. Jul 1999 A
5926796 Walker et al. Jul 1999 A
5926812 Hilsenrath Jul 1999 A
5930764 Melchione Jul 1999 A
5933816 Zeanah et al. Aug 1999 A
5933817 Hucal Aug 1999 A
5933823 Cullen Aug 1999 A
5933827 Cole et al. Aug 1999 A
5940812 Tengel et al. Aug 1999 A
5943656 Crooks Aug 1999 A
5944824 He Aug 1999 A
5945653 Walker et al. Aug 1999 A
5946388 Walker et al. Aug 1999 A
5947747 Walker et al. Sep 1999 A
5949044 Walker et al. Sep 1999 A
5949875 Walker et al. Sep 1999 A
5950173 Perkowski Sep 1999 A
5950174 Brendzel Sep 1999 A
5950206 Krause Sep 1999 A
5952639 Ohki et al. Sep 1999 A
5952641 Korshun Sep 1999 A
5953710 Fleming Sep 1999 A
5956695 Carrithers et al. Sep 1999 A
5958007 Lee et al. Sep 1999 A
5960411 Hartman et al. Sep 1999 A
5961593 Gabber et al. Oct 1999 A
5963635 Szlam et al. Oct 1999 A
5963925 Kolling et al. Oct 1999 A
5963952 Smith Oct 1999 A
5963953 Cram et al. Oct 1999 A
5966695 Melchione et al. Oct 1999 A
5966699 Zandi Oct 1999 A
5967896 Jorasch et al. Oct 1999 A
5969318 Mackenthun Oct 1999 A
5970143 Schneier et al. Oct 1999 A
5970470 Walker et al. Oct 1999 A
5970478 Walker et al. Oct 1999 A
5970482 Pham Oct 1999 A
5970483 Evans Oct 1999 A
5978467 Walker et al. Nov 1999 A
5983196 Wendkos Nov 1999 A
5987434 Libman Nov 1999 A
5987498 Athing et al. Nov 1999 A
5991736 Ferguson et al. Nov 1999 A
5991738 Ogram Nov 1999 A
5991748 Taskett Nov 1999 A
5991751 Rivette et al. Nov 1999 A
5991780 Rivette Nov 1999 A
5995948 Whitford Nov 1999 A
5995976 Walker et al. Nov 1999 A
5999596 Walker et al. Dec 1999 A
5999907 Donner Dec 1999 A
6000033 Kelly et al. Dec 1999 A
6001016 Walker et al. Dec 1999 A
6003762 Hayashida Dec 1999 A
6005939 Fortenberry et al. Dec 1999 A
6006205 Loeb et al. Dec 1999 A
6006249 Leong Dec 1999 A
6009415 Shurling et al. Dec 1999 A
6009442 Chen et al. Dec 1999 A
6010404 Walker et al. Jan 2000 A
6012088 Li et al. Jan 2000 A
6012983 Walker et al. Jan 2000 A
6014439 Walker et al. Jan 2000 A
6014635 Harris et al. Jan 2000 A
6014636 Reeder Jan 2000 A
6014638 Burge et al. Jan 2000 A
6014641 Loeb et al. Jan 2000 A
6014645 Cunningham Jan 2000 A
6016810 Ravenscroft Jan 2000 A
6018714 Risen, Jr. Jan 2000 A
6018718 Walker et al. Jan 2000 A
6024640 Walker et al. Feb 2000 A
6026398 Brown et al. Feb 2000 A
6026429 Jones et al. Feb 2000 A
6032134 Weissman Feb 2000 A
6032147 Williams et al. Feb 2000 A
6038547 Casto Mar 2000 A
6038552 Fleischl et al. Mar 2000 A
6042006 Van Tilburg et al. Mar 2000 A
6044362 Neely Mar 2000 A
6045039 Stinson et al. Apr 2000 A
6049778 Walker et al. Apr 2000 A
6049782 Gottesman et al. Apr 2000 A
6049835 Gagnon Apr 2000 A
6055637 Hudson et al. Apr 2000 A
6061665 Bahreman May 2000 A
6064987 Walker et al. May 2000 A
6065120 Laursen et al. May 2000 A
6065675 Teicher May 2000 A
6070147 Harms et al. May 2000 A
6070153 Simpson May 2000 A
6070244 Orchier et al. May 2000 A
6073105 Sutcliffe et al. Jun 2000 A
6073113 Guinan Jun 2000 A
6075519 Okatani et al. Jun 2000 A
6076072 Libman Jun 2000 A
6081790 Rosen Jun 2000 A
6081810 Rosenzweig et al. Jun 2000 A
6085168 Mori et al. Jul 2000 A
6088444 Walker et al. Jul 2000 A
6088451 He et al. Jul 2000 A
6088683 Jalili Jul 2000 A
6088686 Walker et al. Jul 2000 A
6088700 Larsen et al. Jul 2000 A
6091817 Bertina et al. Jul 2000 A
6092196 Reiche Jul 2000 A
6095412 Bertina et al. Aug 2000 A
6098070 Maxwell Aug 2000 A
6101486 Roberts et al. Aug 2000 A
6104716 Crichton et al. Aug 2000 A
6105012 Chang et al. Aug 2000 A
6105865 Hardesty Aug 2000 A
6111858 Greaves et al. Aug 2000 A
6112181 Shear et al. Aug 2000 A
6115690 Wong Sep 2000 A
6119093 Walker et al. Sep 2000 A
6119099 Walker et al. Sep 2000 A
6119227 Mao Sep 2000 A
6128599 Walker et al. Oct 2000 A
6128602 Northington et al. Oct 2000 A
6131810 Weiss et al. Oct 2000 A
6134549 Regnier et al. Oct 2000 A
6134592 Montulli Oct 2000 A
6135349 Zirkel Oct 2000 A
6138106 Walker et al. Oct 2000 A
6138118 Koppstein et al. Oct 2000 A
6141651 Riley et al. Oct 2000 A
6141666 Tobin Oct 2000 A
6144946 Iwamura Nov 2000 A
6144948 Walker et al. Nov 2000 A
6145086 Bellemore et al. Nov 2000 A
6148293 King Nov 2000 A
6151584 Papierniak et al. Nov 2000 A
6154750 Roberge et al. Nov 2000 A
6154879 Pare et al. Nov 2000 A
6161182 Nadooshan Dec 2000 A
6164533 Barton Dec 2000 A
6170011 Beck et al. Jan 2001 B1
6178511 Cohen et al. Jan 2001 B1
6182052 Fulton et al. Jan 2001 B1
6182142 Win et al. Jan 2001 B1
6182225 Hagiuda et al. Jan 2001 B1
6185242 Arthur et al. Feb 2001 B1
6189029 Fuerst Feb 2001 B1
6195644 Bowie Feb 2001 B1
6199077 Inala et al. Mar 2001 B1
6201948 Cook et al. Mar 2001 B1
6202005 Mahaffey Mar 2001 B1
6202054 Lawlor et al. Mar 2001 B1
6202151 Musgrave et al. Mar 2001 B1
6208978 Walker et al. Mar 2001 B1
6208984 Rosenthal Mar 2001 B1
6216115 Barrameda et al. Apr 2001 B1
6219706 Fan Apr 2001 B1
6222914 McMullin Apr 2001 B1
6226623 Schein et al. May 2001 B1
6226679 Gupta May 2001 B1
6227447 Campisano May 2001 B1
6230148 Pare et al. May 2001 B1
6243688 Kalina Jun 2001 B1
6243816 Fang et al. Jun 2001 B1
6246767 Akins et al. Jun 2001 B1
6253327 Zhang et al. Jun 2001 B1
6253328 Smith, Jr. Jun 2001 B1
6260026 Tomida et al. Jul 2001 B1
6266648 Baker, III Jul 2001 B1
6266683 Yehuda et al. Jul 2001 B1
6267292 Walker et al. Jul 2001 B1
6269348 Pare et al. Jul 2001 B1
6275944 Kao et al. Aug 2001 B1
6289322 Kitchen et al. Sep 2001 B1
6298330 Gardenswartz et al. Oct 2001 B1
6298356 Jawahar et al. Oct 2001 B1
6301567 Leong et al. Oct 2001 B1
6308273 Goertzel et al. Oct 2001 B1
6308274 Swift Oct 2001 B1
6311275 Jin et al. Oct 2001 B1
6317838 Baize Nov 2001 B1
6324524 Lent et al. Nov 2001 B1
6327573 Walker et al. Dec 2001 B1
6327578 Linehan Dec 2001 B1
6332192 Boroditisky et al. Dec 2001 B1
6336104 Walker et al. Jan 2002 B1
6343279 Bissonette et al. Jan 2002 B1
6345261 Feidelson Feb 2002 B1
6349242 Mahaffey Feb 2002 B2
6349336 Sit et al. Feb 2002 B1
6353888 Kakehi et al. Mar 2002 B1
6385591 Mankoff May 2002 B1
6385652 Brown et al. May 2002 B1
6401125 Makarios et al. Jun 2002 B1
6401211 Brezak, Jr. et al. Jun 2002 B1
6408389 Grawrock et al. Jun 2002 B2
6418457 Schmidt et al. Jul 2002 B1
6438594 Bowman-Amuah Aug 2002 B1
6438666 Cassagnol et al. Aug 2002 B2
6449765 Ballard Sep 2002 B1
6453353 Win et al. Sep 2002 B1
6460141 Olden Oct 2002 B1
6493677 von Rosen et al. Dec 2002 B1
6493685 Ensel et al. Dec 2002 B1
6496855 Hunt et al. Dec 2002 B1
6496936 French et al. Dec 2002 B1
6510523 Perlman et al. Jan 2003 B1
6516412 Wasilewski et al. Feb 2003 B2
6526404 Slater et al. Feb 2003 B1
6526508 Akins et al. Feb 2003 B2
6532284 Walker et al. Mar 2003 B2
6535855 Cahill et al. Mar 2003 B1
6535917 Zamanzadeh et al. Mar 2003 B1
6535980 Kumar et al. Mar 2003 B1
6539424 Dutta Mar 2003 B1
6557039 Leong et al. Apr 2003 B1
6574348 Venkatesan et al. Jun 2003 B1
6581040 Wright et al. Jun 2003 B1
6584505 Howard et al. Jun 2003 B1
6584508 Epstein et al. Jun 2003 B1
6589291 Boag et al. Jul 2003 B1
6592044 Wong et al. Jul 2003 B1
6609113 O'Leary et al. Aug 2003 B1
6609125 Layne et al. Aug 2003 B1
6609198 Wood et al. Aug 2003 B1
6609654 Anderson et al. Aug 2003 B1
6618579 Smith et al. Sep 2003 B1
6618806 Brown et al. Sep 2003 B1
6623415 Gates et al. Sep 2003 B2
6633980 Johnson Oct 2003 B1
6668322 Wood et al. Dec 2003 B1
6675261 Shandony Jan 2004 B2
6687222 Albert et al. Feb 2004 B1
6718482 Sato et al. Apr 2004 B2
6718535 Underwood Apr 2004 B1
6725269 Megiddo Apr 2004 B1
6738779 Shapira May 2004 B1
6751654 Massarani et al. Jun 2004 B2
6754833 Black et al. Jun 2004 B1
6755341 Wong et al. Jun 2004 B1
6766370 Glommen et al. Jul 2004 B2
6772146 Khemlani et al. Aug 2004 B2
6785810 Lirov et al. Aug 2004 B1
6789115 Singer et al. Sep 2004 B1
6805288 Routhenstein et al. Oct 2004 B2
6807633 Pavlik Oct 2004 B1
6810395 Bharat Oct 2004 B1
6820202 Wheeler et al. Nov 2004 B1
6832202 Schuyler et al. Dec 2004 B1
6856970 Campbell et al. Feb 2005 B1
6892231 Jager May 2005 B2
6907566 McElfresh et al. Jun 2005 B1
6915437 Swander et al. Jul 2005 B2
6925481 Singhal et al. Aug 2005 B2
6983421 Lahti et al. Jan 2006 B1
6986046 Tuvell et al. Jan 2006 B1
6992786 Breding et al. Jan 2006 B1
7020696 Perry et al. Mar 2006 B1
7024556 Hadjinikitas et al. Apr 2006 B1
7069433 Henry et al. Jun 2006 B1
7069438 Balabine et al. Jun 2006 B2
7114080 Rahman et al. Sep 2006 B2
7117239 Hansen Oct 2006 B1
7174457 England et al. Feb 2007 B1
7194618 Suominen Mar 2007 B1
7213149 Mache May 2007 B2
7231526 Hon et al. Jun 2007 B2
7234059 Beaver et al. Jun 2007 B1
7249108 Walmsley et al. Jul 2007 B1
7281128 Mikel et al. Oct 2007 B2
7290141 Sengodan et al. Oct 2007 B2
7299356 Mizrah Nov 2007 B2
7299364 Noble et al. Nov 2007 B2
7318235 Grawrock Jan 2008 B2
7363495 Felt et al. Apr 2008 B2
7386720 Sandhu et al. Jun 2008 B2
7509495 Roig Mar 2009 B2
7779267 Chen et al. Aug 2010 B2
7818792 Shamsaasef et al. Oct 2010 B2
7877799 Proudler Jan 2011 B2
7900242 Malinen et al. Mar 2011 B2
20010012974 Mahaffey Aug 2001 A1
20010027474 Nachman et al. Oct 2001 A1
20010032184 Tenembaum Oct 2001 A1
20010034617 Kimata Oct 2001 A1
20010039535 Tsiounis Nov 2001 A1
20010047295 Tenembaum Nov 2001 A1
20010051917 Bissonette et al. Dec 2001 A1
20010054003 Chien et al. Dec 2001 A1
20020007313 Mai et al. Jan 2002 A1
20020007460 Azuma Jan 2002 A1
20020007462 Omata Jan 2002 A1
20020010599 Levison Jan 2002 A1
20020010668 Travis et al. Jan 2002 A1
20020018585 Kim Feb 2002 A1
20020019938 Aarons Feb 2002 A1
20020023108 Daswani et al. Feb 2002 A1
20020032613 Buettgenbach et al. Mar 2002 A1
20020032650 Hauser et al. Mar 2002 A1
20020059141 Davies et al. May 2002 A1
20020077978 O'Leary et al. Jun 2002 A1
20020078353 Sandhu et al. Jun 2002 A1
20020087860 William Kravitz Jul 2002 A1
20020095443 Kovack Jul 2002 A1
20020099826 Summers et al. Jul 2002 A1
20020104006 Boate et al. Aug 2002 A1
20020104017 Stefan Aug 2002 A1
20020107788 Cunningham Aug 2002 A1
20020112157 Doyle et al. Aug 2002 A1
20020152163 Bezos et al. Oct 2002 A1
20020165949 Na Nov 2002 A1
20020174010 Rice, III Nov 2002 A1
20020184507 Makower et al. Dec 2002 A1
20020188869 Patrick Dec 2002 A1
20020191548 Ylonen et al. Dec 2002 A1
20030014442 Shiigi et al. Jan 2003 A1
20030018915 Stoll Jan 2003 A1
20030023880 Edward et al. Jan 2003 A1
20030034388 Routhenstein et al. Feb 2003 A1
20030037142 Munger et al. Feb 2003 A1
20030046587 Bheemarasetti et al. Mar 2003 A1
20030046589 Gregg Mar 2003 A1
20030051026 Carter et al. Mar 2003 A1
20030055871 Roses Mar 2003 A1
20030069848 Larson et al. Apr 2003 A1
20030070069 Belapurkar et al. Apr 2003 A1
20030070084 Satomaa et al. Apr 2003 A1
20030074580 Knouse et al. Apr 2003 A1
20030079147 Hsieh et al. Apr 2003 A1
20030084345 Bjornestad et al. May 2003 A1
20030084647 Smith et al. May 2003 A1
20030088552 Bennett et al. May 2003 A1
20030105952 Brabson et al. Jun 2003 A1
20030105981 Miller et al. Jun 2003 A1
20030110399 Rail Jun 2003 A1
20030115160 Nowlin et al. Jun 2003 A1
20030119642 Gates et al. Jun 2003 A1
20030149781 Yared et al. Aug 2003 A1
20030154403 Keinsley et al. Aug 2003 A1
20030159072 Bellinger et al. Aug 2003 A1
20030163733 Barriga-Caceres et al. Aug 2003 A1
20030177067 Cowell et al. Sep 2003 A1
20030191549 Otsuka et al. Oct 2003 A1
20030191947 Stubblefield Oct 2003 A1
20030194085 Dillaway Oct 2003 A1
20030221126 Berman et al. Nov 2003 A1
20040031856 Atsmon et al. Feb 2004 A1
20040034597 Durand Feb 2004 A1
20040039692 Shields et al. Feb 2004 A1
20040059952 Newport et al. Mar 2004 A1
20040068559 Shaw Apr 2004 A1
20040073790 Ateniese et al. Apr 2004 A1
20040117409 Scahill et al. Jun 2004 A1
20040117623 Kalogridis et al. Jun 2004 A1
20040128169 Lusen Jul 2004 A1
20040148259 Reiners et al. Jul 2004 A1
20050033960 Vialen et al. Feb 2005 A1
20050079869 Khalil et al. Apr 2005 A1
20050080747 Anderson et al. Apr 2005 A1
20050082362 Anderson et al. Apr 2005 A1
20050086160 Wong et al. Apr 2005 A1
20050086177 Anderson et al. Apr 2005 A1
20050149729 Zimmer et al. Jul 2005 A1
20050278641 Mansour et al. Dec 2005 A1
20060218402 Kerstens et al. Sep 2006 A1
Foreign Referenced Citations (16)
Number Date Country
19731293 Jan 1999 DE
0884877 Dec 1998 EP
0917119 May 1999 EP
1022664 Jul 2000 EP
H10-187467 Jul 1998 JP
2005-242976 Sep 2005 JP
9743736 Nov 1997 WO
9940507 Aug 1999 WO
9952051 Oct 1999 WO
0068858 Nov 2000 WO
0118656 Mar 2001 WO
0135355 May 2001 WO
0143084 Jun 2001 WO
0188659 Nov 2001 WO
0217082 Feb 2002 WO
2004079603 Sep 2004 WO
Related Publications (1)
Number Date Country
20050091492 A1 Apr 2005 US
Provisional Applications (1)
Number Date Country
60514760 Oct 2003 US