A system and method for preventing interception and decryption of information by an unauthorized party when that information is transmitted over a network is provided. A token is used to encrypt one-time password that is different for each network session, to prevent decryption thereof. The encrypted one-time password is returned to a network server for authentication by the server. The network server generates its response in a similar fashion. The server compares its response to the one-time password, to determine if they match. If they match, then the client is granted access to the network. If they responses do not match, then the client is denied access to the network by the server.

Patent
   7231526
Priority
Oct 26 2001
Filed
Oct 25 2002
Issued
Jun 12 2007
Expiry
Dec 13 2024
Extension
780 days
Assg.orig
Entity
Small
25
7
all paid
7. A system for securing information obtained over a network, the system comprising:
a token device adapted to be coupled to the computer, said token device including a processor and a memory, the processor adapted to run a data encryption/decryption algorithm and the memory for storing shared symmetric keys that eliminate a need for key exchanges between parties in a secure network session;
wherein if a client requests access to a server then a query is sent to the server, a challenge including a challenge puzzle, an encryption/decryption key id, and a session id code that determine which two particular said symmetric shared keys are to be sent to said processor in the token device responsive to the query is generated and transmitted to the token, the token performing a first round of encryption to produce an encrypted puzzle key from said two symmetric shared keys and performing a second round of encryption to generate a one-time password (OTP) from said encrypted puzzle key and said session id code, the one-time-password transmitted to the server to compare the one-time password to a server-generated response to determine if the one-time password and the server-generated response match;
whereby if the one-time password and the server-generated response match, then the client is granted access to the network and if the one-time password and the server-generated response do not match, then the client is denied access to the network.
1. A method for securing a session over a network, comprising:
(a) coupling a client computer to a server in a session over a network in order to gain access to a secured webpage;
(b) coupling a unique token device to the client computer, said token device including a processor and a memory, the processor adapted to run a data encryption/decryption algorithm and the memory for storing shared symmetric keys that eliminate a need for key exchanges between parties in a secure network session;
(c) querying said server for access over the network from said client computer;
(d) generating a challenge from said server responsive to the query that includes a challenge puzzle, an encryption/decryption key id, and a session id code, wherein said challenge puzzle and encryption/decryption key id determine which two particular said shared keys are to be sent to said processor in the unique token device;
(e) transmitting the challenge to the unique token device over the network for processing with said encryption/decryption program;
(g) generating an encryption key in said token device by decomposing the challenge to recover said challenge puzzle, encryption/decryption key id, and session id code to produce an encrypted puzzle key from said two shared keys;
(g) generating a one-time-password (OTP) response in said token device from said session id code and said encrypted puzzle key;
(h) transmitting the OTP response from said client computer to the server over the network;
(i) comparing the OTP response to a server-generated response which was generated with the same process that the client token device should have used to generate the OTP response and determining if the OTP response and the server-generated response match;
(j) if the OTP response and the server-generated response match, then granting the client computer access to the server over the network; and
(k) if the OTP response and the server-generated response do not match, then denying the client computer access to the server over the network.
2. The method of claim 1 wherein a new challenge is generated by the server for every query of the server.
3. The method of claim 1 wherein a new session id code is generated by the server for every query of the server.
4. The method of claim 1 wherein either one of the queried server and the client computer generates the challenge.
5. The method of claim 1 wherein the token device performs a first round of encryption to generate the encryption key, the first round of encryption comprising the following steps:
retrieving information from addresses in an id pad region of the token device memory determined by the challenge puzzle;
retrieving an encryption/decryption key from memory determined by the key id; and
feeding the encryption/decryption key and information retrieved from the id pad region into said encryption/decryption program running on the processor to generate the encryption key.
6. The method of claim 5 wherein the token device performs a second round of encryption to generate the OTP response, the second round of encryption comprising the following steps:
feeding the encryption key and the session id code into the encryption/decryption program running on the processor to generate the response.

