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.

See Also<br />

In many circumstances, the client won’t have the server’s public key in<br />

advance. In such a case, the server will often send a copy of its public<br />

key (or a digital certificate containing the public key) at Step 6. In this<br />

case, the client can’t assume that the public signing key is valid; there’s<br />

nothing to distinguish it from an attacker’s public key! Therefore, the<br />

key needs to be validated using a trusted third party before the client<br />

trusts that the party on the other end is really the intended server. (We<br />

discuss this problem in Recipes 7.1 and 10.1.)<br />

Recipes 7.1, 8.15, 8.16, 10.1<br />

8.19 Minimizing the Window of Vulnerability<br />

When Authenticating Without a PKI<br />

<strong>Problem</strong><br />

You have an application (typically a client) that is likely to receive from a server identifying<br />

information such as a certificate or key that may not necessarily be able to be<br />

automatically verified—for example, because there is no PKI.<br />

Without a way to absolutely defend against man-in-the-middle attacks in an automated<br />

fashion, you want to do the best that you can, either by having the user manually<br />

do certificate validation or by limiting the window of vulnerability to the first<br />

connection.<br />

Solution<br />

Either provide the user with trusted certificate information over a secure channel and<br />

allow him to enter that information, or prompt the user the first time you see a certificate,<br />

and remember it for subsequent connections.<br />

These solutions push the burden of authentication off onto the user.<br />

Discussion<br />

It is common for small organizations to host some kind of a server that is SSLenabled<br />

without a certificate that has been issued by a third-party CA such as Veri-<br />

Sign. Most often, such an organization issues its own certificate using its own CA. A<br />

prime example would be an SSL-enabled POP3 or SMTP server. Unfortunately,<br />

when this is the case, your software needs to have some way of allowing the client to<br />

indicate that the certificate presented by the server is acceptable.<br />

There are two basic ways to do this:<br />

438 | 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!