Canvas fingerprint là gì? Cơ chế, cách kiểm tra và giới hạn
Canvas fingerprint là kỹ thuật website dùng để nhận diện trình duyệt bằng cách vẽ một hình ẩn rồi đọc lại kết quả. Mỗi máy vẽ ra hơi khác nhau, nên kết quả trở thành một dấu vân tay. Nhiều anh em đổi proxy liên tục nhưng tài khoản vẫn bị liên kết, và canvas là một trong những lý do. ProxyVN giải thích cơ chế, cách kiểm tra và giới hạn của các cách chống canvas fingerprint.
Tổng quan về canvas fingerprint
Canvas là thành phần của HTML5 cho phép trang web vẽ đồ hoạ bằng JavaScript. Theo tài liệu Canvas API của MDN, canvas được dùng để vẽ biểu đồ, chỉnh ảnh, làm hoạt hình, trò chơi. Canvas fingerprint lợi dụng chính khả năng vẽ này để thu thông tin nhận diện thiết bị.
Canvas fingerprint thuộc nhóm vân tay trình duyệt
Vân tay trình duyệt là tập hợp nhiều đặc điểm như User-Agent, độ phân giải, múi giờ, phông chữ, phần cứng. Canvas fingerprint là một thành phần trong tập đó, nổi bật vì có độ phân biệt cao và không cần lưu gì trên máy người dùng. Khác với cookie, xoá dữ liệu trình duyệt không xoá được canvas fingerprint.
Vì sao canvas fingerprint được quan tâm
Tổ chức quyền riêng tư EFF đã nhiều lần cảnh báo về vân tay trình duyệt, trong đó có bài viết về GDPR và vân tay trình duyệt. Với người dùng thường, đây là vấn đề quyền riêng tư. Với người quản lý nhiều tài khoản, đây là lý do các tài khoản bị liên kết dù đã tách IP.
Cơ chế hoạt động của canvas fingerprint
Quy trình canvas fingerprint diễn ra trong vài phần nghìn giây, người dùng không nhìn thấy gì trên màn hình.

Vẽ ảnh ẩn rồi băm kết quả
Bước 1: Tạo canvas vô hình
Script trên trang tạo một phần tử canvas không hiển thị. Canvas này chỉ tồn tại trong bộ nhớ, không gắn vào giao diện mà người dùng nhìn thấy.
Bước 2: Vẽ nội dung có chủ đích
Script vẽ lên canvas một tổ hợp phức tạp: chữ với nhiều phông khác nhau, biểu tượng cảm xúc, hình chuyển màu, đường cong, lớp chồng có độ trong suốt. Tổ hợp này được chọn để làm lộ ra khác biệt nhỏ trong cách mỗi máy kết xuất đồ hoạ.
Bước 3: Đọc dữ liệu điểm ảnh
Script đọc lại kết quả bằng phương thức như toDataURL hoặc getImageData. Kết quả là một chuỗi dữ liệu mô tả từng điểm ảnh.
Bước 4: Băm thành mã ngắn
Chuỗi dữ liệu được đưa qua hàm băm để thành một mã ngắn. Mã này được gửi về máy chủ cùng các đặc điểm khác. Cùng một máy, cùng trình duyệt thường cho cùng một mã qua nhiều lần truy cập.
Ví dụ minh hoạ cơ chế
Đoạn JavaScript dưới minh hoạ nguyên lý, không phải mã của một hệ thống chống gian lận cụ thể:
const c = document.createElement('canvas');
c.width = 240; c.height = 60;
const g = c.getContext('2d');
g.textBaseline = 'top';
g.font = '16px Arial';
g.fillStyle = '#f60';
g.fillRect(100, 1, 62, 20);
g.fillStyle = '#069';
g.fillText('ProxyVN canvas test', 2, 15);
g.fillStyle = 'rgba(102, 204, 0, 0.7)';
g.fillText('ProxyVN canvas test', 4, 17);
const data = c.toDataURL();
crypto.subtle.digest('SHA-256', new TextEncoder().encode(data))
.then(b => console.log([...new Uint8Array(b)].map(x => x.toString(16).padStart(2, '0')).join('')));
Chạy đoạn mã trong bảng điều khiển của trình duyệt trên hai máy khác nhau, anh em sẽ thấy hai mã băm khác nhau dù nội dung vẽ giống hệt.
Lý do canvas fingerprint khác nhau giữa các máy
Cùng một lệnh vẽ, nhưng mỗi máy cho ra kết quả hơi khác ở mức điểm ảnh. Sự khác biệt đến từ nhiều tầng của hệ thống.