This Application is a non-provisional application of Provisional Application No. 60/347,581, filed on Oct. 26, 2001.

1. Field of the Invention

The present invention relates generally to data encryption and decryption systems and methods and, more particularly, to a system and method for preventing interception and decryption of information by an unauthorized party when that information is transmitted over a network.

2. Background Information

A computer network session is the time during which two computers in a network maintain a connection. In an interactive computer program running on the network, a network session can be considered the time during which one computer, such as a server, accepts, processes, and outputs information from another computer, such as a client. Programs designed for contacting different servers on the Internet are commonly known as “web applications” or “web browsers”.

During a network session, a user, or client, accesses a remotely located computer, or server, to exchange data with the server via a computer network, such as the Internet or an Intranet, for example. During the network session the client may further exchange data with a second client via the server and may exchange data with one or more additional servers.

Frequently, confidential data is exchanged between the client and server during a network session and this data may be valuable to outside parties. Such confidential data may include personal information, financial information, and proprietary information, for example. Thus, if an unauthorized party were to obtain a client's confidential information they could use that information however they desire.

The processes of data encryption and decryption are well known for inhibiting unauthorized access to confidential data. Data encryption is the process of encoding data to prevent unauthorized access to the data, especially during transmission. Encryption of data is usually based on an encryption/decryption key, or key, that may comprise a predetermined sequence of data, that is essential for decoding the data. The encryption key is used to encrypt the data prior to transmission. The intended recipient of the data is provided with a like key for decrypting the data, to allow access to the data by the intended recipient.

One common method of data encryption/decryption is “Public Key Encryption”. Public key encryption comprises an asymmetric scheme that uses a pair of keys for encryption. A public key is one of two keys in public key encryption. A user releases the public key to the public. The public uses the public key for encrypting data this is sent to the user and for decrypting the user's digital signature. A private key is the other of the two keys in public key encryption. The user keeps the private key secret and uses it to encrypt digital signatures and to decrypt received messages. A disadvantage of public key encryption is that it may be vulnerable to “Man-In-The-Middle” (MITM) attacks, since the client and server are unable to verify the identity of each other.

A Man-In-The-Middle (MITM) attack typically involves an interceptor posing as a target, which may be a sever, for example. The interceptor uses its own public key, instead of the target's public key, for asymmetric encryption. This allows the interceptor to decrypt confidential data that is intended for the target. The interceptor can then use this decrypted information to gain unauthorized access to the target's confidential information.

A known attempt to defend against MITM attacks is, to ensure that the public key is coming from its legitimate owner. To ensure that a public key is coming from its legitimate owner, an encrypted link can be created between a server, such as a web server on the Internet, and web browser software. Secure Sockets Layer (SSL) is a security technology standard for creating encrypted links between web servers and browsers. This encrypted link attempts to ensure that data transmitted between the web server and browser remains private and integral. SSL technology requires the use of an electronic certificate, issued by a trusted Certification Authorities (CA), to be used to generate the encrypted link. The electronic certificate is an electronic document that binds some pieces of information together, such as a user's identity and their public key. The pieces of information are bound by the signature of the CA.

A trusted Certification Authority (CA) is a trusted third party responsible for issuing digital certificates and managing them throughout their lifetime. Digital certificates are electronic files containing the user's public key and specific identifying information about the user.

Digital signatures are also used to defend against MITM and other attacks. With digital signatures, a sender uses a secret key to create a unique electronic number. This unique electronic number can be read by anyone possessing the corresponding public key, which verifies that the message is truly from the sender.

Another known method of attempting unauthorized access to encrypted data is a “replay” attack. Web browsers may be vulnerable to a replay attacks, if a user's authentication tokens are captured or intercepted by an attacker. In a replay attack, an attacker directly uses authentication tokens, such as a session ID in a URL cookie, for example. For clarification, “URL” is an acronym for Uniform Resource Locator. A URL is an address for a resource on the Internet used by Web browsers to locate Internet resources. The attacker uses the authentication token to obtain or create service to a user's account, while bypassing normal user authentication, such as logging in with the appropriate username or password.

