CARVIEW |

|
USENIX Technical Program - Paper - Smartcard 99   
[Technical Program]
Authenticating Secure Tokens Using Slow Memory AccessJohn Kelsey Bruce Schneier
|
|
For example, for m = 1000 and n = 5, an attacker who eavesdrops on 322 authentications has a better than 0.5 probability of being able to impersonate the Token by answering a random challenge correctly.
This, of course, is not the most effective attack. A fraudulent Terminal will specifically query the Token to learn the memory locations that it does not know. Hence, a malicious Terminal can learn the entire contents of a Token in m/n queries. So for the parameters above, a malicious terminal that conducts 100 fraudulant transactions will have a better than 0.5 probability of being able to impersonate the Token. The Token owner, though, would have to be convinced to allow the Token to be used in 100 ineffectual transactions.
4 Extensions
4.1 A Button on the Token
Ideally, we'd have some user-interface mechanism on the Token, like a pushbutton.� The Token is willing to perform only once per button-push. Alternatively, the Token buzzes or lights up once per memory query answered.� This would make multiple queries much harder for the Terminal to make, since the Token owner could detect that the protocol was not proceeding as specified.
4.2 Reducing Storage Requirements in the Trusted Device
As written, the Trusted Device must store a complete copy of the Token's memory location. If this is too much memory, the Trusted Device could store the Token's ID information and a secret key known only to it (and not the token). The Token's memeory locations would then be the memory address encrypted with this secret key, and would have to be loaded onto the Token by the Trusted Device.
4.3 CRC Hardware on the Token
If the Token can afford CRC hardware, then queries can be handled using this alternate protocol:
- (1) The holder of the Token inserts it into the Terminal.
- (2) Terminal reads the header information from the Token.
- (3) Terminal sends this information over an encrypted link to the Trusted Device.
- (4) Trusted Device generates a random challenge and sends it back over the encrypted link to the Terminal.� This challenge consists of a list of n memory locations on the Token.
- (5a) The Terminal sends the Token a request for the n memory locations.
- (5b) The Token goes through the motions (and delay) of sending it out internally, but only outputs the 32-bit CRC of the n requested memory locations.�
- (6) The Trusted Device verifies this information; if it checks out, it believes that the Token is currently inserted into the Terminal.
Each memory location can now be 32 bits long, and even one unknown memory location in the query string prevents an attacker from succeeding in an impersonation attack. Note that this system works best if there are lots of Terminals under different entities' control.� If a Token only interacts with one Terminal every time it executes the protocol, then this system doesn't work very well.
4.4 Incrementing Values in the Token and Trusted Device
If we're worried about an attacker reverse-engineering and making lots of copies of the Token, then we have each query of memory location cause that memory location to increment by one, modulo 232, or rotate left one bit, or whatever else is cheap enough to be implemented.� Note that this update must occur on both the Token and the Trusted Device, and assumes that there is either only one Trusted Device or that the different Trusted Devices can communicate with each other securely to synchromize these updates.
This variant does not help against impersonation attacks.� What it does do is to make continued synchronization of those counterfeit Tokens very expensive and complex.� Now, if any memory location in the challenge string has been changed, the duplicated Token fails to give the correct answer.
4.5 Reducing the Amount of Trust in the Trusted Device
A given Trusted Device may be only partially trusted. Instead of having it store a complete listing of the Token's memory locations, it can be given a series of precomputed challenges in order and the right responses to be expected. (If we use the previous extension, this will work only for small numbers of different Trusted Devices.)
5 Security Analysis
The slow memory protocol is designed to frustrate a particular kind of attack. It is intended to provide security against an insecure reader trying to collect enough information from a token to be able to impersonate it. It does not provide security against someone reverse-engineering the token and cloning it (although the extension described in Section 4.2 considerably frustrates that attack in most circumstances), nor does it provide security in the event that the back-end database (the Trusted Device in the protocol) is compromised.
A more extensive security analysis will be in the final paper.
6 Applications
A complete discussion of applications, along with their security ramifications, will be in the final paper.
The most obvious applications are things like non-duplicable keys for locks and alarms, free passes or one-day (or k-day) coins, and login keys. In these applications, we are less concerned with a single person hacking the authentication device than the same single person being able to distribute a large number of them.
One of the most beneficial aspects of this protocol is that it works well with cryptography, even though it has no cryptography itself.� We can use a message authentication code such as HMAC [BCK96] in addition to this protocol, and if the MAC breaks, the memory trick still works.� Or course, all Trusted Devices must be trusted with copies of the memory maps.
7 Conclusions
Security countermeasures must be commensurate with the actual threats. In this paper we have presented a low-tech security solution that helps mitigate a specific threat, and can be used in conjunction with other cryptographic countermeasures.
8 Acknowledgments
The authors would like to thank Chris Hall for his helpful comments. Additionally, the authors would like to thank Niels Ferguson, who broke the MAC and subsequently inspired this research.
References
- [And94]
- R. Anderson, ``Why Cryptosystems Fail,'' Communications of the ACM, v. 37, n. 11, Nov 1994, pp. 32-40.
- [AK96]
- R. Anderson and M. Kuhn, ``Tamper Resistance - A Cautionary Note,'' Second USENIX Workshop on Electronic Commerce Proceedings, USENIX Press, 1996, pp. 1-11.
- [AN95]
- R. Anderson and R. Needham, ``Programming Satan's Computer,'' Computer Science Today: Recent Trends and Developments, LNCS #1000, Springer-Verlag, 1995, pp. 426-440.
- [BCK96]
- M. Bellare, R. Canetti, and H. Karwczyk, ``Keying Hash Functions for Message Authentication,'' Advances in Cryptology - CRYPTO '96 Proceedings, Springer-Verlag, 1996, pp. 1-15.
- [BDL97]
- D. Boneh, R.A. Demillo, R.J. Lipton, ``On the Importance of Checking Cryptographic Protocols for Faults,'' Advances in Cryptology-EUROCRYPT '97 Proceedings, Springer-Verlag, 1997, pp. 37-51.
- [BGW98]
- M. Briceno, I. Goldberg, D. Wagner, ``Attacks on GSM security,'' work in progress.
- [BS97]
- E. Biham and A. Shamir, ``Differential Fault Analysis of Secret Key Cryptosystems,'' Advances in Cryptology-CRYPTO '97 Proceedings, Springer-Verlag, 1997, pp. 513-525.
- [CP93]
- D. Chaum and T. Pederson, ``Wallet Databases with Observers,'' Advances in Cryptology - CRYPTO '92 Proceedings, Springer-Verlag, 1993, pp. 391-407.
- [DKL+99]
- J.-F. Dhem, F. Koeune, P.-A. Leroux, P. Mestre, J.-J. Quisquater, and J.-L. Willerns, ``A Practical Implementation of the Timing Attack,'' CARDIS '98 Proceedings, Spriger-Verlag, 1999, to appear.
- [Koc96]
- P. Kocher, ``Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems,'' Advances in Cryptology-CRYPTO '96 Proceedings, Springer-Verlag, 1996, pp. 104-113.
- [Koc98]
- P. Kocher, ``Differential Power Analysis,'' available online from https://www.cryptography.com/dpa/.
- [KSWH98]
- J. Kelsey, B. Schneier, D. Wagner, and C. Hall, ``Side Channel Cryptanalysis of Product Ciphers,'' ESORICS '98 Proceedings, Springer-Verlag, 1998, pp. pp 97-110.
- [McC96]
- J. McCormac, European Scrambling Systems, Waterford University Press, 1996.
- [RKM99]
- C. Radu, F. Klopfert, and J. De Meester, ``Interoperable and Untraceable Debit-Tokens for Electronic Fee Collection,'' CARDIS '98 Proceedings, Springer-Verlag, 1999, to appear.
- [Row97]
- T. Rowley, ``How to Break a Smart Card,'' The 1997 RSA Data Security Conference Proceedings, RSA Data Security, Inc., 1997.
- [Sch97]
- B. Schneier, ``Why Cryptography is Harder than it Looks,'' Information Security Bulletin, v. 2, n. 2, March 1997, pp. 31-36.
- [Sch98]
- B. Schneier, ``Cryptographic Design Vulnerabilities,'' IEEE Computer, v. 31, n. 9, September 1998, pp. 29-33.
- [SK97]
- B. Schneier and J. Kelsey, ``Remote Auditing of Software Outputs Using a Trusted Coprocessor,'' Journal of Future Generation Computer Systems, v.13, n.1, 1997, pp. 9-18.
Footnotes:
1 For other examples, see [CP93], [SK97], and [RKM99].
This paper was originally published in the
Proceedings of the 1st Workshop on Smartcard Technology, May 10-11, 1999, McCormick Place South Chicago, Illinois, USA
Last changed: 18 Mar 2002 ml |
|