- Trang này hiển thị vị trí, thiết bị, trình duyệt, ngôn ngữ, GPU, pin, phông chữ và các tùy chọn của người dùng chỉ từ dữ liệu mà trình duyệt gửi đi trong những mili giây đầu tiên ngay sau khi truy cập, và chỉ dùng các tính năng chuẩn đã được tài liệu hóa công khai, không exploit hay hack
- Trang gửi địa chỉ IP từ mọi header yêu cầu đến ip-api.com · Free tier · CC-BY-SA để đổi ra tên thành phố và nhà cung cấp Internet; việc tra cứu không được lưu, trên màn hình chỉ hiển thị một phần các octet nhưng cũng nói rõ rằng phần còn lại vẫn có thể được biết
- Dấu vân tay phông chữ phát hiện các phông đã cài bằng độ rộng văn bản sau khi render, còn Electronic Frontier Foundation · Cover Your Tracks cung cấp công cụ kiểm tra mức độ độc nhất của trình duyệt; nghiên cứu năm 2014 của Princeton phát hiện dấu vân tay canvas trên 5% trong số 100.000 website hàng đầu
- Dù trang không chạy các kỹ thuật này, vẫn tồn tại Clipboard API có thể xin đọc nội dung sao chép gần nhất chỉ với một thao tác người dùng, bài nghiên cứu “The Leaking Battery” cho thấy có thể theo dõi tối đa 30 phút bằng mức pin và thời gian xả, cùng kỹ thuật phát hiện các website đã đăng nhập bằng favicon
- Trang nói rằng chỉ gửi lên máy chủ hai sự kiện ẩn danh là đến nơi và hoàn tất, không lưu gì vào
cookies, localStorage, sessionStorage, IndexedDB hay bộ nhớ đệm service worker, và sẽ quên người truy cập khi đóng tab
Thông tin mà trình duyệt gửi ngay khi vừa truy cập
- Mọi quan sát của taken. đều đến từ dữ liệu do trình duyệt của khách truy cập cung cấp trong những mili giây đầu tiên ngay sau khi truy cập, và chỉ dùng các tính năng chuẩn đã được tài liệu hóa công khai, không exploit, lỗ hổng hay hack
-
Vị trí
- Địa chỉ IP có trong mọi header yêu cầu được gửi đến ip-api.com · Free tier · CC-BY-SA để chuyển thành tên thành phố và nhà cung cấp Internet
- Việc tra cứu là tạm thời và không phía nào lưu lại; trên màn hình chỉ hiển thị octet đầu tiên và cuối cùng của IP, nhưng cũng nói rõ rằng phần còn lại vẫn có thể được biết
- Theo GDPR, địa chỉ IP có thể được coi là dữ liệu cá nhân khi được dùng để theo dõi, và taken. không theo dõi, lưu giữ hay ghi log
-
API trình duyệt
- Các quan sát về thiết bị như màn hình, trình duyệt, ngôn ngữ, GPU, số lõi, pin, phông chữ và tùy chọn người dùng được lấy bằng các API JavaScript chuẩn được tài liệu hóa công khai tại MDN Web Docs · Mozilla · CC-BY-SA 2.5
- Đây là hành vi có thể xảy ra đúng như cách trình duyệt được thiết kế, dẫn tới kết luận rằng “vấn đề nằm ở thiết kế”
-
Dấu vân tay phông chữ và canvas
- Kỹ thuật dấu vân tay phông chữ phát hiện các phông đã cài bằng độ rộng văn bản sau khi render đã được tài liệu hóa từ năm 2010, và Electronic Frontier Foundation · Cover Your Tracks cung cấp công cụ kiểm tra trình duyệt độc nhất đến mức nào
- Phần lớn trình duyệt đủ độc nhất để bị theo dõi trên web mở ngay cả khi không có cookie, và tổ hợp phông chữ là một trong những tín hiệu mạnh nhất
- Nghiên cứu năm 2014 của Princeton University · Web Transparency & Accountability Project là tài liệu đầu tiên ghi nhận dấu vân tay canvas trên web thực tế, và phát hiện nó trên 5% trong số 100.000 website hàng đầu
- Dấu vân tay canvas hoạt động bằng cách yêu cầu trình duyệt của khách truy cập vẽ một hình ảnh ẩn rồi đọc lại các pixel đã render như một định danh; taken. không thực thi kỹ thuật đó nhưng trình duyệt có hỗ trợ
-
Clipboard và pin
- Theo MDN · Clipboard API specification, chỉ với một thao tác người dùng như click hoặc chạm, trang có thể yêu cầu đọc nội dung được sao chép gần nhất
- Nội dung sao chép gần nhất có thể là mật khẩu, địa chỉ hoặc bản nháp tin nhắn; taken. không yêu cầu quyền này nhưng tính năng đó tồn tại trong các trình duyệt hiện đại
- Bài báo năm 2015 “The Leaking Battery” của Olejnik, Englehardt và Narayanan cho thấy chỉ riêng tổ hợp mức pin và thời gian xả cũng có thể theo dõi khách truy cập trên nhiều website trong tối đa 30 phút mà không cần cookie hay tài khoản
- Firefox đã gỡ API này vào năm 2016, nhưng Chrome và Edge vẫn còn lộ ra
Những kỹ thuật không chạy và dữ liệu không để lại
-
Phát hiện website đã đăng nhập
- Dù taken. không chạy kỹ thuật này, đã có tài liệu về một phương pháp hợp pháp và được triển khai rộng rãi: bắt trình duyệt tải URL favicon của một dịch vụ cụ thể rồi quan sát thành công hay thất bại để biết người dùng đang đăng nhập những website nào
- Kỹ thuật này dựa trên khác biệt giữa hình ảnh trả về ở trạng thái đăng nhập và đăng xuất, và có thể biết tình trạng đăng nhập của nhiều dịch vụ như Facebook, Google, X, GitHub, Reddit và LinkedIn mà không cần xin phép
-
Mã vạch được tính bên trong trình duyệt
- 16 vạch hiển thị bên dưới bộ đếm được tạo từ các chiều cao suy ra từ GPU, phông chữ, kích thước màn hình, ngôn ngữ, múi giờ, hệ điều hành, trình duyệt và độ sâu màu
- Cùng một dữ liệu sẽ tạo ra cùng một mã vạch, còn khách truy cập khác sẽ thấy mã vạch khác; toàn bộ phép tính chỉ diễn ra trong trình duyệt và không được gửi đi
- Nếu có ai đó có dấu vân tay giống hệt thì họ sẽ thấy các vạch giống nhau, nhưng khả năng đó là rất nhỏ
-
Cách tạo câu văn
- Mọi câu đều do Matt tự viết, và tại thời điểm chạy không có mô hình ngôn ngữ nào viết hoặc chỉnh sửa câu
- Mã nguồn chọn một trong các mẫu câu đã viết sẵn tùy theo giá trị mà trình duyệt trả về, và được thiết kế để không nói gì nếu gặp điều kiện mà câu do con người viết không thể xử lý
-
Những gì được gửi lên máy chủ
- Các sự kiện được gửi lên máy chủ chỉ gồm hai sự kiện ẩn danh là đến nơi và hoàn tất, không có cookie, định danh hay IP được lưu giữ
- Máy chủ loại bỏ phần thân của từng yêu cầu và không trả lại gì; bản ghi tầng truyền tải cho thấy đã có yêu cầu vẫn có thể còn trong log trong vài ngày, theo thời gian lưu mặc định của nhà cung cấp hosting
- Phần lớn website gửi thêm hàng trăm beacon tới các nhà quảng cáo, bộ thu thập dấu vân tay, công cụ phát lại phiên và trình quản lý thẻ, nhưng taken. chỉ gửi hai beacon tới máy chủ của chính nó và thông báo rõ điều đó
-
Những gì được lưu trên thiết bị
- Không lưu gì vào
cookies, localStorage, sessionStorage, IndexedDB hay bộ nhớ đệm service worker
- Dữ liệu hiển thị trên màn hình được tính trong trình duyệt, và ngoài tra cứu vị trí địa lý từ IP cùng hai sự kiện ẩn danh, nó không rời khỏi thiết bị
- Khi đóng tab, taken. sẽ quên khách truy cập, và khép lại bằng việc công khai mã nguồn cùng câu rằng “đa số trang web không thể nói như vậy”
-
Bối cảnh series và quá trình thực hiện
- Vol. I nói về những gì xảy ra trên thế giới trong lúc khách truy cập ở lại, Vol. II là bầu trời đã bỏ lỡ, Vol. III là những gì vốn đã ở ngay dưới chân, và Vol. IV dần thu hẹp vào chính bản thân khách truy cập
- Trang được Matt tạo tại Rise Up Labs, và các kỳ tiếp theo sẽ được đăng trên X và Bluesky
1 bình luận
Ý kiến trên Hacker News
Tôi thậm chí còn không ở trong thành phố đó. Nói rộng ra thì cũng chỉ là đang chạy một thứ giống Chrome trên một thứ giống Linux, và chẳng ai có thể suy ra được khi nào tôi làm việc hay khi nào tôi ngủ. Chính tôi cũng không biết.
Cái gọi là màn hình cao cấp hiện đại này thực ra là màn hình của một chiếc tablet giá rẻ tôi mua ở siêu thị 5 năm trước, nhưng dù vậy thì lấy dấu vân tay trình duyệt vẫn rất khó chịu. Nếu có thể phát hiện chế độ sáng thì sao không tôn trọng luôn cài đặt đó?
Nó hiện “English · Chinese” rồi nói rằng ngôn ngữ chính và ngôn ngữ bổ sung của trình duyệt có thể tiết lộ nơi bạn lớn lên, nơi bạn sống, thậm chí cả người sống cùng bạn, nhưng việc có ngôn ngữ nhập liệu tiếng Anh và tiếng Trung không hề cho biết những điều đó. Nó giống như nói rằng “việc bạn duyệt internet bằng điện thoại tiết lộ rằng bạn là người có thể truy cập internet bằng điện thoại”. Công nghệ có sự tương tác lẫn nhau, đó là cách công nghệ vận hành. Nó có phần Orwellian, nhưng có Orwellian hơn các quốc gia giám sát như Nga/Trung Quốc/Triều Tiên hay không lại là chuyện khác. Chia sẻ vị trí có thể giúp tìm điện thoại, xe cộ, thiết bị; hoạt động trực tuyến có thể giúp tìm tội phạm; và cũng có thể ghi lại các vụ việc cần điều tra tội phạm hay truy trách nhiệm cảnh sát. Xem sự xâm phạm quá mức của công nghệ như một thảm họa là một lựa chọn nhận thức, nhưng việc nhận thức được công nghệ của chúng ta “biết” gì về chúng ta vẫn là điều tốt
Còn chuyện chế độ sáng thì tôi thật sự đồng cảm. Tôi mới ngoài 30, mà vài trang dark mode kiểu này làm tôi thấy mình như ngoài 80. Trang này đúng là chẳng nhìn thấy gì
Tôi chỉ ước những người ủng hộ quyền riêng tư ít nhất một lần nói chuyện theo cách bình thường. Cố đóng khung việc trình duyệt truy cập múi giờ như thể đó là chuyện tà ác thì chẳng thuyết phục được ai cả
Vấn đề không nằm ở chỗ thông tin có chính xác hay không. Vấn đề là nó có thể trở thành cách để nhận diện tôi ngay cả khi không có cookie. Tôi tìm được một trang tốt hơn và thấy phía EFF hữu ích hơn.
Dấu vân tay trình duyệt của tôi được báo là duy nhất trong số khách truy cập 45 ngày qua: https://coveryourtracks.eff.org/
Nếu truy cập mà không có JavaScript thì nó hiện: “Khi JavaScript bị tắt, trang không thể nói cho bạn biết trình duyệt đã tiết lộ gì. Dữ liệu vẫn ở đó. Việc tiết lộ vẫn đang diễn ra. Chỉ có việc nói cho bạn biết là dừng lại.”
Kiểu văn phong LLM cường điệu này cực kỳ khó chịu, nhưng cũng đáng cảm ơn vì nó là tín hiệu cho thấy tôi có thể bỏ qua hoàn toàn
Không biết vì tôi già rồi, hay vì đã làm phần mềm internet gần 30 năm, nhưng chẳng có gì trong đây khiến tôi ngạc nhiên hay lo lắng cả.
Ai đó dựng một máy chủ nhận kết nối, rồi ai đó gửi yêu cầu kết nối tới máy chủ đó. Không có thỏa thuận nào, cũng chẳng có kỳ vọng hay quy tắc nào được xác lập. Máy chủ không bắt buộc phải nhận mọi yêu cầu kết nối, và cũng chẳng ai bắt buộc phải gửi yêu cầu tới máy chủ đó. Máy chủ trả về gì và phía client xử lý nó ra sao là việc của mỗi bên.
Tôi cảm thấy thỏa thuận đó, hay đúng hơn là việc không có thỏa thuận, áp dụng cho cả hai phía. Tôi không nghĩ người dùng nên nổi giận vì website dùng thông tin yêu cầu kết nối theo cách họ muốn, nhưng website cũng không nên nổi giận nếu tôi xử lý dữ liệu mình nhận được theo cách tôi muốn. Tức là website có thể nhớ địa chỉ IP và chi tiết yêu cầu của tôi bao lâu tùy thích, và tôi có thể làm gì với phản hồi nhận được cũng tùy thích. Tôi có thể chặn quảng cáo, từ chối các yêu cầu tiếp theo mà site chỉ định, hoặc hiển thị phản hồi theo cách tôi muốn. Tôi đã yêu cầu dữ liệu, và phía đó đã gửi dữ liệu.
Nếu có thông tin nào về tôi mà tôi không muốn lộ ra, thì tôi không nên gửi nó trong yêu cầu. Nếu chỉ muốn tôi cung cấp dữ liệu để đổi lấy việc xem quảng cáo, thì họ nên khiến tôi đồng ý như vậy trước khi gửi dữ liệu. Tất nhiên, trong thực tế đa số mọi người không biết trình duyệt của mình đang làm gì, cũng không có nhiều lựa chọn thực sự về những gì trình duyệt gửi đi, và internet không còn là thứ có thể lựa chọn không dùng trong cuộc sống nữa. Những thứ như DDoS cũng khiến mô hình hoàn toàn “muốn gì cũng được” trở nên phi thực tế. Dù vậy, tôi vẫn có trực giác rằng khi thực hiện yêu cầu internet thì không nên kỳ vọng quá nhiều ở cả hai phía
Thực tế thì trình duyệt lại là đại diện cho ai đó khác. Nó làm việc cho nhà phát triển web, cung cấp đủ thứ để cuộc sống của họ dễ dàng hơn. Nó làm việc cho nhà quảng cáo, cung cấp dấu vết theo dõi và lấy dấu vân tay. Nó làm việc cho nhà phát triển trình duyệt, thu thập số liệu, telemetry và đủ loại dữ liệu khác không ai rõ. Nhưng nó không còn thật sự làm việc cho tôi nữa. Tôi chỉ là hành khách ngồi trên xe.
Tôi hiểu địa chỉ IP không phải thứ trình duyệt có thể kiểm soát, và để kết nối tới website thì việc lộ ra nó gần như là điều không thể tránh. Nhưng việc trong trạng thái mặc định, không có VPN, địa chỉ IP có thể được ánh xạ ổn định tới quốc gia, bang/tỉnh, đôi khi cả thành phố là một lỗi thiết kế kinh khủng. Đó là vấn đề thiết kế lớn trong cách phân bổ IP. Trong một thế giới tốt đẹp hơn, chỉ từ địa chỉ IP không nên suy ra được vị trí địa lý của ai đó
Việc client gửi header ngôn ngữ hay danh sách font được hỗ trợ không có nghĩa là máy chủ được phép “muốn làm gì với dữ liệu này thì làm”. Khi xây dựng các tiêu chuẩn đó, chúng tôi có lý do thực sự. Việc nhà cung cấp website, cụ thể hơn là các mạng quảng cáo, quyết định dùng chúng cho mục đích khác là hành vi phá vỡ thỏa thuận ngầm đó. Tất nhiên cũng có thể là tôi đang kỳ vọng quá nhiều
Nó biết mức pin điện thoại của tôi và đoán đúng về thiết bị. Nó đọc chính xác con quay hồi chuyển, tương tác cảm ứng, và cho thấy những thứ đó có thể được dùng thế nào để nhận diện và suy luận. Thậm chí còn có thể biết bạn đang ngồi, đứng hay nằm. Phần đầu hơi chậm, nhưng càng về sau càng thú vị
Cách tiếp cận “chúng ta không nợ nhau điều gì” từng hoạt động khá ổn trong quá khứ, khi phần lớn được giả định là những bên hành xử thiện chí. Nhưng khi tiền bạc và quyền lực trên internet trở thành hiện thực, mối quan hệ trở nên đối kháng hơn. Giả định về niềm tin và việc thiếu trách nhiệm khiến một bên dễ lợi dụng thiện chí của bên kia. Và do sự bất đối xứng về kỹ thuật và quyền lực vốn có trong cấu trúc máy chủ-khách của web, sự lạm dụng cũng dễ chảy theo một chiều
Trang này đẹp và những câu cường điệu cũng vui đấy, nhưng có nhiều bản demo lấy dấu vân tay tốt hơn.
Số lượng điểm dữ liệu mà nó hiển thị ở đây khá ít. Có nhiều thứ hơn hẳn có thể kiểm tra được, và một phần đáng kể trông có vẻ sai. Nó chỉ phát hiện đúng một thứ là bị giữ lại với nhãn “withheld”, nhưng thực tế có vẻ nhiều mục đã bị che khiến đầu ra bị méo. Cần kiểm soát chất lượng
Trông như EFF Cover Your Tracks được vibe coding ra. Việc nó lên được trang đầu còn đáng sợ hơn chính nội dung của nó
Có thể xem được nhiều hơn thế rất nhiều. Cũng đã có rất nhiều công trình trước đó về siêu cookie và lấy dấu vân tay.
https://coveryourtracks.eff.org/
https://amiunique.org/
Ồ, có vẻ như ai đó dùng ChatGPT vừa phát hiện ra khái niệm header trình duyệt rồi gắn thêm mấy câu kỳ quặc kiểu “chúng tôi đã quyết định không nói cho bạn biết”.
Nếu thực sự muốn biết trình duyệt gửi gì thì xem ở đây:
https://browserleaks.com/
https://coveryourtracks.eff.org/
Câu “Chúng tôi không yêu cầu vị trí của bạn. Địa chỉ của bạn đến trước cả bạn” là vớ vẩn. Họ đã dùng địa chỉ IP của tôi làm khóa để tra cứu trong API/dịch vụ thông tin vị trí, vậy tức là họ đã yêu cầu vị trí của tôi rồi.
Và để liên lạc trên internet hoạt động thì IP gần như là bắt buộc. Có những dịch vụ giúp che giấu nó, nhưng như vậy thì dịch vụ đó sẽ nắm thông tin của tôi
Nếu bạn có từ điển, bạn không nhất thiết phải hỏi người đối diện nghĩa của từ mà có thể tự tra. Có thể bạn sẽ suy luận sai vì từ có nhiều nghĩa hoặc là tiếng lóng. Để sửa cái sai đó thì bạn cần thêm các điểm dữ liệu khác như ngữ cảnh hội thoại, hoặc phải trực tiếp hỏi lại đối phương để xác nhận
Và dĩ nhiên địa chỉ phải đến trước. Nếu không thì làm sao trả lại dữ liệu mà bạn yêu cầu được