For example, an attacker discovers a URL that contains session ID information. With this information, the attacker may be able to obtain or create service to user's account contained in the session ID information, simply by pasting that URL back into the internet address widow of their web browser. The legitimate user may not need to be logged into the application at the time of the replay attack.

The present invention provides a system and method for preventing interception and decryption of information by an unauthorized party when that information is transmitted over a network. The present invention uses more than one round of data encryption and a symmetric shared secret to prevent decryption of information intended for an authorized party. A one-time password, that is generated through encryption of an identifier code which is unique for each network session, inhibits against “Man-In-The-Middle” (MITM), “replay”, and other attacks.

A unique token device, or token, of the present invention may include a processor running a data encryption/decryption program and a memory device for storing data. Symmetric shared secrets are embedded in the memory device. This eliminates the need for key exchanges between two parties, and thus, inhibits MITM from stealing encryption/decryption keys.

When a client requests access to a network server, to activate a web page stored on the server, for example, the client first couples their token to a computer. The invented method queries the server to generate a challenge. The challenge may include a challenge puzzle, an encryption/decryption key ID, and a network identifier code, also referred to in the art as session ID code. The challenge may be in the form of a 128-bit number.

The token receives the challenge and processes it. The challenge is decomposed to recover the challenge puzzle, key ID, and network identifier code. The challenge puzzle and key ID determine which two particular shared secrets stored in the token's memory device are to be sent to the token's processor.

The token's processor, may be running a data encryption/decryption algorithm, such as an Advanced Encryption Standard (AES) technology type data encryption/decryption algorithm. The two shared secrets are fed into the data encryption/decryption algorithm to generate an encrypted puzzle key. The network identifier code and encrypted puzzle key are then fed into the data encryption/decryption algorithm to generate the encrypted response, or one-time password (OTP). Since the OTP is used only once, replay attacks are prevented.

The OTP is sent to the network server. Once the server receives the OTP, the server generates its response using the same process that the token used to generate the OTP. The server then compares its response to the OTP to see if they match. If they match, the client is granted access to the network and if they do not match, the client is denied access to the network.

The objects and features of the present invention, which are believed to be novel, are set forth with particularity in the appended claims. The present invention, both as to its organization and manner of operation, together with further objects and advantages, may best be understood by reference to the following description, taken in connection with the accompanying drawings, in which:

FIG. 1 is a schematic diagram of a computer coupled to a computer network and a token device of a preferred embodiment of the system and method of the present invention; and

FIG. 2 is a flow chart showing data flow paths between a network server, a client, and a token device of the preferred embodiment of the system and method of the present invention.

The following description is provided to enable any person skilled in the art to make and use the invention and sets forth the best modes presently contemplated by the inventors of carrying out the invention. Various modifications, however, will remain readily apparent to those skilled in the art, since the generic principles of the present invention have been defined herein.

The present invention provides a system and method for preventing interception and decryption of information by an unauthorized party when that information is transmitted over a network. The present invention uses more than one round of data encryption and a symmetric shared secret to generate a one-time password. Since the one-time password is used only once, replay attacks and other attacks may be prevented.

Referring now to FIG. 1 of the drawings, a preferred embodiment of the method of the present invention may be uploaded to a data storage device 10 of a computer 12, using known means. For example, the invented method may be provided in the form of a computer program and uploaded onto the computer 12 and stored on the storage device 10, as is well known.

Similarly, the method of the present invention may be installed on one or more servers 20 of a computer network, shown generally at 22. The computer network 22 may comprise a multiplicity of servers 20, several of which may be interconnected at any given time. The computer network 22 may comprise the Internet, or a company's Intranet, for example.

