CreepJS, công cụ đo entropy và điểm ẩn danh của nhà cung cấp gọi cùng một trình duyệt ba cái tên khác nhau, vì chúng đo ba đại lượng hoàn toàn khác nhau.
Chạy trình duyệt của bạn qua hai công cụ kiểm tra vân tay liên tiếp, bạn hoàn toàn có thể nhận được hai câu trả lời trông mâu thuẫn hoàn toàn với nhau. Một công cụ nói vân tay của bạn là "1 trên 400.000" — cách diễn đạt nghe có vẻ yên tâm, nhưng thực chất nghĩa là trong mẫu của công cụ đó không còn ai giống bạn cả. Một công cụ khác cho bạn điểm tin cậy 62%, gắn cờ vì có mâu thuẫn. Công cụ thứ ba gọi bạn là "rất độc đáo" rồi dừng lại, không giải thích thêm. Không công cụ nào sai cả. Chúng chỉ đơn giản là không đo cùng một thứ, và từ "điểm số" đang gánh rất nhiều việc để che giấu điều đó.
Những điểm chính
- Các công cụ kiểm tra vân tay báo cáo ba đại lượng hoàn toàn khác nhau dưới cùng một từ "điểm số": tính độc đáo (tổ hợp của bạn hiếm đến mức nào), tính mạch lạc (các tín hiệu của bạn có mâu thuẫn nhau không), và điểm ẩn danh tổng hợp của nhà cung cấp (một hỗn hợp có trọng số mà nhà cung cấp tự định nghĩa riêng).
- Tính độc đáo là một phép đo lý thuyết thông tin, không phải một phán quyết — số cao nghĩa là bạn có thể bị nhận diện, không có nghĩa là có gì đó trong trình duyệt của bạn bị hỏng hay giả mạo.
- Tính mạch lạc gần với phát hiện nói dối hơn: một trình duyệt hoàn toàn mạch lạc vẫn có thể rất độc đáo, và một trình duyệt trông có vẻ rất ẩn danh vẫn có thể trượt các kiểm tra mạch lạc.
- Việc siết chặt bảo mật trình duyệt có thể đẩy hai con số này theo hai hướng ngược nhau cùng lúc — đây là sự thật phản trực giác nhất mà bất kỳ ai đọc báo cáo vân tay cũng cần biết.
- Ngay cả hai công cụ đo tính độc đáo cũng bất đồng với nhau, vì mỗi công cụ tính độ hiếm dựa trên chính tập người dùng tự tìm đến nó — một con số về độ hiếm luôn có nghĩa là "hiếm trong số khách truy cập của công cụ này", chứ không phải "hiếm trên toàn internet".
- Một bài kiểm tra chỉ đọc các API của trình duyệt thì không thể đối chiếu múi giờ của bạn với nơi IP của bạn thực sự phân giải về: phép so sánh đó cần một máy chủ đã thực sự nhìn thấy kết nối của bạn, nên về bản chất nó nằm ngoài mọi điểm số chấm thuần trong trình duyệt.
Ba câu hỏi khác nhau đội chung một cái tên
"Điểm số" ngụ ý một thước đo duy nhất. Nhưng trên thực tế, mọi bài kiểm tra vân tay bạn từng gặp đều đang trả lời một trong ba câu hỏi hoàn toàn tách biệt, và việc lẫn lộn chúng chính là lý do vì sao hai tab mở hai công cụ kiểm tra khác nhau có thể khiến bạn cảm giác như chúng đang nói về hai trình duyệt khác nhau.
Tính độc đáo hỏi: trong số tất cả những người từng được đo, có bao nhiêu người chia sẻ chính xác tổ hợp tín hiệu giống bạn? Đây là một câu hỏi thống kê trên quần thể người dùng, được trả lời bằng lý thuyết thông tin — đọc Entropy dấu vân tay trình duyệt và tập ẩn danh là gì để hiểu đầy đủ cơ chế các "bit" tín hiệu riêng lẻ cộng dồn thành một con số duy nhất như thế nào. Bài nhập môn của chính EFF về phần toán học nền tảng là một bài đọc ngắn hữu ích nếu bạn muốn hiểu lý thuyết mà không gắn với khung trình duyệt cụ thể: Nhập môn lý thuyết thông tin và quyền riêng tư.
Tính mạch lạc hỏi một câu hoàn toàn khác: các tín hiệu mà trình duyệt của bạn phơi bày có hợp lý để đến từ cùng một thiết bị thật hay không, hay có gì đó trông như đã bị vá? Mô hình phát hiện nói dối của CreepJS là ví dụ công khai rõ ràng nhất — nó không quan tâm vân tay của bạn hiếm đến mức nào, chỉ quan tâm liệu các thuộc tính của bạn có đồng thuận với nhau qua nhiều đường dẫn mã độc lập hay không. Tính nhất quán của vân tay: Tại sao tín hiệu mâu thuẫn bị gắn cờ trình bày cùng ý tưởng đó từ góc nhìn của một hệ thống phát hiện: một user-agent tự nhận là Safari đi kèm một chuỗi renderer GPU chỉ có thể đến từ máy Windows là một lỗi mạch lạc, bất kể từng giá trị riêng lẻ phổ biến hay hiếm đến đâu.
Điểm ẩn danh tổng hợp của nhà cung cấp là hạng mục thứ ba và kém minh bạch nhất. Các sản phẩm lấy dấu vân tay thương mại thường công bố một con số phần trăm hoặc một hạng chữ duy nhất nhằm tóm tắt "khách truy cập này trông đáng tin đến mức nào," được pha trộn từ một hỗn hợp nào đó gồm tính độc đáo, tín hiệu mạch lạc, và các heuristic độc quyền mà nhà cung cấp không công bố. Không có tiêu chuẩn chung nào cho cách hỗn hợp đó được gia trọng — 80% của nhà cung cấp này và 80% của nhà cung cấp khác không đo cùng một công thức, vì mỗi bên đều tự do định nghĩa công thức của riêng mình. Hãy coi bất kỳ con số nào từ một nhà cung cấp đơn lẻ là ý kiến riêng của nhà cung cấp đó, chứ không phải một phép đo theo nghĩa của hai loại còn lại.
Mỗi loại điểm số cho bạn biết gì và không cho bạn biết gì
Tính độc đáo cho bạn biết bạn dễ bị tìm ra đến mức nào qua các lượt truy cập vào những trang có lấy dấu vân tay của bạn — nó không nói gì về việc trình duyệt của bạn có trông như bị can thiệp hay không. Một trình duyệt hoàn toàn nguyên bản, chưa chỉnh sửa, với tổ hợp phần cứng và font chữ bất thường nhưng hoàn toàn có thật, vẫn có thể được chấm là rất độc đáo trong khi hoàn toàn mạch lạc. Tính độc đáo cao là một vấn đề quyền riêng tư (bạn có thể bị theo dõi), không phải một dấu hiệu cảnh báo cho hệ thống chống gian lận.
Có một điểm cần lưu ý ở đây, và nó giải thích phần lớn sự bất đồng giữa hai công cụ đo tính độc đáo: mẫu số luôn là tập người mà chính công cụ đó đã đo, và tập người này là tự chọn lọc. Những ai chủ động tìm đến một công cụ kiểm tra vân tay thường quan tâm đến quyền riêng tư hơn hẳn mặt bằng chung của internet. Vì vậy con số về độ hiếm thực chất có nghĩa là "hiếm trong số khách truy cập của công cụ này", chứ không phải "hiếm trên internet" — nên hai công cụ đo entropy hoàn toàn có thể đưa cho bạn hai con số khác nhau cho cùng một trình duyệt không hề thay đổi, mà cả hai vẫn đang báo cáo trung thực về mẫu của riêng mình.
Tính mạch lạc cho bạn biết các tín hiệu của bạn có ăn khớp với nhau hay không, và không nói gì về việc tổ hợp đó hiếm đến mức nào. privacy.resistFingerprinting của Firefox — luôn bật trong Tor Browser — khiến mọi người dùng đều báo cáo cùng một bộ giá trị đã chuẩn hóa, và điều đó kéo tính độc đáo xuống: tạo ra một đám đông thật lớn và thật đồng nhất chính là toàn bộ mục tiêu thiết kế. Nhưng những giá trị đó là được thay thế chứ không phải nguyên bản của thiết bị, và một bộ phát hiện nói dối chạm tới cùng một thuộc tính qua nhiều đường dẫn mã độc lập thường nhận ra được. Thành thử mới có chuyện: một trình duyệt gần như "ẩn danh" trên bài kiểm tra tính độc đáo vẫn có thể bật đèn đỏ trên báo cáo mạch lạc. Với hệ thống chấm điểm gian lận và giảm thiểu bot trong môi trường sản xuất, lỗi mạch lạc có trọng lượng lớn nhất, vì một thiết bị chưa bị chỉnh sửa hiếm khi tự mâu thuẫn theo đúng kiểu đó. "Hiếm khi" mới là từ chính xác: các tính năng bảo vệ quyền riêng tư, cấu hình do doanh nghiệp quản lý, cùng những thiết bị hiếm gặp hoặc đã cũ đều tạo ra cảnh báo mạch lạc có thật — nên một cờ mạch lạc là đầu mối đáng điều tra, không phải một phán quyết.
Điểm tổng hợp của nhà cung cấp cho bạn biết mô hình của một công ty hiện đang gia trọng các đầu vào mà nó dùng ra sao, điều này có thể thay đổi giữa các phiên bản sản phẩm mà bạn không hề hay biết. Chúng hữu ích như một cảm nhận thô sơ từ góc nhìn của riêng nhà cung cấp đó, chứ không phải một con số có thể mang đi so sánh với đầu ra của một công cụ khác, hay giải thích cho người khác mà không kèm theo việc giải thích nhà cung cấp nào đã tạo ra nó.
Điều phản trực giác: siết chặt bảo mật có thể đẩy hai con số ngược chiều nhau
Đây chính là chi tiết khiến báo cáo vân tay thực sự gây bối rối chứ không chỉ dài dòng: một thay đổi duy nhất trên trình duyệt của bạn có thể làm tăng con số này trong khi làm giảm con số kia.
Cài một tiện ích mở rộng giả mạo hoặc ngẫu nhiên hóa một vài tín hiệu — một hash canvas giả, một tham số WebGL bị làm nhiễu — có thể làm giảm tính độc đáo đo được của bạn trong một lượt truy cập cụ thể, vì giá trị nó báo cáo hôm đó có thể tình cờ phổ biến hơn. Nhưng bản thân việc ngẫu nhiên hóa lại là một khuôn mẫu mà một bộ kiểm tra mạch lạc có thể bắt được: Canvas Noise vs Hash Thật: Vì Sao Randomization Phản Tác Dụng giải thích vì sao "giá trị canvas này đổi mỗi lần tải lại" tự nó đã là một dấu hiệu tố cáo, khác biệt và đôi khi còn tệ hơn một giá trị ổn định, độc đáo. Cùng một trình duyệt trở nên đáng ngờ hơn trong mắt một bộ kiểm tra mạch lạc đúng vào thời điểm nó trông phổ biến hơn với một bộ kiểm tra tính độc đáo.
Điều ngược lại cũng xảy ra. Một trình duyệt hoàn toàn nguyên bản — không tiện ích mở rộng, cài đặt mặc định, dùng đúng những font đi kèm hệ điều hành — có xu hướng đạt điểm mạch lạc rất tốt, vì không có gì trông như bị vá. Nhưng "hoàn toàn nguyên bản" cũng thường là một tổ hợp đặc trưng riêng, xét theo model GPU, danh sách font đã cài, và hình học màn hình, điều này có thể đẩy tính độc đáo lên thay vì xuống. Không có thay đổi đơn lẻ nào cải thiện được cả hai con số cùng lúc một cách chắc chắn; một biện pháp phòng thủ phải được đánh giá riêng với từng phép đo, vì một phiên kiểm tra chỉ báo cáo một trong hai chỉ đang cho bạn thấy một nửa bức tranh.
Điểm mù mà mọi bài kiểm tra thuần trong trình duyệt đều có chung
Mọi công cụ được nhắc tới từ đầu bài — bộ kiểm tra tính độc đáo, CreepJS, điểm tổng hợp của nhà cung cấp — đều chấm điểm bạn từ bên trong trình duyệt, dựa trên những gì JavaScript đọc được từ chính các API của trình duyệt. Điều đó khiến tất cả chúng có chung một điểm mù mang tính cấu trúc: không một API nào trong số đó cho script biết kết nối của nó thực sự đi ra ở đâu. Intl.DateTimeFormat().resolvedOptions().timeZone chỉ trả về giá trị mà trình duyệt được cấu hình để báo cáo; nó không nói gì về đường đi của yêu cầu, cũng không nói gì về IP mà máy chủ ở đầu bên kia nhìn thấy.
Phép so sánh đó — đối chiếu múi giờ và ngôn ngữ với vị trí địa lý của IP — là một trong những tín hiệu rẻ nhất và được dùng rộng rãi nhất mà một hệ thống phát hiện trong môi trường sản xuất chạy, chính vì nó nằm hoàn toàn bên ngoài tầng thuộc tính trình duyệt. Một trình duyệt có thể báo cáo cặp múi giờ và ngôn ngữ hoàn toàn mạch lạc, hoàn toàn hợp lý trong khi đang ở sau một exit node VPN tại một quốc gia hoàn toàn khác, và dù bạn có dò xét thêm bao nhiêu bên trong trình duyệt đó cũng không làm lộ ra được mâu thuẫn này. Muốn lấp khoảng trống đó cần một quan sát thứ hai, từ phía máy chủ: tra ra IP mà kết nối thực sự đi đến, rồi đối chiếu với những gì trình duyệt tự khai. Kiểm tra VPN và proxy của BrowserInsight được xây dựng quanh đúng nửa phía mạng đó, còn kiểm tra vân tay thì đưa chính phép tra vị trí phía máy chủ ấy vào các kết luận nhất quán của nó — đây đúng là thành phần mà một trang chấm điểm bạn thuần bằng thuộc tính trình duyệt không thể tự cung cấp.
Đọc một bộ kết quả mà không chạy theo một con số duy nhất
Không điều nào trong bài này là hướng dẫn để nâng bất kỳ điểm số nào ở trên — ba con số này tồn tại vì chúng trả lời những câu hỏi rủi ro khác nhau, không phải vì một cái là "thật" còn hai cái kia chỉ là xấp xỉ của nó. Bạn nên chú ý đến con số nào tùy thuộc vào điều bạn thực sự đang lo lắng:
- Lo lắng về việc bị theo dõi và lập hồ sơ qua nhiều trang? Tính độc đáo là con số liên quan — xem Entropy dấu vân tay trình duyệt và tập ẩn danh là gì để biết cách đọc tập ẩn danh của bạn.
- Lo lắng về việc trông như tự động hóa hoặc bị giả mạo với trang bạn đang tương tác? Tính mạch lạc mới là thứ quan trọng, và đó chính là thứ mà các công cụ như CreepJS và các bài kiểm tra đạt/không đạt công khai như các trang công khai của Sannysoft và CreepJS được xây dựng để vạch ra.
- Đang đánh giá sản phẩm của một nhà cung cấp cụ thể vì trang bạn đang vận hành đang dùng nó? Điểm tổng hợp của họ chỉ có ý nghĩa trong bối cảnh tài liệu riêng của nhà cung cấp đó về những gì họ gia trọng — hãy coi nó là ý kiến của họ, không phải một phép đo phổ quát.
Một con số duy nhất từ một công cụ duy nhất chưa bao giờ có thể trả lời cả ba câu hỏi cùng lúc. Hãy chạy công cụ kiểm tra vân tay của BrowserInsight để thấy từng tín hiệu nền tảng được bày ra riêng lẻ — canvas, WebGL, font chữ, TLS, các thuộc tính navigator — bên cạnh những kết luận nhất quán mà chúng tạo nên, thay vì bị gộp lại thành một con số, và kết hợp nó với kiểm tra VPN và proxy để có phép so sánh phía mạng mà một bài kiểm tra thuần trong trình duyệt không làm được.
Câu hỏi thường gặp
Công cụ kiểm tra vân tay nào cho điểm số "đúng"?
Không công cụ nào cả, vì chúng không hề đang cạnh tranh để trả lời cùng một câu hỏi. Một bộ kiểm tra tính độc đáo, một bộ kiểm tra tính mạch lạc như CreepJS, và một điểm tổng hợp độc quyền của nhà cung cấp — mỗi loại đo một thứ khác nhau; hỏi cái nào đúng cũng giống như hỏi nhiệt kế hay khí áp kế cho "kết quả đúng" về thời tiết.
Nếu điểm tính độc đáo của tôi cao, điều đó có nghĩa là tôi trông đáng ngờ không?
Không. Tính độc đáo cao nghĩa là bạn có thể bị nhận diện qua nhiều lượt truy cập — một mối lo về quyền riêng tư — không có nghĩa là có gì đó trông giả hay bị can thiệp. Một trình duyệt nguyên bản, chưa chỉnh sửa với tổ hợp phần cứng bất thường nhưng hoàn toàn có thật vẫn có thể vừa rất độc đáo vừa hoàn toàn mạch lạc cùng một lúc.
Tôi có thể cải thiện cả tính độc đáo lẫn tính mạch lạc chỉ bằng một thay đổi không?
Không, ít nhất là không một cách chắc chắn. Hai chỉ số này đo hai thứ khác nhau, và một thay đổi giúp ích cho phép đo này — chẳng hạn ngẫu nhiên hóa một tín hiệu để giảm độ hiếm biểu kiến — có thể đồng thời trông như một lỗi mạch lạc đối với phép đo kia, vì bản thân việc ngẫu nhiên hóa trở thành một khuôn mẫu có thể bị phát hiện. Hãy đánh giá riêng mọi thay đổi với từng phép đo.
Vì sao không bài kiểm tra vân tay nào bắt được VPN có múi giờ không khớp?
Vì phép kiểm tra đó đòi hỏi so sánh múi giờ mà trình duyệt của bạn báo cáo với IP mà máy chủ thực sự thấy kết nối của bạn đi tới — và không API trình duyệt nào trao thông tin đó cho JavaScript của chính trang. Nó cần một quan sát từ phía máy chủ, đó là lý do nó thuộc về các công cụ mạng như kiểm tra VPN/proxy chứ không phải bất kỳ bài kiểm tra nào chấm điểm bạn thuần bằng thuộc tính trình duyệt.


