Dấu vân tay TLS
Ngay trong gói tin đầu tiên của kết nối HTTPS (ClientHello), trình duyệt của bạn đã liệt kê các bộ mã hóa, phần mở rộng và đường cong elliptic mà nó hỗ trợ. Băm các trường đó cho ra JA3 / JA4; khung SETTINGS mở đầu kết nối HTTP/2 cũng có thể lấy dấu vân tay theo cách tương tự. Tất cả diễn ra trước khi bất kỳ JavaScript nào chạy, và đổi UA không làm thay đổi nó.
- JA4
- Hash JA3
- Chuỗi JA3
- Dấu vân tay HTTP/2
- Phiên bản TLS
- Nguồn
- Quan sát tại
- Trình duyệt theo phân tích của máy chủ
- Số lần thấy tại đây
- Lần đầu thấy
- Số quan sát của JA4 này
- Tỷ lệ từ cùng họ trình duyệt
- Các trình duyệt dùng chung JA4 này
JA3 (Salesforce, 2017) nối phiên bản TLS, bộ mã hóa, phần mở rộng, đường cong và định dạng điểm theo thứ tự gốc rồi lấy MD5 — đổi thứ tự bất kỳ thứ gì là hash thay đổi. Từ Chrome 110, thứ tự phần mở rộng được xáo trộn ở mỗi kết nối, nên JA3 của cùng một Chrome gần như lần nào cũng khác. JA4 (FoxIO, 2023) sắp xếp trước khi băm (SHA-256 rút gọn) và đặt phiên bản TLS, SNI, ALPN và các số đếm vào một tiền tố đọc được như t13d1516h2, nhờ đó rất ổn định theo họ trình duyệt: mọi trình duyệt Chromium (Chrome, Edge, Brave…) dùng chung một JA4, Firefox và Safari có JA4 riêng. Trang web so sánh JA4 với UA — một UA khai báo Firefox trên bắt tay trông giống Chrome là công cụ tự động hóa hoặc trình duyệt chống phát hiện đã đổi UA; trang này thực hiện cùng phép so sánh dựa trên thống kê JA4 ↔ họ trình duyệt của riêng mình. Để thấy được dấu vân tay, máy chủ phải tự kết thúc TLS: trên hostname đi qua proxy Cloudflare (đám mây cam), bắt tay diễn ra ở biên của Cloudflare và máy chủ gốc chỉ thấy dấu vân tay của chính Cloudflare (Cloudflare chỉ cung cấp JA4 cho khách hàng Enterprise). Vì vậy fingerproxy chạy trên một hostname riêng chỉ có DNS (đám mây xám) mà trình duyệt gọi cross-origin một lần; khi điểm cuối đó không truy cập được, chúng tôi dùng dự phòng bên thứ ba check.ja3.zone, vốn chỉ cho JA3.