diff options
| author | Michael Brown | 2025-10-12 23:37:49 +0200 |
|---|---|---|
| committer | Michael Brown | 2025-10-13 00:25:09 +0200 |
| commit | e80818e4f6e3791ec8240bda0a72eef999e4bf26 (patch) | |
| tree | 0d153c702116a073fb0587c6c28f6ac4cb544bc5 /src/net | |
| parent | [tls] Refuse to resume sessions with mismatched master secret methods (diff) | |
| download | ipxe-e80818e4f6e3791ec8240bda0a72eef999e4bf26.tar.gz ipxe-e80818e4f6e3791ec8240bda0a72eef999e4bf26.tar.xz ipxe-e80818e4f6e3791ec8240bda0a72eef999e4bf26.zip | |
[tls] Disable renegotiation unless extended master secret is used
RFC 7627 states that renegotiation becomes no longer secure under
various circumstances when the non-extended master secret is used.
The description of the precise set of circumstances is spread across
various points within the document and is not entirely clear.
Avoid a superset of the circumstances in which renegotiation
apparently becomes insecure by refusing renegotiation completely
unless the extended master secret is used.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net')
| -rw-r--r-- | src/net/tls.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/net/tls.c b/src/net/tls.c index efecf368c..1d5a6c6d8 100644 --- a/src/net/tls.c +++ b/src/net/tls.c @@ -2082,7 +2082,7 @@ static int tls_new_hello_request ( struct tls_connection *tls, } /* Fail unless server supports secure renegotiation */ - if ( ! tls->secure_renegotiation ) { + if ( ! ( tls->secure_renegotiation && tls->extended_master_secret ) ) { DBGC ( tls, "TLS %p refusing to renegotiate insecurely\n", tls ); return -EPERM_RENEG_INSECURE; |
