Extended Master secret for TLS 1.3
Matt Caswell
matt at openssl.org
Mon Aug 21 14:01:20 UTC 2023
On 21/08/2023 14:16, Manish Patidar wrote:
> Thanks Matt and Ben for clarifications on EMS.
>
> I have further question on EMS.
> 1. For OpenSSL 3.0.8(in FIPS mode), which is FIPS140-2 certified, does
> EMS is mandatory extension for TLS1.2 client/server.
> As per my testing, it is not a mandatory extension.
>
> 2. For OpenSSL 3.1.x, which going for FIPS140-3 certification, does EMS
> will become mandatory extension in FIPS mode ?
>
> Why above question :
>
> RHEL 9.2 have following warning for FIPS mode:
> Warning
>
> A RHEL 9.2 and later system running in FIPS mode enforces that any TLS
> 1.2 connection must use the Extended Master Secret (EMS) extension (RFC
> 7627) as requires the FIPS 140-3 standard. Thus, legacy clients not
> supporting EMS or TLS 1.3 cannot connect to RHEL 9 servers running in
> FIPS mode, RHEL 9 clients in FIPS mode cannot connect to servers that
> support only TLS 1.2 without EMS. See TLS Extension "Extended Master
> Secret" enforced with Red Hat Enterprise Linux 9.2
> <https://access.redhat.com/solutions/7018256>
>
> For TLSv1. 2 client/server, Does EMS is mandatory for FIPS140-3
> certified crypto module?
In OpenSSL 3.1 there is a configuration option available to enforce EMS
in TLSv1.2 with the 3.1 FIPS module. See the -ems_check option on the
man page for fipsinstall here:
https://www.openssl.org/docs/man3.1/man1/openssl-fipsinstall.html
Also see this issue for further information on this:
https://github.com/openssl/openssl/issues/19989
Matt
>
> Regards
> Manish
>
>
>
> On Mon, 21 Aug 2023, 2:58 pm Matt Caswell, <matt at openssl.org
> <mailto:matt at openssl.org>> wrote:
>
>
>
> On 18/08/2023 18:01, Manish Patidar wrote:
> > Hi
> > I am using OpenSSL 3. 0.8.
> > Need some info regarding Extended Master Secret extension.
> > I have notice this extension is used for TLS1.2 connection (TLS1. 2
> > specific client and Generic server) but this extension is not
> used for
> > TLS1. 3 connection (Generic client and Generic server). Confirmed by
> > using SSL_get_extms_support.
> >
> > Does TLS1.3 supports Extended Master Secret extension?
>
> The Extended Master Secret extension is not relevant to TLSv1.3 and
> therefore a TLSv1.3 connection will not negotiate it.
>
> However, arguably, the behaviour of SSL_get_extms_support is wrong due
> to this statement in RFC8446 (TLSv1.3):
>
> Appendix D (Backwards Compatibility)
>
> TLS 1.2 and prior supported an "Extended Master Secret" [RFC7627]
> extension which digested large parts of the handshake
> transcript into
> the master secret. Because TLS 1.3 always hashes in the transcript
> up to the server Finished, implementations which support both
> TLS 1.3
> and earlier versions SHOULD indicate the use of the Extended Master
> Secret extension in their APIs whenever TLS 1.3 is used.
>
>
> So, SSL_get_extms_support() should perhaps return "true" in TLSv1.3
> even
> though EMS wasn't actually negotiated. It might be too late to change
> this though.
>
> Matt
>
>
More information about the openssl-users
mailing list