Hai hộp thoại của Android luôn bị nhầm lẫn với nhau: lời nhắc đồng ý VPN và các yêu cầu quyền mà một ứng dụng đưa ra đối với dữ liệu của bạn. Cái thứ nhất trao một vị trí trên mạng, tức điểm mà các gói tin có thể bị đọc và ghi lại. Cái thứ hai trao nội dung đã lưu mà Android bảo vệ theo từng ứng dụng. Coi cả hai là một thứ thì hoặc phóng đại những gì một đường hầm có thể thấy, hoặc đánh giá quá thấp những gì một ứng dụng kiên quyết sẽ yêu cầu tiếp theo.

Hộp thoại đồng ý thực sự trao những gì

Một ứng dụng triển khai VpnService và khai báo BIND_VPN_SERVICE sẽ yêu cầu hệ thống trở thành VPN của thiết bị. Sau khi được chấp thuận, khung sẽ tạo một giao diện tun và cấp cho ứng dụng một bộ mô tả tệp cho nó. Mọi thứ ứng dụng làm sau đó đều chảy qua bộ mô tả đó: nó đọc các gói IP ra ngoài, quyết định làm gì với chúng và ghi các gói trở lại vào trong.

Phạm vi của giao diện đó là rõ ràng. Các tuyến quyết định đích nào bị bắt, và addAllowedApplication hoặc addDisallowedApplication quyết định ứng dụng nào cấp dữ liệu cho nó. Một VPN theo từng ứng dụng chỉ liệt kê hai ứng dụng sẽ không thấy phần còn lại của thiết bị.

Đó là một sự trao quyền ở mức gói tin, không phải ở mức dữ liệu. Dịch vụ thấy các byte mà ứng dụng chuyển cho ngăn xếp mạng, được định địa chỉ tới một đích. Nó không có quyền truy cập vào vùng lưu trữ riêng của ứng dụng gửi, các tệp cơ sở dữ liệu hay bộ nhớ đã giải mã của ứng dụng đó. Những tệp mà ứng dụng lưu trong hộp cát của chính nó vẫn khó đọc đúng như trước.

Nơi góc nhìn gói tin dừng lại

TLS vẫn làm việc của nó bên trong đường hầm, vì quá trình bắt tay diễn ra giữa ứng dụng và máy chủ, không phải giữa ứng dụng và VPN. VPN chuyển tiếp văn bản đã mã hóa mà nó không thể giải mã nếu không có khóa phiên. Đó là lý do một đường hầm đơn thuần không tiết lộ nội dung của một trang HTTPS hay một phiên thư được bảo vệ.

Siêu dữ liệu quanh văn bản đã mã hóa lại là câu chuyện khác, và đây là nơi phần lớn những khẳng định đầy tự tin sụp đổ. IP đích, cổng, kích thước gói và thời điểm đều hiển thị, cùng với tên máy chủ trong TLS ClientHello, thứ thường được gửi công khai ngay cả dưới TLS 1.3. Encrypted Client Hello thay đổi điều đó, nhưng nó không phổ quát. DNS thường cũng rò rỉ tên dễ dàng như vậy khi các truy vấn đi ra mà không mã hóa.

Các giao thức cũ hơn hoặc cấu hình sai trao nhiều hơn. HTTP thường, IMAP không có TLS và một số giao thức trò chơi cùng IoT phơi bày tải trọng của chúng cho bất cứ thứ gì giữ bộ mô tả tun.

Những quyền không bao giờ đi kèm

Chấp thuận VPN không phải là chấp thuận danh bạ, SMS, ảnh hay thư viện phương tiện. Đó là những sự trao quyền thời gian chạy riêng biệt, mỗi cái có hộp thoại riêng và đường thu hồi riêng trên trang cài đặt của ứng dụng. Một ứng dụng VPN muốn nhật ký cuộc gọi của bạn phải yêu cầu nó như bất kỳ ứng dụng nào khác, và bạn có thể từ chối mà vẫn giữ đường hầm.

Cài đặt chứng chỉ là thứ cần để ý, vì nó trông giống một phần của việc thiết lập VPN nhưng không phải. Cài một CA của người dùng vào kho thông tin đăng nhập sẽ thay đổi chứng chỉ nào Android chấp nhận, và kể từ Android 7.0, một ứng dụng nhắm tới API 24 hoặc mới hơn sẽ bỏ qua các CA do người dùng thêm vào trừ khi cấu hình bảo mật mạng của nó chọn dùng chúng với một neo tin cậy của người dùng. Một ứng dụng khăng khăng đòi CA có thể đang thực hiện chặn bắt doanh nghiệp hợp pháp, hoặc có thể đang yêu cầu một thứ mà hộp thoại VPN chưa bao giờ nhắc tới.

Quyền truy cập trợ năng còn ở xa hơn nữa. Một dịch vụ được bật trợ năng có thể đọc nội dung màn hình của các ứng dụng khác, điều mà không vị trí ở mức gói tin nào cung cấp.

Bộ lọc cục bộ hay cổng nối từ xa

Cùng một API bao trùm hai sản phẩm xứng đáng với mức độ tin cậy khác nhau. Một tường lửa hay trình chặn quảng cáo trên thiết bị nhận bộ mô tả tun và trả lời lưu lượng tại chỗ, không bao giờ gửi nó tới một máy chủ mà nó tự vận hành. Một đường hầm thực sự chuyển các gói đó tới một cổng nối ở nơi khác, và nhà vận hành đó thấy cùng siêu dữ liệu từ phía bên kia đồng thời quyết định điều gì quay về.

Một cách thực tế để phân biệt chúng là kiểm tra địa chỉ công cộng của bạn khi bật và tắt VPN, và xem thông báo có nêu một điểm cuối từ xa hay không. Nếu địa chỉ không bao giờ thay đổi, lưu lượng có lẽ đang quay vòng ngay trên thiết bị.

Cả hai trường hợp vẫn là một vị trí gói tin. Khác biệt là ai khác đang đứng ở lối ra.

Kiểm tra lại những gì bạn đã chấp thuận

Mở Cài đặt, rồi Mạng và internet, rồi VPN, và đọc mục nhập thay vì biểu tượng trên thanh trạng thái. VPN luôn bật và Chặn kết nối không có VPN là những cài đặt thiết bị giữ cho giao diện sống và cắt các rò rỉ; chúng không mở rộng gì cả. Từ cùng màn hình đó bạn có thể quên hồ sơ và thu hồi sự trao quyền.

Sau đó đi qua các quyền khác. Thông tin ứng dụng cho thấy ứng dụng có những trao quyền thời gian chạy nào, và cài đặt Bảo mật cho thấy liệu có một chứng chỉ người dùng được cài cùng lúc hay không. Cả hai đều có thể bị gỡ bỏ độc lập.

Câu hỏi đáng trả lời thì hẹp: những gói nào đi vào dịch vụ này, chúng đi đâu và phần triển khai giữ lại gì. Mọi thứ khác trong hộp thoại chỉ là nhiễu. Tài liệu tham chiếu VpnService là danh sách có thẩm quyền về những gì giao diện này phơi bày.

Bài viết liên quan