WO2007035846A2 - Authentication method and apparatus utilizing proof-of-authentication module - Google Patents

Authentication method and apparatus utilizing proof-of-authentication module Download PDF

Info

Publication number
WO2007035846A2
WO2007035846A2 PCT/US2006/036762 US2006036762W WO2007035846A2 WO 2007035846 A2 WO2007035846 A2 WO 2007035846A2 US 2006036762 W US2006036762 W US 2006036762W WO 2007035846 A2 WO2007035846 A2 WO 2007035846A2
Authority
WO
WIPO (PCT)
Prior art keywords
authentication
proof
ticket
user
module
Prior art date
Application number
PCT/US2006/036762
Other languages
French (fr)
Other versions
WO2007035846A3 (en
Inventor
Magnus Nyström
Anders Rundgren
William M. Duane
Original Assignee
Rsa Security Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rsa Security Inc. filed Critical Rsa Security Inc.
Priority to EP06803964.3A priority Critical patent/EP1927211B1/en
Publication of WO2007035846A2 publication Critical patent/WO2007035846A2/en
Publication of WO2007035846A3 publication Critical patent/WO2007035846A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords

Definitions

  • the present invention relates generally to cryptographic techniques for authenticating users over a network or in other types of communication systems.
  • authentication information may comprise, for example, passwords that are generated by a security token carried by the user. These passwords may be one-time passwords that are generated using a time-synchronous or event-based algorithm. Other types of authentication information may include, for example, answers to so-called "life questions.”
  • a well-known type of security token is the RSA SecurlD ® hardware-based user authentication token commercially available from RSA Security hie. of Bedford, Massachusetts, U.S.A.
  • the security token may be of a type that can be electrically connected to the computer or other user device, such that the device can read a given password directly from the token.
  • the user may manually enter a password displayed by the token at the time of the attempted access.
  • a problem that arises in conventional authentication arrangements of the type described above is that the user typically has to provide authentication information separately for each application or other resource that he or she would like to access. In the case of a connectable security token, this may involve re-entering a personal identification number (PIN) each time the token is accessed by the device. In the case of a token that is not connectable, manual entry of different one-time passwords for each application may be required. JLJHe actual autnentication ot toe user for access to the applications generally occurs at a centralized authentication server or other authentication authority that receives the passwords or other authentication information from the user device via a network. Thus, the user may need to authenticate towards the same authentication authority a number of times in a short time frame. If the passwords are generated based on a time-synchronous algorithm, there may be a limit on how often users are able to authenticate.
  • Kerberos Network Authentication Service Version 5 (V5), described in J. Kohl et al., Internet Engineering Task Force (IETF), Request for Comments (RFC) 1510, September 1993.
  • IETF Internet Engineering Task Force
  • RRC Request for Comments
  • Kerberos authentication requires the use of specially adapted communication protocols, and is not readily adaptable for use with standard communication protocols.
  • the present invention in the illustrative embodiments described herein provides single sign-on authentication techniques that allow multiple accesses to one or more applications or other resources using a proof-of-authentication module operating in conjunction with a standard authentication component.
  • one of the applications or other resources issues an authentication information request to the standard authentication component, responsive to an access request from the user.
  • the authentication information may be, for example, a password or other type of authentication credential, and may be generated by a connectable or non-connectable security token, or any other technique ordinarily requiring user authentication.
  • the application or other resource receives, responsive to the authentication information request, a proof-of-authentication value from the standard authentication component, and authenticates the user based on the received proof-of-authentication value.
  • the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value.
  • the proof-of-authentication module is configured to generate multiple proof-of-authentication values for authentication of respective access requests of the user.
  • the application or other resource is not aware that the authentication information provided by the standard authentication component is a proof-of-authentication value and is unable to distinguish it from ordinary authentication information.
  • the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value based on a ticket previously issued by a ticket issuer, with the. proof-of-authentication module being configured to generate from the ticket the multiple proof-of-authentication values for authentication of respective ones of multiple access requests of the user.
  • the ticket may be issued by the ticket issuer responsive to a successful authentication of the user based on a password or other authentication credential submitted by the user.
  • the proof-of-authentication module may authenticate itself to the ticket issuer using, for example, a password or other authentication credential, or a key derived from such a password or other credential.
  • the ticket may be conveyed from the ticket issuer to the proof-of- authentication module in encrypted form, and may be stored locally by the proof-of- authentication module, for example, in encrypted form, and possibly with additional information, such as the password or other authentication credential used to acquire the ticket.
  • the authentication techniques of the illustrative embodiments overcome one or more of the problems associated with the conventional techniques described previously, and permit users to authenticate themselves to multiple applications, or multiple times to a single application, while avoiding repeated entry of passwords or other authentication information. Moreover, no modification of the applications or communication protocols is required.
  • FIG. 1 is simplified block diagram of an example communication system in an illustrative embodiment of the invention.
  • FIG. 2 illustrates one possible implementation of a given user device, server or other processing device of the FIG. 1 system.
  • FIGS. 3 and 4 are diagrams showing authentication processes in illustrative embodiments of the invention. Detailed Description
  • authentication information is intended to include passwords, passcodes, answers to life questions, or other authentication credentials, or values derived from such authentication credentials, or more generally any other information that a user may be required to submit in order to obtain access to an access-controlled application.
  • authentication information is intended to include passwords, passcodes, answers to life questions, or other authentication credentials, or values derived from such authentication credentials, or more generally any other information that a user may be required to submit in order to obtain access to an access-controlled application.
  • the present invention in an illustrative embodiment provides an improved single sign-on authentication process.
  • Single sign-on in this illustrative context refers generally to an arrangement in which a user need only enter or otherwise provide his or her authentication information once in order to obtain multiple accesses to one or more access-controlled applications.
  • FIG. 1 shows a simplified network-based communication system 100 which will be used to illustrate the single sign-on techniques of the invention.
  • the system 100 includes a user device 102, an application 104, a proof-of-authentication (POA) module 106, and a standard authentication component 108.
  • the system 100 further includes one or more servers 110 which comprise an authentication authority 112 and a ticket issuer 114.
  • the user device 102 may represent a portable device, such as a mobile telephone, personal digital assistant (PDA), wireless email device, game console, etc.
  • the user device 102 may alternatively represent a desktop or laptop personal computer (PC), a microcomputer, a workstation, a mainframe computer, a wired telephone, a television set top box, or any other information processing device which can benefit from the use of single sign-on techniques in accordance with the invention.
  • the user device 102 may also be referred to herein as simply a "user.”
  • the term "user” should be understood to encompass, by way of example and without limitation, a user device, a person utilizing or otherwise associated with the device, or a combination of both.
  • An operation described herein as being performed by a user may therefore, for example, be performed by a user device, a person utilizing or otherwise associated with the device, or by a combination of both the person and the device.
  • a password or other authentication information described as being associated with a user may, for example, be associated with a user device, a person utilizing or otherwise associated with the device, or a combination of both the person and the device.
  • the application 104 is an access-controlled application, that is, one which grants user access responsive to an authentication process, as will be described in greater detail in conjunction with FIGS. 3 and 4.
  • the application may be, for example, a remote application such as a web site or other software program that is accessed by the user device 102 over a network.
  • the network may comprise, for example, a global computer network such as the Internet, a wide area network (WAN), a local area network (LAN), a satellite network, a telephone or cable network, or various portions or combinations of these and other types of networks.
  • An application maybe viewed as an example of what is more generally referred to herein as a "resource.”
  • application 104 may be an application resident on the user device 102, although it is not shown as such in the figure.
  • the POA module 106 operates in conjunction with the standard authentication component 108 and other elements of system 100 to provide a single sign-on experience for the user device 102, as will be described in greater detail below.
  • the POA module 106 is shown in FIG. 1 as being separate from the user device 102. It may be a server or other type of module that is accessible over a network, such as the Internet, or it may be a software component resident on the user device 102. As another alternative, it may be distributed over multiple devices, one of which may be the user device 102.
  • the standard authentication component 108 is implemented as a password request-detecting component. As one possible alternative, the standard authentication component can be explicitly .invoked or otherwise notified of the authentication information request by the application.
  • the standard authentication component may be separate from the user device 102, as shown in the figure, and accessible to the user device over a network or other communication medium. Alternatively, it may be incorporated into the user device itself, or implemented in a distributed manner.
  • the terms "module” and “component” as used herein are intended to be construed broadly, and should not be interpreted as requiring any particular physical configuration. Such elements may be, for example, part of a common processing device, or may be implemented on separate processing devices or separate sets of multiple processing devices, and each may represent software, hardware or firmware or various combinations thereof. The terms may be used interchangeably, such that a module in a given embodiment may be viewed as comprising a component of a processing device or other system element.
  • the application 104 interacts with the standard authentication component 108 and the authentication authority 112 of the server(s) 110.
  • the POA module 106 interacts with the standard authentication component 108 and the ticket issuer 114 of the server(s) 110. These interactions may occur over one or more networks, or using other types of communication media.
  • the authentication authority 112 and ticket issuer 114 may be implemented as entirely separate elements in other embodiments.
  • the ticket issuer 114 may be incorporated into the authentication authority 112, such that the ticket is issued by a ticket issuing component of the authentication authority.
  • the POA module 106 in the above-described embodiments can be implemented as a process running on the user device 102. Such a process would be configured to listen for password requests from the password request-detecting component.
  • the POA module stores tickets associated with users and identified passwords, so that it is able to calculate and respond with a correct POA value when a request is made, as will be described in greater detail below.
  • a given embodiment of the system 100 may include multiple instances of user device 102, application 104, POA module 106, standard authentication component 108, and possibly other system components, although only single instances of such components are shown in the simplified system diagram for clarity of illustration.
  • FIG. 2 shows one possible implementation of a given processing device of the FIG. 1 system.
  • the processing device as shown may be viewed as representing, for example, user device 102, a server or other processing device on which application 104, POA module 106 or standard authentication component 108 is running, or one or more servers 110 which collectively provide the authentication authority 112 and the ticket issuer 114.
  • the processing device in this implementation includes a processor 200 coupled to a memory 202 and a network interface 204.
  • portions of a single sign-on technique in accordance with an embodiment of the invention can be implemented at least in part in the form of one or more software programs that are stored in memory 202 and executed by the corresponding processor 200.
  • the memory 202 is also used for storing information used to perform computations or other operations associated with the single sign-on technique.
  • the standard authentication component 108 which as noted above is illustratively implemented as a password request-detecting component, detects a password request that is generated by the application 104 when a need to authenticate the user 102 arises.
  • the password request may be, for example, a request for a one-time password.
  • the standard authentication component 108 makes a call to the POA module 106 requesting the password.
  • the POA module 106 determines whether or not a ticket exists for the identified password.
  • the POA module 106 derives a unique POA value from it and provides that value back to the application 104.
  • the POA module 106 requests the password from the user 102. It is also possible that, at this point, the application or the password request-detecting component has already requested the password and provided it to the POA module. Once the password is available to it, the POA module may, for example, contact ticket issuer 114 and request a ticket for the user, possibly authenticating the request using the provided password or through some other means, or directly pass the password back to the password request-detecting component, and contact the ticket issuer thereafter. In the former case, the POA module may construct a POA once the ticket has been delivered to it, and provide the newly constructed POA back to the password request-detecting component rather than the password itself, such that the application will never see actual passwords.
  • the POA module will store the ticket associated with the user and may also or alternatively store a password identifier for future use.
  • the ticket may be stored locally by the POA module, possibly in encrypted form, and possibly with additional information, such as the password used to acquire the ticket.
  • the POA module 106 may authenticate to the ticket issuer 114 using, for example, a shared secret, a one-time password or other type of password, a key derived from a password using an approach such as PBKDF2, as will be described in greater detail below, or other techniques.
  • the standard authentication component 108 provides the returned value to the requesting application 104. Note that the requesting application is unaware of whether the returned value is the expected password or a POA value derived from a ticket.
  • the application 104 attempts to authenticate the user with the provided value by communicating the value to the authentication authority 112.
  • the authentication authority 112 validates it against its password database.
  • the authentication authority checks to see that it is valid, has not been used before, and is within the designated lifetime of a session established by the authentication that caused the underlying ticket to be issued.
  • the POA module 106 will at some point contact ticket issuer 114 requesting that a ticket be issued.
  • the request may be authenticated by a value derived from the provided password or by some other technique or a combination thereof.
  • the ticket issuer validates the request and, if successful, issues a ticket to the POA module for the given user and password.
  • the ticket is sent back to the POA module, possibly in protected form. For example, it may be encrypted using a key derived from the password used to authenticate the request, or it may be encrypted using a key associated with a secure sockets layer (SSL) session.
  • SSL secure sockets layer
  • the POA module stores the received ticket associated with the user and may also or alternatively store a password identifier or other additional information for later use, as described previously.
  • the ticket issuer 114 communicates with the authentication authority 112 and queries the authentication authority for the latest password used by the identified user, or, alternatively, whether a provided ticket request is authentic. When a request has been accepted, the ticket issuer may generate a session key or other random secret value as a ticket. The ticket may be protected using, for example, a value derived from the user password, before the ticket issuer sends it back to the POA module.
  • the POA module 106 may, upon discovering that a ticket does not exist, return a failure indication to the standard authentication component 108, in which case the password request- detecting component would request the password from the user, contact the ticket issuer requesting a ticket, possibly authenticating the request using the password, and provide the issued ticket to the POA module for storage and future use once the ticket has been received.
  • the standard authentication component 108 would request a POA value from the POA module after having provided the ticket to the POA module.
  • the standard authentication component could also provide the user-supplied password to the requesting application before requesting a ticket.
  • passwords are referred to in the context of the particular embodiment just described, the techniques may be of course implemented using other types of credentials or more generally other authentication information.
  • the techniques are applicable in a straightforward manner to a wide variety of other types of access-controlled resources, and such resources may be local to or remote from the user device.
  • FIGS. 3 and 4 another illustrative embodiment of a single sign-on authentication process is shown.
  • the process in this embodiment is generally similar to that previously described. It is again assumed that this process is implemented in the system 100 of FIG. 1, utilizing interaction between system elements 102, 104, 106, 108 and 110 as shown.
  • the authentication information again comprises a password, also referred to herein as a passcode.
  • the return value supplied by the POA module 106 to the standard authentication component 108 is also referred to as a POA token.
  • the ticket generated by the ticket issuer 114 of server(s) 110 for a particular user and passcode is also referred to as a "key.”
  • FIG. 3 generally illustrates the acquisition of a ticket by the POA module and the initial use of the POA value for an initial access attempt, while FIG. 4 shows the use of a POA value for a subsequent access attempt.
  • the subsequent access attempt may be a subsequent access to the same application, or an access to a different application:
  • FIG. 3 operations associated with particular points in time denoted TO through TI l are shown. It is assumed that the POA module 106 has no ticket or "key" for the user 102 prior to the initiation of these operations.
  • the user 102 attempts to access a protected application 104, which is more specifically denoted as a remote application for purposes of this example.
  • the application 104 requests login data from the standard authentication component 108.
  • This operation may make use of a standardized programming interface, such as PKCS #11, described in RSA Laboratories, "PKCS #11: Cryptographic Token Interface Standard," Version 2.20, June 2004, which is incorporated by reference herein.
  • PKCS #11 a standardized programming interface
  • a library implementation of PKCS #11 may be used, calling a local service implementing the POA module whenever invoked by an application, and also requesting passwords for registered user devices when needed.
  • the library can be dynamically linked to authenticating applications, allowing them to make use of the POA functionality without a need for modification.
  • An extension to PKCS #11 to handle one-time passwords is also known, and may be used in conjunction with the present invention.
  • the standard authentication component 108 requests a POA value, also referred to as a POA token, from the POA module 106.
  • the POA module 106 since it was assumed that the POA module 106 has no key for user 102, the user is requested to supply a user identification (ID) and passcode. At time T4, the requested user ID and passcode from user 102 are received by the POA module 106.
  • ID user identification
  • passcode passcode
  • the POA module 106 requests the issuance of a ticket from element 110.
  • the ticket issuer 114 is part of the authentication authority 112, such that the request for the ticket is directed to the authentication authority as shown.
  • the ticket may be authenticated by the login data previously supplied by the user.
  • the authentication authority via its associated ticket issuer, returns a success status along with a POA ticket which is stored in the POA module.
  • Times T7 through TIl proceed generally in the same manner as times T3' through T7' of FIG. 4.
  • the POA module 106 now has a POA ticket, also referred to as a key, for the user 102. Operations associated with particular points in time denoted TO' through T7' are shown. The key was obtained via the operations associated with times TO through T6 in FIG. 3. At time TO', the user 102 attempts to access remote application 104. As indicated previously, this access may be a subsequent access to the same application referred to in FIG. 3, or a subsequent access to a different application.
  • the application 104 requests login data from the standard authentication component 108.
  • this operation may make use of a standardized programming interface, such as PKCS #11.
  • the standard authentication component 108 requests a POA token from the POA module 106.
  • the POA module 106 which now has a ticket or key for the user 102, returns a new POA token to the standard authentication component 108.
  • the standard authentication component 108 returns the POA token to the requesting application 104 as login data.
  • the application 104 issues a request to the authentication authority of element 110 to verify the received data, that is, the POA token. The application is unable to distinguish the POA token from ordinary authentication information that would otherwise be supplied by the standard authentication component 108.
  • the authentication authority returns an indication of a successful authentication of the user.
  • the application grants access to the user.
  • One such technique involves signaling that a password is being requested through the use of a special control sequence.
  • the calling application may request the password through a standardized programming interface such as the above-noted PKCS #11, or its extension for handling one-time passwords. This has the benefits of assuring a consistent user experience when requesting passwords, and at the same time making it simpler for applications to support multiple types of authentication credentials and authentication processes.
  • the POA module 106 is also responsible for contacting the ticket issuer when no ticket is found for a password that is configured to be associated with a ticket. When doing this, the POA module needs to authenticate itself to the ticket issuer. The POA module may do this, for example, by providing evidence of knowledge of the password just retrieved from the user, or through some other technique, such as a technique involving a shared secret key or a public-private key pair. The latter approach has the drawback of requiring the ticket issuer to have a database of shared secrets or public keys for each POA module.
  • the former makes use of the fact that the password is itself a shared secret and may be used to a ⁇ tneritlcate ⁇ iVP ⁇ " A " modure "
  • the password should generally not be used as is, however, since such practice could disclose it to an eavesdropper. Instead, one may, for example, derive a key from the password. This may involve using the PBKDF2 method from PKCS #5, described in RSA Laboratories, "Password-Based Cryptography Standard," Version 2.0, March 1999, which is incorporated by reference herein, and then calculating an authentication code on the message requesting a ticket for the identified user:
  • ticlcetRequest credentialldentifier
  • Key ⁇ is a key derived from the password, e.g., using PBKDF2
  • credentialldentifier could be an identifier for the key or the user in possession of the key
  • MAC denotes some well-known message authentication code algorithm such as HMAC-SHAl .
  • Other possible techniques for using the password to authenticate the request include, for example, SPEKE, described in D. Jablon, "Strong Password-Only Authenticated Key Exchange," Computer Communication Review, ACM SIGCOMM, vol. 26, no. 5, pp. 5-26, October 1996; EKE, described in S. Bellovin and M.
  • the ticket sent back from the ticket issuer 114 to the POA module 106 may comprise, for example, a session key, a shared secret, or a public-private key pair. Any secret value or component needs however to be protected in transit. Again, traditional techniques using a shared secret between the POA module and the ticket issuer or a PKI may be used, but with the same disadvantages as already mentioned. Another approach is to calculate a key Key ⁇ from the password, e.g., using the aforementioned PBKDF2, and then encrypt the confidential parts of the ticket response message:
  • ticketResponse EnC ⁇ 2 (sessionKey)
  • again denotes concatenation
  • Keyi is a key derived from the password, e.g., using PBKDF2
  • Enc represents some well-known encryption algorithm such as AES.
  • the otherData variable may contain, for example, an identifier for a one-time password device, a ticket request, a state value such as the time associated with the password in case of time-based one-time password devices, or combinations of these or other types of information.
  • the POA module calculates Keyj and decrypts encrypted parts of the response to retrieve the session key or other ticket.
  • the ticket issuer may also authenticate the response to prove that it knows the key as well as the user password. Furthermore, the ticket issuer may integrity-protect the response to protect against unauthorized modification of the contents. Similarly, the POA module may apply these protections to the ticket request preceding the response.
  • the POA module may, for efficiency reasons and for better local security, choose to store not the sessionKey itself, but rather some value derived from it.
  • One example would be to store the cryptographic hash of the session key and some other information, e.g., parts of the otherData value, and use that as a secret key when generating POA values:
  • the optional password is the password the ticket was issued for.
  • One reason to include the password in the calculations is that it allows the authentication authority to maintain a policy with regard to the lifetime of session keys, as will be described below.
  • POA prefix
  • counter prefix
  • counter prefix
  • counter a monotonically increasing counter value which is set to one by the POA module the first time a given session key is used and then incremented for each use.
  • MAC ⁇ (X) denotes the message authentication code of X, given key Key.
  • the counter value allows the authentication authority to detect replay attacks.
  • the otherData variable may include information sent from the ticket issuer in the ticket response message. As an example, when users authenticate with one-time passwords generated by an event-based device, it could be the state associated with the password used when the ticket was issued.
  • the authentication authority having determined that an authentication request is based on a POA value and not a password, retrieves the session key for the identified user and uses it as a basis for validating the request. For example, the authentication authority may calculate the password valid at the state indicated through the otherData component in the POA value. It then calculates Keyi and verifies that the authenticated portion of the POA value matches the provided counter value, and that the provided counter value is at least one higher than the recorded one. It also checks that the lifetime of the session key, as determined by the otherData and state, has not expired. It should be noted that the authenticated part of the POA value may be truncated to allow the POA value to fit into existing legacy protocols. The truncation does not hinder the authentication authority in validating the POA value, since the otherData value is sent complete.
  • the POA value itself could also be encoded so as to have the same "look" as an ordinary password, e.g., only consist of letters and digits, to further ease its use in legacy protocols expecting such passwords.
  • the provided session key could be regarded as the key for a "virtual" one-time password device, although that may, depending on the one-time password algorithm, complicate the goal of an unlimited number of authentications within a short time frame.
  • the dynamically created "virtual" one-time password device may or may not be visible to applications on the user device. Visibility may complicate the implementation since the "virtual" one-time password device should not be visible to users or applications, or else there may be a need to choose between it and the user's ordinary credentials. Visibility on the user device may however simplify usage at the authentication authority, which does not need to keep track of, or recognize "special" POA elements during an authentication operation. However, the authentication authority would need to be modified to issue the "virtual" device.
  • the POA module stores a user-provided credential and re-uses it as a POA value in subsequent authentication requests, within a specified time limit, or calculates later POA values from it.
  • This approach suffers from several drawbacks, however. First, it would allow for replay of a POA value learnt by an attacker. As an example, if the user is tricked into providing a POA value to a malicious application, that application could then repeatedly authenticate as the user. Contrast this with the POA value with built-in replay protection as described previously herein, which only allows use of such a learnt value once.
  • the entropy of a user-provided static or one-time password is relatively low, an attacker observing POA values derived from such a password may eventually be able to determine the password.
  • the illustrative embodiments of the invention as described herein provide an improved single sign-on capability for users of password-based authentication systems.
  • the single sign-on capability in the illustrative embodiments is provided through the use of a POA module that generates fU ⁇ vames mat are ⁇ erived from a ticket.
  • the ticket is issued in response to an authenticated request from the POA module to a ticket issuer.
  • the request may be authenticated with a user-provided password that previously has been used to authenticate the user to an application.
  • This approach allows independent applications on a user computer or other user device, as well as applications which are remote from the user device, to obtain from the POA module a value that is derived from the ticket and to use that value to authenticate the user rather than querying the user for an additional password.
  • An authentication authority through an associated ticket issuer can maintain a policy with regard to the lifetime of issued tickets and any credentials derived from them, and protect against misuse of the initially provided password.
  • the illustrative embodiments do not require changes to existing communication protocols nor that authenticating applications be aware of the existence of tickets, only of the need to authenticate users. It is therefore transparent to both existing applications and communication protocols.
  • the described techniques may be used with security tokens that generate one-time passwords or other types of authentication information, regardless of whether such tokens are connectable to the user device.
  • the limited use of the original credential also means that the method described herein is less vulnerable to host compromises.
  • Such other environments may include, for instance, environments where there is a need to repeatedly authenticate users to a protected resource, e.g., personal information management synchronization applications such as Microsoft ActiveSync, or environments where a client acting on behalf of a user repeatedly needs to authenticate to a protected resource, e.g., content aggregator clients such as Yodlee or virtual checkbooks such as those available from Quicken or MS Money, and numerous other contexts involving access-controlled applications or other resources.
  • personal information management synchronization applications such as Microsoft ActiveSync
  • content aggregator clients such as Yodlee or virtual checkbooks
  • virtual checkbooks such as those available from Quicken or MS Money
  • Another exemplary environment in which the above-described techniques may be applied is one in which a user logs on to a host in offline (i.e., not connected to a network) mode and subsequently the host is connected and one would like to avoid having the user authenticate again to get access to networked resources.
  • Such an arrangement should be understood to involve multiple access requests as that term is used herein.

Abstract

A single sign-on technique allows multiple accesses to one or more applications or other resources using a proof-of-authentication module operating in conjunction with a standard authentication component. The application or other resource issues an authentication information request to the standard authentication component responsive to an access request from the user. The application or other resource receives, responsive to the authentication information request, a proof-of-authentication value from the standard authentication component, and authenticates the user based on the proof-of-authentication value. The standard authentication component interacts with the proof-of-authentication module to obtain the proof- of-authentication value. The proof-of-authentication module is configured to generate multiple proof-of-authentication values for authentication of respective access requests of the user.

Description

AUTHENTICATION METHOD AND APPARATUS UTILIZING PROOF-OF-AUTHENTICATION MODULE
Related Application^) The present application claims the priority of U.S. Provisional Patent Application Serial
No. 60/718,978, filed September 21, 2005 and entitled "Proof-of-Authentication Method Offering Single Sign-On for End Users," the disclosure of which is incorporated by reference herein.
Field of the Invention
The present invention relates generally to cryptographic techniques for authenticating users over a network or in other types of communication systems.
Background of the Invention In order to gain access to applications or other resources via a computer or other user device, users are often required to authenticate themselves by entering authentication information. Such authentication information may comprise, for example, passwords that are generated by a security token carried by the user. These passwords may be one-time passwords that are generated using a time-synchronous or event-based algorithm. Other types of authentication information may include, for example, answers to so-called "life questions." One particular example of a well-known type of security token is the RSA SecurlD® hardware-based user authentication token commercially available from RSA Security hie. of Bedford, Massachusetts, U.S.A.
With respect to passwords generated by a security token, the security token may be of a type that can be electrically connected to the computer or other user device, such that the device can read a given password directly from the token. For other security tokens that are not connectable to a computer or other user device in this manner, the user may manually enter a password displayed by the token at the time of the attempted access.
A problem that arises in conventional authentication arrangements of the type described above is that the user typically has to provide authentication information separately for each application or other resource that he or she would like to access. In the case of a connectable security token, this may involve re-entering a personal identification number (PIN) each time the token is accessed by the device. In the case of a token that is not connectable, manual entry of different one-time passwords for each application may be required. JLJHe actual autnentication ot toe user for access to the applications generally occurs at a centralized authentication server or other authentication authority that receives the passwords or other authentication information from the user device via a network. Thus, the user may need to authenticate towards the same authentication authority a number of times in a short time frame. If the passwords are generated based on a time-synchronous algorithm, there may be a limit on how often users are able to authenticate.
One known technique that attempts to address this problem is the Kerberos Network Authentication Service, Version 5 (V5), described in J. Kohl et al., Internet Engineering Task Force (IETF), Request for Comments (RFC) 1510, September 1993. Unfortunately, applications must be modified in order to support Kerberos authentication. Moreover, Kerberos authentication requires the use of specially adapted communication protocols, and is not readily adaptable for use with standard communication protocols.
Accordingly, what is needed is an improved approach that avoids the repeated entry of authentication information but does not require changes to existing applications or communication protocols.
Summary of the Invention
The present invention in the illustrative embodiments described herein provides single sign-on authentication techniques that allow multiple accesses to one or more applications or other resources using a proof-of-authentication module operating in conjunction with a standard authentication component. m accordance with an aspect of the invention, one of the applications or other resources issues an authentication information request to the standard authentication component, responsive to an access request from the user. The authentication information may be, for example, a password or other type of authentication credential, and may be generated by a connectable or non-connectable security token, or any other technique ordinarily requiring user authentication. The application or other resource receives, responsive to the authentication information request, a proof-of-authentication value from the standard authentication component, and authenticates the user based on the received proof-of-authentication value. The standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value. The proof-of-authentication module is configured to generate multiple proof-of-authentication values for authentication of respective access requests of the user. The application or other resource is not aware that the authentication information provided by the standard authentication component is a proof-of-authentication value and is unable to distinguish it from ordinary authentication information.
In an illustrative embodiment, the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value based on a ticket previously issued by a ticket issuer, with the. proof-of-authentication module being configured to generate from the ticket the multiple proof-of-authentication values for authentication of respective ones of multiple access requests of the user. The ticket may be issued by the ticket issuer responsive to a successful authentication of the user based on a password or other authentication credential submitted by the user. The proof-of-authentication module may authenticate itself to the ticket issuer using, for example, a password or other authentication credential, or a key derived from such a password or other credential. The ticket may be conveyed from the ticket issuer to the proof-of- authentication module in encrypted form, and may be stored locally by the proof-of- authentication module, for example, in encrypted form, and possibly with additional information, such as the password or other authentication credential used to acquire the ticket.
The authentication techniques of the illustrative embodiments overcome one or more of the problems associated with the conventional techniques described previously, and permit users to authenticate themselves to multiple applications, or multiple times to a single application, while avoiding repeated entry of passwords or other authentication information. Moreover, no modification of the applications or communication protocols is required. These and other features and advantages of the present invention will become more readily apparent from the accompanying drawings and the following detailed description.
Brief Description of the Drawings FIG. 1 is simplified block diagram of an example communication system in an illustrative embodiment of the invention.
FIG. 2 illustrates one possible implementation of a given user device, server or other processing device of the FIG. 1 system.
FIGS. 3 and 4 are diagrams showing authentication processes in illustrative embodiments of the invention. Detailed Description
The present invention will be described herein with reference to an example communication system in which a user device communicates with an authentication authority and one or more additional entities. It is to be appreciated, however, that the invention is not restricted to use in this or any other particular system configuration.
Additional details regarding certain conventional cryptographic techniques referred to herein may be found in, e.g., AJ. Menezes et al., Handbook of Applied Cryptography, CRC Press, 1997, which is incorporated by reference herein.
The term "authentication information" as used herein is intended to include passwords, passcodes, answers to life questions, or other authentication credentials, or values derived from such authentication credentials, or more generally any other information that a user may be required to submit in order to obtain access to an access-controlled application. Although the illustrative embodiments will be described below in the context of passwords, it is to be appreciated that the invention is more broadly applicable to any other type of authentication information.
The present invention in an illustrative embodiment provides an improved single sign-on authentication process. Single sign-on in this illustrative context refers generally to an arrangement in which a user need only enter or otherwise provide his or her authentication information once in order to obtain multiple accesses to one or more access-controlled applications.
FIG. 1 shows a simplified network-based communication system 100 which will be used to illustrate the single sign-on techniques of the invention. The system 100 includes a user device 102, an application 104, a proof-of-authentication (POA) module 106, and a standard authentication component 108. The system 100 further includes one or more servers 110 which comprise an authentication authority 112 and a ticket issuer 114.
The user device 102 may represent a portable device, such as a mobile telephone, personal digital assistant (PDA), wireless email device, game console, etc. The user device 102 may alternatively represent a desktop or laptop personal computer (PC), a microcomputer, a workstation, a mainframe computer, a wired telephone, a television set top box, or any other information processing device which can benefit from the use of single sign-on techniques in accordance with the invention.
The user device 102 may also be referred to herein as simply a "user." The term "user" should be understood to encompass, by way of example and without limitation, a user device, a person utilizing or otherwise associated with the device, or a combination of both. An operation described herein as being performed by a user may therefore, for example, be performed by a user device, a person utilizing or otherwise associated with the device, or by a combination of both the person and the device. Similarly, a password or other authentication information described as being associated with a user may, for example, be associated with a user device, a person utilizing or otherwise associated with the device, or a combination of both the person and the device.
The application 104 is an access-controlled application, that is, one which grants user access responsive to an authentication process, as will be described in greater detail in conjunction with FIGS. 3 and 4. The application may be, for example, a remote application such as a web site or other software program that is accessed by the user device 102 over a network. The network, not explicitly shown in the figure, may comprise, for example, a global computer network such as the Internet, a wide area network (WAN), a local area network (LAN), a satellite network, a telephone or cable network, or various portions or combinations of these and other types of networks. An application maybe viewed as an example of what is more generally referred to herein as a "resource." Alternatively, application 104 may be an application resident on the user device 102, although it is not shown as such in the figure.
The POA module 106 operates in conjunction with the standard authentication component 108 and other elements of system 100 to provide a single sign-on experience for the user device 102, as will be described in greater detail below. The POA module 106 is shown in FIG. 1 as being separate from the user device 102. It may be a server or other type of module that is accessible over a network, such as the Internet, or it may be a software component resident on the user device 102. As another alternative, it may be distributed over multiple devices, one of which may be the user device 102. In the present embodiment, the standard authentication component 108 is implemented as a password request-detecting component. As one possible alternative, the standard authentication component can be explicitly .invoked or otherwise notified of the authentication information request by the application.
Like the POA module, the standard authentication component may be separate from the user device 102, as shown in the figure, and accessible to the user device over a network or other communication medium. Alternatively, it may be incorporated into the user device itself, or implemented in a distributed manner. The terms "module" and "component" as used herein are intended to be construed broadly, and should not be interpreted as requiring any particular physical configuration. Such elements may be, for example, part of a common processing device, or may be implemented on separate processing devices or separate sets of multiple processing devices, and each may represent software, hardware or firmware or various combinations thereof. The terms may be used interchangeably, such that a module in a given embodiment may be viewed as comprising a component of a processing device or other system element.
The application 104 interacts with the standard authentication component 108 and the authentication authority 112 of the server(s) 110. The POA module 106 interacts with the standard authentication component 108 and the ticket issuer 114 of the server(s) 110. These interactions may occur over one or more networks, or using other types of communication media. Although illustratively shown as elements of a common server or set of servers in FIG.
1 , the authentication authority 112 and ticket issuer 114 may be implemented as entirely separate elements in other embodiments. As another alternative, the ticket issuer 114 may be incorporated into the authentication authority 112, such that the ticket is issued by a ticket issuing component of the authentication authority.
It is possible for the POA module 106 in the above-described embodiments to be implemented as a process running on the user device 102. Such a process would be configured to listen for password requests from the password request-detecting component. The POA module stores tickets associated with users and identified passwords, so that it is able to calculate and respond with a correct POA value when a request is made, as will be described in greater detail below.
It is to be appreciated that a given embodiment of the system 100 may include multiple instances of user device 102, application 104, POA module 106, standard authentication component 108, and possibly other system components, although only single instances of such components are shown in the simplified system diagram for clarity of illustration.
FIG. 2 shows one possible implementation of a given processing device of the FIG. 1 system. The processing device as shown may be viewed as representing, for example, user device 102, a server or other processing device on which application 104, POA module 106 or standard authentication component 108 is running, or one or more servers 110 which collectively provide the authentication authority 112 and the ticket issuer 114. The processing device in this implementation includes a processor 200 coupled to a memory 202 and a network interface 204.
These device elements may be implemented in whole or in part as a conventional microprocessor, digital signal processor, application-specific integrated circuit (ASIC) or other type of circuitry, as well as portions or combinations of such circuitry elements. As will be appreciated by those skilled in the art, portions of a single sign-on technique in accordance with an embodiment of the invention can be implemented at least in part in the form of one or more software programs that are stored in memory 202 and executed by the corresponding processor 200. The memory 202 is also used for storing information used to perform computations or other operations associated with the single sign-on technique.
In operation, the standard authentication component 108, which as noted above is illustratively implemented as a password request-detecting component, detects a password request that is generated by the application 104 when a need to authenticate the user 102 arises. The password request may be, for example, a request for a one-time password. The standard authentication component 108 makes a call to the POA module 106 requesting the password. The POA module 106 determines whether or not a ticket exists for the identified password.
If a ticket exists, the POA module 106 derives a unique POA value from it and provides that value back to the application 104.
If a ticket does not exist, but is allowed for the identified password, the POA module 106 requests the password from the user 102. It is also possible that, at this point, the application or the password request-detecting component has already requested the password and provided it to the POA module. Once the password is available to it, the POA module may, for example, contact ticket issuer 114 and request a ticket for the user, possibly authenticating the request using the provided password or through some other means, or directly pass the password back to the password request-detecting component, and contact the ticket issuer thereafter. In the former case, the POA module may construct a POA once the ticket has been delivered to it, and provide the newly constructed POA back to the password request-detecting component rather than the password itself, such that the application will never see actual passwords. Regardless of the chosen option, the POA module will store the ticket associated with the user and may also or alternatively store a password identifier for future use. Thus, in a given embodiment, the ticket may be stored locally by the POA module, possibly in encrypted form, and possibly with additional information, such as the password used to acquire the ticket. The POA module 106 may authenticate to the ticket issuer 114 using, for example, a shared secret, a one-time password or other type of password, a key derived from a password using an approach such as PBKDF2, as will be described in greater detail below, or other techniques. The standard authentication component 108 provides the returned value to the requesting application 104. Note that the requesting application is unaware of whether the returned value is the expected password or a POA value derived from a ticket.
The application 104 attempts to authenticate the user with the provided value by communicating the value to the authentication authority 112.
If the value is a password, the authentication authority 112 validates it against its password database.
If the value is a POA value, the authentication authority checks to see that it is valid, has not been used before, and is within the designated lifetime of a session established by the authentication that caused the underlying ticket to be issued.
As mentioned above, the POA module 106 will at some point contact ticket issuer 114 requesting that a ticket be issued. The request may be authenticated by a value derived from the provided password or by some other technique or a combination thereof. Once the request has been received, the ticket issuer validates the request and, if successful, issues a ticket to the POA module for the given user and password. The ticket is sent back to the POA module, possibly in protected form. For example, it may be encrypted using a key derived from the password used to authenticate the request, or it may be encrypted using a key associated with a secure sockets layer (SSL) session. The POA module stores the received ticket associated with the user and may also or alternatively store a password identifier or other additional information for later use, as described previously.
The ticket issuer 114 communicates with the authentication authority 112 and queries the authentication authority for the latest password used by the identified user, or, alternatively, whether a provided ticket request is authentic. When a request has been accepted, the ticket issuer may generate a session key or other random secret value as a ticket. The ticket may be protected using, for example, a value derived from the user password, before the ticket issuer sends it back to the POA module.
Since it is usually desirable to keep the authenticating application 104 unaware of the existence of tickets and POA values, that application should not be used as a channel to provide a ticket back to the user device 102 for later POA use. The POA module 106 may, upon discovering that a ticket does not exist, return a failure indication to the standard authentication component 108, in which case the password request- detecting component would request the password from the user, contact the ticket issuer requesting a ticket, possibly authenticating the request using the password, and provide the issued ticket to the POA module for storage and future use once the ticket has been received. In this case, the standard authentication component 108 would request a POA value from the POA module after having provided the ticket to the POA module. The standard authentication component could also provide the user-supplied password to the requesting application before requesting a ticket.
Again, although passwords are referred to in the context of the particular embodiment just described, the techniques may be of course implemented using other types of credentials or more generally other authentication information. In addition, although described in the context of applications, the techniques are applicable in a straightforward manner to a wide variety of other types of access-controlled resources, and such resources may be local to or remote from the user device.
With reference now to FIGS. 3 and 4, another illustrative embodiment of a single sign-on authentication process is shown. The process in this embodiment is generally similar to that previously described. It is again assumed that this process is implemented in the system 100 of FIG. 1, utilizing interaction between system elements 102, 104, 106, 108 and 110 as shown. The authentication information again comprises a password, also referred to herein as a passcode. The return value supplied by the POA module 106 to the standard authentication component 108 is also referred to as a POA token. The ticket generated by the ticket issuer 114 of server(s) 110 for a particular user and passcode is also referred to as a "key." FIG. 3 generally illustrates the acquisition of a ticket by the POA module and the initial use of the POA value for an initial access attempt, while FIG. 4 shows the use of a POA value for a subsequent access attempt. The subsequent access attempt may be a subsequent access to the same application, or an access to a different application:
Turning initially to FIG. 3, operations associated with particular points in time denoted TO through TI l are shown. It is assumed that the POA module 106 has no ticket or "key" for the user 102 prior to the initiation of these operations.
At time TO, the user 102 attempts to access a protected application 104, which is more specifically denoted as a remote application for purposes of this example.
At time Tl, the application 104 requests login data from the standard authentication component 108. This operation may make use of a standardized programming interface, such as PKCS #11, described in RSA Laboratories, "PKCS #11: Cryptographic Token Interface Standard," Version 2.20, June 2004, which is incorporated by reference herein. For example, a library implementation of PKCS #11 may be used, calling a local service implementing the POA module whenever invoked by an application, and also requesting passwords for registered user devices when needed. The library can be dynamically linked to authenticating applications, allowing them to make use of the POA functionality without a need for modification. An extension to PKCS #11 to handle one-time passwords is also known, and may be used in conjunction with the present invention.
At time T2, the standard authentication component 108 requests a POA value, also referred to as a POA token, from the POA module 106.
At time T3, since it was assumed that the POA module 106 has no key for user 102, the user is requested to supply a user identification (ID) and passcode. At time T4, the requested user ID and passcode from user 102 are received by the POA module 106.
At time T5, the POA module 106 requests the issuance of a ticket from element 110. In the present embodiment, it is assumed without limitation that the ticket issuer 114 is part of the authentication authority 112, such that the request for the ticket is directed to the authentication authority as shown. The ticket may be authenticated by the login data previously supplied by the user.
At time T6, the authentication authority, via its associated ticket issuer, returns a success status along with a POA ticket which is stored in the POA module.
Times T7 through TIl proceed generally in the same manner as times T3' through T7' of FIG. 4.
Turning now to FIG. 4, the POA module 106 now has a POA ticket, also referred to as a key, for the user 102. Operations associated with particular points in time denoted TO' through T7' are shown. The key was obtained via the operations associated with times TO through T6 in FIG. 3. At time TO', the user 102 attempts to access remote application 104. As indicated previously, this access may be a subsequent access to the same application referred to in FIG. 3, or a subsequent access to a different application.
At time Tl', the application 104 requests login data from the standard authentication component 108. As noted previously, this operation may make use of a standardized programming interface, such as PKCS #11.
At time T2'5 the standard authentication component 108 requests a POA token from the POA module 106. At time T3', the POA module 106, which now has a ticket or key for the user 102, returns a new POA token to the standard authentication component 108.
At time T4', the standard authentication component 108 returns the POA token to the requesting application 104 as login data. At time T5', the application 104 issues a request to the authentication authority of element 110 to verify the received data, that is, the POA token. The application is unable to distinguish the POA token from ordinary authentication information that would otherwise be supplied by the standard authentication component 108.
At time T6', the authentication authority returns an indication of a successful authentication of the user.
At time T7', the application grants access to the user.
Subsequent accesses by user 102 to application 104 or other applications will proceed in a manner similar to that outlined in FIG. 4.
A number of additional details relating to the illustrative embodiments will now be described.
With regard to detection of password requests by standard authentication component 108, additional examples of suitable techniques may be found in U.S. Patent Application Serial No.
09/356,600, entitled "System and Methods for Maintaining and Distributing Personal Security
Devices," which is commonly assigned herewith and incorporated by reference herein. One such technique involves signaling that a password is being requested through the use of a special control sequence. As noted above, the calling application may request the password through a standardized programming interface such as the above-noted PKCS #11, or its extension for handling one-time passwords. This has the benefits of assuring a consistent user experience when requesting passwords, and at the same time making it simpler for applications to support multiple types of authentication credentials and authentication processes.
As mentioned above, the POA module 106 is also responsible for contacting the ticket issuer when no ticket is found for a password that is configured to be associated with a ticket. When doing this, the POA module needs to authenticate itself to the ticket issuer. The POA module may do this, for example, by providing evidence of knowledge of the password just retrieved from the user, or through some other technique, such as a technique involving a shared secret key or a public-private key pair. The latter approach has the drawback of requiring the ticket issuer to have a database of shared secrets or public keys for each POA module. The former makes use of the fact that the password is itself a shared secret and may be used to aύtneritlcateΕiVPθ"A"modure" The password should generally not be used as is, however, since such practice could disclose it to an eavesdropper. Instead, one may, for example, derive a key from the password. This may involve using the PBKDF2 method from PKCS #5, described in RSA Laboratories, "Password-Based Cryptography Standard," Version 2.0, March 1999, which is incorporated by reference herein, and then calculating an authentication code on the message requesting a ticket for the identified user:
ticlcetRequest = credentialldentifier || MAC^1 {credentialldentifier)
where || denotes concatenation, Key\ is a key derived from the password, e.g., using PBKDF2, credentialldentifier could be an identifier for the key or the user in possession of the key, and MAC denotes some well-known message authentication code algorithm such as HMAC-SHAl . Other possible techniques for using the password to authenticate the request include, for example, SPEKE, described in D. Jablon, "Strong Password-Only Authenticated Key Exchange," Computer Communication Review, ACM SIGCOMM, vol. 26, no. 5, pp. 5-26, October 1996; EKE, described in S. Bellovin and M. Merritt, "Encrypted Key Exchange: Password Based Protocols Secure against Dictionary Attacks," Proceedings of the Symposium on Security and Privacy, IEEE, 1992; or simply sending the password within a server- authenticated and privacy-protecting Transport Layer Security (TLS) session, described in T. Dierks et al, "The TLS Protocol," IETF RFC 2246.
Other information may also be present in the authenticated request, e.g., the time as seen by the POA module, an identifier for the user device, an identifier for the POA module, an identifier for the application which asked for the password, or various combinations of these or other types of information. The ticket sent back from the ticket issuer 114 to the POA module 106 may comprise, for example, a session key, a shared secret, or a public-private key pair. Any secret value or component needs however to be protected in transit. Again, traditional techniques using a shared secret between the POA module and the ticket issuer or a PKI may be used, but with the same disadvantages as already mentioned. Another approach is to calculate a key Key^ from the password, e.g., using the aforementioned PBKDF2, and then encrypt the confidential parts of the ticket response message:
ticketResponse = EnC^2 (sessionKey) || otherData where || again denotes concatenation, Keyi is a key derived from the password, e.g., using PBKDF2, and "Enc" represents some well-known encryption algorithm such as AES. The otherData variable may contain, for example, an identifier for a one-time password device, a ticket request, a state value such as the time associated with the password in case of time-based one-time password devices, or combinations of these or other types of information. The POA module calculates Keyj and decrypts encrypted parts of the response to retrieve the session key or other ticket. The ticket issuer may also authenticate the response to prove that it knows the key as well as the user password. Furthermore, the ticket issuer may integrity-protect the response to protect against unauthorized modification of the contents. Similarly, the POA module may apply these protections to the ticket request preceding the response.
The POA module, may, for efficiency reasons and for better local security, choose to store not the sessionKey itself, but rather some value derived from it. One example would be to store the cryptographic hash of the session key and some other information, e.g., parts of the otherData value, and use that as a secret key when generating POA values:
Key-*, — Hash {sessionKey || otherData \^password\)
where the optional password is the password the ticket was issued for. One reason to include the password in the calculations is that it allows the authentication authority to maintain a policy with regard to the lifetime of session keys, as will be described below.
By deriving Key^ from sessionKey one allows for other uses of sessionKey without requiring it to be available in the POA module during the session. It therefore decreases the exposure of sessionKey. Each time the POA module provides a POA value back to a requesting application, it makes use of the issued ticket. It should, however, ensure that such a value cannot be replayed by an eavesdropper overhearing the communication between the authenticating application and the authentication authority. It should also make sure that the authentication authority is able to detect that the credential is a POA value and not a password, and further that the authentication authority efficiently can validate the POA value.
There are many ways to achieve these goals, one simple method being the following:
POA = prefix || MAQ^3 (counter)) || otherData || counter where prefix is some, for the authentication authority, easily distinguishable prefix, allowing the authentication authority to efficiently distinguish POA values from passwords, and counter is a monotonically increasing counter value which is set to one by the POA module the first time a given session key is used and then incremented for each use. MAC^(X) denotes the message authentication code of X, given key Key. The counter value allows the authentication authority to detect replay attacks. The otherData variable may include information sent from the ticket issuer in the ticket response message. As an example, when users authenticate with one-time passwords generated by an event-based device, it could be the state associated with the password used when the ticket was issued. When users authenticate with one-time passwords generated by a time-synchronous device, it could be the time associated with the password used when the ticket was issued. The inclusion of the state allows the authentication authority to efficiently recalculate the password presented at the time of the session key issuance, and hence determine the age of the session key. This in turns enables the authentication authority to maintain a policy with regard to the lifetime of sessions. Another possibility is for the authentication authority to store the time of issuance together with the session key.
The authentication authority, having determined that an authentication request is based on a POA value and not a password, retrieves the session key for the identified user and uses it as a basis for validating the request. For example, the authentication authority may calculate the password valid at the state indicated through the otherData component in the POA value. It then calculates Keyi and verifies that the authenticated portion of the POA value matches the provided counter value, and that the provided counter value is at least one higher than the recorded one. It also checks that the lifetime of the session key, as determined by the otherData and state, has not expired. It should be noted that the authenticated part of the POA value may be truncated to allow the POA value to fit into existing legacy protocols. The truncation does not hinder the authentication authority in validating the POA value, since the otherData value is sent complete.
The POA value itself could also be encoded so as to have the same "look" as an ordinary password, e.g., only consist of letters and digits, to further ease its use in legacy protocols expecting such passwords.
As mentioned previously herein, the above-described embodiments of the invention are presented by way of illustrative example only. Numerous variations and other alternative embodiments may be used. Tor example, on the user device 102, the provided session key could be regarded as the key for a "virtual" one-time password device, although that may, depending on the one-time password algorithm, complicate the goal of an unlimited number of authentications within a short time frame. The dynamically created "virtual" one-time password device may or may not be visible to applications on the user device. Visibility may complicate the implementation since the "virtual" one-time password device should not be visible to users or applications, or else there may be a need to choose between it and the user's ordinary credentials. Visibility on the user device may however simplify usage at the authentication authority, which does not need to keep track of, or recognize "special" POA elements during an authentication operation. However, the authentication authority would need to be modified to issue the "virtual" device.
In another alternative, the POA module stores a user-provided credential and re-uses it as a POA value in subsequent authentication requests, within a specified time limit, or calculates later POA values from it. This approach suffers from several drawbacks, however. First, it would allow for replay of a POA value learnt by an attacker. As an example, if the user is tricked into providing a POA value to a malicious application, that application could then repeatedly authenticate as the user. Contrast this with the POA value with built-in replay protection as described previously herein, which only allows use of such a learnt value once. Secondly, since the entropy of a user-provided static or one-time password is relatively low, an attacker observing POA values derived from such a password may eventually be able to determine the password.
It should be noted that, if a passive attacker intercepts the original authentication communication, then that attacker could "race" the legitimate POA module for the ticket. There are several ways to protect against this. One is to use a password-protection module, as described in PCT International Application PCT/US2005/023551, filed July 1, 2005 in the name of inventors B. Kaliski and M. Nystrom, which is commonly assigned herewith and incorporated by reference herein. Another alternative is to derive two values from the password, in a manner such that one value cannot be deduced from the other, and use one of the values for user authentication and the other value to authenticate the ticket request. Numerous other known password protection techniques can be used in conjunction with the present invention.
The illustrative embodiments of the invention as described herein provide an improved single sign-on capability for users of password-based authentication systems. The single sign-on capability in the illustrative embodiments is provided through the use of a POA module that generates fUΛ vames mat are αerived from a ticket. The ticket is issued in response to an authenticated request from the POA module to a ticket issuer. The request may be authenticated with a user-provided password that previously has been used to authenticate the user to an application. This approach allows independent applications on a user computer or other user device, as well as applications which are remote from the user device, to obtain from the POA module a value that is derived from the ticket and to use that value to authenticate the user rather than querying the user for an additional password. An authentication authority through an associated ticket issuer can maintain a policy with regard to the lifetime of issued tickets and any credentials derived from them, and protect against misuse of the initially provided password.
Advantageously, the illustrative embodiments do not require changes to existing communication protocols nor that authenticating applications be aware of the existence of tickets, only of the need to authenticate users. It is therefore transparent to both existing applications and communication protocols. The described techniques may be used with security tokens that generate one-time passwords or other types of authentication information, regardless of whether such tokens are connectable to the user device. The limited use of the original credential also means that the method described herein is less vulnerable to host compromises.
The described techniques may be adapted in a straightforward manner to other environments. Such other environments may include, for instance, environments where there is a need to repeatedly authenticate users to a protected resource, e.g., personal information management synchronization applications such as Microsoft ActiveSync, or environments where a client acting on behalf of a user repeatedly needs to authenticate to a protected resource, e.g., content aggregator clients such as Yodlee or virtual checkbooks such as those available from Quicken or MS Money, and numerous other contexts involving access-controlled applications or other resources.
Another exemplary environment in which the above-described techniques may be applied is one in which a user logs on to a host in offline (i.e., not connected to a network) mode and subsequently the host is connected and one would like to avoid having the user authenticate again to get access to networked resources. Such an arrangement should be understood to involve multiple access requests as that term is used herein.
It should again be emphasized that the particular single sign-on authentication techniques described above are provided by way of illustration, and should not be construed as limiting the present invention to any specific embodiment or group of embodiments. For example, as previously noted, the described embodiments may be adapted in a straightforward manner to operate with other types of credentials or authentication information, rather than just passwords, and other types of access-controlled resources, rather than just applications. Also, the particular configuration of system elements shown in FIGS. 1 and 2, and their interactions as shown in FIGS. 3 and 4, may be varied in other embodiments. Moreover, the various simplifying assumptions made above in the course of describing the illustrative embodiments should also be viewed as exemplary rather than as requirements or limitations of the invention. Numerous alternative embodiments within the scope of the appended claims will be readily apparent to those skilled in the art.

