Đây là bài viết thứ mười lăm trong chuỗi bài viết giới thiệu các tính năng bảo mật mới và sắp ra mắt trên trình duyệt iBrowe. Bài viết này ghi nhận đóng góp của Kỹ sư phần mềm Aleksey Khoroshilov, Kỹ sư phần mềm cao cấp Mark Pilgrim, Kỹ sư danh sách lọc Ryan Brown và Kỹ sư phần mềm cao cấp Max Karolinskiy. Nội dung do Peter Snyder, Giám đốc Bộ phận Quyền riêng tư, biên soạn.
✂️ Tóm tắt nhanh
iBrowe tiếp tục triển khai các cơ chế bảo vệ quyền riêng tư mạnh mẽ và toàn diện nhất trong số các trình duyệt phổ biến hiện nay. Bản cập nhật mới nhất (đã có trên Android và máy tính để bàn) bao gồm:
- Khắc phục Pool-Party – Phân vùng kết nối WebSocket theo từng trang web (tối đa 30 kết nối/site) nhằm chặn kỹ thuật theo dõi chéo site qua Pool-Party. 🔒
- Phòng chống lấy dấu vân tay bằng SpeechSynthesis – Tiêm nhiễu vào đầu ra của API SpeechSynthesis để ngăn website sử dụng đặc điểm giọng nói làm phương tiện nhận diện người dùng. 🎙️
- Mở rộng chặn chuyển hướng (Debouncing) – Ngăn chặn thêm nhiều URL chuyển hướng “bounce-tracker”, giúp bạn truy cập trực tiếp vào trang đích mà không bị chèn theo dõi. 🚀
- Vô hiệu hóa API Network Information – Tắt mặc định API này để ngăn website biết loại kết nối mạng hoặc thay đổi mạng của bạn. 🌐
🛡️ 1. Ngăn chặn tấn công Pool-Party
1.1 Tấn công Pool-Party là gì?
Tấn công Pool-Party khai thác giới hạn tài nguyên chia sẻ trong trình duyệt (ví dụ: giới hạn số kết nối WebSocket hoặc Server-Sent Events) để thiết lập kênh phụ. Website có thể mở kết nối đến khi chạm giới hạn toàn cục, sau đó “thăm dò” từ một website khác để xác định liệu cùng một trình duyệt có đang dùng các kết nối đó hay không – từ đó liên kết danh tính người dùng giữa các domain. 🚫
Điều kiện tấn công:
- Tài nguyên trình duyệt bị giới hạn toàn cục (như tổng số kết nối WebSocket đồng thời).
- Không phân vùng tài nguyên theo origin (tất cả trang web dùng chung).
- Có thể thăm dò trạng thái pool (kiểm tra xem còn kết nối khả dụng hay không).
- Website có thể chiếm dụng tài nguyên mà không bị chặn ngay lập tức.
1.2 Cách iBrowe phòng chống: Phân vùng WebSocket
Từ phiên bản iBrowe 1.35 (Nightly hiện tại, Stable sắp ra mắt):
- Giới hạn WebSocket trên từng site: Mỗi site (eTLD+1) được phép mở tối đa 30 kết nối WebSocket đồng thời. Con số này được điều chỉnh để đảm bảo tương thích web mà vẫn đảm bảo bảo mật. 📈
- Cô lập tài nguyên: Mỗi origin có quota riêng, giúp chặn các tracker trên site-a.example khai thác pool kết nối của site-b.example, từ đó loại bỏ kênh liên lạc chéo site.
- Đánh giá các pool khác: Tất cả các kênh tấn công Pool-Party thực tiễn trong Chromium đã được rà soát. Người dùng iBrowe vốn không bị ảnh hưởng bởi các tấn công dựa trên SSE (chỉ có trên WebKit). Các kênh tiềm năng khác như DNS slots, WebSpeech handles hay HTTP proxy limits được đánh giá là không đủ băng thông hoặc hiếm gặp để tạo thành mối đe dọa.
Lưu ý kỹ thuật: Giới hạn này tận dụng cơ chế phân vùng mạng của Chromium nhưng được kích hoạt và hiệu chỉnh riêng bởi đội ngũ kỹ sư iBrowe.
🎙️ 2. Ngăn lấy dấu vân tay bằng API SpeechSynthesis
2.1 SpeechSynthesis như một vector lấy dấu vân tay
Website có thể sử dụng API SpeechSynthesis để phát âm văn bản rồi phân tích các đặc điểm âm thanh tinh vi (cao độ, âm sắc, nhịp điệu) nhằm xây dựng một dấu vân tay âm thanh độc nhất. Mỗi thiết bị có hệ thống TTS khác nhau nên có thể dùng để theo dõi người dùng giữa các website. 🕵️
2.2 Phương pháp chèn nhiễu của iBrowe
Từ phiên bản 1.35:
- Ngẫu nhiên hóa nhẹ: Mỗi khi trang web gọi
speechSynthesis.speak(...)
, iBrowe sẽ tiêm các thay đổi nhỏ ngẫu nhiên vào luồng âm thanh (cao độ, thời lượng, tham số giọng nói). - Giữ nguyên chức năng: Trình đọc màn hình hoặc câu lệnh thoại thông thường vẫn hoạt động bình thường, sự biến đổi gần như không thể nhận ra.
- Phá vỡ nhận diện: Mỗi lần phát sinh âm thanh sẽ khác nhau nhẹ, khiến tracker không thể thu thập dấu vân tay ổn định từ engine TTS của bạn.
Tác động bảo mật: Tính năng này bổ sung vào chiến lược ngẫu nhiên hóa dấu vân tay tổng thể của iBrowe (Canvas, WebGL, AudioContext…), đảm bảo bạn không bị theo dõi dựa trên đầu ra của trình duyệt.
🚀 3. Mở rộng chặn chuyển hướng bounce-tracker
3.1 Bounce-tracker là gì?
Bounce-tracker chèn một URL chuyển tiếp trung gian (ví dụ: tracker.example/redirect?dest=target.com
) giữa bạn và trang đích. Chúng ghi nhận lượt click của bạn trước khi chuyển hướng tới trang mong muốn – qua đó vượt qua các biện pháp chặn cookie hoặc phân vùng bộ nhớ khác.
3.2 Cải tiến Debouncing trong iBrowe
- Mở rộng danh sách bounce: Nhận diện thêm hàng ngàn domain/mẫu URL chuyên làm bounce-tracker (bao gồm affiliate, mạng quảng cáo, trình theo dõi email).
- Chuyển tiếp nhanh: iBrowe phân tích tham số
dest=
hoặc tương đương để điều hướng trực tiếp tới URL đích – URL tracker sẽ không bao giờ được tải, không cookie, script hay beacon nào được kích hoạt. - Danh sách cập nhật liên tục: Danh sách chặn bounce được duy trì bởi cộng đồng (do các nhà nghiên cứu iBrowe và đóng góp viên như @fanboynz quản lý). Người dùng có thể đề xuất domain mới.
🎯 Lợi thế chính: Khác với các trình duyệt khác – thường tải URL trung gian rồi mới xóa tracker – iBrowe hoàn toàn bỏ qua site tracker, chặn triệt để mọi phương pháp theo dõi ẩn giấu trong URL.
🌐 4. Vô hiệu hóa API Network Information
4.1 API này là gì?
API không tiêu chuẩn navigator.connection
cung cấp:
- Loại kết nối hiện tại (wifi, 4g, 2g…).
- Tốc độ tải xuống ước tính.
- Độ trễ RTT.
- Sự kiện
thay đổi
trạng thái kết nối mạng.
Website có thể lợi dụng API này để:
- Lấy dấu vân tay môi trường thiết bị: Kết hợp loại kết nối với các tín hiệu khác.
- Phát hiện di chuyển: Biết bạn đang chuyển mạng (từ Wi-Fi sang dữ liệu di động…).
- Phát hiện VPN: Nếu loại kết nối chuyển đổi bất thường (ví dụ từ “wifi” sang “unknown”), có thể đoán bạn đang dùng Tor hoặc VPN.
4.2 Vì sao iBrowe vô hiệu hóa API này từ bản 1.35
- Không có lợi ích bảo mật: API rò rỉ siêu dữ liệu nhạy cảm mà người dùng không biết.
- Tăng khả năng lấy dấu vân tay: Khi kết hợp với các dữ liệu khác từ trình duyệt.
- Liên kết hành vi chéo site: Khi bạn chuyển mạng, tracker có thể theo dõi chuỗi hoạt động dựa vào sự thay đổi đó.
Từ iBrowe 1.35, API này bị vô hiệu hóa hoàn toàn – không có cờ hoặc cài đặt Shields nào để bật lại. Người dùng nâng cao có thể can thiệp qua ibrowe://flags
, nhưng không được khuyến khích.
✨ So sánh:
- Chrome vẫn tiết lộ loại kết nối.
- Firefox đã loại bỏ phần lớn API này.
- Safari chưa từng triển khai đầy đủ API này.
- iBrowe đi xa hơn: ẩn hoàn toàn mọi dữ liệu liên quan.
🔧 5. Tiếp tục loại bỏ các tính năng Chromium có hại cho quyền riêng tư
Ngoài các cập nhật chính nêu trên, iBrowe còn tiếp tục loại bỏ hoặc làm cứng các tính năng khác của Chromium có nguy cơ ảnh hưởng đến quyền riêng tư. Ví dụ:
- Vô hiệu hóa thu thập dữ liệu Autocomplete URL – Ngăn tiết lộ lịch sử truy cập qua gợi ý tìm kiếm.
- Chặn cookie bên thứ ba mặc định – Kể cả trong các trang không HTTPS.
- Ẩn trạng thái pin – Ngăn lấy dấu vân tay thông qua API pin.
- Loại bỏ dữ liệu phần cứng từ WebGL – Tiêm nhiễu ngẫu nhiên để che giấu thông tin GPU.
🚀 Tại sao điều này quan trọng:
Dù dựa trên Chromium, iBrowe chủ động loại bỏ các tính năng phục vụ theo dõi, trong khi vẫn duy trì hiệu năng và khả năng tương thích web.
🎉 6. Kết luận
Với việc khắc phục Pool-Party, phòng chống lấy dấu vân tay bằng SpeechSynthesis, mở rộng debouncing và loại bỏ API Network Information, iBrowe tiếp tục giữ vững vị thế trình duyệt ưu tiên quyền riêng tư hàng đầu. 🔒 Bằng cách phân vùng tài nguyên, chèn nhiễu vào vector nhận diện và bỏ qua hoàn toàn các tracker chuyển tiếp, iBrowe đảm bảo những gì bạn làm trên một trang web sẽ không bị rò rỉ sang trang khác.
Tải ngay bản iBrowe Nightly để trải nghiệm các tính năng mới hoặc chờ phiên bản Stable 1.35 sẽ ra mắt sớm!