Hi Eric,

Thanks for your response.  Sorry for the delay, I'v been traveling.
The responses sound good, I do have a clarification and will respond
inline.

On Sat, May 13, 2017 at 2:09 PM, Eric Rescorla <e...@rtfm.com> wrote:
> Hi Kathleen,
>
> Thanks for your review.
>
>
>> 1. Since this is going for IETF last call soon and there has been
>> review of the draft (workshop, but is clearly ongoing from the list
>> discussions), should the first sentence of the Introductions be
>> removed?
>>
>>    DISCLAIMER: This is a WIP draft of TLS 1.3 and has not yet seen
>>    significant security analysis.
>
> Yeah, we'll remove this.
>
>
>> 2. Section 4.2.9 - There should be some mention or pointer to the
>> security considerations and recommendations on replay attacks for
>> 0-RTT from this section.  I don't see any mention of discouraging
>> 0-RTT from being a default and think that would be good for
>> applications that use TLS expecting replay protection.  I know the WG
>> agreed to keeping 0-RTT, but I think it's very important to make the
>> issues clear and not have this come up as a default in any
>> implementation/deployment for unsuspecting users.  Part of this will
>> get down to implementation specifics and configuration options, but
>> offering some guidance is important. This document will be read by
>> many, not just developers.
>>
>> Since clients have to initiate 0-RTT, the user has to have some idea
>> that replay attacks are possible and accept that risk.  If this were
>> used in web applications, then all servers that don't want to see
>> replay attacks (banking, etc.), would have to have explicitly reject
>> this usage.  As such, there needs to be very strong guidance to this
>> point. Would it be that browsers configure this as a default or
>> something users would have to turn on or just leave it as an option
>> (with warnings) for a client to enable?  Would servers have clear
>> information in configuration files (or setup) about the implications
>> of this option for those that don't read the RFC and are not aware of
>> this problem?
>>
>> Most of this discussion belongs directly in the security consideration
>> section, but there has to be mention of it with a reference from
>> section 4.2.9.  It's not just an API consideration, this is for
>> developers, implementers, and users of the protocol. Many other
>> protocols use TLS beside HTTP and do so with the expectation of replay
>> protection.
>>
>> While Appendix C1 is helpful, I don't think it's enough.  It's
>> disappointing to see a protocol with a replay attack written as a
>> prominent feature of TLS 1.3 and little discouragement from use.
>
> I agree this should figure more prominently. I'm working on a PR
> for this now which addresses at least some of these points, so
> I'll hold off on responding to this for now and maybe we can
> revisit once that PR has been completed.
>

Thank you.
>
>> 3. Section 4.2.
>>
>>    "In general, detailed certificate validation procedures are out of
>>    scope for TLS (see [RFC5280]).  This section provides TLS-specific
>>    requirements."
>>
>> I don't see an explanation of why it is out-of-scope.  The reference
>> is just to RFC5280, which seems odd.  I would expect the reference to
>> be to something that explains why it is out-of-scope.
>
> In general, TLS's policy (dating back to TLS 1.0) has been that the
> job of TLS is to carry the certificates and other authentication
> material but to leave it up to other parts of the system to
> interpret them. It's been a long time since that decision was made,
> but from my perspective, there are a number of major reasons:
>
> 1. Most of PKI processing (path construction, etc.) is generic and
>    not specific to TLS. What is specific to TLS is:
>
>    * How to indicate what your PKI capabilities are
>      (see, e.g, S 4.2.4 and 4.3.2)
>    * How to stuff the PKI material into the protocol
>      (principally S 4.4.2)
>    * How to determine whether a given certificate is suitable for
>      use in TLS 4.4.4.2 and 4.3.2.1).
>
>    So we want to outsource the generic PKI part
>
>
> 2. It matches the software architecture that people often use,
>    which is to have a TLS stack but separate PKI validation. For
>    instance, Firefox uses NSS for TLS but moz::pkix for
>    validation. Similarly, Chrome uses BoringSSL for TLS
>    but the system PKI libraries for validation.
>
>
> In this case, I think that this text was more intended to
> say "and go read 5280 to learn how to do this". To that end,
> I suggest we say"
>
>
>     "In general detailed certificate validation procedures are out of
>     scope for TLS. [RFC5280] provides general procedures for
>     certificate validation. This section provides TLS-specific
>     requirements."
>

This reads much better, thank you.  However, shouldn't it say TLS1.3
since TLS 1.2 referenced RFC3280 and subsequently in RFC7525 includes
use of RFC5280 as a best practice.  It may be true for TLS 1.0 and
1.1, but it changed for TLS 1.2/

>
>> RFC7525 has use of RFC5280 as a best practice for server identity
>> verification and revocation checks for TLS 1.2.  Is this just for TLS
>> 1.3?  Why?
>
> I think that these requirements apply equally to TLS 1.3, it's
> just that 7525 is older.

I think this was poor phrasing on my part for the point.  and is
hopefully clarified in my response above.  RFC7525 came after TLS 1.2
and updated it's guidance recommending 5280.

