Rolf E. Sonneveld | 18 Jan 13:41
Picon

Governments and DKIM

Hi, all

on June 17th 2011 
(http://lists.opendkim.org/archive/opendkim/users/2011/06/1173.html) I 
sent a mail to the ietf-dkim list about an upcoming expert meeting in 
relation to the submission of DKIM for the  'Comply or Explain' 
standards list, used by the Dutch government and government agencies. As 
a followup I have another question.

Is anyone aware of initiatives or regulations initiated by or endorsed 
by or 'observed' by any government in the country you live? We have seen 
an announcement on this list in November 2010 by Tsuneki Ohnishi about a 
DKIM Japan initiative, where the Japanese government has a status of 
observer (see 
http://web.archiveorange.com/archive/v/8JY9w5vRl0ZInsYJI0OV). I'm 
looking for examples of other/similar initiatives by government 
(agencies) or with involvement of government (agencies) with the purpose 
to aid in the adoption of DKIM on a country or state level.

Thanks for any pointers or information,

/rolf
Hector Santos | 10 Jan 12:37
Favicon

DKIM WG Greylisting

Now that this WG has not implemented greylisting:

wcSmtpQue version: 2.6
250-Begin Mail Queue Manager
#0001 Address : ietf-dkim <at> mipassoc.org
       Attempts: 4
       NextTime: 01/10/2012 06:44:28 AM
       Response: 451 (451 4.7.1 Greylisting in action, please come 
back later)
250 End Mail Queue Manager

and is causing delivery delays, maybe it can add logic to check for 
member's address and white list or support the SMTP extention for 
Greylist draft:

    http://tools.ietf.org/html/draft-santos-smtpgrey-01

To help alleviate the delivery delays and wasteful queuing/resend 
overhead of member's submissions.

--

-- 
Hector Santos, CTO
http://www.santronics.com
http://santronics.blogspot.com

FW: Document Action: 'DKIM Authorized Third-Party Signers' to Experimental RFC (draft-kucherawy-dkim-atps-16.txt)

Hi all,

This got approved by the IESG.  Note that it is slightly different than the last time it was discussed here,
courtesy of some suggested changes during IESG evaluation.

OpenDKIM has already implemented the revised version and is thus available for interop testing if anyone
wants to try this out.

-MSK

-----Original Message-----
From: ietf-announce-bounces <at> ietf.org [mailto:ietf-announce-bounces <at> ietf.org] On Behalf Of The IESG
Sent: Monday, January 09, 2012 2:01 PM
To: IETF-Announce
Cc: RFC Editor
Subject: Document Action: 'DKIM Authorized Third-Party Signers' to Experimental RFC (draft-kucherawy-dkim-atps-16.txt)

The IESG has approved the following document:
- 'DKIM Authorized Third-Party Signers'
  (draft-kucherawy-dkim-atps-16.txt) as an Experimental RFC

This document has been reviewed in the IETF but is not the product of an IETF Working Group.

The IESG contact person is Sean Turner.

A URL of this Internet Draft is:
http://datatracker.ietf.org/doc/draft-kucherawy-dkim-atps/

Technical Summary

(Continue reading)

Michael Deutschmann | 27 Jul 09:13

Doublefrom, ADSP and mailing lists in perspective,

I have one comment to make which ties together both my stance on Otis'
doublefrom crusade, and some reforms I have argued for in ADSP.

Basically, at present the doublefrom trick is simply *unnecessary* for
someone trying to pass me a forged mail.  My MTA, Exim-4.76, does not
natively support ADSP.  It does support core DKIM, but without ADSP it's
not reasonable for the DKIM result to have any effect on the message
disposition.

It probably wouldn't be *that* hard to cobble together some receiverside
ADSP implementation using Exim's other features, but it's just not worth
my while.

I'm not afraid of any phish fooling me, but I am interested in anything
that reduces the amount of "bad mail" reaching my inbox.  But while a
lot of spam is forged, it's forged to be from some ordinary schlub, not
Paypal.

I keep records going back to 2007, and since the start of that year 254
bad mails (spam and viruses) have gotten through to me.  They represent
210 alleged From: domains.  Of those domains, -absolutely none- of them,
-today-, have ADSP records at all.  Not even a "dkim=unknown"! Thus
retrospective analysis shows ADSP is unlikely to make any difference.

I may well implement double-From: detection alone.  *It* would have
blocked three spams from that interval (none of which bear any attempt
at a signature).

Now, all that aside, Paypal would probably still really like me to arm
ADSP, just in case.  But while it may be worth *their* time to sail
(Continue reading)

O'Reirdan, Michael | 22 Jul 16:09
Picon

Draft on email transition to IPv6 from IPv4 for sevice providers and other communities

Chaps 

I would like to bring to your attention and solicit comments on the following draft.


Thanks

Mike O'Reirdan


Hector Santos | 11 Jul 07:01
Favicon

Issue: 6.1 treatment of bad signature

I would like to propose a small change in semantics to the current 
text in section 6.1, last sentence of 2nd paragraph:

  Therefore, a verifier SHOULD NOT treat a message that has one or more
  bad signatures and no good signatures differently from a message with
  no signature at all.

Since there is a reference to a policy-based treatment of the message 
in section 6:

    A verifying MTA MAY implement a policy with respect to unverifiable
    mail, regardless of whether or not it applies the verification header
    field to signed messages.

the text in 6.1 should be expanded or changed to indicate the possible 
consideration other that what is stated, i.e. an augmented security 
DKIM wrapper such as ADSP or other future policy-based DKIM security 
wrapper is being applied.

I propose the changed text (or anything else one deems better):

  Therefore, in lieu of some policy-based valid signature requirement
  as outlined in section 6.0, a verifier SHOULD NOT treat a message
  that has one or more bad signatures and no good signatures differently
  from a message with no signature at all.

--

-- 
Hector Santos, CTO
http://www.santronics.com
http://santronics.blogspot.com

Michael Deutschmann | 10 Jul 01:19

Doublefrom language should be in ADSP, not core

One additional thought on the whole double-From: argument -- if RFC
language on the issue is justified at all, it really belongs in the
ADSP RFC, not a core DKIM one.

A double-From: doesn't even rise to the level of theoretical threat
except when dealing with ADSP (or a successor).

If we, for example, invented an "LDSP" protocol to allow mipassoc.org to
assert that any message bearing "List-Id: ietf-dkim <at> mipassoc.org"
without a d=mipassoc.org signature is highly suspicious, then the
operation of that defense would be entirely unexploitable by
double-Froms.

Of course, a lazy "LDSP" might be exploited with multiple List-Id:
headers, and that would actually be more significant.  List-Id: was
invented after RFC822, so we can't claim multiple copies of it violate
the protocol.

To the core DKIM spec, "From:" isn't magic at all.  Rather than
enumerate every header that might be sensitive, we should put in a
non-normative note that layered protocols should consider the issue:

{
Most expected applications of DKIM will involve signatures added by a
sender in order to justify their use of a name in some other header of
the message.  For example, ADSP allows a domain to assert that
their signature must be present for a message bearing one of their
addresses in the From: header.

It is suggested that such layered protocols include an explicit
requirement to check for multiple copies of whichever header they
defend.  Otherwise, a situation could arise where a lazy validator
approves a message based on all appropriate signatures being present for
just one instance of the header, and yet a downstream entity falsely
assumes a different instance was so validated.
}

---- Michael Deutschmann <michael <at> talamasca.ocis.net>
Hector Santos | 7 Jul 01:01
Favicon

Duplicate Signatures in a distribution with same payload

Question:

What is the advice or comments regarding a list distribution and/or a 
multi-rcpt session where the payload (DATA) is the same and then when 
signing the routed messages, they all have the same signatures?

Depending on the processing speed, only when the t= seconds time 
changes does the signature (b=) change.

I guess the question is, is it important or preferred that every 
message signature
be signature unique?

Or the opposite, if the t= time was retained for all message, then 
very message signature will be the same.   Is there some validity that 
the single signature is correct, including time wise, given the fact 
the payload is 100% exact?

Just wondering how much time I should spent on what appears to be one 
of the final considerations for our new revision of DKIM implementation.

Thanks

--

-- 
Hector Santos, CTO
http://www.santronics.com
http://santronics.blogspot.com

Barry Leiba | 3 Jul 05:26
Picon
Gravatar

Final update to 4871bis for working group review

The 4871bis draft was on this past Thursday's IESG telechat, and
mostly passed, but for a strongly held DISCUSS position from one AD,
Pete Resnick.  Pete had particular complaints about sections 8.14 and
8.15, along with some other issues, and was willing to block the
document until they were resolved.  The editors and the AD together
worked diligently for resolution, and in the end came up with an
updated version that they can all accept, and that we think the
working group can as well -- at least to the extent that we had agreed
before; these changes will not make Charles and Doug happy, but I
think they retain the essence of the rough consensus of others.

Because of the extent of the changes, though, the chair (I) thinks it
needs to come back to the working group for another review.  So the
working group is now asked to look over the diffs, noting that in a
few cases blocks of text were moved to other sections without being
changed.  ONLY diffs are in scope for reconsideration at this point,
and we'll be looking for confirmation that the changes are acceptable,
as well as complaints about the changes.  Complaints SHOULD come with
specific suggestions for alternatives.  Pete apologizes for not having
been involved with this earlier, promises to closely follow the
mailing list thread on this, and will participate in any text
negotiation that's necessary in order to get this right.

We have a week.  Murray will be posting the update (-14) very soon.
Please review and comment by 11 July.

Barry, as chair and document shepherd
Pete Resnick | 29 Jun 06:46
Favicon

Pete's review of 4871bis

Folks,

I've been reviewing 4871bis for the IESG review on Thursday. I've got a 
huge number of comments. Some of them (e.g., the first two below) are 
quite trivial or simple issues that I expect you'd either have no issue 
with or that I'm happy to ignore; some of them are clearly not trivial 
at all. I have not entered a ballot position yet, and I haven't sorted 
through all of the comments to decide if any are worthy of entering a 
DISCUSS, but I suspect that some of them are. I therefore wanted to post 
this to the WG list so you all get an idea of what I'm thinking about. 
Tomorrow I'll spend some time cleaning these up and sorting them by 
category instead of by order of the document.

I apologize for the lateness of this review; it's probably something I 
should have done a long time ago.

Comments:

1. I find the use of the word "INFORMATIVE" throughout the document 
superfluous. No other word (e.g., NORMATIVE) is used in its place. I 
think they should all be removed. They serve no purpose.

2. The ABNF "0*" construct is not normally used. Why not just "*"?

3. Section 2.7: I don't understand what the word "module" means in this 
context. It sounds like some sort of specific implementation, not part 
of a protocol. I don't know what it means to deliver values to a module.

4. Section 3.4.4:

       INFORMATIVE NOTE: It should be noted that the relaxed body
       canonicalization algorithm may enable certain types of extremely
       crude "ASCII Art" attacks where a message may be conveyed by
       adjusting the spacing between words.  If this is a concern, the
       "simple" body canonicalization algorithm should be used instead.

This is not an attack, or at the very least it is not an attack on DKIM. 
You can play this same game with MIME encodings or other textual tricks. 
I don't see any justification for this note being in this document.

5. Section 3.4.5:

       INFORMATIVE IMPLEMENTATION NOTE: Using body length limits enables
       an attack in which an attacker modifies a message to include
       content that solely benefits the attacker.  It is possible for the
       appended content to completely replace the original content in the
       end recipient's eyes, such as via alterations to the MIME
       structure or exploiting lax HTML parsing in the MUA, and to defeat
       duplicate message detection algorithms.  To avoid this attack,
       signers should be wary of using this tag, and verifiers might wish
       to ignore the tag, perhaps based on other criteria.

I don't understand how this is an attack. If the signer said, "I'm 
signing the first n bytes of the body of this message" and the verifier 
is able to verify that the signature is valid for n bytes of the body, 
the algorithm has succeeded. At most, this should lead to an admonition 
that unsigned data is not verified and therefore should not be trusted, 
but that seems obvious. There might be an attack on an MUA that does not 
verify the DKIM signature, but that seems outside the scope of this 
document.

6. Section 3.5:

    v= Version (MUST be included).  This tag defines the version of this
       specification that applies to the signature record.  It MUST have
       the value "1".  Note that verifiers must do a string comparison on
       this value; for example, "1" is not the same as "1.0".

Why "string comparison" here? There's no case sensitivity to worry 
about. There's no character encoding to worry about. Why not instead 
say, "Note that verifiers must (MUST?) ensure that the value is '1'; for 
exmaple '1' is not the same as '1.0'"? (Seem similar text in 3.6.1.) And 
why is the value not listed as "plain-text"?

7. Section 3.5: It would be nice to subsection each tag here. (e.g., 
"v=" could be 3.5.1, etc.)

8. Section 3.5, "h=":

It would be nice to add a sentence similar to the one in 5.4: "The field 
MAY contain multiple instances of a header field name; this means that 
multiple occurrences of the header field are being signed by the signing 
algorithm."

9. Section 3.5, "h=":

          INFORMATIVE EXPLANATION: By "signing" header fields that do not
          actually exist, a signer can allow a verifier to detect
          insertion of those header fields after signing.  However, since
          a signer cannot possibly know what header fields might be
          created in the future, and that some MUAs might present header
          fields that are embedded inside a message (e.g., as a message/
          rfc822 content type), the security of this solution is not
          total.

a. I don't understand what MUAs presenting "header fields that are 
embedded inside a message" has to do with anything.

b. I don't know what the words, "the security of this solution is not 
total" are supposed to mean.

Don't you simply mean: "However, since a signer cannot possibly know 
what header fields might be defined in the future, this mechanism can't 
be used to prevent the addition of any possible unknown header fields."?

10. Section 3.5, "h=":

          INFORMATIVE EXPLANATION: The exclusion of the header field name
          and colon as well as the header field value for non-existent
          header fields allows detection of an attacker that inserts an
          actual header field with a null value.

I cannot parse that sentence. I have no idea what it means.

11. Section 3.5, "l=", "INFORMATIVE IMPLEMENTATION WARNING". See comment 
in 3.4.5 above. Same comment.

12. Section 3.6.1: It would be nice to subsection each of the tags.

13. Section 3.7: "content-hash" is not defined.

14. Section 3.9:

a. Neither TEMPFAIL nor PERMAFAIL is defined at this point.

b. I have no idea what the "output of a DKIM verifier module" is 
supposed to mean.

I suspect that section 3.9 is at least misplaced in this document, and 
probably completely unnecessary as it sounds like implementation details.

15. Section 3.10: Is this not completely redundant with the text in 
3.6.1 regarding "t=s"?

16. Section 4.1: The "INFORMATIVE EXAMPLES" don't need to be called out 
as such. The title of the section is "Example Scenarios". All of the 
text here is example, and as such it is all informative.

17. Section 4.2, first INFORMATIVE NOTE: Why is this an informative 
note? It seems like good protocol adivce and therefore should say that 
signers SHOULD NOT sign exiting DKIM-Signauture fields.

18. Section 4.2, last paragraph: PERMFAIL is still not defined to this 
point.

I suspect sections 3.8 through all of section 4 belong after (or in) 
section 6.

19. Section 5.1, INFORMATIVE NOTE: Instead of saying "Signing modules 
may be incorporated into any", how about "A signer can be implemented as 
part of any"?

20. Section 5.1: I don't know what the term "signing address" means.

21. Section 5.3:

    Therefore, a verifier
    SHOULD NOT validate a message that is not compliant with those
    specifications.

This section is about signing, not verifying. What is that sentence 
doing in there?

22. Section 5.4:

       INFORMATIVE ADMONITION: Despite the fact that [RFC5322] permits
       header fields to be reordered (with the exception of Received
       header fields)

5322 does *not* permit header fields to be reordered. It says:

    ...header fields SHOULD NOT be reordered when a message is transported
    or transformed.  More importantly, the trace header fields and resent
    header fields MUST NOT be reordered, and SHOULD be kept in blocks
    prepended to the message.

Suggest: "Despite the fact that [RFC5322] does not absolutely prohibit 
header fields to be reordered..."

23. Section 5.5: Though section 5.5 is titled "Recommended Signature 
Content", it is clear that the entire section is devoted to the topic of 
section 5.4: "Determine the Header Fields to Sign". These two sections 
should be combined, and might be subsections of a larger section. But it 
was very confusing to read these as separate.

24. Section 6.1:

    A verifier SHOULD NOT treat a message that has one or more bad
    signatures and no good signatures differently from a message with no
    signature at all; such treatment is a matter of local policy and is
    beyond the scope of this document.

The two clauses in that sentence seem contradictory. Is there an 
interoperability requirement that I not treat messages in a particular 
way, or is it a matter of local policy?

25. Section 6.1, first "INFORMATIVE NOTE" on attack by many bad sigs: 
Shouldn't this be a security consideration instead?

26. Section 6.1 (and subsections): This section is playing some sort of 
game. The beginning of 6.1 describes some "statuses" and says things 
like, "The '(explanation)' is not normative text; it is provided solely 
for clarification." If it wanted to give an algorithm for Verfiers to 
follow, where there was a certain state machine with states of 
"PERMFAIL" and "TEMPFAIL", that would have been OK. But it is clear from 
the use of the phrasing, for example, "return PERMFAIL (signature syntax 
error)", the document is trying to sneak in some sort of actual APIs 
into the protocol spec. I think this is bogus and would much prefer that 
these sections be rewritten to say, "enters a PERMFAIL state", perhaps 
labeling each paragraph with the explanation. For example, the first 
paragraph of 6.1.1 could read:

    Signature syntax

    Implementers MUST meticulously validate the format and values in the
    DKIM-Signature header field; any inconsistency or unexpected values
    MUST cause the header field to be completely ignored and the verifier
    enters a PERMFAIL state.  Being "liberal in what you accept" is
    definitely a bad strategy in this security context.  Note however that
    this does not include the existence of unknown tags in a DKIM-Signature
    header field, which are explicitly permitted.

    Version compatibility

    Verifiers MUST enter a PERMFAIL state when presented a DKIM-Signature
    header field with a "v=" tag that is inconsistent with this
    specification.

The current text is too cute by half, and I think it obfuscates the meaning.

27. Section 6.1.3: I don't understand the meaning of the note, "(note 
that this version does not actually need to be instantiated)".