Claims

ClaimsWhat is claimed is:
1. A method of controlling user access to a resource, the method comprising the steps of: issuing an authentication information request to a standard authentication component responsive to an access request from the user; receiving responsive to the authentication information request a proof-of- authentication value from the standard authentication component; and authenticating the user based on the proof-of-authentication value; wherein the standard authentication component interacts with a proof-of- authentication module to obtain the proof-of-authentication value, said proof-of-authentication module being configured to generate multiple proof-of-authentication values for authentication of respective ones of multiple access requests of said user.
2. The method of claim 1 wherein the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value based on a ticket previously issued by a ticket issuer, said proof-of-authentication module being configured to generate from said ticket the multiple proof-of-authentication values for authentication of respective ones of multiple access requests of said user.
3. The method of claim 2 wherein the ticket comprises a secret shared between the proof-of-authentication module and an authentication authority.
4. The method of claim 2 wherein the ticket is issued by the ticket issuer responsive to a successful authentication of the user based on an authentication credential submitted by said user.
5. The method of claim 4 wherein the authentication credential comprises at least a portion of at least one password.
6. The method of claim 5 wherein the password comprises a one-time password generated by a security token.
"TT "'fh'e 'ineflio'd' ofcϊaim 1 wherein the standard authentication component comprises an interface that conforms to a PKCS #11 standardized programming interface.
8. The method of claim 1 wherein said resource comprises an application.
9. The method of claim 8 wherein the standard authentication component comprises an authentication information request-detecting component configured to detect an authentication information request that is generated by the application when a need to authenticate the user arises.
10. The method of claim 8 wherein the standard authentication component receives a notification generated by the application when a need to authenticate the user arises.
11. The method of claim 8 wherein the application is not aware that a given proof-of- authentication value that it receives from the standard authentication component is generated based on a corresponding ticket, and is unable to distinguish said proof-of-authentication value from the authentication information.
12. The method of claim 1 wherein the authentication information request comprises a request for at least a portion of at least one password or other authentication credential associated with the user.
13. The method of claim 1 wherein the step of authenticating the user based on the proof-of-authentication value comprises issuing a request to an authentication authority to verify the proof-of-authentication value.
14. The method of claim 13 wherein the authentication authority verifies the proof-of- authentication value by checking that it is valid, has not been used before, and is within a designated lifetime of a corresponding session.
15. The method of claim 2 wherein if the proof-of-authentication module determines that no ticket has yet been established for a given user, it obtains authentication information for 'tfie' given" useF, 'aria then interacts witft the ticket issuer to establish a ticket for the given user based on the authentication information of that user.
16. The method of claim 15 wherein the proof-of-authentication module issues a request to the ticket issuer for generation of a ticket based on the authentication information and in conjunction with the request provides the ticket issuer with information utilizable to authenticate the proof-of-authentication module to the ticket issuer.
17. The method of claim 16 wherein the information utilizable to authenticate the proof- of-authentication module to the ticket issuer is obtained by generating a key from the authentication information and utilizing the key to generate a message authentication code on the request for generation of a ticket.
18. The method of claim 16 wherein the ticket issuer interacts with an authentication authority to determine if the request for generation of a ticket is authentic and if so generates the ticket and supplies it to the proof-of-authentication module.
19. The method of claim 2 wherein the ticket issuer supplies the ticket to the proof-of- authentication module at least partly in encrypted form.
20. The method of claim 2 wherein the ticket is stored locally by the proof-of- authentication module.
21. The method of claim 15 wherein a key for encrypting at least a portion of the ticket is derived from the authentication information.
22. The method of claim 2 wherein the ticket comprises at least one of a session key, a shared secret and a public-private key pair.
23. The method of claim 2 wherein the standard authentication component obtains authentication information from the user, utilizes the authentication information to obtain the ticket from the ticket issuer, and supplies the ticket to the proof-of-authentication module for use in generating proof-of-authentication values.
24. The method of claim 2 wherein the proof-of-authentication module stores information derived from the ticket rather than storing the ticket itself and generates the proof- of-authentication values based on the stored information.
25. The method of claim 1 wherein the proof-of-authentication value is configured so as to be distinguishable from the authentication information by an authentication authority.
26. The method of claim 1 wherein the proof-of-authentication value is configured to permit an authentication authority to determine if the proof-of-authentication value has been used before.
27. A machine-readable storage medium for storing one or more software programs for use in controlling user access to an access-controlled resource, wherein the one or more software programs when executed by one or more processing devices implement the steps of the method of claim 1.
28. An apparatus comprising at least one processing device having a processor coupled to a memory, said processing device implementing at least one of a standard authentication component and a proof-of-authentication module, and being configured for use in controlling user access to a resource, wherein in conjunction with an access request from the user, a corresponding authentication information request is issued to the standard authentication component, a proof-of-authentication value is received W the standard authentication component responsive to the authentication information request, and the user is authenticated based on the proof-of-authentication value, wherein the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value, said proof-of-authentication module being configured to generate multiple proof-of- authentication values for authentication of respective ones of multiple access requests of said user.
29. The apparatus of claim 28 wherein the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value based on a ticket previously issued by a ticket issuer, said proof-of-authentication module being configured "ϊo" generate '"from said ticket the multiple proof-of-authentication values for authentication of respective ones of multiple access requests of said user.
30. The apparatus of claim 28 wherein the standard authentication component and the proof-of-authentication module are implemented on separate processing devices.
31. A system for controlling user access to a resource, comprising: a standard authentication component; and a proof-of-authentication module configured for communication with the standard authentication component; wherein in conjunction with an access request from the user, a corresponding authentication information request is issued to the standard authentication component, a proof- of-authentication value is received from the standard authentication component responsive to the authentication information request, and the user is authenticated based on the proof-of- authentication value; and wherein the standard authentication component interacts with the proof-of- i authentication module to obtain the proof-of-authentication value, said proof-of-authentication module being configured to generate multiple proof-of-authentication values for authentication of respective ones of multiple access requests of said user.
32. The system of claim 31 further comprising a ticket issuer configured to issue a ticket to the proof-of-authentication module, wherein the standard authentication component interacts with the proof-of-authentication module to obtain the proof-of-authentication value based on the ticket issued by the ticket issuer, said proof-of-authentication module being configured to generate from said ticket the multiple proof-of-authentication values for authentication of respective ones of multiple access requests of said user.
33. The system of claim 31 wherein the standard authentication component and the proof-of-authentication module are implemented using separate processing devices each comprising a processor coupled to a memory.
PCT/US2006/036762 2005-09-21 2006-09-21 Authentication method and apparatus utilizing proof-of-authentication module WO2007035846A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP06803964.3A EP1927211B1 (en) 2005-09-21 2006-09-21 Authentication method and apparatus utilizing proof-of-authentication module

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71897805P 2005-09-21 2005-09-21
US60/718,978 2005-09-21
US11/530,998 2006-09-12
US11/530,998 US7562221B2 (en) 2005-09-21 2006-09-12 Authentication method and apparatus utilizing proof-of-authentication module

