On 4/16/2015 8:16 PM, Scott Kitterman wrote:
+1 Extremely bias.

Lets keep in mind that there are two minimum receivers generally with
a MLM transaction that also need to be part of the cost and impact
analysis:

    MDA1 -- receiver and resigner
    MDA2 -- final user(s) receiver(s).

Another solution (partial) is for MDA1 honor policy and not allow
resigning to take place.  The one that is talked about the most are
the MDA2 end user receivers rejecting messages.   We will  want to
maximize the MDA2 consistent and persistent result factor since there
could be many different implementations at the MDA2 nodes.

It's a bit more complex than just not resigning (actually resigning shouldn't 
hurt).

What I meant about actually, is for the MDA1 to respect the restrictive policy and reject the message (list submission, subscription attempts, etc) and use a reply code/response to explain why.


What MDA/MTA1 needs to do is avoid any transformations that would invalidate 
the originator's DKIM signature.

Thats optional. Again Domain Policy based:

   Policy is relaxed, the MLM may resign, including stripping.
   Policy is strict,  the MLM should block the subscription/submission.

Again, as long as the policy also give options for the 3rd party, it can satisfy all boundary conditions. See below.


For some, that's a reasonable solution, but for others it's not because they 
aren't willing to give up the traditional mailing list transformations, i.e. 
there is a side effect that leads the mediator to consider the approach to 
costly (costs aren't just money).


Scott, when it comes to products, you will have all sides and the good way to address is to make it optional. Everyone is happy. Sure, its more work, but thats the life of a product developer.

So yes, we need to separate all the subjective, possible Administrator/Operator options, local policy related stuff and extract the basic protocol engine stuff, the state machine. If you control the access points, then much of this is resolved. See below.

I'd still rather focus on an assessment framework before we go zooming into 
solutions again. I don't think we're getting very far without it.


We went thru a threat analysis (RFC4686) and functional requirements (RFC5016) RFC productions and have the basic ideas and problem points well understood.

At the end of the day, no matter what, the receiver will have a fixed set of boundary conditions regarding what the ADID and SDID will look like. There are nine basic combinations of signatures when you assign to each NEVER, ALWAYS, OPTIONAL expectations:

   1st party:  NEVER, ALWAYS, OPTIONAL
   3rd party:  NEVER, ALWAYS, OPTIONAL

So your protocol engine needs to be able to deal with each combination of possible policy. Some will fold providing a smaller set of conditions. The following is an example diagram illustrating this:

   +-----------+
   |  PAYLOAD  |
   +-----------+
        |
        v
 +----------------+
 |                |                            +------------+
 | DKIM           |--------------------------->| CONTINUE   |
 | Signature      | UNSIGNED: OPTIONAL (1)     +------------+
 | Authorization  |
 | Protocol       |
 |                |                            +------------+
 |                |--------------------------->|            |
 |                | SIGNED: EXPIRED (2)        |            |
 |                |--------------------------->|            |
 |                | NO MAIL EXPECTED (3)       | FAILURE/   |
 |                |--------------------------->| CLASSIFY   |
 |                | UNSIGNED: REQUIRED (4)     |            |
 |                |--------------------------->|            |
 |                | SIGNED: NOT EXPECTED (5)   |            |
 |                |--------------------------->|            |
 |                | 3P SIGNED: NOT ALLOWED (6) |            |
 +----------------+                            +------------+
        |
        |
     SIGNED
     MESSAGE
        |
        v                                      +------------+
   +--------------+                            | CONTINUE/  |
   |              |--------------------------->| CLASSIFY   |
   |              |    INVALID SIGNATURE       +------------+
   | DKIM         |
   | SIGNATURE    |
   | VERIFICATION |                            +------------+
   | (7)          |--------------------------->| PASS       |
   |              |    VALID SIGNATURE         +------------+
   +--------------+


No matter what system you have, they all have be persistent and consistent on what is expected for each condition. That is not a mandate (you have local policy), but it tells you what are the MUSTs, SHOULDs and MAYs.

Overall, you are looking for the failure points.

(1) Unsigned mail arrives and the policy says its optional. Indeterminate condition, punt, continue.

(2) Signed mail, but it expired.  Negative classification.

(3) No mail is expected for this domain, Negative classification.

(4) Unsigned mail arrives and the policy says its required. Negative classification.

(5) The main is signed, but it wasn't expected. Negative classification.

(6) The mail is signed by 3rd party and policy doesn't allow that. Negative classification.

While some of the conditions can be folded, we are missing #6 which allows for checking for 3rd party signature authorization. But it can even be just that you don't expect it, hence a condition that allows for strong failure detection.

--
HLS


_______________________________________________
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc

Reply via email to