Dấu vân tay trình duyệt là gì? Bắt đầu từ “nhận dạng thụ động”

Khi bạn lướt web, các trang web thường muốn biết “bạn là ai” – ngay cả khi bạn chưa đăng nhập. Cách truyền thống là sử dụng Cookie, nhưng người dùng ngày càng có xu hướng xóa hoặc vô hiệu hóa chúng. Do đó, một công nghệ tinh vi hơn đã ra đời: Dấu vân tay trình duyệt (Browser Fingerprinting). Nó thu thập các thuộc tính khác nhau của trình duyệt và thiết bị (như độ phân giải màn hình, hệ điều hành, múi giờ, phông chữ đã cài đặt, sự khác biệt về kết xuất Canvas, v.v.) để kết hợp thành một giá trị băm duy nhất, từ đó nhận dạng người dùng.

Tuy nhiên, khi công nghệ chống dấu vân tay phát triển, các trang web cũng bắt đầu khai thác thông tin chi tiết hơn. Trong đó, Dấu vân tay MediaDevices đang trở thành công cụ theo dõi thế hệ mới, sử dụng API navigator.mediaDevices.enumerateDevices() để lấy danh sách các thiết bị đa phương tiện như micrô, máy ảnh, loa được kết nối với thiết bị của người dùng, và tạo ra các đặc điểm rất khác biệt dựa trên nhãn, ID, thông tin nhóm của thiết bị. Do sự khác biệt lớn về thiết bị ngoại vi và phần cứng tích hợp giữa các người dùng, tính ổn định và tính duy nhất của dấu vân tay MediaDevices thường cao hơn so với dấu vân tay truyền thống.

Nguyên lý tạo dấu vân tay MediaDevices và chi tiết dữ liệu

1. Các loại thiết bị có thể liệt kê

Trình duyệt trả về một Promise thông qua navigator.mediaDevices.enumerateDevices(), sau khi giải quyết sẽ nhận được một mảng MediaDeviceInfo. Mỗi thiết bị chứa các thuộc tính chính sau:

  • deviceId: Định danh duy nhất của thiết bị (thường là cố định, nhưng cùng một máy trên các trình duyệt khác nhau có thể khác nhau).
  • kind: Loại thiết bị, chia thành audioinput (đầu vào âm thanh), audiooutput (đầu ra âm thanh), videoinput (đầu vào video).
  • label: Tên thiết bị (ví dụ: “Realtek(R) Audio”, “Built-in Microphone”, “Logitech Webcam C920”).
  • groupId: Liên kết các giao diện logic khác nhau của cùng một thiết bị vật lý (ví dụ: một webcam USB có thể có cả đầu vào âm thanh và đầu vào video, chúng có cùng groupId).

Các trang web thường đọc toàn bộ danh sách thiết bị và ghi lại tất cả các kết hợp labelgroupId. Do sự khác biệt về thương hiệu, mẫu mã, phiên bản driver đều dẫn đến sự khác biệt trong chuỗi label, điều này khiến entropy (lượng thông tin) của dấu vân tay rất cao. Theo nghiên cứu, hơn 80% người dùng có dấu vân tay MediaDevices duy nhất.

2. Tính bền vững và ổn định của dữ liệu

Không giống như dấu vân tay Canvas (có thể thay đổi nhỏ do tăng tốc phần cứng mỗi lần kết xuất), dấu vân tay MediaDevices cực kỳ ổn định. Miễn là không thay đổi phần cứng, không cập nhật driver hoặc kết nối thiết bị ngoại vi mới, label và ID của thiết bị sẽ không thay đổi trong một thời gian dài. Hơn nữa, ngay cả khi trình duyệt xóa Cookie hoặc sử dụng chế độ riêng tư, deviceId vẫn giữ nguyên (một số trình duyệt trong chế độ ẩn danh trả về chuỗi rỗng, nhưng label vẫn có thể đọc được). Điều này khiến dấu vân tay MediaDevices trở thành ứng cử viên lý tưởng cho việc theo dõi xuyên phiên.

3. Ví dụ về tấn công trong tình huống thực tế

Một quy trình theo dõi điển hình như sau:

  • Khi người dùng lần đầu truy cập một trang web thương mại điện tử, trang web thu thập danh sách MediaDevices thông qua JavaScript, kết hợp với các dấu vân tay khác như Canvas, WebGL để tạo ra một giá trị băm.
  • Người dùng duyệt sản phẩm, thêm vào giỏ hàng mà chưa đăng nhập. Ngày hôm sau truy cập lại, trang web đọc dấu vân tay mới và so khớp với cơ sở dữ liệu, nhận dạng trực tiếp cùng một người dùng, từ đó đẩy quảng cáo sản phẩm đã xem trước đó.

