Về một giao thức VPN hoạt động tại lớp 2

15:00 | 19/02/2024 | GP ATM
SoftEther là phần mềm xây dựng mạng riêng ảo (Virtual Private Network - VPN ) cho phép hoạt động ở lớp 2 trong mô hình OSI (lớp liên kết dữ liệu). SoftEther tích hợp nhiều giao thức VPN mà có thể hoạt động ở các lớp khác nhau, trong đó có giao thức SE-VPN hoạt động ở lớp 2. Bài viết này giới thiệu về giải pháp máy chủ VPN tích hợp SoftEther, cũng như trình bày về cách xử lý, đóng gói gói tin của giao thức SE-VPN được sử dụng trong máy chủ SoftEther.

GIỚI THIỆU

Vì SoftEther [1] với đặc trưng là ảo hóa các thành phần ở lớp 2, do đó các card mạng LAN và trạm trung chuyển hub được ảo hóa bằng phần mềm và được gọi lần lượt là card LAN ảo và hub ảo. SoftEther là một phần mềm truyền thông kiểu máy khách/máy chủ. Khi xây dựng VPN bằng SoftEther, một hub ảo được cài đặt trên một máy chủ và nhiều máy khách có card mạng LAN ảo được cài đặt đồng thời kết nối với hub ảo đó. Sau đó, các máy khách có thể truyền thông tự do với nhau ở lớp liên kết dữ liệu.

Hầu hết các phần mềm máy chủ VPN thông thường được triển khai sử dụng một phần chức năng mạng của hệ điều hành. Trong Hình 1, các máy chủ L2TP và OpenVPN xử lý giao thức VPN ở lớp 3. Các máy chủ này gọi chức năng định tuyến IP riêng của hệ điều hành để trao đổi các gói IP với một giao thức VPN khác hoặc mạng LAN vật lý bên ngoài. Khi người quản trị xây dựng VPN server hỗ trợ nhiều giao thức VPN, các chức năng VPN thường phải phụ thuộc vào chức năng định tuyến và chuyển mạch của hệ điều hành. Do đó, nếu có lỗi trong cài đặt chức năng định tuyến hoặc chuyển mạch trong hệ điều hành, thì các chương trình ứng dụng khác cũng sẽ bị ảnh hưởng và không thể kết nối.

Hình 1. Nhược điểm của máy chủ VPN thông thường

SoftEther VPN Server là một phần mềm máy chủ VPN tích hợp, điều này có nghĩa là quản trị viên có thể sử dụng nhiều giao thức VPN khác nhau cùng một lúc mà không cần phải có hiểu biết về sự khác biệt của chúng và các giao thức này hoạt động như một phiên bản duy nhất với mức độ phụ thuộc ít nhất vào các hệ điều hành và các thư viện khác. Hình 2 minh họa giải pháp máy chủ VPN tích hợp, trong đó các module xử lý các giao thức VPN khác nhau được thực hiện trong một tiến trình duy nhất. Quản trị viên chỉ cần cài đặt một phần mềm máy chủ VPN tích hợp để hỗ trợ các giao thức VPN khác nhau và nhận các kết nối VPN từ nhiều phần mềm máy khách VPN. Chức năng chuyển mạch cũng được cài đặt trong tiến trình này, nó có nhiệm vụ thực hiện trao đổi thông báo giữa nhiều máy chủ VPN ở lớp 2.

Ngoài ra, để trao đổi thông tin giữa máy chủ VPN ở lớp 3 và chức năng chuyển mạch, một bộ chuyển đổi (Adapter) sẽ chuyển đổi gói tin giữa lớp 3 và lớp 2. Quản trị viên không cần cấu hình các chức năng định tuyến và chuyển mạch trên chính hệ điều hành mà trình chủ VPN được cài đặt.

Hình 2. Giải pháp máy chủ VPN tích hợp

MODULE CHÍNH TRONG MÁY CHỦ SOFTETHER VPN

Hình 3. Các thành phần trong máy chủ SoftEther VPN

Hình 3 thể hiện các module trong phần mềm máy chủ SoftEther VPN. Các module chính bao gồm:

1. Các module xử lý giao thức VPN, máy chủ VPN hỗ trợ các giao thức VPN khác nhau gồm: L2TPv3, SSTP, OpenVPN, EtherIP, SE-VPN.

2. Module chia sẻ giữa các giao thức VPN gồm: SSL/TLS, HTTP, Point-to-Point (PPP), IPSec. Trong thành phần này có bộ điều hợp (Adapter) để thực hiện truyền thông giữa lớp 2 và lớp 3.

3. Thành phần xử lý chính gồm: Thành phần cài đặt trung chuyển ảo (Virtual hub), thành phần xác thực (User authentication), điều khiển truy cập (Access control) và ghi nhật ký (Logging).

4. Ngoài ra, SoftEther còn có một số thành phần hỗ trợ cho việc cấu hình, giám sát máy chủ VPN (User interface) và thành phần tương tác với các nền hệ điều hành khác nhau (Platform astraction).

GIAO THỨC BẢO MẬT DỮ LIỆU TRUYỀN THÔNG SE-VPP

SE-VPN được đánh giá là một trong những giao thức VPN có hiệu suất thực hiện khá tốt [4], ngoài ra nó là một giao thức VPN hoạt động ở lớp 2, dữ liệu VPN được đóng gói theo định dạng Ethernet Frames (IEEE802.3).

Giải pháp mã hóa gói tin VPN trong chế độ TCP