Vì sao mỗi máy cho kết quả khác
Card đồ hoạ và driver
Trình duyệt thường dùng GPU để tăng tốc vẽ. Mỗi dòng GPU, mỗi phiên bản driver xử lý khử răng cưa, pha trộn màu, làm tròn số khác nhau một chút. Khác biệt này không thấy bằng mắt nhưng thay đổi giá trị điểm ảnh.
Phông chữ và cách kết xuất chữ
Phông chữ cài trên máy, công nghệ kết xuất chữ của hệ điều hành như ClearType trên Windows, cách làm mượt chữ trên macOS đều ảnh hưởng tới hình dạng chữ trên canvas. Máy thiếu một phông sẽ dùng phông thay thế, cho kết quả khác.
Hệ điều hành và trình duyệt
Cùng phần cứng nhưng khác hệ điều hành hoặc khác phiên bản trình duyệt cũng cho canvas khác. Trình duyệt cập nhật nhân đồ hoạ có thể làm thay đổi kết quả.
WebGL fingerprint, người anh em của canvas
Ngoài canvas 2D, website còn dùng WebGL để vẽ đồ hoạ 3D và đọc thông tin card đồ hoạ như tên nhà sản xuất, tên dòng GPU. WebGL fingerprint thường được kết hợp với canvas fingerprint để tăng độ chính xác.
Canvas fingerprint không đọc thông tin cá nhân nào, nó chỉ đo cách chiếc máy của anh em vẽ một bức tranh, và cách vẽ đó gần như là duy nhất.
Đổi proxy không thay đổi canvas fingerprint
Đây là phần quan trọng nhất với người dùng proxy. Proxy và canvas fingerprint nằm ở hai tầng khác hẳn nhau.

Đổi IP không đổi canvas
Proxy chỉ thay đổi đường đi mạng
Proxy thay địa chỉ IP mà website nhìn thấy. Proxy không chạm tới JavaScript chạy trên trình duyệt, không thay đổi GPU, phông chữ hay hệ điều hành. Canvas fingerprint được tính ngay trên máy anh em rồi mới gửi đi, nên đi qua proxy nào kết quả vẫn như cũ. Bài proxy hoạt động ở tầng nào giải thích phạm vi tác động của proxy.
Hệ quả với nhiều tài khoản
Mười tài khoản trên cùng một trình duyệt, mỗi tài khoản một proxy, vẫn có cùng canvas fingerprint. Hệ thống chống gian lận thấy mười IP khác nhau nhưng cùng một dấu vân tay thiết bị, và có thể liên kết các tài khoản. Đây là lý do nhiều anh em đổi proxy liên tục mà vẫn bị khoá dây chuyền.
Proxy vẫn cần thiết
Dù không đổi được canvas, proxy vẫn là điều kiện cần. Thiết bị khác nhau nhưng cùng IP cũng bị liên kết. Môi trường an toàn cần cả hai: vân tay khác nhau và IP khác nhau. Bài TLS fingerprint JA3 và proxy phân tích một tầng vân tay khác mà proxy cũng không đổi được.
Cách kiểm tra canvas fingerprint của trình duyệt
Kiểm tra giúp anh em biết trình duyệt có đang lộ canvas fingerprint ổn định không, và các profile có thật sự khác nhau không.

