5个不稳定版本
0.5.1 | 2020年6月20日 |
---|---|
0.5.0 | 2020年5月11日 |
0.4.0 | 2020年4月13日 |
0.3.1 | 2020年4月9日 |
0.3.0 | 2020年4月8日 |
#58 in #ssl
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 |
依赖项
~2.6–4MB
~80K SLoC