1368 straw-poll : (was: Re: [ietf-dkim] Deployment Non-Scenario
7: Cryptographic Upgrade and Downgrade Attacks)
Douglas Otis
dotis at mail-abuse.org
Wed Feb 28 17:39:20 PST 2007
On Feb 28, 2007, at 4:41 PM, Arvel Hathcock wrote:
>> This protection depends upon a means for the signer to assert
>> which algorithm is deprecated, and what shiny new algorithm is
>> being offered.
>
> That doesn't follow at all. The *receiver* will decide what
> algorithms are and are not sufficient and when to act on that
> decision.
For sake of argument, imagine a new canonicalization algorithm has
been created that handles EAI style addresses. EAI defines twin UTF8
email addresses which might be modified, but are not yet fully
accommodated by DKIM. Left to verifier heroics, some poor choice
results in some implementations. Messages may appear to be unsigned
leaving recipients exposed to spoofing, or results in a possible
exploit. One can claim verifiers should not attempt heroics, but
implementers are dealing with an unforeseen situation not covered in
the initial specifications.
Rather than not signing with just the now problematic widely
supported signature algorithm, the signer decides to add two
signatures to the message. Rather than overlapping signatures which
might introduce unexpected problems when other signatures are also
added, a deprecation mechanism is defined and placed within the key
of the now deprecated signature. This mechanism simply defines which
tags and parameters must be found in the companion signature. This
approach can be used to deprecate _any_ of the signature related
algorithms, although such is not likely needed for hash and signature
algorithms.
The *verifier* should attempt to find the strongest mutually
supported algorithm supported by the *signer* and not just any
supported algorithm. Only the *signer* can offer a choice. Some
mechanism is need to prevent a bad actor from removing an option in a
manner not detected by the *verifier*. Overlapping signatures might
be a poor choice when defending against this type of problem. Header
order should not be assumed and can become even more confusing when
multiple domains are involved with twin email address header
assurances. Don't forget about the 'i=' limitation.
> And besides, the means by which a *sender* can assert which
> algorithm they like is to just stop signing with the one(s) they
> don't. Whether and when to do that is a decision the sender will
> have to make. I don't see how policy plays a role in any of this.
Suddenly dropping a widely deployed algorithm will cause most of
there messages appear to be unsigned. This is likely to be a worse
outcome than that of some exploit that might be problematic with some
vendors. By having a deprecation mechanism available, the signer
does not need to make the choice between a rock and a hard place. A
deprecation mechanism also allows broad protection once the new
algorithm is embraced by major providers, even when stragglers may
take years to upgrade.
-Doug
More information about the ietf-dkim
mailing list