https://github.com/caido/tls-impersonate
Library for TLS impersonification
https://github.com/caido/tls-impersonate
impersonate rust tls
Last synced: 3 months ago
JSON representation
Library for TLS impersonification
- Host: GitHub
- URL: https://github.com/caido/tls-impersonate
- Owner: caido
- License: mit
- Created: 2024-12-28T19:29:52.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-01-03T22:32:33.000Z (9 months ago)
- Last Synced: 2025-06-22T00:55:51.716Z (4 months ago)
- Topics: impersonate, rust, tls
- Language: Rust
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TLS Impersonate
This library is for TLS impersonification **only**. The goal is to try tofool a WAF by micmicking the `JA3`/`JA4` fingerprint.
## Limitations
The impersonification is never perfect, it usually also requires modifications at the application layer.
- You will not fool `JA4H` though unless you set the proper HTTP headers
- If you do `Http/1.1` only, `JA4` will see it and might block you
- We don't do TLS extension ordering, so older `JA3` WAF might block you (Chrome also randomizes since 2023)## Support for TLS library
Currently this library is built for `OpenSSL`, but we have made it possible to support other libraries.
Feel free to send a PR if you wish to see wider support.## Resources
- [TLS Fingerprinting with JA3 and JA3S](https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/)
- [JA4+ Network Fingerprinting](https://blog.foxio.io/ja4%2B-network-fingerprinting)## Credits
We took a lot of inspiration from [rquest](https://github.com/penumbra-x/rquest), if you need a simple to use/ready-to-go client you should look at that crate.