[ietf-dkim] Re: One space proposal
Tony Hansen
tony at att.com
Fri Aug 5 04:13:17 PDT 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
<Further discussion of this should move to ietf-dkim at mipassoc.org.>
One major modification I'd make is to NOT change the CRLF in the body.
This totally avoids the spoofing problems with changing the mime
structure when l= is used.
Tony Hansen
tony at att.com
Bryan Costales wrote:
>
> Others have pointed out the weakness of the "nowsp"
> standard for canonicalizing a message. Four items stand in the way of
> adoption of a stronger canonicalization routine:
>
> 1. Justification must be made for a stronger standard.
> 2. Additional text must be inserted into the draft.
> 3. A sample implementation or two must be supplied.
> 4. A consensus must be achieved to accept the above three.
>
> I will cover the first three items and leave the forth to feedback from
> this community.
>
> 1. Justification
>
> The nowsp form of canonicalization allows for a man-in-the-middle attack
> that can alter critical headers or the message body. For example, the
> following Subject header:
>
> Subject: Amoeba yeast
>
> Can be changed during transit into:
>
> Subject: Amo ebay east
>
> without altering or invalidating the hash. Similar attacks can be made
> against the body by rearranging text to form pictures or new phrases or
> simply to make the text an embarrassment to the sender. I won't give
> further examples, because they are easy to invent.
>
> The DKIM standard will suffer if such attacks happen after deployment.
> The more widespread DKIM becomes the more serious such attacks will become.
>
> 2. Wording
>
> I propose that the following wording appear in the draft:
>
> 3.4.3 The “onewsp” canonicalization algorithm
>
> The “onewsp” algorithm replaces each multiple contiguous SWSP in all
> lines to a single space and unwraps header field continuation lines.
> These rules MUST be applied in order.
>
> * Unwrap header field continuation lines so that individual header
> fields are processed as a single line. No SWSP should be removed during
> this step; in particular, implementations MUST NOT remove the colon
> between the header field name and header field value and MUST NOT remove
> the terminating CRLF on individual header fields.
> * Map all header field names (not the header field contents) to
> lower case. For example, convert “SUBJect: AbC” to “subject: AbC”.
> * Convert each contiguous sequence of one or more SWSP characters in
> the header field name and header field value into a single
> space character. SWSP is defined in [XINDX].
> * Convert each contiguous sequence of one or more SWSP in the body
> into a single space character. If one body line ends in SWSP and then next
> body line begins with SWSP, the ending and beginning sequences must be
> interpreted as a single combined sequence and both together replaced
> with a
> single space character.
> *One CRLF between the end of the last header field and the body is
> included in the hash computation and is not converted to a single space.
>
> INFORMATIVE EXAMPLE: A message reading:
>
> A: <SP> X <CRLF>
> B: <SP> Y <CRLF>
> <SP> Z <CRLF>
> <CRLF>
> C <CRLF>
> D <SP><TAB><SP> E <CRLF>
> <TAB><TAB> F <CRLF>
>
> is canonicalized to:
>
> a:<SP>X<SP>b:<SP>Y<SP>Z<SP><CRLF>C<SP>D<SP>E<sp>F<SP>
>
> After the body is processed, a single CRLF followed by the
> "DKIM-Signature" header field being created or verified is presented to
> the algorithm. The contents of the "b=" tag, if any, MUST be deleted,
> and the header field must be canonicalized according to the algorithm
> that is specified in the "c=" tag. Any final CRLF on the
> "DKIM-Signature" header field MUST NOT be included in the signature
> computation.
>
> 4. Benefits
>
> Adding a new algorithm can prove beneficial in several key ways:
>
> a) A single canonicalization strategy can be used for both headers and
> body.
> b) Critical headers, such as the Subject: header, can be protected from
> in-transit modification that would otherwise be undectable.
> c) The message body would be protected from malicious white space
> rearrangements.
>
> 3. Sample Implementation
>
> To illustrate how simple it is to implement this proposed "onewsp"
> standard, you may download sample code from:
>
> ftp://ftp.bcx.com/pub/bcx/onewsp.c
>
> Thank you for considering this matter,
>
> --Bryan Costales
> Senior Software Architect
> Goodmail Systems, Inc.
> http://www.goodmailsystems.com
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFC80nNxsSylYhzrRYRAhT7AKC/YQ+oLKq2jFcvjyZFdJMECLPbQwCfd2mo
9ReNRfVqCtkzGBLU+AuXhvs=
=c66j
-----END PGP SIGNATURE-----
More information about the ietf-dkim
mailing list