21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

In addition, the user will need to keep some kind of physical token, like a sheet of<br />

one-time passwords (which will occasionally need to be refreshed) or a calculator to<br />

compute correct passwords. To avoid exposing the password if the server database is<br />

compromised, the user will also need to reinitialize the server from time to time (and<br />

update her calculator).<br />

These mechanisms do not provide their own secure channel. S/KEY, as specified,<br />

relies on MD4, which is now known to be cryptographically broken. If it’s used on<br />

an unencrypted channel, no information about the password is revealed, but an<br />

attacker can potentially hijack a connection.<br />

CRAM<br />

CRAM (Challenge-Response Authentication Mechanism) is a password-based protocol<br />

that avoids sending the password out over the wire by using a challenge-response<br />

protocol, meaning that the two ends each prove to the other that they have the<br />

secret, without someone actually sending the secret. Therefore, CRAM (which does<br />

not itself provide a secure channel) can be used over an insecure channel. However,<br />

it is still subject to a number of password attacks on the server, particularly because<br />

the server must store the actual password. Therefore, you should not use CRAM in<br />

new systems.<br />

Digest-Auth (RFC 2617)<br />

Digest-Auth is one of the authentication mechanisms specified for HTTP/1.1 and<br />

later (the other is quite weak). It does not provide a secure channel, and it provides<br />

only moderate protections against attacks on passwords (much of it through an<br />

optional nonce that is rarely used).<br />

SRP<br />

All of the mechanisms we’ve looked at so far have been password-based. None of<br />

them create their own secure channel, nor do they provide mutual authentication.<br />

SRP (Secure Remote Password) is a password-based mechanism that does all of the<br />

above, and it has a host of other benefits:<br />

Client-server authentication<br />

SRP not only allows a server to authenticate clients, but it also allows clients to<br />

know that they’re talking to the right server—as long as the authentication database<br />

isn’t stolen.<br />

Protection against information leakage<br />

SRP also prevents all but a minimal amount of information leakage. That is, an<br />

attacker can try one password at a time by contacting the server, but that is the<br />

only way he can get any information at all about the password’s value. Throttling<br />

the number of allowed login attempts to a few dozen a day should reasonably<br />

thwart most attacks, though it opens up a denial of service risk. You might<br />

368 | Chapter 8: Authentication and Key Exchange<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!