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.

Use across applications<br />

For some people, it is important to manage authentication centrally across a<br />

series of applications. In such a situation, authentication should involve a separate<br />

server that manages credentials. Kerberos is the popular technology for<br />

meeting this requirement, but a privately run public key infrastructure can be<br />

used to do the same thing.<br />

Patents<br />

Many people also want to avoid any algorithms that are likely to be covered by<br />

patent.<br />

Efficiency<br />

Other people may be concerned about efficiency, particularly on a server that<br />

might need to process many connections in a short period of time. In that situation,<br />

it could be important to avoid public key cryptography altogether, or to<br />

find some other way to minimize the impact on the server, to prevent against<br />

denial of service.<br />

Common mechanism<br />

It may also be a requirement to have authentication and key exchange be done<br />

by the same mechanism. This can improve ease of development if you pick the<br />

right solution.<br />

Economy of expression<br />

An authentication protocol should use a minimal number of messages to do<br />

work. Generally, three messages are considered the target to hit, even when<br />

authentication and key exchange are combined. This is usually not such a big<br />

deal, however. A few extra messages generally will not noticeably impact performance.<br />

Protocol designers like to strive to minimize the number of messages,<br />

because it makes their work more elegant and less ad hoc. Of course, simplicity<br />

should be a considered requirement, but then again, we have seen simple fivemessage<br />

protocols, and ridiculously complex three-message protocols!<br />

Security<br />

Security is an obvious requirement at the highest level, but there are many different<br />

security properties you might care about, as we’ll describe in the rest of this<br />

section.<br />

In terms of the security of your mechanism, you might require a mechanism that<br />

effectively provides its own secure channel, resisting sniffing attacks, man-in-themiddle<br />

attacks, and so on that might lead to password compromise, or even just the<br />

attacker’s somehow masquerading as either the client or server without compromising<br />

the password. (This could happen, for example, if the attacker manages to get the<br />

server password database.)<br />

On the other hand, you might want to require something that does not build its own<br />

secure channel. For example, if you are writing something that will be used only on<br />

the console, you will already be assuming a trusted path from the user to your code,<br />

Choosing an Authentication Method | 365<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!