[ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Barry Leiba
I have a chair statement to start with, and then the rest of this
message will be as a participant.

As chair:
We have gone off in the weeds on the double header issue, and are
fighting with ourselves.  The chairs need everyone to aim at getting
some rough consensus on this, so we're asking this: let's focus, as we
once did, on working together to achieve a result that most of us, at
least, can live with.  That means that many people will not get it
just the way they want it, and you might not see a result that you
consider ideal.  I think we're close enough, really, on this that we
can still get a result that we consider acceptable.

Because we're in the middle of the IETF meeting, some of us --
including the chairs -- are very busy this week.  Let's set a deadline
of 24 November, and say that by that date we will have an answer that
has rough consensus.  Please, folks, give and take, and work together
to reach that.

As a side issue, I would like the 4871bis editors to post a message by
that same date summarizing the other open issues with 4871bis, and
their assessment of the current consensus state of them.  We would
still like to get the issues resolved and get 4871bis to the IESG in
December, probably for the 16 Dec telechat.


As participant:

Here's how I see the situation.  It's purely as a participant, and has
no chair weight.  I think it does represent a compromise position that
should work.

Problem description:
An attack has been described that can be mounted by adding a second
from, subject, or possible other header field that is only
supposed to appear once.  This situation might fool a UA, filtering
software, or some other software into considering the added, unsigned
field as the real one.

Who is responsible for dealing with this situation?  If the DKIM spec
is at least partially responsible, to what extent, and what should it
say?


Proposal:

1. The DKIM spec is responsible for describing the problem in terms of
how it relates to signed and unsigned versions of the fields.  That's
the stuff in 8.14.

2. The DKIM spec should probably say that signers need to sign valid
messages, and, therefore, SHOULD NOT sign things like this.  Text
along the line of this might work well:
Signers SHOULD take reasonable steps to ensure
that the messages they're signing are valid according to [RFC 5322,
etc].  Leaving the definition of reasonable out allows flexibility.  It
may be waffly, but I like the approach in this case.

3. It'd be reasonable for the DKIM spec to remind verifiers that
signers aren't supposed to sign stuff like this, so they might
consider that when deciding what to do with it after verification.
It'd be reasonable to remind them of this particular case.  But
I think that all ought to be informative text.

4. We should agree to this or some variant of it, and then move on.
This is not meant to satisfy everyone.  In fact, it isn't what I'd prefer,
if I had my full choice.  But it takes care of the problem in a way
that I think is sufficient, and allows us to resolve the issue.

Barry
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Necessary Verifier Actions to mitigate exploitation of trust established through DKIM signatures.

2010-11-08 Thread Charles Lindsey
On Fri, 05 Nov 2010 18:46:37 -, Douglas Otis do...@mail-abuse.org  
wrote:

 Append to Section 6 Verifier Actions:

 It is not reasonable to assume a message is in compliance with RFC5322.
 To mitigate trivial exploitation of trust established by DKIM
 signatures, messages having multiple header fields for orig-date,
 from, sender, reply-to, to, cc, message-id, in-reply-to,
 references, or subject MUST always return PERMFAIL for any DKIM
 signature associated with the message.  When there are multiple
 singleton header fields, a field selected for display or sorting is
 therefore undefined.  Likely top-down selections by consumers of DKIM
 status where the signature verification selects bottom-up leaves
 singleton headers highly prone to trivial exploitation.

+0.75

I prefer requiring the signer to make such a check and then verifying that  
the signer had done so. It comes to the same thing, of course (it  
establishes that no extra headers had appeared in between, or  
alternatively that no malicious signer had failed to make the check). See  
wording proposed by Hector and myself.

The benefit of this approach is that we avoid accusations ot layer  
violations.

Note also that it is also sufficient to address only this header  
counting violation of 5322. If any other 5322 violation is present (e.g.  
a malformed header, which might be part of some scam) then, assuming that  
header has been signed, the evidence of the malformation will be preserved  
and its effect will be the same as if such a scam were attempted with  
current unsigned messages.

