Domain fronting không phải là VPN: hai tên, một yêu cầu
Hai tên trong một yêu cầu HTTPS không phải là đường hầm. Fronting phụ thuộc vào quy tắc định tuyến của nhà cung cấp; VPN chọn gói tin nào đi. Hãy vẽ chúng riêng.
Hai kỹ thuật này bị xếp cùng một chỗ vì cả hai đều có một bên trung gian và cả hai đều nghe như che giấu. Nhưng chúng làm việc trên các đối tượng khác nhau. Domain fronting nói về việc tên nào xuất hiện ở lớp nào của một yêu cầu HTTPS. VPN nói về việc những gói tin nào đi theo một đường cụ thể tới một peer. Gọi fronting là một loại VPN dẫn đến những thiết kế không thể hoạt động và những buổi đánh giá đặt sai câu hỏi.
Hai tên, hai lớp
Một kết nối TLS có thể mang tên máy chủ trong bắt tay của nó. Khi kết nối đã tồn tại, yêu cầu HTTP xác định thẩm quyền mà nó muốn, thường trong tiêu đề Host. Đó là hai trường được đọc ở hai thời điểm khác nhau bởi hai phần phần mềm khác nhau.
| Layer | What carries the name | Who reads it |
|---|---|---|
| TLS handshake | Server name indication | The TLS terminator in front of the service |
| HTTP request | Authority or Host header | The routing layer that picks a backend |
| Network path | Destination address and port | Routers, and the VPN peer if one is in use |
Domain fronting khai thác sự khác biệt giữa hai lớp đầu để một dịch vụ fronting chấp nhận kết nối rồi định tuyến yêu cầu đi nơi khác. Nó chỉ hoạt động ở nơi dịch vụ đó sẵn lòng định tuyến, và đó là câu hỏi về chính sách của nhà cung cấp chứ không phải mẹo giao thức.
Fronting phụ thuộc vào nhà cung cấp, không phải kỹ thuật
Như một ví dụ giới hạn, Câu hỏi thường gặp về Front Door tài liệu của Azure ghi lại các biện pháp bảo vệ chống domain fronting. Tài liệu mô tả một sự không khớp được phép đối với các tên miền trong cùng một đăng ký và các tuyến đã cấu hình, và phản hồi 421 Misdirected Request khi biện pháp bảo vệ chống không khớp chặn một yêu cầu.
Chính sách duy nhất được ghi lại đó phá bỏ cả hai khẩu hiệu cùng lúc. Không phải mọi cặp tên khác nhau đều hoạt động, và không phải mọi sự không khớp đều bị cấm. Các dịch vụ khác có kiểm tra riêng, yêu cầu triển khai riêng và mã lỗi riêng.
Đây cũng không phải hướng dẫn để vượt qua các hạn chế của một mạng khác. Đọc quy tắc định tuyến của nhà cung cấp để hiểu họ cho phép gì là công việc kiến trúc; coi những quy tắc đó như một công thức vượt rào là hoạt động khác với hậu quả khác. Hãy giữ hai hoạt động đó tách biệt trong tài liệu bạn viết. Chính hoạt động thứ hai khiến một thiết kế bị từ chối trong đánh giá.
VPN thực sự chọn gì
Trong một VPN mạng, định tuyến và chính sách nền tảng chọn lưu lượng bên trong cho một đường hầm tới peer. Tùy cách bố trí, nó có thể bao phủ nhiều ứng dụng hoặc một tập con xác định, và có thể mang các giao thức không có yêu cầu HTTP nào.
Fronting không làm gì trong số đó. Sắp xếp một yêu cầu HTTPS qua dịch vụ fronting không cài đặt tuyến mạng riêng, không mang các ứng dụng UDP tùy ý và không khiến mọi chương trình trên thiết bị dùng dịch vụ. Nếu bạn cần phạm vi đó, bạn cần một proxy hoặc một đường hầm, không phải mẹo đặt tên.
Đó là lý do hai thứ này bị nhầm lẫn trong đánh giá: cả hai đều được mô tả là bên trung gian, và cả hai đều xuất hiện trong tài liệu về truy cập. Giao diện mà mỗi bên cung cấp hoàn toàn khác nhau, và chỉ một trong hai là đường đi của mạng.
Khả năng hiển thị không phải nhị phân
Sự so sánh cũng không chỉ là ẩn so với hiện. Truy vấn DNS, địa chỉ đích, đặc điểm bắt tay, kích thước gói tin và thời gian đều vẫn có thể quan sát được với người ở vị trí nhìn thấy chúng, và điều người quan sát đó học được phụ thuộc vào nơi họ ngồi.
Dữ liệu ứng dụng cũng hiển thị ở các điểm cuối kết thúc nó. Dịch vụ fronting định tuyến yêu cầu của bạn là một trong những điểm cuối đó, và peer VPN là điểm khác. Không cách bố trí nào làm nội dung trở nên mờ đục với bên phải đọc nó để phục vụ bạn.
Vẽ ba ô
Để đánh giá kiến trúc, hãy vẽ điểm cuối TLS, dịch vụ định tuyến HTTP và ứng dụng cuối cùng thành ba ô riêng biệt, rồi vẽ bất kỳ peer VPN nào ở một nơi khác nữa. Nơi chọn đích web và nơi vận chuyển gói tin của mạng riêng không cần là cùng một hệ thống, và thường không phải.
Khi các ô đã tách ra, các câu hỏi trở nên có thể trả lời: nhà cung cấp này chấp nhận những tên nào, giao thức nào cần vận chuyển, và bên nào có thể thấy gì. Một sơ đồ hợp nhất chúng tạo ra thiết kế không ai có thể triển khai và một buổi đánh giá tranh cãi về từ vựng.