On Fri, Jan 22, 2021 at 12:13 AM Loganaden Velvindron <logana...@gmail.com>
wrote:

> On Fri, Jan 22, 2021 at 7:30 AM Daniel Migault <mglt.i...@gmail.com>
> wrote:
> >
> > Hi,
> >
> > I apology for responding so late - I missed the thread. I want this
> document to be moved forward but so far I do not have the impression my
> concerns have been addressed. I suppose that results from my lake of
> responsiveness and I apology. Please find my response inline and let me
> know what can be achieved reasonably.
> >
> > Yours,
> > Daniel
> >
> >
> > On Tue, Oct 27, 2020 at 11:34 PM Sean Turner <s...@sn3rd.com> wrote:
> >>
> >>
> >> Please note the comment about Section 3 suggests changing server
> behavior from SHOULD NOT to a MUST NOT.
> >>
> >> > On Oct 27, 2020, at 10:19, Daniel Migault via Datatracker <
> nore...@ietf.org> wrote:
> >> >
> >> > Reviewer: Daniel Migault
> >> > Review result: Ready with Nits
> >> >
> >> > Hi,
> >> >
> >> >
> >> > I reviewed this document as part of the IoT Directorate's ongoing
> effort to
> >> > review all IETF documents being processed by the IESG.  These
> comments were
> >> > written primarily for the benefit of the Security Area Directors.
> Document
> >> > authors, document editors, and WG chairs should treat these comments
> just like
> >> > any other IETF Last Call comments.
> >> >
> >> > Review Results: Ready with Nits
> >> >
> >> > Please find my comments below.
> >> >
> >> > Yours,
> >> > Daniel
> >> >
> >> >
> >> >         Deprecating MD5 and SHA-1 signature hashes in TLS 1.2
> >> >                  draft-ietf-tls-md5-sha1-deprecate-04
> >> > [...]
> >> >
> >> > 1.  Introduction
> >> >
> >> >   The usage of MD5 and SHA-1 for signature hashing in TLS 1.2 is
> >> >   specified in [RFC5246].  MD5 and SHA-1 have been proven to be
> >> >   insecure, subject to collision attacks [Wang].  In 2011, [RFC6151]
> >> >   detailed the security considerations, including collision attacks
> for
> >> >   MD5.  NIST formally deprecated use of SHA-1 in 2011
> >> >   [NISTSP800-131A-R2] and disallowed its use for digital signatures at
> >> >   the end of 2013, based on both the Wang, et. al, attack and the
> >> >   potential for brute-force attack.  In 2016, researchers from INRIA
> >> >   identified a new class of transcript collision attacks on TLS (and
> >> >   other protocols) that rely on efficient collision-finding algorithms
> >> >   on the underlying hash constructions [Transcript-Collision].
> >> >   Further, in 2017, researchers from Google and CWI Amsterdam
> >> >   [SHA-1-Collision] proved SHA-1 collision attacks were practical.
> >> >   This document updates [RFC5246] and [RFC7525] in such a way that MD5
> >> >   and SHA-1 MUST NOT be used for digital signatures.  However, this
> >> >   document does not deprecate SHA-1 in HMAC for record protection.
> >> >
> >> > <mglt>
> >> > RFC6194 may be mentioned as a reference for
> >> > not deprecating HMAC-SHA-1 as well as an
> >> > additional reference to [NISTSP800-131A-R2].
> >>
> >> Are asking for something like this:
> >>
> >> OLD:
> >>
> >>   In 2011, [RFC6151] detailed the security considerations,
> >>   including collision attacks for MD5.
> >>
> >> NEW:
> >>
> >>   In 2011, [RFC6151] [RFC6194] detailed the security considerations,
> >>   including collision attacks for MD5 and SHA-1, respectively.
> >>
> >> > Reading the text the situation of HMAC with
> >> > MD5 is unclear. Since we specify that SHA-1
> >> > is not deprecated for HMAC we may specify
> >> > the status for HMAC with MD5. Given RFC6151 I
> >> > hope the reason is that MD5 and HMAC-MD5 has
> >> > already been deprecated but I have not found
> >> > this. Maybe that would worth mentioning it
> >> > is deprecated already.
> >> >
> >> > </mglt>
> >>
> >> Are you asking for something like this:
> >>
> >> OLD:
> >>
> >>   However, this document does not deprecate SHA-1 in HMAC
> >>   for record protection.
> >>
> >>   However, this  document does not deprecate MD-5 or SHA-1 HMAC
> >>   for record protection.
> >
> > <mglt>
> > maybe we could add these are still considered as secured at the time of
> writing.  It is also tempting to add that given we deprecate sha1 and md5
> in the signature, it is tempting to suggest to use unless necessary
> hmac-sha256.  I have commented the PR12
> > </mglt>
> >>
> >> <
> >> > [...]
> >> >
> >> > 2.  Signature Algorithms
> >> >
> >> >   Clients MUST NOT include MD5 and SHA-1 in the signature_algorithms
> >> >   extension.  If a client does not send a signature_algorithms
> >> >   extension, then the server MUST abort the handshake and send a
> >> >   handshake_failure alert, except when digital signatures are not used
> >> >   (for example, when using PSK ciphers).
> >> >
> >> > <mglt>
> >> > It seems to me that the server behavior might
> >> > be defined as well. In our case this could be
> >> > something around the lines the server MUST
> >> > ignore MD5 and SHA1 values in the signature
> >> > algorithm extension.
> >> >
> >> > </mglt>
> >>
> >> I guess that would be the way to absolutely stamp them out, but don’t
> we get the same result because the client is not sending the values in the
> signaure_algorithms extension?
> >>
> > <mglt>
> > The reason I would maybe have preferred to have indications for the
> client and the server is that it is always easier for a server to say that
> it is following the specs than to indicate that the client is not.
> > This is correct the result is similar, but client usually complement
> servers and we usually specify both. I believe that would be better to be
> updated.
> > </mglt>
> >>
> >> > 3.  Certificate Request
> >> >
> >> >   Servers SHOULD NOT include MD5 and SHA-1 in CertificateRequest
> >> >   messages.
> >> >
> >> > <mglt>
> >> > It seems to me that the same level of
> >> > authentication should be provided for both
> >> > peers and that server MUST NOT  include MD5
> >> > or SHA-1.
> >> >
> >> > A SHOULD NOT status might be welcome for a
> >> > smooth transition. At that time, collision
> >> > for MD5 and SHA1 are known for years. It is likely
> >> > that software that still need MD5 or SHA1 are
> >> > likely to never upgrade, so I doubt a smooth
> >> > path worth being taken.
> >> > </mglt>
> >>
> >> This has been a SHOULD NOT since it was a first published as an
> individual draft and through the WGLC. I would not feel comfortable
> changing it now without further discussion.
> >>
> >> I tend to think it is okay to leave as SHOULD NOT because the server
> MUST use values from the now ever present signature_algorithms extension
> and MD5 and SHA1 are not going to be there. If the server is going to go
> nuts and include MD5 and SHA-1 in the CertifiateRequest even though it’s
> not been asked, well, you got bigger problems.
> >>
> > <mglt>
> > Let's say that there are some softwares using SHA-1 / MD5 that will be
> upgraded. I would have probably incline to put MUST NOT... but SHOULD NOT
> carries the message, and I do not believe that is worth further discussion.
> > </mglt>
> >>
> >> > 4.  Server Key Exchange
> >> >
> >> >   Servers MUST NOT include MD5 and SHA-1 in ServerKeyExchange
> messages.
> >> >   If a client receives a MD5 or SHA-1 signature in a ServerKeyExchange
> >> >   message it MUST abort the connection with the illegal_parameter
> >> >   alert.
> >> >
> >> > <mglt>
> >> > As per section 2, the client has clearly
> >> > indicated it does not support signature with
> >> > MD5/SHA1, so Server Key Exchange should not
> >> > end up with signature with SHA1/MD5.
> >> >
> >> > """
> >> > If the client has offered the "signature_algorithms" extension, the
> >> >   signature algorithm and hash algorithm MUST be a pair listed in that
> >> >   extension.
> >> > """
> >> >
> >> > It also seems to me that the constraint of
> >> > including a MD5 and SHA-1 signature is
> >> > related to the Certificate. I suspect that
> >> > some clarification are needed here.
> >>
> >> It’s about the digitally-signed struct for the dhe_dss and dhe_rsa
> cases in ServerKeyExchange.
> >
> > <mglt>
> > sure. My point here was that Certificate MUST be signed by the
> signature, hash provided by the extension. This mandates the CAs deprecates
> SHA1 as well, and I am unclear if that is a correct assumption. I think
> this could be addressed in a section or note related to Certificate.
> > </mglt>
> >>
>
> Daniel, do you mean this ?
>
> https://cabforum.org/2014/10/16/ballot-118-sha-1-sunset/
>
> <mglt>
I think this is a usefull reference to show no problems are expected from
certificate validation. Thanks.
</mglt>