Charles H. Lindsey -At Home, doing my own thing
Tel: +44 161 436 6131   
   Web: http://www.cs.man.ac.uk/~chl
Email: ...@clerew.man.ac.uk  snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9  Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] FW: New Version Notification for draft-kucherawy-authres-vbr-00

2010-11-08 Thread Alessandro Vesely
On 08/Nov/10 06:25, Murray S. Kucherawy wrote:
 Filename:  draft-kucherawy-authres-vbr
 Revision:  00
 Title: Authentication-Results Registration For Vouch By 
 Reference Results
 Creation_date: 2010-11-07
 WG ID: Independent Submission
 Number_of_pages: 7

 Abstract:
 This memo updates the registry of properties in Authentication-
 Results: message header fields to allow relaying of the results of a
 Vouch By Reference query.

Nice one, Murray!

Section 4 (Definition) is ambiguous, though.  It says the DNS domain 
name used to perform the VBR query, but a VBR query takes two domain 
names.  I think mentioning the tag (md, according to the example) 
would make it clearer.

However, why not structure all the available domains?  E.g. delivering 
something like (modified from section A.1)

  Authentication-Results: mail-router.example.net;
dkim=pass (good signature) header.d=newyork.example.com
  header.b=oINEO8hg;
vbr=pass (all) header.mv=voucher.example.net
  header.md=newyork.example.com

where the comment contains the actual content of the TXT record.  A 
machine readable voucher name could be used by clients to learn what 
vouchers a server trusts.

Another item that may need clarification is the positive response 
given in the definitions of pass and fail.  It could be expanded 
as, say,

  pass:  A VBR query was completed and the vouching service queried
 gave a positive response.  That is to say, it returned a record
 consisting of strings of lowercase letters separated by spaces,
 as per section 5 of [VBR].

The added sentence is meant to dispel any question on whether the 
verifier should attempt to match the text in the RR with the content 
of the mc= tag in the VBR-Info header field, if any.
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Alessandro Vesely
On 08/Nov/10 10:20, Barry Leiba wrote:
 As participant:
 [...]
 Proposal:

 1. The DKIM spec is responsible for describing the problem in terms of
 how it relates to signed and unsigned versions of the fields.  That's
 the stuff in 8.14.

+1.  IMHO, 8.14 may avoid giving any advice, if we are unable to agree 
on any.  However, in such case, I'd recommend to take Julian's 
suggestion[1] of replacing Comments with From in the note that 
exemplifies the ugly hack.
[1] http://mipassoc.org/pipermail/ietf-dkim/2010q4/014683.html

 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.

+1.  Enforcing some RFC conformance is a task that many MTAs can 
(optionally) do natively.  Perhaps this is an issue about MTA 
configuration, rather than specifically for the signing module.  For 
example, I'm quite happy that such tweaking occurs before signing, so 
that the signer signs the revised version.  However, since also the 
verifying filter is invoked after any optional modifications, I've had 
to enable them for MSA only.

 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.

This is again a question of roles.  John has (correctly) recommended 
that verifiers don't tamper with the message content, except for 
possibly adding an A-R field.  However, a DKIM verifier does not 
/have/ to act as a verifier only.  An additional role is the umbrella 
under which a filter module may discard suspicious messages, suppress 
unsigned singleton fields that occur more than once, or anything it 
deems cool.

I agree it should be informative, w.r.t. DKIM.

 4. We should agree to this or some variant of it, and then move on.
 This is not meant to satisfy everyone.  In fact, it isn't what I'd prefer,
 if I had my full choice.  But it takes care of the problem in a way
 that I think is sufficient, and allows us to resolve the issue.

