Trình duyệt web thu thập các thông tin khác nhau khi chúng thực hiện các chức năng của mình. Khi một số thông tin này được thu thập để xác định người dùng trang web, điều này được gọi là dấu vân tay trình duyệt.
Dấu vân tay trình duyệt bao gồm các thông tin sau: mô hình thiết bị, loại và phiên bản trình duyệt, hệ điều hành (OS), độ phân giải màn hình, múi giờ, định danh định dạng tệp p0p, dấu thời gian, chuỗi đại diện người dùng (UA), cài đặt ngôn ngữ, các plugin, tiện ích mở rộng.
Canvas fingerprinting là một trong những công nghệ dấu vân tay trình duyệt này. Nó dựa trên phần tử Canvas của mã HTML5 trên web.

Canvas fingerprinting sử dụng API Canvas của trình duyệt để vẽ các hình ảnh vô hình và trích xuất các dấu vân tay dài hạn mà người dùng không hề hay biết.
Dưới đây là phân tích nhanh về các bước cần thiết để tạo ra dấu vân tay canvas cho một trang web:
Khó chịu vì việc scraping web bị chặn nhiều lần?
Nstbrowser miễn phí xử lý việc xoay vòng địa chỉ IP và mở khóa web cho bạn.
Thử miễn phí!
Bạn có suy nghĩ hoặc câu hỏi nào về việc thu thập dữ liệu web và Browseless không?
Hãy đến xem những gì các nhà phát triển khác đang chia sẻ trên Discord và Telegram!
| Đặc điểm | Canvas Fingerprinting | Dấu vân tay trình duyệt | 
|---|---|---|
| Cơ sở | Sự khác biệt về render trong phần tử canvas | Nhiều thuộc tính của thiết bị và trình duyệt | 
| Thuộc tính Sử dụng | Các đặc điểm render của canvas | User-Agent, độ phân giải màn hình, plugin, phông chữ, múi giờ, ngôn ngữ, WebGL, ngữ cảnh âm thanh, v.v. | 
| Phức tạp | Tương đối đơn giản | Phức tạp hơn | 
| Độc đáo | Cao | Rất cao | 
| Độ bền | Cao | Rất cao | 
| Lo ngại về quyền riêng tư | Từ trung bình đến cao | Cao | 
| Phát hiện và chặn | Dễ phát hiện và chặn hơn | Khó phát hiện hơn, nhưng có thể giảm thiểu bằng cách giả mạo hoặc hạn chế các thuộc tính | 
Phương pháp:
canvas HTML5: Canvas fingerprinting dựa vào phần tử canvas HTML5 để render đồ họa.Phương pháp:
Phương pháp:
canvas HTML5: Sử dụng phần tử canvas HTML5 để render đồ họa.Phương pháp:
Canvas Noise là một kỹ thuật để ngăn chặn việc phát hiện dấu vân tay bằng cách thêm nhiễu ngẫu nhiên vào các phần tử Canvas HTML5. Nếu hai hình ảnh khác nhau, chúng sẽ có các giá trị hash khác nhau.
Do đó, bằng cách đưa nhiễu ngẫu nhiên vào một hình ảnh, thường bằng cách sửa đổi dữ liệu hình ảnh được render bởi Canvas, có thể ngăn chặn việc tạo ra các dấu vân tay nhất quán bằng cách làm cho giá trị hash của hình ảnh Canvas khác nhau một chút mỗi lần, điều này khó phát hiện bằng mắt thường, nhưng giá trị hash tạo ra sẽ khác nhau.
Dưới đây là một ví dụ đơn giản về Canvas Noise:
<!DOCTYPE html>
<html>
<head>
    <title>Ví dụ Canvas Noise</title>
