Đây là bài viết thứ 17 trong chuỗi bài giới thiệu các tính năng bảo mật mới và sắp ra mắt trên iBrowe. Bài viết này trình bày công việc của Kỹ sư Phần mềm Cấp cao Mark Pilgrim (với sự hỗ trợ của Kỹ sư Chính Brian Johnson) và được biên soạn bởi Giám đốc Bảo mật Quyền riêng tư Peter Snyder.
📋 Tóm tắt
iBrowe hiện đã ngẫu nhiên hóa cách trình duyệt của bạn báo cáo thông tin “Accept-Language” và danh sách phông chữ cài đặt sẵn tới các website, giúp ngăn chặn kỹ thuật theo dõi dựa trên thiết lập ngôn ngữ. Bắt đầu từ phiên bản 1.39, cơ chế “farbling” nâng cao của iBrowe được áp dụng cho cả các tín hiệu ngôn ngữ tường minh (Accept-Language, navigator.language
, navigator.languages
) lẫn các tín hiệu ngôn ngữ ngầm định (các phông chữ cài đặt trên hệ thống). Điều này củng cố thêm lớp bảo vệ chống lấy dấu vân tay vốn đã hàng đầu của iBrowe, khiến các trình theo dõi khó liên kết danh tính của bạn giữa các trang web hơn.
🔍 1. Ngôn ngữ trở thành dữ liệu nhận diện (fingerprint) như thế nào
1.1 Tín hiệu ngôn ngữ tường minh
Khi bạn truy cập một trang web, trình duyệt thường gửi header Accept-Language liệt kê thứ tự các ngôn ngữ ưa thích của bạn (ví dụ: en-US;q=0.8,es;q=0.5
). Thông qua JavaScript, các website cũng có thể đọc được thông tin qua navigator.language
(ngôn ngữ chính) và navigator.languages
(danh sách đầy đủ). Các trình theo dõi kết hợp những giá trị này với các thuộc tính trình duyệt khác như kích thước màn hình, plugin, múi giờ,… để xây dựng định danh duy nhất cho bạn. 🌐
1.2 Tín hiệu ngôn ngữ ngầm định qua phông chữ
Hệ điều hành thường cài đặt thêm phông chữ dựa trên ngôn ngữ bạn chọn. Ví dụ, khi bạn thiết lập hệ điều hành ưu tiên tiếng Do Thái hoặc tiếng Mã Lai, Windows hoặc macOS sẽ thêm các bộ phông chữ chuyên dụng cho những ngôn ngữ này. Trình theo dõi có thể kiểm tra các phông chữ khả dụng — đặc biệt là các phông chữ hiếm hoặc do người dùng tự cài — để xác định hồ sơ ngôn ngữ của bạn. Vì rất ít người dùng có cùng tập hợp phông chữ, kiểm tra phông chữ theo ngôn ngữ làm tăng đáng kể độ phân biệt khi lấy dấu vân tay. 🖋️
Ví dụ:
- Người dùng với ngôn ngữ ưu tiên tiếng Anh (US) và tiếng Tây Ban Nha sẽ gửi
Accept-Language: en-US,en;q=0.8,es;q=0.5
. - Hệ điều hành của họ có thể chứa “Segoe UI Emoji”, “Noto Sans Hebrew” hoặc “Noto Sans Arabic”.
- Tổ hợp “en-US + Noto Sans Hebrew” hiếm gặp hơn nhiều so với “en-US + Arial”, khiến người dùng dễ bị nhận diện hơn.
🛡️ 2. Cách tiếp cận “Farbling” của iBrowe để bảo vệ ngôn ngữ & phông chữ
Cơ chế chống lấy dấu vân tay của iBrowe xoay quanh kỹ thuật farbling — tức thêm yếu tố ngẫu nhiên có kiểm soát nhằm ngăn chặn trình theo dõi nhận diện cùng một người dùng qua các phiên truy cập khác nhau. Phiên bản 1.39 mở rộng farbling sang cả thiết lập ngôn ngữ:
2.1 Bảo vệ header Accept-Language
-
Chế độ Tiêu chuẩn (Standard Shields):
- Chỉ báo cáo ngôn ngữ ưu tiên nhất (ví dụ: thay vì
en-US,en,es
, iBrowe chỉ gửien-US,en
). - Giá trị
q
được ngẫu nhiên hóa trong một khoảng nhỏ (ví dụ:q=0.7–0.9
) ở mỗi phiên truy cập, khiến trình theo dõi không thể liên kết chính xác sở thích ngôn ngữ của bạn.
- Chỉ báo cáo ngôn ngữ ưu tiên nhất (ví dụ: thay vì
-
Chế độ Nghiêm ngặt (Strict Shields):
- Luôn báo cáo
en
như ngôn ngữ mặc định, bất kể thiết lập thực tế, giúp bạn ẩn danh trong nhóm người dùng “tiếng Anh”. - Giá trị
q
cũng được ngẫu nhiên hóa nhằm tránh rò rỉ thông tin qua kênh phụ.
- Luôn báo cáo
2.2 Bảo vệ chống lấy dấu vân tay qua phông chữ
-
Phông chữ Web (Web Fonts): iBrowe không can thiệp vào các phông chữ mà website tự tải (ví dụ: Google Fonts).
-
Phông chữ hệ điều hành (OS Fonts):
- Ở chế độ Tiêu chuẩn, iBrowe chỉ hiển thị các phông chữ hệ thống liên quan đến ngôn ngữ ưu tiên nhất.
- Các phông chữ khác bị ẩn hoàn toàn khỏi website.
-
Phông chữ người dùng (User Fonts):
- Nếu bạn cài đặt thêm phông chữ (ví dụ: hỗ trợ ngôn ngữ hiếm), iBrowe sẽ ngẫu nhiên chọn một tập con các phông chữ đó để cung cấp cho từng website, làm mới tập hợp này theo từng trang và từng phiên.
Ví dụ:
- Phông chữ thực tế cài đặt:
Arial, Times New Roman, Noto Sans Hebrew, Roboto
. - Chế độ Tiêu chuẩn: chỉ hiển thị
Arial
vàTimes New Roman
(ngôn ngữ chính = tiếng Anh). - Chế độ Nghiêm ngặt: chỉ hiển thị
Arial
cùng một phông chữ ngẫu nhiên từ danh sách — ví dụ,Noto Sans Hebrew
cho Trang A, Roboto cho Trang B — khiến trình theo dõi không thể ổn định quan sát phông chữ “hỗ trợ tiếng Hebrew” xuyên suốt các lần truy cập.
⚙️ 3. Tích hợp với Bộ lá chắn (Shields) & Tùy chỉnh người dùng
3.1 Bảo vệ Ngôn ngữ & Phông chữ trong Shields
Theo mặc định, iBrowe áp dụng cơ chế bảo vệ tự động, không cần cấu hình thủ công.
- Shields Tiêu chuẩn: Áp dụng mức farbling tối thiểu cần thiết (chỉ ngôn ngữ chính + phông chữ hệ thống của ngôn ngữ đó + phông chữ người dùng ngẫu nhiên).
- Shields Nghiêm ngặt: Áp dụng mức farbling tối đa (luôn sử dụng
en
+ phông chữ OS/người dùng ngẫu nhiên).
3.2 Khi bạn cần chia sẻ thêm thông tin
Một số người dùng có thể cần dùng nhiều ngôn ngữ hoặc phông chữ đặc thù cho mục đích hỗ trợ truy cập hoặc tương thích khu vực. Trong trường hợp này:
- Truy cập ibrowe://settings/shields.
- Tìm mục Giảm khả năng nhận diện dựa trên thiết lập ngôn ngữ và tắt tính năng này.
Khi đó, iBrowe sẽ gửi đầy đủ header Accept-Language
và cung cấp toàn bộ phông chữ hệ thống/người dùng cho website.
Lưu ý: Tắt bảo vệ sẽ làm tăng khả năng nhận diện trình duyệt của bạn. Chỉ nên thực hiện nếu thực sự cần thiết (ví dụ: cổng dịch thuật, nền tảng học tập địa phương).
🌐 4. So sánh bảo vệ của các trình duyệt khác
Trình duyệt | Giới hạn ngôn ngữ | Giới hạn phông chữ | Ngẫu nhiên hóa | Có thể tắt? |
---|---|---|---|---|
iBrowe | Chỉ ngôn ngữ chính / en | Phông OS theo ngôn ngữ chính + phông người dùng ngẫu nhiên | Có (giá trị q & phông chữ) | Có (trong Shields) |
Safari | Chỉ ngôn ngữ chính | Phông OS cho ngôn ngữ chính | Không | Không |
Firefox | Chỉ trong chế độ RFP | Chặn phông của bên thứ ba trong RFP | Một phần (trong RFP) | Có (bật/tắt RFP) |
Chrome | Không | Không | Không | Không |
Edge | Không | Không | Không | Không |
Tóm tắt:
- Safari giới hạn ngôn ngữ và phông chữ, nhưng không ngẫu nhiên hóa.
- Firefox với chế độ “Resist Fingerprinting” tiệm cận iBrowe, nhưng mặc định không bật và không ngẫu nhiên hoàn toàn.
- Chrome và Edge hiện không có cơ chế bảo vệ ngôn ngữ/phông chữ gốc.
🔮 5. Tầm quan trọng và định hướng tiếp theo
Bằng cách ngẫu nhiên hóa header ngôn ngữ và danh sách phông chữ:
- Mở rộng tập người dùng ẩn danh: Nhiều người dùng sẽ trông giống nhau hơn trong mắt trình theo dõi.
- Giữ nguyên khả năng tương thích: Các website vẫn nhận diện đúng ngôn ngữ chính (menu, ngày tháng…).
- Ngẫu nhiên hóa động: Giá trị khác nhau giữa từng phiên, từng website, giảm khả năng liên kết chéo.
Định hướng phát triển:
- Bộ nhớ tạm thời cho bên thứ nhất: Giúp website “quên” bạn khi rời đi, giảm bám đuôi giữa các lần truy cập.
- Farbling theo vùng địa lý: Với khu vực đa ngôn ngữ (như Bỉ), iBrowe có thể báo cáo ngôn ngữ phụ một cách ngẫu nhiên trong chế độ Tiêu chuẩn nhằm cải thiện tương thích mà không lộ toàn bộ thông tin.
- Phản hồi cộng đồng: Theo dõi vấn đề tương thích tại các website đa ngôn ngữ (như cổng thông tin chính phủ, nền tảng học ngôn ngữ) để tinh chỉnh cơ chế farbling.
🎉 6. Kết luận
Với cơ chế farbling cho ngôn ngữ và phông chữ, iBrowe 1.39 nâng tầm khả năng chống lấy dấu vân tay: trình theo dõi không thể dựa vào tín hiệu ngôn ngữ tường minh hay ngầm định để nhận diện bạn một cách đáng tin cậy. Kết hợp với các tính năng bảo vệ khác như bộ nhớ tạm bên thứ ba, phân vùng trạng thái mạng, chặn theo dõi bám đuôi… iBrowe đảm bảo rằng: những gì bạn đọc và ngôn ngữ bạn sử dụng đều thuộc về riêng bạn.
Hãy cập nhật lên iBrowe 1.39 để sở hữu lớp bảo vệ chống lấy dấu vân tay dựa trên ngôn ngữ mạnh mẽ nhất hiện nay!