This document is providing STS functionality for SMTP relay, while DEEP is 
providing STS functionality for SMTP submission (plus IMAP & POP). I believe 
it’s important to align these two proposals and am open to changing DEEP to do 
so (https://tools.ietf.org/html/draft-ietf-uta-email-deep-04).

Note that early versions of DEEP also provided STS for SMTP relay but solving 
the STS problem for MUAs is sufficiently difficult and different that I think 
it’s good to have a separate document for SMTP relay STS. If you are open to 
editing this as a WG document with rough consensus changes, I would welcome the 
collaboration.

I agree with most of Viktor’s comments so I won’t repeat them. Here are some 
new comments:

1. I personally dislike using DNS records for any of this proposal. I believe 
SMTP security policy is best communicated within SMTP as this minimizes attack 
surface, eliminates the need for TOFU in some scenarios, and puts the policy 
configuration closer to the server operator. We can use the PKIX trust model 
with SMTP/STARTTLS just as we use it with HTTPS (with Viktor’s notable caveats) 
so HTTPS is not needed and shouldn’t be used to validate SMTP security policy.

2. I think using HTTPS to validate MX records in the non-DNSSEC scenario is a 
very interesting idea. But MX records are routing rather than policy and thus 
don’t belong in a policy record. How about just defining a well-known HTTPS URL 
that contains a copy of the actual binary MX record for the domain (or a 
semantically-identical syntax transformation of that binary record)? Then we 
just need the SMTP server to advertise the binary policy flag Viktor mentioned 
to get a non-DNSSEC model to reasonably trustworthy MX records.

3. DEEP goes through a lot of trouble to create an extensible framework for 
policy by creating a registry (while still keeping the model simple). Your 
proposal notes the need for future policy work but lacks a model to add new 
policies. I think the SMTP STS document is incomplete without an extensibility 
model and you can get it by referencing DEEP (and if we need to change the 
syntax or model in DEEP to make that more palatable, I’m open to that 
discussion).

4. UTA already discussed the idea of timeouts for security policy in DEEP and 
reached rough consensus not to include timeouts. I doubt the SMTP relay use 
case is sufficiently different to alter that rough consensus. So I suspect we 
can drop timeouts from SMTP STS after a discussion, but if there is rough 
consensus to keep timeouts in SMTP STS then I’d like to reconsider that 
decision for DEEP on a proposal-alignment basis.

5. DEEP’s reporting mechanism for SMTP submission (the CLIENT command) is an 
as-it-happens rather than after-the-fact mechanism. I’d like to investigate the 
idea of an after-the-fact mechanism for MUAs although I’m not sure it’s a good 
fit. Regardless, we need to use the same reporting syntax for submission SMTP 
and relay SMTP, so I’m open to changing DEEP’s current submission reporting 
syntax as needed to align them.

6. I think JSON would be a better format than XML for reporting. The reports 
are coming from an untrusted source and will be parsed. JSON has a much smaller 
attack surface than XML and as this is part of a security mechanism, I think 
that’s an important consideration. The one potential advantage I see to XML is 
the wide availability of SAX-style parsers that can handle large volumes of 
data, but I think the attack surface argument should win in this case. I know a 
number of XML parser libraries are insecure-by-default due to schema URI 
resolution. Regardless, this is an interesting design trade-off for a rough 
consensus decision.

7. I think your document should reference DEEP section 6 so SMTP relay cipher 
usage is recorded for trace purposes; that’s another aspect of your 
transparency goal.

7. I note in passing that DEEP allows use of the PKIX trust model and the DANE 
trust model at the same time. I think that’s good.

I’m wondering if I should rename DEEP to MUA STS?

                - Chris

On March 21, 2016 at 20:11:06 , Daniel Margolis ([email protected]) wrote:

Thanks for the feedback to both of you. I don't disagree; I think Viktor makes 
a very solid point in favor of simplicity. In addition, a report-only protocol 
could be extended to support arbitrary error reporting; an out-of-band (e.g. 
HTTP) channel to share delivery failures between domains strikes me as useful 
in the general case. 

Separately, because we're already assuming providers (both sending and 
receiving) make a choice on implementing DANE and/or webPKI, I don't think 
actually splitting the two makes it any more or less complex to implement, or 
should discourage adoption of one or the other mechanism. 

So I would say I'm feeling a bit in favor of Viktor's suggestion, but I'd like 
to chat a bit more with my co-authors and think about it first. ;) 

Viktor, as an aside regarding the hosted mail scenario, we already had the 
suggestion to move the HTTPS endpoint to something like 
"_smtp_sts.example.com/current". If we do that, the customer (example.com) can 
make this a CNAME for "_smtp_sts.hostingdomain.com", who can use SNI to serve 
the policy with the customer's cert (assuming the customer trusts the hosting 
provider with this; for domains that don't operate their own HTTPS endpoint 
this seems to me to be likely). For the more complex case, the cron setup you 
describe doesn't seem too onerous, I agree. 

Thanks again for the feedback. 

On Tue, Mar 22, 2016 at 10:21 AM, Neil Cook <[email protected]> wrote:

> On 22 Mar 2016, at 08:49, Viktor Dukhovni <[email protected]> wrote:
>
> On Tue, Mar 22, 2016 at 08:58:25AM +0100, Daniel Margolis wrote:
>
> My (strong) suggestion: use DNS for just cache invalidation, and
> perhaps also publication (via a separate record) of the "rua"
> reporting URI.  Do not duplicate data which one must in any case
> obtain and cache via HTTPS in DNS.
>
> Do not attempt to hedge your bets and support DANE/DNSSEC via STS,
> I don't think that makes much sense either.
>

I agree with the “don’t hedge your bets” part. I was quite surprised to see all 
the justification for STS in the first part of the document, including “the 
mechanism described here presents a variant for systems not yet supporting 
DNSSEC”, and yet then goes on to include DNSSEC as one of the policy 
authentication mechanisms.

>    * Allow (DANE or other) domains to publish just the RUA,
>      the feature is not STS-specific.
>
+1

Neil


_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta


_______________________________________________  
Uta mailing list  
[email protected]  
https://www.ietf.org/mailman/listinfo/uta  
_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta

Reply via email to