Dave Crocker wrote in
 <[email protected]>:
 |This revises DKOR to use a single header field, and to support the 
 |addition of that field at each handling node along the way.
 |
 |The draft has fleshed out both technical and documentation details quite 
 |a bit.  Also, it uses the alternative draft naming scheme, as requested.

I thought the language is fantastic.  But the entire thing is
a technical problem that does not solve any.

- Not talking about sequence numbers not being linked etc. ...

  I have not understood which (how many) existing DKOR headers
  should be included in their signature.

- Not talking about legal state of permanently revealing RFC 5321
  SMTP envelope data in the email RFC 5322 IMF message.

- Not talking about the still missing necessary caches to protect
  against replay.

- In the current email world, DKIM-Signature often get removed aka
  mitigated away.  Until covered (to be also removed) dangling
  DKOR headers will remain.  (Unusable since not cryptographically
  verifiable.)

    This means that sequence numbers cannot be trusted.

    This means there is potential that several combinations may
    have to be tried to find the correct DKOR header for
    a DKIM-Signature, dependend which hop mitigated "what" and
    "how much".  Or one can simply use "the last" DKIM-Signature
    and DKOR headers, anway.  What for, sequence numbers?

    (Effectively i think including the sequence in the
    DKIM-Signature is a must.)

- It does not make technical sense to include SMTP envelope data
  beyond the "recipient hop".  In S->A->B->R, if R expands an
  alias or is a MailingList that reposts, former SMTP envelope
  data has nothing whatsoever to do with the message.

    DKIM links a RFC 5322 message to a domain.  In S->A->B->R none
    of A and B are supposed to modify the message.  R may cause
    changes (alias expansion, ML tags and header additions), and
    then send the message further on.

    DKIM v1 always failed that "next" message until the DKIM
    covered part remains unchanged, or until R mitigates the IMF
    From: header which DKIM v1 takes special interest in.

    Anyhow, except for asynchrous alias bounces (huh???), no
    former SMTP envelope makes sense to be included in that "next"
    message since delivery problems at recipients addressed by the
    "next" message can aka must only be reported to, and dealt
    with by the domain which sent the "next" message.

- *If* there is desire be able to "undo" an alias expansion
  "later" to redirect the "bounce", VERP ("as via SRS") is the
  much better, the *only* approach, compatible to anything, and
  actually in real-life use for decades (via non-standardized
  SRS), today even an absolutely necessary precondition to survive
  RFC 7208 SPF checks.

    If software starts to throw away DKOR accompanying its
    (stack-)referenced DKIM-Signature, that DKOR information is
    lost for this purpose anyway.

- Later undoing will likely break for DKOR as it does not offer
  undoing message adjustments in a cryptographically verifiable
  way at all.  At which point either all the elder data is lost,
  bogus and dangling, but anyway totally useless.

- It is technically false to claim that single-recipient is
  necessary.  It may be so *if* a dumb software creates
  a signature "out in the blue".  For example, in order not to
  reveal Bcc recipients to the world.

    Here i want to point out one thing.  DKIM v1 as it is and you
    propose unchanged for DKOR will look for the IMF From: content
    but/and likely start multiple happy-eyeball caused DNS lookups
    for multiple DKIM-Signatures.

    Claim: DKIM v1 as it stands is an excessive DNS user on the
    verification side.  It makes sense for multiple reasons to
    introduce a single DNS lookup on the signing side if that
    mitigates the greediness of the verifier per se.

  It is not true because only software which understands the
  iterated DKIM will be able to use it to protect against replay
  et cetera.

  It is thus not true in a mutual agreement situation where
  a Sender asked the Recipient whether EDKIM support is available,
  in which case the Recipient can remove the according data, which
  will as such be useless shall the message be sent further on.

    In a S->A->B->R case, none of A or B could replay a message
    with AC[DC] to any other recipient but the ones at R.

    Granted AC[DC] as it is does not offer any replay protection
    *unless* the Recipient domain supports EDKIM.
    This means that A and B cannot protect themselves even if they
    do, and that S must live with potential misuse.

    ACDC could be changed to always include a subsignature, but
    *then* it still can create one message for all To:/Cc:
    recipients at domain R, it only would have to become single
    recipient each Bcc: recipient.

      *That is still much better than being single-recipient all
      the time!*

    Note that this permanently reveals SMTP envelope data, for
    which no legal advise exists.

That MAIL FROM was not included in the per-recipient-domain ACDC
subsignature from the start was an error.  And if only to avoid
that in S->A->B->R modifications happen undetectedly and bounces
go back to wrong addresses.

Also, and still, an iteration would make it a SHOULD to set i= in
the DKIM-Signature; this *can* mitigate that elder SMTP envelopes
no longer exist, shall the very original sender be interested to
make this link.  (To note that ACDC includes DC and so changes can
be unrolled and cryptographically verified, and then the IMF From:
content is available; but having i= can make sense, and accessing
it is cheaper than unrolling.)

By the way.
I also claim that EDKIM does not only need a replay cache on the
verifier side, but also a bounce cache on the signer side.
In that EDKIM should apply VERP if the signer detects alias
expansion conditions, it should de-facto act like SRS.
This is because even if all of your DKOR would be fine and nice,
there is SPF and this does not survive a hop, and the IETF does
not offer anything to deal with that, rendering its other things
broken in the wild.
And because we only have 45 bytes before base64 encoding we cannot
simply use VERP-in-VERP-in-VERP.. over and over again!  Eg (this
also includes IMF From: mitigation which i would like to introduce
so receivers, for the first time, get a notion!):
      [email protected]
        [email protected] via ML <[email protected]>   REPLY-TO if not yet
        [email protected] via ML via [email protected] <[email protected]>  [NO REPLY-TO]
      [email protected]   SHOULD use Author:
        [email protected] via A1 <[email protected]> [NO REPLY-TO]
        [email protected] via A1 [edkim[+a=b.c]@e.f] via A2 <[email protected]> [NO 
REPLY-TO]
No, it can only create some random and MAC protected UUID (like
SRS), but with a single real component in order to properly bounce
back to original senders such messages.  And if the lifetime of
that cache entry has passed, it can only bounce the bounce and
state "your message is too old, maybe try to contact XY
directly?", and there XY would be the VERP-decomposed single real
address; which thus likely would be the last sender (before this
hop which resent).

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

_______________________________________________
Ietf-dkim mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to