ESP – "Lớp giáp" bảo vệ dữ liệu của IPsec VPN
Nếu ví IKE là người xây dựng đường hầm VPN thì ESP (Encapsulating Security Payload) chính là lớp áo giáp bảo vệ mọi dữ liệu chạy bên trong đường hầm đó.
Thực tế, khi nói đến khả năng bảo mật của IPsec, phần lớn đều đến từ ESP. Chính giao thức này đảm nhiệm việc mã hóa dữ liệu, xác thực nguồn gốc, kiểm tra tính toàn vẹn và ngăn chặn các cuộc tấn công Replay. Nói cách khác, dù dữ liệu đi qua Internet công cộng, kẻ tấn công cũng gần như không thể đọc, chỉnh sửa hay phát lại các gói tin.
Được định nghĩa trong RFC 4303, ESP cung cấp bốn cơ chế bảo mật cốt lõi:
ESP hoạt động như thế nào?
Hãy tưởng tượng một máy tính ở chi nhánh gửi dữ liệu về Data Center.
Ban đầu, gói tin IP hoàn toàn bình thường. Khi đi đến VPN Gateway, ESP sẽ bắt đầu "gia cố" gói tin theo nhiều lớp.
Đầu tiên, ESP mã hóa dữ liệu cần bảo vệ. Sau đó, nó gắn thêm Sequence Number để chống Replay Attack và bổ sung Authentication Tag để đầu bên kia kiểm tra xem dữ liệu có bị chỉnh sửa trên đường truyền hay không.
Nếu sử dụng Tunnel Mode (đây cũng là chế độ mặc định của hầu hết IPsec VPN), ESP sẽ tiến thêm một bước: mã hóa toàn bộ gói IP gốc, bao gồm cả địa chỉ IP nguồn và đích. Cuối cùng, VPN Gateway tạo một IP Header hoàn toàn mới để vận chuyển gói tin qua Internet.
Kết quả là người ngoài chỉ nhìn thấy hai địa chỉ Public IP của hai VPN Gateway. Toàn bộ địa chỉ IP nội bộ và dữ liệu thật đều được "giấu" bên trong đường hầm mã hóa.
Đó cũng là lý do Site-to-Site VPN được ví như xây dựng một đường hầm kín xuyên qua Internet.
ESP và NAT – Vì sao cần NAT Traversal?
ESP sử dụng IP Protocol 50 do IANA cấp phát.
Điểm đặc biệt là ESP không sử dụng TCP hay UDP, nên cũng không có Port Number giống như HTTP (80), HTTPS (443) hay SSH (22).
Điều này tạo ra một vấn đề rất thực tế.
Hầu hết doanh nghiệp đều triển khai router hoặc firewall thực hiện NAT/PAT để chia sẻ địa chỉ IP Public. Trong khi đó, PAT chỉ làm việc với các giao thức có Port Number. Vì ESP không có cổng, thiết bị NAT sẽ không biết phải xử lý phiên kết nối như thế nào.
Đó là lý do NAT Traversal (NAT-T) ra đời.
Khi hai VPN Gateway phát hiện trên đường truyền có NAT, chúng sẽ tự động chuyển sang chế độ NAT-T.
Lúc này:
Nhờ vậy, firewall hoặc router NAT chỉ cần xử lý UDP như bình thường mà không cần hiểu ESP đang chạy bên trong.
Đây cũng là lý do khi troubleshooting VPN, nếu thấy lưu lượng UDP 4500, gần như có thể kết luận rằng NAT-T đang hoạt động.
Hai chế độ đóng gói của ESP
ESP hỗ trợ hai chế độ hoạt động, nhưng mức độ bảo vệ hoàn toàn khác nhau.
Transport Mode
Transport Mode chỉ mã hóa Payload, còn IP Header gốc vẫn được giữ nguyên.
Điều này giúp giảm overhead và tăng hiệu năng, nhưng địa chỉ IP nguồn và đích vẫn lộ ra ngoài. Vì vậy, chế độ này chủ yếu được dùng trong các kết nối Host-to-Host.
Tunnel Mode
Đây là chế độ được sử dụng gần như mặc định trong mọi hệ thống Site-to-Site VPN.
Khác với Transport Mode, Tunnel Mode mã hóa toàn bộ gói IP ban đầu, bao gồm:
Sau đó, VPN Gateway tạo một IP Header mới để đưa gói tin ra Internet.
Nhờ đó:
Có thể nói, Tunnel Mode không chỉ mã hóa dữ liệu mà còn "ẩn" luôn cả mạng nội bộ phía sau VPN Gateway.
Tổng kết
Có một cách rất dễ để ghi nhớ vai trò của các thành phần trong IPsec:
Ba thành phần này phối hợp với nhau tạo nên một đường hầm VPN an toàn, nơi dữ liệu không chỉ được mã hóa mà còn được xác thực, chống giả mạo và che giấu hoàn toàn khỏi Internet. Đó cũng là lý do IPsec vẫn là chuẩn VPN được tin cậy nhất trong các hệ thống doanh nghiệp, Data Center và SD-WAN, dù đã xuất hiện hơn hai thập kỷ.
Câu hỏi ôn tập
Khi ESP hoạt động ở Tunnel Mode, ESP Header được chèn vào vị trí nào trong gói IP?
A. Trước IP Header mới và sau IP Header gốc.
✅ B. Sau IP Header mới và trước gói IP gốc (Original IP Packet) đã được đóng gói.
C. Sau IP Header gốc và trước TCP/UDP Header.
D. Sau gói IP gốc.
Nếu ví IKE là người xây dựng đường hầm VPN thì ESP (Encapsulating Security Payload) chính là lớp áo giáp bảo vệ mọi dữ liệu chạy bên trong đường hầm đó.
Thực tế, khi nói đến khả năng bảo mật của IPsec, phần lớn đều đến từ ESP. Chính giao thức này đảm nhiệm việc mã hóa dữ liệu, xác thực nguồn gốc, kiểm tra tính toàn vẹn và ngăn chặn các cuộc tấn công Replay. Nói cách khác, dù dữ liệu đi qua Internet công cộng, kẻ tấn công cũng gần như không thể đọc, chỉnh sửa hay phát lại các gói tin.
Được định nghĩa trong RFC 4303, ESP cung cấp bốn cơ chế bảo mật cốt lõi:
- Confidentiality: Mã hóa dữ liệu để chống nghe lén.
- Integrity: Đảm bảo dữ liệu không bị thay đổi trên đường truyền.
- Authentication: Xác minh đúng thiết bị gửi dữ liệu.
- Anti-Replay: Ngăn chặn việc phát lại các gói tin cũ nhằm đánh lừa hệ thống.
ESP hoạt động như thế nào?
Hãy tưởng tượng một máy tính ở chi nhánh gửi dữ liệu về Data Center.
Ban đầu, gói tin IP hoàn toàn bình thường. Khi đi đến VPN Gateway, ESP sẽ bắt đầu "gia cố" gói tin theo nhiều lớp.
Đầu tiên, ESP mã hóa dữ liệu cần bảo vệ. Sau đó, nó gắn thêm Sequence Number để chống Replay Attack và bổ sung Authentication Tag để đầu bên kia kiểm tra xem dữ liệu có bị chỉnh sửa trên đường truyền hay không.
Nếu sử dụng Tunnel Mode (đây cũng là chế độ mặc định của hầu hết IPsec VPN), ESP sẽ tiến thêm một bước: mã hóa toàn bộ gói IP gốc, bao gồm cả địa chỉ IP nguồn và đích. Cuối cùng, VPN Gateway tạo một IP Header hoàn toàn mới để vận chuyển gói tin qua Internet.
Kết quả là người ngoài chỉ nhìn thấy hai địa chỉ Public IP của hai VPN Gateway. Toàn bộ địa chỉ IP nội bộ và dữ liệu thật đều được "giấu" bên trong đường hầm mã hóa.
Đó cũng là lý do Site-to-Site VPN được ví như xây dựng một đường hầm kín xuyên qua Internet.
ESP và NAT – Vì sao cần NAT Traversal?
ESP sử dụng IP Protocol 50 do IANA cấp phát.
Điểm đặc biệt là ESP không sử dụng TCP hay UDP, nên cũng không có Port Number giống như HTTP (80), HTTPS (443) hay SSH (22).
Điều này tạo ra một vấn đề rất thực tế.
Hầu hết doanh nghiệp đều triển khai router hoặc firewall thực hiện NAT/PAT để chia sẻ địa chỉ IP Public. Trong khi đó, PAT chỉ làm việc với các giao thức có Port Number. Vì ESP không có cổng, thiết bị NAT sẽ không biết phải xử lý phiên kết nối như thế nào.
Đó là lý do NAT Traversal (NAT-T) ra đời.
Khi hai VPN Gateway phát hiện trên đường truyền có NAT, chúng sẽ tự động chuyển sang chế độ NAT-T.
Lúc này:
- Phiên thương lượng IKE chuyển từ UDP 500 sang UDP 4500.
- Toàn bộ lưu lượng ESP cũng được đóng gói bên trong UDP 4500.
Nhờ vậy, firewall hoặc router NAT chỉ cần xử lý UDP như bình thường mà không cần hiểu ESP đang chạy bên trong.
Đây cũng là lý do khi troubleshooting VPN, nếu thấy lưu lượng UDP 4500, gần như có thể kết luận rằng NAT-T đang hoạt động.
Hai chế độ đóng gói của ESP
ESP hỗ trợ hai chế độ hoạt động, nhưng mức độ bảo vệ hoàn toàn khác nhau.
Transport Mode
Transport Mode chỉ mã hóa Payload, còn IP Header gốc vẫn được giữ nguyên.
Điều này giúp giảm overhead và tăng hiệu năng, nhưng địa chỉ IP nguồn và đích vẫn lộ ra ngoài. Vì vậy, chế độ này chủ yếu được dùng trong các kết nối Host-to-Host.
Tunnel Mode
Đây là chế độ được sử dụng gần như mặc định trong mọi hệ thống Site-to-Site VPN.
Khác với Transport Mode, Tunnel Mode mã hóa toàn bộ gói IP ban đầu, bao gồm:
- Original IP Header.
- Payload.
Sau đó, VPN Gateway tạo một IP Header mới để đưa gói tin ra Internet.
Nhờ đó:
- Địa chỉ IP nội bộ hoàn toàn bị che giấu.
- Mức độ bảo mật cao hơn.
- Phù hợp với các kết nối Gateway-to-Gateway, SD-WAN và kết nối giữa các Data Center.
Có thể nói, Tunnel Mode không chỉ mã hóa dữ liệu mà còn "ẩn" luôn cả mạng nội bộ phía sau VPN Gateway.
Lưu ý: Hầu hết các triển khai IPsec VPN hiện nay đều sử dụng Tunnel Mode mặc định.
Tổng kết
Có một cách rất dễ để ghi nhớ vai trò của các thành phần trong IPsec:
- IKE là người đàm phán, xác thực hai VPN Gateway và tạo khóa mã hóa.
- ESP là người bảo vệ, chịu trách nhiệm mã hóa và bảo vệ toàn bộ dữ liệu.
- NAT-T là "phiên dịch viên", giúp ESP có thể đi qua các thiết bị NAT/PAT bằng cách đóng gói lưu lượng vào UDP 4500.
Ba thành phần này phối hợp với nhau tạo nên một đường hầm VPN an toàn, nơi dữ liệu không chỉ được mã hóa mà còn được xác thực, chống giả mạo và che giấu hoàn toàn khỏi Internet. Đó cũng là lý do IPsec vẫn là chuẩn VPN được tin cậy nhất trong các hệ thống doanh nghiệp, Data Center và SD-WAN, dù đã xuất hiện hơn hai thập kỷ.
Câu hỏi ôn tập
Khi ESP hoạt động ở Tunnel Mode, ESP Header được chèn vào vị trí nào trong gói IP?
A. Trước IP Header mới và sau IP Header gốc.
✅ B. Sau IP Header mới và trước gói IP gốc (Original IP Packet) đã được đóng gói.
C. Sau IP Header gốc và trước TCP/UDP Header.
D. Sau gói IP gốc.