Canvas fingerprint là gì? Cách website nhận diện thiết bị qua vẽ hình trên trình duyệt
Kết luận chính: Canvas fingerprint sinh ra từ một thao tác vẽ thật; kết quả do card đồ họa, hệ điều hành, font và nhân trình duyệt cùng quyết định. Riêng một mục không định danh được ai, nhưng khi các tham số được đối chiếu chéo, nó bộc lộ bản chất thật của môi trường. Quản lý nó bằng hai nguyên tắc: số đo của từng môi trường phải ổn định và khoảng cách giữa các môi trường phải đủ lớn. Phần sau đi theo thứ tự nguyên lý, yếu tố ảnh hưởng, giới hạn nhận diện, kiểm tra và cấu hình hai chế độ của MostMate.
Cùng một website mở trên hai thiết bị, cùng một hình do hệ thống vẽ ra nhưng pixel không khớp. Trang web không hề bị lỗi; mỗi thiết bị để lại dấu vết riêng ngay khâu vẽ. Website thu dấu vết này và tính thành một giá trị, thế là có Canvas fingerprint, nhóm tham số có độ phân biệt cao nhất trong browser fingerprint. MostMate là trình duyệt anti-detect, và Canvas là một trong những tham số nền tảng trong phần cài đặt fingerprint của nó. Bài viết này làm rõ toàn bộ chu trình của tham số, từ khi hình thành đến khi cấu hình.
Website vẽ "bức ảnh chữ ký" cho thiết bị bằng Canvas thế nào
Canvas fingerprint sinh ra từ một thao tác vẽ thật: website bảo trình duyệt vẽ nội dung cho trước, rồi đọc kết quả về và quy thành một giá trị đặc trưng. Phần vẽ dùng giao diện Canvas mà trình duyệt cung cấp; game web, biểu đồ, chỉnh sửa ảnh đều dùng chung năng lực canvas 2D này. Chi tiết giao diện xem trong tài liệu Canvas API trên MDN. Cả quá trình diễn ra mà người dùng không hay biết. Bóc tách ra là ba bước:
- Vẽ: script của trang vẽ một nội dung cố định lên canvas, thường là vài dòng chữ kèm hình học và khối màu chuyển sắc.
- Đọc: script dùng các giao diện như toDataURL() hoặc getImageData() để xuất canvas thành chuỗi hoặc mảng pixel.
- Đối chiếu: kết quả xuất được băm thành hash, đối chiếu với bản ghi trước đó của môi trường này hoặc giá trị kỳ vọng từ các tín hiệu khác.

Vì sao hai thiết bị không vẽ ra cùng một hình
Kết quả vẽ do toàn bộ chuỗi render quyết định; chỉ một mắt xích khác là pixel đã lệch. Cùng một lệnh gửi tới hai thiết bị, hệ điều hành trước tiên chọn bộ font và cách render mép chữ, nhân trình duyệt thực hiện phần vẽ, cuối cùng card đồ họa và driver xuất kết quả. Bốn mắt xích mỗi cái giữ một đoạn:
- GPU và driver. Cùng một lệnh vẽ, card đồ họa và phiên bản driver khác nhau cho pixel lệch nhau tí xíu; đây là nguồn chính tạo ra khác biệt.
- Hệ điều hành và render chữ. Windows, macOS, Linux có cách render và chính sách khử răng cưa khác nhau; vẽ cùng một dòng chữ, độ mượt ở mép đã khác.
- Môi trường font. Chữ trên canvas được render bằng font của máy, cài font nào, phiên bản nào đều lọt vào kết quả vẽ. Logic kiểm tra danh sách font đã có trong bài font fingerprint được đo ra sao; hai bên dùng chung một nguồn.
- Nhân trình duyệt và phiên bản. Chromium, Firefox, WebKit dựng phần vẽ khác nhau mỗi bên; bản cập nhật lớn cũng kéo theo thay đổi chi tiết.