28. Section 6.1.3:

    verifiers might treat a message that contains bytes beyond the
    indicated body length with suspicion, such as by declaring the
    signature invalid (e.g., by returning PERMFAIL (unsigned content)),
    or conveying the partial verification to the policy module.

Up to the word "suspicion", fine. After that, it is complete nonsense. 
The signature is not invalid. If what you mean is "and may choose to 
treat the signature as if it were invalid (e.g., by going into the 
PERMFAIL state)", then say that. And again, this is trying to wrap APIs 
and implementations choices into the protocol.

29. Section 8.1: See comments above regarding section 3.4.5.

30. Section 8.2: I don't see how this is DKIM specific. More 
importantly, this section doesn't explain how user private keys relate 
in any way to keys used in DKIM. Shouldn't this be a discussion about 
security of private keys in general (not just ones on user machines)?

31. Section 8.5: I don't understand what the attack here is that has 
anything to do with DKIM. I especially don't see why the accomplice is 
an essential part of the example, unless all that is meant by 
"accomplice" is "relay". The attack sounds like, "people can spam signed 
messages", which is not an attack.

32. Section 8.14: This is a complete mischaracterization of the problem. 
This is absolutely not an attack vector. If a signer wishes to prevent 
additional *known* header fields from being verified, it can simply use 
the technique outlined in 8.15. If the signer chooses not to do that, it 
is expressing the intent that it considers messages valid that have 
additional header fields added. *That's* the security consideration: 
Signers should know that failing to include, e.g., "h=...:from:from:..." 
on messages with one "From:" header field are leaving themselves open to 
this attack. The attack is not on the verifier. Additionally:

    Note that the technique for using "h=...:from:from:...", described in
    Section 8.15 below, is of no effect in the case of an attacker that
    is also the signer.

