TLS1.3 change_cipher_spec as part of application data

Matt Caswell matt at openssl.org
Thu Nov 24 09:44:53 UTC 2022



On 24/11/2022 07:57, Neelabh Mam wrote:
> Hi,
> 
> With my openssl based FTPS client (non-blocking bio) targeting TLS1.3, I 
> see that immediately after a successful data channel handshake (with 
> session reuse), a dummy change_cipher_spec record and a non-application 
> data record are sent as part of the directory listing data. Same holds 
> true for file downloads as well..(again with session reuse). This seems 
> to be in line with the last paragraph in Appendix D.4 of RFC8446 which 
> mandates a change_cipher_spec record to be sent from the server in case 
> of session reuse. I could manually filter out the non-application data 
> records from the actual data.. However, I was wondering if there's some 
> api/setting in openssl that would do that at an API level.. as this 
> looks like it should ideally be part of openssl workflow. But then what 
> I am also not sure about is why the receipt of new session ticket data 
> on the control channel does not bubble up as application data ? Openssl, 
> from what I can tell, seems to be "consuming" it (new session data) 
> internally. The earlier 2 messages however, do get exposed out of 
> ssl_read and eventually become part of application data.

The only data you should be getting out of an `SSL_read` call is 
application data. If you're getting handshake or CCS messages as part of 
app data then something has gone very surprisingly wrong. I cannot 
imagine what would cause that.

You might want to open a github issue about that to dive into it in more 
detail.

Matt


> Is it like : 
> the message type warrants one to be exposed (change_cipher_spec) and the 
> other to be handled internally (new session data) ? Could we please 
> advise on openssl's standard operating workflow here ? Also, would I 
> have to add logic to manually separate these 2 non-application records 
> from the application data ? Is that how it is supposed to be ? Thank you.
> 
> Neelabh


More information about the openssl-users mailing list