RFR: 8331682: Slow networks/Impatient clients can potentially send unencrypted TLSv1.3 alerts that won't parse on the server [v26]

Artur Barashev abarashev at openjdk.org
Mon Nov 4 16:01:36 UTC 2024


On Fri, 1 Nov 2024 23:13:44 GMT, Bradford Wetmore <wetmore at openjdk.org> wrote:

>> Artur Barashev has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Remove logging
>
> src/java.base/share/classes/sun/security/ssl/SSLCipher.java line 1865:
> 
>> 1863:                     if (contentType == ContentType.ALERT.id
>> 1864:                         && bb.remaining() == 2) {
>> 1865:                         throw new GeneralSecurityException(String.format(
> 
> Ok, I am grudgingly ok with throwing a `GeneralSecurityException` here,  but only because it is then being rewrapped inside a `SSLProtocolException` in `decodeInputRecord`.  
> 
> `SSLProtocolException` isn't my first choice of exceptions, as it feels to me like it should be a `SSLHandshakeException` which is when the client/server were unable to negotiate the desired level of security for some reason.  But I see it's used throughout this class, so ok.  
> 
> From `SSLProtocolException`
> 
>> Normally this indicates a flaw in one of the protocol implementations.
> 
> I wouldn't really consider it a flaw in one of the protocol implementations, as the implementation is only acting on the data is had available at the time it decided to shutdown.

- It would be a flaw of protocol implementation of the other party, so if we are the server the flaw would be on the client's side which makes sense in this scenario.
- Yes, I've decided to use `GeneralSecurityException` for all the reasons you have listed.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21043#discussion_r1827975183


More information about the security-dev mailing list