System and method for cryptographic authentication of contactless card

JP2025029021A5Active Publication Date: 2025-10-16CAPITAL ONE SERVICES LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024207896
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2019-10-02
Filing Date
2024-11-29
Publication Date
2025-10-16
Estimated Expiration
2039-10-02

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a system and a method for cryptographic authentication of a contactless card.SOLUTION: A system and a method for data transmission between a contactless card and a client device that supports FIDO authentication are provided. In one embodiment, upon receiving a challenge issued by a server in association with a pending transaction, the contactless card may authorize a client device to utilize a FIDO private key to respond to the challenge. When the response to the challenge is successful, FIDO authentication may proceed and the transaction may be completed.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation-in-part of U.S. Patent Application No. 16 / 205,119, filed November 29, 2018, and claims priority from U.S. Provisional Patent Application No. 62 / 740,352, filed October 2, 2018, and U.S. Patent Application No. 16 / 590,429, filed October 2, 2019, the disclosures of which are incorporated herein by reference in their entireties.

[0002] FIELD OF THE DISCLOSURE This disclosure relates to cryptography, and more particularly, to systems and methods for cryptographic authentication of contactless cards. [Background technology]

[0003] Data security and transaction integrity are critical to businesses and consumers. This need continues to grow as electronic transactions comprise an ever-larger share of commercial activity.

[0004] Email can be used as a tool to verify transactions, but email is open to attacks and vulnerable to hacking and other unauthorized access. Short Message Service (SMS) messages can also be used, but they can also be compromised. Additionally, data encryption algorithms such as the triple DES algorithm have similar vulnerabilities.

[0005] Activating many cards, including financial cards (e.g., credit cards and other payment cards), requires a time-consuming process in which the cardholder calls a phone number, visits a website, and enters or provides card information. Additionally, while the increasing use of chip-based financial cards offers more secure features than previous technologies for in-person purchases (e.g., magnetic strip cards), access to an account may rely on login credentials (e.g., username and password) to verify the cardholder's identity. However, if the login credentials are compromised, another person may access the user's account.

[0006] Despite security concerns, widespread use of login credentials passwords to protect account access and sensitive information continues. A potential solution to this problem has been proposed by the FIDO Alliance in the form of the FIDO2 project to create FIDO authentication standards. The FIDO2 project incorporates the W3C Web Authentication specification and the FIDO Client Authentication Protocol, allowing common devices to be used to authenticate to online services and control account access. The FIDO2 project provides authentication of devices by initiating a cryptographic challenge that is responded to by the authenticator device using a private key. However, security issues remain, such as the difficulty of proving the presence of an authorized user at the beginning of the device authentication process.

[0007] These and other deficiencies exist. Thus, there is a need to provide users with an appropriate solution that overcomes these deficiencies to provide data security, authentication, and validation for contactless cards. Additionally, there is a need for both improved methods for activating cards and improved authentication for account access. Summary of the Invention

[0008] Aspects of the disclosed technology include systems and methods for cryptographic authentication of contactless cards. Various embodiments describe systems and methods for implementing and managing cryptographic authentication of contactless cards.

[0009] An embodiment of the present disclosure provides a client device comprising: a processor; a memory including a FIDO public key, a FIDO private key, and account information; and a communications interface in data communication with a contactless card and a server, the communications interface having a communications range; and upon receiving an instruction to initiate a transaction, the processor is configured to: send a transaction request to a first server, the transaction request including the account information and transaction information related to the transaction; receive a challenge from a second server; request transaction verification from the contactless card via the communications interface when the contactless card comes into communication range; the transaction verification authorizes use of a FIDO private key in association with the challenge, sign the challenge using the private key, and send the signed challenge to the second server.

[0010] An embodiment of the present disclosure provides an authorization method including the steps of: a client application having instructions for execution on a client device initiating a transaction with a first server; the client application sending transaction information to the first server; the client application receiving a challenge sent by the second server; the client application requesting transaction verification; and the client application receiving the transaction verification, where the transaction verification authorizes the client application to sign the challenge utilizing a FIDO private key stored in a memory of the client device; the client application signing the challenge using the FIDO private key; the client application sending the signed challenge to the server; and the client application receiving an indication from the server that the transaction has been approved.

[0011] An embodiment of the present disclosure provides a contactless card comprising a substrate, the substrate including a memory including an applet, a counter value, a master key, a diversified key, a FIDO public key, and a FIDO private key, a communications interface, and a processor in communication with the memory and the communications interface, the processor being configured to: update the counter value when the communications interface is within communication range of a client device; create a ciphertext using the diversified key and the counter value, the ciphertext storing the FIDO public key; and transmit the ciphertext via the communications interface.

[0012] Further features of the disclosed design and advantages offered thereby are described in more detail below with reference to specific exemplary embodiments that are illustrated in the accompanying drawings. [Brief description of the drawings]

[0013] [Figure 1A]1 is a diagram of a data transmission system according to an exemplary embodiment. [Figure 1B] FIG. 2 illustrates a sequence for providing authenticated access according to an exemplary embodiment. [Diagram 2] 1 is a diagram of a data transmission system according to an exemplary embodiment. [Diagram 3] FIG. 1 is a diagram of a system using contactless cards according to an exemplary embodiment. [Figure 4] 1 is a flowchart illustrating a method of key diversification according to an example embodiment. [Figure 5A] 1 is a diagram of a contactless card according to an exemplary embodiment. [Figure 5B] 2 is a diagram of a contact pad of a contactless card according to an exemplary embodiment. [Figure 6] FIG. 1 illustrates a message for communicating with a device according to an exemplary embodiment. [Figure 7] FIG. 2 illustrates messages and message formats according to an exemplary embodiment. [Figure 8] 10 is a flowchart illustrating a key operation according to an exemplary embodiment. [Figure 9] FIG. 1 is a diagram of a key system according to an exemplary embodiment. [Figure 10] 1 is a flowchart of a method for generating a cryptogram according to an example embodiment. [Figure 11] 1 is a flowchart illustrating a process of key diversification according to an example embodiment. [Figure 12] 1 is a flowchart illustrating a method for card activation according to an exemplary embodiment. [Figure 13] 1 illustrates a FIDO system using a data transmission system according to an exemplary embodiment. [Figure 14] 1 illustrates a flow chart for processing online payments according to an exemplary embodiment. [Figure 15] 1 illustrates a user interface for a client device for processing online payments according to an exemplary embodiment. [Figure 16] 1 illustrates a user interface for a client device for processing online payments according to an exemplary embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] The following description of the embodiments provides non-limiting representative examples that refer to numbers to specifically describe the features and teachings of different aspects of the present invention. It should be recognized that the described embodiments can be implemented separately or in combination with other embodiments from the description of the embodiments. Those skilled in the art who review the description of the embodiments should be able to learn and understand the different described aspects of the present invention. The description of the embodiments should facilitate understanding of the present invention to the extent that other embodiments that are not specifically covered but are within the knowledge of those skilled in the art who read the description of the embodiments are understood to be consistent with the application of the present invention.

[0015] An objective of some embodiments of the present disclosure is to incorporate one or more keys into one or more contactless cards. In these embodiments, the contactless card can perform authentication and many other functions that may otherwise require the user to carry a separate physical token in addition to the contactless card. By employing a contactless interface, the contactless card can be provided with a way to interact and communicate between the user's device (such as a mobile phone) and the card itself. For example, the EMV protocol underlying many credit card transactions includes an authentication process sufficient for the Android® operating system, but presents challenges for iOS®, which is more restricted in its use of Near Field Communication (NFC), since it can only be used in a read-only manner. Exemplary embodiments of contactless cards described herein utilize NFC technology.

[0016] 1A illustrates a data transmission system according to an exemplary embodiment. As described further below, system 100 may include a contactless card 105, a client device 110, a network 115, and a server 120. Although FIG. 1A illustrates a single instance of the components, system 100 may include any number of components.

[0017] The system 100 may include one or more contactless cards 105, which are described further below with reference to Figures 5A-5B. In some embodiments, the contactless cards 105 can wirelessly communicate with the client device 110, in one example utilizing NFC.

[0018] The system 100 may include a client device 110, which may be a network-enabled computer. As referred to herein, a network-enabled computer may include a computing device or a communication device, including, for example, but not limited to, a server, a network appliance, a personal computer, a workstation, a telephone, a handheld PC, a personal digital assistant, a thin client, a fat client, an Internet browser, or other device. The client device 110 may also be a mobile device. For example, the mobile device may include an Apple® iPhone®, iPod®, iPad®, or other mobile device running Apple's iOS® operating system, a device running Microsoft's Windows® Mobile operating system, a device running Google's Android® operating system, and / or other smartphones, tablets, or similar wearable mobile devices.

[0019] The client device 110 device may include a processor and memory, and it is understood that the processing circuitry may include additional components including processors, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives and anti-tamper hardware as necessary to perform the functions described herein. The client device 110 may further include a display and input devices. The display may be any type of device for presenting visual information such as a computer monitor, a flat panel display, and a mobile device screen including liquid crystal displays, light emitting diode displays, plasma panels, and cathode ray tube displays. The input devices may include any device for inputting information into a user's device that is available and supported by the user's device, such as a touch screen, a keyboard, a mouse, a cursor control device, a touch screen, a microphone, a digital camera, a video recorder or camcorder, etc. These devices can be used to input information and interact with the software and other devices described herein.

[0020] In some examples, a client device 110 of system 100 may execute one or more applications, such as software applications, that enable network communication with one or more components of system 100 and transmit and / or receive data, for example.

[0021] The client device 110 can communicate with one or more servers 120 via one or more networks 115 and can operate as a respective front-end to back-end pair with the server 120. The client device 110 can send one or more requests to the server 120, for example from a mobile device application executing on the client device 110. The one or more requests can be associated with retrieval of data from the server 120. The server 120 can receive one or more requests from the client device 110. Based on the one or more requests from the client device 110, the server 120 can be configured to retrieve the requested data from one or more databases (not shown). Based on receipt of the requested data from the one or more databases, the server 120 can be configured to transmit the received data to the client device 110, the received data being responsive to the one or more requests.

[0022] The system 100 may include one or more networks 115. In some examples, the networks 115 may be one or more of a wireless network, a wired network, or any combination of wireless and wired networks and may be configured to connect the client devices 110 to the server 120. For example, the networks 115 may include one or more of a fiber optic network, a passive optical network, a cable network, an Internet network, a satellite network, a wireless local area network (LAN), a global system for mobile communications, a personal communication service, a personal area network, a wireless application protocol, a multimedia messaging service, an enhanced messaging service, a short message service, a time division multiplex based system, a code division multiple access based system, a D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n and 802.11g, Bluetooth, NFC, radio frequency identification (RFID), Wi-Fi, and the like.

[0023] Further, the network 115 may include, but is not limited to, a telephone line, optical fiber, IEEE Ethernet 902.3, a wide area network, a wireless personal area network, a LAN, or a global network such as the Internet. Further, the network 115 may support an Internet network, a wireless communication network, a cellular network, or the like, or any combination thereof. The network 115 may further include one network, or any number of the exemplary types of networks listed above, operating as a standalone network or in cooperation with one another. The network 115 may utilize one or more protocols of one or more network elements to which they are communicatively coupled. The network 115 may convert to and from one or more protocols of the network devices. Although the network 115 is shown as a single network, it should be understood that, according to one or more examples, the network 115 may include multiple interconnected networks, such as, for example, the Internet, a service provider's network, a cable television network, an enterprise network such as a credit card association network, and a home network.

[0024] The system 100 may include one or more servers 120. In some examples, the server 120 may include one or more processors coupled to a memory. The server 120 may be configured as a central system, server, or platform for controlling and calling various data at different times to perform multiple workflow actions. The server 120 may be configured to connect to one or more databases. The server 120 may be connected to at least one client device 110.

