Khi nhận được dữ liệu đường ngầm L2TP trên nền IPSec, L2TP client hay L2TP server sẽ thực hiện các bước sau:
• Xử lý và loại bỏ Header va Trailer của lớp đường truyền dữ liệu.
• Xử lý và loại bỏ IP Header.
• Dùng IPSec ESP Auth Trailer để xác thực IP payload và IPSec ESP Header.
• Dùng IPSec ESP Header để giải mã phần gói đã mật mã.
• Xử lý UDP Header và gửi gói L2TP tới L2TP.
• L2TP dùng chỉ số đường ngầm và chỉ số cuộc gọi trong L2TP Header để xác định đường ngầm L2TP cụ thể.
• Dùng PPP Header để xác định PPP Payload và chuyển tiếp nó tới đúng giao thức để xử lý.
2.4.2.4 Sơ đồ đóng gói L2TP trên nền IPSec
Hình 2.12 là sơ đồ đóng gói L2TP qua kiến trúc mạng từ một IP-VPN client thông qua một kết nối IP-VPN truy nhập từ xa sử dụng một modem tương tự.
text TCP /IP IPX PPTP Async NetBEUI X.25 ISDN L2TP NDIS NDISWAN
Bắt đầu gói ở đây
IPSec ESP Header IPSec L2TP Header UDP Header PPP Payload (IP datagram , IPX datagram , NetBEUI Frame ) PPP Header PPP Header HeaderIP IPSec ESP Trailer IPSec ESP Auth Trailer PPP Trailer
Cấu trúc gói tin cuối cùng
Hình 2.12: Sơ đồ đóng gói L2TP
• Một IP datagram, IPX datagram, hoặc NetBEUI Frame được đưa tới giao diện ảo đại diện cho kết nối IP-VPN sử dụng NDIS bằng giao thức thích hợp.
• NDIS đưa các gói tới NDISWAN, tại đây có thể nen và cung cấp PPP Header chỉ bao gồm trường chỉ số PPP Protocol. Các trương Flag hay FCS không được thêm vào.
• NDISWAN gửi khung PPP tới giao thức L2TP, nơi đóng gói PPP Frame với một L2TL Header. Trong L2TP Header, chỉ số đường ngầm và chỉ số cuộc gọi được thiết lập với các giá trị thịch hợp để xác định đường ngầm.
• Giao thức L2TP gửi gói thu được tới giao thức TCP/IP với thông tin để gửi gói L2TP như một bản tin UDP từ cổng UDP 1701 tới cổng UDP 1701 với các địa chỉ IP của IP-VPN client và IP-VPN server.
• Giao thức TCP/IP xây dựng một gói IP với các IP Header và UDP Header thích hợp. IPSec sau đó sẽ phân tích gói IP và so sánh nó với chính sách IPSec hiện thời. Dựa trên những thiết lập trong chính sách, IPSec đóng gói và mật mã phần bản tin UDP của gói IP sử dụng các ESP Header và Trailer phù hợp. IP Header ban đầu với Protocol field được đặt là 50 được thêm vào phía trước của gói ESP. Giao thức TCP/IP sau đó gửi gói thu được tới giao diện đại diện cho kết nối quay số tới local ISP sử dụng NDIS.
• NDIS gửi số tới NDISWAN.
• NDISWAN cung cấp PPP Header và Trailer và gửi khung PPP thu được tới cổng AN thích hợp đại diện cho phần cứng dial-up.
2.5 Tổng kết
Chương này đã đưa ra khái niêm và giới thiệu chung về công nghệ IP-VPN. Đây là một công nghệ không mới, nhưng với sự phát triển mạnh mẽ của mạng Internet trên toàn cầu thì thị trường IP-VPN sẽ rất phát triển. Với các tổ chức có mạng lưới rộng khắp, sử dụng công nghệ này sẽ rất hiệu quả trong truyền thông giữa các thành viên của hãng ở các vùng địa lí khác nhau, đảm bảo phát triển các văn phòng mới một cách mềm dẻo, dễ dàng tiếp cận với khách hàng một cách trực tiếp và điều quan trọng là tính an toàn thông tin.
Theo cấu trúc cơ bản, có 2 loại VPN: Site-to-Site IP-VPN và Remote VPN. Trong đó Site-to-Site bao gồm 2 mô hình là: Intranet IP-VPN được sử dụng để kết nối các mạng LAN văn phòng ở xa của một tổ chức; Extranet IP-VPN được sử dụng cho các ứng dụng kết nối trực tuyến tới khách hàng của tổ chức. Từ những khái niệm được trình bày ta có thể nhận ra rằng đối tuợng và phạm vi kết nối của Extranet VPN có phần rộng hơn Intranet VPN. Do đối tượng kết nối luôn thay đổi và khó có thể đảm bảo trước nên yêu cầu bảo mật cũng cao hơn. Remote IP-VPN được ứng dụng cho những người làm việc lưu động hoặc những văn phòng ở xa dung lượng nhỏ.
Mạng IP-VPN bao gồm các khối cơ bản sau: điều khiển truy nhập, nhận thực, an ninh, truyền Tunnel và các thỏa thuận mức dịch vụ. Đây là những vấn đề rất phức tạp và yêu cầu nhiều giao thức kết hợp với nhau để thực hiện được các chức năng của mạng IP-VPN một cách hiện quả. Trong đó, đường ngầm là nền tảng của IP-VPN.
Trong chương này giới thiệu chung về các giao thức đường ngầm đang tồn tại sử dụng cho IP-VPN, trong đó hai giao thức đường ngầm PPTP và L2TP là 2 giao thức đã hòan thành và hoạt động phổ biến trong giai đoạn hiện nay.
Chương tiếp theo trình bày về giao thức IPSec, một giao thức được xem như tối ưu cho công nghệ IP-VPN.
CHƯƠNG 3
GIAO THỨC IPSEC CHO IP-VPN 3.1 Gới thiệu
Trong chương 2 đã trình bày về các giao thức đường ngầm PPTP và L2TP sử dụng để xây dựng mạng IP-VPN. Trong chương này sẽ trình bày về giao thức IPSec, một giao thức được coi là tối ưu nhất cho IP-VPN. Như ta đã biết, mạng Internet nguyên thủy được phát triển để truyền thông giữa các máy tính tin cây, vì vậy nó không hỗ trợ các dịch vụ an ninh. Cùng với sự phát triển rộng khắp của Internet trên tòan cầu thì vấn đề an ninh là một trong những vấn đề quan trọng. Giao thức IPSec được phát
triển để giải quyết vấn đề an ninh này và trong IP-VPN là một trong những ứng dụng của nó.
3.1.1 Khái niệm về IPSec
IPSec (Internet Protocol Security) là một giao thức được IETF phát triển. IPSec được định nghĩa là một giao thức trong tầng mạng cung cấp các dịch vụ bảo mật, nhận thực, toàn vẹn dữ liệu và điều khiển truy cập. Nó là một tập hợp các tiêu chuẩn mở làm việc cùng nhau giữa các phần thiết bị.
Một cách chung nhất, IPSec cho phép một đường ngầm bảo mật thiết lập giữa 2 mạng riêng và nhận thực hai đầu của đường ngầm này. Các thiết bị giữa hai đầu đường ngầm có thể là một cặp host, hoặc một cặp cổng bảo mật (có thể là router, firewall, bộ tập trung VPN) hoặc một cặp thiết bị gồm một host và một cổng bảo mật. Đường ngầm đóng vai trò là một kênh truyền bảo mật giữa hai đầu và các gói dữ liệu yêu cầu an toàn được truyền trên đó. IPSec cũng thực hiện đóng gói dữ liệu các thông tin để thiết lập, duy trì và hủy bỏ kênh truyền khi không dùng đến nữa. Các gói tin truyền trong đường ngầm có khuôn dạng giống như các gói tin bình thường khác và không làm thay đổi các thiết bị, kiến trúc cũng như những ứng dụng hiện có trên mạng trung gian, qua đó cho phép giảm đáng kể chi phí để triển khai và quản lý.
IPSec có hai cơ chế cơ bản để đảm bảo an toàn dữ liệu đó là AH (Authentication Header) và ESP (Encapsulating Security Payload), trong đó IPSec phải hỗ trợ ESP và có thể hỗ trợ AH:
• AH cho phép xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn dữ liệu và dịch vụ tùy chọn chống phát lại của các gói IP truyền giữa hai hệ thống. AH không cung cấp tính bảo mật, điều này có nghĩa là nó gửi đi thông tin dưới dạng bản rõ.
• ESP là một giao thức cung cấp tính an toàn của các gói tin được truyền bao gồm: Mật mã dữ liệu, xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn phi kết nối của dữ liệu. ESP đảm bảo tính bí mật của thông tin thông qua việc mật mã gói tin IP. Tất cả lưu lương ESP đều được mật mã giữa hai hệ thống. Với đặc điểm này thì xu hướng sẽ sử dụng ESP nhiều hơn AH để tăng tính an toàn cho dữ liệu.
• Cả AH và ESP là các phương tiện cho điều khiển truy nhập, dựa vào sự phân phối của các khóa mật mã và quản lý các luồng giao thông có liên quan đến những giao thức an toàn này.
Những giao thức này có thể được áp dụng một mình hay kết hợp với nhau để cung cấp tập các giao thức an toàn mong muốn trong IPv4 và IPv6, nhưng cách chúng cung cấp các dịch vụ là khác nhau. Đối với cả hai giao thức AH và ESP này, IPSec
không định các thuật toán an toàn cụ thể được sử dụng, mà thay vào đó là một khung chuẩn để sử dụng các thuật toán theo tiêu chuẩn công nghiệp. IPSec sử dụng các thuật toán: Mã nhận thực bản tin trên cơ sở băm (HMAC), thuật toán MD5 (Message Digest 5), thuật toán SHA-1 để thực hiện chức năng toàn vẹn bản tin; Thuật toán DES, 3DES để mật mã dữ liệu; Thuật toán khóa chia sẻ trước, RSA chữ ký số và RSA mật mã giá trị ngẫu nhiên (Nonces) để nhận thực các bên. Ngoài ra các chuẩn còn định nghĩa việc sử dụng các thuật toán khác như IDEA, Blowfish và RC4.
IPSec có thể sử dụng giao thức IKE (Internet Key Exchange) để xác thực hai phía và làm giao thức thương lượng các chính sách bảo mật và nhận thực thông qua việc xác định thuật toán được dùng để thiết lập kênh truyền, trao đổi khóa cho mỗi phiên kết nối, dùng trong mỗi phiên truy cập. Mạng dùng IPSec để bảo mật các dòng dữ liệu có thể tự động kiểm tra tính xác thực của thiết bị bằng giấy chứng nhận số của hai người dùng trao đổi thông tin qua lại. Việc thương lượng này cuối cùng dẫn đến thiết lập kết hợp an ninh (SAs) giữa các cặp bảo mật, kết hợp an ninh này có tính chất hai chiều trực tiếp. Thông tin kết hợp an ninh được lưu trong cơ sử dữ liệu liên kế an ninh, và mỗi SA được ấn định một số tham số an ninh trong bảng mục lục sao cho khi kết hợp một địa chỉ đích với giao thức an ninh (ESP hoặc AH) thì có duy nhất một SA.
3.1.2 Các chuẩn tham chiếu có liên quan
IETF đưa ra một loạt các RFC (Request for Comment) có liên quan đến IPSec:
Bảng 3.1: Các RFC đưa ra có liên quan đến IPSec
RFC Tiêu đề Chủ đề Thời gian
1825 Security Architure for the Internet Protocol
(kiến trúc bảo mật cho giao thức Internet)
IPSec 8/1995
1826 IP Authentication Header
(nhận thực tiêu đề IP)
AH 8/1995
1827 IP Encapsulating Security Payload
(đóng gói an toàn tải tin IP)
ESP 8/1995
1828 IP Authentication Using Keyed MD5
(nhận thực IP sử dụng khóa MD5)
MD5 8/1995
1829 The ESP DES-CBC Transform
(sự biến đổi ESP nhờ DES-CBC)
DES 8/1995
2104 HMAC: Keyed-Hashing for Message Authentication
(HMAC: khóa băm cho nhận thực bản tin)
HMAC 1/1997
2202 Test Cases for HMAC-MD5 and HMAC- SHA-1
(các trường hợp kiểm tra cho HMAC-MD5
HMAC-MD5 HMAC-SHA-1
và HMAC-SHA-1)
2401 Security Architure for the Internet Protocol IPSec 10/1998
2402 IP Authentication Header AH 10/1998
2403 The Use of HMAC-MD5-96 within ESP and AH
(sử dụng HMAC-MD5-96 cùng với ESP)
HMAC-MD5 10/1998
2404 The Use of HMAC-SHA-1-96 within ESP and AH
(sử dụng HMAC-SHA-1-96 cùng với ESP và AH)
HMAC-SHA-1 10/1998
2405 The ESP DES-CBC Cipher Algorithm With Explicit IV
(Thuật toán mã hóa ESP DES-CBC cùng IV (vectơ khởi tạo))
DES 10/1998
2406 IP Encapsulating Security Payload ESP 10/1998
2407 The Internet IP Security Domain of Interpretation for ISAKMP
(bảo mật gói tin IP trong phạm vi làm sáng tỏ cho ISAKMP)
ISAKMP 10/1998
2408 Internet Security Association and Key Management Protocol
(giao thức quản lý kết hợp an ninh Internet và khóa)
ISAKMP 10/1998
2409 The Internet Key Exchange
(phương thức trao đổi khóa Internet)
IKE 10/1998
2410 The NULL Encryption Algorithm and Its Use With IPSec
(vô hiệu thuật toán bảo mật và sử dụng nó với IPSec)
NULL 10/1998
2451 The ESP CBC-Mode Cipher Algorithms
(thuật toán mật mã kiểu CBC cho ESP)
CBC 10/1998
3.2 Đóng gói thông tin của IPSec 3.2.1 Các kiểu sử dụng
IPSec có hai kiểu cung cấp nhận thực và mã hóa mức cao để thực hiện đóng gói thông tin, đó là kiểu Transport (truyền tải) và kiểu Tunnel (đường ngầm). Sau đây chúng ta sẽ xét đến hai kiểu này trước khi tìm hiểu về các giao thức AH và ESP:
3.2.1.1 Kiểu Transport
Trong kiểu này, vấn đề an ninh được cung cấp bởi các giao thức lớp cao hơn (từ lớp 4 trở lên). Kiểu này bảo vệ phần tải tin của gói nhưng vẫn để phần IP header ban đầu ở dạng bản rõ. Địa chỉ IP ban đầu được sử dụng để định tuyến gói qua Internet.
Hình 3.1 Gói tin IP ở kiểu Transport
Kiểu Transport có ưu điểm là chỉ thêm vào gói IP ban đầu một số it byte. Nhược điểm là kiểu này cho phép các thiết bị trong mạng nhìn thấy địa chỉ nguồn và đích của gói tin và có thể thực hiện một số xử lý (ví dụ như phân tích lưu lượng) dựa trên các thông tin của IP header. Tuy nhiên nếu được mật mã bởi ESP thì sẽ không biết được dữ liệu cụ thể bên trong gói IP là gì. Theo như IETF thì kiểu Transport chỉ có thể được sử dụng khi hai hệ thống đầu cuối IP-VPN có thực hiện IPSec.
3.1.1.2 Kiểu Tunnel
Kiểu này bảo vệ toàn bộ gói IP. Gói IP ban đầu (bao gồm cả IP header) được xác thực hoặc mật mã. Sau đó, gói IP đã mã hóa được đóng gói vào một IP header mới. Địa chỉ IP bên ngoài được sử dụng cho định tuyến gói IP truyền qua Internet.
Hình 3.2: Gói tin IP ở kiểu Tunnel
Authenticated Encrypted Authenticated
Original
Header AH Header Payload
Original Header
ESP
Header Payload
AH- kiểu Transport
ESP- kiểu Transport
Authenticated Encrypted Authenticated Original Header AH Header Payload Original Header ESP Header Payload
AH- kiểu Tunnel
ESP- kiểu Tunnel
New Header
New Header
Trong kiểu Tunnel, toàn bộ gói IP ban đầu được đóng gói và trở thành Payload của gói IP mới. Kiểu này cho phép các thiết bị mạng như router thực hiện xử lý IPSec thay cho các trạm cuối (host). Hình 3.3 là ví dụ: Router A xử lý các gói từ host A, gửi chúng vào đường ngầm. Router B xử lý các gói nhận được trong đường ngầm, đưa về dạng ban đầu và chuyển hóa chúng tới host B. Như vậy, các trạm cuối không cần thay đổi nhưng vẫn có được tính an toàn dữ liệu của IPSec. Ngoài ra, nếu sử dụng kiểu Tunnel, các thiết bị trung gian trong mạng sẽ chỉ có thể nhìn thấy được các địa chỉ hai điểm cuối của đường hầm (ở đây là các router A và B). Khi sử dụng kiểu Tunnel, các đầu cuối của IP-VPN không cần phải thay đổi ứng dụng hay hệ điều hành.
Computer Computer
IPSec Tunnel
Host B Host A
Router A Router B
Hình 3.3: Thiết bị mạng thực hiện IPSec kiểu Tunnel
3.2.2 Giao thức tiêu đề xác thực AH
3.2.2.1 Giới thiệu
Giao thức AH (Authentication Header) được định nghĩa trong RFC 1826 và sau đó là phát triển lại trong RFC 2402. AH cung cấp xác thực nguồn gốc dữ liệu (data origin authentication), kiểm tra tính toàn vẹn dữ liệu (data integrity), và dịch vụ chống phát lại (anti-replay service). Đến đây, cần phải phân biệt được hai khái niệm toàn vẹn dữ liệu và chống phát lại: toàn vẹn dữ liệu là kiểm tra những thay đổi của từng gói tin IP, không quan tâm đến vị trí các gói trong luồng lưu lượng; còn dịch vụ chống phát lại là kiểm tra sự phát lặp lại một gói tin tới địa chỉ đích nhiều hơn một lần. AH cho phép xác thực các trường của IP header cũng như dữ liệu của các giao thức lớp trên, tuy nhiên do một số trường của IP header thay đổi trong khi truyền và phía phát có thể không dự đoán trước được giá trị của chúng khi tới phía thu, do đó giá trị của các trường này không bảo vệ được bằng AH. Có thể nói AH chỉ bảo vệ một phần của IP header mà thôi. AH không cung cấp bất cứ xử lý nào về bảo mật dữ liệu của các lớp trên, tất cả đều được truyền dưới dạng văn bản rõ. AH nhanh hơn ESP, nên có thể chọn AH trong
trường hợp chắc chắn về nguồn gốc và tính toàn vẹn của dữ liệu nhưng tính bảo mật dữ liệu không cần được chắc chắn.
Giao thức AH cung cấp chức năng xác thực bằng cách thực hiện một hàm băm một chiều (one-way hash function) đối với dữ liệu của gói để tạo ra một đoạn mã xác thực (hash hay message digest). Đoạn mã đó được chèn vào thông tin của gói truyền đi.