[8u] RFR : TLSv1.3 protocol support

Martin Balao mbalao at redhat.com
Mon Jun 15 22:44:17 UTC 2020


Hi Alexey,

Below this email you'll find my independent list of the bugs covered
under Step 1 (8245468). This list is based on what Oracle backported to
their closed 8u261 (related to TLS 1.3). There may be bugs missing
because our file-replacement approach may have dragged more things
implicitly.

Can you please merge this list with the list you have and tell me the
diff? (so I can double-check the additions)

We need this list to be part of the commit message, so we document -in a
best-effort manner- what is under the scope.

In addition to documentation, going through each of these bugs was
useful to check that: 1) nothing was missing, and 2) find patches that
may have impact out of sun/security/ssl directory.

NOTE: the list does not include purely-test patches because they are not
covered under Step 1. I'll have a separate list later.

Below this email you'll also find a list of (non-vulnerability) patches
introduced between 11.0.7 and 11.0.8, which are not under the scope of
the work being done. We will need to backport each of them independently.

Thanks,
Martin.-

--

Step 1 (8245468) COVERED - 11.0.7
..............................

 * JDK-8212885: TLS 1.3 resumed session does not retain peer certificate
chain
 * JDK-8211806: TLS 1.3 handshake server name indication is missing on a
session resume
 * JDK-8207009: TLS 1.3 half-close and synchronization issues
 * JDK-8211866: TLS 1.3 CertificateRequest message sometimes offers
disallowed signature algorithms
 * JDK-8210334: TLS 1.3 server fails if ClientHello doesn't have
pre_shared_key and psk_key_exchange_modes
 * JDK-8214688: TLS 1.3 session resumption with hello retry request
failed with "illegal_parameter"
 * JDK-8210846: TLSv.1.3 interop problems with OpenSSL 1.1.1 when used
on the client side with mutual auth
 * JDK-8217610: TLSv1.3 fail with ClassException when EC keys are stored
in PKCS11
 * JDK-8221253: TLSv1.3 may generate TLSInnerPlainText longer than
2^14+1 bytes
 * JDK-8216045: The size of key_exchange may be wrong on FFDHE
 * JDK-8209965: The "supported_groups" extension in ServerHellos
 * JDK-8214098: sun.security.ssl.HandshakeHash.T12HandshakeHash
constructor check backwards.
 * JDK-8208166: Still unable to use custom SSLEngine with default
TrustManagerFactory after JDK-8207029
 * JDK-8214339: SSLSocketImpl erroneously wraps SocketException
 * JDK-8207237: SSLSocket#setEnabledCipherSuites is accepting empty string
 * JDK-8216326: SSLSocket stream close() does not close the associated
socket
 * JDK-8206355: SSLSessionImpl.getLocalPrincipal() throws NPE
 * JDK-8207317: SSLEngine negotiation fail exception behavior changed
from fail-fast to fail-lazy
 * JDK-8145854: SSLContextImpl.statusResponseManager should be generated
if required
 * JDK-8214129: SSL session resumption/SNI with TLS1.2 causes
StackOverflowError
 * JDK-8207223: SSL Handshake failures are reported with more generic
SSLException
 * JDK-8210989: RSASSA-PSS certificate cannot be selected for client
auth on TLSv1.2
 * JDK-8165275: Replace the reflective call to the implUpdate method in
HandshakeMessage::digestKey
 * JDK-8206176: Remove the temporary tls13VN field
 * JDK-8213202: Possible race condition in TLS 1.3 session resumption
 * JDK-8213782: NullPointerException in
sun.security.ssl.OutputRecord.changeWriteCiphers
 * JDK-8209916: NPE in SupportedGroupsExtension
 * JDK-8210974: No extensions debug log for ClientHello
 * JDK-8214321: Misleading code in SSLCipher
 * JDK-8236039: JSSE Client does not accept status_request extension in
CertificateRequest messages for TLS 1.3
 * JDK-8028518: Increase the priorities of GCM cipher suites
 * JDK-8212738: Incorrectly named signature scheme ecdsa_secp512r1_sha512
 * JDK-8215524: Finished message validation failure should be
decrypt_error alert
 * JDK-8221270: Duplicated synchronized keywords in SSLSocketImpl
 * JDK-8215790: Delegated task created by SSLEngine throws
java.nio.BufferUnderflowException
 * JDK-8219389: Delegated task created by SSLEngine throws
BufferUnderflowException
 * JDK-8225766: Curve in certificate should not affect signature scheme
when using TLSv1.3
 * JDK-8206929: Check session context for TLS 1.3 session resumption
 * JDK-8229733: TLS message handling improvements
 * JDK-8207029: Unable to use custom SSLEngine with default
TrustManagerFactory after updating to JDK 11 b21
 * JDK-8233954: UnsatisfiedLinkError or NoSuchAlgorithmException after
removing sunec.dll
 * JDK-8223482: Unsupported ciphersuites may be offered by a TLS client
 * JDK-4919790: Errors in alert ssl message does not reflect the actual
certificate status
 * JDK-8218889: Improperly use of the Optional API

MISSING 11.0.8 - important
..............................

 * JDK-8239798: SSLSocket closes socket both socket endpoints on a
SocketTimeoutException
 * JDK-8223940: Private key not supported by chosen signature algorithm
 * JDK-8211339: NPE during SSL handshake caused by HostnameChecker
 * JDK-8242141: New System Properties to configure the TLS signature schemes
 * JDK-8215711: Missing key_share extension for (EC)DHE key exchange
should alert missing_extension
 * JDK-8237474: Default SSLEngine should create in server role
 * JDK-8234728: Some security tests should support TLSv1.3
 * JDK-8234725: sun/security/ssl/SSLContextImpl tests support TLSv1.3
 * JDK-8205653:
test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java and
RmiSslBootstrapTest.sh fail with handshake_failure
 * JDK-8209333: Socket reset issue for TLS 1.3 socket close
 * JDK-8228757: Fail fast if the handshake type is unknown
 * JDK-8235263: Revert TLS 1.3 change that wrapped IOExceptions
 * JDK-8235311: Tag mismatch may alert bad_record_mac
 * JDK-8234727: sun/security/ssl/X509TrustManagerImpl tests support TLSv1.3
 * JDK-8235874: The ordering of Cipher Suites is not maintained provided
through "jdk.tls.client.cipherSuites" and "jdk.tls.server.cipherSuites"
system property.
 * JDK-8205111: Develop new Test to verify different key types for
supported TLS protocols.
 * JDK-8235183: Remove the "HACK CODE" in comment

MISSING 11.0.8 - not SSL strictly but related
..............................

 * JDK-7092821: java.security.Provider.getService() is synchronized and
became scalability bottleneck
 * JDK-8148188: Enhance the security libraries to record events of interest



More information about the jdk8u-dev mailing list