+1.
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Bill.Oxley
works for me (to the mailing list this time)
On Nov 8, 2010, at 4:20 AM, Barry Leiba wrote:

 I have a chair statement to start with, and then the rest of this
 message will be as a participant.
 
 As chair:
 We have gone off in the weeds on the double header issue, and are
 fighting with ourselves.  The chairs need everyone to aim at getting
 some rough consensus on this, so we're asking this: let's focus, as we
 once did, on working together to achieve a result that most of us, at
 least, can live with.  That means that many people will not get it
 just the way they want it, and you might not see a result that you
 consider ideal.  I think we're close enough, really, on this that we
 can still get a result that we consider acceptable.
 
 Because we're in the middle of the IETF meeting, some of us --
 including the chairs -- are very busy this week.  Let's set a deadline
 of 24 November, and say that by that date we will have an answer that
 has rough consensus.  Please, folks, give and take, and work together
 to reach that.
 
 As a side issue, I would like the 4871bis editors to post a message by
 that same date summarizing the other open issues with 4871bis, and
 their assessment of the current consensus state of them.  We would
 still like to get the issues resolved and get 4871bis to the IESG in
 December, probably for the 16 Dec telechat.
 
 
 As participant:
 
 Here's how I see the situation.  It's purely as a participant, and has
 no chair weight.  I think it does represent a compromise position that
 should work.
 
 Problem description:
 An attack has been described that can be mounted by adding a second
 from, subject, or possible other header field that is only
 supposed to appear once.  This situation might fool a UA, filtering
 software, or some other software into considering the added, unsigned
 field as the real one.
 
 Who is responsible for dealing with this situation?  If the DKIM spec
 is at least partially responsible, to what extent, and what should it
 say?
 
 
 Proposal:
 
 1. The DKIM spec is responsible for describing the problem in terms of
 how it relates to signed and unsigned versions of the fields.  That's
 the stuff in 8.14.
 
 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.
 
 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.
 
 4. We should agree to this or some variant of it, and then move on.
 This is not meant to satisfy everyone.  In fact, it isn't what I'd prefer,
 if I had my full choice.  But it takes care of the problem in a way
 that I think is sufficient, and allows us to resolve the issue.
 
 Barry
 ___
 NOTE WELL: This list operates according to 
 http://mipassoc.org/dkim/ietf-list-rules.html


___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Hector Santos
Barry Leiba wrote:

 Who is responsible for dealing with this situation?  If the DKIM spec
 is at least partially responsible, to what extent, and what should it
 say?

Whether we have the guts to do what is correct as oppose of trying to 
work it in due to IETF meeting mile stones and time deadlines, is 
entirely different issue.

IMO, DKIM is responsible for the input that are part of is formula. 
Parts it MUST make sure are RFC5322 correct for consumption with its 
purported trust signature, especially its sole single input header 
requirement, 5322.From.

 Proposal:
 
 1. The DKIM spec is responsible for describing the problem in terms of
 how it relates to signed and unsigned versions of the fields.  That's
 the stuff in 8.14.

Who's version?

 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.

+1

 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.

+1

 4. We should agree to this or some variant of it, and then move on.
 This is not meant to satisfy everyone.  In fact, it isn't what I'd prefer,
 if I had my full choice.  But it takes care of the problem in a way
 that I think is sufficient, and allows us to resolve the issue.

+1

I believe I provided good text with the original ISSUE posting I made 
and also modifications along the threads.   This focus mainly with 
following up with the logic for the last header begins in Section 
5.4 and where the corrective text should be made.   Its a do this 
, but keep in mind that  semantic.

Overall I prefer to see an updated specification that will help 
developers write software consider options to deal with this 
correctness issue directly and independently from another protocol 
logic.  IMO, this is the proper Software Engineering approach to 
maximize a fix across all MTA of all kinds.   I prefer not to read 
text that tries to pass the buck, push the burden on to MTAs or MUAs 
solely.  That will minimize the adoption rate because they could be 
legitimate MTAs that are not capable to satisfy the outside RFC5322 
correctness requirement or mandate in order for DKIM to provide 
workable results.

