Tiêu chuẩn mạng ảo hóa SSTP tên đầy đủ là “Secure socket tunneling protocol” hay giao thức đường hầm bảo mật là một giao thức được sử dụng phổ biến trong VPN với việc hình thành đường hầm VPN gửi lưu lượng PPP hoặc L2TP thông qua kênh SSL 3.0. Phiên bản đầu tiên dưới dạng tiêu chuẩn đã được biết đến là bản thảo Internet do Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) công bố vào ngày 30/12/1998. Sau đó SSTP được Microsoft phát triển và xuất hiện từ Windows Vista Service Package 1 (có sẵn trong môi trường Windows) và tiếp tục được Microsoft phát triển đến phiên bản 20.0 vào năm 2021. Bên cạnh đó SSTP được triển khai với RouterOS, Linux và trong SEIL (kể từ phiên bản firmware 3.50) nhưng không phổ biến bằng triển khai trên Microsoft. Microsoft đã cho xây dựng, cập nhật hơn 50 phiên bản của SSTP như một phần của Windows, xuyên suốt các phiên bản Windows 7, 8 và 10. Có thể nói sự thành công và phổ biến trong việc sử dụng SSTP do sự tác động rất lớn từ việc quan tâm, cập nhật, nâng cấp tiêu chuẩn của Microsoft. SSTP cũng từ đó mà trở thành một tiêu chuẩn hay giao thức đường hầm mạng ảo ổn định nhất đối với người dùng hệ điều hành Windows. SSTP cũng được coi là một trong nhưng tiêu chuẩn mạng ảo hóa an toàn và bảo mật cao trong nhóm các tiêu chuẩn phổ biến hàng đầu.
Tuy nhiên sau vụ tấn công mạng với quy mô toàn cầu vào ngày 12/5/2017 mà nghiệm trọng nhất là việc rò rỉ các tài liệu mật mà theo đó Cơ quan An ninh quốc gia Mỹ (NSA) lợi dụng các lỗ hổng phần mềm cho mục đích do thám thay vì cảnh báo cho các công ty công nghệ. Trong đó thì có việc một loại mã độc là WannaCry tự động phát tán từ lỗi phần mềm trong hệ điều hành Windows khiến nhiều người nghi ngại khả năng an toàn của cả SSTP khi khả năng NSA cũng nắm rõ các lỗ hổng của tiêu chuẩn này.
Tổng quan tiêu chuẩn SSTP
SSTP là cơ chế đóng gói lưu lượng truy cập Giao thức điểm đến điểm (Point –to-Point (PPP)) qua giao thức HTTPS, như được chỉ định trong RFC 1945, RFC 2616 và RFC 2818. Giao thức này cho phép người dùng truy cập mạng riêng bằng cách sử dụng HTTPS. Việc sử dụng HTTPS cho phép truyền qua hầu hết các tường lửa và proxy web (web trung gian giữa người dùng và máy chủ chứa tài nguyên).
Nhiều dịch vụ VPN cung cấp cách thức cho người dùng di động truy cập từ xa vào mạng riêng (công ty, cơ quan, tổ chức) bằng cách sử dụng Giao thức đường hầm điểm đến điểm (Point-to-Point Tunneling Protocol (PPTP)) và Giao thức đường hầm lớp hai/bảo mật Giao thức Internet (L2TP/IPsec). Tuy nhiên, với sự phổ biến của tường lửa và proxy web, nhiều nhà cung cấp dịch vụ, chẳng hạn như trung tâm thương mại, khu nghỉ dưỡng, khách sạn, không cho phép truy cập mạng ảo với lưu lượng PPTP và L2TP / IPsec. Điều này dẫn đến việc người dùng không nhận được kết nối phổ biến với mạng riêng của họ. Ví dụ, việc chặn cổng đóng gói định tuyến chung (generic routing encapsulation (GRE)) bởi nhiều nhà cung cấp dịch vụ Internet (ISP) là một vấn đề phổ biến khi sử dụng PPTP.
Giao thức này cung cấp một đường hầm được mã hóa (hay SSTP) bằng giao thức SSL/TLS. Khi một máy của người dùng thiết lập kết nối VPN dựa trên SSTP, trước tiên nó sẽ thiết lập một kết nối TCP tới máy chủ SSTP qua cổng TCP 443. Quá trình bắt tay SSL/TLS xảy ra qua kết nối TCP này.
Sau khi thương lượng thành công SSL/TLS, người dùng sẽ gửi một yêu cầu HTTP với mã hóa độ dài nội dung và độ dài nội dung lớn trên kết nối được bảo vệ SSL. Máy chủ gửi lại phản hồi HTTP với trạng thái HTTP_STATUS_OK (200). Kết nối HTTPS hiện đã được thiết lập và máy khách có thể gửi và nhận Gói điều khiển SSTP và Gói dữ liệu SSTP trên kết nối này. Thiết lập kết nối HTTPS khi có proxy web được chỉ định trong tiêu chuẩn Internet (Tunneling TCP based protocols through Web proxy servers).
SSTP cung cấp các tính năng sau:
- Cho phép phân định khung PPP từ luồng dữ liệu liên tục được gửi bằng cách sử dụng HTTPS. Thông tin cụ thể về PPP xem tại RFC 1661.
- Thương lượng các tham số giữa hai thực thể.
- Định dạng tin nhắn có thể mở rộng để hỗ trợ các thông số mới trong tương lai.
- Các hoạt động bảo mật để ngăn kẻ tấn công trung gian chuyển tiếp các khung PPP một cách không thích hợp qua SSTP. SSTP sử dụng tài liệu khóa được tạo ra trong quá trình xác thực PPP để ràng buộc tiền điện tử.
Gói điều khiển SSTP chứa các thông báo để thương lượng các tham số và để đảm bảo rằng không có kẻ trung gian không đáng tin cậy. Gói dữ liệu SSTP chứa các khung PPP làm trọng tải.
Trong VPN dựa trên SSTP, việc trao đổi tại lớp giao thức xảy ra theo thứ tự sau:
- Kết nối TCP được thiết lập với máy chủ SSTP qua cổng TCP 443.
- Quá trình bắt tay SSL/TLS đã hoàn tất.
- Phản hồi yêu cầu HTTPS đã hoàn tất.
- Đàm phán SSTP bắt đầu.
- Đàm phán PPP được bắt đầu và xác thực PPP được hoàn thành hoặc bị bỏ qua.
- Thương lượng SSTP đã hoàn tất.
- Đàm phán PPP đã hoàn tất.
- Kết nối chuyển sang trạng thái sẵn sàng để vận chuyển bất kỳ lớp mạng nào (ví dụ: gói IP).
Các hoạt động đóng gói (tạo gói thông tin để xác thực thông tin) sau đây xảy ra trên máy của người dùng:
- Các gói ứng dụng được đóng gói trên bất kỳ giao thức truyền tải nào (ví dụ: TCP và UDP).
- Các gói ở lớp truyền tải được đóng gói qua một giao thức mạng (ví dụ: IP).
- Các gói của lớp mạng được đóng gói trên một lớp liên kết dữ liệu PPP.
- Các gói PPP được đóng gói qua SSTP.
- Các gói SSTP được đóng gói qua SSL/TLS.
- Bản ghi SSL/TLS được đóng gói qua TCP.
- Các gói TCP được đóng gói qua IP.
- Các gói IP được gửi qua bất kỳ lớp liên kết dữ liệu nào (chẳng hạn như Ethernet hoặc PPP).
Ở phía máy chủ, các hoạt động để loại bỏ đóng gói xảy ra theo thứ tự ngược lại.
Ưu nhược điểm của SSTP
Thông qua phần giới thiệu tổng quan, cũng như nhìn nhận chung nhiều tiêu chuẩn mạng ảo hóa khác, SSTP được biết đến với những ưu điểm:
- Vượt qua hầu hết các tường lửa (với việc triển khai thông qua HTTPS).
- Mức bảo mật cao (tuy nhiên vẫn phụ thuộc vào độ phức tâạp thuật toán bảo mật).
- Sử dụng một cách dễ dàng, không cần cài đặt bổ sung nhiều với hệ điều hành Window.
- Hỗ trợ tuyệt vời từ Microsoft (tiêu chuẩn vẫn luôn được cam kết bảo trợ, cập nhật bởi nhà cung cấp).
Nhưng bên cạnh đó SSTP cũng có những nhược điểm:
- Thiếu sự hỗ trợ với các hệ điều hành khác, đặc biệt với các đội triển khai phần hạ tầng, phần cứng thì Window thường không phải là sự lựa chọn tối ưu.
- Thường là không phải là phương thức triển khai dự phòng (do SSTP thuộc sở hữu bởi Microsoft và có ít tính minh bạch hơn các phương thức khác).
Một số tình huống tấn công phổ biến
Trường hợp 1: Máy của người dùng trái phép kết nối với máy chủ SSTP
Trong trường hợp này, kẻ tấn công trái phép đóng giả là một máy khách SSTP hợp lệ và cố gắng kết nối với một máy chủ SSTP hợp lệ. Kết nối HTTPS đi qua do máy chủ không xác thực máy của người dùng ở lớp SSL/TLS. Đảm bảo máy chủ SSTP chấm dứt kết nối ở lớp PPP sau khi xác định rằng kết nối từ máy này không có thông tin xác thực người dùng thích hợp.
Khi trường hợp này xảy ra theo quy trình dưới đây:

Hình 1: Máy của người dùng trái phép kết nối với máy chủ SSTP
Trường hợp 2: Máy của người dùng xác thực sử dụng SSTP kết nối vào máy chủ SSTP trái phép
Trường hợp 2: Máy của người dùng xác thực sử dụng SSTP kết nối vào máy chủ SSTP trái phép
Trong trường hợp này, một máy của người dùng SSTP hợp lệ bị kẻ tấn công chuyển hướng đến máy chủ SSTP trái phép (ví dụ: do nhiễm độc DNS).

Hình 2: Máy của người dùng truy cập vào máy chủ giả mạo
Trong trường hợp này, kết nối bị máy của người dùng chấm dứt ở lớp SSL/TLS khi kiểm tra xác thực chứng chỉ không thành công. Máy của người dùng sử dụng SSTP nên xác thực rằng tên chung và tên chủ đề trong chứng chỉ máy chủ khớp với tên máy chủ mà máy của người dùng cần thiết lập theo SSTP đã thiết lập kết nối. Ngoài ra, máy của người dùng khi sử dụng SSTP được khuyến nghị nên xác thực rằng chứng chỉ máy chủ có chứa cách sử dụng khóa mở rộng như "id-kp-serverAuth" hoặc "anyExtendedKeyUsage" (EKU).
Trường hợp thứ 3: Kẻ giả mạo đứng giữa
Trong trường hợp này, kẻ tấn công đóng vai một bên trung gian ở giữa (man in the middle (MITM)). Ví dụ: MITM có thể đang sử dụng điểm truy cập không dây giả mạo trong môi trường doanh nghiệp hỗ trợ không dây.
Luồng dữ liệu trong trường hợp bị tấn công (không có giải pháp ràng buộc tiền điện tử SSTP) diễn ra như sau:
- Đầu tiên: MITM thiết lập kết nối HTTPS với máy chủ SSTP.
- Bước 2: Bằng cách sử dụng một số kỹ thuật (chẳng hạn như điểm truy cập giả mạo (Access Point (AP)) có tên tương tự với mạng doanh nghiệp), kẻ tấn công MITM có được một người dùng cá nhân cố truy cập thực để bắt đầu xác thực EAP (Extensible Authentication Protocol) (có thể là bất kỳ phương thức EAP nào) với máy chủ SSTP được ủy quyền. Người dùng không thể xác định rằng kênh HTTPS đã được thiết lập cho máy trung gian; máy của người dùng cố gắng xác thực với một máy chủ được ủy quyền đã biết bằng cách sử dụng xác thực EAP, như thường lệ.
- Bước 3: MITM chuyển (hoặc định tuyến lại) các gói xác thực EAP-TLS của người dùng được nhận qua mạng không dây tới đường hầm PPP qua SSTP (qua SSL/TLS) mà nó đã thiết lập với máy chủ SSTP. Nó làm điều tương tự ngược lại đối với các phản hồi cho máy của người dùng.
- Bước 4: Máy của người dùng và máy chủ hoàn tất xác thực EAP thành công. Máy MITM chỉ đơn giản là chuyển tiếp các gói qua lại giữa cả hai đường hầm SSL/TLS.
- Bước cuối: MITM bỏ qua việc truy cập đang diễn ra trên máy người dùng và tiếp tục sử dụng kênh SSTP đã xác thực được thiết lập với máy chủ để truy cập vào mạng riêng kia mà không cần biết các đặc quyền của người dùng và thực hiện các hành vi trái phép.
Cuộc tấn công trước đó có thể xảy ra đối với bất kỳ giao thức xác thực PPP nào có thể được chuyển tiếp trên một phương tiện truyền tải khác. Ví dụ, EAP có thể được chuyển tiếp trên SSTP cũng như không dây. Trường hợp tấn công này hiện nay khá phổ biến với việc trao đổi, truy cập thông tin tiền điện tử hiện nay. Để giảm thiểu cuộc tấn công này, máy chủ SSTP mong đợi thuộc tính liên kết tiền điện tử từ máy của người dùng SSTP có mặt trong thông báo cuộc gọi được kết nối. Thuộc tính này được tạo bởi máy của người dùng bằng cách sử dụng các khóa được tạo trên máy của riêng người dùng. Bằng cách sử dụng các khóa giai đoạn xác thực bên trong (hoặc PPP) và bằng cách liên kết xác thực bên trong với giai đoạn xác thực bên ngoài (hoặc có sử dụng SSL/TLS), kỹ thuật này đảm bảo rằng máy của người dùng SSTP và máy chủ SSTP tham gia vào quá trình xác thực bên trong và kết thúc tại các điểm cuối dự kiến. Bên cạnh đó, tiêu chuẩn bảo vệ cho việc xác thực mở rộng (Protected Extensible Authentication Protocol (PEAP)) cũng có thể được sử dụng để bảo vệ cho kết nối này.