Kiểu theo dõi này được ứng dụng rộng rãi trong mạng xã hội, liên minh quảng cáo, hệ thống chống gian lận. Đối với người bán hàng thương mại điện tử, người quản lý mạng xã hội, họ cũng có thể sử dụng công nghệ tương tự để nhận dạng tài khoản giả mạo đăng ký hàng loạt – nhưng ngược lại, nếu người dùng thông thường muốn bảo vệ quyền riêng tư, hoặc người làm thương mại điện tử xuyên biên giới cần quản lý nhiều tài khoản cửa hàng, tránh bị nền tảng phát hiện là cùng một người, thì phải chủ động ngụy trang dấu vân tay MediaDevices.

Mối đe dọa của dấu vân tay MediaDevices đối với vận hành đa tài khoản

Ngày nay, nhiều nền tảng (như Amazon, Facebook, TikTok) đã triển khai các hệ thống chống dấu vân tay phức tạp, kết hợp dấu vân tay trình duyệt và dấu vân tay thiết bị để xác định liệu có nhiều tài khoản đang được thao tác trên cùng một máy tính hay không. Một khi dấu vân tay MediaDevices bị lộ, dù đã sử dụng proxy IP hoặc xóa Cookie, nền tảng vẫn có thể dễ dàng cảnh báo thông qua đặc điểm này. Đối với người bán hàng thương mại điện tử xuyên biên giới, nhà tiếp thị truyền thông xã hội, điều này có thể dẫn đến hậu quả nghiêm trọng như khóa tài khoản, giảm quyền.

Hạn chế của các giải pháp truyền thống

Một số người dùng thử làm giả thông tin thiết bị thông qua phần mềm ảo hóa, sửa đổi cấu hình trình duyệt, nhưng hiệu quả thường không tốt:

  • Sửa đổi deviceId của navigator.mediaDevices cần tiêm script và dễ gây ra lỗi JavaScript.
  • Việc nạp chồng đơn giản bằng Object.defineProperty chỉ có thể thay đổi một số thuộc tính, không thể mô phỏng hành vi liệt kê danh sách thiết bị thực tế.
  • Hầu hết các công cụ miễn phí không thể đồng thời ngụy trang mối quan hệ giữa labelgroupId, dẫn đến dấu vân tay vẫn còn sơ hở.

Do đó, các công cụ chống dấu vân tay chuyên nghiệp trở thành nhu cầu thiết yếu. Ví dụ như Trình duyệt dấu vân tay Nest thông qua việc tùy chỉnh sâu kernel trình duyệt ở cấp độ driver, có thể mô phỏng hoàn toàn danh sách MediaDevices của các thiết bị khác nhau, bao gồm tên thiết bị, ID, thông tin nhóm tùy chỉnh, mà không gây ra cảnh báo trình duyệt. Cụ thể, nó sẽ phân bổ một “môi trường thiết bị đa phương tiện ảo” độc lập cho mỗi cấu hình trình duyệt, bao gồm:

  • Thiết bị đầu vào âm thanh giả (ví dụ: “Microphone (Conexant SmartAudio HD)“)
  • Thiết bị đầu ra âm thanh giả (ví dụ: “Speakers (Realtek High Definition Audio)“)
  • Thiết bị đầu vào video giả (ví dụ: “HD Webcam C525”)

Khi bạn sử dụng Trình duyệt dấu vân tay Nest để tạo các cấu hình khác nhau, kết quả trả về của navigator.mediaDevices.enumerateDevices() cho mỗi cấu hình hoàn toàn khác nhau, giống như bạn đang thực sự sử dụng các thiết bị vật lý khác nhau. Điều này có nghĩa là ngay cả khi nhiều tài khoản đăng nhập trên cùng một máy tính, hệ thống chống dấu vân tay cũng không thể liên kết các tài khoản thông qua dấu vân tay MediaDevices.

Làm thế nào để kiểm tra dấu vân tay MediaDevices của bạn có duy nhất không?

Trước khi thực hiện các biện pháp bảo vệ, bạn nên đánh giá độ mạnh của dấu vân tay trên thiết bị hiện tại. Bạn có thể truy cập một số trang web kiểm tra dấu vân tay (như amiunique.org hoặc browserleaks.com) để xem danh sách MediaDevices của mình. Các bước điển hình:

  1. Mở công cụ dành cho nhà phát triển trình duyệt (F12).
  2. Chạy đoạn mã sau trong Console:
    navigator.mediaDevices.enumerateDevices().then(function(devices) {
      devices.forEach(function(device) {
        console.log(device.kind + ": " + device.label + " | id: " + device.deviceId);
      });
    });
  3. Xem danh sách thiết bị được xuất ra. Nếu trong danh sách có tên thiết bị thật (ví dụ: “Logitech C920”), điều đó có nghĩa là dấu vân tay MediaDevices của bạn đang bị lộ.

