Quay lại blog

Canvas Fingerprint là gì? Nguyên lý, cách kiểm tra và bảo vệ

Canvas fingerprint là một trong những kỹ thuật lấy dấu vân tay trình duyệt phổ biến nhất. Website dùng nó để nhận diện thiết bị và theo dõi người dùng. Bài viết giải thích nguyên lý hoạt động, điểm khác với các loại fingerprint khác, cách kiểm tra và cách người dùng thông thường có thể bảo vệ quyền riêng tư.

Mỗi cú nhấp khi bạn duyệt web, mỗi chuyển động chuột, mẫu thiết bị và phiên bản hệ điều hành đều có thể được website kết hợp thành một mã nhận dạng riêng biệt — đó chính là browser fingerprint. Trong nhiều kỹ thuật fingerprinting, Canvas fingerprint là một trong những loại phổ biến và ổn định nhất. Người dùng không nhìn thấy nó, nhưng website đã sử dụng kỹ thuật này từ lâu để nhận diện khách truy cập.

Canvas là gì?

Canvas là một phần tử vẽ do HTML5 cung cấp, tương tự một tấm vải trống nằm trong trang web. Lập trình viên có thể dùng JavaScript để vẽ đồ họa, văn bản và hình ảnh lên đó, từ đó tạo biểu đồ, trò chơi, xử lý hình ảnh và nhiều hiệu ứng trực quan khác. Nhiều hiệu ứng tương tác trên website hiện đại cũng được xây dựng bằng Canvas.

Canvas fingerprint được tạo ra như thế nào?

Ngay cả khi các thiết bị khác nhau được yêu cầu “vẽ cùng một hình”, kết quả cũng không hoàn toàn giống nhau. Nguyên nhân là quá trình rendering phụ thuộc cả phần cứng lẫn phần mềm:

  • Card đồ họa và driver: GPU thực hiện việc render đồ họa, và các card đồ họa hoặc driver khác nhau xử lý anti-aliasing, gradient và màu sắc hơi khác nhau;
  • Hệ điều hành: Windows, macOS và Linux khác nhau về cách render font và triển khai giao diện đồ họa;
  • Trình duyệt và engine: Các trình duyệt triển khai Canvas API với một số khác biệt;
  • Màn hình và thiết lập màu: Dải màu, giá trị gamma và các thiết lập khác cũng có thể ảnh hưởng đến kết quả cuối cùng.

Cách làm phổ biến của website là dùng script để yêu cầu trình duyệt của khách truy cập vẽ cùng một nội dung trên Canvas, thường là sự kết hợp giữa đồ họa và văn bản. Sau đó, nội dung Canvas được chuyển thành dữ liệu hình ảnh và tính hash. Vì kết quả rendering khác nhau tùy thiết bị, hash này trở thành một “dấu vân tay thiết bị” tương đối ổn định.

Quy trình hoàn chỉnh chuyển khác biệt pixel trong Canvas rendering thành tín hiệu hash của thiết bị

Để thấy mức độ khác biệt tinh vi: cùng một hình trên hai thiết bị có thể chỉ khác vài pixel ở cạnh anti-aliased, nhưng hash được tính lại hoàn toàn khác nhau — đủ để phân biệt thiết bị.

Canvas fingerprint có thể dùng để làm gì?

  • Nhận diện và theo dõi: Website có thể ghi nhớ thiết bị của bạn thông qua Canvas fingerprint ngay cả khi chưa đăng nhập, từ đó liên kết hành vi giữa các trang và đôi khi giữa nhiều website;
  • Chống gian lận và kiểm soát rủi ro: Các nền tảng thương mại điện tử, thanh toán và mạng xã hội có thể dùng Canvas fingerprint như một tín hiệu rủi ro để hỗ trợ nhận biết hành vi bất thường như đăng ký hàng loạt hoặc dùng chung tài khoản;
  • Nhắm mục tiêu quảng cáo: Một số mạng quảng cáo sử dụng nó để xây dựng hồ sơ hành vi xuyên website.

Cần lưu ý rằng Canvas fingerprint thường không thể tự nó xác định “bạn là ai”. Nó chỉ là một trong nhiều tín hiệu. Khi kết hợp với IP, User-Agent, múi giờ, font và các thông tin khác, khả năng nhận diện sẽ tăng lên đáng kể.

Khác biệt giữa Canvas, WebGL và font fingerprint