That sentence is utter nonsense. The signer *can't* be the attacker for 
purposes of DKIM when it comes to the header fields it's willing to 
sign. The Introduction (section 1) makes it absolutely clear that DKIM 
is about transmitting information from a signer to a verifier.

Section 8.14 needs to be completely rewritten. It is nonsensical as it 
stands.

33. Section 8.15:

    However, [RFC5322] also tolerates obsolete message syntax, which does
    allow things like multiple From: fields on messages.  The
    implementation of DKIM thus potentially creates a more stringent
    layer of expectation regarding the meaning of an identity, while that
    additional meaning is either obscured from or incorrectly presented
    to an end user in this context.

DKIM can perfectly well deal with the obsolete syntax. The signer can 
sign as many "From:" fields as the message has when signed, and add a 
":from" to the "h=" tag to insure that the right number of them are 
verified. As in 8.14, the attack is not on DKIM per se; it's on signers 
that don't properly use the "h=" tag to sign those header fields that 
they don't want added to.

Other malformed input might cause problems for a DKIM implementation, 
but multiple header fields where 5322 3.6 only allows one is not that 
sort of attack.

--

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Incorporated - Direct phone: (858)651-4478, Fax: (858)651-1102

John Levine | 24 Jun 18:30

Mostly off topic: For Ian Eiloart

Ian's MTA has a buggy callback system that tries to use fake bounces
to guess whether a sending address existed.  I thought these had been
stamped out due to both the fact that they mostly attack innocent
bystanders, and the fact that they don't work, but I guess not yet.

R's,
John

><iane <at> sussex.ac.uk>:
>139.184.14.92 does not like recipient.
>Remote host said: 550-5.1.7 Verification failed for <johnl <at> iecc.com>
>550-5.1.7 Called:   64.57.183.56
>550-5.1.7 Sent:     RCPT TO:<johnl <at> iecc.com>
>550-5.1.7 Response: 553 Not our message (5.7.1)
>550-5.1.7 sender verification failed for johnl <at> iecc.com 
>550-5.1.7 see <http://www.sussex.ac.uk/its/helpdesk/faq.php?faqid=1101>
>550 5.1.7 the mail server for iecc.com denied the existence of johnl <at> iecc.com.
>Giving up on 139.184.14.92.ietf-dkim <at> mipassoc.org>


Gmane