Bốn mắt xích hợp lại quyết định độ phân biệt của Canvas: từng khác biệt rất nhỏ, nhưng ép thành hash thì xác suất hai thiết bị không khớp khá cao. Phía sau một bức hình nhỏ là cả chuỗi render của thiết bị cùng xuất hiện trong một khung hình.
Canvas fingerprint nhận diện được đến đâu
Canvas fingerprint là nhóm đặc trưng thiết bị có độ phân biệt cao, nhưng riêng nó không định danh được. Nó có ba giới hạn, nói rõ trước đã.
Thứ nhất, hash giống nhau không suy ngược ra cùng một thiết bị: hai thiết bị có chuỗi render trùng khớp tình cờ có thể cho cùng một giá trị, còn cấu hình phổ biến trên thị trường vốn trùng nhau rất nhiều.
Thứ hai, website không dựa riêng vào nó để kết luận: số đo Canvas được đối chiếu chéo cùng UA, màn hình, font, ngôn ngữ, giữ vai trò "bằng chứng cứng không tự khai, chỉ đo được tại chỗ" trong nhóm này.
Thứ ba, nó và Cookie không cùng một cơ chế: Cookie lưu tại máy, xóa hay chặn được; Canvas tính ngay lúc truy cập, xóa Cookie chẳng ảnh hưởng gì đến nó.
Ba giới hạn gộp thành một nhận định: Canvas quyết định không được số phận tài khoản, nhưng nếu cả đống môi trường có hash giống hệt nhau thì trong đối chiếu chéo chúng tự động tay.
Ba bước xem Canvas fingerprint của môi trường bạn
Kiểm tra Canvas không cần cài công cụ, một trang kiểm tra cộng hai lần đo lại là đủ. Làm theo trình tự sau:
- Ghi lại số đo hiện tại. Mở trang kiểm tra Canvas của BrowserLeaks trong môi trường, trang sẽ đưa ra hash và bản xem trước hình ảnh của môi trường hiện tại, ghi lại.
- Đo lại trong cùng môi trường. Đóng trang mở lại, hoặc đợi một hai ngày rồi đo: hash của cùng môi trường phải không đổi. Hai lần không khớp nghĩa là có xử lý thêm đang can thiệp vào số đo.
- So sánh giữa các môi trường. Mở môi trường thứ hai chạy cùng bài kiểm tra, hai hash phải chênh nhau thấy rõ: chênh càng lớn, ranh giới giữa các môi trường càng rõ.
Số đo chỉ cần xem "có ổn định không, có khác biệt không", đừng chạy theo con số cụ thể. Hash giữa các trang kiểm tra khác nhau có thể không khớp: mỗi bên vẽ hình khác nhau, cách xuất khác nhau, thuật toán băm khác nhau. So sánh chéo giữa các trang vô nghĩa, chỉ có so sánh trước sau trong cùng một công cụ mới có ích.

Chọn chế độ Canvas nào trong MostMate
Cài đặt fingerprint của MostMate gom Canvas thành hai chế độ Real và Noise, mặc định là Real. Bức tranh toàn cảnh sản phẩm xem tại MostMate là gì; trong danh mục cài đặt fingerprint thủ công trên website chính thức, Canvas nằm cạnh audio, WebGL và các tham số khác, cấu hình ngay trong khu cài đặt fingerprint khi tạo môi trường. Khác biệt giữa hai chế độ, xem bảng trước:
| Khía cạnh | Real | Noise |
|---|---|---|
| Nguồn số đo | Máy chủ render trực tiếp, như mở thủ công | Chồng nhiễu lên kết quả render thật |
| Biểu hiện khi bị kiểm tra | Phản ánh đúng chuỗi render thật của máy chủ | Tách khỏi máy chủ, môi trường nào giá trị ấy |
| Trường hợp phù hợp | Persona trùng khu vực với hệ máy chủ | Tạo môi trường hàng loạt, cần khoảng cách |
| Lưu ý | Nhiều môi trường cùng máy cho cùng số đo | Mức nhiễu phải nằm trong khoảng hợp lý |
Chế độ Real hợp với trường hợp máy chủ "nền sạch": máy là bản Windows tiếng Anh, làm đúng môi trường Mỹ, dùng render thật thì số đo khớp với mở trình duyệt thủ công, không để lại vết lắp ghép. Giới hạn cũng rõ: nhiều môi trường trên cùng máy đều dùng Real thì số đo Canvas là một giá trị duy nhất, các môi trường không có khác biệt.
Chế độ Noise vá đúng chỗ hụt đó: chồng nhiễu lên số đo Canvas của môi trường, tách số đo khỏi render thật của máy chủ để các môi trường tạo hàng loạt khác nhau. Điều kiện tiên quyết là nhiễu phải kiểm soát được: số đo sau khi thêm nhiễu vẫn phải nằm trong khoảng bình thường của thiết bị thật, nếu không chính sự "khác nhau" này lại thành điểm bất thường nổi bật; cùng một môi trường hai lần đo không khớp cũng là dấu hiệu bất thường. Rủi ro này được luận chứng đầy đủ trong bài vì sao randomize fingerprint lại nguy hiểm.
Canvas còn phải đối chiếu cùng nhóm tham số cùng nguồn. Render canvas tách khỏi hệ điều hành, font và card đồ họa, các tham số này phải chỉ về cùng một chân dung thiết bị: chọn chân dung macOS thì audio, ảnh WebGL các tham số cùng nhóm cũng phải khớp trong khoảng hợp lý của macOS; chỉ nhìn một mình Canvas dễ sót lệch pha trong nhóm. Logic mức độ của audio đã có trong bài cấu hình AudioContext fingerprint thế nào, có thể áp dụng nguyên cách nghĩ.
Sau khi cấu hình xong, làm một vòng xác minh: trong cài đặt fingerprint xác nhận mức Canvas, trường Canvas trong bảng xem trước fingerprint bên phải hiện mã kiểu Noise[3LR450]; đây là định danh của cấu hình nhiễu này, mỗi môi trường một mã, khác hẳn hash do trang kiểm tra tính ra, đừng đem mã đi khớp hash. Số đo thực tế phải mở môi trường truy cập trang kiểm tra để xem, đối chiếu có đúng kỳ vọng không; sau đó mỗi lần đổi proxy hay chỉnh cấu hình fingerprint đều đo lại một lượt rồi mới đưa vào sử dụng.