As referred to hereinafter, the term “computer” references any device capable of coupling to the computer network 22 and capable of receiving data for processing. The computer 12 may comprise any remote computing terminal which can provide a client access to the computer network 22, such as a well known ATM machine, for example. The computer 12 may be provided with a processor 14 for processing data and a memory 16 for storing data. The computer 12 may include a data port 18 to allow coupling of external devices,to the network 22, via the computer 12.

The computer 12 may be coupled to the network 22 via any known means. The computer 12 may be continuously coupled to the network 22, via a high bandwidth digital communications line, or may be intermittently coupled to the network 22, via a modem, for example.

A unique token device, or token, 30 is configured to be detachably coupled to the data port 18. The token 30 and data port 18 may be configured in any desired mutually compatible form factor which affords coupling and decoupling of the token 30 with the data port 18, and thus to the network 22 via the computer 12. For example, the data port 18 may comprise a known USB (Universal Serial Bus) port or similar data port.

The token 30 preferably includes an on-board processor 32 for processing data, a memory device 34 for storing data, and a coupling portion 36 for coupling the token 30 to the data port 18. The on-board processor 32 is preferably capable of processing 128-bit data. Additionally, the processor 32 is capable of running a data encryption/decryption algorithm, such as an Advanced Encryption Standard (AES) technology type data encryption/decryption algorithm.

The token's memory device, or memory, 34 may comprise a nonvolatile memory device that is configured to maintain data when power to the token 30 is removed. Preferably, the memory device 34 comprises a known flash memory device. Symmetric shared secrets are stored in the memory 34. A portion of the memory 34 may function as an identification (ID) pad 38. Different values may be stored in predetermined address locations in the ID pad 38 during manufacture of the token 30. The different values stored in predetermined address locations of the ID pad 38 comprise a portion of a shared secret.

One or more encryption/decryption keys may also be stored in the memory 34 of the token 30 during manufacture thereof. Each encryption/decryption key stored in the memory 34 may comprise a unique string of information and is the other portion of a shared secret. Since the symmetric shared secrets are embedded in the token's memory 34 during manufacture, the need for key exchanges between two parties over the network 22 is eliminated. Thus, MITM attacks are prevented, since there is no exchange and the MITM cannot steal encryption/decryption keys.

The encryption/decryption keys that are stored in the token 30 may depend upon certain factors. For example, if a client that is going to control the token 30 requests access to a particular server that requires a particular encryption/decryption key, then that key is stored in the memory 34. In addition, certain servers that do not generate a challenge may require another key, for example.

The token 30 may be distributed to a user, or client, using any known and applicable means. When a client receives the token 30, they must contact the distributor of the token 30, or other appropriate party, to verify that they possess the token 30. The client contacts the distributor and provides identifying information to the distributor, who verifies the client. At that time, the client may then generate their password or PIN. The password may be stored in the token's memory 34.

Referring now to FIG. 2 and FIG. 1 of the drawings, there is shown generally at 100, a preferred method of the present invention. A client, shown schematically at 40, desires access to a network server 20, to activate a web page stored on the server 20, for example. As shown in the drawing Figure, the client 40 may embody any entity that possess the token 30, and which is capable of controlling the token 30 and computer 12.

The client 40 first couples a token device 30 (shown schematically in FIG. 2) that they control to a computer 12 running, or capable of running, the preferred embodiment of the method of the present invention. If the method is not running when the token 30 is coupled to the computer 12, the client 40 may invoke the method using any one of several well known means.

As shown along data flow path 102, the server 20 is queried to determine if the server 20 is going to grant the client 40 access to the network 22. The server's response to this query may be in the form of a challenge. The challenge may include a challenge puzzle, a key ID, and a network identifier code (session ID code). The challenge may be in the form of a 128-bit number. Upon generation of the challenge, the challenge is transmitted to the computer 12, as shown along data flow path 104. If the invented method determines that the server 20 is not going to generate a challenge, then the method utilizes the computer 12 to generate the challenge.

