JA4H, JA4T và JA4L mở rộng fingerprinting TLS sang yêu cầu HTTP, bắt tay TCP và độ trễ: cách từng loại hoạt động và vì sao mâu thuẫn giữa chúng lại quan trọng.
Bài viết TLS Fingerprinting đã nói về JA3 và JA4 — dấu vân tay được đọc từ một ClientHello TLS duy nhất. Nhưng JA4 chưa bao giờ được thiết kế để đứng một mình. Nhà phát triển của nó, FoxIO, công bố nó như một phần của một họ lớn hơn gọi là JA4+, và phần lớn các thành viên trong họ này lấy dấu vân tay của những thứ chẳng liên quan gì đến TLS: chính bản thân yêu cầu HTTP, cái bắt tay TCP nằm bên dưới nó, và thậm chí cả thời gian gói tin di chuyển giữa client và server. Mỗi tầng được đọc độc lập, và như bạn sẽ thấy bên dưới, sức mạnh thật sự xuất hiện khi các tầng này mâu thuẫn với nhau.
Điểm mấu chốt
- JA4+ là một bộ, không phải một dấu vân tay duy nhất. JA4 phủ ClientHello TLS; JA4H lấy dấu vân tay yêu cầu HTTP, JA4T lấy dấu vân tay bắt tay TCP, và JA4L lấy dấu vân tay độ trễ kết nối — mỗi cái đọc một tầng độc lập, khác nhau, của cùng một kết nối.
- Các tầng độc lập với nhau, và đó chính là mấu chốt. User-Agent và dấu vân tay TLS cùng nói "Chrome trên Windows" trong khi dấu vân tay TCP lại nói "nhân Linux" — đó là dấu hiệu kinh điển của proxy hoặc trình duyệt chống phát hiện, và không tầng nào riêng lẻ có thể bắt được.
- JA4T đọc gói SYN trước khi có bất kỳ mã hóa nào. Kích thước cửa sổ, thứ tự tùy chọn TCP, MSS và hệ số window scale đều đến từ ngăn xếp mạng của hệ điều hành, nên JA4T thực chất nhận diện nhân hệ điều hành — cùng tín hiệu được mô tả trong bài TCP/IP Fingerprinting, chỉ khác là JA4T đóng gói nó thành một chuỗi có cấu trúc, sắp xếp được.
- Định dạng được thiết kế cố ý để con người đọc được. Khác với hash MD5 mờ đục của JA3, mỗi dấu vân tay JA4+ đều được chia thành cấu trúc
a_b_c, với phần tiền tố mà bạn có thể đọc hiểu một phần bằng mắt thường — và nhà phân tích có thể chỉ khớp một phần chuỗi thay vì toàn bộ. - Giấy phép được chia làm hai. Bản thân JA4 là mã nguồn mở (BSD 3-Clause) và FoxIO cho biết sẽ không đăng ký bằng sáng chế cho nó. JA4H, JA4T, JA4L và các thành viên còn lại của bộ "+" đang chờ cấp bằng sáng chế và phát hành theo FoxIO License 1.1: được dùng cho mục đích học thuật và nội bộ doanh nghiệp, nhưng muốn đưa vào sản phẩm hoặc dịch vụ hosted để bán thì cần giấy phép OEM.
- Không có gì trong số này lộ ra cho JavaScript của trang. JA4+ được tính toán bởi một máy chủ, một CDN, hoặc một thiết bị mạng đọc các gói tin thô — một công cụ phía client như kiểm tra dấu vân tay của chúng tôi không thể hiển thị JA4H hay JA4T của chính bạn, vì trình duyệt của bạn không bao giờ nhìn thấy các gói tin nó vừa gửi đi.
Ôn Lại Nhanh: JA4 (TLS)
Bài viết TLS Fingerprinting đã bao quát chủ đề này chi tiết, nên đây là phiên bản ba câu. Mỗi kết nối HTTPS mở đầu bằng một ClientHello dạng văn bản thuần liệt kê các bộ mã hóa, extension và đường cong elliptic, theo một thứ tự do thư viện TLS của client quyết định, chứ không phải người dùng. JA4 sắp xếp các giá trị này, loại bỏ nhiễu GREASE, rồi băm phần còn lại thành một dấu vân tay như t13d1517h2_8daaf6152771_cb7bf5808d99 — ổn định qua các phiên, có tiền tố đọc được, và đặc trưng cho thư viện TLS đang dùng. Mọi thứ bên dưới đây đọc một tầng khác của cùng kết nối đó.
JA4H: Lấy Dấu Vân Tay Yêu Cầu HTTP
JA4H đọc chính yêu cầu HTTP mà client gửi — không phải nội dung phần thân, mà là hình dạng của yêu cầu (với HTTPS, việc này do bên kết thúc TLS thực hiện: chính máy chủ hoặc CDN đứng trước nó). Theo đặc tả JA4H của FoxIO, phần tiền tố đọc được của dấu vân tay biểu diễn: phương thức yêu cầu (hai chữ cái đầu, viết thường — ge cho GET, po cho POST), phiên bản HTTP (11 cho HTTP/1.1, 20 cho HTTP/2), có header Cookie hay không (c/n), có header Referer hay không (r/n), số lượng header gồm hai chữ số (không tính Cookie và Referer), và bốn ký tự đầu của giá trị Accept-Language (enus cho en-US, hoặc 0000 khi thiếu header này). Theo sau tiền tố là các hash ngắn của tên header theo đúng thứ tự gửi, của tên các trường cookie, và của tên cookie kèm giá trị. Hash tên cookie thường giống nhau với mọi khách truy cập một trang web, còn hash kèm giá trị thì khác nhau theo từng người dùng.
Một ví dụ thực tế từ bảng dấu vân tay FoxIO công bố: bộ tải mã độc IcedID cho ra JA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982. Đọc ra, đó là một yêu cầu GET qua HTTP/1.1, có cookie, không có referer, chỉ có thêm hai header khác, và hoàn toàn không có Accept-Language (phần 0000 ở cuối). Cả hai chi tiết đều rất lộ. Trình duyệt thật thường gửi từ mười header trở lên theo một thứ tự ổn định, đặc trưng cho từng trình duyệt, và thứ tự header chính là thứ đoạn hash thứ hai ghi lại; FoxIO cũng chỉ ra rằng việc thiếu Accept-Language là dấu hiệu mạnh cho thấy client không phải một trình duyệt do người thật điều khiển. Đây cùng là ý tưởng về tín hiệu thứ tự header được bàn trong bài kết nối HTTP/2, chỉ khác là được áp dụng tổng quát thay vì cho riêng một phiên bản giao thức. Nếu bạn so sánh dấu vân tay theo thời gian, hãy lưu ý một thay đổi gần đây: bản sửa lỗi ngày 27/8/2026 khiến triển khai Rust của FoxIO loại các pseudo-header của riêng HTTP/2 (:method, :path, :scheme, :authority) khỏi JA4H, vì chúng là bắt buộc theo giao thức chứ không phải lựa chọn của client — nên dấu vân tay HTTP/2 do công cụ này tạo ra trước và sau bản sửa sẽ không khớp nhau.
JA4T: Lấy Dấu Vân Tay Bắt Tay TCP
JA4T đọc gói SYN mở đầu kết nối TCP — cùng tầng được mô tả trong bài TCP/IP Fingerprinting, chỉ khác là được đóng gói vào định dạng JA4 có cấu trúc của FoxIO thay vì kiểu khớp chữ ký như p0f. Nó kết hợp bốn giá trị từ header TCP: kích thước cửa sổ được thông báo, các tùy chọn TCP theo đúng thứ tự ngăn xếp gửi đi (theo mã số loại của chúng — 2 cho MSS, 1 cho phần đệm NOP, 3 cho window scale, 4 cho SACK-permitted, 8 cho timestamp), giá trị kích thước đoạn tối đa, và hệ số window scale.
Ví dụ của FoxIO cho một client Windows 11 là JA4T=64240_2-1-3-1-1-4_1460_8: cửa sổ 64240 byte, các tùy chọn theo thứ tự MSS–NOP–WindowScale–NOP–NOP–SACKPermitted, MSS là 1460, và window scale là 8. Không điều nào trong số này phụ thuộc vào TLS, HTTP hay header User-Agent — chúng được nhân hệ điều hành ghi vào trước khi trình duyệt gửi dù chỉ một byte đã mã hóa. Những chi tiết nhỏ mang nhiều tín hiệu: FoxIO lưu ý rằng Windows không gửi tùy chọn timestamp (8) còn các ngăn xếp kiểu Unix thì có, nên việc ví dụ trên thiếu 8 tự nó đã là dấu hiệu của Windows. Trường MSS không chỉ nói về hệ điều hành mà còn về đường truyền mạng. MSS 1460 là giá trị tương ứng với MTU 1500 byte của Ethernet tiêu chuẩn; giá trị thấp hơn như 1380 cho thấy có overhead của mã hóa hoặc tunnel, và FoxIO mô tả một dấu vân tay kiểu Unix có MSS 1424 — tức dư 36 byte overhead — là có thể đi qua một tunnel không mã hóa hoặc proxy. Về phía công cụ, bản sửa lỗi ngày 27/8/2026 đã đồng bộ định dạng trường số trong triển khai Rust của FoxIO với các triển khai Wireshark và Zeek của chính họ — điều này quan trọng nếu bạn so sánh chuỗi JA4T do các công cụ khác nhau tạo ra.
JA4L: Lấy Dấu Vân Tay Độ Trễ
JA4L là thành viên khác biệt — nó không lấy dấu vân tay từ trường giao thức nào cả, mà từ thời gian của quá trình bắt tay. Gọi ba gói tin của bắt tay TCP là A (SYN), B (SYN-ACK) và C (ACK), được điểm quan sát ghi lại thời gian. FoxIO định nghĩa JA4L-C = (C − B) / 2, ước tính độ trễ một chiều từ điểm quan sát tới client, và JA4L-S = (B − A) / 2, ước tính tương tự về phía máy chủ; cả hai tính bằng micro giây và đi kèm TTL quan sát được trên gói tin của phía tương ứng. Một cảm biến đặt sát máy chủ sẽ có JA4L-C mang ý nghĩa và JA4L-S gần bằng 0, và ngược lại. Vì chỉ đọc thời gian gói tin và header IP, JA4L hoạt động bất kể lưu lượng có được mã hóa hay không.
Cả hai con số đều mang ý nghĩa vật lý. Tín hiệu trong cáp quang không thể nhanh hơn ánh sáng — FoxIO dùng khoảng 0,128 dặm (khoảng 0,2 km) mỗi micro giây, nhân với hệ số trễ lan truyền để tính đến định tuyến thực tế — nên chỉ số độ trễ đặt ra giới hạn trên cho khoảng cách vật lý tới đầu bên kia; đó là lý do FoxIO giới thiệu JA4L như một phép đo vị trí không kém gì phép đo độ trễ. TTL cho thêm manh mối thứ hai: mỗi hệ điều hành bắt đầu từ một giá trị ban đầu khác nhau (thường là 64 với Linux và macOS, 128 với Windows), nên TTL quan sát được gợi ý cả số bước nhảy lẫn họ hệ điều hành của bên gửi — thêm một trường nữa có thể âm thầm mâu thuẫn với User-Agent.
Nhờ vậy, JA4L trở thành phép đối chiếu chéo cho các tuyên bố về vị trí. Nếu địa chỉ IP của một kết nối được định vị ở châu lục khác nhưng quá trình bắt tay hoàn tất chỉ trong một hai mili giây, chắc chắn có gì đó sai — máy hoàn tất bắt tay thực tế đang ở gần, bất kể cơ sở dữ liệu IP nói gì. Trường hợp ngược lại là bằng chứng yếu hơn nhưng vẫn hữu ích: VPN tầng 3 chuyển tiếp nguyên các gói bắt tay của chính client từ đầu này đến đầu kia, nên độ trễ bao gồm cả đoạn đường ẩn tới người dùng thật, và một chỉ số lớn hơn nhiều so với mức mà vị trí IP thoát giải thích được là dấu hiệu cho thấy client ở xa hơn vẻ ngoài. (Nghẽn mạng cũng có thể đẩy độ trễ lên, vì vậy chỉ số thấp đến vô lý mới là tín hiệu mạnh hơn.)
Hoàn Thiện Bộ: JA4X, JA4SSH và Các Thành Viên Khác
Còn vài thành viên nữa đáng để biết tên dù chúng nằm ngoài mối quan tâm hằng ngày của độc giả về quyền riêng tư trình duyệt. JA4X lấy dấu vân tay các chứng chỉ X.509 mà một máy chủ TLS (hoặc client, trong thiết lập mutual TLS) trình ra — nhưng FoxIO nói rõ rằng nó ghi lại cách chứng chỉ được tạo ra, chứ không phải các giá trị bên trong. Vì thế, các chứng chỉ do cùng một bộ công cụ tạo ra sẽ gom về cùng một dấu vân tay dù tên và khóa khác nhau — hữu ích để theo dõi hạ tầng máy chủ điều khiển (C2) của mã độc qua nhiều chiến dịch. JA4SSH áp dụng cùng ý tưởng cho SSH: nó tóm tắt một phiên đã mã hóa theo cửa sổ trượt (mặc định cứ mỗi 200 gói tin) dựa trên độ dài, số lượng gói tin và mẫu ACK — đủ để phân biệt shell tương tác với truyền tệp hay reverse shell mà không cần giải mã. Phần còn lại của bộ bao phủ phía máy chủ và các giao thức khác: JA4S (phản hồi TLS ServerHello), JA4TS (gói TCP SYN-ACK của máy chủ), JA4TScan (công cụ quét TCP chủ động) và JA4D (DHCP). Không cái nào chạm trực tiếp đến trình duyệt, nhưng tất cả đều theo cùng triết lý thiết kế như JA4H/T/L: lấy dấu vân tay những gì ổn định về mặt cấu trúc ở một client, bất kể nó tự nhận mình là gì.
Vì Sao Sự Mâu Thuẫn Giữa Các Tầng Mới Là Điều Quan Trọng
Mọi dấu vân tay được bàn đến trên trang này cho đến nay — canvas, WebGL, TLS — đều trả lời câu hỏi "một tín hiệu này nói gì về client". Đóng góp thật sự của JA4+ là biến điều đó thành một phép đối chiếu chéo: đọc nhiều tầng độc lập của cùng một kết nối, và xem chúng có kể cùng một câu chuyện hay không.
Một ví dụ cụ thể: một hệ thống cào dữ liệu chạy trên máy chủ Linux, gửi User-Agent của Chrome trên Windows và dùng thư viện giả lập TLS để JA4 của nó khớp chính xác với Chrome. Điều đó đủ để đánh lừa một phép kiểm tra chỉ nhìn vào TLS. Nhưng nhân của chính máy chủ đó vẫn tự viết gói SYN TCP của mình — JA4T đọc ra kích thước cửa sổ, thứ tự tùy chọn và MSS của Linux, những thứ mà thư viện giả lập không hề đụng tới, vì nó hoạt động ở tầng trên ngăn xếp mạng của hệ điều hành. Một hệ thống phát hiện ghi lại cả hai dấu vân tay sẽ thấy một yêu cầu tự xưng là Chrome trên Windows lại đi qua một cái bắt tay TCP rõ ràng là của Linux — và mâu thuẫn đó khó sửa hơn nhiều so với việc sửa một dấu vân tay đơn lẻ: nó đòi hỏi kiểm soát đồng thời thư viện giả lập, ngăn xếp TCP của nhân, và thứ tự header của client HTTP; bỏ sót tầng nào, điểm bất nhất sẽ lộ ra ở đúng tầng đó. Đây là cùng nguyên tắc tầng kép được mô tả trong bài các kỹ thuật phát hiện bot và trong bài về cách JA3/JA4 kết hợp với TCP/IP fingerprinting — sự không nhất quán giữa các tầng quan sát được là bằng chứng mạnh hơn bất kỳ bất thường đơn lẻ nào.
Khả Năng Đọc Của Định Dạng: Vì Sao Chuỗi JA4+ Đọc Được
Đầu ra của JA3 là một hash MD5 mờ đục duy nhất — hữu ích để khớp chính xác, nhưng vô dụng khi liếc qua một dòng log. FoxIO đã thiết kế mỗi dấu vân tay JA4+ xoay quanh một cấu trúc a_b_c cố ý dễ đọc: một tiền tố có thể giải mã trực tiếp bằng văn bản (phương thức, phiên bản, số đếm, cờ), theo sau bởi một hoặc nhiều hash ngắn cho những phần quá chi tiết để viết ra trực tiếp. Khả năng đọc đó không chỉ để làm đẹp. README của FoxIO viết rằng định dạng này cho phép săn tìm mối đe dọa và phát hiện chỉ bằng ab, ac hoặc chỉ c — ví dụ, nhà phân tích có thể khớp tiền tố đọc được cùng một đoạn hash và bỏ qua đoạn còn lại.
Điều này cũng mang lại lợi ích thực tế: vì định dạng được đặc tả công khai thay vì phải dịch ngược, các bên thứ ba có thể xây dựng triển khai tương thích. README của FoxIO liệt kê các công cụ và dịch vụ hỗ trợ gốc, gồm Suricata, Arkime, ntopng, Cloudflare, AWS CloudFront và WAF, cùng Google Cloud Armor; còn Wireshark và Zeek được hỗ trợ qua plugin nằm trong kho mã tham chiếu của FoxIO. Khả năng tương thích chỉ đứng vững khi mọi triển khai cho ra chuỗi giống hệt nhau đến từng byte, và điều đó cần bảo trì liên tục: ngày 27/8/2026, FoxIO hợp nhất hai bản sửa lỗi về tính chính xác trong cùng một ngày — các trường số của JA4T trong triển khai Rust được căn chỉnh lại theo đầu ra của Wireshark và Zeek, còn dấu vân tay JA4H bản Rust được sửa để loại pseudo-header HTTP/2. Đó là lời nhắc rằng mọi mô tả về định dạng chính xác của các dấu vân tay này chỉ đúng với phiên bản triển khai mà nó dựa vào.
Giấy Phép: Vì Sao Hệ Sinh Thái Bị Chia Đôi
Bản thân JA4 — dấu vân tay TLS phía client — được phát hành theo giấy phép BSD 3-Clause, cùng điều khoản mà JA3 từng dùng, và FoxIO tuyên bố không có yêu cầu bằng sáng chế nào với nó cũng như sẽ không đăng ký. Mọi thành viên khác của bộ (JA4S, JA4H, JA4L, JA4X, JA4SSH, JA4T và phần còn lại) đang chờ cấp bằng sáng chế và được cấp phép theo FoxIO License 1.1: cho phép dùng cho mục đích học thuật và nội bộ doanh nghiệp, nhưng cần giấy phép OEM nếu muốn kiếm tiền từ các phương pháp này trong sản phẩm hoặc dịch vụ hosted. Đó là một lý do khiến một số công cụ và dịch vụ chỉ triển khai JA4 mà bỏ qua phần còn lại của bộ — một quyết định về giấy phép không kém gì về kỹ thuật.
Bạn Thực Sự Có Thể Làm Gì Với Điều Này
Không có gì trong JA4H, JA4T hay JA4L đọc được từ JavaScript của trang. Cả ba được tính khi lưu lượng đi tới — từ header TCP và thời gian bắt tay, cùng yêu cầu HTTP sau khi TLS được kết thúc — bởi bất cứ thứ gì nằm trên đường truyền: máy chủ, node biên CDN hoặc thiết bị giám sát. Vì vậy, công cụ kiểm tra dấu vân tay của chúng tôi, giống mọi bản demo fingerprinting thuần phía client, không thể hiển thị chuỗi JA4H hay JA4T của bạn: trình duyệt không nhìn thấy các gói tin mà hệ điều hành vừa gửi đi thay cho nó.
Những gì bạn có thể làm:
- Xem JA4 tầng TLS của bạn theo thời gian thực. Trang TLS fingerprinting hiển thị phiên bản TLS, bộ mã hóa và — khi có — hash JA4 mà node biên của chúng tôi quan sát được từ kết nối hiện tại của bạn.
- Kiểm tra nửa phía trình duyệt của phép đối chiếu chéo. Công cụ phát hiện bot của chúng tôi tìm dấu vết tự động hóa và rò rỉ của trình duyệt headless, còn kiểm tra dấu vân tay cho thấy các tín hiệu canvas, WebGL và phông chữ mà một trang web có thể ghép với dấu vân tay tầng mạng.
- Tự thu thập phần còn lại. Ghi lại lưu lượng của chính bạn bằng Wireshark với plugin JA4+ của FoxIO để xem JA4T và JA4L; JA4H cần yêu cầu HTTP ở dạng rõ, nên chỉ xuất hiện với HTTP không mã hóa, trừ khi bạn cấu hình Wireshark giải mã TLS.
Ranh Giới Với Các Bài Viết Khác Trên Trang Này
- TLS Fingerprinting Giải Thích bao quát JA3/JA4 trên chính ClientHello — tầng mà bài viết này giả định là kiến thức nền.
- TCP/IP Fingerprinting bao quát việc phát hiện hệ điều hành từ header IP/TCP nói chung, độc lập với tên gọi và định dạng của JA4T.
- HTTP/2 Fingerprinting bao quát dấu vân tay Akamai — giá trị SETTINGS, thứ tự pseudo-header — một chữ ký tầng HTTP khác với JA4H.
- HTTP/3 và QUIC Fingerprinting bao quát dấu vân tay tham số truyền tải riêng của QUIC.
- TLS Hậu Lượng Tử bao quát cách trao đổi khóa ML-KEM định hình lại kích thước và các trường của ClientHello.
- Cách Phát Hiện Giả Mạo User-Agent bao quát cùng nguyên tắc bất nhất giữa các tầng nhưng từ phía User-Agent.
Bài viết này nói riêng về họ JA4+ như một bộ thống nhất được đặt tên, và vì sao đọc các tầng của nó cùng nhau — chứ không phải chỉ một tầng riêng lẻ — mới thực sự hữu ích.
Câu Hỏi Thường Gặp
JA4H có giống với fingerprinting thứ tự header HTTP không?
Liên quan chặt chẽ, nhưng không giống hệt. JA4H là định dạng cụ thể, được chuẩn hóa của FoxIO cho việc lấy dấu vân tay yêu cầu HTTP — một tiền tố được định nghĩa rõ ràng cộng với các đoạn hash, được công bố để nhiều công cụ có thể tạo ra và so sánh cùng một chuỗi. "Fingerprinting thứ tự header HTTP" là kỹ thuật tổng quát hơn mà nó dựa vào; các công cụ và hệ thống phát hiện khác tính các tín hiệu tương tự theo định dạng riêng của họ, không tương thích với nhau.
VPN có thay đổi dấu vân tay JA4T của tôi không?
Một phần — và còn tùy đó là VPN hay proxy. VPN toàn tunnel (WireGuard, OpenVPN, IPsec) chuyển tiếp các gói TCP do chính hệ điều hành của bạn tạo ra, nên kích thước cửa sổ, thứ tự tùy chọn và window scale trong JA4T vẫn mô tả nhân hệ điều hành của bạn. Thứ thường thay đổi là MSS: overhead đóng gói của tunnel đẩy nó xuống dưới mức 1460 của kết nối Ethernet thông thường, và FoxIO nêu các giá trị như 1380 là dấu hiệu của mã hóa hoặc tunnel. Proxy thì khác — nó tự mở một kết nối TCP riêng tới trang web, nên JA4T mô tả hệ điều hành của máy chủ proxy chứ không phải của bạn. Dù là trường hợp nào, một JA4T trông giống tunnel hoặc máy Linux trong trung tâm dữ liệu, đi kèm dấu vân tay TLS tự nhận là trình duyệt tiêu dùng thông thường, đều là một trong những tín hiệu được nêu trong bài cách các trang web phát hiện VPN và proxy.
Tôi có thể tra cứu dấu vân tay JA4 của chính mình ở đâu không?
Bạn có thể xem dấu vân tay JA4 (TLS) trực tiếp của mình trên trang TLS fingerprinting của trang này, vì đó là dấu vân tay được tính toán phía máy chủ từ kết nối của bạn rồi hiển thị ngược lại cho bạn. JA4H, JA4T và JA4L cần một công cụ đọc gói tin thô hoặc yêu cầu HTTP đầy đủ — chúng không thể hiện qua một widget đơn giản phía client theo cách mà dấu vân tay bắt tay TLS làm được.
Vì sao một công ty lại trả tiền cho giấy phép JA4+ thay vì chỉ dùng JA3?
Vì thiết kế của JA4+ giải quyết những vấn đề thực sự mà JA3 gặp phải — khả năng chống GREASE, đầu ra có thể sắp xếp/đọc được, và bao phủ những tầng mà JA3 chưa từng chạm đến — những giá trị đủ lớn để các nhà cung cấp bảo mật xây dựng sản phẩm xoay quanh nó. Bản thân FoxIO License 1.1 đã cho phép dùng miễn phí cho mục đích học thuật và nội bộ doanh nghiệp; giấy phép OEM chỉ cần khi một công ty kiếm tiền từ các phương pháp JA4+ trong sản phẩm hoặc dịch vụ hosted. JA4 vẫn theo giấy phép BSD, nên nhà cung cấp chỉ cần dấu vân tay tầng TLS thì hoàn toàn không cần xin giấy phép.