At the end of the day, I believe that it is major goal to get ALL DKIM 
software to work with the same expectation here and not get into 
situations in the future where there are deviations.  It MUST become a 
mandate in order to build the initial trust required for DKIM.

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


___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Hector Santos
Alessandro Vesely wrote:

 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.
 
 +1.  Enforcing some RFC conformance is a task that many MTAs can 
 (optionally) do natively.  

But DKIM can not make that presumption that is the prevailing nature 
of many MTAs.   At best, it can RECOMMEND that integration DKIM into 
a mail system that for BEST results, a general filter would address 
this issue.  But it can't assume that will be possible as it might 
mean a software change. Hence the better DKIM software will offer a 
direct solution that COULD be turned off when the MTA is capable of 
doing the filter itself.

For example, OpenDKIM is a package mainly for the Sendmail MTA. It may 
have or will have a MTA milter to check for RFC 5322 compliance. 
However, the I believe the software also allows has a DKIM only 
component that can be used in other MTAs.  You don't know if these 
other MTAs will have the same kind of filter DKIM is expecting in 
order to have clean results.

Now take Alt-N pure C/C++ DKIM API with no tie-ins to any MTA.  It has 
an non-overhead DKIM verifier option that deals this multiple 
5322.From issue  directly and independently from any other layered 
requirement.

To me, the latter is the best approach for the specification to take. 
Allow Readers of this document to decide how they will implement DKIM 
based on the MTA they are using or MTAs they are targeting.

 Perhaps this is an issue about MTA 
 configuration, rather than specifically for the signing module.  

Which is just as equal of saying MTAs may or may having RFC5322 
compliance checking.  DKIM can not be dependent for providing valid 
results only when working with MTA that have RFC5322 compliance checking.

 For 
 example, I'm quite happy that such tweaking occurs before signing, so 
 that the signer signs the revised version.  

Tampering with mail is not justified here.   Either the mail is good 
to sign or bad to sign when it comes to DKIM signing.

 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.
 
 This is again a question of roles.  John has (correctly) recommended 
 that verifiers don't tamper with the message content, except for 
 possibly adding an A-R field.  However, a DKIM verifier does not 
 /have/ to act as a verifier only.  An additional role is the umbrella 
 under which a filter module may discard suspicious messages, suppress 
 unsigned singleton fields that occur more than once, or anything it 
 deems cool.

Generally, the caller of the DKIM procedure would act on its results.

I prefer to see a blackbox model for DKIM where its interface points 
are well defined.  Its input was well described with stated boundary 
conditions and its output is well defined and described with a view on 
being a feed for possible message filters/handlers.

-- 
Sincerely

Hector Santos
http://www.santronics.com


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


___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Scott Kitterman
On Monday, November 08, 2010 04:20:19 am Barry Leiba wrote:
 As participant:
 
 Here's how I see the situation.  It's purely as a participant, and has
 no chair weight.  I think it does represent a compromise position that
 should work.
 
 Problem description:
 An attack has been described that can be mounted by adding a second
 from, subject, or possible other header field that is only
 supposed to appear once.  This situation might fool a UA, filtering
 software, or some other software into considering the added, unsigned
 field as the real one.
 
 Who is responsible for dealing with this situation?  If the DKIM spec
 is at least partially responsible, to what extent, and what should it
 say?
 
 
 Proposal:
 
 1. The DKIM spec is responsible for describing the problem in terms of
 how it relates to signed and unsigned versions of the fields.  That's
 the stuff in 8.14.
 
 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.
 
 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.
 
 4. We should agree to this or some variant of it, and then move on.
 This is not meant to satisfy everyone.  In fact, it isn't what I'd prefer,
 if I had my full choice.  But it takes care of the problem in a way
 that I think is sufficient, and allows us to resolve the issue.

I think this oversimplifies the issue from a DKIM perspective.  

If this were added, should signatures that sign a second (non-existant) from 
header specifically to ensure header addition breaks the signature verification 
be verified if in fact the message hasn't been modified?  