</head>
<body>
<canvas id="canvas" width="200" height="50"></canvas>
<script>
    // Lấy phần tử canvas và ngữ cảnh render 2D của nó
    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');
    
    // Bước 1: Vẽ hình ảnh gốc
    // Đặt dòng cơ bản của văn bản và phông chữ
    ctx.textBaseline = 'top';
    ctx.font = '14px Arial';
    ctx.textBaseline = 'alphabetic';
    
    // Vẽ một hình chữ nhật đầy
    ctx.fillStyle = '#f60';
    ctx.fillRect(125, 1, 62, 20);
    
    // Vẽ văn bản đầu tiên
    ctx.fillStyle = '#069';
    ctx.fillText('Xin chào, thế giới!', 2, 15);
    
    // Vẽ văn bản thứ hai với độ trong suốt
    ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
    ctx.fillText('Xin chào, thế giới!', 4, 17);
    
    // Bước 2: Thêm nhiễu ngẫu nhiên vào hình ảnh
    // Lấy dữ liệu hình ảnh từ canvas
    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    var data = imageData.data;
    
    // Lặp qua từng pixel và thêm nhiễu ngẫu nhiên
    for (var i = 0; i < data.length; i += 4) {
        // Thêm nhiễu vào kênh đỏ
        data[i] += Math.floor(Math.random() * 10) - 5;     // Đỏ
        // Thêm nhiễu vào kênh xanh lá
        data[i+1] += Math.floor(Math.random() * 10) - 5;   // Xanh lá
        // Thêm nhiễu vào kênh xanh dương
        data[i+2] += Math.floor(Math.random() * 10) - 5;   // Xanh dương
    }
    
    // Đặt lại dữ liệu hình ảnh
 đã sửa đổi lên canvas
    ctx.putImageData(imageData, 0, 0);
    
    // Chuyển đổi canvas thành một URL dữ liệu và ghi log
    var dataURL = canvas.toDataURL();
    console.log(dataURL);
    
    // Tạo một hash SHA-256 của URL dữ liệu và ghi log
    sha256(dataURL).then(hash => console.log(hash));
    
    // Hàm để tạo hash SHA-256
    function sha256(str) {
        return crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)).then(buffer => {
            return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
        });
    }
</script>
</body>
</html>Nstbrowser là một trình duyệt dấu vân tay tuyệt vời hỗ trợ cấu hình dấu vân tay Canvas. Khi tạo hồ sơ, dấu vân tay Canvas mặc định là chế độ Nhiễu, thêm nhiễu ngẫu nhiên vào Canvas, nhưng nó cũng hỗ trợ chế độ Thực, giống với dấu vân tay Canvas của trình duyệt thực:

Dưới đây chúng tôi tạo 9 dấu vân tay Canvas cho các hồ sơ ở chế độ Nhiễu và Thực bằng cách sử dụng Nstbrowser, và sau đó so sánh dấu vân tay Canvas của trình duyệt thực của tôi bằng cách truy cập Browserleaks Canvas fingerprinting detection:



Từ việc so sánh, chúng ta có thể dễ dàng thấy rằng dấu vân tay với chế độ Thực của Canvas được thiết lập giống với dấu vân tay Canvas của trình duyệt thực của tôi, trong khi dấu vân tay Canvas của mỗi hồ sơ ở chế độ Nhiễu của Canvas là khác nhau và duy nhất.
Ưu điểm:
Nhược điểm:
Tính hợp pháp của Canvas Fingerprinting khác nhau tùy theo vị trí. Ở một số khu vực, nó có thể được coi là vi phạm các quy định về quyền riêng tư nếu được triển khai mà không có sự đồng ý của người dùng.
Tuy nhiên, các quy định điều chỉnh công nghệ nhận dạng dấu vân tay vẫn đang phát triển, và bối cảnh pháp lý ở nhiều quốc gia vẫn chưa rõ ràng.
Khi sử dụng Canvas Fingerprinting, các nhà vận hành trang web phải tuân theo các luật và quy định về quyền riêng tư địa phương.
Trong bài viết này, chúng tôi đã thảo luận về Canvas Fingerprinting. Đây là một phương pháp theo dõi web hiện đại được các chủ sở hữu trang web sử dụng để nhận dạng người dùng trang web của họ. Chúng tôi đã giải thích chi tiết về cách nó hoạt động và cách để tránh nó.
Về lâu dài, việc theo dõi trang web là không thể tránh khỏi. Cách tốt nhất là kiểm soát cách chúng ta bị theo dõi trên Internet. Đây là nơi mà trình duyệt antidetect tốt nhất - Nstbrowser - xuất hiện.
Công nghệ mở khóa trang web tiên tiến và các hệ thống chống phát hiện giúp bạn ẩn danh quyền riêng tư của mình và kích hoạt cạo web.