The challenge is then transmitted to the token 30 along data flow path 106. The method 100 may also transmit the client's password to the token 30, if the password is not stored on the token 30.

Once the token 30 receives the challenge and password, the challenge is processed by the token's processor 32. The challenge is decomposed to recover the challenge puzzle, key ID, and network identifier code. Once the challenge puzzle is obtained, the challenge puzzle is sent to the ID pad 38, as shown on data flow path 108. The challenge puzzle is mapped to the ID pad 38 stored in the token's memory 34. The challenge puzzle may function as a set of instructions for accessing selected data address locations in the ID pad 38 for retrieving a portion of a selected shared secret from memory 34. The values stored in the selected address locations are retrieved and fed into the token's processor 32 for processing, shown on data flow path 110.

Similarly, the key ID identifies which particular encryption/decryption key stored in memory 34 corresponds to the remaining portion of the selected shared secret. The encryption/decryption key identified by the key ID is then retrieved from memory 34 and fed into the processor 32 for processing, as shown along data flow path 116. The encryption/decryption keys may be stored in memory 34 at a location 112 other than the ID pad 38.

The token's processor 32 may be running a data encryption/decryption algorithm. Preferably, the token's processor 32 may be running an Advanced Encryption Standard (AES) technology type data encryption/decryption algorithm. The processor 32 the two portions of the shared secret, i.e. the values stored in the selected address locations of the ID pad 38 and the selected encryption/decryption key, performs a first round of data encryption as shown in process block 118. The processor 32 then generates an encrypted puzzle key, shown in data flow path 120.

Upon generation of the encrypted puzzle key, the network identifier code is fed into the token's processor 32, shown along data flow path 122. The encrypted puzzle key is fed back into the processor 32 and a second round of encryption is performed in process block 124. The second round of encryption generates an encrypted response to the challenge, or one-time password (OTP). Since the OTP is used only once, replay attacks may be prevented and decryption thereof may be inhibited. The OTP may be a 128-bit number.

As shown on data flow path 126, the OTP is then transmitted to the network server 20, via the computer 12. Once the network server 20 receives the OTP, the server 20 generates its response using the same process that the token 30 used to generate the OTP. The server 20 then compares its response to the OTP to determine if a match exists. If they match, then the client 40 is authenticated and is granted access to the network 22. If they do not match, then the client 40 is denied access to the network 22 by the server 20.

Alternatively, if the method 100 generated the challenge, then the method-generated challenge and OTP are both sent to the network server 20. The sever 20 generates its response using the challenge generated by the method 100. The server 20 then compares the two responses to determine if a match exists.

Those skilled in the art will appreciate that various adaptations and modifications of the just-described preferred embodiments can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.

Cheng, Fred, Hon, Henry

