Bạn đang ngồi trong một quán cà phê với ly espresso khá ổn và Wi-Fi thì đáng ngờ, và bạn cần dùng đến chiếc desktop ở nhà. Kết nối có an toàn không? Điều đó phụ thuộc hoàn toàn vào mã hoá ở tầng truyền tải — một phiên mã hoá đầu-cuối vẫn an toàn trên mạng tệ nhất thành phố, còn một giao thức đời cũ không mã hoá thì không an toàn ngay cả trên mạng tốt nhất. Dưới đây là mô hình mối đe doạ được diễn giải dễ hiểu, các giao thức xếp hạng theo mức độ rò rỉ, và danh sách kiểm tra cho lần tới khi bạn kết nối từ một nơi bạn không kiểm soát.
Wi-Fi công cộng thực sự thấy được gì
Trên một mạng bạn không kiểm soát, có hai bên ở vị trí có thể quan sát lưu lượng của bạn. Bên thứ nhất là người vận hành — bất kỳ ai điều hành điểm truy cập (access point) và router phía sau nó, mà trên Wi-Fi công cộng thì đó là địa điểm kinh doanh, nhà thầu mạng của họ, hoặc bất kỳ ai đã âm thầm dựng lên một access point mang tên của địa điểm đó. Bên thứ hai là các thiết bị khác ở gần: trên những mạng không có client isolation, một chiếc laptop cách vài bàn có thể bắt lấy lưu lượng đang di chuyển quanh nó. “Quan sát” ở đây nghĩa là ghi lại các gói tin bạn gửi và nhận. Toàn bộ câu hỏi nằm ở chỗ những gói tin đó chứa gì.
- Nếu giao thức không mã hoá, các gói tin chứa nội dung. Với remote desktop thì điều đó tệ đúng như nghe có vẻ: khung hình màn hình, từng thao tác phím bạn gửi — bao gồm cả mật khẩu gõ vào máy từ xa — và, trong những trường hợp đời cũ tệ nhất, thông tin đăng nhập được trao đổi lúc thiết lập kết nối.
- Nếu giao thức được mã hoá đúng cách, các gói tin chứa bản mã. Việc quan sát thu hẹp lại chỉ còn metadata: bạn trao đổi lưu lượng với các đầu cuối nào, khi nào, và bao nhiêu. Đủ để suy ra rằng bạn đã dùng một ứng dụng remote desktop; nhưng vô dụng để khôi phục những gì đã diễn ra bên trong phiên.
Đáng để hiệu chỉnh nhận thức theo thực tế ngày nay thay vì những câu chuyện kinh dị từ năm 2010. Phần lớn lưu lượng mà một chiếc laptop tạo ra ngày nay đã được mã hoá — HTTPS đã lấy đi kịch tính của việc tình cờ nghe lén trong một quán cà phê. Những mối đe doạ còn lại một cách thực tế là việc quan sát metadata và các access point giả mạo: một kẻ tấn công phát đi tên mạng của địa điểm để tự chen mình vào đường truyền, hy vọng bắt được bất cứ thứ gì thương lượng một cách yếu ớt — các giao thức đời cũ, những hộp thoại chứng chỉ bị bấm qua loa, những thiết bị tự động kết nối vào các tên quen thuộc. Đó không phải là lý do để sợ mạng. Đó là một mô tả chính xác về việc nên mang theo công cụ nào khi dùng nó: những công cụ không thương lượng một cách yếu ớt.
Các giao thức, xếp hạng theo mức độ rò rỉ
Tên sản phẩm ở đây ít quan trọng hơn cấu hình — cùng một phần mềm có thể ổn hoặc đáng báo động tuỳ vào phiên bản và thiết lập, nên thứ hạng dưới đây được xếp theo cấu hình, tệ nhất trước.
- RDP thuần không có TLS hay NLA (đời cũ). Tầng bảo mật nguyên bản của RDP ra đời trước cả bảo mật truyền tải hiện đại, và một client sẵn sàng thương lượng nó có thể bị một kẻ đứng giữa (man in the middle) kéo tụt xuống dùng nó. Các phiên bản Windows hiện tại mặc định dùng TLS với Network Level Authentication, nên điều này chủ yếu mô tả các host cũ, client cũ, và những group policy được nới lỏng vì lý do tương thích — nhưng trên một mạng thù địch, một phiên có thể bị hạ cấp thì nên được xem như có thể đọc được.
- VNC không mã hoá. Giao thức VNC cổ điển gửi framebuffer — chính là màn hình thật của bạn — dưới dạng không mã hoá, và cơ chế đăng nhập challenge-response truyền thống của nó thì yếu theo tiêu chuẩn hiện đại, với mật khẩu thường bị giới hạn ở tám ký tự. Một số server và client phủ thêm TLS lên trên hoặc chạy qua SSH; nhưng rất nhiều thiết lập nhanh thì không. VNC không mã hoá trên Wi-Fi dùng chung sẽ để lộ những gì đang hiển thị trên màn hình cho bất kỳ ai ghi lại gói tin.
- RDP với TLS và NLA. Mặc định hiện đại, và trên đường truyền nó trụ vững: phiên được mã hoá ở tầng truyền tải từ client của bạn tới host hoặc gateway, và NLA yêu cầu xác thực trước cả khi một phiên được tạo ra. Trên Wi-Fi công cộng, điểm yếu thực tế nằm ở con người — các chứng chỉ tự ký khiến những hộp thoại cảnh báo trở nên thường xuyên, và một người dùng đã quen bấm qua chúng chính là điều mà một access point giả mạo trông đợi. Mã hoá truyền tải cũng không nói gì về mức độ phơi bày: mở cổng 3389 ra internet là một sai lầm riêng biệt, đã được ghi nhận rõ ràng, dù bạn kết nối từ đâu.
- Các ứng dụng mã hoá đầu-cuối hiện đại. Phiên được mã hoá giữa hai thiết bị trước khi bất kỳ mạng nào chạm tới. Mạng của khách sạn — và mọi thứ nằm sau nó — chỉ thấy metadata kết nối: bản mã chảy giữa các đầu cuối, cùng thời điểm và khối lượng. Không bao giờ thấy điểm ảnh, không bao giờ thấy thao tác phím, không bao giờ thấy thông tin đăng nhập, bởi vì không có thông tin đăng nhập cấp giao thức nào để đánh cắp.
| Cấu hình | Người quan sát trên mạng thu được gì | Kết luận trên Wi-Fi công cộng |
|---|---|---|
| RDP thuần, không TLS/NLA | Nội dung phiên ở nơi việc hạ cấp thành công; thông tin đăng nhập gặp rủi ro | Không nên dùng — coi như đọc được |
| VNC không mã hoá | Nội dung màn hình ở dạng không mã hoá; bắt tay đăng nhập yếu | Không nên dùng |
| RDP với TLS + NLA | Bản mã khi truyền; các hộp thoại chứng chỉ là điểm yếu | Chấp nhận được qua một đường hầm; đừng bao giờ phơi bày 3389 |
| Ứng dụng E2EE hiện đại | Chỉ có bản mã và metadata kết nối | Được tạo ra đúng cho việc này |
Vì sao E2EE thay đổi câu trả lời
Mã hoá truyền tải bảo vệ một chặng; mã hoá đầu-cuối bảo vệ toàn bộ cuộc trò chuyện. Sự phân biệt này nghe có vẻ hàn lâm cho tới khi bạn liệt kê ai đang nằm giữa một quán cà phê và chiếc desktop ở nhà bạn: access point của địa điểm, ISP của họ, ISP của bạn, và có thể cả một máy chủ relay của nhà cung cấp. Với mã hoá đầu-cuối, khoá được thống nhất giữa hai thiết bị của bạn bằng một trao đổi Diffie-Hellman phù du (ECDHE), và các khung hình được mã hoá bằng AES-256-GCM trước khi rời khỏi thiết bị. Mọi bên trong danh sách đó — kể cả chính hạ tầng của nhà cung cấp — đều chỉ chuyển tiếp bản mã mà nó không có khoá để giải.
Remio được xây dựng đúng trên mô hình này, nên nó đóng vai trò là ví dụ minh hoạ cụ thể. Sự tin cậy được thiết lập khi bạn ghép cặp hai thiết bị bằng một mã PIN 4 chữ số dùng một lần, đọc trên màn hình của máy chủ — không có tài khoản, nên không có mật khẩu nào để lừa đảo (phishing) tại quán cà phê và không có cơ sở dữ liệu thông tin đăng nhập nào ở bất cứ đâu để xâm phạm. Khoá phiên được thương lượng qua ECDHE trên Curve25519 trực tiếp giữa các thiết bị đã ghép cặp, và mọi khung hình, thao tác phím, đồng bộ clipboard và truyền tệp đều được mã hoá bằng AES-256-GCM. Khi một mạng khắt khe buộc phiên phải đi qua một TURN relay, relay đó chuyển tiếp các khung hình đã mã hoá mà nó không thể đọc — mô hình bảo mật là như nhau dù đường truyền là trực tiếp hay qua relay. Toàn bộ thiết kế nằm trên trang bảo mật.
Mục tiêu không phải là tìm một mạng Wi-Fi đáng tin. Mà là khiến cho việc Wi-Fi có đáng tin hay không trở nên không còn quan trọng.
Một ranh giới thành thật: mã hoá đầu-cuối bảo vệ phiên khi đang truyền, và không gì khác. Nếu chiếc laptop ở quán cà phê bị xâm nhập, hoặc host ở nhà bị xâm nhập, thì thuật toán mã hoá mạnh nhất giữa chúng cũng chẳng thay đổi được gì — kẻ tấn công đang ở bên trong một đầu cuối, đọc chính những gì bạn đọc. Vệ sinh đầu cuối, lịch sử rò rỉ của nhà cung cấp, và phần còn lại của bức tranh gia cố bảo mật là một bài viết khác, và chúng tôi đã viết nó: hướng dẫn bảo mật remote desktop. Bài này chỉ tập trung vào mạng.
Danh sách kiểm tra cho quán cà phê
Sáu mục, theo thứ tự mức độ hiệu quả chúng mang lại.
- Ưu tiên một ứng dụng remote desktop mã hoá đầu-cuối. Nó giải quyết câu hỏi về Wi-Fi công cộng ngay từ thiết kế chứ không phải nhờ kỷ luật — mạng chỉ mang theo bản mã cho dù bạn có làm đúng những mục còn lại trong danh sách này hay không.
- Nếu buộc phải dùng RDP, đừng bao giờ phơi bày cổng 3389. Hãy tiếp cận nó qua một VPN hoặc một đường hầm mã hoá khác thay vì mở cổng (port forward) trên router; các phương án thay thế, gồm cả những ứng dụng chỉ dùng kết nối đi (outbound-only) không cần thay đổi gì trên router, có trong hướng dẫn của chúng tôi về remote desktop không cần mở cổng.
- Để firewall của hệ điều hành coi mạng này là công cộng. Khi macOS hoặc Windows hỏi bạn vừa tham gia loại mạng nào, hồ sơ công cộng (public) là câu trả lời đúng — nó ngăn việc chia sẻ tệp, dò tìm thiết bị, và các dịch vụ đang lắng nghe khác khỏi bị người lạ trên cùng mạng nhìn thấy.
- Luôn cập nhật client. Một client remote desktop phải phân tích dữ liệu phức tạp đến từ một mạng mà bạn đã quyết định không tin tưởng. Các bản vá tồn tại là có lý do; trên một chiếc máy hay di chuyển, tự động cập nhật là thiết lập đúng đắn.
- Xác minh rằng bạn đang ở đúng mạng thật của địa điểm. Hãy hỏi tên mạng chính xác và bỏ qua những cái tên trông na ná — một access point có thể phát đi bất kỳ tên nào mà chủ của nó gõ vào. Bảo laptop của bạn quên mạng đó khi rời đi cũng ngăn nó tự động kết nối vào một bản nhái vào tháng sau.
- Hãy coi chính phiên làm việc là thứ nhạy cảm. Bạn đang điều khiển máy ở nhà hoặc ở văn phòng từ một không gian công cộng: để ý xem ai có thể thấy màn hình của bạn, và khoá host từ xa khi bạn ngắt kết nối để không bỏ lại một màn hình desktop đang mở phía sau.
Vậy còn thêm một lớp VPN thì sao?
Một VPN mã hoá mọi thứ giữa thiết bị của bạn và máy chủ VPN, và trên Wi-Fi không đáng tin thì điều đó thực sự hữu ích — nó che chắn các truy vấn DNS, tiếng ồn nền của ứng dụng, và bất kỳ lưu lượng không mã hoá lạc lối nào khỏi mạng cục bộ. Nếu đằng nào bạn cũng bật VPN ở sân bay, thì không có gì về remote desktop phản đối điều đó cả.
Tuy nhiên, riêng với phiên remote desktop thì logic hẹp hơn, và nó có hai mặt. Một VPN là không cần thiết cho một phiên mã hoá đầu-cuối: lưu lượng vốn đã là bản mã trước khi tới đường hầm, nên VPN chỉ thêm một chặng (và thường là thêm chút độ trễ) mà không bổ sung thêm tính bảo mật nào mà phiên còn thiếu. Và nó không đủ cho một phiên không mã hoá: một VPN thương mại bảo vệ đường tới máy chủ ra (exit server) của VPN, sau đó lưu lượng tiếp tục đi tới host và vẫn phơi bày y như lúc đầu. Ngoại lệ chứng minh cho quy tắc là một đường hầm kết thúc ngay bên trong chính mạng đích — một máy chủ WireGuard trên router ở nhà bạn, một VPN doanh nghiệp vào văn phòng — vốn phủ được toàn bộ đường truyền và là cách tiêu chuẩn để dùng RDP từ xa. Nếu bạn đang cân nhắc giữa một VPN và một ứng dụng remote desktop như là phương thức truy cập, thì đó là một so sánh khác, và nó có bài viết riêng: remote desktop so với VPN.
Khách sạn, sân bay, khuôn viên trường: những điểm quái lạ của mạng làm hỏng kết nối
Bỏ qua vấn đề bảo mật, các mạng công cộng còn có một nét tính cách thứ hai: chúng làm hỏng kết nối theo những cách mà mạng ở nhà không hề có. Ba điểm quái lạ chiếm phần lớn trong đó.
- Captive portal (trang đăng nhập bắt buộc). Cho tới khi bạn mở trình duyệt và chấp nhận điều khoản, mạng sẽ nuốt chửng mọi thứ — một ứng dụng remote desktop sẽ cứ nằm đó thất bại mà không có lý do nào hiện ra. Hãy hoàn tất trang portal trước; và nếu một phiên chạy ổn suốt cả buổi chiều bỗng chết ở giờ thứ ba, hãy nghi ngờ một portal tự xác thực lại theo bộ đếm thời gian.
- Client isolation (cô lập thiết bị). Khách sạn và khuôn viên trường thường chặn lưu lượng giữa các thiết bị bên trong mạng, nên hai thiết bị của chính bạn trong cùng một phòng có thể vô hình với nhau trên mạng LAN. Các ứng dụng P2P chỉ dùng kết nối đi (outbound-only) vẫn kết nối được — cả hai thiết bị đều gọi ra ngoài và gặp nhau qua internet — nhưng đường đi có thể dài hơn cả căn phòng bạn đang ngồi.
- Chặn UDP. Các mạng khách khắt khe đôi khi hầu như chỉ cho phép TCP trên các cổng web. Các giao thức thời gian thực ưa dùng UDP, nên đây là chỗ các ứng dụng khác nhau: một ứng dụng có TCP và phương án dự phòng qua TURN-relay vẫn tiếp tục kết nối, dù phải trả giá bằng độ trễ, trong khi một cấu hình chỉ dùng UDP thì đứng khựng. Cơ chế bên trong — STUN, ICE, hole punching, và cái gì được dùng dự phòng khi nào — nằm trong bài giải thích về NAT traversal, còn chính xác các cổng và giao thức mà một phiên sử dụng nằm trong tài liệu về firewall và NAT.
Câu hỏi thường gặp
Dùng remote desktop trên Wi-Fi khách sạn có an toàn không?
Có, nếu phiên được mã hoá đầu-cuối. Với một ứng dụng remote desktop E2EE hiện đại, mạng của khách sạn chỉ mang theo bản mã (ciphertext), nên cả người vận hành lẫn các khách khác đều không thể khôi phục màn hình, thao tác phím hay tệp của bạn. Các cấu hình cũ mới là trường hợp rủi ro: RDP không có TLS và NLA, hoặc VNC không mã hoá, có thể để lộ nội dung phiên và thông tin đăng nhập ra mạng, và không nên dùng trên Wi-Fi khách sạn nếu không có một đường hầm mã hoá.
Ai đó trên cùng mạng Wi-Fi có thể thấy màn hình từ xa của tôi không?
Không, nếu phiên được mã hoá đầu-cuối. Ai đó trên cùng mạng có thể bắt các gói tin của bạn, nhưng với E2EE thì những gói tin đó là bản mã và khoá chỉ tồn tại trên hai thiết bị của bạn, nên không thể khôi phục nội dung màn hình từ bản bắt gói. Thứ mà một người quan sát cùng mạng vẫn thấy được là metadata — rằng có một kết nối tồn tại, khi nào nó hoạt động, và đại khái nó truyền bao nhiêu dữ liệu.
Tôi có cần VPN để dùng Remio trên Wi-Fi công cộng không?
Không. Các phiên Remio vốn đã được mã hoá đầu-cuối — AES-256-GCM, với khoá được thương lượng qua ECDHE trực tiếp giữa các thiết bị của bạn — nên phiên không phụ thuộc vào việc mạng có đáng tin hay không. VPN vẫn tăng thêm quyền riêng tư cho phần lưu lượng còn lại của bạn, chẳng hạn như các truy vấn DNS và các ứng dụng khác, và chạy Remio qua VPN là hoàn toàn ổn. Đó là một lựa chọn cho phần lưu lượng khác của bạn, không phải một yêu cầu bắt buộc cho phiên.
RDP có an toàn trên Wi-Fi công cộng không?
Với TLS và Network Level Authentication — mặc định của Windows hiện đại — phiên được mã hoá ở tầng truyền tải, nên kẻ nghe lén trên mạng của quán cà phê chỉ thấy bản mã. Nguyên tắc cố hữu là về mức độ phơi bày chứ không phải về địa điểm: đừng bao giờ mở cổng 3389 trực tiếp ra internet; thay vào đó hãy tiếp cận RDP qua VPN hoặc một đường hầm mã hoá khác. Các cấu hình cũ có thể bị hạ cấp xuống bảo mật RDP đời cũ không có TLS nên được xem là không an toàn trên bất kỳ mạng nào không đáng tin.
Người vận hành Wi-Fi vẫn biết được những gì?
Metadata kết nối. Ngay cả với một phiên được mã hoá đầu-cuối hoàn toàn, người vận hành mạng vẫn có thể quan sát thời điểm, khối lượng lưu lượng và các đầu cuối mà bạn trao đổi gói tin — đủ để suy ra rằng một phiên remote desktop đã diễn ra và kéo dài bao lâu. Thứ nó không thể khôi phục là nội dung: không có khung hình màn hình, không có thao tác phím, không có tệp, không có clipboard.
Sợi chỉ xuyên suốt tất cả những điều này: địa điểm không quyết định phiên của bạn có an toàn hay không — mã hoá mới quyết định. Nếu bạn muốn phiên bản không cần đến bất kỳ danh sách kiểm tra nào, hãy cài Remio trên cả hai máy, ghép cặp chúng bằng mã PIN 4 chữ số dùng một lần, và kết nối từ bất kỳ mạng nào mà một ngày đưa đến cho bạn; dù thế nào thì phiên vẫn được mã hoá đầu-cuối. Trang cách hoạt động cho thấy điều gì diễn ra bên dưới.