1 个不稳定版本
0.5.0 | 2023 年 4 月 15 日 |
---|
#5 在 #ja3
24KB
389 行
ja3-rs
一个用 Rust 编写的简单的 JA3 TLS 指纹库。
这个crate允许消费者指纹 TLS 握手的 ClientHello 部分。它可以对 IPv4 和 IPv6 的 TLS 握手进行哈希处理。它高度依赖于 Rusticata 的 tls-parser 项目。
它支持从数据包捕获文件生成指纹,以及从网络接口的实时捕获,两者都使用 libpcap。
有关更多信息,请参阅原始的 JA3 项目。
数据包捕获文件指纹示例
use ja3::Ja3;
let mut ja3 = Ja3::new("test.pcap")
.process_pcap()
.unwrap();
// Now we have a Vec of Ja3Hash objects
for hash in ja3 {
println!("{}", hash);
}
实时捕获指纹示例
use ja3::Ja3;
let mut ja3 = Ja3::new("eth0")
.process_live()
.unwrap();
while let Some(hash) = ja3.next() {
println!("Hash: {}", hash);
}
基准测试
命令 | 平均值 [ms] | 最小值 [ms] | 最大值 [ms] | 相对 |
---|---|---|---|---|
ja3 huge-cap.pcap |
153.2 ± 2.3 | 149.8 | 157.2 | 34.85 ± 2.82 |
./target/release/examples/ja3huge-cap.pcap |
4.4 ± 0.3 | 3.6 | 5.5 | 1.00 |
依赖项
~4.5–7MB
~123K SLoC