Publications (2)

Publication Number Publication Date
WO2007035846A2 true WO2007035846A2 (en) 2007-03-29
WO2007035846A3 WO2007035846A3 (en) 2008-11-27

Family

ID=37889521

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/036762 WO2007035846A2 (en) 2005-09-21 2006-09-21 Authentication method and apparatus utilizing proof-of-authentication module

Country Status (3)

Country Link
US (1) US7562221B2 (en)
EP (1) EP1927211B1 (en)
WO (1) WO2007035846A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008134201A1 (en) 2007-04-26 2008-11-06 Microsoft Corporation Pre-authenticated calling for voice applications

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9412123B2 (en) 2003-07-01 2016-08-09 The 41St Parameter, Inc. Keystroke analysis
US10999298B2 (en) 2004-03-02 2021-05-04 The 41St Parameter, Inc. Method and system for identifying users and detecting fraud by use of the internet
US8938671B2 (en) 2005-12-16 2015-01-20 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US11301585B2 (en) 2005-12-16 2022-04-12 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US8151327B2 (en) 2006-03-31 2012-04-03 The 41St Parameter, Inc. Systems and methods for detection of session tampering and fraud prevention
US8060750B2 (en) * 2007-06-29 2011-11-15 Emc Corporation Secure seed provisioning
US20090159704A1 (en) 2007-12-24 2009-06-25 Dynamics Inc. Cards and devices with magnetic emulators and magnetic read-head detectors
TW200937928A (en) * 2008-02-20 2009-09-01 Tatung Co Method for generating one-time-password
US8307210B1 (en) 2008-05-02 2012-11-06 Emc Corporation Method and apparatus for secure validation of tokens
US8579203B1 (en) 2008-12-19 2013-11-12 Dynamics Inc. Electronic magnetic recorded media emulators in magnetic card devices
US8931703B1 (en) 2009-03-16 2015-01-13 Dynamics Inc. Payment cards and devices for displaying barcodes
US9112850B1 (en) 2009-03-25 2015-08-18 The 41St Parameter, Inc. Systems and methods of sharing information through a tag-based consortium
US8622309B1 (en) 2009-04-06 2014-01-07 Dynamics Inc. Payment cards and devices with budgets, parental controls, and virtual accounts
US8066191B1 (en) 2009-04-06 2011-11-29 Dynamics Inc. Cards and assemblies with user interfaces
US9329619B1 (en) 2009-04-06 2016-05-03 Dynamics Inc. Cards with power management
US8393545B1 (en) 2009-06-23 2013-03-12 Dynamics Inc. Cards deployed with inactivated products for activation
US8511574B1 (en) 2009-08-17 2013-08-20 Dynamics Inc. Advanced loyalty applications for powered cards and devices
US9306666B1 (en) 2009-10-08 2016-04-05 Dynamics Inc. Programming protocols for powered cards and devices
US8727219B1 (en) 2009-10-12 2014-05-20 Dynamics Inc. Magnetic stripe track signal having multiple communications channels
US8544072B1 (en) 2009-10-13 2013-09-24 Google Inc. Single sign-on service
US8523059B1 (en) 2009-10-20 2013-09-03 Dynamics Inc. Advanced payment options for powered cards and devices
US8393546B1 (en) 2009-10-25 2013-03-12 Dynamics Inc. Games, prizes, and entertainment for powered cards and devices
EP2537125B1 (en) 2010-02-16 2022-10-12 Dynamics Inc. Systems and methods for drive circuits for dynamic magnetic stripe communications devices
US8348172B1 (en) 2010-03-02 2013-01-08 Dynamics Inc. Systems and methods for detection mechanisms for magnetic cards and devices
US10693263B1 (en) 2010-03-16 2020-06-23 Dynamics Inc. Systems and methods for audio connectors for powered cards and devices
EP3091473A1 (en) 2010-05-18 2016-11-09 Dynamics Inc. Systems and methods for cards and devices operable to communicate via light pulses and touch sensitive displays
USD652448S1 (en) 2010-07-02 2012-01-17 Dynamics Inc. Multiple button interactive electronic card
USD687094S1 (en) 2010-07-02 2013-07-30 Dynamics Inc. Multiple button interactive electronic card with light sources
USD672389S1 (en) 2010-07-02 2012-12-11 Dynamics Inc. Multiple button interactive electronic card with light sources
USD652867S1 (en) 2010-07-02 2012-01-24 Dynamics Inc. Multiple button interactive electronic card
USD652075S1 (en) 2010-07-02 2012-01-10 Dynamics Inc. Multiple button interactive electronic card
USD670759S1 (en) 2010-07-02 2012-11-13 Dynamics Inc. Multiple button interactive electronic card with light sources
USD674013S1 (en) 2010-07-02 2013-01-08 Dynamics Inc. Multiple button interactive electronic card with light sources
USD652449S1 (en) 2010-07-02 2012-01-17 Dynamics Inc. Multiple button interactive electronic card
USD792511S1 (en) 2010-07-09 2017-07-18 Dynamics Inc. Display with font
USD651238S1 (en) 2010-07-09 2011-12-27 Dynamics Inc. Interactive electronic card with display
USD652076S1 (en) 2010-07-09 2012-01-10 Dynamics Inc. Multiple button interactive electronic card with display
USD651644S1 (en) 2010-07-09 2012-01-03 Dynamics Inc. Interactive electronic card with display
USD792513S1 (en) 2010-07-09 2017-07-18 Dynamics Inc. Display with font
USD666241S1 (en) 2010-07-09 2012-08-28 Dynamics Inc. Multiple button interactive electronic card with light source
USD792512S1 (en) 2010-07-09 2017-07-18 Dynamics Inc. Display with font
USD665022S1 (en) 2010-07-09 2012-08-07 Dynamics Inc. Multiple button interactive electronic card with light source
USD665447S1 (en) 2010-07-09 2012-08-14 Dynamics Inc. Multiple button interactive electronic card with light source and display
USD652450S1 (en) 2010-07-09 2012-01-17 Dynamics Inc. Multiple button interactive electronic card
USD653288S1 (en) 2010-07-09 2012-01-31 Dynamics Inc. Multiple button interactive electronic card
USD643063S1 (en) 2010-07-09 2011-08-09 Dynamics Inc. Interactive electronic card with display
USD651237S1 (en) 2010-07-09 2011-12-27 Dynamics Inc. Interactive electronic card with display
US8322623B1 (en) 2010-07-26 2012-12-04 Dynamics Inc. Systems and methods for advanced card printing
US9818125B2 (en) 2011-02-16 2017-11-14 Dynamics Inc. Systems and methods for information exchange mechanisms for powered cards and devices
US9053398B1 (en) 2010-08-12 2015-06-09 Dynamics Inc. Passive detection mechanisms for magnetic cards and devices
US10055614B1 (en) 2010-08-12 2018-08-21 Dynamics Inc. Systems and methods for advanced detection mechanisms for magnetic cards and devices
EP2613279B1 (en) 2010-08-31 2019-04-10 Hideharu Ogawa Communication apparatus, reminder apparatus, and information recording medium
US10022884B1 (en) 2010-10-15 2018-07-17 Dynamics Inc. Systems and methods for alignment techniques for magnetic cards and devices
US8561894B1 (en) 2010-10-20 2013-10-22 Dynamics Inc. Powered cards and devices designed, programmed, and deployed from a kiosk
US9646240B1 (en) 2010-11-05 2017-05-09 Dynamics Inc. Locking features for powered cards and devices
US8567679B1 (en) 2011-01-23 2013-10-29 Dynamics Inc. Cards and devices with embedded holograms
US10095970B1 (en) 2011-01-31 2018-10-09 Dynamics Inc. Cards including anti-skimming devices
US8739260B1 (en) 2011-02-10 2014-05-27 Secsign Technologies Inc. Systems and methods for authentication via mobile communication device
US9836680B1 (en) 2011-03-03 2017-12-05 Dynamics Inc. Systems and methods for advanced communication mechanisms for magnetic cards and devices
US8719952B1 (en) 2011-03-25 2014-05-06 Secsign Technologies Inc. Systems and methods using passwords for secure storage of private keys on mobile devices
US8485446B1 (en) 2011-03-28 2013-07-16 Dynamics Inc. Shielded magnetic stripe for magnetic cards and devices
US8875244B1 (en) * 2011-03-31 2014-10-28 Emc Corporation Method and apparatus for authenticating a user using dynamic client-side storage values
US8832812B1 (en) 2011-03-31 2014-09-09 Emc Corporation Methods and apparatus for authenticating a user multiple times during a session
US20120290472A1 (en) 2011-05-10 2012-11-15 Mullen Jeffrey D Systems and devices for mobile payment acceptance
USD670332S1 (en) 2011-05-12 2012-11-06 Dynamics Inc. Interactive card
USD670330S1 (en) 2011-05-12 2012-11-06 Dynamics Inc. Interactive card
USD676904S1 (en) 2011-05-12 2013-02-26 Dynamics Inc. Interactive display card
USD670331S1 (en) 2011-05-12 2012-11-06 Dynamics Inc. Interactive display card
USD670329S1 (en) 2011-05-12 2012-11-06 Dynamics Inc. Interactive display card
US8628022B1 (en) 2011-05-23 2014-01-14 Dynamics Inc. Systems and methods for sensor mechanisms for magnetic cards and devices
US8827153B1 (en) 2011-07-18 2014-09-09 Dynamics Inc. Systems and methods for waveform generation for dynamic magnetic stripe communications devices
US9008303B1 (en) * 2011-12-22 2015-04-14 Emc Corporation Method and apparatus for generating forward secure pseudorandom numbers
US11551046B1 (en) 2011-10-19 2023-01-10 Dynamics Inc. Stacked dynamic magnetic stripe commmunications device for magnetic cards and devices
US11409971B1 (en) 2011-10-23 2022-08-09 Dynamics Inc. Programming and test modes for powered cards and devices
US10754913B2 (en) 2011-11-15 2020-08-25 Tapad, Inc. System and method for analyzing user device information
US9619741B1 (en) 2011-11-21 2017-04-11 Dynamics Inc. Systems and methods for synchronization mechanisms for magnetic cards and devices
US8960545B1 (en) 2011-11-21 2015-02-24 Dynamics Inc. Data modification for magnetic cards and devices
US9064194B1 (en) 2012-02-03 2015-06-23 Dynamics Inc. Systems and methods for spike suppression for dynamic magnetic stripe communications devices
US9710745B1 (en) 2012-02-09 2017-07-18 Dynamics Inc. Systems and methods for automated assembly of dynamic magnetic stripe communications devices
US8888009B1 (en) 2012-02-14 2014-11-18 Dynamics Inc. Systems and methods for extended stripe mechanisms for magnetic cards and devices
US9916992B2 (en) 2012-02-20 2018-03-13 Dynamics Inc. Systems and methods for flexible components for powered cards and devices
US9633201B1 (en) 2012-03-01 2017-04-25 The 41St Parameter, Inc. Methods and systems for fraud containment
US9521551B2 (en) 2012-03-22 2016-12-13 The 41St Parameter, Inc. Methods and systems for persistent cross-application mobile device identification
US9734669B1 (en) 2012-04-02 2017-08-15 Dynamics Inc. Cards, devices, systems, and methods for advanced payment game of skill and game of chance functionality
US11418483B1 (en) 2012-04-19 2022-08-16 Dynamics Inc. Cards, devices, systems, and methods for zone-based network management
US9033218B1 (en) 2012-05-15 2015-05-19 Dynamics Inc. Cards, devices, systems, methods and dynamic security codes
US8955066B1 (en) 2012-06-28 2015-02-10 Emc Corporation Knowledge based authentication using recent user internet activity
US9064195B2 (en) 2012-06-29 2015-06-23 Dynamics Inc. Multiple layer card circuit boards
EP2880619A1 (en) 2012-08-02 2015-06-10 The 41st Parameter, Inc. Systems and methods for accessing records via derivative locators
USD687489S1 (en) 2012-08-27 2013-08-06 Dynamics Inc. Interactive electronic card with buttons
USD687488S1 (en) 2012-08-27 2013-08-06 Dynamics Inc. Interactive electronic card with buttons
USD688744S1 (en) 2012-08-27 2013-08-27 Dynamics Inc. Interactive electronic card with display and button
USD730438S1 (en) 2012-08-27 2015-05-26 Dynamics Inc. Interactive electronic card with display and button
USD673606S1 (en) 2012-08-27 2013-01-01 Dynamics Inc. Interactive electronic card with display and buttons
USD687887S1 (en) 2012-08-27 2013-08-13 Dynamics Inc. Interactive electronic card with buttons
USD828870S1 (en) 2012-08-27 2018-09-18 Dynamics Inc. Display card
USD676487S1 (en) 2012-08-27 2013-02-19 Dynamics Inc. Interactive electronic card with display and buttons
USD694322S1 (en) 2012-08-27 2013-11-26 Dynamics Inc. Interactive electronic card with display buttons
USD687490S1 (en) 2012-08-27 2013-08-06 Dynamics Inc. Interactive electronic card with display and button
USD692053S1 (en) 2012-08-27 2013-10-22 Dynamics Inc. Interactive electronic card with display and button
USD695636S1 (en) 2012-08-27 2013-12-17 Dynamics Inc. Interactive electronic card with display and buttons
USD729870S1 (en) 2012-08-27 2015-05-19 Dynamics Inc. Interactive electronic card with display and button
USD675256S1 (en) 2012-08-27 2013-01-29 Dynamics Inc. Interactive electronic card with display and button
USD687095S1 (en) 2012-08-27 2013-07-30 Dynamics Inc. Interactive electronic card with buttons
USD729871S1 (en) 2012-08-27 2015-05-19 Dynamics Inc. Interactive electronic card with display and buttons
USD730439S1 (en) 2012-08-27 2015-05-26 Dynamics Inc. Interactive electronic card with buttons
USD729869S1 (en) 2012-08-27 2015-05-19 Dynamics Inc. Interactive electronic card with display and button
USD687487S1 (en) 2012-08-27 2013-08-06 Dynamics Inc. Interactive electronic card with display and button
US11126997B1 (en) 2012-10-02 2021-09-21 Dynamics Inc. Cards, devices, systems, and methods for a fulfillment system
US20140115683A1 (en) * 2012-10-18 2014-04-24 Adam Stass Systems and methods for peer-to-peer online verification using third party authentication
US9010647B2 (en) 2012-10-29 2015-04-21 Dynamics Inc. Multiple sensor detector systems and detection methods of magnetic cards and devices
US9659246B1 (en) 2012-11-05 2017-05-23 Dynamics Inc. Dynamic magnetic stripe communications device with beveled magnetic material for magnetic cards and devices
WO2014078569A1 (en) 2012-11-14 2014-05-22 The 41St Parameter, Inc. Systems and methods of global identification
US9010644B1 (en) 2012-11-30 2015-04-21 Dynamics Inc. Dynamic magnetic stripe communications device with stepped magnetic material for magnetic cards and devices
US10949627B2 (en) 2012-12-20 2021-03-16 Dynamics Inc. Systems and methods for non-time smearing detection mechanisms for magnetic cards and devices
USD750167S1 (en) 2013-03-04 2016-02-23 Dynamics Inc. Interactive electronic card with buttons
USD765173S1 (en) 2013-03-04 2016-08-30 Dynamics Inc. Interactive electronic card with display and button
USD777252S1 (en) 2013-03-04 2017-01-24 Dynamics Inc. Interactive electronic card with buttons
USD764584S1 (en) 2013-03-04 2016-08-23 Dynamics Inc. Interactive electronic card with buttons
USD765174S1 (en) 2013-03-04 2016-08-30 Dynamics Inc. Interactive electronic card with button
USD750166S1 (en) 2013-03-04 2016-02-23 Dynamics Inc. Interactive electronic card with display and buttons
USD751640S1 (en) 2013-03-04 2016-03-15 Dynamics Inc. Interactive electronic card with display and button
USD750168S1 (en) 2013-03-04 2016-02-23 Dynamics Inc. Interactive electronic card with display and button
USD751639S1 (en) 2013-03-04 2016-03-15 Dynamics Inc. Interactive electronic card with display and button
US10902327B1 (en) 2013-08-30 2021-01-26 The 41St Parameter, Inc. System and method for device identification and uniqueness
USD737373S1 (en) 2013-09-10 2015-08-25 Dynamics Inc. Interactive electronic card with contact connector
USD767024S1 (en) 2013-09-10 2016-09-20 Dynamics Inc. Interactive electronic card with contact connector
US10108891B1 (en) 2014-03-21 2018-10-23 Dynamics Inc. Exchange coupled amorphous ribbons for electronic stripes
US10091312B1 (en) 2014-10-14 2018-10-02 The 41St Parameter, Inc. Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups
US9674158B2 (en) 2015-07-28 2017-06-06 International Business Machines Corporation User authentication over networks
US10032049B2 (en) 2016-02-23 2018-07-24 Dynamics Inc. Magnetic cards and devices for motorized readers
CN113302607A (en) 2018-12-25 2021-08-24 帕斯罗基株式会社 Remote control system, remote control method, program, and information recording medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0991242A2 (en) 1998-09-29 2000-04-05 Phone.Com Inc. Method and apparatus for caching credentials in proxy servers for wireless user agents
US6678731B1 (en) 1999-07-08 2004-01-13 Microsoft Corporation Controlling access to a network server using an authentication ticket
US20050015490A1 (en) 2003-07-16 2005-01-20 Saare John E. System and method for single-sign-on access to a resource via a portal server
US9356600B2 (en) 2012-05-30 2016-05-31 Freescale Semiconductor, Inc. IO driver impedance calibration

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361062A (en) * 1992-11-25 1994-11-01 Security Dynamics Technologies, Inc. Personal security system
US5491752A (en) 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
US5721779A (en) 1995-08-28 1998-02-24 Funk Software, Inc. Apparatus and methods for verifying the identity of a party
JP3569122B2 (en) * 1998-01-22 2004-09-22 富士通株式会社 Session management system, service providing server, session management server, session management method, and recording medium
US6192349B1 (en) * 1998-09-28 2001-02-20 International Business Machines Corporation Smart card mechanism and method for obtaining electronic tickets for goods services over an open communications link
US6985583B1 (en) * 1999-05-04 2006-01-10 Rsa Security Inc. System and method for authentication seed distribution
WO2001055848A2 (en) * 2000-01-27 2001-08-02 Hummingbird Ltd. A method and system for implementing an enterprise information portal
US7359507B2 (en) * 2000-03-10 2008-04-15 Rsa Security Inc. Server-assisted regeneration of a strong secret from a weak secret
US7194765B2 (en) * 2002-06-12 2007-03-20 Telefonaktiebolaget Lm Ericsson (Publ) Challenge-response user authentication
US20030188193A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Single sign on for kerberos authentication
US7139916B2 (en) * 2002-06-28 2006-11-21 Ebay, Inc. Method and system for monitoring user interaction with a computer
US7725730B2 (en) * 2002-08-09 2010-05-25 Emc Corporation Cryptographic methods and apparatus for secure authentication
EP1627319A4 (en) * 2003-05-01 2009-11-11 Samsung Electronics Co Ltd Authenticating method and apparatus
EP1697818B1 (en) * 2003-12-23 2018-05-30 Wells Fargo Bank, N.A. Authentication system for networked computer applications
US7886345B2 (en) 2004-07-02 2011-02-08 Emc Corporation Password-protection module
WO2006034476A1 (en) * 2004-09-24 2006-03-30 Siemens Medical Solutions Usa, Inc. A system for activating multiple applications for concurrent operation
US20060066808A1 (en) 2004-09-27 2006-03-30 Blum Ronald D Ophthalmic lenses incorporating a diffractive element

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0991242A2 (en) 1998-09-29 2000-04-05 Phone.Com Inc. Method and apparatus for caching credentials in proxy servers for wireless user agents
US6678731B1 (en) 1999-07-08 2004-01-13 Microsoft Corporation Controlling access to a network server using an authentication ticket
US20050015490A1 (en) 2003-07-16 2005-01-20 Saare John E. System and method for single-sign-on access to a resource via a portal server
US9356600B2 (en) 2012-05-30 2016-05-31 Freescale Semiconductor, Inc. IO driver impedance calibration

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
AJ. MENEZES ET AL.: "Handbook of Applied Cryptography", 1997, CRC PRESS
D. JABLON: "Strong Password-Only Authenticated Key Exchange", COMPUTER COMMUNICATION REVIEW, ACM SIGCOMM, vol. 26, no. 5, - October 1996 (1996-10-01), pages 5 - 26
J. KOHL ET AL., INTERNET ENGINEERING TASK FORCE (IETF), REQUEST FOR COMMENTS (RFC) 1510, September 1993 (1993-09-01)
RSA LABORATORIES: "Password-Based Cryptography Standard, version 2.0", March 1999
S. BELLOVIN AND M. MERRITT: "Encrypted Key Exchange: Password Based Protocols Secure against Dictionary Attacks", PROCEEDINGS OF THE SYMPOSIUM ON SECURITY AND PRIVACY, IEEE, - 1992
See also references of EP1927211A4
T. DIERKS ET AL.: "The TLS Protocol", IETF RFC 2246

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008134201A1 (en) 2007-04-26 2008-11-06 Microsoft Corporation Pre-authenticated calling for voice applications
EP2156306A1 (en) * 2007-04-26 2010-02-24 Microsoft Corporation Pre-authenticated calling for voice applications
EP2156306A4 (en) * 2007-04-26 2012-07-11 Microsoft Corp Pre-authenticated calling for voice applications
US8695074B2 (en) 2007-04-26 2014-04-08 Microsoft Corporation Pre-authenticated calling for voice applications
US9703943B2 (en) 2007-04-26 2017-07-11 Microsoft Technology Licensing, Llc Pre-authenticated calling for voice applications

