Client device authentication using contactless legacy magnetic stripe data
Patent Information
- Application Number
- JP2024184259
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-10-02
- Filing Date
- 2024-10-18
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2039-10-02
AI Technical Summary
Existing contactless legacy magnetic stripe cards lack secure authentication mechanisms, necessitating separate physical tokens for transaction security and user authentication, especially when interacting with mobile devices.
A secure data transmission system incorporating a contactless legacy magnetic stripe card with integrated processing circuitry and memory, utilizing cryptographic algorithms and derived keys for secure data transmission and authentication, facilitated by a mobile phone and server communication.
Enables secure transaction authorization and user authentication without the need for additional physical tokens, enhancing data security and transaction integrity for contactless legacy magnetic stripe cards.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] CROSS REFERENCE TO RELATED APPLICATIONS. This application claims priority to U.S. Patent Application No. 16 / 590,536, filed October 2, 2019.
[0002] Technical field. This application relates to client device authentication using contactless legacy magnetic stripe data. [Background technology]
[0003] Data security and transaction integrity are of great importance to businesses and consumers. This need continues to grow as electronic commerce constitutes an ever-increasing share of commercial activity. Contactless cards can be an invaluable resource in providing data security and transaction integrity. Although the increasing use of chip-based financial cards (e.g., EMV cards) offers certain secure features over legacy magnetic stripe cards (MSD), the majority of contactless accepting merchants still utilize MSD cards and MSD technology. Thus, many card issuers still choose to support both MSD and EMV cards. Summary of the Invention [Problem to be solved by the invention]
[0004] As many card issuers in this country choose to still support MSD cards, techniques that facilitate transaction security and user authentication for these cards are desirable. Improving card security for contactless legacy magnetic stripe cards is important, especially when interoperating with mobile phones or similar client devices. Exemplary interactions may include activation, authentication, or step-up authentication with mobile devices, mobile phones, and tablets. [Means for solving the problem]
[0005] In an exemplary embodiment, a secure data transmission system is disclosed that includes an MSD-compliant card ("card"), a mobile phone, and a server. The mobile phone may receive protected data from the card and transmit the protected data to the server for further analysis or action. The card may have a processor and a memory, and the card's memory may store a master key (or derived key), transmission data, and a counter value (and / or key derivative value). The server may have a processor and a memory, and the server's memory may store the master key. The card and the server may be in data communication using the mobile phone. The card may be configured to generate a derived key using the master key, the counter value (and / or key derivative value), and one or more cryptographic algorithms, and store the derived key in the card's memory. The card may also generate encrypted transmission data by encrypting the transmission data using one or more cryptographic algorithms and the derived key, and transmit the encrypted transmission data to the server using the mobile phone. The server is configured to generate a derived key based on the master key and the counter value (and / or key derivative value), and store the derived key in the server's memory. The server may keep the counter value (and / or the key derivative value) independently, or may receive it together with (or separately from) the encrypted transmission from the card. The server may use the replicated derived key to decrypt the encrypted transmission and perform further actions, such as authorizing an authentication step.
[0006] In one exemplary embodiment, the key derivation value may be provided by the user as a fingerprint, a numeric code, or a photograph. The user may provide the key derivation value to the card or mobile phone. In this embodiment, the card may use the user-provided key derivation value to generate a derived key. The card or mobile phone may send the user-provided derived value to a server, and the server may regenerate the derived key using the user-provided derived value.
[0007] In an exemplary embodiment, the card may include a derived key and a cryptographic algorithm. The card may generate a cryptogram using the derived key and a cryptographic algorithm (e.g., Visa® dCVV or MasterCard® CVC3). The card may send the cryptogram to a mobile phone, which may send the cryptogram to a server. The server may verify the cryptogram and authorize the transaction if the cryptogram is verified. In this exemplary embodiment, the derived keys are unique to each card. For example, at the BIN level, there may be a primary key (or master key). The derived key may be generated using an algorithm that operates on the primary key, the PAN, and the PAN sequence number. [Brief description of the drawings]
[0008] [Figure 1A] 1 illustrates a contactless card according to an exemplary embodiment. [Figure 1B] 1 illustrates an exemplary touchpad that includes an NFC tag on the underside of the touchpad. [Diagram 2] 1 illustrates a mobile phone according to an exemplary embodiment. [Diagram 3] 1 illustrates a data transmission system according to an exemplary embodiment. [Figure 4] 1 shows a flow chart for encrypting and transmitting sensitive data from a card to a server via a mobile phone. [Diagram 5] 1 illustrates exemplary hardware components for a server. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] An objective of some embodiments of the present disclosure is to incorporate one or more keys into contactless legacy magnetic stripe cards. The contactless card can perform authentication and many other functions that would otherwise require the user to carry a separate physical token in addition to the contactless card. By using a contactless interface, the contactless card can interoperate with a client device (such as a mobile phone). The client device can relay any encrypted data provided by the card to a backend server, which can then authorize various transactions, such as authenticating the user.
[0010] In an exemplary embodiment, the MSD card or contactless legacy magnetic stripe card (hereinafter "card") may comply with one or more of the ISO / IEC 7810, ISO / IEC 7811, ISO / IEC 7812, ISO / IEC 7813, ISO 8583, and ISO / IEC 4909 standards. These standards may define the physical properties of the card, including size, flexibility, location of the magnetic stripe, magnetic characteristics, and data format.
[0011] The size of the card may be the same as that of a payment card, credit card, or debit card. According to the ISO / IEC 7810 standard ID-1, the card dimensions are 85.60 x 53.98 mm (3.37 in x 2.13 in). However, cards according to these disclosures may have different sizes and the cards need not be implemented as payment cards.
[0012] In an exemplary embodiment, the card may include a magnetic stripe that may store data by altering the magnetism of iron-based magnetic particles in a band of magnetic material on the card. The magnetic stripe may be read by passing it in front of a magnetic read head. In one exemplary embodiment, there may be up to three tracks on a magnetic card, known as tracks 1, 2, and 3. A card reader in a POS system almost always reads track 1, track 2, and sometimes both, if one track is unreadable. The minimum cardholder account information required to complete a transaction may be present in both tracks.
[0013] In an exemplary embodiment, Track 1 may include information such as a primary account number ("PAN"), name, expiration date, service code, and optional data (e.g., a Pin Verification Key Indicator (PVKI), a Pin Verification Value (PVV), a Card Verification Value (CVV), or a Card Verification Code (CVC)). In an exemplary embodiment, Track 2 may include a PAN, expiration date, service code, and optional data (e.g., the same as Track 1).
[0014] The card may contain processing circuitry for storing and processing information, which may include a processor, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and tamper detection hardware.
[0015] The storage of information may take place in the memory of the processing circuit, which may be a read-only memory, a write-once-read-many memory, or a read / write memory, e.g., RAM, ROM, and EEPROM. These memories may store information, including information stored in any one of the tracks of the card, and the card may include one or more of these memories. Contactless cards may transfer information stored in these memories of the contactless card using NFC technology. Read-only memories are programmable at the factory to be read-only or programmable only once. Programmability only once offers the opportunity to be written only once and then read multiple times. Write-once / read-many memories are programmable at a time after the memory chip leaves the factory. Once the memory is programmed, it cannot be rewritten, but it can be read multiple times. Read / write memories are programmable and reprogrammable multiple times after leaving the factory. It can be read any number of times.
[0016] The card's memory may be divided into several zones, each providing a different level of security. The card's processor may keep track of which memory addresses belong to which zone and the circumstances under which each zone is accessible. The card's processor may also process information and store it in memory. In one exemplary embodiment, the card's memory may be divided into four zones: a secret zone, a confidential zone, a usage zone, and a public zone.
[0017] The private zone may be used to store information that is only available to the processor itself, e.g., passwords, cryptographic keys. Information stored in this zone is not readable outside the card. In some embodiments, the private zone may be implemented with a separate processor capable of performing cryptographic functions. Cryptographic keys may be sent into or generated in the private zone, and in either case the keys may be stored in the private zone and used to support cryptographic services. If necessary, cryptographic keys may be exported from the private zone.
[0018] In an exemplary embodiment, the card may be a JavaCard that may contain one or more applets. The applets may be protected by a firewall and data may be assigned to the applets for storage. Data may be stored in an EEPROM flash memory transactionally, such that if power is interrupted and the write is not completed, the content remains the same as before.
[0019] The confidential zone may be used to store a list of all transactions made with the card. The confidential zone may have password protection. In an exemplary embodiment, the password is known only to the card issuer, who may check the card's history as evidence of system abuse. The confidential zone may have read-only access restrictions so that information stored in this zone cannot be changed, e.g., the transaction list cannot be changed. The usage zone may be used to store information that may be periodically updated or changed. Depending on the sensitivity of the data, a password may be implemented in this zone. The usage zone may have both read and write access protected by a password. The public zone may be used to maintain non-confidential information, such as the card issuer's name and address. The public zone may have read-only access, without a password.
[0020] In an exemplary embodiment, the card may store one or more key diversification values. The card may use these key diversification values to generate a diversified key. For example, the card may store a counter value. The counter value may be derived from a counter module, which may increment the counter value each time the card interacts with a mobile phone or a server. As another example, the card may store multiple fingerprints and store a derived value associated with each fingerprint. The card may include a fingerprint reader, and when a user scans a finger at the fingerprint reader, the card may determine whether any of the stored fingerprints were scanned at the fingerprint reader. The card may select a derived value associated with the scanned fingerprint. The selected derived value may be used to generate a derived key. As yet another example, the card may store a set of multiple random derived values. As yet another example, the card may receive a derived value from an input device attached to the card (e.g., a keypad or fingerprint reader) or from a mobile phone via contactless transmission.
[0021] 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 to the card. Other cards may be contactless, i.e., the card may communicate wirelessly with the client device. A contactless card may be a credit card that includes a magnetic stripe or a radio-frequency identification ("RFID") tag. Some contactless cards may include both a magnetic stripe and an RFID tag. Some cards may be compatible with wireless communication technologies such as NFC, Bluetooth, Wi-Fi, etc.
[0022] The terminal may communicate with the contact card by establishing electrical contact between the card and the terminal. Thus, the contact card may have a contact area with several contact pads. The area of this area is approximately 1 square centimeter (0.16 square inches). Establishing contact between the pads and the terminal may be achieved by inserting (or temporarily bringing) the contact card into the terminal. Using the electrical connection, the terminal may send signals to the card, and in response, the card may transmit its information to the terminal. Generally, contact cards do not include a battery. However, in some embodiments, the contact card may include a battery.
[0023] When a contactless card is held in the vicinity of a client device, the client device can communicate with the contactless card. The client device can read the contactless card over short distances using near-field communication ("NFC") technology that uses radio frequency induction. The contactless card may include an inductor to take a portion of the incoming radio frequency interrogation signal transmitted by the terminal, rectify it, and use it to power the card's processing circuitry. In this manner, the contactless card may function without an internal power source. However, in some embodiments, the contactless card may include an internal power source.
[0024] FIG. 1A illustrates a contactless card 100 according to an exemplary embodiment. In this embodiment, the card 100 may be a payment card issued by a service provider 101, which may be displayed on the front or back of the card 100. The size of the card 100 may conform to the ID-1 of the ISO / IEC 7810 standard, i.e., 85.60×53.98 mm. The card 100 may include a contact pad 102 for establishing contact with a contact terminal. The card 100 may include processing circuitry, an antenna, and other components not shown in FIG. 1A. These components may be provided behind the contact pad 102. The card 100 may include various identification information 103 displayed on the front or back of the card. The card 100 may include a magnetic stripe or tape, which may be provided on the back of the card.
[0025] In an exemplary embodiment, the card comprises a Near Field Communication ("NFC") tag. In some embodiments, the NFC tag may include processing circuitry for storing and processing information modulating and demodulating radio frequency signals (typically signals received from a client device, reader / writer, or scanner). The NFC tag may include anti-collision algorithms, authentication and encryption mechanisms, RF interface circuitry, and an RF antenna operating at 13.56 MHz. The RF antenna may receive and transmit signals. Additionally, the RFID tag may include a power source or may include means for harvesting DC power from an incoming terminal signal. These means may include a modulator, a voltage regulator, a reset, and a connection to the antenna. The antenna may be an electric dipole or coil antenna.
[0026] There may be several types of NFC tags, for example, active tags, battery-backed passive tags, and passive tags. An active tag may be electrically connected to a power source, such as a battery, which may power an integrated circuit. As a result, an active tag may periodically transmit information stored on the tag as a signal. A battery-backed passive tag may have an activatable power source electrically connected to it, which may be activated when the tag is exposed to a signal from a terminal. A passive tag is not powered by a power source. Rather, the tag is energized by wireless energy transmitted to the tag by the terminal.
[0027] In an exemplary embodiment of a passive NFC tag, the tag relies on a signal from a client device to power on. The tag may include a modulator, a voltage regulator, a reset, and a connection to an antenna. The antenna may be an electrical dipole antenna or a coil antenna, and the tag's processing circuitry may be connected to the antenna. The type of antenna may be determined based on the frequency band used by the tag. Typically, electrical dipole antennas are used in ultra-high frequency tags, while short-wave tags use coil antennas. For example, the antenna for an NFC tag may be a simple dipole if the tag uses a frequency of 915 MHz, but the antenna may be a complex coil shape if the tag uses a frequency of 13.56 MHz. The antenna picks up signals from the terminal and transmits signals to the terminal. The connection from the terminal to the tag provides both the transmitted data and the power to operate the passive NFC tag.
[0028] 1B shows an exemplary contact pad 102 that includes an NFC tag on the back side of the contact pad 102. In this exemplary embodiment, the contact pad 102 may include several gold plated pads. On the back side of the contact pad 102 there may be a processing circuit 104 and an NFC tag. The NFC tag may include an antenna 105. In this exemplary embodiment, the processing circuit 104 is part of the NFC tag.
[0029] In some embodiments, the antenna of the card's NFC tag may be located inside the card, around the contact pad 102. In other embodiments, the card's NFC tag may include several antennas. For example, in addition to antenna 105, the card may include an antenna that extends throughout the card 100, around the contact pad 102. Other combinations are also possible. In some embodiments, the antenna may be external to the contact pad and processing circuitry. In some other embodiments, there may be an antenna integrated into the processing circuitry, and the antenna may be used with an external booster coil.
[0030] In an exemplary embodiment, the card's coil may act as a secondary winding of an air core transformer. The terminal may communicate with the card by interrupting power or amplitude modulation. The card may use gaps in the card's power connection to infer data sent from the terminal. The power connection is kept functional through a capacitor. The card may communicate in the reverse direction by switching a load or load modulation on the card's coil. Load modulation may be detected at the terminal's coil through interference.
[0031] In an exemplary embodiment, the card may include a keypad and / or a fingerprint reader. Using the keypad and / or fingerprint reader, a user may provide input to the card. For example, using the keypad, a user may provide the card with a code that the card can use as a key derivation value. Similarly, a user may scan and store the user's fingerprint on the card. The card may associate each fingerprint scanned and stored on the card with an encryption algorithm (or key derivation value). By scanning the user's fingerprint, the user may specify which encryption code the card can use.
[0032] The client device may be a cellular phone, mobile phone, or tablet. The client device can read information from the card and write information onto the card. In some embodiments, the client device may send information from the card to a host computer and write information from the host computer to the card. In some embodiments, the host computer may be the client device. The client device may provide power to the card and link the card's hardware interface to the host computer. Since the card's processor can control the actual flow of information to the card's memory, the client device may operate with only minimal processing power to send information to the host computer.
[0033] In some embodiments, the client device may include a processor and a transceiver. The transceiver may send and receive data to the card using the NFC protocol. The processor of the client device may decode any data received from the card. The client device may update, delete, or modify information stored on the card.
[0034] The client device may write data to the card by sending the data to the card's processor. The processor may process the data and store it in the card's memory. The client device may have two-way communication with the card as described in ISO 14443. The card may include an NFC tag. The two-way communication may be digitally encoded. There may be several frequency ranges and several proprietary formats for the two-way communication. ISO 14443 compliant cards govern the 13.56 Mhz frequency range (NFC).
[0035] The client device and the card may exchange messages that may include commands or data. For example, the client device may send a command message to the card, the card may process the command message in its processor, and the card may send a response message back to the client device. Each of the command and response messages may include data. The messages may include TLV (Type, Length, and Value) data and a command, such as a STORE_DATA command, that prompts the card to store the data included in the message.
[0036] FIG. 2 illustrates a mobile phone 200 according to an exemplary embodiment. In this exemplary embodiment, the mobile phone 200 may include a display screen 201, a camera 202, and a fingerprint scanner 203. The display screen 201 may be any type of display screen, for example, a touchpad LCD display screen. Using the touch screen 201, for example, a customer may input information into the mobile phone 200. As another example, by pressing a button on a graphical user interface, a user may instruct the camera 202 to take a picture of the user. The camera may store the picture and / or send the picture to a back-end server. As yet another example, a user may instruct the mobile phone 200 to scan the user's fingerprint using the fingerprint scanner 203. The mobile phone 200 may store the fingerprint and / or send the fingerprint to a card or a back-end server.
[0037] In an exemplary embodiment, the mobile phone may be an NFC compatible mobile phone, which may include an antenna for transmitting and receiving signals, a transceiver, and a processor for decoding data. In the case of a passive NFC tag, the mobile phone may send an energy field that activates the tag (or card) and powers its chip, allowing it to transmit or store data. The tag then converts the radio signal into usable power and responds to the mobile phone in the form of a radio signal. The signal may include the tag's identification and other information. Once the mobile phone receives the response, it translates the response and extracts all the information contained in the radio signal. The information collected from the tag is then transferred via a communication interface to a back-end server, where the data may be stored in a database or analyzed by the server. The mobile phone may update, delete, or modify the information stored on the card.
[0038] In the exemplary embodiment of FIG. 2, mobile phone 200 is equipped with one or more antennas (not shown) that enable the device to read information from and write information to contactless cards.
[0039] In these disclosures, the terms client device, mobile phone, reader / writer, scanner, and terminal are used interchangeably and all refer to devices capable of scanning cards and / or writing information to cards. In some embodiments, the mobile phone may be connected to a back-end server. In other embodiments, the mobile phone may be integrated into the back-end server.
[0040] In an exemplary embodiment, the mobile phone may include one or more of a fingerprint reader, a camera, and an application for receiving input from a user (e.g., a PIN code, a key derivation value, or an identification number). The mobile phone may send any input provided by the user to a backend server and the card, e.g., for the purpose of key derivation. For example, the backend server may store multiple fingerprints associated with a user, and the server may associate each fingerprint with an encryption algorithm. When scanning the card at the mobile phone, the mobile phone may receive the user's fingerprint (or other information, e.g., a photo or a PIN number) and send this information to the backend server. Using this information, the backend server may determine which encryption algorithm was used in the key derivation process.
[0041] When using symmetric encryption algorithms, such as encryption algorithms, hash-based message authentication code (HMAC) algorithms, and cipher-based message authentication code (CMAC) algorithms, it is important that the key remain 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.
[0042] It is also important that the same key is not used too many times. If a key is used or reused too 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 a cryptographic algorithm with the same key. The more data the attacker has that has been processed with the same key, the more likely the attacker will be able to discover the value of the key. Frequently used keys can be included in a variety of different attacks.
[0043] Also, each time a symmetric encryption algorithm is run, it can leak information about the key used during the symmetric encryption operation, e.g., side channel data. Side channel data may include minute-by-minute power fluctuations that occur as the encryption algorithm runs using the key. Enough measurements of the side channel data may be made to leak enough information about the key to allow it to be restored by an attacker. Using the same key to exchange data repeatedly would leak data processed by the same key.
[0044] However, by limiting the number of times a particular key is used, the amount of side-channel data an attacker can gather is limited, 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) may independently generate keys from a shared initial master symmetric key in combination with a counter value, thereby periodically replacing the shared symmetric key, relying on any form of key exchange to keep the parties synchronized. By periodically changing the secret symmetric key shared by the sender and receiver, the attacks described above are made impossible.
[0045] 3 shows a data transmission system according to an exemplary embodiment. The system 300 may include a card 100 and a mobile phone 200 that communicates with one or more servers 500, for example via a network. The system 300 may be configured to implement a key derivation algorithm. For example, a sender (e.g. a card) and a receiver (e.g. a back-end server) may wish to exchange data (e.g. sensitive data) via the mobile phone 200.
[0046] In some embodiments, the card 100 and the server 500 may be provided with the same master symmetric key. The symmetric key may be kept secret from all parties other than the card 100 and the server 500 involved in the exchange of secure data. It is further understood that some of the data exchanged between the card 100 and the server 500 includes at least a portion of data that may be referred to as sensitive data, a counter value, or other types of data (e.g., a key derived value). The counter value may include a number that changes each time data is exchanged between the card 100 and the server 500. In this disclosure, the counter value and the key derived value may be used to indicate the same value or different values, both of which are within the scope of this disclosure.
[0047] 4 shows a flow chart for encrypting and transmitting sensitive data from card 100 to server 500 via mobile phone 200. When card 100 is preparing to process the sensitive data with a symmetric cryptographic operation, in step 410, card 100 may update a counter. Both card 100 and server 500 may store a value representing the counter. This value may be updated every time card 100 and server 500 interact.
[0048] In step 420, the card 100 may select an appropriate symmetric encryption algorithm. The symmetric encryption algorithm may include at least one of a symmetric encryption algorithm, an HMAC algorithm, and a CMAC algorithm. The card 100's algorithm selection may be based on input, which may be provided by data stored on the card 100 (e.g. a counter value), data received from a user (e.g. an input pad on the card 100), or data provided by the mobile phone 200 or the server 500.
[0049] In some embodiments, the symmetric algorithm may include any symmetric encryption algorithm used to generate a derived 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, and 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 necessary to generate a key of sufficient length.
[0050] In step 430, the card 100 may generate a derived key. For example, the derived key may be generated by encrypting a counter value (i.e., a key derivative value) with a selected symmetric encryption algorithm using the master symmetric key, thereby generating a derived symmetric key. As another example, the master key and the key derivative value may be provided as inputs to an encryption algorithm, the output of which may be a derived (symmetric) key. The derived symmetric key may be used to process the sensitive data before transmitting the result to the server 500 via the mobile phone 200.
[0051] In step 440, the sensitive data may be protected using one or more cryptographic algorithms and one or more derived keys. The derived keys generated in step 430 may be used with one or more cryptographic algorithms to protect the sensitive data. In some embodiments, multiple cryptographic operations may be performed using the derived symmetric keys prior to transmission of the protected data. For example, the data may be MACed using a first derived session key, and the resulting output may be encrypted using a second derived session key to generate the protected data. The cryptographic algorithm may be selected using an algorithm selection technique.
[0052] In one exemplary embodiment, the sensitive data may include data similar to that stored in track 1 or track 2 of a magnetic stripe card. In another exemplary embodiment, the sensitive data may include a counter value. In yet another exemplary embodiment, the sensitive data may include other data provided by card 100 or mobile phone 200, such as a number entered via the keypad of card 100 or a photograph captured by mobile phone 200.
[0053] In step 450, the protected data (i.e., the sensitive data protected in step 430) may be sent to the mobile phone 200, which may send the protected data to the server 500. In step 460, the server 500 may 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 may be the same derived symmetric key value generated by the card 100. For example, the server 500 may replicate the derived key generated in the card 100 and may use the replicated derived key to decrypt the protected data. As another example, the server 500 may independently generate its own copies of the first and second derived session keys using the counter value. The server 500 may then decrypt the protected data using the second derived session key, which reveals the output of the MAC generated by the card. The server 500 may then process the resulting data by a MAC operation using the first derived session key.
[0054] In one embodiment, server 500 may use the derived key to decrypt the protected sensitive data, step 470. In another embodiment, server 500 may use the derived key along with one or more cryptographic algorithms to verify the protected data, step 470, and the original data may be verified, step 480. For example, if the output of the MAC operation matches the MAC output revealed by decryption, the data may be considered valid.
[0055] The next time sensitive data needs to be transmitted from the card 100 to the server 500 via the mobile phone 200, a different counter value may be selected to generate a different derived symmetric key. By processing the counter value with the master symmetric key and the same symmetric encryption algorithm, both the card 100 and the server 500 may independently generate the same derived symmetric key. This derived symmetric key, but not the master symmetric key, is used to protect the sensitive data.
[0056] Both the card 100 and the server 500 each initially possess a shared master symmetric key. The shared master symmetric key is not used to encrypt the original secret data. The derived symmetric key is generated independently by both the card 100 and the server 500, so it is never transmitted between the two parties. Thus, an attacker cannot intercept the derived symmetric key, and an attacker cannot see any data processed by the master symmetric key. As a result, side channel data leakage with respect to the master symmetric key is reduced. The operation of the card 100 and the server 500 may also be governed by symmetry requirements regarding how frequently a new derived value, and therefore a new derived symmetric key, is generated. In one embodiment, a new derived value, and therefore a new derived symmetric key, may be generated for every exchange between the card 100 and the server 500.
[0057] In some embodiments, the key derivation value may include a counter value. Other non-limiting examples of the key derivation value may include a random nonce generated and transmitted from the card 100 to the server 500 each time a new derived key is needed, the entire counter value transmitted from the card 100 to the server 500, a portion of the counter value transmitted from the card 100 to the server 500, a counter maintained independently by the card 100 and the server 500 but not transmitted between the two devices, a one-time passcode exchanged between the card 100 and the server 500, and a cryptographic hash of secret data. In some embodiments, one or more portions of the derived value may be used by the parties to generate multiple derived keys. For example, a counter may be used as the key derivation value. Additionally, a combination of one or more of the exemplary key derivation values described above may be used.
[0058] In another embodiment, a portion of the counter may be used as the key derivation value. If multiple master key values are shared between the parties, multiple derived key values may be obtained by the systems and processes described herein. A new derived value, and therefore a new derived symmetric key, may be generated as often as needed. In the most secure case, a new derived value may be generated for each exchange of sensitive data between the card 100 and the server 500. In practice, this may generate one-time-use keys, such as single-use session keys.
[0059] In one exemplary embodiment, the key derivation value may be a counter value, however, in other exemplary embodiments, the key derivation value may be determined based on input provided by a user in addition to or instead of the counter value.
[0060] For example, a user may specify a numeric code using a keypad on a mobile phone screen. The mobile phone may transmit this numeric code as a key derivation value to the card and the server. As another example, a user may specify a numeric code using a keypad on the card. The card may use this numeric code as a key derivation value. The card may transmit this derived value to the mobile phone, which may then transmit the code to the server. The numeric code may be encrypted when transmitted to the mobile phone. As another example, a user may provide a fingerprint on a fingerprint reader on the card or mobile phone. Using the fingerprint, the card or mobile phone may determine a key derivation value. For example, when a user sets up a fingerprint on a mobile phone, during the setup, the user specifies an alphanumeric value for each finger the user scans. The mobile phone may store each fingerprint and the alphanumeric value in association with each other. Then, when the user wants to authorize a transaction, the user may scan the user's finger and tap the card on the mobile phone. The mobile phone may transmit the key derivation value associated with the fingerprint to the card and the server. Both the card and the server may use the key derivation value to generate a derived key.
[0061] As another example, a user may scan their finger on the card. In this example, when the user scans their finger, using the card's keypad, the user may specify a key derivation value associated with each fingerprint provided by the user. When the user then scans their finger on the card, the card uses the associated key derivation value in an encryption operation. The card may send the encrypted data and the key derivation value to the mobile phone, which may then send the key derivation value to the server. In one example, during setup, the user may scan their finger on the card (or mobile phone). Once setup is complete, the user may scan the card on the mobile phone. The card (or mobile phone) may send the fingerprint and key derivation value association to the mobile phone (or card). In this example, when the user wants to authorize a transaction, the user may scan their fingerprint on the card and mobile phone, and no derivation value needs to be sent between the mobile phone and the card.
[0062] In an exemplary embodiment, the card and server may use the fingerprint association for encryption algorithm selection. For example, a user may define an association between each fingerprint and an encryption algorithm. When a user scans his / her finger on a mobile phone (or card), either the mobile phone or the card may determine the defined encryption algorithm associated with the scanned fingerprint.
[0063] In an exemplary embodiment, the mobile phone is configured to take a picture of the user and transmit the user's picture to a server. The server may determine a key derivation value and / or an encryption algorithm based on the picture. In an embodiment, when the server receives the user's picture, the server may first perform a facial recognition function to determine whether the picture belongs to the user of the card. If the server determines that the picture belongs to the user, the server may determine the user's facial expression in the picture. For example, if the user smiles, the server may associate the user's facial expression with a first derived value and / or a first encryption algorithm. However, if the user closes his or her eyes, the server may associate the user's facial expression with a second derived value and / or a second decryption algorithm. The server may then transmit the derived value and / or decryption algorithm associated with the facial expression to the mobile phone, and the mobile phone may transmit the derived value and / or decryption algorithm to the card. The card may generate a derived key using the associated derived value and / or select the associated decryption algorithm for encryption of sensitive data. In another embodiment, the server may determine the color of the user's outfit and determine the derived value and / or encryption algorithm based on the color of the outfit.
[0064] In one exemplary embodiment, the mobile phone may send a photo of the user to a server, and the server may send a hash of the photo to the mobile phone. The mobile phone may send the hash of the photo to the card. The card may use the hash of the photo as the derived value.
[0065] In one exemplary embodiment, the derived value may be selected based on a fingerprint input provided by the user and the encryption algorithm may be selected based on a photograph sent by the mobile phone to the server. For example, using the fingerprint, the mobile phone may determine the derived value and send this value to both the card and the server. Additionally, using the photograph, the server may determine the encryption algorithm. The server may send the selected encryption algorithm to the mobile phone, and the mobile phone may send the selected encryption algorithm to the card.
[0066] In one exemplary embodiment, the derived value may be a combination of multiple derived values, for example, a cryptographic combination of a derived value derived using a fingerprint and a derived value derived using a photograph of the user.
[0067] 5 illustrates exemplary hardware components for a server. Computer system 500, or other similarly configured computer systems, may include and execute one or more subsystem components for performing the functions described herein, including the various flow process steps described above. Similarly, mobile devices, cellular phones, smartphones, laptops, desktops, notebooks, tablets, wearable devices, servers, etc., including some of the same components of computer system 500, may execute applications (or software) and perform the steps and functions described above. Computer system 500 may connect to a network 514, such as the Internet, or other networks, to receive queries, obtain data, and transmit information and incentives as described above.
[0068] Computer system 500 typically includes memory 502, secondary storage 504, and a processor 506. Computer system 500 may include multiple processors 506 and may be configured as multiple, for example, blade servers or other known server configurations. Computer system 500 may also include network connectivity devices 508, display devices 510, and input devices 512.
[0069] The memory 502 may include a RAM or similar type of memory, which may store one or more applications for execution by the processor 506. The secondary storage 504 may include a hard disk drive, a floppy disk drive, a CD-ROM drive, or other type of non-volatile data storage. The processor 506 executes applications as described herein. The applications may be stored in the memory 502 or the secondary storage 504, or may be received from the Internet or other network 514. The processing by the processor 506 may be implemented as software, such as software modules, for execution by a computer or other machine. These applications preferably include executable instructions to implement the system and subsystem component functions and methods described above and illustrated in the drawings of this application. The applications preferably provide a graphical user interface (GUI) through which a user may view and interact with the subsystem components.
[0070] Computer system 500 may store one or more database structures in secondary storage 504, for example, to store and retain information needed to perform the functions described above. Alternatively, such information may reside in a storage device separate from these components.
[0071] It is also noted that the processor 506 may execute one or more software applications to provide the functionality described herein, specifically, one or more software applications to execute and perform the steps and functions in the process flows described above. Such processes may be implemented in software, such as software modules, for execution by a computer or other machine. The GUI may have a format generated as, for example, a web page in HyperText Markup Language (HTML), Extensible Markup Language (XML), or any other format suitable for presentation on a display device, depending on the application used by a user to interact with the computer system 500.
[0072] The input device 512 may include any device for inputting information into the computer system 500, such as a touch screen, keyboard, mouse, cursor control device, microphone, digital camera, video recorder, or camcorder. The input and output devices 512 may be used to input information into the GUI during the implementation of the methods described above. The display device 510 may include any type of device for presenting visual information, such as a computer monitor or flat screen display (or a mobile device screen). The display device 510 may display the GUI and / or may display output from the subsystem components (or software).
[0073] Examples of computer system 500 include a dedicated server computer such as a blade server, a personal computer, a laptop computer, a notebook computer, a palmtop computer, a network computer, a mobile device, or any processor-controlled device capable of running a web browser or other type of application to interact with the system.
[0074] Although only one computer system 500 has been shown in detail, system 500 may use multiple computer systems or servers as necessary or desired to support users, and may use backup or redundant servers to prevent network downtime in the event of failure of a particular server. Additionally, while computer system 500 has been illustrated with various components, those skilled in the art will recognize that the system may include additional or different components. Additionally, while aspects of the embodiments consistent with the above have been described as being stored in memory, those skilled in the art will recognize that these aspects may be stored in or read from other types of computer program products or computer readable media, such as a hard disk, floppy disk, or CD-ROM, or other forms of secondary storage including RAM or ROM. The computer readable media may include instructions for controlling computer system 500 to perform particular methods, such as those described above.
[0075] The present disclosure should not be limited with respect to the specific embodiments described herein, which are intended to be illustrative of various aspects. As may be apparent, numerous modifications and variations can be made without departing from the spirit and scope thereof. In addition to those recited herein, functionally equivalent methods and apparatuses within the scope of the present disclosure may become apparent from the description of the exemplary embodiments set forth above. Such modifications and variations are intended to be included within the scope of the appended claims. The present disclosure should be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. It should also be understood that the terms used herein are for the purpose of describing particular embodiments only, and are not intended to limit the present invention.
Claims
1. A method for detecting a magnetic stripe data (MSD) compliant contactless card, comprising: receiving an algorithm selection value; the memory is configured to store a card key, transmission data, and the algorithm selection value; selecting, by the contactless card, a cryptographic algorithm based on the algorithm selection value; generating a derived key by the contactless card using the card key and the cryptographic algorithm; the contactless card encrypts the transmission data using the derived key to generate encrypted transmission data; and transmitting the encrypted transmission data by the contactless card. method.
2. The memory further stores a counter value; the derived key is generated using the card key, the encryption algorithm, and the counter value; The method of claim 1.
3. The method further includes a client application including instructions for execution on a client device transmitting an algorithm selection value to the contactless card; The client device includes a client device processor, a client device memory storing a plurality of algorithm selection values, and a client device transmitter; The above method is receiving the encrypted transmission data from the contactless card by the client application; and the client application transmitting the encrypted transmission data to a server. The method of claim 1.
4. The memory further stores a key derivation value; the derived key is generated using the card key, the cryptographic algorithm, and the key derivation value. The method of claim 1.
5. The key derivation value includes an alphanumeric code, The method of claim 4.
6. The contactless card further includes an input pad; the algorithm selection value is received via the input pad; The method of claim 1.
7. The algorithm selection value includes biometric data. The method of claim 1.
8. The biometric data includes at least one selected from the group of data associated with a photograph and data associated with a fingerprint. The method of claim 7.
9. The contactless card further includes a fingerprint reader. data associated with the fingerprint is received via the fingerprint reader; The method of claim 8.
10. A system including a processor and memory, and including a magnetic stripe data (MSD) compliant contactless card, comprising: The memory stores a card key, transmission data, and an algorithm selection value; The above contactless cards are receiving an algorithm selection value; selecting a cryptographic algorithm based on the algorithm selection value; generating a derived key using said card key and said cryptographic algorithm; encrypting the transmission data using the derived key to generate the encrypted transmission data; configured to transmit the encrypted transmission data; system.
11. The algorithm selection value includes biometric data. The system of claim 10.
12. The system further comprising a client application including instructions for execution on a client device; The client device includes a client device processor, a client device memory storing a plurality of algorithm selection values, and a client device transmitter; The client application is Sending an algorithm selection value to said contactless card; receiving the encrypted transmission data from the contactless card; Transmitting the encrypted transmission data to a server; The system of claim 10.
13. The client device further comprises a camera, The client application is Taking a picture of the user using the camera; Sending a photo of said user to said server; 13. The system of claim 12.
14. The system further comprises the server, The above server is receiving the photograph from the client application; performing facial recognition to determine whether the user's photograph belongs to the user associated with the contactless card; The system of claim 13.
15. The facial recognition method comprising: determining a facial expression of the user; The facial expression is associated with a key diversification value.
15. The system of claim 14.
16. The facial recognition method comprising: determining a facial expression of the user; The facial expression is associated with a cryptographic algorithm.
15. The system of claim 14.
17. The server comprises: receiving the photograph from the client application; Generate a hash of the above photo, Sending a hash of the photograph as a key diversification value to the client application; 15. The system of claim 14.
18. A computer program comprising a processor and a memory, the computer program comprising instructions for execution by a magnetic stripe data (MSD) compliant contactless card, the computer program comprising: The memory stores a card key, transmission data, and an algorithm selection value; The instructions, when executed, cause the contactless card to perform a procedure including the following operations: The above operation is receiving an algorithm selection value; selecting a cryptographic algorithm based on the algorithm selection value; and generating a derived key using the card key and the cryptographic algorithm; encrypting the transmission data using the derived key to generate the encrypted transmission data; transmitting the encrypted transmission data. Computer program.
19. The memory further stores a counter value; the derived key is generated using the card key, the encryption algorithm, and the counter value; 20. A computer program product as claimed in claim 18.
20. The memory further comprising: a key derivation value; the derived key is generated using the card key, the cryptographic algorithm, and the key derivation value.
20. A computer program product as claimed in claim 18.