-
Notifications
You must be signed in to change notification settings - Fork 771
Too many required hash updates in mtls TLS1.3 #5802
Description
Security issue notifications
If you discover a potential security issue in s2n we ask that you notify
AWS Security via our vulnerability reporting page. Please do not create a public github issue.
Problem:
s2n_conn_update_required_handshake_hashes sets which hash algorithms we're required to keep updating with the handshake transcript throughout the TLS handshake. I don't think anyone has looked at this in years, but specifically for client auth, all hashes are required, which is like 8 different hash algorithms. It is expensive to update 8 hashes on every handshake message in the mtls case.
Solution:
In TLS1.3 the hash on the ciphersuite is used to do the transcript hash. So only one hash is required once you know the protocol is TLS1.3, even in the client auth case. Note that this is not the case in TLS12 mutual auth, which allowed the client to choose their own hash algorithm for the transcript hash.
Requirements / Acceptance Criteria:
Benchmarks should show reduction in mtls handshake latency in the TLS1.3 case.