[0025] 1B is a timing diagram illustrating an example sequence for providing authenticated access according to one or more embodiments of the present disclosure. System 100 may include contactless card 105 and client device 110, which may include application 122 and processor 124. FIG. 1B may reference similar components as shown in FIG. 1A.

[0026] In step 102, application 122 communicates with contactless card 105 (e.g., after being brought into close proximity to contactless card 105). Communication between application 122 and contactless card 105 may involve contactless card 105 being sufficiently close to a card reader (not shown) of client device 110 to enable NFC data transfer between application 122 and contactless card 105.

[0027] In step 104, after communication is established between the client device 110 and the contactless card 105, the contactless card 105 generates a message authentication code (MAC) cryptogram. In some examples, this may occur when the contactless card 105 is read by the application 122. In particular, this may occur upon a read, such as an NFC read of a Near Field Wireless Data Exchange (NDEF) tag, which may be created according to the NFC data exchange format. For example, a reader, such as the application 122, may send a message, such as an applet selection message, with the applet ID of the NDEF generating applet. Once the selection is confirmed, a series of select file messages followed by read file messages may be sent. For example, the sequence may include "select feature file", "read feature file", and "select NDEF file". At this point, a counter value maintained by the contactless card 105 may be updated or incremented, followed by "read NDEF file". At this point, a message may be generated that includes a header and a shared secret. A session key may then be generated. A MAC cryptogram may be created from the message. The message may include a header and a shared secret. The MAC ciphertext may then be concatenated with one or more blocks of random data, and the MAC ciphertext and the random number (RND) may be encrypted with a session key. The ciphertext and the header may then be concatenated, encoded as ASCII hex, and returned in the NDEF message format (in response to a "read NDEF file" message).

[0028] In some examples, the MAC cryptogram may be transmitted as an NDEF tag, and in other examples, the MAC cryptogram may be included with the uniform resource indicator (eg, as a formatted string).

[0029] In some examples, the application 122 may be configured to send a request to the contactless card 105, where the request comprises instructions to generate a MAC cryptogram.

[0030] In step 106, contactless card 105 transmits the MAC cryptogram to application 122. In some examples, the transmission of the MAC cryptogram occurs via NFC, although this disclosure is not limited thereto. In other examples, this communication may occur via Bluetooth, Wi-Fi, or other wireless data communication means.

[0031] In step 108 , the application 122 communicates the MAC ciphertext to the processor 124 .

[0032] In step 112, the processor 124 verifies the MAC ciphertext according to instructions from the application 122. For example, the MAC ciphertext may be verified as described below.

[0033] In some examples, verification of the MAC ciphertext may be performed by a device other than the client device 110 (as shown in FIG. 1A ), such as a server 120 in data communication with the client device 110. For example, the processor 124 may output the MAC ciphertext for transmission to the server 120, which can verify the MAC ciphertext.

[0034] In some examples, the MAC ciphertext may act as a digital signature for purposes of verification. To perform this verification, a public key asymmetric algorithm may be used, such as the Digital Signature Algorithm and the RSA algorithm, or other digital signature algorithms such as zero-knowledge protocols.

[0035] FIG. 2 illustrates a data transmission system according to an exemplary embodiment. The system 200 may include a transmitting or sending device 205, a receiving or receiving device 210, in communication with one or more servers 220, for example, via a network 215. The transmitting or sending device 205 may be the same as or similar to the client device 110 discussed above with reference to FIG. 1A. The receiving or receiving device 210 may be the same as or similar to the client device 110 discussed above with reference to FIG. 1A. The network 215 may be similar to the network 115 discussed above with reference to FIG. 1A. The server 220 may be similar to the server 120 discussed above with reference to FIG. 1A. Although FIG. 2 illustrates a single instance of the components of the system 200, the system 200 may include any number of the illustrated components.

[0036] When using symmetric encryption algorithms, such as the Encryption Algorithm, the Hash-based Message Authentication Code (HMAC) algorithm, or the Cipher-based Message Authentication Code (CMAC) algorithm, it is important to keep the key secret between the party that first processes data protected with the symmetric algorithm and key, and the party that receives and processes the data using the same encryption algorithm and the same key.

[0037] It is also important not to use the same key multiple times. If a key is used or reused frequently, it may be compromised. Each time a key is used, it provides an attacker with an additional sample of data that has been processed by the encryption algorithm using the same key. The more data that has been processed with the same key that an attacker has, the more likely it is that the attacker will discover the value of the key. Frequently used keys may be included in a variety of attacks.

[0038] Additionally, each time a symmetric encryption algorithm is run, it may reveal information, such as side channel data, about the key used during the symmetric encryption operation. Side channel data may include slight power fluctuations that occur when the encryption algorithm is run while the key is in use. Enough of the side channel data can be measured to reveal enough information about the key to allow an attacker to recover the key. Exchanging data using the same key will repeatedly reveal data processed with the same key.

[0039] However, limiting the number of times a particular key is used limits the amount of side channel data an attacker can collect, thereby reducing exposure to this and other types of attacks. As described further herein, the parties involved in the exchange of cryptographic information (e.g., sender and receiver) should generate keys independently from an initial shared master symmetric key in combination with a counter value, thereby periodically replacing the shared symmetric keys in use and resorting to some form of key exchange to keep the parties synchronized. Periodically changing the shared secret symmetric keys used by the sender and receiver makes the above attack infeasible.

[0040] Returning to FIG. 2, the system 200 may be configured to implement key diversification. For example, a sender and a receiver may wish to exchange data (e.g., original confidential data) via their respective devices 205 and 210. As explained above, a single instance of a sending device 205 and a receiving device 210 may be included, but it is understood that one or more sending devices 205 and one or more receiving devices 210 may be involved so long as each party shares the same shared secret symmetric key. In some examples, the sending device 205 and the receiving device 210 may be provisioned with the same master symmetric key. Furthermore, it is understood that any party or device that holds the same secret symmetric key can perform the functions of the sending device 205, and similarly, any party that holds the same secret symmetric key can perform the functions of the receiving device 210. In some examples, the symmetric key may comprise a shared secret symmetric key that is kept secret from all parties other than the sending device 205 and the receiving device 210 involved in the exchange of secure data. It is further understood that both the transmitting device 205 and the receiving device 210 can be provided with the same master symmetric key, and further that a portion of the data exchanged between the transmitting device 205 and the receiving device 210 can comprise at least a portion of data that can be referred to as a counter value. The counter value can comprise a number that changes each time data is exchanged between the transmitting device 205 and the receiving device 210.

[0041] The system 200 may include one or more networks 215. In some examples, the network 215 may be one or more of a wireless network, a wired network, or any combination of wireless and wired networks and may be configured to connect the one or more transmitting devices 205 and the one or more receiving devices 210 to the server 220. For example, the network 215 may include one or more of an optical fiber network, a passive optical network, a cable network, an Internet network, a satellite network, a wireless LAN, a global system for mobile communications, a personal communication service, a personal area network, a wireless application protocol, a multimedia messaging service, an enhanced messaging service, a short message service, a time division multiplex based system, a code division multiple access based system, a D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n and 802.11g, Bluetooth, NFC, RFID, Wi-Fi, and the like.

[0042] Additionally, network 215 may include a global network, such as, but not limited to, telephone lines, optical fiber, IEEE Ethernet 902.3, wide area networks, wireless personal area networks, LANs, or the Internet. Additionally, network 215 may support an Internet network, a wireless communication network, a cellular network, or the like, or any combination thereof. Network 215 may further include one network, or any number of the exemplary types of networks listed above, operating as a standalone network or in cooperation with one another. Network 215 may utilize one or more protocols of one or more network elements to which they are communicatively coupled. Network 215 may translate to and from one or more protocols of a network device. Although network 215 is shown as a single network, it should be understood that, according to one or more examples, network 215 may comprise multiple interconnected networks, such as, for example, the Internet, a service provider's network, a cable television network, an enterprise network such as a credit card association network, and a home network.

[0043] In some examples, the one or more transmitting devices 205 and the one or more receiving devices 210 may be configured to communicate with each other and transmit and receive data without going through the network 215. For example, communication between the one or more transmitting devices 205 and the one or more receiving devices 210 may occur via at least one of NFC, Bluetooth, RFID, Wi-Fi, etc.

[0044] At block 225, when the sending device 205 prepares to process the sensitive data in a symmetric encryption operation, the sender may update a counter. Additionally, the sending device 205 may select an appropriate symmetric cryptography algorithm, which may include at least one of a symmetric encryption algorithm, an HMAC algorithm, and a CMAC algorithm. In some examples, the symmetric algorithm used to process the diversification value may comprise any symmetric encryption algorithm used as needed to generate a diversified symmetric key of a desired length. Non-limiting examples of symmetric algorithms may include symmetric encryption algorithms such as 3DES or AES128, symmetric HMAC algorithms such as HMAC-SHA-256, symmetric CMAC algorithms such as AES-CMAC. It should be appreciated that if the output of the selected symmetric algorithm does not generate a sufficiently long key, techniques such as processing multiple iterations of the symmetric algorithm with different input data and the same master key may generate multiple outputs that can be combined as needed to generate a key of sufficient length.

[0045] In block 230, the sending device 205 can employ the selected encryption algorithm and process the counter value using a master symmetric key. For example, the sender can select a symmetric encryption algorithm and use a counter that updates with every conversation between the sending device 205 and the receiving device 210. The sending device 205 can then encrypt the counter value with the selected symmetric encryption algorithm using the master symmetric key to create a diversified symmetric key.

[0046] In some examples, the counter value may not be encrypted. In these examples, the counter value may be transmitted between the transmitting device 205 and the receiving device 210 in block 230 without encryption.

[0047] At block 235, the diversified symmetric key may be used to process the sensitive data before transmitting the results to the receiving device 210. For example, the sending device 205 may encrypt the sensitive data using a symmetric encryption algorithm using the diversified symmetric key, with the output comprising the protected encrypted data. The sending device 205 may then transmit the protected encrypted data, along with the counter value, to the receiving device 210 for processing.

[0048] In block 240, the receiving device 210 can first obtain the counter value and then perform the same symmetric encryption using the counter value as input to the encryption and the master symmetric key as the key for the encryption. The output of the encryption can be the same diverse symmetric key value as that created by the sender.

[0049] Next, in block 245, the receiving device 210 may obtain the protected encrypted data and decrypt the protected encrypted data using a symmetric decryption algorithm along with the diversified symmetric key.

[0050] At block 250, the original sensitive data may be revealed as a result of decrypting the protected encrypted data.

[0051] Next, when sensitive data needs to be transmitted from the sender to the recipient via the respective sending device 205 and receiving device 210, a different counter value can be selected to generate a different diverse symmetric key. By processing the counter value using the same symmetric cryptography algorithm as the master symmetric key, both the sending device 205 and the receiving device 210 can independently generate the same diverse symmetric key. This diverse symmetric key, rather than the master symmetric key, is used to protect the sensitive data.

[0052] As explained above, both the transmitting device 205 and the receiving device 210 initially each possess a shared master symmetric key. The shared master symmetric key is not used to encrypt the original secret data. The diversified symmetric keys are never transmitted between the transmitting device 205 and the receiving device 210 because they are created independently by both. Thus, an attacker cannot intercept the diversified symmetric keys, and the attacker never sees the data processed with the master symmetric key. Only the counter value, not the secret data, is processed with the master symmetric key. As a result, the reduction of side channel data with respect to the master symmetric key is revealed. Furthermore, the operation of the transmitting device 205 and the receiving device 210 may be governed by symmetric requirements regarding the frequency of creating new diversification values, and therefore new diversified symmetric keys. In one embodiment, a new diversification value, and therefore a new diversified symmetric key, may be created for every exchange between the transmitting device 205 and the receiving device 210.

