Những tín hiệu nào sống sót qua các bản cập nhật trình duyệt? Phân tích độ ổn định
Chúng tôi phân tích độ ổn định của tín hiệu qua 50 bản cập nhật Chrome, Firefox và Safari. Đây là những tín hiệu fingerprinting ổn định nhất và kém ổn định nhất.
Các bản cập nhật trình duyệt là kẻ thù tự nhiên của device fingerprinting. Cứ mỗi 4-6 tuần, Chrome, Firefox và Safari lại phát hành phiên bản mới có thể làm thay đổi giá trị tín hiệu — thay đổi chuỗi user-agent, sửa đổi hành vi render, thêm hoặc bớt API. Như đã nêu trong Hướng dẫn về Fingerprinting của W3C, các trình duyệt đang tích cực nỗ lực thu hẹp bề mặt có thể lập fingerprint. Đối với các hệ thống fingerprinting đối xử với mọi tín hiệu như nhau, mỗi bản cập nhật là một nguy cơ đứt gãy danh tính cho hàng triệu người truy cập.
Chúng tôi đã thực hiện một phân tích độ ổn định toàn diện qua 50 bản cập nhật trình duyệt để trả lời câu hỏi cốt lõi: tín hiệu nào bạn có thể dựa vào, và tín hiệu nào sẽ phản bội bạn?
Phương pháp
Chúng tôi đã trang bị công cụ đo trên 200 thiết bị vật lý thuộc 5 hệ điều hành (Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04) và 3 trình duyệt (Chrome, Firefox, Safari). Mỗi thiết bị chạy thu thập tín hiệu tự động hằng ngày trong 14 tháng, bao phủ 50 bản cập nhật phiên bản trình duyệt lớn: 24 bản phát hành Chrome, 16 bản Firefox và 10 bản Safari.
Với mỗi tín hiệu, chúng tôi theo dõi: giá trị thay đổi bao lâu một lần, liệu sự thay đổi có tương quan với một bản cập nhật trình duyệt hay yếu tố bên ngoài (cập nhật driver, vá lỗi OS) hay không, và mức độ của sự thay đổi (thay thế hoàn toàn giá trị so với biến thiên nhỏ).
Các tầng độ ổn định
Tầng 1: Vững như bàn thạch (độ ổn định 99,5%+)
Những tín hiệu này chỉ thay đổi khi phần cứng vật lý thay đổi hoặc driver được cập nhật — không bao giờ chỉ vì các bản cập nhật trình duyệt.
Hardware Concurrency (navigator.hardwareConcurrency): ổn định 99,97%. Chỉ thay đổi trên 1 thiết bị có cập nhật BIOS ảnh hưởng đến hyperthreading. Device Memory (navigator.deviceMemory): ổn định 99,98%. Một thiết bị được nâng cấp từ 8GB lên 16GB trong quá trình nghiên cứu. Độ phân giải màn hình và độ sâu màu: ổn định 99,92%. Các thay đổi tương quan với việc đổi màn hình và sự kiện cắm dock. WebGL Max Texture Size: ổn định 99,99%. Không có thay đổi nào liên quan đến trình duyệt. Thay đổi một lần trên một thiết bị nhận được bản cập nhật driver NVIDIA. Audio Sample Rate: ổn định 100%. Không có thay đổi nào trên toàn bộ 200 thiết bị và 50 bản cập nhật. Đây là tín hiệu ổn định nhất mà chúng tôi theo dõi.
Tầng 2: Chủ yếu ổn định (95-99,5%)
Những tín hiệu này thỉnh thoảng thay đổi theo các bản cập nhật trình duyệt nhưng vẫn ổn định qua hầu hết các bản phát hành.
Canvas 2D Fingerprint: ổn định 97,8%. Các thay đổi xảy ra ở Chrome 118 (cập nhật engine render font), Chrome 122 (thay đổi khử răng cưa dưới điểm ảnh) và Firefox 121 (cập nhật định hình văn bản). Mỗi thay đổi ảnh hưởng đồng thời đến tất cả thiết bị dùng trình duyệt đó — một mẫu hình có thể phát hiện được mà chúng tôi xử lý bằng cách khớp có nhận biết phiên bản trình duyệt. WebGL Renderer String: ổn định 98,1%. Chrome thỉnh thoảng định dạng lại chuỗi bao ANGLE. Thông tin GPU nền tảng không đổi, nhưng cách biểu diễn chuỗi thì thay đổi. Chúng tôi phân tích mẫu GPU từ chuỗi thay vì băm trực tiếp chuỗi đó. Font List: ổn định 96,4%. Các bản cập nhật OS thỉnh thoảng thêm hoặc bớt font hệ thống. Cập nhật trình duyệt hiếm khi ảnh hưởng đến việc liệt kê font, nhưng Chrome 120 đã thay đổi thứ tự báo cáo font, làm hỏng fingerprinting font dựa trên hash. Chúng tôi dùng so sánh dựa trên tập hợp (độ tương đồng tập hợp) thay vì băm có thứ tự.
Tầng 3: Ổn định vừa phải (80-95%)
Những tín hiệu này thay đổi với tần suất đáng kể nhưng vẫn cung cấp giá trị định danh hữu ích giữa các lần thay đổi.
Installed Plugins: ổn định 89,2%. Việc Chrome tiếp tục thu hẹp mảng plugin (navigator.plugins) đã loại bỏ hoàn toàn khả năng nhìn thấy plugin trong một số ngữ cảnh. Firefox vẫn duy trì việc liệt kê plugin. Safari giới hạn nó vào một tập chuẩn. CSS Feature Detection: ổn định 91,7%. Các tính năng CSS mới được thêm vào theo mỗi bản phát hành trình duyệt, làm thay đổi tập tính năng được dò bởi công cụ thăm dò CSS của chúng tôi. Chúng tôi gán trọng số cho các tính năng mới thấp hơn các tính năng đã ổn định để giảm tác động. Touch Support: ổn định 93,1%. Các trình duyệt máy tính để bàn thỉnh thoảng thay đổi khả năng hỗ trợ cảm ứng được báo cáo khi Chrome điều chỉnh phát hiện giả lập thiết bị.
Tầng 4: Biến động (<80%)
Những tín hiệu này thay đổi thường xuyên và không bao giờ nên là neo định danh chính.
User Agent String: ổn định 42,3%. Sáng kiến thu gọn User-Agent của Chrome đã thay đổi định dạng chuỗi nhiều lần. Firefox cập nhật số phiên bản theo mỗi bản phát hành. Safari sửa đổi chuỗi phiên bản WebKit thường xuyên. Đây từng là xương sống của các hệ thống fingerprinting đơn giản — những hệ thống đó nay đã hỏng. Connection Type (navigator.connection): ổn định 68,4%. Thay đổi khi chuyển mạng (WiFi sang di động, các mạng WiFi khác nhau). Battery API: ổn định 71,2%. Thay đổi theo trạng thái sạc và khả năng khả dụng của API trình duyệt. Chrome đã giới hạn quyền truy cập Battery API trong một số ngữ cảnh. Available Screen Area: ổn định 76,8%. Thay đổi theo hiển thị thanh tác vụ, quản lý cửa sổ và điều chỉnh tỷ lệ hiển thị.
So sánh giữa các trình duyệt
Chrome là trình duyệt biến động nhất về độ ổn định fingerprinting. Google tích cực nỗ lực giảm khả năng lập fingerprint, nghĩa là các bản cập nhật Chrome làm hỏng nhiều tín hiệu hơn so với các bản cập nhật Firefox hay Safari. Trong suốt giai đoạn nghiên cứu của chúng tôi:
Chrome gây ra thay đổi tín hiệu trong 3,2% số phiên thu thập. Firefox gây ra thay đổi tín hiệu trong 1,8% số phiên thu thập. Safari gây ra thay đổi tín hiệu trong 1,1% số phiên thu thập.
Độ biến động thấp hơn của Safari một phần vì Apple phát hành ít bản hơn mỗi năm và một phần vì các biện pháp chống fingerprinting của Safari (Intelligent Tracking Prevention) hoạt động ở tầng mạng thay vì thay đổi giá trị trả về của API.
Khuyến nghị thực tiễn
Dựa trên phân tích này, chúng tôi đưa ra năm khuyến nghị cho các hệ thống fingerprinting trong môi trường sản xuất:
Không bao giờ dùng user-agent làm neo định danh. Đó là tín hiệu phân biệt kém ổn định nhất. Chỉ dùng nó để phát hiện trình duyệt và chấm điểm độ tin cậy ở Tầng 3.
Tách các tín hiệu phần cứng khỏi các tín hiệu phần mềm. Các tín hiệu phần cứng (GPU, màn hình, âm thanh) ổn định gấp 40 lần so với các tín hiệu phần mềm (user agent, plugin, tính năng CSS). Hãy gán trọng số tương ứng.
Dùng so sánh dựa trên tập hợp cho các tín hiệu có thể liệt kê. Danh sách font, danh sách plugin và kết quả dò tính năng nên được so sánh bằng độ tương đồng tập hợp hoặc các độ đo khoảng cách tập hợp tương tự, chứ không phải băm có thứ tự. Thay đổi thứ tự là phổ biến; thay đổi nội dung thì hiếm.
Triển khai khớp có nhận biết phiên bản trình duyệt. Khi Chrome 118 thay đổi việc render canvas cho tất cả người dùng Chrome cùng lúc, hệ thống của bạn nên nhận diện đây là một bản cập nhật trình duyệt, chứ không phải một cuộc đứt gãy danh tính hàng loạt. Hãy theo dõi phiên bản trình duyệt và áp dụng dung sai khớp riêng theo từng phiên bản.
Theo dõi độ ổn định tín hiệu liên tục. Các tỷ lệ phần trăm ổn định của chúng tôi dựa trên dữ liệu lịch sử. Các bản cập nhật trình duyệt trong tương lai có thể thay đổi hồ sơ độ ổn định của bất kỳ tín hiệu nào. Chúng tôi vận hành giám sát liên tục và tự động điều chỉnh trọng số tín hiệu khi độ ổn định thay đổi.
Tác động đến tracio.ai
Kiến trúc định danh đa tầng V3 của chúng tôi phản ánh trực tiếp phân tích độ ổn định này. Các tín hiệu Tầng 1 (phần cứng) mang trọng số 60%. Các tín hiệu Tầng 2 (render, font) mang trọng số 30%. Các tín hiệu Tầng 3 (siêu dữ liệu trình duyệt, kết nối) mang trọng số 10%. Cách gán trọng số này đảm bảo rằng các tín hiệu ổn định nhất dẫn dắt việc định danh, trong khi các tín hiệu biến động góp phần vào chấm điểm độ tin cậy mà không gây đứt gãy danh tính.
Kết quả: độ ổn định định danh 99,5% qua 50 bản cập nhật trình duyệt, so với 69% của các hệ thống dùng fingerprinting phẳng dựa trên hash. Sự khác biệt không nằm ở sự khôn khéo về thuật toán — mà là phân tích tín hiệu thực nghiệm được áp dụng vào các quyết định kiến trúc.