Hình 3: Tấn công kiểu trung gian bị chặn trong kết nối SSTP
Trong kiểu tấn công như thế này, rất khó để máy chủ SSTP xác thực chính xác cho máy của người dùng nếu không có thuộc tính ràng buộc bổ sung bởi truy cập của người dùng từ máy cá nhân vào MITM là tự nguyện và xác thực từ máy chủ SSTP đến MITM cũng đầy đủ các căn cứ kiểm tra.
Kết luận
Trong bài viết này, tiêu chuẩn mạng ảo hóa SSTP được giới thiệu đến bạn đọc một cách cơ bản từ tổng quan, ưu nhược điểm đến tình huống tấn công thực tế. Đây là một tiêu chuẩn được sử dụng phổ biến với tập người sử dụng rộng khắp, tính bảo mật cao nhưng tính minh bạch cho sự riêng tư của người sử dụng chưa được xác thực. Bên cạnh đó vì sự tiện lợi tích hợp sẵn trong Windows mà SSTP cũng rất tiện dụng.
Thông qua việc giới thiệu giao thức này, bài đọc đưa ra các cơ sở tri thức từ tổng quan, lợi ích đến những chú ý cơ bản trong triển khai SSTP cho việc thiết lập mạng ảo. Việc thiết lập mạng ảo sử dụng SSTP đôi khi không được người dùng Window biết đến dù được tích hợp sẵn.
Trần Quốc Tuấn
Tài liệu tham khảo
- Copyright © 2021 Microsoft Corporation, [MS-SSTP] - v20210625, Secure Socket Tunneling Protocol (SSTP), Release: June 25, 2021.