Giới thiệu
Chương trình Cloudflare Turnstile hoạt động trong trình duyệt khi gửi tin nhắn trên ChatGPT, được mã hóa để ẩn đi các chi tiết từ người dùng cuối.
Tính năng chính
- Kiểm tra 55 thuộc tính: Chương trình này xác minh thông qua 3 lớp khác nhau: browser fingerprint (dấu vân tay trình duyệt), các tiêu đề mạng Cloudflare, và trạng thái ứng dụng React của ChatGPT.
- Chương trình mã hóa: Turnstile bytecode ban đầu được mã hóa với một khóa XOR được tìm thấy trong các chỉ thị bytecode.
- Ứng dụng thực tế: Xác nhận rằng ứng dụng React ChatGPT thực sự đã được khởi động và chạy.
Chi tiết mã hoá
outer = json.loads(bytes(
base64decode(dx)[i] ^ p_token[i % len(p_token)]
for i in range(len(base64decode(dx)))
))
- XOR Key: Khóa trong chương trình mã hóa là một số float được nhúng trong bytecode.
Cách chương trình hoạt động
Thu thập thông tin
Mỗi chương trình con thu thập thông tin từ 55 thuộc tính được tổ chức trong 3 lớp:
-
Lớp 1: Dấu vân tay trình duyệt
- WebGL: Các thuộc tính như
UNMASKED_VENDOR_WEBGL,UNMASKED_RENDERER_WEBGL - Screen, Hardware, Font measurement
- DOM probing, Storage
- WebGL: Các thuộc tính như
-
Lớp 2: Mạng Cloudflare
- Tiêu đề biên mạng như
cfIpCity,userRegion
- Tiêu đề biên mạng như
-
Lớp 3: Trạng thái ứng dụng
- React internals như
__reactRouterContext
- React internals như
Tạo token
Sau khi dữ liệu được thu thập, chương trình thực thi các lệnh cuối và tạo ra một OpenAI-Sentinel-Turnstile-Token được gửi trong mỗi yêu cầu trò chuyện.
[
[96.05, 3.99, 3.99],
[22.58, 46.15, 57.34],
[33.34, 3.99, 74.43],
[1.51, 56.88, 3.99]
]
Kết luận
Sự mã hóa chủ yếu ngăn chặn việc tự kiểm tra, nhưng không ngăn chặn được phân tích chuyên sâu. Các dịch vụ của Cloudflare có thể điều chỉnh program để thay đổi các tiêu chí kiểm tra mà không cần thông báo.