Chuyển đến nội dung chính
Dịch máy từ tiếng Anh. Xem bản gốc
Thuật ngữ · Fingerprinting

Canvas fingerprinting

Nhận dạng một thiết bị từ những khác biệt nhỏ trong cách nó kết xuất một bản vẽ HTML canvas.

Định nghĩa

Canvas fingerprinting là một kỹ thuật mà một trang web vẽ văn bản hoặc hình dạng bằng HTML Canvas API và đọc lại các pixel kết quả. Vì việc kết xuất phụ thuộc vào GPU, trình điều khiển đồ họa, phông chữ và khử răng cưa, kết quả đầu ra có thể khác nhau đôi chút giữa các thiết bị, và mã băm của nó trở thành một tín hiệu dấu vân tay.

Sơ đồ: script vẽ trên canvas, thiết bị kết xuất nó, các pixel được băm
Sơ đồ biên tập (hình minh họa đơn giản hóa, không phải ảnh chụp màn hình sản phẩm).

Cách thức hoạt động

  • Một script tạo một phần tử canvas (thường là ẩn) và vẽ văn bản, emoji, gradient hoặc hình dạng với ngữ cảnh 2D.
  • Nó đọc kết quả bằng các phương thức như toDataURL(), trả về hình ảnh dưới dạng một URL dữ liệu, hoặc getImageData().
  • Dữ liệu pixel được băm. Các thiết lập giống hệt nhau có xu hướng tạo ra các mã băm giống nhau; các phần cứng hoặc bộ phông chữ khác nhau thường không như vậy.

Tại sao nó lại quan trọng

  • Nó không cần yêu cầu cấp quyền và hoạt động mà không cần cookie, vì vậy nó được sử dụng rộng rãi bởi các script theo dõi và chống gian lận.
  • Đây là một trong những tín hiệu mà các trình duyệt chống phát hiện (antidetect browsers) và các trình duyệt tập trung vào quyền riêng tư cố gắng kiểm soát, bằng cách làm cho đầu ra nhất quán hoặc bằng cách thêm nhiễu.

Giới hạn và những quan niệm sai lầm phổ biến

  • "Chỉ riêng Canvas đã nhận diện được tôi." Đó chỉ là một tín hiệu; nó thường được kết hợp với các tín hiệu khác như WebGL, phông chữ và dữ liệu màn hình.
  • "Thêm nhiễu ngẫu nhiên là không thể bị phát hiện." Nhiễu thay đổi sau mỗi lần đọc có thể tự bị phát hiện bằng cách vẽ cùng một hình ảnh hai lần và so sánh chúng.
Ví dụ: Việc vẽ cùng một câu với cùng một phông chữ trên một máy tính xách tay có đồ họa tích hợp và trên một máy tính để bàn có GPU rời có thể tạo ra sự khác biệt về pixel mà mắt thường không thấy được nhưng lại khác nhau khi được băm.

Không có trình duyệt hay proxy nào có thể đảm bảo rằng các tài khoản sẽ không bị hạn chế. Hãy tuân thủ quy định của từng nền tảng.

Các thuật ngữ liên quan

  • Dấu vân tay trình duyệt — Một sự kết hợp giữa các đặc điểm của trình duyệt và thiết bị có thể nhận dạng một trình duyệt mà không cần cookie.
  • Lấy dấu vân tay WebGL — Sử dụng thông tin đồ họa WebGL và kết quả kết xuất để nhận dạng một thiết bị.