-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TLS 1.3 #1031
Labels
Milestone
Comments
An implementation should (not must, https://tools.ietf.org/html/rfc8446#section-9.1) implement ChaCha20 and the algorithm is slow (the only reason for it is that its pure software implementation is faster than AESs):
|
10 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
TLS 1.3 is defined in RFC 8446 and partially implemented in our donor, mbedTLS. Current Tempesta TLS moves far from mbedTLS, so a new features from mbedTLS can not be ported as is.
The task requires some of the items from #1335 for the cypro math, but in this task we can start just with borrowing some code from mbed TLS and leave performance optimizations for #1335.
At least following functionality must be implemented in the first pull request. Probably it makes sense to make a separate pull request for each of the points.
mbedtls_ssl_psk_derive_premaster()
must be completely different as well as format of the PSK extension in key exchange record. Anyway, we still don't need out-of-band distributed keys - the main part of the removed code. It seems none of a real clients, like browswers, actually support 0rtt due to it's security issues - please check this for Chrome and Firefox and move this to a separate issue.Encrypted SNI is important, already frequently used, feature.ESNI is a separate standard, not a part of RFC 8446. Also it's still in draft state. Probably it's better to leave the feature until we get a request for it.)TTLS_MINOR_VERSION_4
), see JA5 fingerpringing computation and filtration #2052The implementation must consider QUIC #724 requirements (RFC 9001) and develop necessary TLS 1.3 routines for it. Basically QUIC isn't a layered protocol, so it requires specific TLS 1.3 interfaces. See picotls and its usage in quant for an example of QUIC/TLS1.3 interoperability.
According to RFC 8740 we must not support post-handshake CertificateRequest messages, but must implement key updates and NewSessionTicket messages.
Move Tempesta TLS to 0.4.0 version on implementing the extension.
Related project for the Linux kernel TLS 1.3 handshakes https://github.com/lxin/tls_hs/
Testing
As part of the issue (during the debugging) please develop functional tests
tls/
for TLS 1.3 like #737 . Note that the current scapy-ssl_tls implementation of TLS 1.3 is outdated, so the native Sapy TLS layer must be used.The text was updated successfully, but these errors were encountered: