13 điểm bởi GN⁺ 2025-11-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Lấy dấu vân tay trình duyệt (browser fingerprinting) là một kỹ thuật theo dõi nghiêm trọng khó ngăn chặn ngay cả bằng cookie hay VPN, tạo ra mã định danh riêng bằng cách kết hợp thông tin môi trường của người dùng
  • Nhiều yếu tố như hệ điều hành, phiên bản trình duyệt, ngôn ngữ, múi giờ, phông chữ, tiện ích mở rộng, kết quả render canvas... được kết hợp để tăng khả năng nhận diện cá nhân
  • Các biện pháp phòng vệ đơn giản như tắt JavaScript, ngụy trang trình duyệt, thao tác canvas lại có thể để lộ thêm manh mối nhận dạng hoặc làm hỏng chức năng website
  • Một số trình duyệt như Brave, Mullvad, Librewolf có tích hợp tính năng chống fingerprinting, nhưng không thể phòng vệ hoàn toàn và còn gây bất tiện như giảm tính tiện dụng, tăng CAPTCHA
  • Các luật hiện có như GDPR chưa có cơ sở quy định rõ ràng, nên xuất hiện nhu cầu về một phản ứng lập pháp mới

Bối cảnh xuất hiện của lấy dấu vân tay trình duyệt

  • Trước đây, cookie bên thứ ba là mối đe dọa quyền riêng tư chính
    • Cookie ban đầu là phương tiện để duy trì đối thoại liên tục giữa trình duyệt và máy chủ, nhưng các mạng quảng cáo đã tận dụng nó để liên kết thông tin người dùng giữa nhiều website
    • Tại châu Âu, nghĩa vụ thông báo pháp lý về việc này đã được đưa vào áp dụng
  • Khi trình duyệt cải thiện khả năng phân tách cookie, rủi ro theo dõi bằng cookie giảm xuống, nhưng fingerprinting nổi lên như một mối đe dọa mới

Cách browser fingerprinting hoạt động

  • Nó hoạt động ngay cả khi không có cookie, và vẫn duy trì một phần khả năng nhận diện khi dùng VPN
  • Bằng cách kết hợp thông tin cơ bản mà trình duyệt cung cấp cho máy chủ như phiên bản trình duyệt, OS, ngôn ngữ, múi giờ..., hệ thống tạo ra một mã định danh số duy nhất
  • Thông qua JavaScript có thể thu thập thêm phông chữ, tiện ích mở rộng, thông tin phần cứng
  • Canvas fingerprint sử dụng sự khác biệt về pixel khi trình duyệt vẽ văn bản để nhận diện những sai khác tinh vi giữa các hệ thống
    • Mức độ độc nhất cao đến mức trong khoảng 1.000 trình duyệt chỉ có một trình duyệt có cùng một canvas fingerprint
  • Những thiết lập nhỏ như kích thước cửa sổ, giao diện, độ phân giải... cũng có thể được dùng làm manh mối nhận diện bổ sung

Giới hạn của các nỗ lực phòng vệ

  • Tắt JavaScript có thể chặn canvas fingerprint, nhưng bản thân việc “JavaScript đang tắt” lại trở thành một đặc điểm hiếm và là yếu tố fingerprint mới
  • Ngay cả khi trình duyệt ngụy trang (spoofing) thành một nền tảng khác, máy chủ vẫn có thể suy ra môi trường thật từ các tín hiệu khác
  • Các kỹ thuật ngụy trang tinh vi như thao tác canvas có thể gây website hoạt động sai hoặc để lại dấu vết bổ sung
  • Kết quả là fingerprinting là một kỹ thuật cực khó ngăn chặn, và các công ty theo dõi vẫn đang liên tục tinh chỉnh nó

Ứng phó một phần và giới hạn thực tế

  • Các website thử nghiệm như amiunique.org hoạt động trong môi trường đơn giản hơn việc theo dõi thực tế nên mức độ phản ánh thực tế thấp
  • Dù fingerprint có “độc nhất (unique)” thì theo thời gian nó vẫn có thể thay đổi, nên không phải chỉ số theo dõi hoàn hảo
  • Một số trình duyệt như Brave, Mullvad, Librewolf cung cấp tính năng chống fingerprint tích hợp
    • Librewolf bật mặc định tính năng chống fingerprint của Firefox
    • Brave và Mullvad ứng phó theo những cách khác nhau
  • Tuy vậy, bên thu thập fingerprint cũng đang nâng cấp công nghệ, nên phòng vệ hoàn toàn là bất khả thi

Những gì người dùng có thể làm

  • Xóa cookie dài hạndùng VPN là tiền đề cơ bản
    • VPN chặn lộ IP, nhưng bản thân việc dùng VPN cũng có thể trở thành một yếu tố fingerprint
  • Giữ trình duyệt ở trạng thái mặc định, hạn chế thay đổi tiện ích mở rộng, phông chữ, giao diện
  • Sử dụng môi trường phổ biến (Windows 11 + Chrome, v.v.) sẽ làm giảm xác suất bị nhận diện
  • Tận dụng các tính năng bảo vệ tích hợp như Mullvad, Librewolf, Firefox (bật chống fingerprint)
  • Ngay cả khi thực hiện mọi biện pháp, xác suất bị theo dõi cũng chỉ giảm từ khoảng 99% → 50%

Tác dụng phụ của chống fingerprint

  • Khi bật chống fingerprint trên Firefox hoặc Librewolf, sẽ phát sinh khóa kích thước cửa sổ, không đổi được giao diện, hạn chế UI
  • Máy chủ không nhận diện được trình duyệt nên tần suất CAPTCHA tăng
  • Một số website có thể gặp lỗi màu sắc, lỗi vị trí văn bản và các trục trặc hiển thị khác

Sự mơ hồ pháp lý và nhu cầu điều tiết

  • GDPR có điều khoản về cookie, nhưng không có quy định rõ ràng về fingerprinting
  • ICO (Information Commissioner’s Office) của Anh đánh giá fingerprinting theo hướng tiêu cực
  • Tính hợp pháp vẫn chưa rõ ràng, và vẫn có chỗ để lập luận về việc sử dụng hợp lý cho mục đích bảo mật
  • Ở thời điểm hiện tại, kết luận là cần ban hành luật mới
  • Fingerprinting là thứ người dùng không thể tự nhận biết, và dữ liệu thu thập được có tính ngắn hạn và mang tính thống kê, nhưng nó bị chỉ ra là công cụ chủ chốt hậu thuẫn cho hành vi theo dõi quá mức của ngành quảng cáo

Kết luận

  • Browser fingerprinting là một mối đe dọa quyền riêng tư khó phát hiện về mặt kỹ thuật và cũng nằm trong vùng xám pháp lý
  • Với trình độ công nghệ hiện nay, không thể phòng vệ hoàn toàn; cần siết chặt điều tiết bằng luật và tăng cường ứng phó ở cấp trình duyệt
  • Chừng nào các thực hành theo dõi của ngành quảng cáo còn tiếp diễn, môi trường Internet vẫn sẽ luôn tiềm ẩn rủi ro xâm phạm quyền riêng tư

