NimbusX
00
› đã tải trang
← blog
dấu vân tay08.08.20269 phút

Trình kiểm tra liên kết hồ sơ như thế nào

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 đủ.

01Dấu vân tay trình duyệt, không phải cookie

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ênhNhững gì đang được đo lườngGiá 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ốngentropy cao nhất: 9,45 bit, 35% máy là duy nhất
WebGLdòng card màn hình, thông số kết xuấtcao, phụ thuộc vào phần cứng
Canvashàm băm của hình ảnh được hiển thịcao
Âm thanhbăm tín hiệu qua Web Audiocao trên các máy khác nhau
Màn hình và DPRđộ phân giải và mật độ điểm ảnhtrung bình
Múi giờ, ngôn ngữcài đặt hệ thốngthấ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.

02Kết quả đo ban đầu

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ặtKhác nhau giữa hai hồ sơ
WebGL nhà cung cấp và trình kết xuấtCó
Thông số WebGLCó
Hình học màn hình và DPRCó
Số lượng lõi và bộ nhớCó
Danh sách phông chữCó
Giọng nói tổng hợpCó
Bảng hằng số âm thanh trên webCó
Canvasvâng, tiếng ồn là từ hạt giống hồ sơ

03Vì sao chỉ thay Canvas là chưa đủ

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ị đó.

Một sai lầm gần như dẫn đến sai hướng. Phiên bản đầu tiên của bài kiểm tra đo độ rộng của mười tám phông chữ phổ biến và luôn cho kết quả trùng nhau. Điều đó khiến cấu hình thiết bị tưởng như không hoạt động. Thực ra, hai máy được phân biệt bởi danh sách phông chữ đã cài đặt, chứ không phải số đo của những phông chữ dùng chung. Sau khi sửa cách kiểm tra, kết quả đảo ngược: hồ sơ B thấy ba phông chữ riêng của mình, còn hồ sơ A không thấy phông nào.

04Cách tự kiểm tra

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:

$ python -m app.cli profile create --name link-a $ python -m app.cli profile create --name link-b # mở cả hai hồ sơ rồi truy cập nimbusx.app/check

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.

05Giới hạn hiện tại

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.

06Đọc thêm

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

Tải xuống NimbusXCâu hỏi kỹ thuật: @Get_NimbusX_Bot