Patent Priority Assignee Title
10152530, Jul 24 2013 Symantec Corporation Determining a recommended control point for a file system
10735392, Apr 16 2015 TELEFONAKTIEBOLAGET LM ERICSSON PUBL Method and device for establishing a computational puzzle for use in communication between a client and a server
10757104, Jun 29 2015 Veritas Technologies LLC System and method for authentication in a computing system
10862684, Nov 17 2014 SAMSUNG ELECTRONICS CO , LTD Method and apparatus for providing service on basis of identifier of user equipment
11271935, Jul 30 2020 Bank of America Corporation Blind authenticator
11283793, Oct 18 2018 Oracle International Corporation Securing user sessions
11823186, Jun 12 2012 BLOCK, INC Secure wireless card reader
7539860, Mar 18 2004 Liberty Peak Ventures, LLC Single use user IDS
7673046, Nov 14 2003 Microsoft Technology Licensing, LLC Trusted network transfer of content using off network input code
7770219, May 11 2005 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Method and system for using shared secrets to protect access to testing keys for set-top box
8037295, Apr 15 2008 AUTHENEX, INC Hardware-bonded credential manager method and system
8042163, May 20 2004 CA, INC Secure storage access using third party capability tokens
8117449, Dec 27 2007 MasterCard International, Inc. Method to detect man-in-the-middle (MITM) or relay attacks
8146154, May 11 2005 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Method and system for using shared secrets to protect access to testing keys for set-top box
8190893, Oct 27 2003 JP Morgan Chase Bank Portable security transaction protocol
8321924, Sep 20 2006 Feitian Technologies Co., Ltd. Method for protecting software accessible over a network using a key device
8321955, Aug 26 2003 THE OREGON STATE BOARD OF HIGHER EDUCATION ON BEHALF OF PORTLAND STATE UNIVERSITY Systems and methods for protecting against denial of service attacks
8473612, Nov 14 2003 Microsoft Technology Licensing, LLC Trusted network transfer of content using off network input code
8583928, Oct 27 2003 JP Morgan Chase Bank Portable security transaction protocol
8683204, Dec 04 2009 WSOU Investments, LLC Efficient techniques for achieving secure transactions using tamper-resistant tokens
8688971, May 11 2007 NTT IT CORPORATION Remote access method
8997192, Sep 21 2005 NXP B V System and method for securely provisioning and generating one-time-passwords in a remote device
9172546, Jan 25 2012 Cisco Technology, Inc.; Cisco Technology, Inc Network mediated multi-device shared authentication
9367885, Apr 20 2012 TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED Method and system for adding and detecting watermark
9887978, Jun 23 2015 Veritas Technologies LLC System and method for centralized configuration and authentication
Patent Priority Assignee Title
6317829, Jun 19 1998 Entrust Technologies Limited Public key cryptography based security system to facilitate secure roaming of users
6351813, Feb 09 1996 Digital Privacy, Inc. Access control/crypto system
6490687, Mar 13 1998 NEC Corporation Login permission with improved security
6810479, Mar 11 1996 Microsoft Technology Licensing, LLC System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer
6895502, Jun 08 2000 BCS SOFTWARE LLC D B A BLUEBONNET CONSULTING SERVICES & SOFTWARE Method and system for securely displaying and confirming request to perform operation on host computer
6981152, Jul 28 2000 O2Micro International Limited Smart card security information configuration and recovery system
20030081774,
///
Executed onAssignorAssigneeConveyanceFrameReelDoc
Oct 25 2002Authenex, Inc.(assignment on the face of the patent)
Oct 25 2002HON, HENRYAUTHENEX, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0134350197 pdf
Oct 25 2002CHENG, FREDAUTHENEX, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0134350197 pdf
Date Maintenance Fee Events
Jan 17 2011REM: Maintenance Fee Reminder Mailed.
Jun 10 2011M2551: Payment of Maintenance Fee, 4th Yr, Small Entity.
Jun 10 2011M2554: Surcharge for late Payment, Small Entity.
Nov 10 2014M2552: Payment of Maintenance Fee, 8th Yr, Small Entity.
Nov 11 2018M2553: Payment of Maintenance Fee, 12th Yr, Small Entity.


Date Maintenance Schedule
Jun 12 20104 years fee payment window open
Dec 12 20106 months grace period start (w surcharge)
Jun 12 2011patent expiry (for year 4)
Jun 12 20132 years to revive unintentionally abandoned end. (for year 4)
Jun 12 20148 years fee payment window open
Dec 12 20146 months grace period start (w surcharge)
Jun 12 2015patent expiry (for year 8)
Jun 12 20172 years to revive unintentionally abandoned end. (for year 8)
Jun 12 201812 years fee payment window open
Dec 12 20186 months grace period start (w surcharge)
Jun 12 2019patent expiry (for year 12)
Jun 12 20212 years to revive unintentionally abandoned end. (for year 12)