Nếu bạn cho rằng chỉ có các thông tin trên header, IP và Cookie là có thể xác định được danh tính một con người trên thế giới web hiện nay thì có thể bạn đã lầm to. Những kỹ thuật mới dùng xác định danh tính(fingerprinting) của một người trên môi trường internet đã phát triển nhanh chóng đã tạo ra nhiều yếu tố khác nữa.
Hãy xem chúng là gì:
- IP address
- Cookies
- Language
- Timezone
- HTTP headers (User agent, referer…)
- HTML5 APIs (WebRTC, Battery API…)
- Các thuộc tính dùng phát hiện của HTML5 và CSS3
- CSS media queries
- WebGL
- Browser plugins (Flash, Silverlight, Java…)
- Browser add-ons
- Browser options (Do-Not-Track etc)
- Browser storage
- System fonts
- TLS/SSL Session IDs
- Hardware detection (Camera, Mic, Touch screen…)
- Screen (resolution, color depth, pixel density…)
- Audio and video codecs
- Accessibility features
Các bổ sung gần đây của W3C đối với các tiêu chuẩn HTML cho phép các nhà phát triển có thể giao tiếp nhiều hơn với thiết bị sử dụng, các tùy chọn nâng cao trên trang web và trò chơi. Nhờ đó, các nhà phát triển có nhiều hơn nữa những phương pháp giúp xác định định danh tính của một người dùng trên mạng với độ chính xác cao hơn trước đây nhiều lần.
Phụ mục
Định danh(fingerprint) là gì ?
Bạn hãy tưởng tượng bạn đi bộ trong một cửa hàng và ở lối vào có một camera cảm biến có thể quét và lưu những thông tin của bạn như: chiều cao, kiểu cơ thể, màu da, quần ao, giày dép, phong cách, điệu bộ, giọng nói…Tất cả những dữ liệu này sẽ được lưu trữ và phân tích thông qua những thuật toán khác nhau và cuối cùng có thể xác định được một định danh duy nhất cho bạn. Tiếp theo, bạn ghé thăm các cửa hàng khác cùng thương hiệu, ngay cả khi bạn ăn mặc với phong cách khác hoàn toàn, bằng việc phân tích định danh của bạn cửa hàng biết được rằng bạn đã ghé thăm thương hiệu này trước đó, đã mua gì và chi tiêu như thế nào cho thương hiệu của họ.
Điều tương tự cũng có thể xảy ra đối với một trang web khi bạn ghé thăm bằng một trình duyệt.
Chẳng cần quan trọng bạn đã đăng nhập hay chưa,hay bạn đã tắt/vô hiệu hóa cookie, nó vẫn có thể kết hợp những thông tin mà nó thu thập được về bạn trước đây để xác định được bạn đã ghé thăm và làm gì trước đó. Mặc dù kỹ thuật này chưa thật sự chính xác 100%, tuy nhiên nó vẫn đang được phát triển.
Client side Javascript
Đề có một cái nhìn khái quát hơn về fingerprinting, chúng ta sẽ thử tìm hiểu một công cụ giúp theo dấu người dùng bằng Javascript: Fingerprintjs2.
Dù cho bạn có tắt Javascript, sử dụng NoScript hoặc extension uMatrix thì các yếu tố khác mà trình duyệt cung cấp cũng có thể tiết lộ bạn là ai và có thể tồn tại những cách định danh tính khác mà trình duyệt chưa tiết lộ với bạn.
HTML5 APIs
Nhờ những tiêu chuẩn HTML mới, những nhà phát triển có thể truy cập thông tin người sử dụng một cách hợp lý hơn hoặc truy cập thiết bị phần cứng trong một số trường hợp mà không cần phải xin phép. Các APIs sau hiện được khai thác một các tự nhiên. Cách phổ biến nhất để ngăn chặn điều này là tắt javascript hoặc sử dụng một Addon cụ thể.
Canvas
Đây có thể là một tính năng ẩn và gây khó chịu cho nhiều người(với việc enable Javascript) và gần như không thể ngăn cản nổi, được sử dụng từ năm 2012. Thỉnh thoảng chúng cũng được nhúng vào các script và sử dụng một cách rộng rãi.
Khi một trình duyệt truy cập vào một trang web có một đoạn mã fingerprinting sử dụng canvas, nó sẽ vẽ một hình ảnh ẩn mà sau đó được chuyển đổi sang một token. Tính duy nhất của tolen này phụ thuộc vào các yếu tố như trình duyệt, hệ điều hành và phần cứng đồ họa…
Để tránh Canvas fingerprinting, bạn có thể:
- disable javascript
- sử dụng NoScript, uMatrix hoặc CanvasFingerprintBlock – một extension của Chrome
- Sử dụng Tor Browser
Pin
Theo nghiên cứu, Battery Status API có thể lấy được các thông tin như mức độ pin, thời gian sạc và thời gian thiết bị xả pin. Tất cả các dữ liệu này khi kết hợp với nhau thì gần như là duy nhất cho mỗi trạng thái thiết bị và pin. Thông tin này cho phép theo dõi các hoạt động trên web của một người.
Một báo cáo có tiêu đề “The leaking battery – A privacy analysis of the HTML5 Battery Status API” (bản PDF) hướng đến người dùng FireFox trên hệ điều hành Linux đã đem đến một kết quả khá ấn tượng “chúng tôi đề xuất một vài chính sửa nhỏ trong Battery Status API và thực hiện nó trên FireFox để giải quyết các vấn đề riêng tư được trình bày trong nghiên cứu. Báo cáo lỗi của chúng tôi cho FireFox đã được chấp nhận và việc sữa chữa đã được triển khai”.
Mở Chrome ra và bạn có thể cài đặt add-on Battery Info Blocker để ngăn chặn các trang web lấy thông tin về Pin của bạn.
WebRTC
Bạn nên vô hiệu hóa WebRTC nếu bạn không sử dụng nó. WebRTC làm rò rỉ local IP của bạn và có thể rò rỉ IP VPN của bạn(trên Window) nhiều hơn là việc xác định fingerprinting.
Để tránh rò rỉ WebRTC bạn nên sử dụng FireFox và vô hiệu hóa WebRTC bằng cách gõ about:config và tìm giá trị media.peerconnection.enabled sau đó set nó thành false
Trên Chrome bạn có thể sử dụng add-on WebRTC Block nhưng việc rò rỉ IP là vẫn có thể xảy ra.
Resource Timing
Các nhà phát triển có thể sử dụng API này để thu thập thời gian hoàn chỉnh liên quan đến một tài nguyên trên một tài liệu. Mối liên quan đến quyền riêng tư được đề cập trong dự thảo Working Draft:
Statistical fingerprinting is a privacy concern where a malicious web site may determine whether a user has visited a third-party web site by measuring the timing of cache hits and misses of resources in the third-party web site.
Nếu bạn sử dụng FireFox, bạn có thể vô hiệu hóa API này bằng cách truy cập about:config và thiết lập các tùy chọn sau thành false: dom.enable_resource_timing, dom.enable_user_timing and dom.performance.enable_user_timing_logging.
Trên Chrome, cách duy nhất để vô hiệu hóa nó là vô hiệu hóa Javascript.
Geolocation
Nếu thông tin này được tiết lộ dĩ nhiên là vị trí vật lý của bạn có thể được biết và ảnh hưởng đến quyền riêng tư của bạn. Các trình duyệt hiện đại luôn luôn yêu cầu sự cho phép để lộ vị trí địa lý vào các trang web hoặc ứng dụng yêu cầu nó.
Để ngăn chặn vĩnh viễn nó trên FireFox, bạn gõ about:config vào thanh địa chỉ và thiết lập giá trị geo.enabled thành false.
Trên Chrome, bạn vào Setting sau đó vào Show advanced settings, tìm Privacy và click chuột vào Content Setting.Trong cửa sổ mới, tìm Location và chọn Do not allow any site to track your physical location.
Hardware fingerprinting
Một báo cáo mang tên “Hardware Fingerprinting Using HTML5″(xem bản PDF) cho thấy các kỹ thuật mới rất tiềm năng mà dựa vào khả năng giao tiếp với phần cứng để có đươc fingerprint.
Báo cáo cũng cho thấy rằng các phần cứng như GPU(các trình duyệt hiện đại sử dụng để tăng tốc phần cứng), camera, loa, mic, cảm biến chuyển động, GPS và Pin đều có thể truy cập được bằng HTML5(không phải là luôn luôn có sự cho phép của người dùng) và GPU đặc biệt hiệu quả khi cần định danh người dùng.
Tài liệu
Device fingerprinting
https://en.wikipedia.org/wiki/Device_fingerprint
What is fingerprinting?
https://trac.webkit.org/wiki/Fingerprinting
EFF: How Unique Is Your Web Browser? (PDF)
https://panopticlick.eff.org/browser-uniqueness.pdf
EFF: Panopticlick tests your browser to see how unique it is
https://panopticlick.eff.org
The Web never forgets: Persistent tracking mechanisms in the wild
https://securehomes.esat.kuleuven.be/~gacar/persistent/
A privacy analysis of the HTML5 Battery Status API
https://eprint.iacr.org/2015/616.pdf
Resouces Timing API Working Draft
http://www.w3.org/TR/resource-timing
Hardware Fingerprinting Using HTML5
http://arxiv.org/abs/1503.01408
Browser leaks and web browser fingerprinting
http://browserleaks.com
Modern & flexible browser fingerprinting library
https://github.com/Valve/fingerprintjs2
Nguồn: dịch từ network23.org