21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Discussion<br />

The most common use for confirmation requests is to ensure that an email address<br />

actually belongs to the person requesting membership on some kind of mass mailing<br />

list (whether it’s a mailing list, newsletter, or some other type of mass mailing). Joining<br />

a mass mailing list typically involves either sending mail to an automated recipient<br />

or filling out a form on a web page.<br />

The problem with this approach is that it is trivial for someone to register someone<br />

else’s email address with a mailing list. For example, suppose that Alice wants to<br />

annoy Bob. If mailing lists accepted email addresses without any kind of confirmation,<br />

Alice could register Bob’s email address with as many mailing lists as she could<br />

find. Suddenly, Bob would begin receiving large amounts of email from mailing lists<br />

with which he did not register. In extreme cases, this could lead to denial of service<br />

because Bob’s mailbox could fill up with unwanted email, or if Bob has a slow network<br />

connection, it could take an unreasonable amount of time for him to download<br />

his email.<br />

The solution to this problem is to confirm with Bob that he really made the requests<br />

for membership with the mailing lists. When a request for membership is sent for a<br />

mailing list, the mailing list software can send an email to the address for which<br />

membership was requested. This email will ask the recipient to respond with a confirmation<br />

that membership is truly desired.<br />

The simplest form of such a confirmation request is to require the recipient to reply<br />

with an email containing some nonunique content, such as the word “subscribe” or<br />

something similar. This method is easiest for the mailing list software to deal with<br />

because it does not have to keep any information about what requests have been<br />

made or confirmed. It simply needs to respond to confirmation responses by adding<br />

the sender’s email address to the mailing list roster.<br />

Unfortunately, this is not an acceptable solution either, because Alice might know<br />

what response needs to be sent back to the confirmation request in order for the<br />

mailing list software to add Bob to its roster. If Alice knows what needs to be sent,<br />

she can easily forge a response email, making it appear to the mailing list software as<br />

if it came from Bob’s email address.<br />

Sending a confirmation request that requires an affirmative acknowledgement is a<br />

step in the right direction, but as we have just described it, it is not enough. Instead<br />

of requiring a nonunique acknowledgment, the confirmation request should contain<br />

a unique identifier that is generated at the time that the request for membership is<br />

made. To confirm the request, the recipient must send back a response that also contains<br />

the same unique identifier.<br />

Because a unique identifier is used, it is not possible for Alice to know what she<br />

would need to send back to the mailing list software to get Bob’s email address on<br />

the roster, unless she somehow had access to Bob’s email. That would allow her to<br />

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