Với SE-VPN, các gói tin truyền qua mạng vật lý thực để giao tiếp giữa máy chủ SoftEther VPN và máy tính nguồn kết nối VPN (phiên VPN) được đóng gói dưới dạng gói TCP/IP và được tạo bởi người gửi. Các gói TCP/IP sẽ được đóng gói và mở đóng gói khi thực hiện gửi và nhận. Tất cả dữ liệu truyền thông TCP/IP được mã hóa bởi lớp mã hóa (SSL/TLS).

SE-VPN sử dụng giao thức SSL/TLS [3] để thiết lập một kênh VPN. Giao thức TLS sử dụng cổng 443 của giao thức TCP/IP làm cổng đích. Mặc định, cổng này thường được các thiết bị Firewall cấu hình cho phép đi qua. Định dạng đóng gói gói tin VPN cho kênh mã hóa TCP như Hình 4. Phần TLS Header và dữ liệu (Data) bảo mật được đóng gói trong định dạng TLS Record như Hình 5.

Hình 4. Định dạng gói tin VPN trong chế độ TCP

Hình 5. Định dạng bảo mật dữ liệu theo TLS Record

Cơ chế mã hóa gói tin VPN trong chế độ UDP

Kênh UDPAcc (UDP Acceleration) [2] là một đường hầm UDP có mã hóa được sử dụng để tăng tốc truyền dữ liệu. Thuật toán mã hóa mặc định của Hình 4. Định dạng gói tin VPN trong chế độ TCP Hình 3. Các thành phần trong máy chủ SoftEther VPN kênh UDPAcc là Chacha20-Poly1305 và khóa mã hóa cho kênh này được trao đổi dựa trên kênh TCP bảo mật trước đó. Cấu trúc gói của kênh UDPAcc được hiển thị như Hình 6. Thành phần SE Header, dữ liệu và xác thực (MAC) như Hình 7. Trong đó có các giá trị như sau:

Hình 6. Cấu trúc gói của kênh UDPAcc

Hình 7. Cấu trúc gói của kênh UDPAcc

- IV: là vectơ khởi tạo của thuật toán mã hóa, có độ dài là 12 byte do sử dụng chế độ mã GCM.

- Cookie: Cookie được tạo ra và gắn kết với phiên kết nối và sử dụng để xác định rằng gói tin UDP nhất định thuộc về cùng một phiên kết nối UDP.

- SendTick: Đây là một trường dữ liệu được sử dụng để đồng bộ hóa dữ liệu giữa hai bên trong quá trình UDPAcc. Trong quá trình gửi dữ liệu UDP, trường sendtick được gắn kèm với gói tin để xác định thời điểm gửi. Trường này giúp người nhận phát hiện và xử lý các gói tin theo thứ tự chính xác và đồng bộ với thời gian gửi.

- RecvTick: Đây là một trường dữ liệu được sử dụng để đồng bộ dữ liệu giữa hai bên trong quá trình UDPAcc. Trong quá trình nhận dữ liệu UDP, trường recvtick được gắn kèm với gói tin để xác định thời điểm nhận của gói tin. Trường này giúp người gửi biết được thời gian nhận của gói tin và điều chỉnh quá trình gửi dữ liệu để đảm bảo sự đồng bộ giữa người gửi và người nhận.

- Data Length: Độ dài của dữ liệu.

- Flag: Cờ chỉ dữ liệu có được nén hay không, mặc định là không nén.

- Data: Một khung Ethernet được nhận bởi bộ điều hợp mạng ảo VPN.

- MAC: Dữ liệu xác thực của gói tin, có độ dài 16 byte chính là thành phần TAG của chế độ mã GCM.

KẾT LUẬN

Các giao thức VPN thông thường hoạt động ở trong lớp 3 của chồng giao thức IP như OpenVPN, IPSec,… tuy nhiên giao thức SE-VPN lại được xử lý ở lớp 2 của chồng giao thức cho phép xử lý các gói tin VPN ở mức Frame. Đặc điểm này giúp giao thức này tạo ra các kênh VPN mà không phụ thuộc vào giao thức lớp 3.

Hiện nay, bộ phần mềm SoftEther VPN đã được sử dụng tại nhiều cơ quan Đảng và Nhà nước, việc nghiên cứu xây dựng sản phẩm bảo mật luồng IP dựa trên giao thức SE-VPN và các công nghệ lõi mới của phần mềm SoftEther là cần thiết. Bộ phần mềm VPN mới này giúp công tác xây dựng và triển khai các mô hình VPN một cách mềm dẻo, khả năng quản lý và cấu hình một cách thuận tiện, băng thông mã hóa được cải thiện.

TÀI LIỆU THAM KHẢO

[1]. https://www.softether.org/3-spec,[Online]: Accessed on 18 May, 2022.

[2]. Yunxiao Sun, “On Man-in-the-Middle Attack Risks of the VPN Gate Relay System”, Security and Communication Networks, Volume 2021, https://doi. org/10.1155/2021/9091675.

[3]. IETF, “The Transport Layer Security (TLS) Protocol Version 1.3”, RFC 8446. [Online]: Accessed on 18 May. 2022, https://datatracker.ietf.org/doc/html/ rfc8446.

[4]. Choon Hoe Chua, Sok Choo Ng, “Open-Source VPN Software: Performance Comparison for Remote Access”, Proceedings of the 5th International Conference on Information Science and Systems, 2022

TS. Phạm Văn Lực, Phạm Đức Hùng, Nguyễn Đình Đại (Viện Khoa học - Công nghệ mật mã)

Tin cùng chuyên mục

Tin mới