Hệ thống chống gian lận không chỉ so sánh cookie. Chúng ghép nhiều tín hiệu trình duyệt thành một dấu vân tay rồi tìm liên hệ giữa các tài khoản. Bài viết chỉ ra tín hiệu quan trọng và lý do thay Canvas là chưa đủ.
Trang web không chỉ thấy một nhãn trình duyệt, mà thấy cả tập hợp phép đo. Mỗi tín hiệu riêng lẻ khá yếu; khi ghép lại, chúng tạo thành dấu vân tay vẫn còn sau khi xóa cookie và đổi IP. Các tín hiệu chính gồm:
| Kênh | Những gì đang được đo lường | Giá trị phân biệt điển hình |
|---|---|---|
| Danh sách phông chữ | những phông chữ nào được cài đặt trên hệ thống | entropy cao nhất: 9,45 bit, 35% máy là duy nhất |
| WebGL | dòng card màn hình, thông số kết xuất | cao, phụ thuộc vào phần cứng |
| Canvas | hàm băm của hình ảnh được hiển thị | cao |
| Âm thanh | băm tín hiệu qua Web Audio | cao trên các máy khác nhau |
| Màn hình và DPR | độ phân giải và mật độ điểm ảnh | trung bình |
| Múi giờ, ngôn ngữ | cài đặt hệ thống | thấp riêng lẻ, tính nhất quán là quan trọng |
Phông chữ đứng đầu vì mang nhiều entropy nhất trong phép đo của chúng tôi. Chỉ riêng danh sách phông chữ đã cài đặt đã khiến 35% số máy trong mẫu trở nên độc nhất.
Lần đo đầu tiên cho thấy một vấn đề nghiêm trọng. Hai hồ sơ trên cùng máy, không có cấu hình thiết bị riêng, cho kết quả giống hệt nhau ở số đo phông chữ, tham số WebGL, clientRects và âm thanh trong mọi cấu hình. Trang web có thể liên kết các tài khoản này mà không cần cookie hay IP. Kết quả đó đã định hình kiến trúc sản phẩm.
Giải pháp không phải thêm nhiễu ngẫu nhiên, mà là cấp cho mỗi hồ sơ một cấu hình thiết bị nhất quán lấy từ máy tính thật. Khi cấu hình đó được áp dụng, các tín hiệu bắt đầu khác nhau. Chúng tôi đã xác nhận trên trình duyệt thực:
| bề mặt | Khác nhau giữa hai hồ sơ |
|---|---|
| WebGL nhà cung cấp và trình kết xuất | Có |
| Thông số WebGL | Có |
| Hình học màn hình và DPR | Có |
| Số lượng lõi và bộ nhớ | Có |
| Danh sách phông chữ | Có |
| Giọng nói tổng hợp | Có |
| Bảng hằng số âm thanh trên web | Có |
| Canvas | vâng, tiếng ồn là từ hạt giống hồ sơ |
Chỉ thay Canvas nhưng giữ nguyên danh sách phông chữ thật không ngăn được việc liên kết; các tín hiệu còn lại vẫn trùng nhau. Một số tín hiệu thậm chí không nên bị can thiệp.
Engine chủ động giữ nguyên số đo văn bản của các phông chữ phổ biến. Máy dò có kiểm tra measuretext-grid, được thiết kế để phát hiện đúng dạng sai lệch này. Can thiệp vào giá trị sẽ khiến trình duyệt dễ bị nhận diện hơn. clientRects cũng vậy (xem bcr-vs-range). Các tín hiệu này vốn không cần khác nhau: trên hai máy thật có cùng hệ điều hành và DPR, Arial có cùng độ rộng vì tệp phông chữ và hệ thống quyết định giá trị đó.
Hãy tự kiểm chứng. Tạo hai hồ sơ trong gói miễn phí, mở trang kiểm tra ở từng hồ sơ và so sánh các giá trị gốc:
Canvas và WebGL khác nhau, còn các tín hiệu trong từng cấu hình vẫn nhất quán. Bạn có thể kiểm tra trực tiếp trong dữ liệu gốc, không cần dựa vào mô tả của chúng tôi. Hoặc mở bài kiểm tra dấu vân tay trình duyệt: trang sẽ đo các tín hiệu của trình duyệt hiện tại và đặt một cấu hình NimbusX bên cạnh để bạn so sánh.
Hiện vẫn có một tín hiệu liên kết các hồ sơ chạy trên cùng máy: mã băm âm thanh kết xuất. Biến thiên âm thanh của engine gắn với tên miền, không gắn với hồ sơ. Hai máy thật tạo ra mã băm khác nhau; các hồ sơ trên cùng máy hiện vẫn cho cùng kết quả. Bảng điều khiển hiển thị rõ giới hạn này trong ô AUD của từng hồ sơ. Trước khi NimbusX có bản engine riêng, hãy chạy hồ sơ của cùng một nền tảng trên các máy khác nhau.
Dấu vân tay âm thanh: giới hạn hiện tại · Tính nhất quán quan trọng hơn số lượng