Câu hỏi thường gặp
Canvas fingerprint và browser fingerprint có phải là một không?
Không. Browser fingerprint là tổng thể gồm hàng chục tham số, Canvas chỉ là một đặc trưng nhóm render trong đó, cùng loại với WebGL và danh sách font. Tổng điểm là kết quả hợp của các mục; Canvas riêng lẻ phân biệt cao không có nghĩa cả fingerprint hiếm.
Tắt Canvas có chống bị nhận diện được không?
Không nên. Canvas được rất nhiều chức năng web dựa vào, tắt đi làm hỏng trải nghiệm bình thường; gần như mọi trình duyệt lành mạnh đều hỗ trợ Canvas, "không hỗ trợ" lại thành đặc trưng hiếm, dễ bị lôi ra hơn. Cách làm hợp lý là kiểm soát nguồn và tính nhất quán của số đo, chứ không phải đóng giao diện.
Canvas fingerprint có thay đổi khi trình duyệt cập nhật không?
Có, nhưng nhịp thay đổi khác hẳn randomize. Thay đổi render từ bản cập nhật lớn của trình duyệt diễn ra đồng loạt trên toàn mạng, mọi người dùng cùng đổi, nền tảng đã quen nhịp này. Canvas của môi trường thật đổi vài lần một năm là bình thường; đổi dồn dập không theo quy luật mới bất thường.
Trình duyệt anti-detect có thể cho mỗi môi trường một Canvas khác nhau không?
Được, chế độ Noise đảm nhận đúng nhiệm vụ đó: chồng nhiễu lên số đo Canvas để các môi trường hàng loạt tách rời nhau. Điều kiện tiên quyết là mức nhiễu hợp lý, số đo vẫn nằm trong khoảng bình thường của hệ điều hành tương ứng.
Kết luận
Bản chất của Canvas fingerprint là chuỗi render của thiết bị tụ tập vào một tấm canvas: riêng lẻ không định danh được ai, nhưng là mục khó tự khai nhất, chỉ đo được tại chỗ. Khi quản lý nắm hai điều: số đo từng môi trường chịu nổi lần đo lại, hash giữa các môi trường cách xa nhau, tham số cùng nguồn chỉ về cùng một chân dung thiết bị. Muốn dựng trọn bộ môi trường từ đầu, hãy tải MostMate, tạo môi trường xong xác minh số đo Canvas của từng môi trường rồi mới đưa vào sử dụng.
MOSTMATE
Quản lý nhiều tài khoản an toàn, thật đơn giản
Bắt đầu với tài khoản đầu tiên và dùng MostMate để xây dựng hoạt động đa tài khoản an toàn, thông minh và hiệu quả hơn.
- Hồ sơ độc lập. Danh tính nhất quán.
- Tự động hóa bằng AI · Tình trạng tài khoản · Vận hành nhóm