Kiểm tra canvas fingerprint
Dùng Cover Your Tracks của EFF
Trang Cover Your Tracks của EFF kiểm tra trình duyệt có bị theo dõi bằng vân tay hay không. Kết quả cho biết vân tay có độc nhất trong mẫu của họ không và liệt kê các thành phần, trong đó có giá trị băm canvas.
So sánh giữa các profile
Mở trang kiểm tra trong từng profile hoặc từng trình duyệt antidetect, ghi lại mã canvas. Nếu các profile cho cùng một mã, chúng sẽ bị coi là cùng thiết bị. Nếu mỗi profile một mã ổn định, cấu hình đang tách biệt.
Kiểm tra độ ổn định
Tải lại trang kiểm tra vài lần. Mã canvas thay đổi mỗi lần tải là dấu hiệu có cơ chế chèn nhiễu ngẫu nhiên. Mã ổn định là dấu hiệu bình thường của trình duyệt thật. Phần sau sẽ bàn vì sao mã thay đổi liên tục chưa chắc đã tốt.
Kiểm tra kèm các thành phần khác
Canvas chỉ là một thành phần. Kiểm tra thêm WebGL, phông chữ, múi giờ, ngôn ngữ, WebRTC. Bài cách tắt WebRTC và User-Agent là gì giúp kiểm tra hai thành phần quan trọng khác.
Các cách chống canvas fingerprint và giới hạn
Có nhiều cách giảm hoặc thay đổi canvas fingerprint. Mỗi cách có ưu nhược điểm, và không cách nào xử lý trọn vẹn.
Tiện ích chèn nhiễu canvas
Gợi ý tìm kiếm cho thấy nhiều người tìm "Canvas Fingerprint Defender". Các tiện ích kiểu này chèn nhiễu nhỏ vào dữ liệu canvas mỗi khi trang đọc, làm mã băm thay đổi. Ưu điểm là dễ cài. Nhược điểm là mã thay đổi liên tục, trong khi trình duyệt thật cho mã ổn định. Hệ thống chống gian lận có thể nhận ra hành vi này, và chính việc có nhiễu trở thành dấu hiệu bất thường.
Chặn đọc canvas
Một số tiện ích chặn hẳn việc đọc dữ liệu canvas. Website nhận kết quả rỗng hoặc lỗi. Cách này bảo vệ quyền riêng tư nhưng làm hỏng một số trang dùng canvas hợp pháp, và việc chặn cũng là một tín hiệu dễ nhận ra.
Tính năng bảo vệ của trình duyệt
Một số trình duyệt có tính năng chống vân tay tích hợp. Theo trang hỗ trợ của Mozilla về bảo vệ chống vân tay trong Firefox, Firefox có cơ chế chặn các script vân tay đã biết và các chế độ bảo vệ nâng cao. Brave có cơ chế làm nhiễu theo phiên và theo trang. Các cơ chế này hướng tới quyền riêng tư của người dùng thường hơn là quản lý nhiều tài khoản.
Trình duyệt antidetect
Trình duyệt antidetect tạo cho mỗi profile một bộ vân tay riêng, trong đó có canvas. Điểm quan trọng là vân tay của mỗi profile ổn định qua nhiều lần mở, giống một thiết bị thật, thay vì thay đổi mỗi lần tải trang. Đây là cách tiếp cận phù hợp nhất với nhu cầu nhiều tài khoản. Bài mua proxy Antidetect Browser và cách dùng Fingerprint Browser và proxy nuôi tài khoản giải thích chi tiết.
Bảng so sánh các cách chống canvas fingerprint
Cách |
Ổn định giữa các lần |
Tự nhiên |
Phù hợp |
|---|---|---|---|
Không làm gì |
Ổn định |
Tự nhiên |
Người dùng một tài khoản |
Tiện ích chèn nhiễu |
Thay đổi liên tục |
Kém |
Thử nghiệm, quyền riêng tư cơ bản |
Chặn đọc canvas |
Rỗng hoặc lỗi |
Kém |
Người ưu tiên quyền riêng tư |
Bảo vệ của trình duyệt |
Tuỳ trình duyệt |
Khá |
Người dùng thường |
Trình duyệt antidetect |
Ổn định theo profile |
Tốt nếu cấu hình đúng |
Quản lý nhiều tài khoản |
Canvas fingerprint và chế độ ẩn danh
Nhiều anh em nghĩ chế độ ẩn danh giúp tránh bị nhận diện. Với canvas fingerprint, câu trả lời là không.
Chế độ ẩn danh làm gì
Chế độ ẩn danh không lưu lịch sử, cookie, dữ liệu biểu mẫu sau khi đóng cửa sổ, giúp phiên duyệt web không để lại dấu vết trên máy. Nó bảo vệ khỏi người dùng khác trên cùng máy, không phải khỏi website.
Chế độ ẩn danh không đổi canvas
GPU, driver, phông chữ vẫn như cũ, nên canvas fingerprint trong cửa sổ ẩn danh thường giống cửa sổ thường. Website vẫn có thể nhận ra cùng một thiết bị. Bài chế độ ẩn danh có thay thế fingerprint browser được không phân tích kỹ vấn đề này.
Canvas fingerprint với người quản lý nhiều tài khoản
Với người làm MMO, bán hàng nhiều gian hàng hay chạy quảng cáo nhiều tài khoản, canvas fingerprint là một trong những tín hiệu liên kết tài khoản. Vài nguyên tắc thực tế giúp giảm rủi ro.
Mỗi tài khoản một môi trường đầy đủ
Một môi trường gồm vân tay trình duyệt riêng, cookie riêng và IP riêng. Thiếu bất kỳ thành phần nào, các tài khoản đều có điểm chung để liên kết. Với IP, anh em có thể mua proxy dân cư tĩnh tại ProxyVN để gán cố định cho từng profile.
Giữ vân tay ổn định
Không đổi cấu hình vân tay của profile đang ổn định. Một tài khoản hôm nay dùng canvas này, mai dùng canvas khác giống như đổi máy liên tục, cũng là tín hiệu bất thường.
Đồng bộ các thông số
Canvas, WebGL, User-Agent, hệ điều hành phải nhất quán với nhau. Profile khai báo là máy Mac nhưng WebGL báo card đồ hoạ chỉ có trên Windows là mâu thuẫn. Múi giờ và ngôn ngữ phải khớp với IP, như bài đồng bộ múi giờ, ngôn ngữ với IP proxy đã hướng dẫn.
Canvas fingerprint dưới góc nhìn quyền riêng tư và pháp lý
Canvas fingerprint không chỉ là chuyện kỹ thuật. Ở nhiều nơi, việc thu thập vân tay trình duyệt để theo dõi người dùng chịu sự điều chỉnh của luật bảo vệ dữ liệu.
Mục đích sử dụng hợp pháp
Nhiều website dùng vân tay trình duyệt để phát hiện gian lận, bảo vệ đăng nhập, chống bot. Đây là mục đích bảo mật phổ biến. Các hệ thống chống gian lận thanh toán, chống tạo tài khoản ảo hàng loạt đều dựa một phần vào vân tay thiết bị.
Quy định về dữ liệu
Bài viết của EFF về GDPR nêu rằng vân tay trình duyệt dùng để theo dõi có thể được coi là dữ liệu cá nhân, cần cơ sở pháp lý và sự đồng ý trong nhiều trường hợp. Người dùng có quyền biết website thu thập gì.
Góc nhìn của ProxyVN về canvas fingerprint
ProxyVN khuyến khích dùng hiểu biết về canvas fingerprint để bảo vệ quyền riêng tư và quản lý tài khoản kinh doanh của chính mình. Không dùng để lách hệ thống chống gian lận nhằm mục đích lừa đảo hay vi phạm điều khoản của nền tảng.
Canvas fingerprint trong hệ thống chống gian lận
Hiểu cách hệ thống chống gian lận dùng canvas fingerprint giúp anh em đánh giá đúng mức độ rủi ro, không quá lo lắng nhưng cũng không xem nhẹ.
Canvas là một trong nhiều tín hiệu
Hệ thống chống gian lận hiếm khi quyết định chỉ dựa vào canvas. Họ kết hợp hàng chục tín hiệu: IP, loại IP, ASN, vân tay TLS, User-Agent, độ phân giải, múi giờ, phông chữ, hành vi chuột và bàn phím, lịch sử tài khoản. Canvas đóng vai trò liên kết các phiên có cùng thiết bị. Bài IP reputation là gì và ASN proxy là gì giải thích các tín hiệu phía IP.
Liên kết tài khoản qua thiết bị
Khi một tài khoản bị khoá vì vi phạm, hệ thống tìm các tài khoản khác cùng vân tay thiết bị để xem xét. Nếu nhiều tài khoản cùng canvas, cùng WebGL, cùng phông chữ, chúng dễ bị coi là cùng một người vận hành dù IP khác nhau. Đây là cơ chế đứng sau hiện tượng khoá dây chuyền nhiều anh em gặp.
Điểm bất thường cũng là tín hiệu
Hệ thống không chỉ so sánh giá trị canvas mà còn xem canvas có hợp lý không. Canvas thay đổi mỗi lần tải trang, canvas trống, canvas không khớp với GPU khai báo đều là điểm bất thường. Một môi trường tự nhiên cần canvas ổn định và nhất quán với các thông số khác.
Mức độ nhạy cảm khác nhau theo nền tảng
Nền tảng thanh toán, quảng cáo, mạng xã hội lớn thường dùng vân tay thiết bị kỹ hơn trang tin tức hay blog. Mức đầu tư cho môi trường tách biệt nên tương xứng với giá trị tài khoản và độ khắt khe của nền tảng.
Thực hành kiểm tra canvas fingerprint giữa các profile
Phần này hướng dẫn một quy trình kiểm tra đơn giản để anh em tự đánh giá môi trường đang dùng có tách biệt canvas giữa các profile hay không.
Chuẩn bị
Chọn ba profile cần kiểm tra, mỗi profile đã gắn proxy riêng. Chuẩn bị một bảng ghi gồm tên profile, IP, mã canvas, mã WebGL, User-Agent, múi giờ.
Thực hiện
Mở lần lượt từng profile, truy cập trang kiểm tra vân tay, ghi các giá trị vào bảng. Đóng profile, mở lại, kiểm tra lần nữa để xem giá trị có ổn định không. Có thể chạy thêm đoạn mã minh hoạ ở phần cơ chế trong bảng điều khiển để có mã băm riêng.
Đánh giá
Nếu ba profile cho ba mã canvas khác nhau và mỗi mã ổn định qua các lần mở, môi trường tách biệt tốt. Nếu các profile cùng mã, cần xem lại cấu hình vân tay. Nếu mã của một profile thay đổi mỗi lần mở, cấu hình đang chèn nhiễu ngẫu nhiên, nên chuyển sang chế độ ổn định nếu phần mềm hỗ trợ.
Lặp lại định kỳ
Sau mỗi lần cập nhật phần mềm antidetect hoặc trình duyệt, chạy lại quy trình. Cập nhật có thể làm thay đổi cách tạo vân tay. Bài kiểm tra proxy dân cư thật hướng dẫn kiểm tra phía IP để bổ sung cho kiểm tra phía trình duyệt.
Các loại vân tay khác đi cùng canvas fingerprint
Canvas không đứng một mình. Để hiểu vì sao môi trường cần tách biệt toàn diện, anh em nên biết các loại vân tay thường được thu cùng canvas.
Audio fingerprint
Website dùng Web Audio API để tạo một tín hiệu âm thanh ảo, xử lý qua bộ lọc rồi đọc kết quả. Giống canvas, kết quả khác nhau nhỏ giữa các máy do phần cứng và phần mềm xử lý âm thanh. Không có âm thanh nào phát ra loa, người dùng không nhận biết.
Phông chữ
Danh sách phông chữ cài trên máy là một tín hiệu có độ phân biệt cao. Website đo kích thước chữ với nhiều phông để suy ra phông nào có mặt. Máy cài thêm phông thiết kế, phông ngôn ngữ đặc biệt sẽ khác biệt rõ.
Thông số phần cứng và màn hình
Số nhân CPU, dung lượng bộ nhớ báo cáo, độ phân giải, tỉ lệ điểm ảnh, độ sâu màu, hỗ trợ cảm ứng đều được trình duyệt cung cấp qua JavaScript. Kết hợp lại, các thông số này thu hẹp nhóm thiết bị đáng kể.
Vân tay mạng
Ở tầng mạng, vân tay TLS và HTTP/2 cho biết loại trình duyệt và thư viện đang kết nối. Proxy HTTP thông thường chuyển tiếp đường hầm nên không thay đổi các vân tay này. Bài TLS fingerprint JA3 và proxy giải thích chi tiết.
Bài học về tách biệt vân tay toàn diện
Chỉ thay canvas mà giữ nguyên các thành phần khác vẫn để lại nhiều điểm chung giữa các profile. Môi trường tách biệt cần nhìn tổng thể, đó là lý do trình duyệt antidetect quản lý cả bộ vân tay thay vì từng thành phần riêng lẻ.
Câu hỏi thường gặp về canvas fingerprint
Canvas fingerprint có thay đổi khi cập nhật trình duyệt không
Có thể. Cập nhật nhân đồ hoạ của trình duyệt hoặc driver GPU có thể làm kết quả vẽ thay đổi. Hệ thống chống gian lận thường xét nhiều thành phần cùng lúc nên một thay đổi nhỏ không đủ để coi là thiết bị mới.
Điện thoại có canvas fingerprint không
Có. Trình duyệt trên điện thoại cũng hỗ trợ canvas. Nhưng nhiều điện thoại cùng dòng, cùng phiên bản hệ điều hành cho kết quả giống nhau, nên canvas trên di động kém phân biệt hơn máy tính.
Tắt JavaScript có chặn được canvas fingerprint không
Có, vì canvas fingerprint cần JavaScript. Nhưng tắt JavaScript làm hỏng hầu hết website hiện đại, và việc tắt JavaScript cũng là một tín hiệu bất thường.
Hai máy cùng cấu hình có cùng canvas fingerprint không
Có thể. Hai máy cùng dòng, cùng GPU, cùng driver, cùng hệ điều hành và phiên bản trình duyệt thường cho cùng mã canvas. Đây là lý do canvas thường được kết hợp với các tín hiệu khác. Trong văn phòng có nhiều máy giống hệt nhau, canvas giữa các máy có thể trùng.
Máy ảo có canvas fingerprint khác máy thật không
Máy ảo thường dùng card đồ hoạ ảo hoặc kết xuất bằng phần mềm, cho canvas khác với máy thật và có thể giống nhau giữa nhiều máy ảo cùng cấu hình. Một số hệ thống nhận ra canvas đặc trưng của kết xuất phần mềm. Bài cài proxy cho máy ảo VMware có bàn về việc dùng máy ảo cho nhiều tài khoản.
Có công cụ nào thay đổi canvas mà vẫn ổn định không
Trình duyệt antidetect thường tạo canvas riêng cho từng profile và giữ ổn định qua các lần mở. Đây là khác biệt chính so với tiện ích chèn nhiễu ngẫu nhiên mỗi lần đọc.
Canvas fingerprint có làm chậm trang web không
Thao tác vẽ và đọc canvas diễn ra rất nhanh, thường chỉ vài phần nghìn giây. Người dùng không cảm nhận được độ trễ. Phần tốn thời gian hơn là các script phân tích hành vi chạy song song, nhưng đó không phải bản thân canvas.
Xem thêm:
Tổng kết
Canvas fingerprint là dấu vân tay tạo ra từ cách máy của anh em vẽ một hình ẩn, phụ thuộc GPU, driver, phông chữ và hệ điều hành. Proxy không thay đổi được canvas, nên quản lý nhiều tài khoản cần cả vân tay ổn định riêng lẫn IP riêng. Cần proxy dân cư tĩnh cho từng profile, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để hiểu đúng về canvas fingerprint.