Rather than fall back purely on 5322, I'd prefer to see something in security 
considerations that says if the count of a particular header field that is 
supposed to be limited (e.g. From and Subject) present in a message exceeds 
the number of signed fields, then the signature shouldn't be verified.  

Additionally, signing a message with (for example) two From: fields is not a 
problem in the context of this issue, so the advice not to sign such messages 
isn't particularly related.

Scott K
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Alessandro Vesely
On 08/Nov/10 15:52, Hector Santos wrote:
 Alessandro Vesely wrote:

  2. The DKIM spec should probably say that signers need to sign valid
  messages, and, therefore, SHOULD NOT sign things like this.  Text
  along the line of this might work well:
  Signers SHOULD take reasonable steps to ensure
  that the messages they're signing are valid according to [RFC 5322,
  etc].  Leaving the definition of reasonable out allows flexibility.  It
  may be waffly, but I like the approach in this case.

  +1.  Enforcing some RFC conformance is a task that many MTAs can
  (optionally) do natively.

 But DKIM can not make that presumption that is the prevailing nature
 of many MTAs.   At best, it can RECOMMEND that integration DKIM into
 a mail system that for BEST results, a general filter would address
 this issue.

Yes.  If there will ever be an MTA considerations appendix, it may 
prompt MTA developers to provide for filtering callbacks at the right 
points.

 But it can't assume that will be possible as it might mean a
 software change. Hence the better DKIM software will offer a direct
 solution that COULD be turned off when the MTA is capable of doing
 the filter itself.

Anything we change in the protocol may imply software changes.

 For example, OpenDKIM is a package mainly for the Sendmail MTA. It may
 have or will have a MTA milter to check for RFC 5322 compliance.
 However, the I believe the software also allows has a DKIM only
 component that can be used in other MTAs.  You don't know if these
 other MTAs will have the same kind of filter DKIM is expecting in
 order to have clean results.

Yes, the library component of OpenDKIM provides for just DKIM (well, 
it also has some generic utilities, e.g. for parsing mailboxes.)  It 
works equally well with different MTAs as offline.

 Now take Alt-N pure C/C++ DKIM API with no tie-ins to any MTA.  It has
 an non-overhead DKIM verifier option that deals this multiple
 5322.From issue  directly and independently from any other layered
 requirement.

However, that feature makes for more difficult usage.  It tells the 
caller that a given signature failed to verify by delivering a status 
of DKIM_UNSIGNED_FROM.  Now, suppose the caller is a forensic tool, 
rather than an MTA filter.  The tool is interested in knowing whether 
the signature validates, but it cannot be sure that the reported 
status was the /only/ problem with that signature.  In facts, it'd be 
better off disabling such verifier option.  (And it can be disabled 
because it is not mandated.)

Now for MTA message filters.  Why should a DKIM library hide the 
simple facts and opt for telling them what to do instead?  It is quite 
trivial to count the From fields in the header.  A library can 
provide a function that tells whether a given field was signed by a 
given signature.  Based on such simple facts, a filter may make 
various decisions.  It may turn out that an unsigned From deserves 
the same treatment as a failed signature, but are we sure that that is 
the only one option whatever the circumstances?  Actually, we haven't 
observed many occurrences of that attack in the wild.

 To me, the latter is the best approach for the specification to take.
 Allow Readers of this document to decide how they will implement DKIM
 based on the MTA they are using or MTAs they are targeting.

However, if that behavior were mandated, it would affect all compliant 
libraries, forensic tools notwithstanding.

 I prefer to see a blackbox model for DKIM where its interface points
 are well defined.  Its input was well described with stated boundary
 conditions and its output is well defined and described with a view on
 being a feed for possible message filters/handlers.