>
>
>> RFC3280 is cited for revocation in the TLS 1.2 RFC.  I think a little
>> explanation here would be helpful since this seems to be a departure
>> (or reference to the changes section).
>
> This is part of our generalized attempt to update to point to
> the latest RFCs in our references. I'll add something to the
> references section.
> https://github.com/tlswg/tls13-spec/issues/1015
>
>
>> If RFC5280 remains out-of-scope, this section should fully describe
>> the certificate validation process for TLS 1.3. I think you need to
>> list out everything that should be checked as opposed to just
>> including one example:
>>
>>    "Also, if some aspect of the certificate chain was
>>    unacceptable (e.g., it was not signed by a known, trusted CA), the
>>    server MAY at its discretion either continue the handshake
>>    (considering the client unauthenticated) or abort the handshake."
>
> In general, I think we'd prefer to avoid providing a catalog of
> all the ways that things can go wrong, because there are a lot.
> The point of the text here is just supposed to be that servers
> don't have to fail if they ask for client auth but they are then
> sad about what the client provides. That's actually generally kind
> of true, but it's more obvious with client auth because in many
> cases the server has many ways of authenticating the client and
> can fall back if it doesn't like the cert.

>From list discussions, the underspecification seems to be causing some
interoperability problems.  Maybe a response to the list discussion
with this point will result in something to improve this section and
clarity for developers.  I'll look in the next update.  Thank you.

>
>
>> 4. Section 6.2 Error Alerts
>>
>> In addition to sending the error, I don't see any mention of the error
>> being logged on the server side, shouldn't that be specified?  Logging
>> errors (at least in debug modes when needed) provides valuable
>> troubleshooting information and many applications don't do an adequate
>> job of logging, so I think it's important to call that out here as a
>> recommendation.
>
> I agree. I think it would be useful to say something about this. I've
> filed https://github.com/tlswg/tls13-spec/issues/1014 to track this.

Thank you, this is very helpful.

Best regards,
Kathleen

>
> -Ekr
>
>
> On Fri, May 12, 2017 at 7:07 PM, Kathleen Moriarty
> <kathleen.moriarty.i...@gmail.com> wrote:
>>
>> Hello,
>>
>> Thank you all for your work on TLS 1.3.  The list has still been
>> active on a few topics, so I want to see how that all settles out in
>> addition to the questions I have on the draft below.
>>
>> Introduction:
>>
>> 1. Since this is going for IETF last call soon and there has been
>> review of the draft (workshop, but is clearly ongoing from the list
>> discussions), should the first sentence of the Introductions be
>> removed?
>>
>>    DISCLAIMER: This is a WIP draft of TLS 1.3 and has not yet seen
>>    significant security analysis.
>>
>> 2. Section 4.2.9 - There should be some mention or pointer to the
>> security considerations and recommendations on replay attacks for
>> 0-RTT from this section.  I don't see any mention of discouraging
>> 0-RTT from being a default and think that would be good for
>> applications that use TLS expecting replay protection.  I know the WG
>> agreed to keeping 0-RTT, but I think it's very important to make the
>> issues clear and not have this come up as a default in any
>> implementation/deployment for unsuspecting users.  Part of this will
>> get down to implementation specifics and configuration options, but
>> offering some guidance is important. This document will be read by
>> many, not just developers.
>>
>> Since clients have to initiate 0-RTT, the user has to have some idea
>> that replay attacks are possible and accept that risk.  If this were
>> used in web applications, then all servers that don't want to see
>> replay attacks (banking, etc.), would have to have explicitly reject
>> this usage.  As such, there needs to be very strong guidance to this
>> point. Would it be that browsers configure this as a default or
>> something users would have to turn on or just leave it as an option
>> (with warnings) for a client to enable?  Would servers have clear
>> information in configuration files (or setup) about the implications
>> of this option for those that don't read the RFC and are not aware of
>> this problem?
>>
>> Most of this discussion belongs directly in the security consideration
>> section, but there has to be mention of it with a reference from
>> section 4.2.9.  It's not just an API consideration, this is for
>> developers, implementers, and users of the protocol. Many other
>> protocols use TLS beside HTTP and do so with the expectation of replay
>> protection.
>>
>> While Appendix C1 is helpful, I don't think it's enough.  It's
>> disappointing to see a protocol with a replay attack written as a
>> prominent feature of TLS 1.3 and little discouragement from use.
>>
>>
>> 3. Section 4.2.
>>
>>    "In general, detailed certificate validation procedures are out of
>>    scope for TLS (see [RFC5280]).  This section provides TLS-specific
>>    requirements."
>>
>> I don't see an explanation of why it is out-of-scope.  The reference
>> is just to RFC5280, which seems odd.  I would expect the reference to
>> be to something that explains why it is out-of-scope.
>>
>> RFC7525 has use of RFC5280 as a best practice for server identity
>> verification and revocation checks for TLS 1.2.  Is this just for TLS
>> 1.3?  Why?
>> RFC3280 is cited for revocation in the TLS 1.2 RFC.  I think a little
>> explanation here would be helpful since this seems to be a departure
>> (or reference to the changes section).
>>
>> If RFC5280 remains out-of-scope, this section should fully describe
>> the certificate validation process for TLS 1.3. I think you need to
>> list out everything that should be checked as opposed to just
>> including one example:
>>
>>    "Also, if some aspect of the certificate chain was
>>    unacceptable (e.g., it was not signed by a known, trusted CA), the
>>    server MAY at its discretion either continue the handshake
>>    (considering the client unauthenticated) or abort the handshake."
>>
>>
>> 4. Section 6.2 Error Alerts
>>
>> In addition to sending the error, I don't see any mention of the error
>> being logged on the server side, shouldn't that be specified?  Logging
>> errors (at least in debug modes when needed) provides valuable
>> troubleshooting information and many applications don't do an adequate
>> job of logging, so I think it's important to call that out here as a
>> recommendation.
>>
>>
>>
>> --
>>
>> Best regards,
>> Kathleen
>>
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>
>



-- 

Best regards,
Kathleen

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

Reply via email to