VPN thay đổi IP của bạn, không phải trình duyệt. Vì sao VPN không chặn được lấy dấu vân tay, khi nào nó phản tác dụng, và cách thực sự giảm lộ diện.
Không. VPN thay đổi địa chỉ IP mà lưu lượng của bạn thoát ra — đây là một thực tế ở tầng mạng. Còn dấu vân tay trình duyệt được tạo nên từ những gì trình duyệt render và báo cáo — đầu ra canvas, font chữ, thông số màn hình, WebGL, múi giờ, và hàng chục thuộc tính khác mà JavaScript có thể đọc được. VPN không đụng đến bất kỳ thứ nào trong số đó, vì nó hoạt động ở bên dưới tầng nơi việc lấy dấu vân tay diễn ra. Bật VPN rồi kỳ vọng dấu vân tay thay đổi theo cũng giống như yêu cầu một công cụ giải quyết vấn đề mà ngay từ đầu nó không hề nhìn thấy.
Tóm tắt nhanh
- VPN hoạt động ở tầng mạng (địa chỉ IP và vị trí hiển thị của bạn). Dấu vân tay trình duyệt được tạo nên ở tầng ứng dụng, từ những gì trình duyệt render và báo cáo — VPN không có cơ chế nào để đụng vào đó.
- Những gì VPN thay đổi: IP, ASN/tổ chức, và vị trí địa lý của bạn. Những gì nó không đụng đến: đầu ra canvas/WebGL, font chữ đã cài, thông số màn hình và thiết bị, múi giờ, ngôn ngữ, và số luồng xử lý phần cứng.
- VPN có thể khiến bạn dễ bị nhận dạng hơn, không phải ít hơn, khi nó tạo ra sự mâu thuẫn — một IP thuộc quốc gia này đi kèm múi giờ và ngôn ngữ của quốc gia khác là một dấu hiệu cảnh báo về tính nhất quán đã được biết đến rộng rãi.
- Nơi VPN thực sự hữu ích: nó phá vỡ vai trò của IP như một khóa liên kết giữa các trang web và giấu điểm đến của bạn khỏi mạng cục bộ — đó là một lợi ích thật, nhưng tách biệt, không phải một biện pháp chống lấy dấu vân tay.
- Điều thực sự làm giảm rủi ro lấy dấu vân tay là hòa lẫn vào một tập ẩn danh lớn thay vì cố giấu một giá trị đơn lẻ nào đó — bạn có thể kiểm tra mức độ lộ diện của mình bằng kiểm tra dấu vân tay và kiểm tra VPN/proxy của BrowserInsight.
Hai tầng khác nhau, hai nhiệm vụ khác nhau
Sự nhầm lẫn này hoàn toàn dễ hiểu, vì cả "VPN" lẫn "lấy dấu vân tay" đều nằm dưới cùng một chiếc ô "quyền riêng tư trực tuyến", nên người ta hợp lý khi kỳ vọng một công cụ quyền riêng tư sẽ giải quyết cả hai. Nhưng chúng hoạt động ở các tầng khác nhau của kết nối, và một biện pháp bảo vệ ở tầng này không tự động có tác dụng ở tầng kia.
- Tầng mạng liên quan đến lưu lượng của bạn đến từ đâu. Địa chỉ IP của bạn được cấp bởi mạng bạn đang kết nối, và đó chính là thứ VPN thay thế — lưu lượng của bạn thoát ra qua máy chủ của nhà cung cấp VPN thay vì ISP của bạn, nên trang web đích nhìn thấy IP của VPN, không phải của bạn.
- Tầng ứng dụng liên quan đến trình duyệt của bạn tiết lộ gì cho trang web. Dù có dùng VPN hay không, một khi kết nối được thiết lập, trang bạn tải có thể chạy JavaScript hỏi trình duyệt của bạn hàng chục câu hỏi: cài những font nào, GPU render một phần tử canvas ra sao, hệ điều hành báo múi giờ nào, có bao nhiêu lõi CPU. Những câu trả lời đó đến từ trình duyệt và hệ điều hành ngay trên máy bạn, còn một máy chủ VPN ở nơi khác không có cách nào chạm vào và thay đổi chúng.
Một cách hình dung hữu ích: VPN giống như việc đổi địa chỉ người gửi trên một phong bì thư. Nó thay đổi nơi bức thư trông như được gửi đi. Nhưng nó không làm gì với nét chữ viết tay, chất liệu giấy, hay dấu vân tay trên chính phong bì — và một script lấy dấu vân tay đọc chính xác những chi tiết kiểu đó, chứ không phải địa chỉ người gửi.
VPN thay đổi gì, không thay đổi gì
| Tầng | Tín hiệu | VPN có thay đổi nó không? |
|---|---|---|
| Mạng | Địa chỉ IP | Có — được thay bằng IP của máy chủ VPN |
| Mạng | ASN / tổ chức lưu trữ | Có — giờ hiển thị nhà cung cấp VPN |
| Mạng | Vị trí địa lý (quốc gia/thành phố) | Có — theo vị trí của máy chủ VPN |
| Mạng | Khả năng bị mạng cục bộ nhìn thấy (ISP, Wi-Fi quán cà phê) | Có — lưu lượng được đóng đường hầm và mã hóa |
| Trình duyệt | Đầu ra render Canvas / WebGL | Không — đến từ GPU và driver thật của bạn |
| Trình duyệt | Font chữ đã cài | Không — đến từ hệ điều hành thật của bạn |
| Trình duyệt | Độ phân giải màn hình, độ sâu màu, tỷ lệ pixel thiết bị | Không — đến từ màn hình thật của bạn |
| Trình duyệt | Múi giờ và ngôn ngữ | Không — đến từ cài đặt hệ điều hành, không phải từ mạng |
| Trình duyệt | Số luồng xử lý phần cứng, bộ nhớ | Không — đến từ thiết bị thật của bạn |
Cột bên trái là toàn bộ câu chuyện: nhiệm vụ của VPN dừng lại đúng chỗ tầng mạng kết thúc. Mọi thứ mà một script lấy dấu vân tay thực sự đọc được đều nằm ở tầng cao hơn một bậc — đó là lý do vì sao hai nhóm hàng trong bảng này không bao giờ trùng nhau.
Phần phản trực giác: VPN có thể khiến bạn nổi bật hơn
Đây là phần khiến nhiều người bất ngờ. Dùng VPN không chỉ không giúp ích gì trước việc lấy dấu vân tay — nó còn có thể phản tác dụng, vì nó tạo ra một sự mâu thuẫn giữa các tầng vốn không tồn tại trước đó.
Trước khi dùng VPN, IP, múi giờ và ngôn ngữ của bạn đều trỏ về cùng một nơi, vì tất cả chúng đều xuất phát từ cùng một thực tế vật lý: bạn, đang ở một vị trí. Đó là trạng thái bình thường, chẳng có gì đáng để ý của đại đa số khách truy cập, nên nó không thu hút sự chú ý nào.
Sau khi kết nối tới một điểm thoát VPN ở một quốc gia khác, IP của bạn giờ báo là (ví dụ) "Hà Lan" — nhưng múi giờ JavaScript của trình duyệt vẫn báo cáo đúng cài đặt hệ điều hành thật của bạn, và header Accept-Language vẫn liệt kê đúng ngôn ngữ thật bạn dùng. Một hệ thống phát hiện đối chiếu chéo các tín hiệu này sẽ thấy một IP Hà Lan đi kèm múi giờ America/Chicago và header ngôn ngữ en-US — một khoảng vênh tới bảy tiếng, không có lời giải thích thông thường nào, khác hẳn độ lệch nhỏ mà một người đi du lịch có thể tạo ra một cách tự nhiên. Chúng tôi giải thích chi tiết cách kiểm tra này hoạt động, và cách các dịch vụ proxy cố gắng (và thường thất bại) che giấu nó, trong bài Lộ múi giờ và ngôn ngữ và Tính nhất quán của dấu vân tay.
Cơ chế rất đơn giản: một dấu vân tay nhất quán (mọi thứ đều trỏ về cùng một câu chuyện hợp lý) là điều phổ biến và nhàm chán. Một dấu vân tay mang mâu thuẫn mới xuất hiện và không thể giải thích được thì lại hiếm gặp hơn nhiều — và "hiếm" chính là thứ mà một hệ thống theo dõi hay chống gian lận được xây dựng để phát hiện. Một VPN dùng bất cẩn có thể biến một khách truy cập bình thường thành một khách truy cập nổi bật hơn.
Nơi VPN thực sự hữu ích
Điều này không có nghĩa VPN vô dụng — nó có nghĩa là VPN hữu ích cho một vấn đề khác với việc lấy dấu vân tay, và đáng để nói công bằng vấn đề đó là gì:
- Phá vỡ vai trò của IP như một khóa liên kết giữa các trang web. Không có VPN, cùng một địa chỉ IP xuất hiện trên nhiều trang web là thêm một manh mối mà hệ thống theo dõi có thể dùng để nối các lượt truy cập của bạn lại với nhau. VPN — đặc biệt loại xoay vòng IP thoát — loại bỏ chính manh mối đó, dù dấu vân tay trình duyệt bên dưới có thể vẫn còn nhận dạng được.
- Giấu điểm đến của bạn khỏi mạng cục bộ và ISP. ISP của bạn, cùng bất kỳ ai chia sẻ Wi-Fi với bạn, thường có thể thấy bạn đang kết nối tới trang web nào. VPN đóng đường hầm và mã hóa lưu lượng đó, nên ở phía cục bộ chỉ thấy được "đã kết nối tới một VPN", không thấy các trang web bạn thực sự truy cập.
- Thay đổi vị trí hiển thị của bạn để truy cập nội dung bị giới hạn theo khu vực hoặc mức giá theo vùng. Đây là một trường hợp sử dụng thật, thường ngày, và hoàn toàn hợp pháp, không liên quan gì đến việc chống bị theo dõi.
Đây đều là những lợi ích thật ở tầng mạng. Chúng chỉ không mở rộng lên tầng trình duyệt — và sai lầm là coi VPN như một giải pháp quyền riêng tư toàn diện, chứ không phải bản thân việc dùng VPN.
Có một lưu ý đáng nói, vẫn nằm ở tầng mạng: những lợi ích trên đều giả định rằng đường hầm thực sự mang đi toàn bộ lưu lượng. WebRTC có thể hỏi một máy chủ STUN "bạn thấy tôi ở địa chỉ nào" qua một đường đi vòng qua đường hầm, còn truy vấn DNS có thể rò ra ngoài tới resolver của ISP — cả hai đều có thể trả lại đúng cái IP mà VPN lẽ ra phải thay thế. Các trình duyệt nền Chromium hiện đã che địa chỉ nội bộ sau những tên máy mDNS ngẫu nhiên, bịt được lỗ rò IP nội bộ ngày trước, nhưng rò rỉ IP công cộng hay rò rỉ DNS thì vẫn là thứ phải kiểm tra chứ không nên mặc định là không có. Chúng tôi bàn kỹ cả hai trong bài Chống rò rỉ WebRTC và Ngăn rò rỉ DNS, còn kiểm tra VPN/proxy của BrowserInsight sẽ chạy cả hai phép kiểm tra đó ngay trong trình duyệt của bạn.
Điều thực sự tác động đến việc lấy dấu vân tay
Nếu VPN không đụng đến việc lấy dấu vân tay, vậy thì cái gì đụng được? Câu trả lời thành thật là: không gì khiến bạn vô hình cả, nhưng bạn có thể khiến mình trở nên không đáng chú ý. Các biện pháp chống lấy dấu vân tay hoạt động bằng cách thu nhỏ mức độ có thể nhận dạng của tổ hợp tín hiệu cụ thể của bạn — tập ẩn danh của bạn: nhóm những người hiện đang trông giống hệt bạn dưới góc nhìn của một hệ thống theo dõi.
Có hai hướng tiếp cận chính:
- Đồng nhất hóa. Các công cụ như
resistFingerprintingcủa Firefox và Tor Browser chuẩn hóa những gì trình duyệt báo cáo — cùng một múi giờ được làm tròn, cùng một danh sách font giới hạn, cùng một hành vi canvas — áp dụng cho mọi người dùng của công cụ đó, để dấu vân tay của bạn hòa vào một đám đông lớn, giống hệt nhau thay vì nổi bật như một giá trị duy nhất. - Nhận thức và đo lường. Bạn không thể bảo vệ một tín hiệu mà bạn không biết mình đang phát ra. Kiểm tra cấu hình của chính mình cho thấy thuộc tính nào đang đóng góp nhiều entropy nhất, để bạn biết một thay đổi thực sự có giúp ích hay chỉ thêm vào một mâu thuẫn mới.
VPN hoàn toàn có thể là một phần hợp lý trong một thiết lập rộng hơn — chẳng hạn, chọn một vị trí thoát có múi giờ ít nhất tương đối khớp với hệ thống của bạn, thay vì để hai thứ mâu thuẫn hoàn toàn — nhưng nó chưa bao giờ được thiết kế để tự mình giải quyết vấn đề lấy dấu vân tay.
Kiểm tra thực tế thiết lập của bạn cho thấy gì
Hai tầng này tách biệt nhau, nên việc kiểm tra chúng cần hai công cụ riêng biệt:
- Kiểm tra VPN/proxy của BrowserInsight cho bạn biết tầng mạng của bạn trông ra sao — kết nối của bạn có bị gắn cờ là VPN, proxy, hay điểm thoát Tor hay không, và trang web sẽ thấy IP/ASN/vị trí nào.
- Kiểm tra dấu vân tay của BrowserInsight cho bạn biết tầng trình duyệt của bạn trông ra sao — những tín hiệu canvas, WebGL, font và thiết bị mà một script có thể đọc được, chạy hoàn toàn phía client.
Chạy cả hai, với và không có VPN đang bật, rồi so sánh. Bạn thường sẽ thấy kết quả tầng mạng thay đổi hoàn toàn trong khi kết quả tầng trình duyệt hầu như không nhúc nhích — đó chính là toàn bộ ý nghĩa của bài viết này, được hiển thị trực tiếp trên màn hình của bạn. Để tự kiểm tra rộng hơn dựa trên một tập dữ liệu tham chiếu trực tiếp, công cụ Cover Your Tracks của EFF ước tính trình duyệt của bạn đang tiết lộ bao nhiêu bit thông tin nhận dạng; bài giới thiệu về lý thuyết thông tin và quyền riêng tư của họ giải thích vì sao "số bit entropy" mới là khung tư duy đúng, thay vì đếm xem có bao nhiêu sự thật riêng lẻ bị lộ.
Câu hỏi thường gặp
Trang web có thể tiếp tục theo dõi tôi nếu tôi dùng VPN không?
Có, nếu việc theo dõi dựa vào lấy dấu vân tay trình duyệt thay vì địa chỉ IP của bạn. VPN giấu IP của bạn và mã hóa lưu lượng khỏi ISP, nhưng một script lấy dấu vân tay đọc các thuộc tính trình duyệt và thiết bị không liên quan gì đến kết nối mạng của bạn, nên trang web vẫn có thể nhận ra trình duyệt của bạn qua các phiên khác nhau.
Một VPN tốt ít nhất có giảm bớt dấu vân tay của tôi không?
Nhìn chung là không — công việc của VPN hoàn toàn nằm ở tầng mạng, trong khi các thuộc tính lấy dấu vân tay trình duyệt không phải là thuộc tính mạng. Một số ứng dụng VPN đi kèm một tiện ích mở rộng trình duyệt riêng cũng thực hiện giả mạo dấu vân tay, nhưng đó là một tính năng tách biệt đi kèm VPN, không phải điều mà chính đường hầm VPN cung cấp.
Tôi có nên ngừng dùng VPN nếu nó không chặn được việc lấy dấu vân tay?
Không. VPN vẫn làm tốt công việc riêng của nó — giấu IP của bạn khỏi các trang web đích và giấu việc duyệt web của bạn khỏi ISP và mạng cục bộ. Sai lầm là kỳ vọng nó cũng giải quyết luôn việc lấy dấu vân tay; hãy dùng nó cho đúng mục đích của nó, và kết hợp thêm các công cụ chuyên về dấu vân tay nếu đó là một mục tiêu riêng.
Dùng VPN với múi giờ và ngôn ngữ không khớp có tệ hơn là không dùng VPN chút nào không?
Xét riêng về lấy dấu vân tay, một mâu thuẫn IP/múi giờ/ngôn ngữ mới xuất hiện có thể dễ bị chú ý hơn một kết nối hoàn toàn nhất quán, không dùng VPN — nhưng điều này chỉ quan trọng với các hệ thống phát hiện có kiểm tra tính nhất quán, và nó không nói gì về những lợi ích thật sự của VPN (giấu IP của bạn khỏi các trang web, mã hóa lưu lượng khỏi ISP), những lợi ích vẫn áp dụng trong cả hai trường hợp.
Kết luận
VPN và việc lấy dấu vân tay trình duyệt tồn tại ở các tầng khác nhau trong kết nối của bạn, và không có sự bảo vệ nào ở tầng mạng có thể chạm tới các tín hiệu tầng trình duyệt mà một script lấy dấu vân tay đọc được. Đó không phải là một khiếm khuyết của VPN — nó đơn giản nằm ngoài phạm vi công việc của VPN. Hãy dùng VPN cho việc nó làm tốt: giấu IP của bạn và mã hóa lưu lượng khỏi ISP và mạng cục bộ. Nếu giảm mức độ nhận dạng của dấu vân tay là một mục tiêu riêng, nó cần một cách tiếp cận riêng, có chủ đích — được xây dựng xoay quanh việc hòa vào một đám đông lớn thay vì đổi địa chỉ.