+1.
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Murray S. Kucherawy
 -Original Message-
 From: ietf-dkim-boun...@mipassoc.org [mailto:ietf-dkim-boun...@mipassoc.org] 
 On Behalf Of Barry Leiba
 Sent: Monday, November 08, 2010 1:20 AM
 To: IETF DKIM WG
 Subject: [ietf-dkim] Getting resolution on the double header issue
 
 Proposal:
 
 1. The DKIM spec is responsible for describing the problem in terms of
 how it relates to signed and unsigned versions of the fields.  That's
 the stuff in 8.14.

Concur.  I worked through an 8.14 proposal a couple of weeks ago using input 
from the list.  The last text I have was:

8.14 Malformed Inputs

DKIM allows additional header fields to be added to a signed message without 
breaking the signature.  This tolerance can be abused, e.g. in a replay attack, 
by adding additional instances of header fields that are displayed to the end 
user or used as filtering input, such as From or Subject, to an already signed 
message in a way that doesn't break the signature.

The resulting message violates section 3.6 of [MAIL].  The way such input will 
be handled and displayed by an MUA is unpredictable, but in some cases it will 
display the newly added header fields rather than those that are part of the 
originally signed message alongside some valid DKIM signature annotation. 
This might allow an attacker to replay a previously sent, signed message with a 
different Subject, From or To field.

Because of this, DKIM implementers are strongly advised to reject or treat as 
suspicious any message that has multiple copies of header fields that are 
disallowed by section 3.6 of [MAIL], particularly those that are typically 
displayed to end users (From, To, Cc, Subject).  A signing module could return 
an error rather than generate a signature;  a verifying module might return a 
syntax error code or arrange not to return a positive result even if the 
signature technically validates.

Senders concerned that their messages might be particularly vulnerable to this 
sort of attack and who do not wish to rely on receiver filtering of invalid 
messages can ensure that adding additional header fields will break the DKIM 
signature by including two copies of the header fields about which they are 
concerned in the signature (e.g. h= ... from:from:to:to:subject:subject ...). 
See Sections 3.5 and 5.4 for further discussion of this mechanism.

Specific validity rules for all known header fields can be gleaned from the 
IANA Permanent Header Field Registry and the reference documents it 
identifies.

 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.
 It may be waffly, but I like the approach in this case.

Works for me.  How about:

3.10. Input Requirements

DKIM's design is predicated on valid input.  Therefore, signers and verifiers 
SHOULD take reasonable steps to ensure that the messages they are processing 
are valid according to [MAIL], [MIME], and any other relevant message format 
standards.  See Section 8.14 for additional discussion and references.

 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.

Yup; the above two amendments cover both cases.


___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread Murray S. Kucherawy
 -Original Message-
 From: ietf-dkim-boun...@mipassoc.org [mailto:ietf-dkim-boun...@mipassoc.org] 
 On Behalf Of Alessandro Vesely
 Sent: Monday, November 08, 2010 9:28 AM
 To: ietf-dkim@mipassoc.org
 Subject: Re: [ietf-dkim] Getting resolution on the double header issue
 
 Yes.  If there will ever be an MTA considerations appendix, it may
 prompt MTA developers to provide for filtering callbacks at the right
 points.

Two points about that:

1) The proposed 8.14 does bring up some MTA considerations relevant to the 
issue we've been discussing.

2) I just introduced a draft intended to become a place to collect discussion 
about how best to handle common malformations, and this could include the case 
we've been discussing.  It's intended to get BCP status, but I don't think we 
want to work on it in this working group.  (draft-kucherawy-mta-malformed if 
anyone wants to provide feedback.)

 Yes, the library component of OpenDKIM provides for just DKIM (well,
 it also has some generic utilities, e.g. for parsing mailboxes.)  It
 works equally well with different MTAs as offline.

Just to be precise:  OpenDKIM includes a filter that uses the milter protocol 
to talk to MTAs, but is not mainly for any one MTA.  Postfix and Oracle's MTA 
(formerly Sun JMS) can both use it as well since they have adopted milter.

But it also includes a library that is completely MTA agnostic, and in fact is 
in use in production at AOL and Yahoo with whatever MTAs they're using there.