[0053] In some examples, the key diversification value may constitute a counter value. Other non-limiting examples of key diversification values ​​include a random nonce generated each time a new diversified key is needed, a random nonce transmitted from the transmitting device 205 to the receiving device 210, the complete value of the counter value transmitted from the transmitting device 205 and the receiving device 210, a portion of the counter value transmitted from the transmitting device 205 and the receiving device 210, a counter maintained independently by the transmitting device 205 and the receiving device 210 but not transmitted between the two devices, a one-time passcode exchanged between the transmitting device 205 and the receiving device 210, a cryptographic hash of the secret data. In some examples, one or more portions of the key diversification value may be used by the parties to create multiple diversified keys. For example, a counter may be used as the key diversification value. Additionally, a combination of one or more of the above example key diversification values ​​may be used.

[0054] In other examples, a portion of the counter can be used as the key diversification value. When multiple master key values ​​are shared between the parties, multiple diversified key values ​​can be obtained by the systems and processes described herein. New diversification values, and therefore new diversified symmetric keys, can be created as many times as necessary. In the most secure case, a new diversification value can be created for each exchange of sensitive data between the sending device 205 and the receiving device 210. In effect, this can create a one-time use key, such as a single-use session key.

[0055] Figure 3 illustrates a system 300 that uses contactless cards. System 300 may include a contactless card 305, one or more client devices 310, a network 315, servers 320, 325, one or more hardware security modules 330, and a database 335. Although Figure 3 illustrates a single instance of the components, system 300 may include any number of components.

[0056] The system 300 may include one or more contactless cards 305, which will be further described below with respect to FIGS. 5A-5B. In some examples, the contactless card 305 may be in wireless communication, e.g., NFC communication, with the client device 310. For example, the contactless card 305 may include one or more chips, such as radio frequency identification chips, configured to communicate via NFC or other short-range protocols. In other embodiments, the contactless card 305 may communicate with the client device 310 via other means, including, but not limited to, Bluetooth, satellite, Wi-Fi, wired communication, and / or any combination of wireless and wired connections. According to some embodiments, the contactless card 305 may be configured to communicate with the card reader 313 of the client device 310 via NFC when the contactless card 305 is within range of the card reader 313. In other examples, communication with the contactless card 305 may be achieved via a physical interface, e.g., a Universal Serial Bus interface or a card swipe interface.

[0057] The system 300 may include a client device 310, which may be a network-enabled computer. As referred to herein, a network-enabled computer may include, for example, a computing device or a communication device, including, for example, but not limited to, a server, a network appliance, a personal computer, a workstation, a mobile device, a telephone, a handheld PC, a personal digital assistant, a thin client, a fat client, an Internet browser, or other device. One or more of the client devices 310 may also be mobile devices. For example, the mobile devices may include an Apple® iPhone®, an iPod®, an iPad®, or other mobile devices running Apple's iOS® operating system, devices running Microsoft's Windows® Mobile operating system, devices running Google's Android® operating system, and / or other smartphones or similar wearable mobile devices. In some examples, the client device 310 may be the same as or similar to the client device 110, as described with reference to FIG. 1A or FIG. 1B.

[0058] The client device 310 can communicate with one or more servers 320 and 325 via one or more networks 315. The client device 310 can send one or more requests to the one or more servers 320 and 325, for example from an application 311 running on the client device 310. The one or more requests can be associated with retrieval of data from the one or more servers 320 and 325. The servers 320 and 325 can receive one or more requests from the client device 310. Based on the one or more requests from the client device 310, the one or more servers 320 and 325 can be configured to retrieve the requested data from one or more databases 335. Based on receiving the requested data from the one or more databases 335, the one or more servers 320 and 325 can be configured to transmit the received data to the client device 310, the received data being responsive to the one or more requests.

[0059] The system 300 may include one or more hardware security modules (HSMs) 330. For example, the one or more HSMs 330 may be configured to perform one or more cryptographic operations as disclosed herein. In some examples, the one or more HSMs 330 may be configured as special purpose security devices configured to perform one or more cryptographic operations. The HSMs 330 may be configured such that keys are never revealed outside of the HSMs 330, but instead are maintained within the HSMs 330. For example, the one or more HSMs 330 may be configured to perform at least one of key derivation, decryption, and MAC operations. The one or more HSMs 330 may be included within the servers 320 and 325 or in data communication with the servers 320 and 325.

[0060] The system 300 may include one or more networks 315. In some examples, the network 315 may be one or more of a wireless network, a wired network, or any combination of wireless and wired networks and may be configured to connect the client devices 315 to the servers 320 and 325. For example, the network 315 may include one or more of a fiber optic network, a passive optical network, a cable network, a cellular network, an Internet network, a satellite network, a wireless LAN, a global system for mobile communications, a personal communication service, a personal area network, a wireless application protocol, a multimedia messaging service, an enhanced messaging service, a short message service, a time division multiplex based system, a code division multiple access based system, a D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n and 802.11g, Bluetooth, NFC, RFID, Wi-Fi, and / or any combination of those networks. As non-limiting examples, communications from the contactless card 305 and the client device 310 may include NFC communications, a cellular network between the client device 310 and the carrier, and the Internet between the carrier and a backend.

[0061] Further, the network 315 may include, but is not limited to, telephone lines, optical fiber, IEEE Ethernet 902.3, wide area networks, wireless personal area networks, local area networks, or global networks such as the Internet. Further, the network 315 may support an Internet network, a wireless communication network, a cellular network, or the like, or any combination thereof. The network 315 may further include one network, or any number of the exemplary types of networks listed above, operating as a standalone network or in cooperation with one another. The network 315 may utilize one or more protocols of one or more network elements to which they are communicatively coupled. The network 315 may convert to and from one or more protocols of the network device. Although the network 315 is shown as a single network, it should be understood that according to one or more examples, the network 315 may comprise multiple interconnected networks, such as, for example, the Internet, a service provider's network, a cable television network, an enterprise network such as a credit card association network, and a home network.

[0062] In various examples according to the present disclosure, the client device 310 of the system 300 can execute one or more applications 311 and includes one or more processors 312 and one or more card readers 313. The one or more applications 311, e.g., software applications, can be configured to enable network communication with, e.g., one or more components of the system 300, to transmit and / or receive data. Although only a single instance of the components of the client device 310 is shown in FIG. 3, it will be understood that any number of devices 310 can be used. The card reader 313 can be configured to read from and / or communicate with the contactless card 305. In conjunction with the one or more applications 311, the card reader 313 can communicate with the contactless card 305.

[0063] Any application 311 on the client device 310 can communicate with the contactless card 305 using short-range wireless communication (e.g., NFC). The application 311 can be configured to interface with a card reader 313 on the client device 310 configured to communicate with the contactless card 305. As should be noted, those skilled in the art will understand that a distance of less than 20 centimeters is consistent with an NFC range.

[0064] In some embodiments, the application 311 communicates with the contactless card 305 via an associated reader (eg, card reader 313).

[0065] In some embodiments, card activation may occur without user authentication. For example, the contactless card 305 may communicate with the application 311 via the card reader 313 of the client device 310 via NFC. The communication (e.g., tapping the card in proximity to the card reader 313 of the client device 310) allows the application 311 to read data associated with the card and perform the activation. In some cases, the tap may activate or launch the application 311, which may then initiate one or more actions or communications with the account server 325 to activate the card for subsequent use. In some cases, if the application 311 is not installed on the client device 310, tapping the card against the card reader 313 may initiate a download of the application 311 (e.g., navigation to an application download page). Following installation, tapping the card may activate or launch the application 311, which may then initiate activation of the card (e.g., via application or other back-end communications). After activation, the card may be used in a variety of transactions, including commercial transactions.

[0066] According to some embodiments, the contactless card 305 may include a virtual payment card. In those embodiments, the application 311 may retrieve information related to the contactless card 305 by accessing a digital wallet implemented on the client device 310, the digital wallet including the virtual payment card. In some examples, the virtual payment card data may include one or more statically or dynamically generated virtual card numbers.

[0067] The server 320 may comprise a web server in communication with the database 335. The server 325 may comprise an account server. In some examples, the server 320 may be configured to verify one or more credentials from the contactless card 305 and / or the client device 310 by comparing with one or more credentials in the database 335. The server 325 may be configured to authorize one or more requests, such as payments and transactions, from the contactless card 305 and / or the client device 310.

[0068] 4 illustrates a method 400 of key diversification according to an example of this disclosure. The method 400 may include a transmitting device and a receiving device similar to the transmitting device 205 and the receiving device 210 referenced in FIG.

[0069] For example, a sender and a receiver may wish to exchange data (e.g., original confidential data) via a sending device and a receiving device. As described above, these two parties may be included, but it is understood that one or more sending devices and one or more receiving devices may be involved so long as each party shares the same shared secret symmetric key. In some examples, the sending device and the receiving device may be provisioned with the same master symmetric key. It is further understood that any party or device that holds the same secret symmetric key can perform the functions of a sending device, and similarly, any party that holds the same secret symmetric key can perform the functions of a receiving device. In some examples, the symmetric key may comprise a shared secret symmetric key that is kept secret from all parties other than the sending device and the receiving device involved in the secure data exchange. Furthermore, both the sending device and the receiving device may be provided with the same master symmetric key, and it is further understood that a portion of the data exchanged between the sending device and the receiving device comprises at least a portion of the data that may be referred to as a counter value. The counter value may comprise a number that changes each time data is exchanged between the sending device and the receiving device.

[0070] At block 410, the sending device and the receiving device may be provisioned with the same master key, such as the same master symmetric key. When the sending device prepares to process the sensitive data in a symmetric encryption operation, the sender may update a counter. Additionally, the sending device may select an appropriate symmetric cryptography algorithm, which may include at least one of a symmetric encryption algorithm, an HMAC algorithm, and a CMAC algorithm. In some examples, the symmetric algorithm used to process the diversification value may comprise any symmetric cryptography algorithm used as needed to generate a diversified symmetric key of a desired length. Non-limiting examples of symmetric algorithms may include symmetric encryption algorithms such as 3DES or AES128, symmetric HMAC algorithms such as HMAC-SHA-256, symmetric CMAC algorithms such as AES-CMAC. It is understood that if the output of the selected symmetric algorithm does not generate a sufficiently long key, techniques such as processing multiple iterations of the symmetric algorithm with different input data and the same master key may generate multiple outputs that can be combined as needed to generate a key of sufficient length.

[0071] The sending device may use a selected encryption algorithm and process the counter value using a master symmetric key. For example, the sender may select a symmetric encryption algorithm and use a counter that is updated for each conversation between the sending device and the receiving device.

[0072] Next, at block 420, the sending device may use the master symmetric key to encrypt the counter value with a selected symmetric encryption algorithm to create a diversified symmetric key. The diversified symmetric key may be used to process the sensitive data before transmitting the result to the receiving device. For example, the sending device may encrypt the sensitive data using a symmetric encryption algorithm that uses the diversified symmetric key, and the output may comprise protected encrypted data. The sending device may then transmit the protected encrypted data along with the counter value to the receiving device for processing. In some examples, encryption operations other than encryption may be performed and multiple encryption operations may be performed using the diversified symmetric key before transmitting the protected data.

[0073] In some examples, the counter value may not be encrypted. In these examples, the counter value may be transmitted between the sending device and the receiving device at block 420 without encryption.

[0074] At block 430, the sensitive data may be protected using one or more encryption algorithms and diversified keys. A diversified session key, possibly created by diversifying the key using the counter, may be used with one or more encryption algorithms to protect the sensitive data. For example, the data may be processed by a MAC using a first diversified session key, and the resulting output may be encrypted using a second diversified session key to generate the protected data.

[0075] At block 440, the receiving device can perform the same symmetric encryption using the counter value as input to the encryption and the master symmetric key as the key for the encryption. The output of the encryption can be the same diversified symmetric key value created by the sender. For example, the receiving device can use the counter to independently create its own copies of the first and second diversified session keys. The receiving device can then decrypt the protected data using the second diversified session key, revealing the output of the MAC created by the sending device. The receiving device can then process the resulting data through a MAC operation using the first diversified session key.