>
> >>
> >> > Since the case where the extension becomes
> >> > mandatory, the quoted text above of RFC 5246
> >> > might be updated as well, though this does
> >> > not appear that necessary.
> >>
> >> So we might do it, but the question is whether implementers are going
> to be confused if we don’t update it.  I tend to think that the changes in
> s2 are clear that the extension will be present (except when sigs are not
> used) if the handshake is to complete.
> >>
> >> > </mglt>
> >>
> >> Not sure anything needs to be changed in this section based on the
> above.
> >>
> > <mglt>
> > I see your point and agree.
> > </mglt>
> >
> >
> >>
> >> > 5.  Certificate Verify
> >> >
> >> >   Clients MUST NOT include MD5 and SHA-1 in CertificateVerify
> messages.
> >> >   If a server receives a CertificateVerify message with MD5 or SHA-1
> it
> >> >   MUST abort the connection with handshake_failure or
> >> >   insufficient_security alert.
> >> >
> >> >
> >> > <mglt>
> >> >
> >> > 6. Certificate
> >> >
> >> > Unless I am missing something, it seems to me
> >> > that signature may also be found in the
> >> > Certificate messages for the chain as well in
> >> > the restriction of the signature algorithm.
> >> > The end certificate is associated to the peer
> >> > while other certificate are related to a CA.
> >> >
> >> > It seems that client and server behavior may
> >> > be specified. The quoted text below may be
> >> > helpful to clarify.
> >> >
> >> > """
> >> > If the client provided a "signature_algorithms" extension, then all
> >> >   certificates provided by the server MUST be signed by a
> >> >   hash/signature algorithm pair that appears in that extension.
> >> > """
> >> >
> >> > </mglt>
> >>
> >> Are you suggesting that a new section be added to address the
> Certificate message?
> >
> >
> > <mglt>
> > yes. I have the impression that since SHA1/MD5 MUST NOT be mentioned in
> the "signature_algorithms", this assumes that CAs do not sign using these
> algorithms. I tend to believe that worth being mentioned. As mentioned
> before, I think that could be mentioned in the draft.
> > </mglt>
> >>
> >>
> >> > 6.  Updates to RFC5246
> >> >
> >> >   [RFC5246], The Transport Layer Security (TLS) Protocol Version 1.2,
> >> >   suggests that implementations can assume support for MD5 and SHA-1
> by
> >> >   their peer.  This update changes the suggestion to assume support
> for
> >> >   SHA-256 instead, due to MD5 and SHA-1 being deprecated.
> >> >
> >> >   In Section 7.4.1.4.1: the text should be revised from:
> >> >
> >> >   OLD:
> >> >
> >> >   "Note: this is a change from TLS 1.1 where there are no explicit
> >> >   rules, but as a practical matter one can assume that the peer
> >> >   supports MD5 and SHA- 1."
> >> >
> >> >   NEW:
> >> >
> >> >   "Note: This is a change from TLS 1.1 where there are no explicit
> >> >   rules, but as a practical matter one can assume that the peer
> >> >   supports SHA-256."
> >> >
> >> >
> >> > <mglt>
> >> > I am reading the Note as an explanation on
> >> > why sha was taken as the default hash
> >> > function with the following rules.
> >> >
> >> > """
> >> > If the client does not send the signature_algorithms extension, the
> >> >   server MUST do the following:
> >> >
> >> >   -  If the negotiated key exchange algorithm is one of (RSA, DHE_RSA,
> >> >      DH_RSA, RSA_PSK, ECDH_RSA, ECDHE_RSA), behave as if client had
> >> >      sent the value {sha1,rsa}.
> >> >
> >> >   -  If the negotiated key exchange algorithm is one of (DHE_DSS,
> >> >      DH_DSS), behave as if the client had sent the value {sha1,dsa}.
> >> >
> >> >   -  If the negotiated key exchange algorithm is one of (ECDH_ECDSA,
> >> >      ECDHE_ECDSA), behave as if the client had sent value
> {sha1,ecdsa}.
> >> > """
> >> >
> >> > The current document does not update the
> >> > default hash function from sha to sha256 to
> >> > avoid interoperability issue where one peer
> >> > takes sha while the other one takes sha-256.
> >>
> >> You are right that this section, which is updating TLS1.2 [RFC5246], is
> not changing the default to SHA-256, but the recommendations for
> configuring TLS 1.2, which are provided in RFC 7525/BCP 195, is being
> updated to recommend SHA-256 in the very next section.
> >>
> > <mglt>
> > Updating the update works. It believe that saying a section should be
> remove is not too hard, and it seems to me that mentioning the default
> behaviour is important. I would say that could get implementers confused to
> implement part of the specifications that do not hold any more. I would
> prefer to have this being addressed.
> >
> > I am reading RFC7525 as recommending a non default parameter while this
> document removed the support of default parameters. So to me the updating
> the status of the default parameters seems more updating the 5246 then 7525.
> > </mglt>
> >
> >> > As a results, these rules and the "Note" may
> >> > eventually all together be replaced by your
> >> > text of section 2.
> >> >
> >> > The following text may also be removed:
> >> >
> >> > """
> >> > If the client supports only the default hash and signature algorithms
> >> >   (listed in this section), it MAY omit the signature_algorithms
> >> >   extension.
> >> > """
> >>
> >> So we might do it, but the question is whether implementers are going
> to be confused if we don’t do it. I think because s1 already says that
> client MUST send a signature_algorithms extension that we don’t have to
> indicate that that particular sentence be dropped/removed from the draft. I
> will admit this document mixes the two ways to do a bis document, i.e.,
> old/new and describing blanket changes, but I think the intent is pretty
> clear based on the brevity of the draft.
> >>
> >
> > <mglt>
> > I agree we may be able to find all the dots. I think this provides more
> insight to clarify the reading of 5246. I agree the intend is clearly
> stated in the title and section 2 addresses most of it and I believe that
> some flexibility is permitted, but that is unclear to me where to put the
> bar. I still believe that could be easily be addressed.
> > </mglt>
> >
> >>
> >> > Regarding the Note, it seems to be that the
> >> > removal of support for MD5/SHA1 will result
> >> > in interoperability issues. At this point,
> >> > the issue is due to the obsolescence of the
> >> > implementation as deprecation of SHA1/Md5 has
> >> > started a long time ago.
> >> >
> >> > It is unclear to me how normative is
> >> > interpreted "can assume". Was the support of
> >> > MD5/SHA1 a SHOULD or a MUST? In both case, if
> >> > we were willing to maintain interoperability
> >> > between software that only implemented
> >> > MD5/SHA1, we should take a slower path and
> >> > introducing SHA-256 and having were MD5/SHA1
> >> > kept for interoperability purpose before
> >> > being deprecated. I do not think we should
> >> > take that path as implementations that
> >> > currently do not support SHA-256 are unlikely
> >> > to be updated and that deprecation of
> >> > SHA1/MD5 has started a long time ago.
> >> >
> >> > I would however mention the issue of
> >> > interoperability in the  section but not in
> >> > the text to update. In the text to update I
> >> > would maybe suggest that the support of
> >> > SHA-256 comes with a normative MUST
> >> > statement.
> >> >
> >> >
> >> > </mglt>
> >>
> >> I think we can accomplish migrating to SHA-256 by updating RFC 7525/BCP
> 195.
> >
> >
> > <mglt>
> > yes, but the current update only RECOMMENDs RFC7525.
> > </mglt>
> >>
> >>
> >> > Velvindron, et al.       Expires April 12, 2021                 [Page
> 3]
> >> >
> >> > Internet-Draft      draft-ietf-tls-md5-sha1-deprecate       October
> 2020
> >> >
> >> >
> >> > 7.  Updates to RFC7525
> >> >
> >> >   [RFC7525], Recommendations for Secure Use of Transport Layer
> Security
> >> >   (TLS) and Datagram Transport Layer Security (DTLS) recommends use of
> >> >   SHA-256 as a minimum requirement.  This update moves the minimum
> >> >   recommendation to use stronger language deprecating use of both
> SHA-1
> >> >   and MD5.  The prior text did not explicitly include MD5 or SHA-1;
> and
> >> >   this text adds guidance to ensure that these algorithms have been
> >> >   deprecated..
> >> >
> >> >   Section 4.3:
> >> >
> >> >   OLD:
> >> >
> >> >   When using RSA, servers SHOULD authenticate using certificates with
> >> >   at least a 2048-bit modulus for the public key.  In addition, the
> use
> >> >   of the SHA-256 hash algorithm is RECOMMENDED (see [CAB-Baseline] for
> >> >   more details).  Clients SHOULD indicate to servers that they request
> >> >   SHA-256, by using the "Signature Algorithms" extension defined in
> TLS
> >> >   1.2.
> >> >
> >> >   NEW:
> >> >
> >> >   Servers SHOULD authenticate using certificates with at least a
> >> >   2048-bit modulus for the public key.
> >> >
> >> >   In addition, the use of the SHA-256 hash algorithm is RECOMMENDED;
> >> >   and SHA-1 or MD5 MUST NOT be used (see [CAB-Baseline] for more
> >> >   details).  Clients MUST indicate to servers that they request SHA-
> >> >   256, by using the "Signature Algorithms" extension defined in TLS
> >> >   1.2.
> >> >
> >> > <mglt>
> >> > I understand the reason we do specify that
> >> > hash algorithms that MUST NOT been used. This
> >> > is fine in the context of this document, but
> >> > it seems to me that if we were writing the
> >> > updated specification we may have rather
> >> > mentioned a minimum level of security hash
> >> > function needs to be met - in our case
> >> > SHA-256. I leave the co-authors make the
> >> > appropriated choice.
> >> >
> >> > </mglt>
> >>
> >> Can you clarify what you would like changed? I am just confused because
> SHA-256 is RECOMMENDED in the proposed new text.
> >>
> > <mglt>
> > I suppose I proposed to move RECOMMENDED to MUST to accomplish the
> transition as I do not see RECOMMENDED sufficient to guarantee
> interoperability. At that point, I am inclined to say the MUST status is
> achieve as there are quite few hash functions deployed and available and
> that the life time of TLS 1.2 is expected to be limited. This could be made
> RECOMMENDED acceptable, but MUST would be preferred if possible. Is there
> anything I am missing or any reason to favour RECOMMENDED over MUST ?
> > </mglt>
> >
> >> > 8.  IANA Considerations
> >> >
> >> >   The document updates the "TLS SignatureScheme" registry to change
> the
> >> >   recommended status of SHA-1 based signature schemes to N (not
> >> >   recommended) as defined by [RFC8447].  The following entries are to
> >> >   be updated:
> >> >
> >> >       +--------+----------------+-------------+-------------------+
> >> >       | Value  |  Description   | Recommended |     Reference     |
> >> >       +--------+----------------+-------------+-------------------+
> >> >       | 0x0201 | rsa_pkcs1_sha1 |      N      | [RFC8446][RFCTBD] |
> >> >       | 0x0203 |   ecdsa_sha1   |      N      | [RFC8446][RFCTBD] |
> >> >       +--------+----------------+-------------+-------------------+
> >> >
> >> >   Other entries of the resgistry remain the same.
> >> >
> >> >
> >> > <mglt>
> >> > It seems to me that TLS 1.2 is using the TLS
> >> > hash and TLS signature registry TLS signature
> >> > registry and TLS 1.3 is using Signature
> >> > Scheme.
> >> >
> >> > I suspect that TLS hash values for sha1 and
> >> > md5 should be deprecated. And RFCTBD should
> >> > be added for sha1 and md5. Note that the
> >> > SHOULD NOT status for CertificateRequest
> >> > may have prevented such deprecation.
> >>
> >> The TLS HashAlgorithm and TLS SignatureAlgorithm registries do not have
> a Recommended column. Likewise, there’s not a notes column. What I think we
> could do is replace the reference to [RFC5246] with [RFCTBD] (so it’s
> points to this document when it is published).
> >>
> > <mglt>
> > yes. My understanding so far is that the document deprecate SHA-1 and
> MD5 for TLS 1.3 not for TLS 1.2 for the IANA section.
> > </mglt>
> >
> >> > A side effect is these code points for
> >> > signature scheme that were assigned for
> >> > compatibility with legacy (TLS 1.2)
> >> > signatures must not be used anymore -  if
> >> > there are no more valid with TLS 1.2.
> >> > </mglt>
> >>
> >> This is what changing the Recommended to “N” is above so I think we’re
> good here?
> >>
> > <mglt>
> > yes, my point was to indicate that currently "N" deprecates the TLS 1.2
> legacy protocol for TLS 1.3 as opposed to the the protocols for TLS 1.2.
> Unless I misinterpreted the IANA registries I did not have the impression
> that the signature scheme replaced the registries of TLS 1.2. It is
> possible I am missing something with the IANA registries, but otherwise, I
> think the draft should be updated.
> > </mglt>
> >>
> >> spt
> >> _______________________________________________
> >> TLS mailing list
> >> TLS@ietf.org
> >> https://www.ietf.org/mailman/listinfo/tls
> >
> >
> >
> > --
> > Daniel Migault
> > Ericsson
>


-- 
Daniel Migault
Ericsson
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to