The filter already does the RFC5322 checking, but the library currently doesn't 
(apart from erroring out if the input message doesn't contain a From field, 
since RFC4871 needs that).  It's deliberately a pretty pure partition wherever 
possible.  However, I have opened an RFE to add the more thorough checking as 
an option to the library in case a filter developer doesn't want to bother but 
is concerned about this issue.

-MSK


___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread J.D. Falk
On Nov 8, 2010, at 1:20 AM, Barry Leiba wrote:

 2. The DKIM spec should probably say that signers need to sign valid
 messages, and, therefore, SHOULD NOT sign things like this.  Text
 along the line of this might work well:
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.

+1

 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.

Seems unnecessary per #2 above, but I don't care all that much either way.

 4. We should agree to this or some variant of it, and then move on.
 This is not meant to satisfy everyone.  In fact, it isn't what I'd prefer,
 if I had my full choice.  But it takes care of the problem in a way
 that I think is sufficient, and allows us to resolve the issue.

+1


On Nov 8, 2010, at 7:52 AM, Scott Kitterman wrote:

 Rather than fall back purely on 5322, I'd prefer to see something in security 
 considerations that says if the count of a particular header field that is 
 supposed to be limited (e.g. From and Subject) present in a message exceeds 
 the number of signed fields, then the signature shouldn't be verified.  

I'd have no objection to this either.


At this point the only strong objection I'd have would be if the consensus 
measurement were based on one or two people repeatedly expressing Very Strong 
Feelings while the rest (like me) mostly don't care.  A meh result is not the 
same as a yes or no.


___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


[ietf-dkim] I-D Action:draft-ietf-dkim-implementation-report-04.txt

2010-11-08 Thread Internet-Drafts
A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Domain Keys Identified Mail Working Group of 
the IETF.


Title   : RFC4871 Implementation Report
Author(s)   : M. Kucherawy
Filename: draft-ietf-dkim-implementation-report-04.txt
Pages   : 17
Date: 2010-11-07

This document contains an implementation report for the IESG covering
DomainKeys Identified Mail (DKIM) in support of the advancement of
that specification along the Standards Track.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-dkim-implementation-report-04.txt

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.
ftp://ftp.ietf.org/internet-drafts/draft-ietf-dkim-implementation-report-04.txt

___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html


Re: [ietf-dkim] Getting resolution on the double header issue

2010-11-08 Thread John R. Levine
 Signers SHOULD take reasonable steps to ensure
 that the messages they're signing are valid according to [RFC 5322,
 etc].  Leaving the definition of reasonable out allows flexibility.  It
 may be waffly, but I like the approach in this case.

This is OK, but it misses the scenario where a bad guy takes an existing 
signed message and prepends another Subject: or From: header.  It's more 
effective to address this in the verifier.

 3. It'd be reasonable for the DKIM spec to remind verifiers that
 signers aren't supposed to sign stuff like this, so they might
 consider that when deciding what to do with it after verification.
 It'd be reasonable to remind them of this particular case.  But
 I think that all ought to be informative text.

I don't feel strongly about how normative we make the language, but I do 
think it would be a good idea to encourage verifiers not to say the 
signature is valid on a message with extra headers, even if it 
mechanically verifies.  This catches both the sloppy signer and the 
hostile intermediary.

FWIW, my DKIM verifier has for several weeks rejected anything which has 
an extra of any of these headers:

From Sender Subject Date To Cc MIME-Version Content-Type 
Content-Transfer-Encoding

I haven't collected detailed statistics, but I can report that nothing 
horrible has happened.  It's Mail::DKIM, the changes are about eight 
lines.  Anyone else wants it, just ask.

Regards,
John Levine, jo...@iecc.com, Primary Perpetrator of The Internet for Dummies,
Please consider the environment before reading this e-mail. http://jl.ly
___
NOTE WELL: This list operates according to 
http://mipassoc.org/dkim/ietf-list-rules.html