[0076] At block 450, the receiving device may use the diversified key with one or more encryption algorithms to verify the protected data.

[0077] The original data may be verified at block 460. If the output of the MAC operation (via the receiving device using the first diversified session key) matches the MAC output revealed by decryption, the data may be considered valid.

[0078] Then, when sensitive data needs to be sent from the sending device to the receiving device, a different counter value can be selected, which generates a different diversified symmetric key. By processing the counter value with the same symmetric encryption algorithm as the master symmetric key, both the sending device and the receiving device can independently generate the same diversified symmetric key. This diversified symmetric key, rather than the master symmetric key, is used to protect the sensitive data.

[0079] As explained above, both the sending device and the receiving device initially each possess a shared master symmetric key. The shared master symmetric key is not used to encrypt the original secret data. The diversified symmetric keys are created independently by both the sending device and the receiving device and are therefore never transmitted between the two parties. Thus, an attacker cannot intercept the diversified symmetric key and the attacker does not see the data processed with the master symmetric key. Only a small counter value, not the secret data, is processed with the master symmetric key. As a result, a reduction in side channel data with respect to the master symmetric key is revealed. Furthermore, the sender and the receiver can agree, for example, by prior arrangement or other means, on how often to create a new diversification value and therefore a new diversified symmetric key. In one embodiment, a new diversification value and therefore a new diversified symmetric key may be created for every exchange between the sending device and the receiving device.

[0080] In some examples, the key diversification value may constitute a counter value. Other non-limiting examples of key diversification values ​​include a random nonce generated each time a new diversified key is needed, a random nonce transmitted from the sending device to the receiving device, the complete value of the counter value transmitted from the sending device and the receiving device, a portion of the counter value transmitted from the sending device and the receiving device, a counter maintained independently by the sending device and the receiving device but not transmitted between the two, a one-time passcode exchanged between the sending device and the receiving device, a cryptographic hash of the secret data. In some examples, one or more portions of the key diversification value may be used by the parties to create multiple diversified keys. For example, a counter may be used as a key diversification value.

[0081] In other examples, a portion of the counter can be used as the key diversification value. When multiple master key values ​​are shared between the parties, multiple diversified key values ​​can be obtained by the systems and processes described herein. New diversification values, and therefore new diversified symmetric keys, can be created as many times as necessary. In the most secure case, a new diversification value can be created every time sensitive data is exchanged between a sending device and a receiving device. In effect, this can create a one-time use key, such as a single session key.

[0082] In other examples, such as limiting the number of uses of the master symmetric key, the sender at the sending device and the receiver at the receiving device may agree that a new diversification value, and therefore a new diversified symmetric key, will only occur periodically. In one example, this may be after a predetermined number of uses, such as every 10 transmissions between the sending device and the receiving device. In other examples, this may occur after a specific period of time, a specific period of time after transmission, or periodically (e.g., daily at a specified time; weekly at a specified time on a specified day). In other examples, this may be every time the receiving device signals to the sending device that it wishes to change the key in the next communication. This may be controlled based on policy and may vary, for example, depending on the current risk level perceived by the receiver at the receiving device.

[0083] FIG. 5A illustrates one or more contactless cards 500 that may comprise a payment card, such as a credit card, debit card, or gift card, issued by a service provider 505 displayed on the front or back of the card 500. In some examples, the contactless card 500 may comprise, but is not limited to, an identification card unrelated to a payment card. In some examples, the payment card may comprise a dual-interface contactless payment card. The contactless card 500 may comprise a substrate 510 that may include a single layer or one or more laminate layers composed of plastic, metal, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyester, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 500 may have physical characteristics that conform to the ID-1 format of the ISO / IEC 7810 standard, or the contactless card may otherwise conform to the ISO / IEC 14443 standard. However, it is understood that contactless cards 500 according to the present disclosure may have different characteristics, and the present disclosure does not require that the contactless card be embodied in a payment card.

[0084] The contactless card 500 may also include identification information 515 displayed on the front and / or back of the card, and a contact pad 520. The contact pad 520 may be configured to establish contact with other communication devices, such as a user device, a smartphone, a laptop, desktop, or a tablet computer. The contactless card 500 may also include processing circuitry, an antenna, and other components not shown in FIG. 5A. These components may be located behind the contact pad 520 or elsewhere on the substrate 510. The contactless card 500 may also include a magnetic strip or tape that may be located on the back of the card (not shown in FIG. 5A).

[0085] As shown in Figure 5B, the contact pad 520 of Figure 5A may include processing circuitry 525 for storing and processing information, including a microprocessor 530 and memory 535. It will be understood that the processing circuitry 525 may include additional components including processors, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives and anti-tamper hardware as necessary to perform the functions described herein.

[0086] The memory 535 may be a read-only memory, a write-once read multiple memory, or a read / write memory, e.g., RAM, ROM, and EEPROM, and the contactless card 500 may include one or more of these memories. Read-only memory is programmable at the factory as read-only or one-time programmable. One-time programmability offers the opportunity to write once and then read many times. Write-once / read multiple memory can be programmed at some point after the memory chip leaves the factory. Once the memory is programmed, it cannot be rewritten, but it can be read many times. Read / write memory can be programmed and reprogrammed many times after leaving the factory. It may also be read many times.

[0087] The memory 535 may be configured to store one or more applets 540, one or more counters 545, and a customer identifier 550. The one or more applets 540 may comprise one or more software applications configured to run on one or more contactless cards, such as a Java Card applet. However, it is understood that the applet 540 is not limited to a Java Card applet, but may instead be any software application operable on a contactless card or other device having limited memory. The one or more counters 545 may comprise a numeric counter sufficient to store an integer number. The customer identifier 550 may comprise a unique alphanumeric identifier assigned to a user of the contactless card 500, the identifier may distinguish a user of the contactless card from other contactless card users. In some examples, the customer identifier 550 may identify both a customer and an account assigned to the customer, and may further identify a contactless card associated with the customer's account.

[0088] Although the processor and memory elements of the foregoing exemplary embodiments are described with reference to contact pads, the disclosure is not limited thereto, and it will be understood that these elements may be implemented outside of the pad 520, completely separate from the pad 520, or as additional elements in addition to the processor 530 and memory 535 elements disposed within the contact pad 520.

[0089] In some examples, the contactless card 500 may include one or more antennas 555. The one or more antennas 555 may be disposed within the contactless card 500 around the processing circuit 525 of the contact pad 520. For example, the one or more antennas 555 may be integral with the processing circuit 525, or the one or more antennas 555 may be used with an external booster coil. As another example, the one or more antennas 555 may be external to the contact pad 520 and the processing circuit 525.

[0090] In one embodiment, the coil of the contactless card 500 can function as the secondary of an air core transformer. The terminal can communicate with the contactless card 500 by interrupting the power or amplitude modulation. The contactless card 500 can infer the data transmitted from the terminal using a gap in the power connection of the contactless card, which can be functionally maintained via one or more capacitors. The contactless card 500 can communicate back by switching or load modulating the load of the coil of the contactless card. Load modulation can be detected at the coil of the terminal by interference.

[0091] As described above, the contactless card 500 may be built on a software platform operable on a smart card or other device with limited memory, such as a Java Card, on which one or more applications or applets may be securely executed. An applet may be added to the contactless card to provide a one-time password (OTP) for multi-factor authentication (MFA) in various mobile application-based use cases. The applet may be configured to respond to one or more requests, such as a near-field data exchange request, from a reader, such as a mobile NFC reader, and generate an NDEF message comprising the cryptographically secure OTP encoded as an NDEF text tag.

[0092] FIG. 6 illustrates an NDEF short record layout (SR=1) 600, according to an exemplary embodiment. One or more applets can be configured to encode the OTP as a text tag of NDEF type 4 well-known type. In some examples, the NDEF message can comprise one or more records. The applet can be configured to add one or more static tag records in addition to the OTP record. Exemplary tags include, but are not limited to: tag type: well-known type, text, English encoding (en); applet ID: D2760000850101; function: read-only access; encoding: authentication message can be encoded as ASCII hex; type-length-value (TLV) data can be provided as personalization parameters that can be used to generate the NDEF message. In one embodiment, the authentication template can comprise a first record with a known index to provide the actual dynamic authentication data.

[0093] 7 illustrates a message 710 and message format 720 according to an example embodiment. In one example, if an additional tag is added, the first byte is changed to indicate the start of the message but not the end, and subsequent records can be added. The ID length field and ID are omitted from the record because the ID length is zero. An example message includes: UDK AUT key; derived AUT session key (using 0x00000050); version 1.0; pATC=0x00000050; RND=4838FB7DC171B89E; MAC=<calculated 8 bytes>.

[0094] In some examples, data may be stored on the contactless card upon personalization by implementing STORE DATA (E2) under secure channel protocol 2. The personalization bureau can read one or more values ​​from the EMBOSS file (section specified by applet ID) and send one or more store data commands to the contactless card after authentication and establishment of a secure channel.

[0095] The pUID consists of a 16-digit BCD encoded number. In some examples, the pUID may consist of 14 digits. [Table 1]

[0096] In some examples, one or more applets may be configured to maintain their personalized state and allow personalization only when unlocked and authenticated. Other states may comprise a standard state pre-personalization. Upon entering the exit state, one or more applets may be configured to delete personalized data. In the exit state, one or more applets may be configured to stop responding to all application protocol data unit (APDU) requests.

[0097] One or more applets can be configured to maintain an applet version (2 bytes) that can be used in authentication messages. In some examples, this can be interpreted as a major version in the most significant byte and a minor version in the least significant byte. Rules for each version are configured to interpret the authentication message. For example, for major versions, this can include that each major version has a specific authentication message layout and specific algorithms. For minor versions, this can include no changes to the authentication message or encryption algorithms, no changes to static tag content, in addition to bug fixes, security enhancements, etc.

[0098] In some examples, the one or more applets may be configured to emulate an RFID tag. The RFID tag may include one or more polymorphic tags. In some examples, each time the tag is read, various encrypted data is presented that may indicate the authenticity of the contactless card. Based on the one or more applications, an NFC read of the tag may be processed, a token may be sent to a server, such as a back-end server, and the token may be verified at the server.

[0099] In some examples, the contactless card and server may contain specific data so that the card may be properly identified. The contactless card may include one or more unique identifiers. Each time a read operation is performed, a counter may be configured to be updated. In some examples, each time the card is read, it is sent to the server for verification, and (as part of the verification) it is determined whether the counter is equal.

[0100] The counter or counters can be configured to prevent replay attacks. For example, if a ciphertext is captured and replayed, it will be immediately rejected if the counter is read, used, or otherwise passed on. If the counter is not in use, it may be replayed. In some examples, the counter updated on the card is different than the counter updated for the transaction. In some examples, the contactless card may include a first applet, which may be a transaction applet, and a second applet. Each applet may include a counter.

[0101] In some instances, counters may become out of sync between the contactless card and the one or more servers. For example, a contactless card may be activated, a counter updated, and a new communication generated by the contactless card may not be sent for processing by the one or more servers. This may cause the counters of the contactless card and the counters maintained by the one or more servers to become out of sync. This may occur unintentionally, for example, if the card is stored adjacent to the device (e.g., carried in a pocket with the device), if the contactless card is read at an angle, if the card is misaligned or misplaced such that the NFC range of the device is powered but not readable. If the contactless card is placed adjacent to the device, the NFC range of the device may be turned on to power the contactless card and update the counters therein, but the application on the device does not receive the communication.

