1个不稳定版本
0.5.0 | 2023年4月15日 |
---|
#68 在 #ssl
23KB
384 行
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 |
依赖项
~5.5–7.5MB
~143K SLoC