[ietf-dkim] canonicalized null body and dkim
Hector Santos
hsantos at santronics.com
Tue Jan 9 04:12:05 PST 2007
Charles Lindsey wrote:
> On Mon, 08 Jan 2007 17:27:49 -0000, Eric Allman <eric+dkim at sendmail.org>
> wrote:
>
> Moreover, there remains another case that is ambiguous. Consider:
>
> Field: foobar<CRLF>
> .<CRLF>
>
> That is a valid RFC 2822 message with NO <body> at all (which is NOT the
> same thing as an empty <body>). Let us apply your revised wording.
Unless there is some other different notation I am unaware of, it is
*not* a valid RFC 2822 message. I believe you meant:
Field: foobar<CRLF>
<CRLF>
.<CRLF>
Why is this important? Well, many reasons, but one good reason is that
there are lot of code that search for the first "\r\n\r\n" to find the
header/body separator, i.e, strstr(buffer, "\r\n\r\n");
So we can't continue trying to make sense of mal-formed messages.
> There is no body, so no action is needed.
But there is a body. It has a dot. Most likely an useless body, but
body nonetheless. Who knows? Maybe a "single dot" message means
something to some one other there. Maybe it means "Come Home, its late
and stop by the store and pick up some mike."
> An empty line is a line of zero
> length after removal of the line terminator.
>
> Not needed.
I think in this regard, being "specific is terrific".
> So what do we pass to the canonicalization? It doesn't say, but the only
> reasonable intpretation would be to pass <empty>. So it appears that an
> absent body canonicalizes differently to an empty body.
>
> ...
>
> But we still have the bizarre situation that an absent body is treated
> differently from an empty body. Can you please confirm that this was
> your intention?
I disagree it is "absent". It isn't. There is a dot. It could of been
a Q or a X, or Z or slash. Lets not begin making judgments on the
quality of message bodies.
As far as I am concern, we must resolve the deterministic design, not
the abstract design. The technique question for me was if the SIMPLE
cl4n must end with <CRLF> bytes. I see the following:
L=0, no hashing is done,
L=1, is not possible or is it?
L=2, means we have a NULL body according to Erik, or is it?
L=3, 1 byte message, or is it?
In other words, it is not technically impossible from a signing stand
point to perform a SIMPLE cl4n with a large body w/o <crlf>, and the
signer only hashes L=X bytes where X is less than the canonicalized text
size.
In other words, you can have 5000 bytes in the message body and still
say l=2.
According to Eric message, he cleared up this technique question for me.
During verification, you only need to canonicalized up to l=X size, you
don't need to worry about going any further in the feed.
---
HLS
More information about the ietf-dkim
mailing list