The present system/method utilizes features already present in RFID tags/transponders (e.g., memory, password capability) to provide a level of security for those tags against spoofing or cloning as well as to prevent tracking of tag holders by eavesdroppers. This technique is particularly appropriate to tags with limited security features, lower memory sizes, and longer reading range where surreptitious tracking of an RFID tag is a concern.
In an exemplary embodiment, the following data is generated for each tag to be programmed:
HMAC (keyed-Hash Message Authentication Code) is a type of message authentication code (MAC) calculated using a specific algorithm involving a cryptographic hash function in combination with a secret key. This MAC may be used to simultaneously verify both the data integrity and the authenticity of a message. Any iterative cryptographic hash function, such as MD5 or SHA-1, may be used in the calculation of an HMAC; the resulting MAC algorithm is termed HMAC-MD5 or HMAC-SHA-1 accordingly. The cryptographic strength of the HMAC depends upon the cryptographic strength of the underlying hash function, on the size and quality of the key and the size of the hash output length in bits. An iterative hash function breaks up a message into blocks of a fixed size and iterates over them with a compression function to generate a hash code or MAC.
The 96-bit EPC 106 is a unique tag ID value utilized in most passive UHF RFID applications, but this could be any unique program-selectable tag ID for any tag type.
The HMAC algorithm provides a framework for inserting various specific hashing algorithms such as SHA-256. The combined HMAC-SHA256 algorithm is intended to provide data origin authentication and integrity protection. The goal of HMAC-SHA256 is to ensure that the packet is authentic and cannot be modified in transit. Data integrity and data origin authentication as provided by HMAC-SHA-256 are dependent upon the scope of the distribution of the secret key. If the key is known only by the source and destination, this algorithm provides both data origin authentication and data integrity for packets sent between the two parties. In addition, only a party with the identical key can verify the hash code.
A screen display on terminal 104 is initially provided to enable writing the data specified above to a RFID tag 106 during initial tag security provisioning. In the present example, the tag user's driver's license or other identifying information is then entered as user data 107 and written to database 102. A notepad file or the like is adequate in this case. A second screen display may be used as a tag authentication screen. When a tag 106 is read by reader 105, the tag authentication screen displays the name and drivers license (or other identifying information) written on the tag if the tag ID 108 is found in the system database 102. If the ID is not found, then a message such as “access denied” or “ID not recognized” is displayed on terminal 104.
Optionally, at step 217, a symmetric signature 110 of the user data 107, using the Master Key and SHA256 for tamper detection, is created. At step 220, the 96-bit tag ID(EPC) is written to the tag. At step 225, the encrypted user data is written to the tag. At step 227, the optional symmetric signature 110 is written to the tag. At step 230, the generated access password 109 is written to the tag. The access password 109 is a 32-bit value written starting at the appropriate memory location.
Once all the desired tag fields have been programmed, a lock value is optionally written to the tag, at step 235. This operation password-protects the tag's user memory and the tag ID from being overwritten. It also protects reading and writing of the tag access password 109 without first providing the password. The password 109 is typically much more secure than a human-chosen password of the same length.
At step 325, if the tag ID 108 was found in the database 102, then a new tag ID (EPC) 106 is generated using the random number generator and also a new access password 109, and the data is re-encrypted as indicated above. At step 330, the new tag ID 108, data 107, and access password 109 are written back to the tag. At step 335, if any errors are detected during the operation, i.e. if the tag reads/writes fail, then a failure message is displayed to the user.
The present method changes the tag ID 108 on the tag after each use. As a result, the tag over-the-air response is different after each time data is written to the tag, meaning that the tag ID cannot be used to identify an individual tag between interactions with a reader.
While preferred embodiments of the disclosed subject matter have been described, so as to enable one of skill in the art to practice this subject matter, the preceding description is intended to be exemplary only, and should not be used to limit the scope of the disclosure, which should be determined by reference to the following claims.
This application claim benefit to and priority of Provisional Patent Application Ser. No. 60/908,996, filed Mar. 30, 2007, the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60908996 | Mar 2007 | US |