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

Fix wrong SSL 2.0 version and remove SSL 1.0 (bug in older JA4 spec) #592

Merged
merged 1 commit into from
Jan 18, 2025

Conversation

droe
Copy link
Contributor

@droe droe commented Jan 17, 2025

Fix version for SSL 2.0 and remove version for SSL 1.0, porting FoxIO-LLC/ja4#150, a bug fix made in the JA4 spec in August 2024. While here, also fix some versions mentioned in strings to match the code.

SSL 2.0 (draft spec) (draft rfc) uses a version field of 0x0002, not 0x0200. SSL 1 never existed outside of Netscape, as the original design was iterated upon to become SSL 2 before the first public version of SSL. I don't think it's public knowledge what the version field for SSL 1.0 looked like, or if it even was two bytes large or at the same offset on the wire.

Version field 0x0100, that nfdump is currently misattributing to SSL 1.0, was used by an early pre-RFC4347 implementation of DTLS in OpenSSL before 0.9.8f, when OpenSSL switched to the version field specified by RFC4347.

Caution

I did not perform any testing.

Fix version for SSL 2.0 and remove version for SSL 1.0, porting a bug
fix [1] made in the JA4 spec in August 2024.  While here, also fix some
versions mentioned in strings to match the code.

SSL 2.0 [2][3] uses a version field of 0x0002, not 0x0200.  SSL 1 never
existed outside of Netscape, as the original design was iterated upon to
become SSL 2 before the first public version of SSL.  I don't think it's
public knowledge what the version field for SSL 1.0 looked like, or if
it even was two bytes large or at the same offset on the wire.

Version field 0x0100, that nfdump is currently misattributing to SSL
1.0, was used by an early pre-RFC4347 implementation of DTLS in OpenSSL
before 0.9.8f [2], when OpenSSL switched to the version field specified
by RFC4347.

[1] FoxIO-LLC/ja4#150
[2] https://www-archive.mozilla.org/projects/security/pki/nss/ssl/draft02.html
[3] https://datatracker.ietf.org/doc/html/draft-hickman-netscape-ssl-00
[4] openssl/openssl@OpenSSL_0_9_8e...OpenSSL_0_9_8f
Copy link
Owner

@phaag phaag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Daniel for the PR. SSL 1.0 has been taken deliberatly taken into the code space - just to see, if there are any strange SSL connection ab(using) old protocols. So far I have not come across those, so it's fine to get rid of SSL 1.0

Although I use to check all PR, I have unlimited trust in your SSL knowhow :)

@phaag phaag merged commit a32fbcd into phaag:master Jan 18, 2025
1 check passed
@droe droe deleted the droe/fix-ja4-ssl2 branch January 19, 2025 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants