-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
WIP QUIC: Improving initial packet dissection and building. #4773
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
base: master
Are you sure you want to change the base?
Conversation
… where to parse/decrypt what
I have opened this draft PR to start a discussion on the best way to handle dissecting/building QUIC which has fields that must be protected/unprotected as well as payloads that must be encrypted/decrypted. For now, I am mostly focused on the dissection but I believe that building will follow a lot of the same structure.
I have started to go down this route, but it does mean effectively parsing the packet twice. Once in the Have any other layers encountered something like this? If so, I'd be interested in taking a look at how it was handled.
If I include the QUIC payload (the list of frames and their subsequent dissections) as part of the existing QUIC layer, I think it would make the most sense to handle the decryption in the @gpotter2 I want to loop you in due to your involvement with previous QUIC development in Scapy. Let me know your thoughts and I appreciate any input! |
I should've included this in the previous comment... If we are going to treat the QUIC frames as some type of second layer, then it may be appropriate to handle the payload decryption in the |
""" | ||
# QUIC header protection uses AES-ECB for generating a mask. | ||
cipher = Cipher(algorithms.AES(self.client_hp_key), modes.ECB(), backend=default_backend()).encryptor() | ||
mask = cipher.update(sample) + cipher.finalize() |
Check failure
Code scanning / CodeQL
Use of a broken or weak cryptographic algorithm High
The block mode ECB
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4773 +/- ##
===========================================
- Coverage 81.22% 46.77% -34.46%
===========================================
Files 363 348 -15
Lines 88396 88229 -167
===========================================
- Hits 71803 41265 -30538
- Misses 16593 46964 +30371
🚀 New features to boost your workflow:
|
Checklist:
cd test && ./run_tests
ortox
)This PR aims to improve the capability of the QUIC layer, specifically building and dissecting QUIC initial packets.
List of changes: