Client device authentication using contactless traditional magnetic stripe data
By integrating a processor and memory into the contactless magnetic stripe card, and utilizing data communication between the mobile phone and the server, as well as diverse key technologies, the data security and user authentication issues during contactless magnetic stripe card interaction are solved, achieving higher transaction security and reliability.
Patent Information
- Application Number
- CN201980102480.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-10-02
- Publication Date
- 2025-11-14
- Estimated Expiration
- 2039-10-02
AI Technical Summary
In existing technologies, contactless magnetic stripe cards lack effective data security and user authentication methods when interacting with mobile phones or similar client devices, resulting in insufficient transaction security.
The contactless magnetic stripe card integrates a processor and memory. Through data communication between the mobile phone and the server, it generates diverse keys using a master key, counter value, and cryptographic algorithm to encrypt the transmitted data. The data is then decrypted and authorized on the server side. The key diversity is further enhanced by combining user input such as fingerprints, digital codes, or photos.
It improves the transaction security and user authentication capabilities of contactless magnetic stripe cards, ensures the confidentiality and integrity of data transmission, reduces the risk of key exposure, and enhances transaction reliability.
Smart Images

Figure CN114746913B_ABST
Abstract
Description
[0001] Cross-referencing related applications
[0002] This application claims priority to U.S. Patent Application 16 / 590,536, filed October 2, 2019. Background Technology
[0003] Data security and transaction integrity are critical to businesses and consumers. This demand continues to grow as electronic transactions account for an increasingly larger share of commercial activity. Contactless cards can be a valuable resource for providing data security and transaction integrity. While the use of chip-based financial cards (such as EMV cards) is increasing, offering some security features superior to traditional magnetic stripe cards (MSD), most merchants accepting contactless methods still use MSD cards and MSD technology. Therefore, many card issuers still choose to support both MSD and EMV cards. Summary of the Invention
[0004] Since many card issuers in the country still choose to support MSD cards, there is a need for technologies that enhance the transaction security and user authentication of these cards. Enhancing the security of contactless traditional magnetic stripe cards is particularly important when interacting with mobile phones or similar client devices. Example interactions could include activation, authentication, or installation authentication using mobile devices, phones, and tablets.
[0005] In an example embodiment, a secure data transmission system comprising an MSD-compliant card (“card”), a mobile phone, and a server is disclosed. The mobile phone can receive protected data from the card and send the protected data to the server for further analysis or operation. The card may have a processor and memory, the memory of which may store a master key (or derived key), transmitted data, and a counter value (and / or key diversification value). The server may have a processor and memory, the server’s memory of which may store the master key. The card and the server can communicate via the mobile phone. The card may be configured to generate a diversification key using the master key, the counter value (and / or key diversification value), and one or more cryptographic algorithms, and store the diversification key in the card’s memory. The card may also encrypt transmitted data using one or more cryptographic algorithms and the diversification key to obtain encrypted transmitted data, and send the encrypted transmitted data to the server using the mobile phone. The server is configured to generate a diversification key based on the master key and the counter value (and / or key diversification value), and store the diversification key in the server’s memory. The server may maintain the counter value (and / or key diversification value) independently, or receive the counter value separately from the card or along with the encrypted transmitted data. The server can use a replicated, multi-key set to decrypt encrypted transmissions and take further actions, such as authorization and authentication steps.
[0006] In one example embodiment, the key diversification value can be provided by the user as a fingerprint, digital code, or photograph. The user can provide the key diversification value to a card or mobile phone. In this embodiment, the card can create a diversified key using the user-provided key diversification value. The card or mobile phone can send the user-provided diversification value to a server, which can then recreate the diversified key using the user-provided diversification value.
[0007] In this example embodiment, the card may include a derived key and a cryptographic algorithm. The card can generate a PIN using the derived key and a cryptographic algorithm (e.g., dCVV in Visa or CVC3 in MasterCard). The card can send the PIN to a mobile phone, which can then send it to a server. The server can verify the PIN and authorize the transaction after verification. In this example embodiment, the derived key is specific to each card. For example, at the BIN level, there may be a primary key (or master key). An algorithm can be used to generate a derived key using the primary key, the PAN, and the PAN serial number. Attached Figure Description
[0008] Figure 1A A contactless card according to an example embodiment is shown.
[0009] Figure 1B An exemplary contact pad is shown, including an NFC tag located behind the contact pad.
[0010] Figure 2 A mobile phone according to an example embodiment is shown.
[0011] Figure 3 A data transmission system according to an example embodiment is shown.
[0012] Figure 4 A flowchart is shown for encrypting sensitive data and sending sensitive data from a card to a server via a mobile phone.
[0013] Figure 5 An exemplary hardware component of the server is shown. Detailed Implementation
[0014] The purpose of some embodiments of this disclosure is to incorporate one or more keys into a contactless conventional magnetic stripe card. Contactless cards can perform authentication and many other functions that would otherwise require a separate physical token in addition to the contactless card. By employing a contactless interface, contactless cards can interact with client devices (e.g., mobile phones). The client device can relay any encrypted data provided by the card to a backend server, which can then authorize various transactions, such as user authentication.
[0015] In one example embodiment, the MSD card or contactless conventional magnetic stripe card (hereinafter referred to as the "card") conforms to one or more of the following standards: ISO / IEC 7810, ISO / IEC 7811, ISO / IEC 7812, ISO / IEC 7813, ISO 8583, and ISO / IEC 4909. These standards can define the physical properties of the card, including size, flexibility, magnetic stripe location, magnetic properties, and data format.
[0016] The card size can be the same as a payment card, credit card, or debit card. According to ISO / IEC 7810 standard ID-1, the card size can be 85.60 x 53.98 mm (3.37 inches × 2.13 inches). However, according to these specifications, cards can have different sizes and do not necessarily have to be implemented as payment cards.
[0017] In an example embodiment, the card may include a magnetic stripe that stores data by altering the magnetism of iron-based magnetic particles on a magnetic material strip on the card. The magnetic stripe can be read by scanning it with a magnetic stripe reader. In one example embodiment, the magnetic card may have up to three tracks, referred to as tracks 1, 2, and 3. Point-of-sale card readers almost always read track 1 or track 2, and sometimes both, in case one track is unreadable. The minimum cardholder account information required to complete a transaction may appear on two tracks.
[0018] In one example embodiment, track 1 may include information such as primary account number (“PAN”), name, expiry date, service code, and self-service data (e.g., PIN verification key index (PVKI), PIN verification value (PVV), card verification value, or card verification code (CVV or CVC)). In one example embodiment, track 2 may include PAN, expiry date, service code, and self-service data (e.g., the same as track 1).
[0019] The card may include processing circuitry for storing and processing information. This processing circuitry may include a processor, memory, error and parity / CRC checkers, a data encoder, anti-collision algorithms, a controller, a command decoder, security primitives, and tamper-proof hardware.
[0020] Information storage can occur in the memory of the processing circuitry, which can be read-only memory, write-once-read-many memory, or read / write memory, such as RAM, ROM, and EEPROM. Cards can include one or more of these memories, which can store information, including information stored on any track of the card. Contactless cards can use NFC technology to transfer information stored in these memories. Read-only memory can be programmed at the factory to be read-only or programmable only once. Programmability once provides the opportunity to write once and then read many times. Write-once / read-many memory can be programmed at some point after the memory chip leaves the factory. Once programmed, the memory cannot be rewritten but can be read multiple times. Read / write memory can be programmed and reprogrammed multiple times after leaving the factory. It can also be read multiple times.
[0021] The card's memory can be divided into several zones, each providing a different security level. The card processor can track which memory addresses belong to which zones and the access permissions for each zone. The card processor can also process information and store it in the memory. In an example embodiment, the card memory can be divided into four zones: a confidential zone, a secure zone, a usage zone, and a public zone.
[0022] The confidential area can be used to store information that can only be used by the processor itself, such as passwords and encryption keys. Information stored in this area is not readable outside the card. In one embodiment, the confidential area can be implemented using a separate processor capable of performing cryptographic functions. Encryption keys can be passed to the confidential area or generated within the confidential area; in either case, the keys can be stored in the confidential area and used to support encryption services. If necessary, encryption keys can be exported from the confidential area.
[0023] In an example embodiment, the card may be a JavaCard, which may include one or more applets. The applets may configure firewalls, and data may be assigned to the applets for storage. The data may be stored transactionally in EEPROM flash memory; for example, if a write operation is not completed during a power outage, the content remains unchanged.
[0024] A confidential area can be used to store a list of all transactions made using the card. This confidential area can be password protected. In an example embodiment, only the card issuer knows the password, allowing them to examine the card's history for evidence of system abuse. The confidential area can have read-only access restrictions, preventing the information stored there from being modified, such as the transaction list. A usage area can be used to store information that is periodically updated or modified. Depending on the sensitivity of the data, this area can be password protected. The usage area can also have password-protected read and write access. A public area can be used to store non-sensitive information, such as the card issuer's name and address. The public area can have read-only access and does not require a password.
[0025] In example embodiments, the card may store one or more key diversification values. The card can use these key diversification values to create diversification keys. For example, the card may store a counter value. The counter value may come from a counter module, and the counter module may increment the counter value each time the card interacts with a mobile phone or server. As another example, the card may store multiple fingerprints and store diversification values associated with each fingerprint. The card may include a fingerprint reader, and when a user scans their finger at the fingerprint reader, the card may determine whether any stored fingerprints have been scanned at the fingerprint reader. The card may also select diversification values associated with the scanned fingerprint. The selected diversification values can be used to generate diversification keys. As yet another example, the card may store a set of random diversification values. As yet another example, the card may receive diversification values from an input device mounted on the card (e.g., a keypad or fingerprint reader) or via contactless transmission from a mobile phone.
[0026] Some cards may require physical contact with a client device (or reader / writer, reader, or scanner) to provide information stored on the card to the client device or to write information onto the card. Other cards can be contactless, meaning they can communicate wirelessly with the client device. Contactless cards can be credit cards that include magnetic tape or radio frequency identification (“RFID”) tags. Some contactless cards may include both magnetic tape and RFID tags. Some cards are compatible with wireless communication technologies such as NFC, Bluetooth, and Wi-Fi.
[0027] A terminal can communicate with a contact card by establishing an electrical contact between the card and the terminal. Therefore, the contact card can have a contact area comprising several contact pads. This area is approximately 1 square centimeter (0.16 square inches). Contact between the contact pads and the terminal is established by inserting (or sinking) the contact card into the terminal. Using the electrical connection, the terminal can send signals to the card, and in response, the card can send its information to the terminal. Typically, contact cards do not contain a battery. However, in some embodiments, contact cards may include a battery.
[0028] If a contactless card is held near a client device, the client device can communicate with the contactless card. The client device can read the contactless card over a short distance using Near Field Communication (“NFC”) technology that utilizes radio frequency induction. The contactless card may include a sensor for capturing incident radio frequency polling signals sent by the terminal, rectifying the signals, and using them to power the card’s processing circuitry. Therefore, the contactless card can operate without an internal power supply. However, in some embodiments, the contactless card may include an internal power supply.
[0029] Figure 1A A contactless card 100 according to an example embodiment is shown. In this embodiment, the card 100 may be a payment card issued by a service provider 101 displayed on the front or back of the card 100. The card 100's dimensions conform to ISO / IEC 7810 standard ID-1, i.e., 85.60 x 53.98 mm. The card 100 may include a contact pad 102 for establishing contact with a contact terminal. The card 100 may also include processing circuitry, an antenna, and... Figure 1A Other components not shown. These components may be located behind the contact pad 102. The card 100 may also include various identification information 103 displayed on the front or back of the card. The card 100 may also include a magnetic stripe or magnetic tape, which may be located on the back of the card.
[0030] In an example embodiment, the card is equipped with a Near Field Communication (“NFC”) tag. In some embodiments, the NFC tag may include processing circuitry for storing and processing information from modulated and demodulated radio frequency signals (typically received from a client device, reader / writer, or scanner). The NFC tag may also include anti-collision algorithms, authentication and encryption mechanisms, RF interface circuitry, and an RF antenna operating at a frequency of 13.56 MHz. The RF antenna can receive and transmit signals. Additionally, the RFID tag may include a power source or means for harvesting DC power from incident terminal signals. These means may include a modulator, voltage regulator, reset mechanism, and connection to the antenna. The antenna may be an electric dipole antenna or a coil antenna.
[0031] There can be various types of NFC tags, such as active tags, battery-assisted passive tags, and passive tags. Active tags can be electrically coupled to a power source that can power integrated circuits, such as a battery. Therefore, active tags can periodically transmit information stored on the tag as signals. Battery-assisted passive tags can have an activated power source electrically coupled to them, and this power source can be activated when the tag is exposed to signals from a terminal. Passive tags are not powered by a power source. Instead, the tag is powered by wireless energy sent to the tag by the terminal.
[0032] In an example embodiment of a passive NFC tag, the tag relies on a signal from a client device to be powered. The tag may include a modulator, voltage regulator, reset, and connection to an antenna. The antenna may be an electric dipole antenna or a coil antenna, and the tag's processing circuitry may be connected to the antenna. The type of antenna can be determined based on the frequency band used by the tag. Typically, electric dipole antennas are used with UHF tags, but UHF tags use coil antennas. For example, if the tag uses a 915-MHz frequency, the NFC tag's antenna may be a simple dipole antenna, but if the tag uses a 13.56-MHz frequency, the antenna may be a complex coil shape. The antenna captures and transmits signals to and from the terminal. The coupling from the terminal to the tag provides the power for transmitting data and operating the passive NFC tag.
[0033] Figure 1B An exemplary contact pad 102 is shown, including an NFC tag located behind the contact pad 102. In this example embodiment, the contact pad 102 may include several gold-plated pads. Behind the contact pad 102, there may be processing circuitry 104 and an NFC tag. The NFC tag may include an antenna 105. In this example embodiment, the processing circuitry 104 is part of the NFC tag.
[0034] In some embodiments, the antenna of the card's NFC tag may be placed inside the card and surrounding the contact pad 102. In other embodiments, the card's NFC tag may include multiple antennas. For example, in addition to antenna 105, the card may include an antenna that extends around the contact pad 102 and through the card 100. Other combinations are also possible. In some embodiments, the antenna may be located outside the contact pad and processing circuitry. In some other embodiments, an antenna integrated with the processing circuitry may be present, and the antenna may be used in conjunction with an external boost coil.
[0035] In an example embodiment, the card's coil can act as the secondary winding of an air-core transformer. The terminal can communicate with the card by cutting off power or by amplitude modulation. The card can infer data sent from the terminal using gaps in its power connection, which is held in place by a capacitor. The card can communicate by switching the load on the card coil or by load modulation. Load modulation can be detected in the terminal coil by interference.
[0036] In an example embodiment, the card may include a keypad and / or a fingerprint reader. Using the keypad and / or fingerprint reader, a user can provide input to the card. For example, using the keypad, a user can provide a code to the card, which the card can use as a key diversification value. Similarly, a user can scan their fingerprint and store it on the card. The card can associate each scanned and stored fingerprint with an encryption algorithm (or key diversification value). By scanning the user's fingerprint, the user can specify which encryption code the card can use.
[0037] The client device can be a mobile phone, cell phone, or tablet computer. The client device can read information from the card and write information to the card. In some embodiments, the client device can transfer information from the card to a host computer and write information from the host computer to the card. In some embodiments, the host computer can be the client device. The client device can power the card and connect the card's hardware interface to the host computer. Because the card's processor can control the actual flow of information into and out of the card's memory, the client device can perform operations to send information to the host computer with minimal processing power.
[0038] In some embodiments, the client device may include a processor and a transceiver. The transceiver can send and receive data from the card using the NFC protocol. The processor of the client device can decode any data received from the card. The client device can also update, delete, or modify information stored on the card.
[0039] Client devices can write data onto a card by passing data to the card's processor. The processor can process the data and store it in the card's memory. As described in ISO 14443, client devices can communicate bidirectionally with the card. The card may include an NFC tag. Bidirectional communication can be digitally encoded. Bidirectional communication can have multiple frequency ranges and several proprietary formats. The 13.56MHz frequency range (NFC) is dominated by ISO 14443 compliant cards.
[0040] The client device and the card can exchange messages, which may include commands or data. For example, the client device can send a command message to the card, the card can process the command message in its processor, and the card can send a response message back to the client device. Each of the command and response messages can include data. Messages may include TLV (Type, Length, and Value) data and commands such as the STORE_DATA command, which prompts that the data contained in the message be stored on the card.
[0041] Figure 2 A mobile phone 200 according to an example embodiment is shown. In this example embodiment, the mobile phone 200 may include a display screen 201, a camera 202, and a fingerprint scanner 203. The display screen 201 can be any type of display screen, such as a touchpad LCD display. For example, by using the touch screen 201, a customer can input information into the mobile phone 200. As another example, by pressing a graphical user interface button, a user can command the camera 202 to take a picture. The camera can store the photo and / or send the photo to a backend server. As yet another example, a user can command the mobile phone 200 to scan the user's fingerprint using the fingerprint scanner 203. The mobile phone 200 can store the fingerprint and / or send the fingerprint to a card or a backend server.
[0042] In an example embodiment, the mobile phone may be an NFC-compatible phone, which may include an antenna for transmitting and receiving signals, a transceiver, and a processor for decoding data. For passive NFC tags, the mobile phone may send an energy field to wake up the tag (or card) and power its chip, enabling it to transmit or store data. In turn, the tag converts radio signals into usable power and responds to the mobile phone in the form of radio signals. This signal may include the tag's identity and other information. Once the mobile phone receives the response, it converts the response and extracts any information included in the radio signals. The information collected from the tag is then transmitted via a communication interface to a backend server, where the data may be stored in a database or analyzed by the server. The mobile phone may also update, delete, or modify the information stored on the card.
[0043] exist Figure 2 In an example embodiment, the mobile phone 200 is equipped with one or more antennas (not shown) that enable the device to read information from and write information to a contactless card.
[0044] In these disclosures, the terms client device, mobile phone, reader / writer, scanner, and terminal are used interchangeably, all referring to devices capable of scanning cards and / or writing information onto cards. In some embodiments, the mobile phone may connect to a backend server. In other embodiments, the mobile phone may be integrated into the backend server.
[0045] In example embodiments, a mobile phone may include one or more of the following: a fingerprint reader, a camera, and an application for receiving input from a user (e.g., a PIN code, key diversification value, or identification number). The mobile phone can send any input provided by the user to a backend server and the card, for example, for key diversification purposes. For example, the backend server can store multiple fingerprints for the user, and the server can associate an encryption algorithm with each fingerprint. When the card is scanned on the mobile phone, the phone can also receive the user's fingerprint (or other information, such as a photo or PIN code) and send this information to the backend server. Using this information, the backend server can determine which encryption algorithm was used during the key diversification process.
[0046] When using symmetric cryptographic algorithms such as encryption algorithms, hash-based message authentication codes (HMAC) and cryptographic message authentication codes (CMAC), it is important that the key remains confidential between the party that initially processes data protected using the symmetric algorithm and key and the party that receives and processes data using the same algorithm and key.
[0047] Equally important, avoid using the same key repeatedly. Using or reusing a key too frequently can compromise its security. Each time a key is used, it provides an attacker with additional samples of data processed by the cryptographic algorithm using the same key. The more data an attacker possesses processed using the same key, the more likely they are to discover the key value. Frequently used keys can be included in various different attacks.
[0048] Furthermore, each execution of a symmetric cryptographic algorithm can potentially reveal information about the key used during the symmetric cryptographic operation, such as side-channel data. Side-channel data may include subtle power fluctuations that occur while the cryptographic algorithm is being executed using the key. An attacker can take sufficient measures against the side-channel data to reveal enough information about the key to recover it. Exchanging data using the same key continuously exposes data processed through the same key.
[0049] However, by limiting the number of times a specific key is used, the amount of sidechannel data an attacker can collect can be limited, thereby reducing the risk of this and other types of attacks. As further described herein, the parties involved in the exchange of cryptographic information (e.g., the sender and receiver) can periodically replace the shared symmetric key in use by generating keys independently from an initial shared master symmetric key combined with a counter value, requiring any form of key exchange to keep the parties synchronized. By periodically changing the shared confidential symmetric key used by the sender and receiver, the aforementioned attacks become impossible.
[0050] Figure 3 A data transmission system according to an example embodiment is illustrated. System 300 may include a card 100 and a mobile phone 200, which communicate with one or more servers 500, for example, via a network. System 300 may be configured to implement a key diversification algorithm. For example, a sender (e.g., the card) and a receiver (e.g., a backend server) may wish to exchange data (e.g., sensitive data) via mobile phone 200.
[0051] In some examples, the same master symmetric key can be provided for both card 100 and server 500. The symmetric key can be kept secret from all parties except for card 100 and server 500 involved in exchanging secure data. It should also be understood that the portion of data exchanged between card 100 and server 500 includes at least a portion of data that can be referred to as sensitive data, counter values, or other types of data (e.g., key diversification values). Counter values can include numbers that change each time data is exchanged between card 100 and server 500. In this disclosure, counter values and key diversification values can be used to refer to the same value or different values, both within the scope of this disclosure.
[0052] Figure 4 A flowchart is shown for encrypting sensitive data and sending the sensitive data from card 100 to server 500 via mobile phone 200. In step 410, when card 100 is ready to process the sensitive data using symmetric cryptography, card 100 can update a counter. Card 100 and server 500 can store a value representing the counter. This value can be updated with each interaction between card 100 and server 500.
[0053] In step 420, card 100 may select an appropriate symmetric cryptographic algorithm, which may include at least one of symmetric encryption algorithms, HMAC algorithms, and CMAC algorithms. The algorithm selection of card 100 may be based on input, which may be provided by: data stored on card 100 (e.g., counter values), data received from a user (e.g., the input panel of card 100), or data provided by mobile phone 200 or server 500.
[0054] In some examples, symmetric algorithms can include any symmetric cryptographic algorithm that generates symmetric keys of varying desired lengths. Non-limiting examples of symmetric algorithms can include symmetric encryption algorithms such as 3DES or AES128; symmetric HMAC algorithms such as HMAC-SHA-256; and symmetric CMAC algorithms such as AES-CMAC. It should be understood that if the output of the chosen symmetric algorithm does not generate a sufficiently long key, techniques such as processing the symmetric algorithm multiple times with different input data and the same master key may produce multiple outputs that can be combined as needed to generate a sufficiently long key.
[0055] In step 430, card 100 can generate a diversified key. For example, a diversified symmetric key can be created by encrypting a counter value (i.e., a key diversification value) using a selected symmetric encryption algorithm with a master symmetric key. As another example, a master key and a key diversification value can be provided as inputs to an encryption algorithm, and the output can be a diversified (symmetric) key. Sensitive data can be processed using the diversified symmetric key before the result is sent to server 500 via mobile phone 200.
[0056] In step 440, sensitive data can be protected using one or more cryptographic algorithms and one or more diversification keys. The diversification key created in step 430 can be used in conjunction with one or more cryptographic algorithms to protect sensitive data. In some examples, multiple cryptographic operations can be performed using a diversification symmetric key before transmitting the protected data. For example, the MAC can use a first diversification session key to process the data, and the resulting output can be encrypted using a second diversification session key that produced the protected data. The cryptographic algorithm can be selected using algorithm selection techniques.
[0057] In one example embodiment, sensitive data may include data similar to data stored in track 1 or track 2 of a magnetic stripe card. In another example embodiment, sensitive data may include a counter value. In yet another example embodiment, sensitive data may include other data provided by card 100 or mobile phone 200, such as numbers entered by the keypad of card 100 or photos captured by mobile phone 200.
[0058] In step 450, the protected data (i.e., the sensitive data protected in step 430) can be sent to mobile phone 200, and mobile phone 200 can send the protected data to server 500. In step 460, server 500 can perform the same symmetric encryption using a counter value as the input to encryption and a master key as the encryption key. The encrypted output can be the same diversified symmetric key value created by card 100. For example, server 500 can copy the diversified key created at card 100 and use the copied diversified key to decrypt the protected data. As another example, server 500 can independently create its own copies of first and second diversified session keys using the counter value. Server 500 can then use the second diversified session key to decrypt the protected data to reveal the output of the MAC created by the card. Server 500 can then use the first diversified session key to process the resulting data through MAC operations.
[0059] In one embodiment, at step 470, server 500 can use a diversified key to decrypt protected sensitive data. In another embodiment, at step 470, server 500 can use the diversified key with one or more cryptographic algorithms to verify the protected data, and at step 480, the original data can be verified. For example, if the output of the MAC operation matches the MAC output revealed by decryption, the data can be considered valid.
[0060] The next time sensitive data needs to be sent from card 100 to server 500 via mobile phone 200, different counter values can be selected to generate different diversified symmetric keys. By using the master symmetric key and the same symmetric cryptography algorithm to process the counter values, both card 100 and server 500 can independently generate the same diversified symmetric key. This diversified symmetric key, instead of the master symmetric key, is used to protect sensitive data.
[0061] Card 100 and server 500 initially each hold a shared master symmetric key. This shared master symmetric key is not used to encrypt the original sensitive data. Since the diversification symmetric key is created independently by card 100 and server 500, it is never transmitted between them. Therefore, an attacker cannot intercept the diversification symmetric key, and an attacker will never see any data processed using the master symmetric key. Thus, the exposure of side-channel data regarding the master symmetric key is reduced. Furthermore, the operation of card 100 and server 500 can be controlled by symmetry requirements, determining how often a new diversification value is created, and thus a new diversification symmetric key is created. In one embodiment, a new diversification value and therefore a new diversification symmetric key can be created for each exchange between card 100 and server 500.
[0062] In some examples, the key diversification value may include a counter value. Other non-limiting examples of key diversification values include: a random nonce generated each time a new diversification key is needed, which is sent from card 100 to server 500; the full value of a counter value sent from card 100 and server 500; a portion of a counter value sent from card 100 to server 500; a counter maintained separately by card 100 and server 500 but not sent between the two devices; a one-time password exchanged between card 100 and server 500; and a cryptographic hash of sensitive data. In some examples, parties may use one or more portions of the key diversification value to create multiple diversification keys. For example, a counter may be used as the key diversification value. Furthermore, combinations of one or more of the exemplary key diversification values described above may be used.
[0063] In another example, a portion of the counter can be used as a key diversification value. If multiple master key values are shared among the parties, multiple diversified key values can be obtained using the system and process described herein. New diversification values can be created frequently as needed, and thus new diversified symmetric keys can be created. In the most secure scenario, a new diversification value can be created for each sensitive data exchange between Card 100 and Server 500. In practice, this can create one-time use keys, such as one-time session keys.
[0064] In one example embodiment, the key diversification value may be a counter value. However, in other example embodiments, the key diversification value may be determined based on user-provided input, as a supplement to or alternative to the counter value.
[0065] For example, a user can use the keypad on their phone screen to specify a numeric code. The phone can then send this numeric code as a key diversification value to the card and the server. As another example, a user can use the keypad on their card to specify a numeric code. The card can use this numeric code as a key diversification value. The card can also send this diversification value to the phone, which in turn can send it to the server. The numeric code can be encrypted when sent to the phone. As yet another example, a user can provide their fingerprint on a fingerprint reader on a card or phone. Using the fingerprint, the card or phone can determine the key diversification value. For example, if a user sets up their fingerprint on their phone, during setup, the user specifies an alphanumeric value for each finger scanned. The phone can store each fingerprint and alphanumeric value in association. Subsequently, when the user wants to authorize a transaction, they can scan their finger and tap the card on their phone. The phone can then send the key diversification value associated with the fingerprint to both the card and the server. Both the card and the server can use the key diversification value to create a diversified key.
[0066] As another example, a user can scan their finger onto the card. In this example, when the user scans their finger, they can specify a key diversification value associated with each fingerprint they provide using the card's keypad. Subsequently, when the user scans their finger on the card, the card uses the associated key diversification value in encryption operations. The card can send the encrypted data and key diversification value to a mobile phone, which in turn can send the key diversification value to a server. In one example, during setup, the user can scan their finger on the card (or mobile phone). After setup, the user can scan the card on their mobile phone. The card (or mobile phone) can send the association of the fingerprint and key diversification value to the mobile phone (or card). In this example, when the user wants to authorize a transaction, they can scan their fingerprint on both the card and the mobile phone, without needing to send diversification values between the mobile phone and the card.
[0067] In one example embodiment, the card and server can use fingerprint association to select an encryption algorithm. For example, a user can define the relationship between each fingerprint and an encryption algorithm. When a user scans their finger on a phone (or card), either the phone or the card can determine the defined encryption algorithm for the scanned fingerprint.
[0068] In one example embodiment, a mobile phone is configured to take a photo of a user and send the photo to a server. The server can determine a key diversification value and / or encryption algorithm based on the photo. In one embodiment, when the server receives a user's photo, as a threshold, the server can perform facial recognition to determine whether the photo belongs to the user of the card. If the server determines the photo belongs to the user, it can determine the user's facial expression in the photo. For example, if the user is smiling, the server can associate the user's facial expression with a first diversification value and / or a first encryption algorithm. However, if the user has their eyes closed, the server can associate the user's facial expression with a second diversification value and / or a second decryption algorithm. Subsequently, the server can send the diversification value and / or decryption algorithm associated with the facial expression to the mobile phone, and the mobile phone can send the diversification value and / or decryption algorithm to the card. The card can use the associated diversification value to generate a diversification key and / or select an associated decryption algorithm to encrypt sensitive data. In another embodiment, the server can determine the color of the user's clothing and determine the diversification value and / or encryption algorithm based on the clothing color.
[0069] In one example embodiment, the mobile phone can send a user's photo to a server, and the server can send a hash of the photo to the mobile phone. The mobile phone can then send the hash of the photo to a card. The card can use the hash of the photo as a diversification value.
[0070] In one example embodiment, a diverse value can be selected based on a user-provided fingerprint input, and an encryption algorithm can be selected based on a photo submitted by the phone to the server. For example, by using a fingerprint, the phone can determine the diverse value and send it to both the card and the server simultaneously. Furthermore, by using a photo, the server can determine the encryption algorithm. The server can send the selected encryption algorithm to the phone, and the phone can send the selected encryption algorithm to the card.
[0071] In one example embodiment, the diversification value can be a combination of multiple diversification values. For example, the diversification value can be a password combination of a diversification value derived using a fingerprint and a diversification value derived using a user's photo.
[0072] Figure 5Exemplary hardware components of a server are shown. Computer system 500 or other computer systems with similar configurations may include and execute one or more subsystem components to perform the functions described herein, including the steps of the various processes described above. Similarly, mobile devices, mobile phones, smartphones, laptops, desktops, tablets, wearable devices, servers, etc., that include some of the same components as computer system 500, can run applications (or software) and perform the steps and functions described above. Computer system 500 may connect to network 514, such as the Internet or other networks, to receive queries, obtain data, and send information and stimuli, as described above.
[0073] Computer system 500 typically includes memory 502, auxiliary storage device 504, and processor 506. Computer system 500 may also include multiple processors 506 and be configured as multiple, for example, blade servers, or other known server configurations. Computer system 500 may also include network connectivity device 508, display device 510, and input device 512.
[0074] Memory 502 may include RAM or similar type of memory, and it may store one or more applications executed by processor 506. Auxiliary storage device 504 may include hard disk drive, floppy disk drive, CD-ROM drive, or other types of non-volatile data storage device. Processor 506 executes applications stored in memory 502 or auxiliary storage device 504 or received from the Internet or other network 514, such as those described herein. Processing by processor 506 may be implemented in software executable by a computer or other machine, such as software modules. These applications preferably include executable instructions to perform the functions and methods of the system and subsystem components described above and shown in the accompanying drawings. The applications preferably provide a graphical user interface (GUI) through which a user can view and interact with the subsystem components.
[0075] Computer system 500 may store one or more database structures in auxiliary storage device 504, such as information required for storing and maintaining the functions described above. Alternatively, such information may be stored in a storage device separate from these components.
[0076] Furthermore, as noted, processor 506 can execute one or more software applications to provide the functions described in this specification, particularly performing and implementing the steps and functions in the above-described processing flow. These processes can be implemented in software executable by a computer or other machine, such as software modules. The GUI can, for example, be configured to use Hypertext Markup Language (HTML), Extensible Markup Language (XML), or any other suitable form of web page to be presented on a display device according to the application used by the user to interact with computer system 500.
[0077] Input device 512 may include any device for inputting information into computer system 500, such as a touchscreen, keyboard, mouse, cursor control device, microphone, digital camera, video recorder, or camcorder. Input and output device 512 may be used to input information into the GUI during the execution of the methods described above. Display device 510 may include any type of device for presenting visual information, such as a computer monitor or flat panel display (or mobile device screen). Display device 510 may display the GUI and / or output from subsystem components (or software).
[0078] Examples of computer systems 500 include dedicated server computers such as blade servers, personal computers, laptop computers, notebook computers, handheld computers, network computers, mobile devices, or any processor-controlled device capable of running a web browser or other types of applications for interacting with the system.
[0079] Although only one computer system 500 is shown in detail, system 500 may use multiple computer systems or servers to support users as needed or desired, and may also use backup or redundant servers to prevent network outages in the event of a particular server failure. Furthermore, although computer system 500 is described as having various components, those skilled in the art will understand that the system may include additional or different components. Additionally, although the implementation aspects consistent with the foregoing are described as being stored in memory, those skilled in the art will understand that these aspects may also be stored on or read from other types of computer program products or computer-readable media, such as auxiliary storage devices including hard disks, floppy disks, or CD-ROMs; or other forms of RAM or ROM. The computer-readable medium may include instructions for controlling computer system 500 to perform specific methods such as those described above.
[0080] This disclosure is not limited to the specific embodiments described herein, which are intended as illustrative of various aspects. Many modifications and variations can be made without departing from its spirit and scope, as will be apparent. In addition to those listed herein, functionally equivalent methods and apparatuses within the scope of this disclosure will become apparent from the foregoing representative description. These modifications and variations are intended to fall within the scope of the appended representative claims. This disclosure is limited only by the terms of the appended representative claims and the full scope of their equivalents. It should also be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not restrictive.
Claims
1. A contactless card, comprising: The memory for the memory card key, transmitted data, counter values, and algorithm selection values; as well as processor, The contactless card is a magnetic stripe (MSD) compliant contactless card, and The contactless card is configured as follows: The encryption algorithm is selected based on the value selected by the algorithm. The card key, the counter value, and the encryption algorithm are used to generate diverse keys. The transmitted data is encrypted using the aforementioned encryption algorithm and the diverse keys to produce encrypted transmitted data. Transmit the encrypted data.
2. The contactless card according to claim 1, wherein: The memory also stores key diversification values, and The contactless card is also configured to generate the diversified key using the key diversification value, the card key, the counter value, and the encryption algorithm.
3. The contactless card according to claim 2, wherein, The contactless card is also configured to receive the key diversification value from the client device.
4. The contactless card according to claim 2, wherein, The key diversification values include biometric inputs.
5. The contactless card according to claim 4, wherein, The biometric input includes at least one selected from the group consisting of data associated with a photograph and data associated with a fingerprint.
6. The contactless card according to claim 5, wherein: The contactless card also includes a fingerprint reader, and The fingerprint reader is configured to receive data associated with a fingerprint.
7. The contactless card according to claim 2, wherein, The key diversification values include alphanumeric codes.
8. The contactless card according to claim 1, wherein, The transmitted data includes account information.
9. The contactless card according to claim 1, wherein, The algorithm selects the counter value.
10. The contactless card according to claim 1, wherein, The contactless card is configured to receive the algorithm selection value from at least one selected from the group consisting of client devices and servers.
11. The contactless card according to claim 1, wherein: The contactless card also includes an input board, and The contactless card is also configured to receive the algorithm selection value via the input panel.
12. The contactless card according to claim 1, wherein: The encryption algorithm is associated with the fingerprint, and The algorithm selects values that include data associated with fingerprints.
13. A method performed by a contactless card compliant with a magnetic stripe (MSD), the contactless card including a processor and a memory storing a card key, transmission data, a counter value, and an algorithm selection value, the method comprising: The encryption algorithm is selected based on the value selected by the algorithm. The card key, the counter value, and the encryption algorithm are used to generate diverse keys. The transmitted data is encrypted using the aforementioned encryption algorithm and the diverse keys to produce encrypted transmitted data. Transmit the encrypted data.
14. The method of claim 13, further comprising generating the diversified key using a key diversification value, the card key, the counter value, and the encryption algorithm.
15. The method according to claim 14, wherein, Generating the diversity key using the card key, the counter value, and the encryption algorithm includes encrypting the counter value using the card key and the encryption algorithm.
16. The method of claim 14, wherein, The key diversification value includes at least one of the following: a random nonce generated each time a new diversification key is needed, a portion of the counter value, a one-time password, and a cryptographic hash of the data stored in the memory.
17. The method of claim 14, wherein, The method further includes: Receive user input, and The user input is stored as the key diversification value.
18. A non-transitory computer-readable medium comprising instructions executable by a contactless card compliant with a magnetic stripe (MSD), the contactless card including a processor and memory for a memory card key, transmission data, a counter value, and an algorithm selection value, wherein, When executing the instruction, configure the contactless card to perform a process including the following steps: The encryption algorithm is selected based on the value selected by the algorithm. The card key, the counter value, and the encryption algorithm are used to generate diverse keys. The transmitted data is encrypted using the aforementioned encryption algorithm and the diverse keys to generate encrypted transmitted data. Transmit the encrypted data.
19. The non-transitory computer-readable medium of claim 18, the process further comprising generating the diversified key using a key diversification value, the card key, the counter value, and the encryption algorithm.
20. The non-transitory computer-readable medium according to claim 19, wherein, Generating the diversity key using the card key, the counter value, and the encryption algorithm includes encrypting the counter value using the card key and the encryption algorithm.
Citation Information
Patent Citations
Client device authentication using contactless legacy magnetic stripe data
US10701560B1
Payment system
US20140040149A1