Hi, Brad

What Martin said. Additionally, I work for a vendor that has to really “lawyer 
up” sometimes.

So if RFC 2246 says “MUST implement X” and your code doesn’t implement X, just 
don’t claim compliance with RFC 2246. You can still have TLS 1.0 code for BC.

In general, people looking for statements about compliance will be fine with 
only claiming compliance with the latest and greatest as long as the latest and 
greatest is also implemented in their “other side”.  So TLS 1.2 is likely good 
enough.

As for what “MUST implement” means, there have been very long-winded 
discussions about this over the years. The general agreement seems to be “must 
implement but not necessarily enabled”. So if your implementation has 
TLS_RSA_WITH_3DES_EDE_CBC_SHA and it’s disabled by default and there’s some way 
to enable it, you can still claim RFC 4346 compliance.

Yoav

> On 4 Mar 2017, at 1:32, Bradford Wetmore <bradford.wetm...@oracle.com> wrote:
> 
> An interpretation question for our older RFCs, in particular TLSv1 [RFC2246] 
> and TLSv1.1 [RFC4346] in the context of recent developments [SWEET32].
> 
> In particular, likely for minimal interoperability reasons, specific 
> 3DES-based ciphersuites must be implemented in TLS:
> 
> TLS 1.0
> 
>   In the absence of an application profile standard specifying
>   otherwise, a TLS compliant application MUST implement the cipher
>   suite TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.
> 
> TLS 1.1
> 
>   In the absence of an application profile standard specifying
>   otherwise, a TLS compliant application MUST implement the cipher
>   suite TLS_RSA_WITH_3DES_EDE_CBC_SHA.
> 
> Ignoring the data limits approach, the degree of vendor/implementation 
> response to these ciphersuites varies:
> 
> 1.  default enabled/available ciphersuites remain the same,
> 
> 2.  reduce the ciphersuite priority, but the ciphersuites are still 
> enabled/available by default,
> 
> 3.  "disable" the ciphersuites by default, but allow for reenabling through 
> API or system configuration,
> 
> 4.  remove the ciphersuites from the binary (e.g. via conditional 
> compilation/packaging),
> 
> 5.  completely remove all trace from the library's source.
> 
> So, strictly speaking from a RFC point of view (not practical or security 
> POV, those are different questions), what do these "MUST implement" 
> statements mean in order for an implementation to still be considered 
> "spec-compliant" in the post-SWEET32 era.  1-2 above?  1-3? [RFC2119] isn't 
> clear on whether 3 would be ok.
> 
> Would 4-5 be considered technically non-compliant implementations?
> 
> Thanks,
> 
> Brad
> 
> [SWEET32] https://sweet32.info/
> [RFC2119] https://www.ietf.org/rfc/rfc2119.txt
> [RFC2246] https://www.rfc-editor.org/rfc/rfc2246.txt
> [RFC4346] https://www.rfc-editor.org/rfc/rfc4346.txt
> 
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls

Attachment: signature.asc
Description: Message signed with OpenPGP

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

Reply via email to