Cả ba đều thuộc nhóm fingerprint dựa trên khác biệt khi thiết bị render nội dung, nhưng nguồn dữ liệu khác nhau:

  • Canvas fingerprint: Đến từ khác biệt trong kết quả render Canvas 2D;
  • WebGL fingerprint: Đến từ việc render đồ họa 3D. Website có thể đọc các tham số render của card đồ họa như WebGL vendor và renderer string để nhận diện thiết bị;
  • Font fingerprint: Kiểm tra danh sách font đã cài trên hệ thống để suy đoán hệ điều hành và thiết bị.

Chúng thường được sử dụng kết hợp để tạo thành “đặc điểm môi trường thiết bị” trong hệ thống kiểm soát rủi ro của website.

Làm thế nào để kiểm tra Canvas fingerprint của mình?

Bạn có thể sử dụng các website kiểm tra fingerprint công khai như BrowserScan hoặc PixelScan. Tìm kiếm “browser fingerprint test” cũng sẽ cho ra các công cụ tương tự. Các website này thường hiển thị thông tin về Canvas, WebGL, font, múi giờ và nhiều loại fingerprint khác. Nếu kết quả cho biết có Canvas fingerprint hoặc hiển thị một hash ổn định, điều đó có nghĩa thiết bị của bạn có thể được đánh dấu theo cách này. Tuy nhiên, kết quả từ website kiểm tra của bên thứ ba chỉ mang tính tham khảo và không đại diện cho kết luận chính thức của bất kỳ nền tảng nào.

Người dùng thông thường có thể tự bảo vệ như thế nào?

Rất khó loại bỏ hoàn toàn Canvas fingerprint vì Canvas là chức năng bình thường của trình duyệt. Tuy nhiên, bạn có thể giảm mức độ bị theo dõi:

  • Dùng trình duyệt chú trọng quyền riêng tư hoặc bật chế độ privacy/strict tracking protection;
  • Cài extension chống fingerprinting để chặn việc đọc Canvas hoặc chèn noise;
  • Thường xuyên xóa Cookie và dữ liệu website để giảm liên kết dài hạn giữa fingerprint với hoạt động tài khoản;
  • Luôn cập nhật hệ điều hành và trình duyệt, vì các phiên bản mới có nhiều giới hạn tích hợp hơn nhằm chống fingerprint tracking.

Nếu cần quản lý nhiều môi trường kinh doanh thì sao?

Trong vận hành xuyên biên giới và quản lý nhiều tài khoản, vấn đề có góc nhìn khác. Mục tiêu của nhóm không phải là “ẩn mình”, mà là để mỗi tài khoản kinh doanh hoạt động trong một môi trường ổn định, có thể kiểm soát, đồng thời hạn chế đánh giá sai do đặc điểm thiết bị giữa các môi trường ảnh hưởng lẫn nhau.

PurpleMark cho phép cấu hình Canvas, WebGL, font và các fingerprint parameters khác khi tạo browser environment. Nhờ đó, các environment khác nhau có thể thể hiện đặc điểm thiết bị khác nhau, đồng thời duy trì các parameters nhất quán trong từng environment. Điều này giúp mỗi cửa hàng hoặc tài khoản có “device profile” ổn định trong quá trình vận hành dài hạn thay vì thay đổi mỗi lần mở. Cần nhấn mạnh rằng fingerprint parameters là khả năng cấu hình môi trường. Việc tuân thủ thực tế vẫn phụ thuộc vào việc bạn có tuân thủ chính sách của nền tảng đang sử dụng hay không — công cụ quản lý môi trường không thể và không nên được dùng để giả mạo danh tính hoặc né tránh quy tắc của nền tảng.

Câu hỏi thường gặp

Canvas fingerprint có thể nhận diện duy nhất một người không? Hiếm khi nếu chỉ dùng riêng lẻ. Nó thường là một trong nhiều tín hiệu kết hợp; khi dùng cùng IP, thông tin hệ thống và dữ liệu hành vi, khả năng nhận diện sẽ mạnh hơn.

Tắt JavaScript có ngăn được Canvas fingerprint không? Có thể ngăn phần lớn website thu thập dữ liệu, nhưng cũng khiến nhiều website không hoạt động bình thường. Trình duyệt chú trọng privacy và extension chống fingerprinting là lựa chọn cân bằng hơn.

Canvas fingerprint có phải virus không? Không. Đây là hành vi script bình thường của website, không phải phần mềm độc hại, nhưng có liên quan đến theo dõi quyền riêng tư nên gây tranh cãi.

Website kiểm tra fingerprint hiển thị bất thường có nghĩa thiết bị gặp vấn đề không? Không nhất thiết. Các công cụ kiểm tra dùng thuật toán và cơ sở tham chiếu khác nhau, vì vậy kết quả chỉ để tham khảo. Điều quan trọng thực sự là trạng thái tài khoản của bạn trên nền tảng đang sử dụng.