Abstract:
A data-carrying device and methods of authenticating the same are disclosed. The data-carrying device is described as being capable of communicating via the Near Field Communications (NFC) protocol and may have one or more NFC Data Exchange Format (NDEF) records stored in its memory. The data-carrying device also comprises or has the ability to generate a signature that proves the data-carrying device is the authorized device for storing the one or more NDEF records. A data-carrying device that attempts to transmit an NDEF record without a valid signature may be identified as an unauthorized data-carrying device.

Description:
FIELD OF THE DISCLOSURE 
       [0001]    The present disclosure is generally directed toward creating and managing signatures for Near Field Communications (NFC) Data Exchange Format (NDEF) records. 
       BACKGROUND 
       [0002]    One type of identification technology employs Near Field Communications (NFC). NFC is a set of short-range wireless communication technologies that have devices operate at approximately 13.56 MHz and at rates ranging from 106 kbit/s to 848 kbit/s. NFC standards cover communications protocols and data exchange formats, and are based on existing radio-frequency identification (RFID) standards including ISO/IEC 14443 and FeliCa, each of which are hereby incorporated herein by reference in their entirety. The standards include ISO/IEC 18092, which is also incorporated herein by reference in its entirety, and those defined by the NFC Forum. 
         [0003]    Another type of technology currently gaining traction and emerging as a viable alternative to NFC is newer versions of the Bluetooth standard (e.g., Bluetooth 4), the entire contents of which are hereby incorporated herein by reference. Bluetooth is a wireless technology standard for exchanging data over short distances (using short-wavelength radio transmissions in the ISM band from 2400-2480 MHz) from fixed and mobile devices, creating personal area networks (PANs) with high levels of security. The primary difference between NFC technologies and Bluetooth technologies is that Bluetooth relies on powered devices for both sides of the communication whereas NFC facilitates communications between a powered device and a passive device (e.g., an NFC tag or credential). In other words, under NFC standards, one device can operate without an internal power source, such as a battery. 
         [0004]    There are currently three NFC operating modes defined by the NFC Forum: (1) Card Emulation Mode; (2) Reader/Writer Mode; and (3) Peer-to-Peer Mode. In the Card Emulation Mode, an NFC-enabled phone emulates a contactless card in accordance with ISO 14443 and/or ISO 15693, each of which are hereby incorporated herein by reference in their entirety. Typical applications of the Card Emulation Mode include payment, ticketing, and access control applications. 
         [0005]    In the Reader/Writer Mode, the NFC-enabled phone reads a tag and typically performs some function based on the information obtained from the read tag. Typical applications of the Reader/Writer Mode include reading posters with an NFC tag in proximity thereto, interactive advertising, launching mobile Internet (e.g., automated web-browser activation), automated Short Message Service (SMS), and automated call initiation. 
         [0006]    In the Peer-to-Peer Mode, two NFC-enabled phones, or similar types of devices, are allowed to exchange data with one another. Typical applications of the Peer-to-Peer Mode include setting up wireless settings (e.g., Bluetooth, Wi-Fi, etc.), sharing business cards, or sharing information between NFC-enabled phones. 
         [0007]    Current NFC tags carry NFC Data Exchange Format (NDEF) records, which have a static cryptographic signature to ensure the integrity of the data written to the tag. Unfortunately, this current approach has several weaknesses including clonability (moving the same data to another tag) and replay attacks (playing back the same static message again). 
       SUMMARY 
       [0008]    It is one aspect of the present disclosure to solve the problem of moving valid data from one standard NFC tag to another. In particular, an NDEF record is disclosed that can be created with information about the tag itself including a non-random Unique Identifier (UID) (e.g., MAC address, SIM card number, tag ID, IP address, etc.). In some embodiments, this data can be included in the signature that is calculated for the NDEF record such that the verifier of the NDEF record could compare the record and UID read from the tag to validate the binding via the signature. 
         [0009]    Another mechanism to prevent against cloning and replay attacks is disclosed whereby a dynamic signature (which can be based on a nonce sent by the reading device) can be calculated by the tag itself. Since this mechanism is independent of the tag UID, it allows for tags with random UIDs. 
         [0010]    In some embodiments, to perform a challenge response authentication, a nonce can be provided to the tag, which is ultimately included in the signature calculation. This nonce could be provided in the request to read the tag data or during a separate authenticate command. 
         [0011]    In some embodiments, the tag dynamic signature may be based on a Public Key Infrastructure (PKI) solution (e.g., RSA, ECDS, etc.) and hence also introduces the concept of a tag certificate. This certificate can be added into the standard NDEF security certificate chain so that the returned NDEF data containing the dynamic signature can be verified without any changes to the verification process of current standard NDEF specifications. 
         [0012]    The tag certificate could include the unique identifier of the tag (e.g., static UID). The response signature might also return the tag certificate. The introduction of the tag certificate would also allow the concept of a Tag Revocation Service (e.g., a Tag Revocation List distributed and used to check the validity of tag certificates) or Online Certificate Status Protocol (OCSP) online services. Since a reading device might be desirable to check the revocation status of a tag (e.g., without performing authentication), embodiments of the present disclosure also contemplate a command or combination of commands that simply returns the tag certificate without performing any other processes. 
         [0013]    The present disclosure will be further understood from the drawings and the following detailed description. Although this description sets forth specific details, it is understood that certain embodiments of the invention may be practiced without these specific details. It is also understood that in some instances, well-known circuits, components and techniques have not been shown in detail in order to avoid obscuring the understanding of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    The present disclosure is described in conjunction with the appended figures: 
           [0015]      FIG. 1  is a block diagram depicting a transaction system in accordance with embodiments of the present disclosure; 
           [0016]      FIG. 2  is a flow diagram depicting a method of generating a signature for an NDEF record in accordance with embodiments of the present disclosure; 
           [0017]      FIG. 3  is a flow diagram depicting an authentication process in accordance with embodiments of the present disclosure; 
           [0018]      FIG. 4  is a diagram depicting a first data structure in accordance with embodiments of the present disclosure; 
           [0019]      FIG. 5  is a diagram depicting a second data structure in accordance with embodiments of the present disclosure; and 
           [0020]      FIG. 6  is a flow diagram depicting a certification method in accordance with embodiments of the present disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the described embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims. 
         [0022]    Referring initially to  FIG. 1 , a transaction system  100  is depicted in accordance with embodiments of the present disclosure. The transaction system  100  is shown to include a reading device  104  and a data-carrying device  108 . The reading device  104  and data-carrying device  108  may be configured to exchange data over a wireless communication path  116  using any type of known or yet to be developed wireless communication protocol. In some embodiments, the devices  104 ,  108  may be configured to exchange data  112  with one another using an NFC protocol, a Bluetooth standard (e.g., Bluetooth 4), infrared, or the like. Where an NFC protocol is used, the data  112  may be stored as an NDEF record or collection of NDEF records. 
         [0023]    It should also be appreciated that the communication path  116  does not necessarily have to be wireless. For instance, a wire or cable (e.g., Universal Serial Bus (USB) cable) may be used to carry data between the devices  104 ,  108 . 
         [0024]    In some embodiments, the reading device  104  and data-carrying device  108  may each be equipped with NFC interfaces that enable the devices  104 ,  108  to exchange data in accordance with the NFC protocol. The devices  104 ,  108  may exchange data using any type of NFC communication mode (e.g., a Card Emulation Mode, a Reader/Writer Mode, or a Peer-to-Peer Mode). When operating in the Card Emulation Mode, the data-carrying device  108  may emulate a card and the reading device  104  may correspond to a reader of the data-carrying device. When operating in the Reader/Writer Mode, the reading device  104  may write data to the data-carrying device  108  or the data-carrying device may write data to the reading device  104 . 
         [0025]    In accordance with NFC standards, the devices  104 ,  108  may only be allowed to communicate data with one another when the physical distance between the devices  104 ,  108  is less than a predetermined distance. As an example, the devices  104 ,  108  can be configured to exchange wireless communications with one another via NFC as long as the devices are close enough to support such communications (e.g., between approximately 0.01 m and 0.5 m). If Bluetooth is employed, then the mobile devices  104 ,  108  may communicate with one another as long as the devices are between approximately 0.01 m and 2.0 m of one another. Of course, other protocols such as Wi-Fi, Zigbee, Wi-Max, and the like may be used to exchange data between devices  104 ,  108 . 
         [0026]    The data-carrying device  108  may correspond to any type of communication device such as a telephone, a mobile telephone, a cellular phone, a Personal Digital Assistant (PDA), a tablet, a thin client computing device, a netbook, a watch, a key fob, a portable card-shaped credential, or the like. Similarly, the reading device  104  may correspond to a telephone, a mobile telephone, a cellular phone, a PDA, a tablet, a thin client computing device, a netbook, a watch, a key fob, or the like. In some embodiments, the reading device  104  may correspond to a traditional access control reader that may or may not be mounted to a wall or permanent location. In still other embodiments, the reading device  104  may correspond to a mobile access control reader and/or writer. 
         [0027]    As shown in  FIG. 1 , the data-carrying device  108  may have data  112  maintained thereon (e.g., stored in memory of the data-carrying device  108 ). Although not depicted, the reading device  104  may also comprise data  112  stored thereon. In some embodiments, the data  112  may be used by the data-carrying device  108  to obtain access to one or more assets (e.g., logical and/or physical assets) protected by the reading device  104 . For instance, the data-carrying device  108  may provide some or all of the data  112  to the reading device  104  to access one or more assets protected by the reading device  104 . 
         [0028]    In some embodiments, some or all of the data  112  may be stored in a secure area of memory, such as a Secure Element (SE), a Secure Access Module (SAM), a Subscriber Identity Module (SIM) card, an Integrated Circuit (IC) card, or any other computer memory that is encrypted and/or physically tamper-proof As a non-limiting example, the data  112  be stored as an NDEF record or collection of NDEF records along with one or more signatures that can validate the NDEF record or NDEF records. Specifically, NDEF records are a light-weight binary format, used to encapsulate typed data. NDEF records are specified by the NFC Forum, for transmission and storage with NFC, however, NDEF records are transport agnostic. In some embodiments, an NDEF record may include one or more of: typed data, such as MIME-type media, a URI, or a custom application payload. More specifically, an NDEF record may be configured to contain a 3-bit TNF (Type Name Field) that provides high level typing for the rest of the record. The remaining fields are variable length and not necessarily present: type—detailed typing for the payload; id—identifier meta-data; and/or payload—the actual payload. 
         [0029]    With reference now to  FIG. 2  a method of generating a signature for an NDEF record will be described in accordance with at least some embodiments of the present disclosure. The method begins when it is determined that a new NDEF record is to be created and/or an NDEF record is to be updated (step  204 ). Thereafter, the method continues by determining information about the device (e.g., data-carrying device  108 ) on which the NDEF record will be stored (step  208 ). In some embodiments, the determining step may include determining a UID, a site code, a card type, information about a user of the device, a hash value generated with one or a combination of such information, an XOR value generated with one or a combination of such information, some other non-random data, or some other value generated from non-random data. 
         [0030]    The information determined in step  208  is then used to calculate a signature for the NDEF record (step  212 ). In some embodiments, the signature generated for the NDEF record or collection of NDEF records is generated by combining the determined information with some or all of the NDEF record. As a non-limiting example, the determined information may be a hash value generated with a combination of the determined information and the NDEF record. In other embodiments, the signature can simply be generated by calculating a hash value with the determined information only. In other embodiments, the signature can simply correspond to a concantenation of the different information obtained in step  208  or a concantenation of the determined information with the NDEF record. It should be appreciated that the mechanism(s) used to generate the signature can vary without departing from the scope of the present disclosure. 
         [0031]    Once the signature has been generated for the NDEF record, the signature is stored in the data-carrying device  108  along with the NDEF record (step  216 ). In some embodiments, both the NDEF record and signature may be stored in a secure area of memory. In other embodiments, the NDEF record may be stored in a secure area of memory while the signature may be stored in a non-secure area of memory. In some embodiments, the signature can be used to validate the binding of the NDEF record with the device on which the NDEF record is stored. As an example, the reading device  104  can validate the data-carrying device  108  as being the intended (and possibly sole) keeper of the NDEF record because the NDEF record was bound with the data-carrying device  108  via the signature. The utilization of such a signature effectively prevents the unauthorized moving valid data  112  from an authorized data-carrying device  108  to an unauthorized data-carrying device. 
         [0032]    Another mechanism that can be used to prevent cloning and/or replay attacks is to enable the data-carrying device  108  to generate a dynamic signature during an authentication process. With reference now to  FIG. 3  an authentication process will be described in accordance with at least some embodiments of the present disclosure. The method begins when either the reading device  104  or the data-carrying device  108  initiate an authentication process (step  304 ). In some embodiments, the authentication process is initiated by the reading device  104  when the data-carrying device  108  is placed within a predetermined distance from the reading device  104  (e.g., within a read range of the reading device  104 ). 
         [0033]    The method continues with the reading device  104  providing the data-carrying device with a nonce value, for example (step  308 ). While a nonce value may correspond to a random or pseudo-random number generated at the reading device  104 , a nonce word may be used instead of a nonce value. In other words, any arbitrary number or string may be provided to the data-carrying device  108  to perform the authentication process. It should also be noted that the nonce value can be provided in the request to read data from the data-carrying device  108  or it can be provided in a separate authenticate command (e.g., before or after the data  112  is read from the data-carrying device  108 ). 
         [0034]    Upon receiving the nonce value, the data-carrying device  108  may use the nonce value to generate a dynamic signature (step  312 ). In some embodiments, the nonce value is brought within a secure element (SE) of the data-carrying device  108  and the signature is calculated within the SE. The dynamically-generated signature is then provided back to the reading device  104  (step  316 ). It should be noted that since this mechanism can be independent of the data-carrying device  108 , this authentication protocol can be used for devices having random UIDs whereas the signature-creation process described in  FIG. 2  is suited for devices having non-random UIDs. 
         [0035]    The method continues with the data-carrying device  108  providing one or more NDEF records to the reading device  104  (step  320 ) and then the reading device  104  analyzing the NDEF record(s) and dynamically-generated signature (step  324 ). Many variations may occur in the execution of steps  308 ,  312 ,  316 ,  320 , and  324 . For example, the reading device  104  may first ask the data-carrying device  108  for one or more NDEF records and then ask the reading device  104  for a signature. The nonce value used by the data-carrying device  108  to generate the signature may be provided before or after the reading device  104  receives the NDEF records. As another example, the reading device  104  may first perform the authentication process (e.g., provide a nonce value to the data-carrying device and verify authenticity of the dynamic signature received back from the data-carrying device  108 ) prior to obtaining an NDEF record from the data-carrying device  108 . As still another example, the signature and NDEF record may be provided at the same time and the reading device  104  may validate both the signature and NDEF record at the same time. As still another example, the data-carrying device  108  may be configured to embed the nonce in the NDEF record and dynamically generate a signature. Other variants of timing will become apparent to those of ordinary skill in the art and it should be appreciated that the claims are not confined by the illustrative examples described herein. 
         [0036]      FIGS. 4 and 5  depict two examples of the structure in which the data  112  may be stored on the data-carrying device  108 .  FIG. 4  depicts a data structure having four data fields: a first data field  404  for a first NDEF record that describes the information obtained in step  208  (e.g., tag data, tag UID, etc.); a second data field  408  for a second NDEF record that include the nonce value; a third data field  412  for the actual data to be analyzed by the reading device  104 ; and a fourth data field  416  for the signature. As discussed above, the NDEF signature stored in the fourth data field  416  may be used to validate one of the other NDEF records stored in the data structure. Additionally or alternatively, the NDEF signature provides a validation that the NDEF records are used to validate the data-carrying device  108 . Specifically, the NDEF signature (whether dynamic or based on non-random data) can validate the binding between the NDEF record and the data-carrying device  108  that is intended or authorized to store the NDEF record. 
         [0037]      FIG. 5  depicts a data structure having three data fields: a first data field  504  for a first NDEF record that describes the information obtained in step  208  along with a nonce value (or some combination of the two values); a second data field  508  for the actual data to be analyzed by the reading device  104 ; and a third data field  512  for the signature. The data structure depicted in  FIG. 5  may correspond to a compressed version of the data structure depicted in  FIG. 4 . 
         [0038]    With reference now to  FIG. 6 , a certification method will be described in accordance with embodiments of the present disclosure. The method begins when the reading device  104  transmits a command to the data-carrying device for a tag certificate (step  604 ). In response to receiving the command from the reading device  104 , the data-carrying device  108  generates and transmits a tag certificate to the reading device  104  (step  608 ). In some embodiments, the tag certificate may correspond to a dynamically-generated signature, such as those described above. In some embodiments, the tag certificate may may correspond to a public signature from a public-private key pair. The reading device  104  (or a certification agency in communication with the reading device  104 ) may maintain the private key and the data-carrying device  108  may provide the public key corresponding to the private key in a key pair. In some embodiments, the tag certificate may have been added to the standard NDEF security certificate chain, so that an NDEF record containing the dynamic signature can be verified by the reading device  104  without any changes to the verification process defined in current NDEF specifications. In some embodiments, the tag certificate could include the non-random data (e.g., static UID). It should also be appreciated that the tag certificate could be provided to the reading device  104  during authentication (e.g., in step  316  or  320 ). 
         [0039]    Upon receiving the tag certificate, the reading device  104  may compare the tag certificate with a revocation list that has been provided or made available to the reading device  104  (step  612 ). In other embodiments, the reading device  104  may provide the tag certificate to a third party for comparison with a revocation list. Based on the comparison of the tag certificate with the revocation list, the reading device  104  or some other device may determine and execute one or more actions or decide to perform no action (step  616 ). As an example, if the tag certificate received from the data-carrying device  108  matches a tag certificate in a revocation list, then the reading device  104  or some other device may cause an alarm to be sounded, light one or more lights, the presenting data-carrying device  108  may be considered and treated as untrusted, security personnel may be notified, etc. More specifically, the tag revocation list may contain an identification of tag certificates that are either revoked or on hold. A tag certificate may be revoked irreversibly if it is discovered that the certificate authority improperly issued a certificate or if a private key is thought to be compromised. If this is the case, then the tag certificate may be added to the certificate revocation list. A tag certificate may also be considered temporarily invalid if the whereabouts of the certificate are unknown. The revocation list may also list these types of certificates that are currently being held. If a data-carrying device  108  presents a tag certificate that is listed on the revocation list, then actions consistent with identifying an untrusted data-carrying device  108  may be performed. 
         [0040]    It should be appreciated that while embodiments of the present disclosure have been described in connection with a revocation list, the present disclosure is not so limited. For instance, a white list may be used instead of or in combination with a revocation list. Any other type of black or white listing processes may be performed in connection with the tag certificates, dynamic signatures, and static signatures described herein. 
         [0041]    In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods and steps thereof may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, SIMs, SAMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software. 
         [0042]    Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments. 
         [0043]    Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function. 
         [0044]    Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. 
         [0045]    While illustrative embodiments of the disclosure have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.