Đáng chú ý, nếu bạn sử dụng Trình duyệt dấu vân tay Nest và bật môi trường ảo, bạn sẽ thấy danh sách thiết bị đầu ra hoàn toàn được thay thế bằng thiết bị ảo do hệ thống đặt trước, và không có sự trùng lặp giữa các cấu hình khác nhau. Đây là giải pháp chống dấu vân tay triệt để và tuân thủ nhất hiện nay.

Chiến lược chống dấu vân tay toàn diện: Không chỉ MediaDevices

Mặc dù dấu vân tay MediaDevices rất quan trọng, nhưng các hệ thống chống dấu vân tay hiện đại thường phân tích đa chiều. Do đó, chỉ ngụy trang thiết bị âm thanh video là chưa đủ, bạn còn cần xem xét:

  • Dấu vân tay Canvas: Sử dụng công nghệ vẽ lại + thêm nhiễu để mỗi lần kết xuất khác nhau.
  • Dấu vân tay WebGL: Sửa đổi thông tin card đồ họa và hành vi kết xuất.
  • Dấu vân tay AudioContext: Mô phỏng đặc tính xử lý âm thanh của các thiết bị khác nhau.
  • Múi giờ / Ngôn ngữ / Danh sách phông chữ: Mỗi cấu hình trình duyệt tương ứng với một khu vực khác nhau.
  • IP và vị trí địa lý: Kết hợp với proxy sạch hoặc IP dân cư.

Trong đó, Trình duyệt dấu vân tay Nest đã đạt đến mức dẫn đầu trong ngành về mô phỏng dấu vân tay đa chiều. Nó không chỉ hỗ trợ ngụy trang tự động tất cả các dấu vân tay kể trên, mà còn cung cấp chức năng đồng bộ đám mây, cho phép các cấu hình trên các máy tính khác nhau giữ nguyên dấu vân tay, rất phù hợp cho hoạt động nhóm. Đồng thời, khả năng chống phát hiện tự động hóa của nó cũng có thể vượt qua việc nhận dạng trình duyệt không đầu hoặc máy ảo của nền tảng.

Ví dụ trong tình huống thực tế thương mại điện tử xuyên biên giới, nhóm sẽ phân bổ một cấu hình trình duyệt độc lập cho mỗi cửa hàng: bao gồm IP chuyên dụng, dấu vân tay độc lập (kèm danh sách MediaDevices), Cookie và bộ nhớ cục bộ cố định. Nhờ đó, ngay cả khi nhiều cửa hàng cùng hoạt động trên cùng một máy chủ, nền tảng cũng không thể phát hiện mối liên hệ thông qua bất kỳ đặc điểm dấu vân tay nào. Một người bán hàng kỳ cựu đã sử dụng và giới thiệu Trình duyệt dấu vân tay Nest phản hồi rằng 20 cửa hàng Amazon của anh ấy đã hoạt động liên tục trong nửa năm mà không một cửa hàng nào kích hoạt xác minh lần hai.

Tổng kết: Kiểm soát danh tính số của bạn

Dấu vân tay MediaDevices đang từ “công nghệ ngách” trở thành “kẻ đánh cắp quyền riêng tư”. Nó vừa là công cụ đắc lực để các trang web theo dõi người dùng, vừa là trở ngại chính mà những người vận hành đa tài khoản cần né tránh. Sau khi hiểu nguyên lý, chúng ta có hai lựa chọn:

  • Phòng thủ thụ động: Tự tay vô hiệu hóa quyền truy cập webcam, micrô, hoặc sử dụng script để ngẫu nhiên hóa deviceId. Nhưng cách này dễ bị phát hiện và ảnh hưởng đến việc sử dụng bình thường.
  • Ngụy trang chủ động: Sử dụng trình duyệt dấu vân tay chuyên nghiệp, như Trình duyệt dấu vân tay Nest, để mỗi cấu hình trình duyệt có môi trường MediaDevices độc lập, cắt đứt mối liên hệ từ gốc.

Trong thời đại mà danh tính số ngày càng có giá trị, việc bảo vệ “đặc điểm sinh trắc học” và “đặc điểm thiết bị” của bạn cũng quan trọng không kém. Hy vọng bài viết này giúp bạn nhận thức sâu sắc hơn về kênh theo dõi ẩn giấu này và tìm ra công cụ bảo vệ phù hợp cho mình.