Also Published As

Publication number Publication date
WO2007035846A3 (en) 2008-11-27
EP1927211A2 (en) 2008-06-04
EP1927211A4 (en) 2016-11-23
EP1927211B1 (en) 2019-09-18
US20070094498A1 (en) 2007-04-26
US7562221B2 (en) 2009-07-14

Similar Documents

Publication Publication Date Title
US7562221B2 (en) Authentication method and apparatus utilizing proof-of-authentication module
US8413221B2 (en) Methods and apparatus for delegated authentication
US7571471B2 (en) Secure login using a multifactor split asymmetric crypto-key with persistent key security
US7734045B2 (en) Multifactor split asymmetric crypto-key with persistent key security
US9160732B2 (en) System and methods for online authentication
CA2463034C (en) Method and system for providing client privacy when requesting content from a public server
US7610617B2 (en) Authentication system for networked computer applications
US9055107B2 (en) Authentication delegation based on re-verification of cryptographic evidence
US8340287B2 (en) Securing multifactor split key asymmetric crypto keys
US7630493B2 (en) Multiple factor private portion of an asymmetric key
US7599493B2 (en) Asymmetric key pair having a kiosk mode
US8099607B2 (en) Asymmetric crypto-graphy with rolling key security
US9544297B2 (en) Method for secured data processing
US7596697B2 (en) Technique for providing multiple levels of security
US8769289B1 (en) Authentication of a user accessing a protected resource using multi-channel protocol
US8213608B2 (en) Roaming utilizing an asymmetric key pair
MXPA04007547A (en) System and method for providing key management protocol with client verification of authorization.
US9954853B2 (en) Network security
US7565527B2 (en) Technique for asymmetric crypto-key generation
KR20080076399A (en) System and method for mutual authentication between a remote user and a server using a mobile device, recording medium thereof
Looi et al. Enhancing sesamev4 with smart cards
Gupta et al. Addressing Kerberos 5 Security Issues
Phalke et al. Mobile Based Secure Authentication using TLS and Offline OTP

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006803964

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE