-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
At the end of January Dave Crocker posted a review of the then current
"-01" version of draft-gondwana-dkim2-motivation. This document has now
been split into an "-02" and draft-gondwana-dkim2-headers (-01).
Rather belatedly this is a response to that review, albeit spread over
14 (sorry) emails... ">>" is a quote from our document, ">" a quote from
Dave Crocker ... lines that do not start with a ">" are me speaking.
- -=-=-=-=-=-=-=-=-=-=-=-=-
>> 6. Checking hashes
>>
>> For clarity this is written as if there is only one hash and
>> signature to check, whereas there may in fact be one for the header
>> and one for the body. Issues with DNS will cause [RFC5321] 4xx
>> responses to be sent.
>>
>>
>> 6.1. Step 1
>>
>> Find the latest DKIM2 signature and determine if the email as
>> received matches that hash AND that you are named as the destination
>> of the email AND that the mail is coming from the named source. If
>> not then refuse to accept the email. The previous hop is responsible
>> for the email (they have either forged it or mangled it -- either way
>> it is their problem).
>>
>> If this check passes then other checks can either be done at delivery
>> time or the mail can be accepted and if later rejected there is a
>> valid path back to the sender over which a DSN can be sent.
>>
>> If it is decided, by local policy, to accept an email where the hash
>> fails (or you are not the documented recipient) then DSN messages
>> back along the chain MUST NOT be sent.
>>
>> 6.2. Step 2
>>
>> Find the first DKIM2 header (numbered 1) and determine if the email
>> as received has the same hash as recorded there. If so, you know the
>> email has not been altered on its way to you. The path it has
>> followed is most likely irrelevant for deciding what to do with it.
>>
>> 6.3. Dealing with modifications.
>
>This is not dealing with the hash. It is a separate topic and should be a
>different section.
perhaps we should entitle the section "message processing" since
checking hashes and undoing modifications have to proceed hand in hand
>> Find the highest numbered DKIM2 header that reports a modification.
>> Undo the modification and repeat. When all modifications have been
>> done then there should be a match with the original signature (at
>> hop1). If not then the email has been altered (in an undocumented
>> manner) on its way to you and it SHOULD be rejected.
>
>Do not embed policy directives in the middle of algorithm specifications.
>
>And the framing of such a directive is not to tell them what they should or
>should not do, but what the signers would like done. The difference has to do
>with authority. The signer has no authority over the site interpreting the
>signature. And the choice of policy to apply after evaluation is /always/ a
>local matter. That is, in terms of protocol specification, the actual policy
>applied is outside the scope of this document.
We agree that we should move discussion of what should be done with
messages where the hashes do not match into a separate section.
Having a correct hash is a pre-requisite for some other aspects of the
overall design (e.g. avoiding backscatter, identifying replay etc.)
So I agree that whether or not to accept an email will always be a
matter of local policy -- but the overall design means that if you pass
the email to another system (or generate a DSN) then the final document
is going to have some SHOULDs (probably MUSTs) about how to handle email
where the hashes are not what is expected.
>> Note that it is not necessary to check the signature on a DKIM2
>> header that reports a modification. Undoing the modification and
>> discovering that the message can now be authenticated is sufficient.
>
>The second sentence is too cryptic. Perhaps:
>
> Rather, reversing the modification it reports should make it
> possible to check the original DKIM2 signature and validate that.
> This makes evaluation of a DKIM signature by the reporting site
> unnecessary.
hmmm... we could certainly be more clear. But I'm not sure that using
the term "reporting site" aids that clarity.
>> Over time a reputation can be developed for a intermediary which is
>> making modifications and given sufficient trust then the "undo" step
>> could be skipped.
>
> *I suspect this document has nothing to do with the nature and
> details of reputation assessment. *
We should probably accumulate all of our comments about what reputation
systems might be able to leverage and place them into the "applicability
statement"
>It is attempting to provide some reliable and accurate information that can be
>used by such an engine, but that's different from this document's offering
>comments about how such an engine works.
>
>> Note that the signature of the DKIM2 header that
>> reports the modification would need to be checked to ensure
>> reputation accrued to the correct entity.
>>
>> If the modification is substantial (eg URLs rewritten, MIME parts
>> removed) and it cannot be undone then the receiver (who may not be
>> the immediate next hop) MUST trust the system doing the modification.
>> If it does not then the mail SHOULD be rejected.
>>
>> It will be noted that some modifications can totally change the
>> meaning of an email. This specification does not try to limit
>> modifications. We believe that being able to attribute modifications
>> to a particular entity will allow reliable blocking of malicious
>> intermediaries once they are identified.
>>
>> 6.4. Dealing with replays
>>
>> Checking source and destination as recorded by the previous hop makes
>> many “DKIM replay” scenarios impossible.
>
>There is more than one DKIM scenario? What are they?
there is some helpful information in the now expired draft:
draft-chuang-dkim-replay-problem-03.txt
>> It is possible to exclude all replays by determining if any DKIM2
>> header reports an expansion event (one incoming email resulting in
>> multiple further emails).
>
>uh... This only works if the expansion platform is run by good actors. While
>replay has been done that way, it isn't the interesting arrangement, since
>that
>path is easily closed.
>
>
>
>> If not then you would expect that the
>> (original) hash of the email is unique and duplicates can be
>> rejected.
>>
>> If a expansion event is recorded then receiving multiple copies would
>> not be a surprise.
>
>To whom? And how is this, somehow, a useful point?
the way in which DKIM replay is currently successfully dealt with is by
counting instances of DKIM signatures. If more than <N> are received
then further copies are rejected. The difficulty is of course
determining a suitable value of <N> ... and that is currently done by a
mixture of heuristics and manual overrides.
having the expansion event documented informs those heuristics
>> It will be necessary to use local policy to
>> assess whether the number of copies received is acceptable or not.
>
>This does not deal with expansion that does not produce many copies to the
>same
>platform.
that is correct ... but the replay attacks that are of concern do
>> Over time you may wish to develop a reputation for a DKIM2 identity
>> which is doing expansions and conclude that a specific number of
>> copies is to be expected. This can be used to refine local policy.
>
>cf, Avoiding discussion about reputation in this protocol spec.
as noted above, yes
- --
richard Richard Clayton
Those who would give up essential Liberty, to purchase a little temporary
Safety, deserve neither Liberty nor Safety. Benjamin Franklin 11 Nov 1755
-----BEGIN PGP SIGNATURE-----
Version: PGPsdk version 1.7.1
iQA/AwUBZ/l1y2HfC/FfW545EQK6EwCfYVyRs5QWehRNIeQwLVOL5RJHj10An1CR
i56tOC1LMzrKGHiddTzL99K0
=iCKk
-----END PGP SIGNATURE-----
_______________________________________________
Ietf-dkim mailing list -- [email protected]
To unsubscribe send an email to [email protected]