[0102] To keep the counters synchronized, an application, such as a background application, may be executed that detects when the mobile device wakes up and synchronizes with one or more servers to detect that a read has occurred and move the counter forward. Because the counters of the contactless card and the one or more servers may become out of sync, the one or more servers may be configured to allow the counter of the contactless card to be updated a threshold or predetermined number of times before being read by the one or more servers and still considered valid. For example, if the counter is configured to increment (or decrement) by one for each occurrence indicating activation of the contactless card, the one or more servers may accept as valid any counter value read from the contactless card or any counter value within a threshold range (e.g., 1 to 10). Additionally, the one or more servers may be configured to request a gesture associated with the contactless card, such as a user tap, if it reads a counter value that exceeds 10 but falls below another threshold range value (e.g., 1000). If the counter value is within a desired or acceptable range from the user tap, authentication is successful.

[0103] FIG. 8 is a flow chart illustrating key operations 800 according to an example embodiment. As shown in FIG. 8, at block 810, two Bank Identifier Number (BIN) level master keys can be used in combination with an account identifier and a card sequence number to generate two unique derived keys (UDKs) per card. In some examples, the bank identifier numbers may comprise a number or a combination of one or more numbers, such as an account number or an unpredictable number provided by one or more servers, and may be used to generate and / or diversify session keys. The UDKs (AUTKEY and ENCKEY) may be stored on the card during the personalization process.

[0104] In block 820, the counter can be used as diversification data since it changes with each use, providing a different session key each time, as opposed to the master key derivation where one unique set of keys is generated per card. In some instances, it may be desirable to use a 4-byte scheme for both operations. Thus, in block 820, two session keys may be created per transaction from the UDK: one session key from the AUTKEY and one session key from the ENCKEY. In the card, for MAC keys (i.e., session keys created from the AUTKEY), the lower two bytes of the OTP counter can be used for diversification. For ENC keys (i.e., session keys created from the ENCKEY), the full length of the OTP counter can be used for the ENC key.

[0105] At block 830, the MAC key may be used to prepare a MAC ciphertext, and the ENC key may be used to encrypt the ciphertext. For example, the MAC session key may be used to prepare the ciphertext, and the result may be encrypted with the ENC key before being sent to one or more servers.

[0106] At block 840, two-byte diversification is directly supported in the MAC authentication function of the payment HSM, thus simplifying MAC validation and processing. Decryption of the ciphertext is performed prior to MAC validation. Session keys are independently derived at one or more servers, resulting in a first session key (the ENC session key) and a second session key (the MAC session key). The second derived key (i.e., the ENC session key) can be used to decrypt data, and the first derived key (i.e., the MAC session key) can be used to validate the decrypted data.

[0107] In the case of contactless cards, another unique identifier is derived that may be related to the application's Primary Account Number (PAN) and the PAN sequence number encoded on the card. Key diversification may be configured to receive the identifier as an input to the master key such that one or more keys may be created for each contactless card. In some examples, these diversified keys may comprise a first key and a second key. The first key may include an authentication master key (Card Cryptogram Generation / Authentication Key-Card-Key-Auth) and may be further diversified to create a MAC session key used when generating and verifying MAC ciphers. The second key may comprise an encryption master key (Card Data Encryption Key-Card-Key-DEK) and may be further diversified to create an ENC session key used when encrypting and decrypting encrypted data. In some examples, the first and second keys may be created by diversifying the issuer master key by combining them with the card's unique ID number (pUID) and the payment applet's PAN sequence number (PSN). The pUID may comprise a 16-digit number. As explained above, the pUID may comprise a 16-digit BCD encoded number. In some examples, the pUID may comprise a 14-digit number.

[0108] In some cases, the EMV session key derivation method ∧ Since it may wrap around at 16 usage, a counter such as a full 32-bit counter can be added to the initialization array of the diversification method.

[0109] In other examples, such as credit cards, numbers such as account numbers, or unpredictable numbers provided by one or more servers, can be used to generate and / or diversify session keys.

[0110] FIG. 9 illustrates a diagram of a system 900 configured to implement one or more embodiments of the present disclosure. As described below, during the contactless card creation process, two encryption keys may be uniquely assigned to each card. The encryption keys may comprise symmetric keys that can be used to both encrypt and decrypt data. The Triple DES (3DES) algorithm may be used in EMV and is implemented by the contactless card's hardware. A key diversification process may be used to derive one or more keys from a master key based on uniquely identifiable information for each entity that requires a key.

[0111] With regard to master key management, two issuer master keys 905, 910 may be required for each portion of a portfolio in which one or more applets are issued. For example, the first master key 905 may comprise an issuer cryptogram generation / authentication key (Iss-Key-Auth) and the second master key 910 may comprise an issuer data encryption key (Iss-Key-DEK). As described further herein, the two issuer master keys 905, 910 are diversified into card master keys 925, 930 that are unique per card. In some examples, the network profile record ID (pNPR) 915 and derived key index (pDKI) 920 as back office data can be used to identify the issuer master key 905, 910 to use in the encryption process for authentication. The system performing the authentication can be configured to look up the pNPR 915 and pDKI 920 values ​​of the contactless card during authentication.

[0112] In some examples, to enhance the security of the solution, a session key (such as a unique key per session) can be obtained, but instead of using a master key, as explained above, a unique key and counter derived from the card can be used as diversification data. For example, a different key can be used to create a message authentication code (MAC) and perform encryption each time the card is used in operation. With regard to generating a session key, the key used to generate the ciphertext and encrypt data in one or more applets can comprise a session key based on the card's unique key (Card-Key-Auth 925 and Card-Key-Dek 930). The session keys (Aut-Session-Key 935 and DEK-Session-Key 940) are generated by one or more applets and are derived using an Application Transaction Counter (pATC) 945 in one or more algorithms. Only the lower two bytes of the four-byte pATC 945 are used to fit the data into one or more algorithms. In some examples, a 4-byte session key derivation method may comprise: F1:=PATC(lowest 2 bytes)||'F0'||'00'||PATC(4 bytes) F1:=PATC(lowest 2 bytes)||'0F'||'00'||PATC(4 bytes) SK:={(ALG(MK)[F1])||ALG(MK)[F2]}, where ALG may include 3DES ECB and MK may include a card unique derived master key.

[0113] As described herein, one or more MAC session keys can be derived using the lower two bytes of the pATC 945 counter. After each tap of the contactless card, the pATC 945 is configured to be updated and the card master keys Card-Key-AUTH 925 and Card-Key-DEK 930 are further diversified into session keys Aut-Session-Key 935 and DEK-Session-Key 940. The pATC 945 can be initialized to zero upon personalization or upon initialization of the applet. In some examples, the pATC counter 945 can be initialized upon or before personalization and configured to increment by one with each NDEF read.

[0114] Additionally, updates for each card are unique, assigned by personalization or algorithmically assigned by the pUID or other identifying information. For example, odd-numbered cards can increment or decrement by 2, and even-numbered cards can increment or decrement by 5. In some examples, updates may also differ in sequential reads, where one card may increment by 1, 3, 5, 2, 2, ... repeatedly. The specific sequence or algorithmic sequence may be defined at the time of personalization or from one or more processes derived from a unique identifier. This may make it difficult for a replay attacker to generalize from a small number of card instances.

[0115] The authentication message may be delivered as the contents of a text NDEF record in hex ASCII format. In some examples, it may include only the authentication data and an 8-byte random number followed by a MAC of the authentication data. In some examples, the random number precedes the ciphertext A and may be one block long. In other examples, there may be no limit to the length of the random number. In further examples, the total data (i.e., the random number and the ciphertext) may be a multiple of the block size. In these examples, an additional 8-byte block may be added to match the block produced by the MAC algorithm. As another example, if the algorithm employed used 16-byte blocks, a multiple of that block size may be used, or the output may be padded automatically or manually to a multiple of that block size.

[0116] The MAC may be performed by a function key (AUT-Session-Key) 935. The data specified in the ciphertext may be processed with the javacard.signature method:ALG_DES_MAC8_ISO9797_1_M2_ALG3 to associate with the EMV ARQC verification method. The key used for this calculation may comprise a session key AUT-Session-Key 935, as described above. As described above, the lower two bytes of the counter may be used to diversify one or more MAC session keys. As described below, the AUT-Session-Key 935 may be used to MAC data 950, and the resulting data or ciphertext A 955 and the random number RND may be encrypted using the DEK-Session-Key 940 to create the ciphertext B or output 960 that is sent in the message.

[0117] In some examples, one or more HSM commands may be processed for decryption such that the last 16 (binary, 32 hex) bytes comprise a 3DES symmetric encryption using CBC mode with a random zero IV followed by MAC authentication data. The key used for this encryption may comprise a session key DEK-Session-Key 940 derived from Card-Key-DEK 930. In this case, the ATC value for the session key derivation is the least significant byte of counter pATC 945.

[0118] The following format represents an example embodiment of the binary version: Additionally, in some examples, the first byte may be set to an ASCII "A." [Table 2]

[0119] Another exemplary format is shown below: In this example, the tag can be encoded in hexadecimal format. [Table 3]

[0120] The UID field of the received message can be extracted to derive the Card Master Keys (Card-Key-Auth 925 and Card-Key-DEK 930) for that particular card from the master keys Iss-Key-AUTH 905 and Iss-Key-DEK 910. The Card Master Keys (Card-Key-Auth 925 and Card-Key-DEK 930) can be used to derive the Session Keys (Aut-Session-Key 935 and DEK-Session-Key 940) for that particular card using the Counter (pATC) field of the received message. Ciphertext B 960 can be decrypted using the DEK-Session-KEY. This produces ciphertext A 955 and RND, which can be discarded. The UID field can be used to look up the shared secret for the contactless card. This, along with the Ver, UID, and pATC fields of the message, can be processed through an encryption MAC using the recreated Aut-Session-Key to produce a MAC output such as MAC'. If the MAC' is the same as the ciphertext A955, this indicates that the message decryption and MAC checks all passed. Next, read the pATC to determine if it is valid.

[0121] During the authentication session, one or more ciphertexts may be generated by one or more applications. For example, the one or more ciphertexts may be generated as a 3DES MAC using ISO 9797-1 algorithm 3 and method 2 padding over one or more session keys, such as Aut-Session-Key 935. Input data 950 may take the following format: version (2), pUID (8), pATC (4), shared secret (4). In some examples, the numbers in parentheses may comprise the length in bytes. In some examples, the shared secret may be generated by one or more random number generators, which may be configured to ensure that the random numbers are unpredictable through one or more secure processes. In some examples, the shared secret may comprise a random 4-byte binary number injected into the card at personalization, known by the authentication service. During the authentication session, the shared secret may not be provided to the mobile application from one or more applets. Method 2 padding may include adding mandatory 0x'80' bytes to the end of the input data and adding optional 0x'00' bytes to the end of the result data up to an 8-byte boundary. The resulting ciphertext may be 8 bytes long.

[0122] In some instances, one advantage of using a MAC ciphertext to encrypt an unshared random number as the first block is that it acts as an initialization vector while using the CBC (blockchain) mode of a symmetric encryption algorithm, allowing for "scrambling" between blocks without the need to pre-establish a fixed or dynamic IV.

[0123] By including an application transaction counter (pATC) as part of the data included in the MAC ciphertext, the authentication service can be configured to determine whether values ​​communicated in the clear data have been tampered with. Additionally, by including the version in one or more ciphertexts, it is difficult for an attacker to intentionally misrepresent the version of an application in an attempt to reduce the strength of the encryption solution. In some examples, the pATC may start at zero and be updated by one each time one or more applications generate authentication data. The authentication service can be configured to track the pATC used during an authentication session. In some examples, if the authentication data uses a pATC that is less than or equal to a previous value received by the authentication service, this may be interpreted as an attempt to replay an old message and the authenticated one may be rejected. In some examples, if the pATC is greater than a previously received value, this may be evaluated to determine if it is within an acceptable range or threshold, and if it is above or outside the range or threshold, the verification may be deemed to have failed or unreliable. In MAC operation 936, the data 950 is processed through a MAC using the Aut-Session-Key 935 to produce an encrypted MAC output (ciphertext A) 955.

[0124] It is desirable for the MAC ciphertext A 955 to be encrypted to provide additional protection against brute force attacks that expose the keys on the card. In some examples, the data or ciphertext A 955 included in the ciphertext may comprise a random number (8), ciphertext(8). In some examples, the number in parentheses may comprise the length in bytes. In some examples, the random number may be generated by one or more random number generators, which may be configured to ensure that the random number is unpredictable through one or more secure processes. The key used to encrypt this data may comprise a session key. For example, the session key may comprise a DEK-Session-Key 940. In an encryption operation 941, the data or ciphertext A 955 and RND are processed using the DEK-Session-Key 940 to generate the encrypted data, ciphertext B 960. The data 955 is encrypted using 3DES in cipher block chaining mode to ensure that an attacker needs to perform an attack on all ciphertexts. Other algorithms may be used, such as the Advanced Encryption Standard (AES), as a non-limiting example. In some examples, an initialization vector of 0x'00000000000000000' can be used: correctly decrypted data will be indistinguishable from incorrectly decrypted data because it will appear random, and an attacker attempting to brute force the key used to encrypt this data will be unable to determine when the correct key was used.

[0125] In order for the authentication service to verify one or more cryptograms provided by one or more applets, the following data must be communicated in plaintext from the one or more applets to the mobile device during an authentication session: a version number to determine the cryptographic approach used and a message format for validation of the cryptography, so that the approach can be changed in the future; a pUID to look up the cryptographic asset and derive the card key; and a pATC to derive the session key used for the cryptograms.

[0126] 10 illustrates a method 1000 for generating a ciphertext. For example, at block 1010, a Network Profile Record ID (pNPR) and a Derived Key Index (pDKI) may be used to identify an Issuer Master Key to use in an encryption process for authentication. In some examples, the method may include performing authentication and looking up the values ​​of pNPR and pDKI of a contactless card upon authentication.

[0127] At block 1020, the issuer master keys can be diversified by combining them with the card's unique ID number (pUID) and the PAN sequence number (PSN) of one or more applets, for example a payment applet.

[0128] At block 1030, the Card-Key-Auth and Card-Key-DEK (Unique Card Key) may be created by diversifying the Issuer Master Key to generate a Session Key that may be used to generate a MAC ciphertext.

[0129] At block 1040, the keys used to generate the ciphertext and encrypt the data in one or more applets may comprise the session keys of block 1030 that are based on the card-unique keys (Card-Key-Auth and Card-Key-DEK). In some examples, these session keys are generated by one or more applets and derived using the pATC, resulting in the session keys Aut-Session-Key and DEK-Session-Key.

[0130] 11 shows an example process 1100 illustrating key diversification according to one example. First, the sender and the receiver may be provisioned with two different master keys. For example, the first master key may comprise a data encryption master key and the second master key may comprise a data integrity master key. The sender has other data, such as a counter value that may be updated in block 1110, and the data to be protected that it may ensure is shared with the receiver.

[0131] At block 1120, the counter value may be encrypted by the sender using a data encryption master key to generate a data encryption derived session key, and the counter value may also be encrypted by the sender using a data integrity master key to generate a data integrity derived session key. In some examples, the entire counter value or a portion of the counter value may be used during both encryptions.

[0132] In some examples, the counter value may not be encrypted. In these examples, the counter may be transmitted between the sender and receiver in the clear, i.e., without encryption.

[0133] In block 1130, the data to be protected is processed in a cryptographic MAC operation by the sender using the data integrity session key and a cryptographic MAC algorithm. The protected data, including the plaintext and the shared secret, can be used to generate a MAC using one of the session keys (AUT-Session-Key).

[0134] At block 1140, the data to be protected may be encrypted by the sender using the Data Encryption Derived Session Key in combination with a symmetric encryption algorithm. In some examples, the MAC is combined with an equal amount of random data, e.g., each 8 bytes in length, and encrypted using a second session key (DEK-Session-Key).

[0135] At block 1150, the encrypted MAC is transmitted from the sender to the receiver along with sufficient information to identify additional secret information (eg, a shared secret, a master key, etc.) for verification of the ciphertext.

[0136] At block 1160, the recipient uses the received counter value to independently derive two derived session keys from the two master keys, as described above.

[0137] In block 1170, the data encryption derived session key is used in combination with a symmetric decryption operation to decrypt the protected data. Additional processing is then performed on the exchanged data. In some instances, after the MAC is extracted, it may be desirable to recreate and match the MAC. For example, when verifying the ciphertext, it may be decrypted using a properly generated session key. The protected data may be reconstructed for verification. A MAC operation may be performed using a properly generated session key to determine if it matches the decrypted MAC. Since the MAC operation is an irreversible process, the only way to verify is to attempt to recreate it from the source data.

[0138] At block 1180, the data integrity derived session key is used in combination with a cryptographic MAC operation to verify that the protected data has not been altered.

[0139] Some examples of the methods described herein can advantageously ascertain when successful authentication is determined when the following conditions are met: First, the ability to verify the MAC indicates that the derived session key is proper. The MAC can only be correct if decryption is successful, resulting in a proper MAC value. Successful decryption can indicate that a correctly derived encryption key was used to decrypt the encrypted MAC. Because the derived session key is created using a master key known only to the sender (e.g., the sending device) and the receiver (e.g., the receiving device), the contactless card that originally created and encrypted the MAC can be trusted to be in fact genuine. Additionally, the counter values ​​used to derive the first and second session keys can be shown to be valid and can be used to perform the authentication operation.

[0140] The two derived session keys may then be discarded, the next iteration of the data exchange may update the counter value (returning to block 1110), and a new set of session keys may be created (at block 1120). In some examples, the combined random data may be discarded.

[0141] Exemplary embodiments of the systems and methods described herein may be configured to provide security element authentication. Security element authentication may comprise multiple processes. As part of security element authentication, a first process may comprise logging in and verifying a user via one or more applications running on the device. As a second process, the user may engage in one or more actions associated with one or more contactless cards in response to successful login and verification of the first process via the one or more applications. Effectively, security element authentication may include both securely proving the identity of the user and engaging in one or more types of actions, including but not limited to one or more tap gestures associated with the contactless card. In some examples, the one or more tap gestures may comprise a tap of the contactless card by the user to the device. In some examples, the device may comprise a mobile device, a kiosk, a terminal, a tablet, or any other device configured to process received tap gestures.

[0142] In some examples, the contactless card may be tapped to a device, such as one or more computer kiosks or terminals, to verify identity in order to receive a transaction item in response to a purchase, such as a coffee. The use of the contactless card may establish a secure way of proving identity in a loyalty program. For example, securely proving identity to obtain rewards, coupons, offers, etc., or to receive benefits is established in a manner different than simply scanning a bar card. For example, an encrypted transaction may occur between the contactless card and the device, which may be configured to process one or more tap gestures. As described above, one or more applications may be configured to verify the user's identity and then have the user act or respond thereto, for example, via one or more tap gestures. In some examples, data, such as, for example, bonus points, loyalty points, reward points, health care information, etc., may be written back to the contactless card.

[0143] In some examples, the contactless card may be tapped to a device, such as a mobile device. As described above, the user's identity may be verified by one or more applications, which will then grant the user a desired benefit based on the verification of identity.

[0144] In some examples, a contactless card may be activated by tapping a device, such as a mobile device. For example, the contactless card may communicate with an application on the device through a card reader on the device via NFC communication. In communication where the tap of the card is in proximity to the card reader on the device, the application on the device may read data associated with the contactless card and activate the card. In some examples, the activation may allow the card to be used to perform other functions, such as making purchases, accessing accounts or restricted information, or other functions. In some examples, the tap may activate or launch an application on the device, which may then initiate one or more actions or communications with one or more servers to activate the contactless card. If the application is not installed on the device, tapping the contactless card in proximity to the card reader may initiate a download of the application, such as navigation to a download page for the application. Following installation, tapping the contactless card may activate or launch the application, which may then initiate activation of the contactless card, for example, via the application or other back-end communications. After activation, the contactless card may be used in a variety of activities, including, but not limited to, commercial transactions.

[0145] In some embodiments, a dedicated application may be configured to run on the client device to perform the activation of the contactless card. In other embodiments, a web portal, a web-based app, an applet, etc. may perform the activation. The activation may be performed on the client device, or the client device may act as an intermediary between the contactless card and an external device (e.g., an account server). According to some embodiments, when providing the activation, the application may indicate to the account server the type of device performing the activation (e.g., a personal computer, a smartphone, a tablet, or a point of sale (POS) device). Additionally, the application may output different and / or additional data to the account server for transmission depending on the type of device involved. For example, such data may comprise information related to the merchant, such as merchant type, merchant ID, and information related to the device type itself, such as POS data and POS ID.

[0146] In some embodiments, the exemplary authentication communication protocol may mimic, with some modifications, the EMV standard offline dynamic data authentication protocol typically performed between a transaction card and a point-of-sale device. For example, the exemplary authentication protocol may not require some data values ​​since they are not used to complete a payment transaction with the card issuer / payment processor itself, and may perform authentication without requiring a real-time online connection to the card issuer / payment processor. As known in the art, a point-of-sale (POS) system submits a transaction to a card issuer, including a transaction amount. Whether the issuer approves or rejects the transaction may be based on whether the card issuer recognizes the transaction amount. On the other hand, in certain embodiments of the present disclosure, transactions originating from a mobile device lack a transaction amount associated with the POS system. Thus, in some embodiments, a dummy transaction amount (i.e., a value that is recognizable to the card issuer and sufficient for activation to occur) may be passed as part of the exemplary authentication communication protocol. POS-based transactions may also reject transactions based on the number of transaction attempts (e.g., a transaction counter). Multiple attempts beyond a buffer value may result in a gradual decay. A gradual decay requires further validation before accepting the transaction. In some implementations, a buffer value of the transaction counter may be altered to avoid attrition of legitimate transactions.

[0147] In some examples, contactless cards can selectively communicate information depending on the recipient's device. When a contactless card is tapped, it can recognize the device that the tap is directed to, and based on this recognition, the contactless card can provide the appropriate data for that device. This makes it advantageous for the contactless card to transmit only the information necessary to complete an immediate action or transaction, such as a payment or card authentication. By limiting the transmission of data and avoiding the transmission of unnecessary data, both efficiency and data security can be improved. Recognizing and selectively communicating information can be applied in a variety of scenarios, including card activation, balance transfers, account access attempts, commerce transactions, and reducing step-up fraud.

[0148] If the contactless card tap is directed at a device running Apple's iOS® operating system, such as an iPhone®, iPod®, or iPad®, the contactless card can recognize the iOS® operating system and transmit the appropriate data to communicate with the device. For example, the contactless card can provide the encrypted identity information required to authenticate the card using an NDEF tag, for example, via NFC. Similarly, if the contactless card tap is directed at a device running the Android® operating system, such as an Android® smartphone or tablet, the contactless card can recognize the Android® operating system and transmit the appropriate data to communicate with the device (such as the encrypted identity information required for authentication according to the methods described herein).

[0149] As another example, a contactless card tap can be directed to a point-of-sale device, including, but not limited to, a kiosk, checkout register, payment station, or other terminal. Upon performing the tap, the contactless card can recognize the point-of-sale device and transmit only the information required for the action or transaction. For example, upon recognizing the point-of-sale device used to complete a commercial transaction, the contactless card can communicate the payment information required to complete the transaction under the EMV standard.

[0150] In some examples, a POS device participating in a transaction can request or specify additional information provided by the contactless card, such as device-specific information, location-specific information, and transaction-specific information. For example, when a POS device receives a data communication from a contactless card, the POS device can request additional information necessary to recognize the contactless card and complete an action or transaction.

[0151] In some examples, the POS device may be affiliated with an authorized merchant or other entity familiar with particular contactless cards or accustomed to performing particular contactless card transactions, although it will be understood that such an affiliation is not required for performance of the described methods.

