Abstract:
Systems, methods and computer readable media for authenticating one or more client devices ( 1 ) to a server ( 5 ). A shared unpredictable secret ( 50 ) is generated. The shared unpredictable secret ( 50 ) is stored in the client device ( 1 ) and in the server device ( 5 ). The client device ( 1 ) proves possession of the correct shared unpredictable secret ( 50 ) to the server ( 5 ). The shared unpredictable secret ( 50 ) is replaced by a new shared unpredictable secret ( 54 ) each time the client device ( 1 ) logs in to the server device ( 5 ).

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S)  
       [0001]     This application is a continuation of U.S. patent application Ser. No. 09/921,265, originally entitled “Countering Credentials Copying,” filed Aug. 1, 2001; which claims priority from U.S. Provisional Patent Application Ser. No. 60/226,429, “Countering Credentials Theft,” filed on Aug. 18, 2000. The subject matter of all of the foregoing are incorporated herein by reference in their entirety. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     This invention pertains to the field of secure communications between and among digital devices such as computers, and, specifically, pertains to techniques for thwarting the copying of credentials by nefarious persons or otherwise.  
         [0004]     2. Description of the Related Art  
         [0005]     Diffie-Hellman key exchange, as described in U.S. Pat. No. 4,200,770, is a mechanism to permit two entities to have a shared secret; the secret could be an encryption key. In the present invention, shared unpredictable secret  50  is not an encryption key.  
       SUMMARY OF THE INVENTION  
       [0006]     The present invention comprises systems, methods, and computer readable media for authenticating a client device ( 1 ) to a server device ( 5 ). A preferred method comprises the steps of generating a shared unpredictable secret ( 50 ), storing the shared unpredictable secret ( 50 ) in the client device ( 1 ) and in the server device ( 5 ), and requiring the client device ( 1 ) to prove that it contains the correct shared unpredictable secret ( 50 ) as a precondition to allowing the client device ( 1 ) to log in to the server device ( 5 ). The shared unpredictable secret ( 50 ) is replaced by a new shared unpredictable secret ( 54 ) each time the client device ( 1 ) logs in to the server device ( 5 ). 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]     These and other more detailed and specific objects and features of the present invention are more fully disclosed in the following specification, reference being had to the accompanying drawings, in which:  
         [0008]      FIG. 1  is a block system-level diagram of a preferred embodiment of the present invention.  
         [0009]      FIG. 2  is a flow diagram of a preferred embodiment of the registration/reset phase of the present invention.  
         [0010]      FIG. 3  is a flow diagram of a preferred embodiment of the log-in phase of the present invention.  
         [0011]      FIG. 4  is a flow diagram illustrating an alternative embodiment of the method illustrated in  FIG. 3 .  
         [0012]      FIG. 5  is an illustration of shared unpredictable secret  50  and its progeny.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0013]     As used in the present patent application, client (sometimes referred to as “client device”)  1  can be any digital device, e.g., a personal computer, mobile phone, smartcard, Internet appliance, or any other network accessible device. There may be one client  1  or, as illustrated in  FIG. 1 , a finite number n of clients  1 . Each client  1  wishes to communicate with an infrastructural component that is referred to in the present patent application as a server (or “server device”)  5 . Server  5  may provide any type of service to client  1 . For example, server  5  might be an Internet service provider or a telephone network access point. The communications link between client  1  and server  5  may be any link, such as a wireless link, a wired link, or a link over a network  4 , which may be an open network such as the Internet. The communications link  4  may be an encrypted connection such as SSL. The initiation of a communication session between client  1  and server  5  is referred to herein as a log-in.  
         [0014]     One concern in such an environment pertains to credentials sharing. In this scenario, a person who has access to a client device  1  voluntarily shares his personal credentials, such as a password or private cryptographic key, with other user devices  2 . All of these user devices  2  employ the user account of the original user. Two problems that arise from this scenario are: 1) It is difficult for server  5  to hold particular users  2  accountable for their actions when using the services provided by server  5 , since some or all users  2  are indistinguishable from each other; and 2) Users may fraudulently avoid paying subscription fees that are designed for payment on a per-user basis.  
         [0015]     Another concern is outright credentials theft. In this scenario, a nefarious person having access to a client-like device, referred to as “attacker  3 ” in  FIG. 1 , penetrates a legitimate client device  1  copies stored credentials data from client device  1  into attacker device  3 , perhaps supplements this thievery with a determination of other information such as the user&#39;s password, personal identification number, or social security number from other sources, and then masquerades as the legitimate user from the attacker device  3 . When the client device  1  being attacked is a hardware device and not a software module, this scenario is sometimes referred to as “device cloning”. Client devices  1  that are typically cloned include mobile telephones and smartcards.  
         [0016]     The present invention uses a method of stateful authenticators to provide a low cost, low overhead means of detecting when one user account is being used for more than one client device  1  over a period of time. Specifically, the stateful authenticator used herein is a shared unpredictable secret  50 . The present invention has utility in countering credentials sharing behavior by effectively restricting use of a user account to one or a limited number of client devices  1 . The invention also counters credentials theft by means of detecting the use of one user account from more than one client device  1  after stored credentials have been copied between client devices  1 , regardless of how easy or difficult it was to copy the credentials from the original device  1 .  
         [0017]     All of the method steps illustrated herein describe modules that can be implemented in hardware, software, and/or firmware. Some of these modules reside on the client device  1  and some on the server device  5 , as will be understood by examining the Figures in conjunction with the following description.  
         [0018]     The method will first be described with respect to a special case in which there is but one legitimate client device  1  and one legitimate user associated therewith. There are two phases of the method of the present invention: a registration/reset phase and a log-in phase.  
         [0019]      FIG. 2  illustrates the registration/reset phase. In step  21 , client  1  presents its authentication data to server  5 . The ensuing dialog between client  1  and server  5  is geared to determining whether the user associated with client  1  is legitimately associated with a claimed user account. The authentication data presented by client  1  may include private personal data, a response to a pre-established challenge question posed by server  5 , a biometric input such as a fingerprint or an eyeball scan, etc. The registration/reset phase is designed to be undertaken only infrequently.  
         [0020]     At step  22 , server  5  decides whether the authentication data presented by client  1  are acceptable. If not, client  1  is not allowed to register (step  24 ). If acceptable, client  1  is allowed to register (step  23 ). In this eventuality, the shared unpredictable secret  50  is generated (step  24 ).  
         [0021]     As illustrated in  FIG. 5 , the shared unpredictable secret (SUS)  50  comprises an unpredictable component  51  and an optional fixed component  52 . Unpredictable component  51  must be unpredictable because, pursuant to the present invention, it is replaced during each log-in. Thus, unpredictable component  51  may be generated by a random number generator, a pseudo-random number generator, or a quasi-random number generator. Typically, unpredictable component  51  is generated at server  5 , but it may also be generated at client  1 , or at a combination of server  5  and client  1 . For example, it may be pre-installed in client  1  during manufacture or during a device  1  personalization process.  
         [0022]     When used, fixed component  52  is typically identification information. For example, fixed component  52  may be a serial number of the client device  1 . This could be useful when there are two or more client devices  1  associated with the same user account number. Conversely, fixed component  52  could be the user account number when there is more than one user account number associated with the same client device  1 . This situation may occur, for example, when a user has one account number for business use and another account number for personal use; or when two users share the same cellular telephone  1 .  
         [0023]     Typically, after server  5  has generated SUS  50 , server  5  transmits SUS  50  to client  1 . The transmission is preferably encrypted, for reasons of security. Any type of encryption, including symmetric or asymmetric encryption, may be used. Alternatively, an SUS  50  having an unpredictable component  51  is generated by the aforementioned Diffie-Hellman key exchange technique, or pre-installed in device  1  as described previously. The same SUS  50  is stored in both server  5  and client  1  (step  25 ). SUS&#39;s  50  should be stored in a secure fashion, such as using tamper-resistant hardware protection, e.g., epoxied integrated circuits, or by means of dynamically changing the location of SUS&#39;s  50  (and new SUS&#39;s  54 ) in storage.  
         [0024]      FIG. 3  illustrates the basic method of the log-in phase. The log-in, at least for legitimate users, is not meant to be attempted until after the registration/reset phase has successfully concluded. Steps  30 ,  31 , and  32  are optional. At step  30 , client  1  presents credentials to server  5 . The credentials may include a password, personal identification number (PIN), a transformed (e.g. hashed) password, biometric signature, or cryptographic authentication proof generated from a private cryptographic key. Since log-ins normally occur more frequently than registration/rests, the character and content of the credentials and procedure are such that the server&#39;s check of the credentials is simpler and faster than the server&#39;s check of the user&#39;s authentication data in previously-described step  21 . In step  31 , server  5  checks the credentials. If the check fails, typically the client is not allowed to log in (step  32 ).  
         [0025]     If the check passes, the method moves to step  33 , where client  1  presents proof data to server  5 . The proof data allows server  5  to verify that client  1  holds the correct SUS  50 . It is desirable that SUS  50  itself be not directly communicated over an open network  4  lest it be intercepted by a nefarious person. One method by which client  1  computes proof data without revealing SUS  50  itself is for client  1  to compute a one-way function of SUS  50 . The one-way function is typically a cryptographic hash function. Then, at step  34 , server  5  checks the proof data by applying its proof data generation algorithm to its (server  5 &#39;s) stored version of SUS  50 . If the proof data generated by server  5  matches the proof data presented by client  1 , client  1  has passed the test and is allowed to log in at step  36 . Otherwise, client  1  has failed the test and is given reduced or no privileges at step  35 . In order for this method to work, client  1  and server  5  have to be using consistent if not identical proof data generation algorithms. It is immaterial whether or not an eavesdropper knows what this algorithm is (or what these algorithms are).  
         [0026]     If step  35  is entered, one or more things may happen. For example, client  1  may be rejected outright and not allowed to attempt to log in ever again. Less onerously, client  1  could be allowed to log in but with reduced privileges, such as the ability to read a Web page stored on server  5  but not to conduct any financial transactions thereon; or client  1  could be made to re-enter the registration/reset phase.  
         [0027]     As a corollary to client  1  being allowed to log in at step  36 , a new shared unpredictable secret  54  is generated at step  37 . Again, new SUS  54  (see  FIG. 5 ) is typically generated by sever  5 . Then, at step  38 , server  5  sends update data  53  to client  1 . Update data  53  is such that client  1  and server  5  are able to generate new SUS  54  from the most recent version of SUS  50  by means of applying update data  53  thereto. For example, update data  53  could be a new random, pseudo-random, or quasi-random number that client  1  and server  5  XOR with old SUS  50  in order to generate new SUS  54 . Alternative to the use of update data  53 , server  5  could send an encrypted new SUS  54  to client  1 , but the advantage of sending update data  53  is that update data  53  does not have to be encrypted, thus making for a simpler and less cumbersome protocol.  
         [0028]     At step  39 , client  1  updates its (client  1 &#39;s) storage area that is allocated to SUS&#39;s with new SUS  54 , and at step  40 , server  5  updates its (server  5 &#39;s) storage area that is allocated to SUS&#39;s with new SUS  54 .  
         [0029]     The method illustrated in  FIG. 3  works well when the communication channels  4  are clean and uncorrupted, but a potential problem arises in the case of a noisy or corrupted channel  4 : update data  53  could be lost in transit between client  5  and server  1 .  
         [0030]     One solution to the problem of noisy or corrupted channels  4  is illustrated in  FIG. 4 , wherein an acknowledgement (ACK) message is used. This embodiment is identical to the embodiment illustrated in  FIG. 3  up through step  39 , except that step  36  is not executed until later—user  1  is not allowed to log in until the ACK is received by server  5 . In step  41 , client  1  sends the ACK to server  5  after client  1  has successfully received update data  53 . The ACK may optionally contain proof data that allows server  5  to verify that client  1  has successfully computed the new SUS  54 . The proof data should not be the same proof date as used in step  33 ; otherwise, a replay attack would be possible.  
         [0031]     Step  42  illustrates the reality that server  5  may or may not receive the ACK, either because the update data  53  were lost in transit, the ACK was lost in transit, or the client device  1  failed. If server  5  receives the ACK, then client  1  is allowed to check in at step  36  and step  40  is entered into, i.e., server  5  updates its (server  5 &#39;s) storage area that is allocated to SUS&#39;s with the new SUS  54 . Thus, in future log-in attempts, both client  1  and server  5  will have stored therewithin new SUS  54 ; and the proof data (of client  1  in step  33  and server  5  in step  34 ) will be based upon new SUS  54 .  
         [0032]     If, on the other hand, server  5  does not receive the ACK from client  1 , server  5  (at step  43 ) is programmed to accept proof data emanating from both old SUS  50  and new SUS  54 . Thus, if the situation is that client  1  has received the update data  53 , but for some reason the ACK has been lost in transit, during the next log-in attempt client  1  at step  33  will be presenting proof data emanating from new SUS  54  and server  5  at step  34  will be programmed to accept it. If, on the other hand, the reason that server  5  did not receive the ACK at step  42  was that update data  53  was not received by client  1 , then, during the next log-in attempt, client  1  at step  33  will be presenting proof data emanating from old SUS  50  and server  5  at step  34  will be programmed to accept it.  
         [0033]     The protocols described herein have the following desirable properties: 1) Any SUS ( 50 ) value produces no more than one successful log-in; and 2) If the protocol fails at any stage, both client  1  and server  5  are left in a state that a new invocation of the protocol will operate correctly.  
         [0034]     Optionally, for example in conjunction with step  34 , server  5  maintains an audit trail of log-in attempts, noting in particular those log-in attempts in which the step  34  checks have failed. Each audit record should contain the then current values of old SUS  50  and new SUS  54 . In the event a legitimate user disputes accountability for actions attributed to use of his account, if server  5  maintains an audit trail of log-in attempts, the service provider or systems administrator can use the audit trail in resolving such disputes.  
         [0035]     By using the techniques described herein, any user possessing or knowing correct credentials and attempting a log-in from a client device  1  that holds the correct SUS  50  will succeed in logging in, even in the event a log-in sequence is not successfully completed, owing, for example, to a communication or system failure.  
         [0036]     The present invention automatically protects against message replay, i.e., the situation where an eavesdropper records a session and plays it back. This is because a new SUS  54  is generated at each successful log-in.  
         [0037]     If the legitimate user of the credentials voluntarily shares his credentials with one or more other users who will be operating from what in essence becomes an illegitimate client device  2 , only one client (legitimate client  1  or illegitimate client  2 ) can successfully log in subsequently without server  5  invoking special action, such as causing the requesting client  1 , 2  to re-execute the registration/reset phase. This represents a disincentive for the legitimate user to share his credentials, since his own usage of his account will be negatively impacted.  
         [0038]     If the legitimate user&#39;s credentials are copied in a credentials theft, then one of the following scenarios will subsequently occur:  
         [0039]     1) The legitimate client  1  logs in again before the attacker  3  attempts to masquerade as a legitimate user. In this case, the attacker  3  log-in will be alerted to the server  5  and consequently be subject to special action, such as rejection outright or granting of reduced privileges.  
         [0040]     2) The attacker  3  logs in before legitimate client  1  logs-in again. In this case, attacker  3  can successfully masquerade as a legitimate user up to the time of the legitimate user&#39;s next log-in attempt. On the legitimate user&#39;s next log-in attempt, server  5  will be alerted and special action taken. This special action might include out-of-band communication with the legitimate user, investigation of the situation, and consequent shut-out of attacker  3  from further log-ins.  
         [0041]     As stated previously, there may be legitimate use of a number n of different client devices  1  by a single legitimate user. In this case, server  5  holds current SUS&#39;s  50  and new SUS&#39;s  54  for each client device  1 , and considers each client device  1  to be legitimate; and each client device  1  has its own unique SUS  50  and new SUS  54 . The number n of clients  1  may be restricted in accordance with local policy. In this scenario, SUS&#39;s  50 ,  54  are respectively unique from one device  1  to the next. The registration/reset process has to be undertaken by each client device  1  to establish each SUS  50 . In all other respects, the invention is the same as described above in conjunction with the single client  1  embodiment.  
         [0042]     The above description is included to illustrate the operation of the preferred embodiments and is not meant to limit the scope of the invention. The scope of the invention is to be limited only by the following claims. From the above discussion, many variations will be apparent to one skilled in the art that would yet be encompassed by the spirit and scope of the present invention.