[go: up one dir, main page]

HK1236636A1 - System and method for implementing a one-time-password using asymmetric cryptography - Google Patents

System and method for implementing a one-time-password using asymmetric cryptography Download PDF

Info

Publication number
HK1236636A1
HK1236636A1 HK17110155.1A HK17110155A HK1236636A1 HK 1236636 A1 HK1236636 A1 HK 1236636A1 HK 17110155 A HK17110155 A HK 17110155A HK 1236636 A1 HK1236636 A1 HK 1236636A1
Authority
HK
Hong Kong
Prior art keywords
challenge
server
converted
user
connected device
Prior art date
Application number
HK17110155.1A
Other languages
Chinese (zh)
Other versions
HK1236636B (en
Inventor
巴格达萨瑞安 D
Original Assignee
诺克诺克实验公司
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 诺克诺克实验公司 filed Critical 诺克诺克实验公司
Publication of HK1236636A1 publication Critical patent/HK1236636A1/en
Publication of HK1236636B publication Critical patent/HK1236636B/en

Links

Description

System and method for implementing one-time passwords using asymmetric encryption
Background
Technical Field
The present invention relates generally to the field of data processing systems. More particularly, the present invention relates to systems and methods for implementing one-time passwords with asymmetric encryption.
Description of related Art
Systems have also been designed to provide secure user authentication via a network using biometric sensors. In such systems, the scores and/or other authentication data generated by the authenticator may be sent over a network to authenticate the user to a remote server. For example, patent application No.2011/0082801 ("the' 801 application") describes a framework for user enrollment and authentication over a network that provides strong authentication (e.g., protection against identity theft and phishing), secure transactions (e.g., protection against "malware in browser" and "man-in-the-middle" attacks in transactions), and enrollment/management of client authentication tokens (e.g., fingerprint readers, facial recognition devices, smart cards, trusted platform modules, etc.).
The assignee of the present application has developed various improvements to the verification framework described in the' 801 application. Some of these improvements are described in the following set of U.S. patent applications, all assigned to the present assignee: serial No. 13/730,761 entitled "Query systems and Method to determination capabilities" (Query System and Method for determining authentication functions); serial No. 13/730,776 entitled "System and Method for efficient engineering, registration, and Authentication with Multiple Authentication Devices" (a System and Method for Efficiently performing registration, and Authentication using Multiple Authentication Devices); serial number 13/730,780 entitled "System and Method for processing random challenge with an Authentication Framework" (System and Method for processing random Challenges Within an Authentication Framework); serial number 13/730,791 entitled "System and Method for implementing Privacy Classes Within an Authentication Framework"; serial number 13/730,795 entitled "System and Method for implementing Transaction Signaling Within an Authentication Framework"; and serial number 14/218,504, entitled "advanced authentication Techniques and Applications" (hereinafter "the' 504 application"). These applications are sometimes referred to herein as "co-pending applications".
Briefly, in the authentication techniques described in these co-pending applications, a user enrolls with an authentication device (or authenticator) on a client device, such as a biometric device (e.g., a fingerprint sensor). When a user registers with a biometric device, biometric reference data is captured (e.g., by swiping a finger, taking a picture, recording a voice, etc.). The user may then register/preset the verification device with one or more servers (e.g., websites or other relying parties equipped with secure transaction services, as described in the co-pending application) via the network; and subsequently authenticated to those servers using data exchanged during the registration process (e.g., a key preset into the authentication device). Once authenticated, the user is permitted to perform one or more online transactions with the website or other relying party. In the framework described in the co-pending application, sensitive information (such as fingerprint data and other data that may be used to uniquely identify a user) may be maintained locally on the user's authentication device to protect the user's privacy.
The' 504 application describes a number of additional techniques, including the following: designing a composite validator, intelligently generating a validation assurance level, using non-intrusive user verification, transmitting validation data to a new validation device, augmenting validation data with client risk data, adaptively applying validation policies, and creating trust circles, among other things.
Drawings
The invention may be better understood from the following detailed description taken in conjunction with the following drawings, in which:
1A-1B illustrate two different embodiments of a security verification system architecture;
FIG. 2 is a diagram of a transaction showing how a key may be preset into a verification device;
FIG. 3 illustrates a transaction diagram showing remote validation;
FIG. 4 illustrates a connection device configured between a relying party authentication server and a user device;
FIG. 5 illustrates one embodiment of the present invention implementing a one-time password using asymmetric encryption;
6A-6B illustrate additional details of one embodiment of an authentication server;
FIG. 7 shows additional details of one embodiment of a user device;
FIG. 8 illustrates an exemplary data processing architecture for implementing the clients and/or servers described herein; and
FIG. 9 illustrates another exemplary data processing architecture for implementing the clients and/or servers described herein.
Detailed Description
Embodiments of apparatus, methods, and machine-readable media for implementing advanced authentication techniques and associated applications are described below. Throughout the description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are not shown, or are shown in block diagram form, in order to avoid obscuring the underlying principles of the present invention.
The embodiments of the invention discussed below relate to authentication devices with user verification functionality, such as biometric modalities or PIN entry. These devices are sometimes referred to herein as "tokens," authentication devices, "or" authenticators. While certain embodiments focus on facial recognition hardware/software (e.g., a camera and associated software for recognizing a user's face and tracking the user's eye movement), some embodiments may utilize additional biometric devices including, for example, a fingerprint sensor, voice recognition hardware/software (e.g., a microphone and associated software for recognizing a user's voice), and optical recognition capabilities (e.g., an optical scanner and associated software for scanning a user's retina). The user authentication function may also include non-biometric forms such as PIN entry. The verifier may use devices such as a Trusted Platform Module (TPM), a smart card, and a secure element for cryptographic operations and key storage.
In a mobile biometric implementation, the biometric device is remotely dependent on the relying party. As used herein, the term "remote" means that the biometric sensor is not part of the security boundary of the computer to which it is communicatively coupled (e.g., the biometric sensor is not embedded in the same physical housing as the relying party computer). For example, the biometric device may be coupled to the relying party via a network (e.g., the internet, a wireless network link, etc.) or via a peripheral input, such as a USB port. Under these conditions, the relying party may not know whether the device is one authorized by the relying party (e.g., one that provides an acceptable level of authentication strength and integrity protection) and/or whether a hacker has compromised or even replaced the biometric device. The confidence level of a biometric device depends on the particular implementation of the device.
The term "local" as used herein refers to the fact that a user is physically conducting a transaction at a particular location, such as at an Automated Teller Machine (ATM) or point of sale (POS) retail checkout. However, as discussed below, authentication techniques for authenticating a user may involve non-location components, such as communication with a remote server and/or other data processing device via a network. Further, while specific embodiments (such as ATMs and retail locations) are described herein, it should be noted that the underlying principles of the invention may be implemented in the context of any system within which a transaction is initiated locally by an end user.
The term "relying party" is sometimes used herein to refer not only to the entity with which the user transaction is attempted (e.g., a website or online service that performs the user transaction), but also to a secure transaction server (sometimes referred to as being implemented on behalf of that entity, which may perform the underlying authentication techniques described herein). The secure transaction server may be owned and/or under the control of the relying party or may be under the control of a third party that provides secure transaction services to the relying party as part of a business arrangement.
The term "server" as used herein refers to software executing on one hardware platform (or across multiple hardware platforms) that receives a request from a client via a network, then performs one or more operations in response, and transmits a response to the client, typically including the results of the operations. The server responds to client requests to provide or assist in providing network "services" to the client. Notably, the server is not limited to a single computer (e.g., a single hardware device for executing server software), but may in fact be spread across multiple hardware platforms, possibly located at multiple geographic locations.
Exemplary System architecture and transactions
Figures 1A-1B illustrate two embodiments of a system architecture that includes a client and server-side component for registering/provisioning authentication means (sometimes also referred to as "provisioning") and authenticating a user. The embodiment shown in FIG. 1A uses a web browser plug-in based architecture to communicate with a website, whereas the embodiment shown in FIG. 1B does not require a web browser. The various techniques described herein, such as registering a user with an authentication device, registering/provisioning an authentication device with a secure server, and verifying a user, may be implemented on any of these system architectures. Thus, while the architecture shown in FIG. 1A is used to illustrate the operation of several embodiments described below, the same underlying principles can be readily implemented on the system shown in FIG. 1B (e.g., by deleting a browser plug-in 105 that acts as an intermediary for communications between the server 130 and the secure transaction service 101 on the client).
Turning first to fig. 1A, the illustrated embodiment includes a client 100 equipped with one or more authentication devices 110 through 112 (these authentication devices are sometimes referred to in the art as authentication "tokens" or "authenticators") for enrolling and verifying end users. As described above, the authentication devices 110-112 may include biometric devices such as fingerprint sensors, voice recognition hardware/software (e.g., a microphone and associated software for recognizing a user's voice), facial recognition hardware/software (e.g., a camera and associated software for recognizing a user's face), and optical recognition functionality (e.g., an optical scanner and associated software for scanning a user's retina), and support non-biometric modalities such as PIN verification. The authentication device may use a Trusted Platform Module (TPM), smart card, or secure element for cryptographic operations and key storage.
The verification devices 110-112 are communicatively coupled to the client through an interface 102 (e.g., an application programming interface or API) exposed by the secure transaction service 101. The secure transaction service 101 is a secure application for communicating with one or more secure transaction servers 132-133 over a network and for interfacing with a secure transaction plugin 105 executing within the environment of the web browser 104. As shown, the interface 102 may also provide secure access to a secure storage 120 on the client 100 that stores information related to each authentication device 110-112, such as a device identification code, a user identification code, user enrollment data protected by the authentication device (e.g., scanned fingerprints or other biometric data), and a key enveloped by the authentication device for performing the secure authentication techniques described herein. For example, as discussed in detail below, a unique key may be stored into each authentication device and used in communicating with server 130 via a network (such as the internet).
As discussed below, the secure transaction plug-in 105 supports certain types of network transactions, such as HTTP or HTTPs transactions with the website 131 or other server. In one embodiment, the secure transaction plugin is launched in response to a specific HTML tag inserted into the Web page HTML code by a Web server 131 (hereinafter sometimes simply referred to as "server 130") within the secure enterprise or Web destination 130. In response to detecting such a tag, the secure transaction plugin 105 may forward the transaction to the secure transaction service 101 for processing. Additionally, for certain types of transactions (e.g., such as secure key exchanges), the secure transaction service 101 may open a direct communication channel with the local transaction server 132 (i.e., co-located with the website) or the off-site transaction server 133.
The secure transaction servers 132-133 are coupled to a secure transaction database 120, the secure transaction database 120 for storing user data, authentication device data, keys, and other security information needed to support secure authentication transactions as described below. It should be noted, however, that the underlying principles of the invention do not require the separation of logical components within the secure enterprise or web destination 130 shown in FIG. 1A. For example, the website 131 and the secure transaction servers 132-133 may be implemented within a single physical server or separate physical servers. Further, the website 131 and transaction servers 132-133 may be implemented within integrated software modules executed on one or more servers for performing the functions described below.
As described above, the underlying principles of the invention are not limited to the browser-based architecture shown in FIG. 1A. FIG. 1B illustrates an alternative implementation in which a standalone application 154 utilizes functionality provided by the secure transaction service 101 to authenticate a user via a network. In one embodiment, the application 154 is designed to establish a communication session with one or more network services 151 that rely on the secure transaction servers 132-133 to perform user/client authentication techniques described in detail below.
In either of the embodiments shown in fig. 1A and 1B, the secure transaction servers 132-133 may generate keys that are then securely transmitted to the secure transaction service 101 and stored in an authentication device within the secure storage 120. In addition, the secure transaction servers 132 to 133 manage the secure transaction database 120 on the server side.
Certain basic principles associated with remote preset authentication means and authentication with relying parties will be described with reference to fig. 2 to 5, followed by a detailed description of embodiments of the invention using a secure communication protocol to establish trust.
Fig. 2 illustrates a series of transactions for provisioning a verification device at a client, such as devices 110-112 on client 100 in fig. 1A-B. "Preset" is also sometimes referred to as "registration". For simplicity, the secure transaction service 101 and the interface 102 are combined together as an authentication client 201, and the secure enterprise or Web destination 130, including the secure transaction servers 132-133, is represented as a relying party 202.
During a pre-set verifier (e.g., a fingerprint verifier, a voice verifier, etc.), a key associated with the verifier is shared between the verification client 201 and the relying party 202. Referring back to fig. 1A to 1B, the keys are stored in the secure storage 120 of the client 100 and the secure transaction database 120 used by the secure transaction servers 132 to 133. In one embodiment, the key is a symmetric key generated by one of the secure transaction servers 132-133. However, in another embodiment discussed below, an asymmetric key is used. In this embodiment, public/private key pairs may be generated by the secure transaction servers 132-133. The public keys may then be stored by the secure transaction servers 132-133 and the associated private keys may be stored in the secure storage 120 on the client. In an alternative embodiment, the key may be generated on the client 100 (e.g., by an authentication device or authentication device interface rather than the secure transaction servers 132-133). The underlying principles of the invention are not limited to any particular type of key or manner of generating a key.
In one embodiment, a secure key provisioning protocol is employed to share keys with clients over a secure communication channel. One example of a key provisioning protocol is Dynamic Symmetric Key Provisioning Protocol (DSKPP) (see, e.g., request for comments (RFC) 6063). However, the underlying principles of the invention are not limited to any particular key provisioning protocol. In one particular embodiment, the client generates a public/private key pair and sends the public key to the server, which can be certified with a certification key.
Turning to the specific details shown in fig. 2, to initiate the registration procedure, the relying party 202 generates a randomly generated challenge (e.g., a cryptographic nonce) that the authentication client 201 must present during device registration. The random challenge may be valid for a limited period of time. In response, the verification client 201 initiates an out-of-band secure connection (e.g., an out-of-band transaction) with the relying party 202 and communicates with the relying party 202 using a key provisioning protocol (e.g., the above-mentioned DSKPP protocol). To initiate the secure connection, the verification client 201 may return a random challenge (possibly with a signature generated over the random challenge) to the relying party 202. Further, the authentication client 201 may transmit the identity of the user (e.g., user ID or other code) and the identity of the authentication device to be preset for registration (e.g., with an authentication attestation ID (aaid)) that uniquely identifies the type of authentication device being preset.
The relying party locates the user using the username or ID code (e.g., in a user account database), validates the random challenge (e.g., using a signature or simply comparing the random challenge to the challenge sent), validates the authentication code of the authentication device (if an authentication code (e.g., AAID) was sent), and creates new entries for the user and authentication device in a secure transaction database (e.g., database 120 in fig. 1A-1B). In one embodiment, the relying party maintains a database of verification devices that it accepts for verification. It can query this database with the AAID (or other authenticating device code) to determine whether the authenticating device being preset is acceptable for authentication. If so, it will continue with the registration process.
In one embodiment, the relying party 202 generates an authentication key for each authentication device that is provisioned. It writes the key to the secure database and sends the key back to the authentication client 201 using the key provisioning protocol. Once completed, the authentication device and the relying party 202 share the same key if a symmetric key is used, or a different key if an asymmetric key is used. For example, if an asymmetric key is used, the relying party 202 can store the public key and provide the private key to the authentication client 201. Upon receiving the private key from relying party 202, authentication client 201 presets the key into the authentication device (storing the key within a secure storage associated with the authentication device). It can then use the key during authentication of the user (as described below). In an alternative embodiment, the key is generated by the authentication client 201 and provided to the relying party 202 using a key provisioning protocol. In either case, upon completion of the provisioning, both the verification client 201 and the relying party 202 have the key, and the verification client 201 notifies the relying party that the provisioning has been completed.
Fig. 3 shows a series of transactions for authenticating a user to a pre-set authentication means. Upon completion of device registration (as described in fig. 2), relying party 201 will accept as a valid authentication response an authentication response (sometimes referred to as a "token") generated by a local authentication device on the client.
Turning to the specific details shown in fig. 3, in response to a user initiating a transaction with a relying party 202 that requires authentication (e.g., initiating a payment from a relying party website, accessing private user account data, etc.), the relying party 202 generates an authentication request that includes a random challenge (e.g., a cryptographic nonce). In one embodiment, the random challenge has a time limit associated with it (e.g., it is valid for a specified period of time). The relying party may also identify a verifier to be used by the verification client 201 for verification. As described above, the relying party may preset each authentication device available on the client and store the public key for each preset authenticator. Thus, it may use the public key of the verifier or may use a verifier ID (e.g., AAID) to identify the verifier to use. Alternatively, it may provide the client with a list of authentication options from which the user may select.
In response to receiving the authentication request, a Graphical User Interface (GUI) requesting authentication (e.g., in the form of a web page or GUI authenticating an application/application) may be presented to the user. The user then authenticates (e.g., swipes a finger over the fingerprint reader, etc.). In response, the authentication client 201 generates an authentication response that contains a signature on the random challenge, with the private key associated with the authenticator. It may also include other relevant data, such as a user ID code in the authentication response.
Upon receiving the authentication response, the relying party can validate the signature on the random challenge (e.g., using a public key associated with the authenticator) and confirm the identity of the user. Once the authentication is complete, the user is granted access to a secure transaction with the relying party, as shown.
A secure communication protocol, such as Transport Layer Security (TLS) or Secure Sockets Layer (SSL), may be used to establish a secure connection between relying party 201 and authentication client 202 for any or all of the transactions shown in fig. 2-3.
System and method for implementing one-time passwords using asymmetric encryption
Embodiments of the present invention described below include techniques for implementing one-time passwords (OTPs) using asymmetric encryption. OTP schemes are typically based on symmetric key encryption, where a client entity and a server entity share a single symmetric key and the OTP is obtained using the same key. In contrast, the disclosed embodiments of the present invention are based on asymmetric keys, which allow for a more secure server to be implemented without the need to store secrets.
There are three types of one-time password (OTP) schemes that are currently in widespread use: (1) time-based otp (totp); (2) a counter-based OTP; (3) challenge/response based OTP. Current solutions use a symmetric key based scheme for all these types of OTPs. In this scheme, the OTP device and the server are pre-provisioned in advance using the same symmetric key. In response to the verification event, the OTP device generates a special cryptographic response based on (1) time, (2) a built-in counter, or (3) a challenge provided by the server, and provides the response to the server for verification. The server then uses the same symmetric key to obtain the same encrypted value and compares it with the encrypted value provided by the OTP device. If the cryptographic values match, the verification is deemed successful.
One particular case relates to "off-line" authentication, which is applicable to scenarios where the OTP device is not directly connected to the server. After the OTP device generates an encrypted response, the response is truncated to 6 digits and then displayed to the user. The user inputs the 6-digit number into the client device, which sends the number to the server. The server then uses the same truncation algorithm to obtain the same number. After the number is obtained, it compares the obtained number with the number generated by the OTP device. However, since the server stores the key, it is a target of hacking. Maintaining keys in servers typically requires the use of expensive Hardware Security Modules (HSMs) at the data center.
One embodiment of the present invention implements an asymmetric encryption based OTP scheme. The advantage of asymmetric encryption is that the server will store a public key instead of a private key (e.g., a symmetric key). This removes the burden of protecting the confidential nature of the keys in the server and allows for easier, more secure deployment.
FIG. 4 provides an overview of a system architecture according to one embodiment of the invention. In the present embodiment, the user device 401 is an entity that stores a private key and generates a verification assertion, and the connection device 410 is an entity that has a connection with both the relying party verification server 402 and the user device 401. For example, in one embodiment, user device 401 may be a mobile device such as an iPhoneTMOr AndroidTMAnd the connection device 410 may be a desktop computer, point of sale (PoS) terminal, Automated Teller Machine (ATM), or any other device having a connection with the relying party authentication server 402.
In one embodiment, authentication server 402 stores a public key corresponding to a private key stored by user device 401. The keys may be provisioned on the user device 401 and the authentication server 402 using the key provisioning techniques discussed above with respect to fig. 2 (e.g., using DSKPP or other key provisioning protocols).
In one embodiment, the connection with user device 401 is unidirectional; that is, user device 401 may read a message from connected device 410, but may not be able to send the message. For example, the connection device 410 may display a two-dimensional (QR) code, a barcode, or other optical code to communicate information (e.g., a cryptographic challenge discussed below) to the user device 401. The user device 401 may read and interpret the optical code using known techniques, such as capturing the optical code with a camera or scanner device.
In an alternative embodiment, the connection between the user device 401 and the connection device 410 is a two-way connection implemented using a local area communication technology such as Near Field Communication (NFC), bluetooth (e.g., bluetooth low energy (BTLE)), or wireless USB.
In one embodiment, the relying party authentication server 402 is an entity that verifies cryptographic assertions generated by the user device 401. However, the user device 401 need not have a direct connection with the authentication server 402. An embodiment of the invention comprises two phases: presetting and verifying. In the provisioning phase, the user device 401 and the authentication server 402 are provisioned with encryption keys (e.g., using a key provisioning technique as shown in fig. 2). However, unlike the existing OTP scheme, the authentication server 402 is provided with a public key and the user device 401 is provided with a private key during the provisioning.
Assuming that the user device 401 has been provided with a private key and the authentication server 402 is provided with a corresponding public key, one embodiment of the present invention operates according to the transaction diagram shown in fig. 5.
At 501, the relying party authentication server 402 generates a random challenge (C) and encrypts it using a public key corresponding to the private key stored on the user device 401: EC is an encryption (public key, C), where C is a random challenge and EC is an encrypted challenge. The authentication server 402 stores C in its memory and sends EC to the connection device 410 which communicates EC to the user device 401 as shown.
At 502, user device 401 decrypts the EC with its private key and obtains the random challenge: decryption (private key, EC). User device 401 then converts C to a reduced value, such as a shortened version of C ("ShortC"). In one embodiment, this is achieved by truncating C to an N-bit number (e.g., where N ═ 6): ShortC ═ truncation (C). However, various other techniques may be implemented to convert C to ShortC while still complying with the underlying principles of the invention. For example, in one embodiment, bits from certain specified bit positions may be selected from C and combined to form ShortC.
After the user 400 is presented with ShortC at 503 (e.g., on the display of the user device 401), the user 400 enters ShortC on the connecting device 410, which sends it back to the authentication server 402 in an authentication response message. User device 401 may also request that the user perform authentication at this stage (e.g., using an authenticator on user device 401, such as a fingerprint reader).
At 504, upon receiving the authentication response message containing ShortC, the authentication server reads C from memory and truncates C using the same algorithm as user device 401. For example: ShortC _ Server is truncated (C) (if truncation is used to generate ShortC). Then, the authentication Server 402 compares the ShortC received from the user device 401 with the ShortC _ Server. If they match, the user authentication is successful. If not, the verification fails.
One embodiment of an authentication server 402 is shown in FIG. 6A. As shown, a public key 605 associated with a private key on the user device may be stored in the secure memory 604 and used by the encryption module 603 to encrypt a random challenge (C) 606. As noted, random number generator 601 may be used to generate C606, which may then be stored in secure memory 604 (and subsequently retrieved upon receipt of the authentication response). The encrypted random challenge (EC) is then sent to the connected device as described above.
Figure 6B illustrates components used in one embodiment of authentication server 402 to validate the authentication response sent by user 610 that includes ShortC. In one embodiment, conversion logic 608 reads C from memory 604 and truncates C using the same algorithm as used by user device 401 to generate ShortC: ShortC _ Server is truncated (C). The comparator logic 615 then compares the ShortC 610 received from the user with the ShortC _ Server. If they match, the user authentication is successful. If not, the verification fails.
Fig. 7 illustrates logic employed on a user device 401 in accordance with one embodiment of the present invention. The decryption module 703 decrypts the Encrypted Challenge (EC)600 sent by the authentication server 402 using the private key 705 stored in the secure memory 704. As described above, the private key 705 corresponds to the public key 605 used to perform encryption. The conversion module 706 then converts the decrypted random challenge C resulting in ShortC 710 being presented to the user. As described above, although truncation is used in one embodiment, the underlying principles of the invention are not limited to any particular type of binary or digital conversion.
While several specific details have been set forth above, various different cryptographic implementations, conversion techniques, and random challenges may be employed while still complying with the underlying principles of the invention. For example, the asymmetric algorithm may be a public key encryption algorithm such as RSA, Elliptic Curve Cryptography (ECC), or other algorithms that use asymmetric keys to implement encryption. In one embodiment, Advanced Encryption Standard (AES) with a key length of 128 or 256 bits is used. Additionally, the connection device 410 may communicate the EC to the user device 401 via QR code, NFC, bluetooth, WiFi, or any other communication technology.
In one embodiment, rather than storing C explicitly as described above, authentication server 402 sends it along with the EC to client device 401 for further authentication through an incorporation mechanism, such as a timestamp, wrapping, and similar techniques. For example:
c ═ E (server wrapping key, C | timestamp) and EC ═ E (public key, C)
Further, the relying party (i.e., the entity having the authentication server for implementing embodiments of the present invention) described above can be any entity including an online service provider, an online retail service, or an enterprise server.
In one embodiment, the software running on the connection device 410 and communicating with the authentication server 402 may be implemented in a Web browser or a proprietary application (e.g., an application specifically designed to communicate with relying parties and their authentication servers). Additionally, software running on the user device (see, e.g., FIG. 7), reading EC 600 from the connected device and displaying ShortC may be implemented in a Web browser or proprietary application. Further, in one embodiment, the logic residing on user device 401 for securing private key 705 and obtaining ShortC without revealing the private key to other components is implemented in hardware or as firmware on encrypted hardware (such as a smart card).
Exemplary data processing apparatus
FIG. 8 is a block diagram illustrating exemplary clients and servers that may be used in some embodiments of the present invention. It should be appreciated that while FIG. 8 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components as such details are not germane to the present invention. It should be understood that other computer systems having fewer components or more components may also be used with the present invention.
As shown in fig. 8, computer system 800, which is one form of a data processing system, includes a bus 850 that couples a processing system 820, a power supply 825, memory 830, and non-volatile memory 840 (e.g., a hard disk drive, flash memory, Phase Change Memory (PCM), etc.). The bus 850 may be connected to each other through various bridges, controllers, and/or adapters as is well known in the art. The processing system 820 may retrieve instructions from the memory 830 and/or the non-volatile memory 840 and execute these instructions to perform the operations described above. The bus 850 interconnects the above components together, and also interconnects those components to an optional base 860, a display controller and display device 870, an input/output device 880 (e.g., a NIC (network interface card), cursor controls (e.g., a mouse, touch screen, touchpad, etc.), a keyboard, etc.), and an optional wireless transceiver 890 (e.g., bluetooth, WiFi, infrared, etc.).
FIG. 9 is a block diagram illustrating an exemplary data processing system that may be used in some embodiments of the present invention. For example, data processing system 900 may be a handheld computer, Personal Digital Assistant (PDA), mobile telephone, portable gaming system, portable media player, tablet computer, or handheld computing device, which may include a mobile telephone, media player, and/or gaming system. As another example, data processing system 900 may be a network computer or an embedded processing device within another device.
According to one embodiment of the invention, an exemplary architecture for the data processing system 900 may be used for the mobile devices described above. Data processing system 900 includes a processing system 920 that may include one or more microprocessors and/or systems on integrated circuits. The processing system 920 is coupled with a memory 910, a power supply 925 (which includes one or more batteries), an audio input/output 940, a display controller and display device 960, an optional input/output 950, an input device 970, and a wireless transceiver 930. It should be appreciated that other components not shown in FIG. 9 may also be part of data processing system 900 in some embodiments of the present invention, and that fewer components than shown in FIG. 9 may be used in some embodiments of the present invention. In addition, it should be understood that one or more buses, not shown in FIG. 9, may be used to interconnect the various components as is well known in the art.
Memory 910 may store data and/or programs for execution by data processing system 900. Audio input/output 940 may include a microphone and/or speaker, for example, to play music, and/or to provide telephony functionality through the speaker and microphone. The display controller and display device 960 may include a Graphical User Interface (GUI). A wireless (e.g., RF) transceiver 930 (e.g., a WiFi transceiver, an infrared transceiver, a bluetooth transceiver, a wireless cellular telephone transceiver, etc.) may be used to communicate with other data processing systems. The one or more input devices 970 allow a user to provide input to the system. These input devices may be a keypad, keyboard, touch panel, multi-touch panel, etc. An optional other input/output 950 may be a connector of the chassis.
Embodiments of the invention may include various steps as set forth above. These steps may be embodied in machine-executable instructions that cause a general-purpose processor or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable program code. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic program code.
Throughout the foregoing description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. For example, one skilled in the art will readily appreciate that the functional modules and methods described herein may be implemented as software, hardware, or any combination thereof. Furthermore, although some embodiments of the present invention are described herein within the context of a mobile computing environment, the underlying principles of the invention are not limited to mobile computing implementations. In some embodiments, virtually any type of client or peer-to-peer data processing device may be used, including, for example, a desktop computer or workstation computer. Therefore, the scope and spirit of the present invention should be determined from the appended claims.
Embodiments of the invention may include various steps as set forth above. These steps may be embodied in machine-executable instructions that cause a general-purpose processor or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.

Claims (25)

1. A method, comprising:
generating a challenge at a server;
encrypting, at the server, the challenge using a public encryption key;
sending the encrypted challenge to a connected device, the connected device having a first connection with the server over a network;
providing the encrypted challenge from the connected device to a user device;
decrypting the encrypted challenge using a private encryption key corresponding to the public encryption key to determine the challenge;
converting the challenge into a converted challenge, the converted challenge having a different format than the original challenge;
receiving the converted challenge at the connected device and providing the converted challenge from the connected device to the server; and
validating the converted challenge at the server to authenticate the user.
2. The method as in claim 1 wherein the challenge comprises a random challenge generated by a random number generator on the server.
3. The method as in claim 2 wherein converting the challenge comprises truncating a portion of the challenge and using the truncated portion or a remaining portion after truncation for the converted challenge.
4. The method as in claim 3 wherein the challenge is truncated to generate a 6-bit converted challenge.
5. The method of claim 1, wherein receiving the converted challenge at the connected device comprises: receiving manual user input of the converted challenge via a user input device coupled to the connection device.
6. The method of claim 5, wherein the connection device comprises a networked computer system, a point of sale (PoS) terminal, or an Automated Teller Machine (ATM).
7. The method of claim 6, wherein the user device comprises a mobile smartphone device.
8. The method as in claim 7 wherein providing the encrypted challenge from the connected device to a user device comprises displaying an optical code on a display of the connected device and reading the optical code by the user device.
9. The method of claim 8, wherein the optical code comprises a two-dimensional (QR) code or a barcode.
10. The method as in claim 7 wherein providing the encrypted challenge from the connected device to a user device comprises establishing a local area wireless communication channel between the user device and the connected device.
11. The method of claim 10, wherein the local wireless channel comprises a bluetooth channel, a Near Field Communication (NFC) channel, a WiFi channel, or a wireless USB channel.
12. The method as in claim 3 wherein validating the converted challenge comprises truncating the same portion of the challenge on the server and comparing the converted challenge truncated on the server with the converted challenge provided by the connected device.
13. A system, comprising:
a server that generates a challenge, the server encrypting the challenge using a public encryption key;
the server sending the encrypted challenge to a connected device having a first connection with the server over a network;
the connecting device providing the encrypted challenge to a user device;
the user device decrypting the encrypted challenge using a private encryption key corresponding to the public encryption key to determine the challenge;
the user device converting the challenge into a converted challenge, the converted challenge having a different format than the original challenge;
the connected device receiving the converted challenge and providing the converted challenge from the connected device to the server; and
the server validates the converted challenge to authenticate the user.
14. The system as in claim 13 wherein the challenge comprises a random challenge generated by a random number generator on the server.
15. The system as in claim 14 wherein converting the challenge comprises truncating a portion of the challenge and using the truncated portion or a remaining portion after truncation for the converted challenge.
16. The system as in claim 15 wherein the challenge is truncated to generate a 6-bit converted challenge.
17. The system of claim 13, wherein receiving the converted challenge at the connected device comprises: receiving manual user input of the converted challenge via a user input device coupled to the connection device.
18. The system of claim 17, wherein the connection device comprises a networked computer system, a point of sale (PoS) terminal, or an Automated Teller Machine (ATM).
19. The system of claim 18, wherein the user device comprises a mobile smartphone device.
20. The system as in claim 19 wherein providing the encrypted challenge from the connected device to a user device comprises displaying an optical code on a display of the connected device and reading the optical code by the user device.
21. The system of claim 20, wherein the optical code comprises a two-dimensional (QR) code or a barcode.
22. The system as in claim 19 wherein providing the encrypted challenge from the connected device to a user device comprises establishing a local area wireless communication channel between the user device and the connected device.
23. The system of claim 22, wherein the local wireless channel comprises a bluetooth channel, a Near Field Communication (NFC) channel, a WiFi channel, or a wireless USB channel.
24. The system as in claim 15 wherein validating the converted challenge comprises truncating the same portion of the challenge on the server and comparing the converted challenge truncated on the server with a converted challenge provided by the connected device.
25. A machine-readable medium having program code stored thereon, which when executed by a machine, causes the machine to perform operations comprising:
generating a challenge at a server;
encrypting, at the server, the challenge using a public encryption key;
sending the encrypted challenge to a connected device, the connected device having a first connection with the server over a network;
providing the encrypted challenge from the connected device to a user device;
decrypting the encrypted challenge using a private encryption key corresponding to the public encryption key to determine the challenge;
converting the challenge into a converted challenge, the converted challenge having a different format than the original challenge;
receiving the converted challenge at the connected device and providing the converted challenge from the connected device to the server; and
validating the converted challenge at the server to authenticate the user.
HK17110155.1A 2014-07-31 2015-07-30 System and method for implementing a one-time-password using asymmetric cryptography HK1236636B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/448,747 2014-07-31

Publications (2)

Publication Number Publication Date
HK1236636A1 true HK1236636A1 (en) 2018-03-29
HK1236636B HK1236636B (en) 2021-11-19

Family

ID=

Similar Documents

Publication Publication Date Title
CN106575326B (en) System and method for implementing one-time passwords using asymmetric encryption
US12041039B2 (en) System and method for endorsing a new authenticator
CN106664208B (en) System and method for establishing trust using secure transport protocol
EP3138265B1 (en) Enhanced security for registration of authentication devices
JP6701364B2 (en) System and method for service-assisted mobile pairing for passwordless computer login
CN106575416B (en) System and method for authenticating a client to a device
EP4274165B1 (en) System and method for efficiently enrolling, registering, and authenticating with multiple authentication devices
CN110334503B (en) How to unlock one device from another
US9779224B2 (en) Methods and systems for client-enhanced challenge-response authentication
CN106575281B (en) System and method for implementing hosted authentication services
US8397281B2 (en) Service assisted secret provisioning
KR101835718B1 (en) Mobile authentication method using near field communication technology
HK1236636A1 (en) System and method for implementing a one-time-password using asymmetric cryptography
KR102923611B1 (en) Systems and methods for guaranteeing new authenticators
HK1236636B (en) System and method for implementing a one-time-password using asymmetric cryptography
HK40060764A (en) System and method for endorsing a new authenticator
HK40064425A (en) System and method for efficient challenge-response authentication
HK1237157A1 (en) System and method for establishing trust using secure transmission protocols
HK1237157B (en) System and method for establishing trust using secure transmission protocols
HK1234909A1 (en) Enhanced security for registration of authentication devices
HK1236637B (en) System and method for implementing a hosted authentication service
HK1236268A1 (en) System and method for authenticating a client to a device
HK1236637A1 (en) System and method for implementing a hosted authentication service
HK1237073A1 (en) System and method for integrating an authentication service within a network architecture
HK1236268B (en) System and method for authenticating a client to a device