Danh sách ứng viên WebRTC tiết lộ gì về VPN của bạn
Một ứng viên máy chủ, phản xạ từ máy chủ hoặc chuyển tiếp cho biết địa chỉ đến từ đâu. Chỉ cặp ICE được chọn mới cho biết đường đi mà phương tiện thực sự đã dùng.
Khi một trang kiểm tra WebRTC in ra 172.20.4.15, nó đã biết rằng có một giao diện cục bộ trên mạng đó. Đó là sự tiết lộ thật, và nó không phải cùng một phát hiện với «phương tiện đã đi ra qua cổng thoát VPN». Việc phát hiện ứng viên và định tuyến gói tin là những cơ chế riêng biệt, và hầu hết báo cáo rò rỉ gộp chúng vào một phán quyết. Bạn đang nhìn cái nào sẽ quyết định cách khắc phục.
Việc thu thập diễn ra trước khi bất cứ thứ gì được gửi
Trình duyệt liệt kê các giao diện cục bộ, gửi yêu cầu ràng buộc đến máy chủ STUN và xin cấp phát từ máy chủ TURN, rồi ghi kết quả vào mô tả phiên dưới dạng các dòng ứng viên. Tất cả việc đó hoàn tất mà không có cuộc gọi, không có phương tiện và không có đối tác. Vì vậy danh sách ứng viên là bản ghi của việc phát hiện, không phải của việc truyền tải.
Các trình duyệt hiện đại có thể thay địa chỉ thực của ứng viên máy chủ bằng một tên mDNS .local, nên trang không thể đọc IP riêng tư. Mạng cục bộ vẫn thấy các truy vấn đa hướng phân giải tên đó, tức là địa chỉ bị ẩn khỏi ứng dụng chứ không bị gỡ khỏi đường truyền.
Thứ tự cũng quan trọng: một lần tải trang mới thu thập một tập mới, với cấp phát TURN khác và có thể ánh xạ phản xạ khác. Hai lần chạy không khớp nhau không nhất thiết là hai cấu hình khác nhau.
Ba loại ứng viên, ba loại bằng chứng
Mỗi dòng xuất phát từ một quan sát khác. Mỗi loại trả lời một câu hỏi khác, và bảng phân tách chúng theo điều chúng có thể và không thể chứng minh.
| Candidate | Derived from | What it establishes | What it cannot establish |
|---|---|---|---|
| Host | An interface on the device | A local address exists in that network | That the peer can reach it |
| Server-reflexive | A STUN binding response | How a NAT mapped this source | Which exit the media will use |
| Peer-reflexive | A connectivity check that arrived | An address seen by the far side | That it was ever advertised |
| Relay | A TURN allocation | The relay server accepted the session | That the relay carries the call |
Ứng viên chuyển tiếp thường bị nhầm với địa chỉ internet của người dùng. Nó thuộc về máy chủ TURN, và sự hiện diện của nó cho thấy một bộ chuyển tiếp đã sẵn có, không phải trình duyệt đã chọn nó. Cùng sự nhầm lẫn đó đi theo hướng ngược lại với các ứng viên máy chủ, nơi tên mDNS che địa chỉ khỏi trang trong khi mạng vẫn mang các truy vấn. Hãy đọc loại trước khi đọc giá trị.
Cặp được chọn trả lời câu hỏi định tuyến
ICE ghép từng ứng viên cục bộ với từng ứng viên từ xa, chạy kiểm tra kết nối trên từng cặp và đề cử một người thắng. Cặp được đề cử đó, hiển thị trong chẩn đoán của chính trình duyệt, mang phương tiện. Mọi thứ còn lại trong danh sách là một khả năng đã thua.
Người thắng cho bạn biết hình dạng của đường đi. Chuyển tiếp đến chuyển tiếp đi qua máy chủ TURN, một cặp máy chủ ở lại mạng cục bộ, và một cặp phản xạ từ máy chủ đi thẳng qua NAT. Đó là sự thật mà một lần kiểm tra VPN cần, và nó là sự thật khác với danh sách địa chỉ. Hai cuộc gọi có danh sách ứng viên giống hệt có thể dùng các cặp khác nhau.
Các ứng viên không được chọn vẫn được thu thập, và việc thu thập là lưu lượng mạng rời khỏi máy. Một cuộc gọi cuối cùng dùng bộ chuyển tiếp không có nghĩa là không có gì bị tiết lộ trong khi danh sách được xây dựng.
Các biện pháp kiểm soát khớp với mục tiêu, không phải điểm rò rỉ
Đặc tả xử lý IP của WebRTC mô tả một số chính sách: chỉ dùng giao diện mang tuyến mặc định, dùng tất cả giao diện, và tắt UDP không qua proxy để lưu lượng buộc phải đi qua bộ chuyển tiếp hoặc proxy. Mỗi chính sách đánh đổi kết nối và độ trễ lấy một kiểu phơi lộ khác. Trình duyệt triển khai chính sách nào và dưới tên gì thì khác nhau theo nền tảng và phiên bản.
Hãy chọn chính sách dựa trên mục tiêu. Che địa chỉ cục bộ khỏi một trang là một mục tiêu; ngăn lưu lượng trực tiếp giữa các máy ngang hàng là mục tiêu khác; giữ mọi gói tin trong đường hầm là mục tiêu thứ ba. Mục tiêu đầu chủ yếu về điều ứng dụng biết được, mục tiêu thứ hai về việc đường nào được phép, và mục tiêu thứ ba phải được thực thi cả ở ranh giới nền tảng hoặc VPN.
Dù chọn biện pháp nào, hãy xác minh cả hai nửa: chạy bài kiểm tra thu thập và ghi lại các loại ứng viên, sau đó kiểm tra cặp được chọn trong một phiên thực. Một danh sách địa chỉ sạch với đường đi phương tiện trực tiếp vẫn là con đường bạn không định đi.