Skip to content
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

Add TLS 1.3 support #2132

Closed
wants to merge 18 commits into from
Closed

Conversation

romain-perez
Copy link
Contributor

@romain-perez romain-perez commented Jul 5, 2019

Edits by gpotter2: This PR has been split !

Original PR:

This PR adds support of TLS 1.3 :

  • Add new TLS 1.3 messages and extensions from RFC8446
  • Update the key schedule
  • Support of 0-RTT
  • New test vectors based from RFC8448
  • Basic automaton for TLS 1.3 client and server

TODO:

  • fix error management in automaton
  • middleblox compatibility

fixes #1668

@guedou
Copy link
Member

guedou commented Jul 5, 2019

Thanks a lot for this work!

There are some errors in the CI:

You can run these tests locally with tox -e flake8,spell

Other error seems related to tls13.uts. Some changes are useless such as def post_dissection(self, r): could you revert them?

This PR is quite dense. A good alternative that will simplify the review process is to split it into smaller PR, for example HKDF + examples, 0-RTT + examples, ... That way we could have a working implementation when we release v2.4.3 at the end of the month.

@gpotter2 gpotter2 added the tls label Jul 7, 2019
@gpotter2 gpotter2 mentioned this pull request Jul 7, 2019
@romain-perez
Copy link
Contributor Author

Thanks for the feedback.

I will correct the coding style and typos errors that i missed. I will also spit this large PR into smaller PR : a first with only basic TLS 1.3 handshake functionalities and then add each new functionalities individually

@guedou
Copy link
Member

guedou commented Jul 9, 2019 via email

@gpotter2
Copy link
Member

At this point if it's too much work splitting the PR, I'd also be fine to have a massive PR (if the tests manage to pass). Thanks an awesome work !

@romain-perez
Copy link
Contributor Author

I just created a new PR ( #2146). Should I close this one ?

@guedou
Copy link
Member

guedou commented Jul 15, 2019

As you wish. I am fine with keeping this PR open until the other ones are merged.

@guedou
Copy link
Member

guedou commented Jul 18, 2019

Could you add "fixing https://github.com/secdev/scapy/blob/master/doc/notebooks/tls/notebook4_tls13.ipynb" to you list of TLS1.3 related things to fix? Thanks.

@guedou
Copy link
Member

guedou commented Sep 10, 2019

@romain-perez any progress on the last part of this PR?

@romain-perez
Copy link
Contributor Author

Sorry for the delay, I couldn't work on this last month.
I already prepared all the next PR on my forked repository, I just need to do some minor cleaning in order to make it easier to merge.
I will submit the next one really soon.

@guedou
Copy link
Member

guedou commented Sep 10, 2019 via email

@acp6
Copy link

acp6 commented Nov 12, 2019

This looks promising, does it support writing SSL security testing scripts such as testing heartbleed, ccs attack, as scapy-ssl_tls did?

@gpotter2
Copy link
Member

This PR has now been merged as smaller PRs. See the edited message

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unable to parse TLS 1.3 Server Hello
4 participants