[0152] In some instances, such as shopping stores, grocery stores, convenience stores, etc., a contactless card can be tapped to a mobile device without having to open an application to indicate a desire or intent to redeem one or more reward points, loyalty points, coupons, offers, etc. to cover one or more purchases, thus providing the intent behind the purchase.

[0153] In some examples, one or more applications may be configured to determine that they were launched via one or more tap gestures of a contactless card, such that they were launched at 3:51 PM and a transaction was processed or performed at 3:56 PM to verify the identity of a user.

[0154] In some examples, the one or more applications may be configured to control one or more actions in response to one or more tap gestures. For example, the one or more actions may comprise collecting rewards, collecting points, determining the most important purchases, determining the least expensive purchases, and / or reconfiguring to other actions in real time.

[0155] In some examples, data may be collected about tapping behavior as biometric / gesture authentication. For example, a cryptographically secure and hard to intercept unique identifier may be transmitted to one or more backend services. The unique identifier may be configured to retrieve secondary information about the individual. The secondary information may comprise personally identifiable information about the user. In some examples, the secondary information may be stored within a contactless card.

[0156] In some examples, the device may include an application to split a bill or check a payment among multiple individuals. For example, each individual may own a contactless card and be a customer of the same issuing financial institution, but this is not required. Each of these individuals may receive a push notification on the device via the application to split the purchase. Rather than accepting only one card tap to indicate payment, other contactless cards may be used. In some examples, individuals with different financial institutions may own contactless cards to provide information to initiate one or more payment requests from the individual tapping the card.

[0157] The following use case examples describe examples of specific implementations of the present disclosure. They are for illustrative purposes only and not for limitation. In one case, a first friend (payer) owes an amount to a second friend (payee). The payer makes the payment via the payee's smartphone (or other device) using a contactless card, rather than visiting an ATM or requesting an exchange via a peer-to-peer application. The payee logs onto an appropriate application on the smartphone and selects a payment request option. In response, the application requests authentication via the payee's contactless card. For example, the application outputs a display requesting the payee to tap the contactless card. With the application enabled, when the payee taps the contactless card against the smartphone screen, the contactless card is read and verified. The application then displays a prompt requesting the payer to tap the contactless card to send the payment. When the payer taps the contactless card, the application reads the card information and, via an associated processor, sends a payment request to the payer's card issuer. The card issuer processes the transaction and sends a status indicator of the transaction to the smartphone. The application then outputs a status indicator of the transaction for display.

[0158] In another example, a credit card customer may receive a new credit card (or debit card, other payment card, or other card that needs to be activated) in the mail. Rather than activating the card by calling a provided phone number associated with the card issuer or visiting a website, the customer may decide to activate the card via an application on their device (e.g., a mobile device such as a smartphone). The customer may select a card activation function from a menu of the application that appears on the device's display. The application may prompt the customer to tap the credit card against the screen. Upon tapping the credit card against the device's screen, the application may be configured to communicate with a server, such as a card issuing server, that activates the customer's card. The application may then display a message indicating that the card activation was successful. Card activation is now complete.

[0159] 12 illustrates a method 1200 for card activation according to an exemplary embodiment. For example, card activation can be completed by a system including a card, a device, and one or more servers. The contactless card, device, and one or more servers can refer to the same or similar components as those described above with reference to FIGS. 1A, 1B, 5A, and 5B, such as the contactless card 105, the client device 110, and the server 120.

[0160] At block 1210, the card may be configured to dynamically generate data. In some examples, this data may include information such as an account number, a card identifier, a card verification value, or a phone number, which may be transmitted from the card to the device. In some examples, one or more portions of the data may be encrypted via the systems and methods disclosed herein.

[0161] At block 1220, one or more portions of the dynamically generated data may be communicated to an application on the device via NFC or other wireless communication. For example, tapping the card in proximity to the device may enable an application on the device to read one or more portions of data associated with the contactless card. In some examples, if the device does not include an application to assist with card activation, tapping the card may prompt the customer to a software application store to download an associated application to activate the card, or to direct the device. In some examples, the user may be prompted to sufficiently gesture, position, or orient the card, such as to point the card at an angle or flat, close to, or in close proximity to the surface of the device, toward the surface of the device. In response to sufficient gesture, position, and / or orientation of the card, the device may begin transmitting one or more encrypted portions of the data received from the card to one or more servers.

[0162] At block 1230, the one or more portions of the data may be communicated to one or more servers, such as a card issuer server. For example, the one or more encrypted portions of the data may be sent from the device to a card issuer server for card activation.

[0163] At block 1240, the one or more servers may decrypt the one or more encrypted portions of the data via the systems and methods disclosed herein. For example, the one or more servers may receive the encrypted data from the device and decrypt it to compare the received data and record the data accessible to the one or more servers. If the comparison of the results of the one or more decrypted portions of the data by the one or more servers results in a successful match, the card may be activated. If the comparison of the results of the one or more decrypted portions of the data by the one or more servers results in a failed match, one or more processes may be performed. For example, in response to a determination of a failed match, the user may be prompted to tap, swipe, or wave the card again. In this case, there may be a predetermined threshold comprising the number of attempts that the user is allowed to activate the card. Alternatively, the user may receive a notification on the device, such as a message indicating that the card verification attempt has failed, and send a call, email, or text message to an associated service for assistance in activating the card, or receive other notification on the device, such as a call indicating that the card verification attempt has failed, and send a call, email, or text message to an associated service for assistance in activating the card, or receive other notification, such as an email indicating that the card verification attempt has failed, and send a call, email, or text message to an associated service for assistance in activating the card.

[0164] At block 1250, the one or more servers may send a return message based on successful activation of the card. For example, the device may be configured to receive an output from the one or more servers indicating successful activation of the card by the one or more servers. The device may be configured to display a message indicating successful activation of the card. Once the card is activated, the card may be configured to cease dynamic generation of data to avoid fraudulent use. In this manner, the card may not be subsequently activated and the one or more servers are notified that the card has already been activated.

[0165] In another example case, a customer wants to access his / her financial account on his / her mobile phone. The customer launches an application (e.g., a banking application) on the mobile device and enters a username and password. At this stage, the customer may review first level account information (e.g., recent purchases) and perform first level account options (e.g., credit card payments). However, if the user wants to access second level account information (e.g., spending limits) or perform second level account options (e.g., transfer to an external system), second factor authentication is required. Thus, the application requests that the user provide a transaction card (e.g., credit card) for account validation. The user then taps his / her credit card to the mobile device and the application verifies that the credit card corresponds to the user's account. The user may then view second level account data and / or perform second level account functions.

[0166] In some examples, the systems and methods described herein may be applied to supplement the FIDO2 framework, for example, by verifying the identity of a user initiating a FIDO2 authentication. A vulnerability of the FIDO2 framework is the identity of a user attempting to perform a FIDO2 authentication process. By verifying that a user attempting to register a credential and authenticate via the FIDO2 framework is a user who claims to be authenticated and is authorized to be authenticated, the security of the FIDO2 framework may be improved and unauthorized users may be excluded. In other examples, the systems and methods described herein may be applied to supplement web authentication, CTAP FIDO, or other authentication implementations. It is understood that the present disclosure may be applied to any authentication implementation and the present disclosure is not limited to the FIDO2 framework.

[0167] As described herein, embodiments of the present disclosure provide systems and methods for data transmission between a contactless card and a client device. In one embodiment, each of the contactless card and the client device may include a master key. The contactless card may use the master key to generate a diversified key to protect the counter value before transmitting the counter value to the client device. The client device may generate a diversified key based on the master key and the counter value. The FIDO private key may facilitate a FIDO transaction between the client device and a server, including a corresponding FIDO public key. As a further example, the client device may randomly generate a unique public and private key pair, or the client device may generate one or more diversified keys using the master key and available identification information (e.g., a site identifier for a website associated with a service provider).

[0168] In an exemplary embodiment, the data transmission system disclosed herein may be implemented in a FIDO system. The FIDO system may include a client device and a server associated with a service provider. The client device may store a FIDO private key, and the server may store a FIDO public key associated with the FIDO private key. For example, when a user registers an account with a service provider, the client device may generate a FIDO public and private key pair. The client device may store a FIDO private key and send the FIDO public key to the service provider's server. The user may then sign into the account, for example, by signing a challenge using the FIDO private key. The server may provide the client device with a challenge to sign. For example, the server may provide the user with a long random number or a long string of random characters. The client device may receive the random number or characters and sign it using the FIDO private key. The client device may then send the signed random number to the server.

[0169] The server may verify the signed challenge using a FIDO public key and allow the user to access the account only if the signed challenge matches the original challenge. For example, the server may perform a cryptographic hash of the challenge and verify the hash using a FIDO public key. The server may verify a long random number using a FIDO public key stored on the server, and if the random number or characters are the same as those sent to the client device, the server may allow access to the user. Otherwise, access to the client device (or user) may be denied.

[0170] In one example embodiment, the FIDO private key is locked on the client device, which in this example may function as a FIDO authenticator. The FIDO private key may be stored in a secure element of the client device, and the FIDO private key may be used only after a user unlocks the FIDO private key on the client device. The client device may unlock the FIDO private key by a user action. For example, the user action may be a swipe of a finger, entering a PIN, speaking into a microphone, inserting a second factor device, pressing a button, etc. The second factor device may be a contactless card. In some examples, the server may provide the information necessary to complete the private key, so that the private key cannot be used even if accessed or generated in an unauthorized manner. This information may include, for example, a portion of the private key itself, a portion of a mother key used to generate the private key, or other data available to the server. In some examples, the private key may be repeatedly generated based on information provided by the server. In other examples, information may be provided that requires input from the second factor device or is unlocked only upon use of the second factor device (e.g., by a user action involving the second factor device).

[0171] In other exemplary embodiments, the server may send a counter value to the client device. For example, the server may track contactless card transactions. Each time the contactless card performs a transaction, the server may increment the counter value by a predetermined number. The contactless card may also increment the counter value each time the contactless card performs a transaction in conjunction with the server. During a FIDO transaction, for example, when the client device signs a challenge, the server may send a counter value to the client device. In this way, the contactless card and the client device may have the same counter value when sending and receiving encrypted FIDO private keys.

[0172] FIG. 13 illustrates a FIDO system 1300 using a data transmission system according to an exemplary embodiment. In this exemplary embodiment, the FIDO system 1300 may include a server 1310, a client device 1320, and a contactless card 1330. The server 1310 may include a database for storing account information for various users of the system. The client device 1320 may include and execute one or more applications, such as one or more software applications with instructions for execution on the client device 1320. These are configured to enable communication with one or more components of the system 1300, transmit and / or receive data, and perform the client device functions described herein. The client device 1320 may be a smartphone that can connect to various networks and send and receive communications using NFC technology, and may include one or more software applications configured to perform the functions described herein. In other examples, the client device 1320 may be a dongle, and in further examples, the client device 1320 may be a network-enabled computer. The contactless card 1330 may include a processor, memory, and a transmitter, and may perform the functions of the contactless card described herein. The server 1310 may communicate with the client device 1320 over a network such as the Internet, for example. The client device 1320 may use NFC technology to send and receive signals from the contactless card 1330. It is understood that the contactless card 1330 is not limited to a contactless card and, in some examples, may be the same or similar device as the client device 1320.

[0173] In one example embodiment, a user may access an application or website on a user interface of a client device 1320. The application may display a sign-in page 1321, which may include a sign-in button 1322 and a setup device 1323. When the user taps button 1322, the client device 1320 may sign in the user using FIDO technology. When the user taps button 1323, the client device 1320 may register a user account with the service provider or register the client device 1320 in association with the user account.

[0174] In an example embodiment, the user may tap button 1323. In response, client device 1320 may activate a FIDO authenticator application that may generate a FIDO key pair, i.e., a FIDO private key and a FIDO public key. For example, the FIDO key pair may be randomly generated and one or more diversified keys may be generated using a master key and an ID associated with the service provider. As another example, the diversified keys may be generated using a master key and a counter value. Client device 1320 may store the FIDO private key and transmit the FIDO public key to server 1310 using a network such as the Internet. Once server 1310 receives the FIDO public key, server 1310 may store the FIDO public key in a database associated with the user's account.

[0175] In an example embodiment, the user may tap the button 1322. In response, the client device 1320 may send a signal to the server 1310 to request a challenge for the signature. The server 1310 may send the challenge to the client device 1320. The challenge may be, for example, a string of random numbers. The client device 1320 may also send a signal to the contactless card 1330 to request authentication from the contactless card 1330, and upon receiving the authentication, the client device 1320 may relay the authentication to the server 1310. Upon receiving a response from the server 1310 by the client device 1320, the FIDO private key stored in the client device 1320 may be unlocked.

[0176] In some examples, a proxy authenticator may be created on the client device 1320. For example, the proxy authenticator may prompt the user to tap the contactless card 1330 to the client device 1320 to initiate the authentication process and establish communication with the server 1310. The server 1310 may then perform any authentication process required and send the result of the authentication process to the client device 1320. The client device 1320 may present the result as if it was generated by the client device 1320 without interaction with the server 1310, thereby functioning as a proxy authenticator. This process may be used to unlock one or more FIDO private keys stored on the server 1310. If a challenge is received, the client device 1320 may pass the challenge to the server 1310 to find the private key and generate the appropriate public / private key pair or public key required for the challenge.

[0177] When the client device 1320 receives the challenge using the FIDO private key, the client device 1320 may sign the challenge, such as by encrypting a string of random numbers. The client device 1320 may send the signed challenge to the server 1310. The server 1310 may verify the signed challenge using the FIDO public key. If the verified challenge is the same as the challenge sent to the client device 1320, the server 1310 may authenticate the client device 1320 (or a user of the client device 1320). If the verified challenge is not the same as the challenge sent to the client device 1320, the server 1310 may prevent the client device 1320 from accessing the server 1310 (or other devices).

[0178] In an exemplary embodiment, the data transmission system may be used by a bank to process a user's online payments. The bank may operate a server, and the user may request an online payment on the user's tablet. The user may also own a contactless card issued by the bank. When the bank issues a contactless card, the server issues a FIDO key pair to the user. The key pair includes a FIDO private key and a FIDO public key. The server stores the FIDO public key, while the server stores the FIDO private key on the contactless card. The tablet may include one or more software applications and may communicate with the server over the Internet. The tablet may also send and receive signals to the contactless card using an NFC protocol. To enhance the security of online transactions, the bank may require the customer to verify the customer's identity for certain transactions, e.g., transactions that require a payment over a predetermined payment amount. The verification may be performed using FIDO technology. In some examples, a FIDO public key may be associated with the contactless card. In these examples, a mother private key, or a fixed private key, may be stored on a device that implements a FIDO authenticator, such as a server or a tablet.

[0179] FIG. 14 shows an exemplary flowchart 1400 for processing an online payment. At step 1410, a transaction may be initiated on a user's tablet. For example, a user may access a third party's website to order a diamond necklace. At step 1420, the tablet may transmit the user's contactless card information (e.g., account number, account holder name, account holder address, security code, unique card identifier) ​​and / or transaction information (e.g., amount, merchant name, merchant location, date of purchased goods or services, time) to the third party and process payment for the transaction. The third party may contact the bank for approval of the payment. In this exemplary embodiment, the price of the diamond necklace exceeds a threshold defined for online payments by the user, and the bank may require the user to verify the user's identity before the bank will process the payment. This threshold may be defined by the bank or the user.

[0180] At step 1430, the tablet may receive a challenge from the bank's server to verify the user's identity. In response, at step 1440, an application stored on the tablet (e.g., a bank's application installed on the tablet) may pop up a window and request the user to tap a contactless card. At step 1450, the user may tap the contactless card to the tablet, which may give the tablet permission to use the FIDO private key. At step 1460, the tablet may sign the challenge using the FIDO private key, and at step 1470, the tablet may send the signed challenge to the server. In response to receiving the signed challenge, the server may verify the user's identity and authorize the payment at step 1480. If the payment is authorized, the server may send a message to the third party. At step 1490, the tablet may receive a message from the third party indicating that the transaction has been processed.

[0181] FIG. 15 illustrates an exemplary user interface of a client device 1320 for processing an online payment. In this exemplary embodiment, the client device 1320 is a tablet displaying a checkout page 1510. The page may display a diamond necklace selected by the user and the price of the item. The page 1510 may include fields 1520 for entering the user's credit card information. The page 1510 may also include a button 1530 for processing the transaction. When the user taps the button 1530, the tablet may transmit the credit card information to a third party vendor. In this example, the bank may require the user to verify the transaction because the transaction amount exceeds a threshold.

[0182] FIG. 16 illustrates an exemplary user interface of a client device 1320 for verifying an online payment. In this exemplary embodiment, after a third party contacts a bank to process a payment, the bank's server may send a message or communication to the client device or tablet 1320 to verify the transaction. The message or communication may include a challenge and may prompt the tablet 1320 to display a prompt 1610 asking the user to tap the user's contactless card 1330 on the tablet 1320. The user may then tap the contactless card 1330 on the tablet 1320, which may send an encrypted FIDO private key to the tablet 1320, as described above. The tablet 1320 may generate a diversified key, and using the diversified key may decrypt the encrypted FIDO private key. Once the tablet 1320 has the FIDO private key, the tablet 1320 may sign and send a challenge to the bank's server.

[0183] In one example embodiment, the tablet 1320 may include an application related to banking. The application may display various bank account information to the user. For example, the application may display the account balance for each account the user holds with the bank. The application may also receive communications or messages from the bank server and display prompts to the user on the tablet. The communications may include challenges and messages that are displayed on the tablet. When the application receives a communication from the bank server, the application may display a prompt or window on the screen of the tablet 1320. The prompt or window may be overlaid on other windows or pages displayed on the tablet 1320.

[0184] It is understood that the present disclosure is not limited to strict compliance with the FIDO framework, and that the disclosure encompasses variations of this framework. In some example embodiments, a FIDO public key private key pair may be generated on the FIDO authenticator, although other combinations are possible. For example, a server may generate a FIDO public key private key pair, and the server may send the FIDO private key to the authenticator, such as when a user registers a client device or opens an account. As another example, the FIDO public key private key pair may be stored on a contactless card. If necessary, the FIDO authenticator may obtain a FIDO public key or a FIDO private key. For example, a client device may send a FIDO public key to a server to register the client device, and when the server sends a challenge to the client device, the client device may obtain the FIDO private key. As another example, upon receiving authentication approval from the contactless card, the FIDO authenticator itself may proceed with a signature challenge and / or provide the public key necessary to complete the FIDO registration.

[0185] In some examples, the disclosure refers to tapping a contactless card, however, it will be understood that the disclosure is not limited to tapping and includes other gestures (e.g., waving or other movements of the card).

[0186] Throughout the specification and claims, the following terms shall take at least the meaning explicitly associated therewith, unless the context clearly dictates otherwise. The term "or" is intended to mean an inclusive "or." Additionally, the terms "a," "an," and "the" are intended to mean one or more, unless otherwise specified or clearly directed from the context to the singular.

[0187] In this description, many specific details are described. However, it should be understood that implementations of the disclosed technology may be practiced without these specific details. In other instances, well-known methods, structures, and techniques have not been shown in detail so as not to obscure an understanding of this description. References to "some examples," "other examples," "one example," "examples," "various examples," "one embodiment," "embodiments," "some embodiments," "exemplary embodiments," "various embodiments," "one implementation," "implementation," "exemplary implementation," "various implementations," "some implementations," and the like, indicate that implementations of the disclosed technology so described may include a particular feature, structure, or characteristic, but not all implementations necessarily include the particular feature, structure, or characteristic. Furthermore, repeated use of the phrase "in one example," "in one embodiment," or "in one implementation" does not necessarily refer to the same example, embodiment, or implementation, although it may.

[0188] As used herein, unless otherwise indicated, the use of the ordinal adjectives "first," "second," "third," etc. to describe a common object is intended only to indicate that different instances of a similar object are being referred to, and does not imply that the objects so described need to be in a particular order, whether in time, space, ranking, or otherwise.

[0189] While particular implementations of the disclosed technology have been described in connection with what are presently believed to be the most practical various implementations, it is to be understood that the disclosed technology is not to be limited to the disclosed implementations, but on the contrary, it is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

[0190] This written description uses examples to disclose particular implementations of the disclosed technology, including the best mode, and also enables one of ordinary skill in the art to practice particular implementations of the disclosed technology, including making and using any device or system, and performing any incorporated methods. The patentable scope of particular implementations of the disclosed technology is defined in the claims, and may include other examples that occur to those of ordinary skill in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements that are substantially different from the literal language of the claims.

Claims

1. A contactless card, the contactless card comprising: A substrate; a memory containing a diversified key, a Fast Identity Online (FIDO) public key, and a FIDO private key; a communication interface; a processor in communication with the memory and the communication interface; The processor is receiving a transaction verification from the client device via the communication interface; generating a ciphertext containing the FIDO public key using the diversified key; configured to transmit the ciphertext via the communication interface; Contactless card.

2. The transaction validation authorizes use of the FIDO private key in conjunction with a challenge received by the client device from a server.

2. The contactless card according to claim 1.

3. The memory further includes a counter value; the ciphertext is generated using the diversified key and the counter value; 2. The contactless card according to claim 1.

4. The processor is further configured to update the counter value when the communication interface is within communication range of the client device.

4. The contactless card according to claim 3.

5. A method performed by a contactless card, comprising: The above contactless card is A substrate; a memory containing a diversified key, a Fast Identity Online (FIDO) public key, and a FIDO private key; a communication interface; a processor in communication with the memory and the communication interface; The above method is receiving a transaction confirmation from the client device via the communication interface; generating a ciphertext containing the FIDO public key using the diversified key; transmitting the ciphertext via the communication interface; method.

6. The transaction validation step of claim 5, wherein the transaction validation step authorizes use of the FIDO private key in association with a challenge received by the client device from a server. The method of claim 5.

7. The memory further includes a counter value; the ciphertext is generated using the diversified key and the counter value; The method of claim 5.

8. The method of claim 7, further comprising: updating the counter value when the communication interface is within communication range of the client device. The method of claim 7.

9. A method performed by a client application including instructions for execution on a client device, the method comprising: the client device includes a memory for storing a Fast Identity Online (FIDO) private key; The above method is receiving a challenge sent by the first server; Requiring transaction verification from a contactless card; receiving a transaction verification from the contactless card; Signing the challenge with the FIDO private key; sending the signed challenge to the first server. method.

10. Before requesting transaction verification from the contactless card, Initiating a transaction with a second server; and transmitting transaction information to the second server.

10. The method of claim 9.

11. The method of claim 10, wherein the first server transmits the challenge to the client device in response to receiving a payment request from the second server. The method of claim 10.

12. The first server and the second server are the same. The method of claim 10.

13. The transaction validation step includes authorizing the client application to sign the challenge using the FIDO private key.

10. The method of claim 9.

14. The method of claim 13, further comprising receiving information from the first server indicating that the transaction has been approved.

10. The method of claim 9.

15. Generating a FIDO key pair including the FIDO private key and the FIDO public key; sending said FIDO public key to said first server; further comprising:

10. The method of claim 9.

16. The memory further stores a diversified key; The FIDO key pair is generated using the diversified key.

16. The method of claim 15.

17. The diversified key is generated using a master key and a counter value.

17. The method of claim 16.

18. The memory further stores a counter value; The above method is encrypting the FIDO private key using the diversified key and the counter value; and transmitting the encrypted FIDO private key to the first server.

17. The method of claim 16.

19. The challenge is generated using the FIDO public key.

16. The method of claim 15.

20. The transaction verification includes placing the contactless card into near field communication with the client device.

10. The method of claim 9.