Tìm hiểu entropy đo tính độc nhất của dấu vân tay ra sao, các bit cộng dồn thế nào qua từng tín hiệu, và tập ẩn danh của bạn thực sự có ý nghĩa gì.
Những điểm chính
- Entropy đo lường sự bất ngờ. Một tín hiệu chỉ hữu ích cho việc theo dõi nếu giá trị của nó hiếm gặp — các giá trị phổ biến gần như không bổ sung khả năng nhận dạng.
- Entropy cộng dồn. Các tín hiệu tương đối độc lập kết hợp bằng cách cộng số bit của chúng, đó là lý do vì sao vài thuộc tính trông có vẻ bình thường vẫn có thể khiến bạn trở nên độc nhất.
- ~33 bit ≈ độc nhất trên Trái Đất, vì 2^33 gần bằng dân số thế giới — ngưỡng này là một phép xấp xỉ theo quy mô dân số, không phải một quy luật cố định.
- Tập ẩn danh của bạn là đám đông "1 trên X" hiện đang chia sẻ cùng dấu vân tay với bạn — càng lớn càng an toàn, và nó thu hẹp lại mỗi khi một script đọc thêm một thuộc tính hiếm.
- Di động không mặc nhiên an toàn hơn. Điện thoại sản xuất hàng loạt làm phẳng entropy của canvas và WebGL, nhưng lại bổ sung tín hiệu cảm ứng và cảm biến mà máy tính để bàn không có — thứ thay đổi là thành phần tín hiệu, chứ không hẳn là tổng số bit.
Entropy thực sự đo lường điều gì
"Entropy" nghe có vẻ trừu tượng, nhưng ý tưởng đằng sau nó rất đơn giản: một tín hiệu chỉ mang thông tin nếu nó bất ngờ. Nếu mọi khách truy cập một trang web đều dùng cùng một độ phân giải màn hình, thì độ phân giải đó chẳng nói lên điều gì về bạn với bên theo dõi. Nếu gần như không ai có cùng tổ hợp phông chữ đã cài đặt với bạn, thì chính thuộc tính đó thu hẹp đám đông xuống gần như chỉ còn một người.
Về mặt hình thức, độ bất ngờ (surprisal) của một giá trị quan sát được là -log2(p) bit, trong đó p là xác suất giá trị đó xảy ra. Một giá trị được một nửa số trình duyệt chia sẻ mang 1 bit độ bất ngờ (-log2(0.5) = 1). Một giá trị chỉ được 1 trong 1024 trình duyệt chia sẻ mang 10 bit (-log2(1/1024) = 10). Giá trị càng hiếm, số bit đóng góp càng nhiều — và bit chính là thứ mà bên theo dõi thực sự đang thu thập, từng thuộc tính một.
Đây cũng là lý do vì sao số lượng thuộc tính là cách nghĩ sai về rủi ro dấu vân tay. Mười thuộc tính phổ biến cộng lại có thể mang ít khả năng nhận dạng hơn một thuộc tính hiếm. Điều quan trọng là mỗi giá trị bất ngờ đến mức nào, không phải có bao nhiêu giá trị.
Entropy cộng dồn qua các tín hiệu ra sao
Từng tín hiệu riêng lẻ hiếm khi tự quyết định danh tính — xem danh sách đầy đủ các tín hiệu mà một script lấy dấu vân tay có thể đọc, từ user-agent, múi giờ, cho đến đầu ra canvas và WebGL. Sức mạnh của chúng đến từ sự kết hợp. Vì xác suất của các sự kiện tương đối độc lập được nhân với nhau, và log2 biến phép nhân thành phép cộng, nên entropy từ các tín hiệu riêng biệt đơn giản là cộng dồn: tổng số bit ≈ tổng số bit của từng tín hiệu.
Tính chất cộng dồn đó chính là toàn bộ cơ chế đằng sau việc lấy dấu vân tay. Riêng một mã băm canvas hay một chuỗi renderer WebGL đã có thể đóng góp số bit hai chữ số, vì chúng đồng thời mã hóa model GPU, phiên bản driver và các đặc điểm kết xuất riêng của hệ điều hành. Nhưng những thuộc tính trông có vẻ tẻ nhạt cũng mang bit, và một script đọc tất cả chúng trong cùng một lượt. Không tín hiệu nào trong số này đáng chú ý khi đứng một mình — nguy hiểm hoàn toàn nằm ở phép cộng số học.
Nghiên cứu Panopticlick gốc của EFF đã đo trực tiếp điều này: trên khoảng nửa triệu trình duyệt, phân bố dấu vân tay thu thập được mang khoảng 18,1 bit entropy, nghĩa là dấu vân tay của một trình duyệt ngẫu nhiên chỉ trùng với khoảng 1 trong 286.777 trình duyệt khác trong mẫu đó. Trong tập dữ liệu ấy, 83,6% trình duyệt có dấu vân tay độc nhất ngay tại thời điểm đo — con số này lên tới 94,2% ở nhóm khách truy cập bật Flash hoặc Java. Phần bóc tách theo từng thuộc tính cho thấy số bit đến từ đâu: riêng chuỗi user-agent đã mang khoảng 10 bit, danh sách phông chữ hệ thống khoảng 13,9 bit, danh sách plugin trình duyệt khoảng 15,4 bit; trong khi một tín hiệu thô sơ như cookie có được bật hay không chỉ mang vỏn vẹn 0,35 bit. Xem tóm tắt kết quả Panopticlick của EFF để biết các con số gốc.
Kể từ năm 2010, hai thứ đã thay đổi theo hai hướng ngược nhau. Tín hiệu giàu thông tin nhất trong tập dữ liệu đó — việc liệt kê plugin — gần như đã biến mất cùng với plugin NPAPI, còn chuỗi user-agent thì bị cố tình đóng băng và cắt gọn (xem Rút gọn User-Agent). Nhưng trình duyệt cũng có thêm những bề mặt mà Panopticlick chưa từng kiểm tra — âm thanh, thiết bị media, WebGL, canvas và nhiều thứ khác — nên một script kết hợp toàn bộ tập thuộc tính ngày nay vẫn đạt mức entropy tương đương hoặc cao hơn mức nền đó.
Có một lưu ý quan trọng hơn bất kỳ con số riêng lẻ nào: các bit chỉ cộng dồn một cách sạch sẽ khi các tín hiệu thực sự độc lập, mà tín hiệu thực tế thì không độc lập. Một chuỗi user-agent Android đã dự đoán được phần lớn danh sách phông chữ, hình học màn hình và chuỗi GPU; biết một thứ là biết luôn phần lớn những thứ còn lại. Đó là lý do entropy của từng thuộc tính riêng lẻ trong Panopticlick cộng lại vượt quá 50 bit, trong khi entropy kết hợp đo được của toàn bộ dấu vân tay chỉ là 18,1 bit. Cộng số bit của mọi tín hiệu lại chỉ cho bạn một cận trên, không phải một ước lượng — con số thật luôn thấp hơn, và nên nhớ điều đó khi nhìn bất kỳ tổng entropy nào mà một công cụ đưa ra.
Tập ẩn danh: Suy nghĩ theo kiểu "1 trên X"
Entropy là một con số hữu ích cho các nhà nghiên cứu, nhưng cách diễn đạt trực quan hơn là tập ẩn danh: nhóm người hiện đang trông giống hệt bạn dưới góc nhìn của bên theo dõi. Nếu entropy dấu vân tay của bạn là b bit, tập ẩn danh của bạn xấp xỉ "1 trên 2^b" — ở 10 bit, bạn chia sẻ tổ hợp chính xác của mình với khoảng 1 trong 1.024 người; ở 20 bit, khoảng 1 trên một triệu; ở 30 bit, khoảng 1 trên một tỷ.
Đây là lý do vì sao ~33 bit là ngưỡng không chính thức cho "độc nhất trên Trái Đất". Với dân số thế giới khoảng 8 tỷ người, và 2^33 ≈ 8,6 tỷ, một dấu vân tay mang 33 bit entropy có tập ẩn danh khoảng một — chính là bạn, và về cơ bản không còn ai khác, thậm chí trước cả khi tính đến việc trong 8 tỷ người đó có bao nhiêu người thực sự lướt web. Cần nói rõ ngưỡng này là gì: đây là một phép xấp xỉ gắn với dân số thế giới hiện tại, không phải một hằng số cố định. Khi dân số toàn cầu tăng lên, số bit cần thiết để đạt "độc nhất trên Trái Đất" sẽ nhích lên từng chút một; đó là một mục tiêu di động, chỉ là di chuyển rất chậm.
Một tổ hợp phổ biến — user-agent thông thường, kích thước màn hình phổ biến, phông chữ mặc định, múi giờ tiêu chuẩn — có thể đặt bạn vào một tập ẩn danh gồm hàng nghìn hoặc hàng triệu người, một vị trí khá an toàn. Thêm vào đó một phông chữ hiếm, một chuỗi renderer WebGL khác thường, và một ngăn xếp âm thanh đặc trưng, tập đó có thể sụp đổ gần về một người chỉ trong vài tín hiệu bổ sung — vì, một lần nữa, các bit sẽ cộng dồn.
Vì sao một cấu hình hiếm lại bất lợi cho bạn
Hệ quả thực tế trái ngược trực giác với nhiều người: vấn đề nằm ở việc nổi bật, không phải bị theo dõi bởi bất kỳ thuộc tính đơn lẻ nào. Một laptop chơi game với GPU cao cấp đặc trưng, một bố cục bàn phím theo vùng hiếm gặp, và một tiện ích mở rộng trình duyệt ít phổ biến không cần bất kỳ thứ nào trong số đó phải bí mật — chính tổ hợp đó mới làm tập ẩn danh thu hẹp. Đây cũng là lý do các công cụ bảo mật dựa trên ngẫu nhiên hóa mang một rủi ro tinh vi: nếu bản thân việc bị ngẫu nhiên hóa có thể bị phát hiện, thì "trình duyệt này có giá trị canvas rõ ràng là giả" có thể trở thành một thuộc tính hiếm, mang tính nhận dạng riêng — xem Nhiễu Canvas so với Mã băm thật: Vì sao Ngẫu nhiên hóa có thể phản tác dụng để biết sự đánh đổi đó diễn ra thế nào trong thực tế. Các công cụ dựa trên đồng nhất hóa — chuẩn hóa giá trị cho toàn bộ nhóm người dùng, như cách Tor Browser và resistFingerprinting của Firefox thực hiện — nhắm thẳng vào tập ẩn danh, bằng cách giữ cho các bit mọi người báo cáo giống hệt nhau thay vì cố che giấu bất kỳ bit nào riêng lẻ.
Di động so với Máy tính để bàn: Cùng công thức toán, khác con số
Khung entropy là phổ quát, nhưng các con số nó tạo ra khác nhau rõ rệt theo nền tảng. Máy tính để bàn có vô số tổ hợp GPU, driver, màn hình và phông chữ, nên tín hiệu canvas và WebGL ở đó thường mang entropy cao. Phần cứng điện thoại sản xuất hàng loạt lại làm phẳng chính những tín hiệu đó — hàng triệu thiết bị giống hệt nhau kết xuất canvas và WebGL theo cùng một cách, làm giảm mức đóng góp của chúng vào tổng số bit. Nhưng thiết bị di động lại bổ sung những tín hiệu mà máy tính để bàn hầu như không có — đặc điểm hình học màn hình, số điểm chạm, và cảm biến chuyển động — phần nào bù lại hiệu ứng làm phẳng nói trên. Kết quả tổng thể: tập ẩn danh của điện thoại không tự động lớn hơn của máy tính để bàn, nó chỉ được xây dựng từ một tổ hợp tín hiệu entropy cao và thấp khác đi. Xem Lấy dấu vân tay trình duyệt di động để biết thiết bị Android và iOS bị theo dõi cụ thể ra sao.
Cách kiểm tra tập ẩn danh của chính bạn
Các con số entropy khó hình dung một cách trừu tượng — cách nhanh nhất để hiểu con số của bạn là đo thử. Công cụ kiểm tra dấu vân tay của BrowserInsight chạy hoàn toàn phía client và ước tính mức độ độc nhất trong cấu hình hiện tại của bạn, phân tách xem tín hiệu nào đóng góp nhiều bit nhất. Công cụ Cover Your Tracks của EFF (kế thừa Panopticlick) báo cáo một con số "1 trên X" tương tự dựa trên tập dữ liệu tổng hợp riêng của nó. Chạy cả hai, rồi so sánh trước và sau khi bật một trình duyệt hay tiện ích bảo mật, là cách rõ ràng nhất để biết liệu một biện pháp phòng vệ cụ thể có thực sự làm tập ẩn danh của bạn lớn hơn hay không — vì, như các phần trên đã chỉ ra, câu trả lời hoàn toàn phụ thuộc vào việc nó thay đổi tín hiệu nào và thay đổi bao nhiêu.
Câu hỏi thường gặp
Số entropy càng cao có luôn tệ hơn không?
Đối với quyền riêng tư của bạn thì có — nhiều bit hơn nghĩa là tập ẩn danh nhỏ hơn và trình duyệt dễ nhận dạng hơn. Entropy là một thuộc tính của tổ hợp giá trị cụ thể của bạn, không phải một điểm số cố định; nó thay đổi khi bạn chuyển trình duyệt, cập nhật phông chữ, hoặc bật một biện pháp bảo vệ.
Xóa cookie có làm giảm entropy dấu vân tay của tôi không?
Không. Entropy đến từ các đặc điểm thiết bị và trình duyệt — GPU, phông chữ, đặc điểm kết xuất — không cái nào trong số đó được lưu dưới dạng cookie. Xóa cookie không có tác dụng gì với các bit mà một script lấy dấu vân tay có thể đọc được; xem hướng dẫn lấy dấu vân tay đầy đủ để biết vì sao dấu vân tay tồn tại sau khi xóa dữ liệu trong khi cookie thì không.
Tôi có thể có entropy bằng không — một dấu vân tay hoàn toàn ẩn danh không?
Trên web mở thì không, nhưng bạn có thể tiến rất gần. Các công cụ chuẩn hóa giá trị của bạn để khớp với một nhóm người dùng lớn (Tor Browser, resistFingerprinting của Firefox) không giấu các tín hiệu — chúng khiến mọi người cùng báo cáo một bộ giá trị giống nhau, nên phần đóng góp của những thuộc tính đó tiến gần về 0 bit. Phần entropy còn lại đến từ những gì chúng không chuẩn hóa được, chẳng hạn đặc điểm ở tầng mạng và hành vi định thời. Mức nền dùng chung ấy chính là giới hạn thực tế cho kích thước tập ẩn danh trong khi vẫn duyệt web bình thường.
Vì sao các nguồn khác nhau đưa ra số entropy khác nhau cho "cùng một" dấu vân tay?
Entropy được đo dựa trên một tập dữ liệu cụ thể. Nghiên cứu Panopticlick của EFF đo entropy dựa trên các trình duyệt truy cập chính trang web của họ vào năm 2010; một script chạy trên một trang khác ngày nay, với một nhóm khách truy cập khác và danh sách thuộc tính khác, sẽ tính ra một con số khác cho cùng một thiết bị vật lý. Các bit mang tính tương đối theo tập dữ liệu, không phải tuyệt đối.
Đọc thêm
- Giải thích Lấy dấu vân tay Trình duyệt: Cách bảo vệ quyền riêng tư của bạn
- Nhận diện Canvas Fingerprint: Cách website nhận ra thiết bị bạn
- Đào sâu Lấy dấu vân tay WebGL: GPU của bạn tiết lộ điều gì
- Nhiễu Canvas so với Mã băm thật: Vì sao Ngẫu nhiên hóa có thể phản tác dụng
- Lấy dấu vân tay trình duyệt di động: Android và iOS bị theo dõi ra sao
- Tính nhất quán của dấu vân tay: Vì sao tín hiệu không khớp khiến bạn bị đánh dấu