1 bình luận

 
GN⁺ 2025-11-23
Ý kiến trên Hacker News
  • Trước đây tôi phát hiện rằng mỗi lần bấm “không dịch ngôn ngữ này” trong Chrome, ngôn ngữ đó lại tự động được thêm vào header Accept-Language
    Dù không hề cấu hình thủ công, Chrome vẫn liên tục đưa lựa chọn đó vào mọi yêu cầu
    Tôi cảm thấy tổ hợp này có thể trở thành một tín hiệu rất hữu ích cho theo dõi bằng dấu vân tay (fingerprinting), vì nó tạo ra một thứ tự ngôn ngữ riêng biệt của chính tôi
    Đã từng có đề xuất liên quan nhưng không được chấp nhận → đề xuất reduce-accept-language

    • Tôi tự hỏi có phải khi chọn “không dịch”, Chrome sẽ giả định rằng người dùng đọc được ngôn ngữ đó nên thêm nó vào header hay không. Đây là điểm khá thú vị
    • Tôi muốn đưa ra một cảnh báo vì lợi ích cộng đồng (PSA) là đừng dùng Chrome
    • Đọc nội dung đề xuất thì ý tưởng là để trình duyệt tự thương lượng ngôn ngữ thay cho website, nhưng tôi nghĩ điều đó không thực tế. Nếu là website đa ngôn ngữ thì cứ hiển thị UI cho người dùng chọn ngôn ngữ là được
    • Tôi từng gặp vấn đề phụ đề YouTube hiển thị sai ngôn ngữ, đã truy cập từ nhiều thiết bị nhưng hiện tượng này chủ yếu xảy ra khi dùng Chrome
    • Kể từ thời điểm Google chặn uBlock Origin, tôi nghĩ đã quá rõ rằng Chrome và quyền riêng tư là hai thứ không thể cùng tồn tại
      Bài liên quan: thảo luận HN
  • Tôi nghĩ tổ hợp Firefox + Arkenfox user.js là mạnh nhất về mặt quyền riêng tư
    Nó cung cấp mức bảo vệ ngang Tor Browser như tự động xóa cookie, giả mạo dấu vân tay canvas, cố định múi giờ về UTC
    Nó cũng chặn các domain quảng cáo và theo dõi ở mức DNS, đồng thời dùng uBlock Origin hoặc uMatrix để chặn mặc định nội dung bên thứ ba

    • Tuy nhiên nếu số người dùng cấu hình như vậy quá ít thì bản thân nó lại trở thành một dấu vân tay
      Giống như Tor, chỉ có ý nghĩa khi nhiều người cùng dùng một cấu hình giống nhau
      Nếu chỉ một mình dùng kiểu che giấu này thì lại càng nổi bật hơn
    • Tôi tò mò không biết có thể che cả tên GPU hay IP nội bộ bị lộ qua WebRTC hay không
      Thêm nữa, nhiều script lấy dấu vân tay được tải từ domain bên thứ nhất nên rất khó chặn hoàn toàn
    • Orion Browser (Kagi) mặc định chặn các script thu thập dấu vân tay
      Tham khảo: hướng dẫn quyền riêng tư của Orion
    • Các kỹ thuật chống lấy dấu vân tay dựa trên JavaScript đôi khi lại làm tăng tính độc nhất
    • Tôi thắc mắc liệu cấu hình Arkenfox có mạnh hơn cờ privacy.resistFingerprinting của Firefox hay không. Có vẻ những tính năng được mô tả đã được bật bởi cờ đó rồi
  • Theo dõi bằng dấu vân tay thường nhầm lẫn giữa đặc tính nhận diệntheo dõi
    Đổi múi giờ sang UTC không có nghĩa là không thể bị theo dõi
    Vẫn còn những tín hiệu mạnh hơn như IP, GeoIP
    Nếu các thành viên trong gia đình dùng cùng một IP nhưng mỗi người có cấu hình trình duyệt khác nhau thì lại còn dễ theo dõi hơn
    Muốn thực sự tránh bị theo dõi thì phải kết hợp xoay vòng VPNngẫu nhiên hóa header yêu cầu
    Nếu chỉ muốn ẩn danh thì dùng Tor Browser là hiệu quả nhất

  • Nếu muốn hiểu rõ hơn nguyên lý thu thập dấu vân tay của trình duyệt, bạn có thể xem bài tôi viết
    Browser Fingerprinting Explained

    • Vì dấu vân tay được giữ nhất quán giữa các website nên nó tạo ra vấn đề quyền riêng tư tương tự cookie bên thứ ba
  • Bài viết không nhắc tới, nhưng có một công cụ chẩn đoán dấu vân tay đời đầu là Cover Your Tracks (EFF)

    • Tuy nhiên cũng có ý kiến cho rằng không nên hoàn toàn tin tưởng EFF
  • Tôi đồng ý với luận điểm của bài viết. Theo dõi bằng dấu vân tay là một mối đe dọa lớn đối với tự do cá nhân
    Đồng thời tôi cũng nghĩ rằng người tạo nội dung cần được trả công xứng đáng
    Mô hình dựa trên quảng cáo thì hiệu quả, nhưng đánh đổi bằng quyền riêng tư

    • Thật ra có cảm giác giới quảng cáo đã lừa chúng ta bằng cái cớ “đền bù cho người sáng tạo”
      Phần lớn blogger không kiếm được bao nhiêu, còn bên quảng cáo mới là phía thu tiền
      Tôi nghĩ Internet thời trước, thiên về nội dung miễn phí, còn lành mạnh hơn
    • Giải pháp rất đơn giản. Chỉ cần quay lại quảng cáo theo ngữ cảnh (contextual ads)
    • Vấn đề không phải là quảng cáo, mà là theo dõi
      Việc theo dõi tôi cũng chẳng làm quảng cáo hiệu quả hơn
      Trái lại chỉ khiến những quảng cáo sản phẩm không cần thiết lặp đi lặp lại
      Nó giống một trải nghiệm rợn người như quảng cáo cá nhân hóa bằng nhận diện khuôn mặt trong cửa hàng ngoài đời
    • Tôi từng nghĩ liệu mô hình trả tiền theo lượt xem (pay-per-view) có hay hơn kiểu “đăng ký 5 USD mỗi tháng” không
      Nếu chi phí quảng cáo không bị cộng vào giá sản phẩm thì tổng thể có thể còn rẻ hơn
    • Nếu có thể dùng micropayment ẩn danh, thì không chỉ vấn đề giám sát mà cả phòng thủ DDoS cũng có thể được giải quyết
      Tôi hình dung mỗi lượt xem trang trả 1 xu, và giá sẽ tăng theo tải của máy chủ
  • Điều này làm tôi nhớ tới một trò chơi từng làm trong lớp phân loại dữ liệu
    “Cần bao nhiêu câu hỏi có/không để nhận diện mọi người trong căn phòng này?”
    Theo cách đó, dấu vân tay trình duyệt cũng dần thu hẹp một người chỉ bằng vài tín hiệu
    Ví dụ chỉ riêng tổ hợp “Linux + Firefox + màn hình bên trái” cũng đã thu hẹp xuống còn cỡ vài chục nghìn người

    • Tuy nhiên nếu các câu hỏi có tương quan cao với nhau thì lượng thông tin sẽ giảm
      Ví dụ “tóc dài?” và “là nữ?” chứa thông tin khá giống nhau nên gần như không thêm được bao nhiêu bit
      Ngược lại, câu như “có phải metalhead không?” lại cho rất nhiều thông tin khi hiếm khi nhận được câu trả lời “có”
    • Cũng có người nêu ra thắc mắc đơn giản là “chẳng phải chỉ nên dùng câu hỏi có/không thôi sao?”
  • Cốt lõi của vấn đề là chúng ta đã biến cấu trúc JavaScript gọi rồi thực thi một JavaScript khác thành mặc định
    Stallman đã đúng

    • Nhưng tôi nghĩ bản thân JS không hẳn là vấn đề; vấn đề lớn hơn là các công nghệ như WebRTC hay WebGL chạy mà không cần xin phép, rồi bị lạm dụng để thu thập dấu vân tay
    • Càng lớn tuổi tôi càng nhận ra RMS đúng là một chiến binh vì tự do
    • Tuy nhiên, nhiều script lấy dấu vân tay chạy từ domain bên thứ nhất như Cloudflare hay Akamai, nên chỉ chặn JS thôi cũng không giải quyết được
    • Trình duyệt vận hành như một người lính ngu ngốc kéo con ngựa thành Troy vào trong
    • Chặn hoàn toàn JS không phải phương án thực tế vì sẽ làm hỏng một nửa web. Ngay cả không có JS thì vẫn có thể theo dõi bằng dấu vân tay
  • Nếu muốn kiểm tra trình duyệt đang lộ ra những thông tin gì, website Am I Unique? rất hữu ích

  • Để dấu vân tay có ích, nó không chỉ cần tính độc nhất mà còn cần tính bền vững (persistence)
    Nếu mỗi lần lại cài rồi gỡ font ngẫu nhiên, liệu có thể nối tôi của hôm nay với tôi của ngày mai được không?

    • Nhưng theo nghiên cứu, kể cả khi dấu vân tay thay đổi theo thời gian thì vẫn có thể ước đoán cùng một người dùng với độ chính xác 99,1%
      Tham khảo: PDF nghiên cứu của EFF, giải thích của Mullvad
    • Trên thực tế người ta chỉ có thể kiểm tra xem một số font cụ thể có được cài hay không, chứ không lấy được toàn bộ danh sách
      API queryLocalFonts của Chrome yêu cầu popup xin quyền
    • Nếu gửi lên một dấu vân tay quá phi thực tế thì ngược lại nó sẽ trở thành một dấu vân tay khác do phát hiện giả mạo
      Truyện tranh liên quan: xkcd 1105
    • Cuối cùng vẫn có thể nối lại bằng cookie, dấu vân tay đường cong elliptic trong bắt tay SSL, hay phân loại persona ẩn danh dựa trên GDPR/CCPA
      Ngày nay, ngay trong lúc tải trang, trong vòng dưới 5ms đã có thể quyết định người dùng thuộc persona nào
      Tuy vậy, phần lớn các nền tảng dữ liệu vẫn tự động xóa dữ liệu sau 90 ngày để duy trì tuân thủ GDPR