Kết nối điều khiển PPTP là kết nối giữa địa chỉ IP của máy trạm PPTP (có cổng TCP được cấp phát động) và địa chỉ IP của máy chủ PPTP (sử dụng cổng TCP dành riêng 1723). Kết nối điều khiển PPTP mang các bản tin điều khiển và quản lí cuộc gọi PPTP được sử dụng để duy trì đường ngầm PPTP.
Các bản tin này bao gồm các bản tin PPTP Echo - Request và PPTP Encho - Reply định kỳ để phát hiện các lỗi kết nối giữa PPTP client và PPTP server. Các gói của kết nối điều khiển PPTP bao gồm IP header, TCP header, các bản tin điều khiển PPTP và các header, trailer của lớp đường truyền dữ liệu.
Data link
header IP TCP PPTP controlMesaage Data link traller
Hình 2.5. Gói dữ liệu của kết nối điều khiển PPTP 2.4.1.2. Đóng gói dữ liệu đường ngầm PPTP
a) Đóng gói khung PPP: Dữ liệu đường ngầm PPTP được đóng gói thông qua nhiều mức. Hình 2.6 là cấu trúc dữ liệu đã được đóng gói.
Data lik header IP header GRE Header PPP header Encrypted ppp payload Data link trailer Hình 2.6. Dữ liệu đường ngầm PPTP
Phần tải của khung PPP ban đầu được mật mã và đóng gói với phần tiêu đề PPP để tạo ra khung PPP. Khung PPP sau đó được đóng gói với phần tiêu đề của phiên bản sửa đổi giao thức GRE (Generic Routing Encapsulation: giao thức đóng gói định tuyến chung), giao thức này cung cấp cơ chế chung cho phép đóng gói dữ liệu để gửi qua mạng IP.
Đối với PPTP, phần Header của GRE được sửa đổi một số điểm sau: - Một bit xác nhận được sử dụng để khẳng định sự có mặt của trường xác nhận 32 bit.
- Trường Key được thay thế bằng trường độ dài Payload 16 bit và trường chỉ số cuộc gọi 16 bit. Trường chỉ số cuộc gọi được thiết lập bởi PPTP client trong quá trình khởi tạo đường ngầm PPTP.
- Một trường xác nhận dài 32 bit được thêm vào.
b) Đóng gói các GRE: Phẩn tải PPP (đã được mật mã) và các GRE Header sau đó được đóng gói với một tiêu đề IP chứa các thông tin địa chỉ nguồn và đích thích hợp cho PPTP client và PPTP server.
lớp liên kết dữ liệu ở giao diện vật lý đầu ra. Ví dụ, nếu IP datagram được gửi qua giao diện Ethernet, nó sẽ được gói với phần Header và Trailer Ethernet. Nếu IP datagram được gửi qua đường truyền WAN điểm tới điểm (ví dụ như đường điện thoại tương tự hoặc ISDN), nó sẽ được đóng gói với phần Header và Trailer của giao thức PPP [5].
2.4.1.3. Xử lí dữ liệu đường ngầm PPTP
Khi nhận được dữ liệu đường ngầm PPTP, PPTP client hoặc PPTP server sẽ thực hiện các bước sau:
* Xử lý và loại bỏ phần Header và Trailer của lớp liên kết dữ liệu. * Xử lý và loại bỏ IP Header.
* Xử lý và loại bỏ GRE Header và PPP Header.
* Giải mã hoặc/và giải nén phần PPP Payload (Nếu cần thiết). * Xử lý phần Payload để nhận hoặc chuyển tiếp.
2.4.1.4. Sơ đồ đóng gói
Hình 2.7 là sơ đồ đóng gói PPTP qua kiến trúc mạng (từ một IP-VPN client qua kết nối truy nhập từ xa VPN, sử dụng modem tương tự).
Hình 2.7. Sơ đồ đóng gói PPTP
* Các IP datagram và IPX datagram hoặc khung NetBEUI được đưa tới giao diện ảo bằng giao thức tương ứng (giao diện ảo đại diện cho kết nối VPN) sử dụng NDIS.
* NDIS đưa gói dữ liệu tới NDISWAN, nơi thực hiện mật mã, nén dữ liệu, và cung cấp PPP Header. Phần tiêu đề PPP này chỉ gồm trường mã số giao thức PPP, không có các trường Flags và FCS. Giả định trường địa chỉ và điều khiển đã được thỏa thuận ở giao thức điều khiển đường truyền LCP trong quá trình kết nối PPP.
* NDISWAN gửi dữ liệu tới giao thức PPTP, nơi đóng gói khung PPP với phần tiêu đề GRE. Trong GRE Header, trường chỉ số cuộc gọi được đặt giá trị thích hợp để xác định đường ngầm.
* Giao thức PPTP sau đó sẽ gửi gói vừa hình thành tới giao thức TCP/IP. * TCP/IP đóng gói dữ liệu đường ngầm PPTP với phần tiêu đề IP, sau đó gửi kết quả 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 gói tin tới NDISWAN, nơi cung cấp các phần PPP Header và Trailer.
* NDISWAN gửi khung PPP kết quả tới cổng WAN tương ứng đại diện cho phần cứng quay số (ví dụ, cổng không đồng bộ cho kết nối modem).
2.4.2. L2TP
Để tránh việc hai giao thức đường ngầm không tương thích cùng tồn tại gây khó khăn cho người sử dụng, IETF đã kết hợp và phát triển hai giao thức L2F và PPTP thành L2TP, trên cơ sở tận dụng các ưu điểm của cả hai giao thức này, đồng thời có thể sử dụng được trong tất cả các trường hợp ứng dụng của PPTP và L2F. L2TP được mô tả trong khuyến nghị RFC 2661.
L2TP đóng gói các khung PPP để truyền qua mạng IP, X.25, Frame Relay, hoặc ATM. Hiện nay mới chỉ có L2TP trên mạng IP được định nghĩa. Khi truyền qua mạng IP, các khung L2TP được đóng gói như các bản tin
Internet hoặc các mạng riêng Intranet. L2TP dùng các bản tin UDP qua mạng IP cho các dữ liệu đường ngầm cũng như các dữ liệu bảo dưỡng đường ngầm. Phần tải của khung PPP đã đóng gói có thể được mật mã, nén. Tuy nhiên mật mã trong các kết nối L2TP thường được thực hiện bởi IPSec ESP (chứ không phải MPPE như đối với PPTP). Cũng có thể tạo kết nối L2TP không mật mã IPSec. Tuy nhiên, đây không phải là kết nối IP-VPN vì dữ liệu riêng được đóng gói bởi L2TP không được mật mã. Các kết nối L2TP không mật mã có thể sử dụng tạm thời để sửa lỗi các kết nối L2TP dùng IPSec.
2.4.2.1. Duy trì đường ngầm bằng bản tin điều khiển L2TP
Không giống PPTP, việc duy trì đường ngầm L2TP không được thực hiện thông qua một kết nối TCP riêng biệt. Các lưu lượng điều khiển và duy trì cuộc gọi được gửi đi như các bản tin UDP giữa L2TP client và L2TP server (L2TP client và L2TP server đều sử dụng cổng UDP 1701).
Các bản tin điều khiển L2TP qua mạng IP được gửi như các UDP datagram. UDP datagram lại được mật mã bởi IPSec ESP như trên hình 2.8.
Hình 2.8. Bản tin điều khiển L2TP
Vì kết nối TCP không được sử dụng, L2TP dùng thứ tự bản tin để đảm bảo việc truyền các bản tin L2TP. Trong bản tin điều khiển L2TP, trường Next-Received và Next-Sent được sử dụng để duy trì thực tự các bản tin điều khiển. Các gói không đúng thứ tự bị loại bỏ. Các trường Next-Sent và Next- Received cũng có thể được sử dụng để truyền dẫn tuần tự và điều khiển luồng cho các dữ liệu đường ngầm.
L2TP hỗ trợ nhiều cuộc gọi trên mỗi đường ngầm. Trong bản tin điều khiển L2TP và phần tiêu đề L2TP của dữ liệu đường ngầm có một mã số
đường ngầm (Tunnel ID) để xác định đường ngầm, và một mã số cuộc gọi (Call ID)để xác định cuộc gọi trong đường ngầm đó [5].
2.4.2.2. Đường ngầm dữ liệu L2TP
Đường ngầm dữ liệu L2TP được thực hiện thông qua nhiều mức đóng gói. Hình 2.9 chỉ ra cấu trúc cuối cùng của dữ liệu đường ngầm L2TP trên nên IPSec.
Hình 2.9. Đóng bao gói tin L2TP
a) Đóng gói L2TP: phần tải PPP ban đầu được đóng gói với một PPP Header và một L2TP Trailer.
b) Đóng gói UDP: gói L2TP sau đó được đóng gói với một UDP Header, các địa chỉ cổng nguồn và đích được đặt bằng 1701.
c)Đóng gói IPSec: tuỳ thuộc vào chính sách IPSec, gói UDP được mật mã và đóng gói với IPSec ESP Header, IPSec ESP Trailer, IPSec Authentication Trailer.
d) Đóng gói IP: gói IPSec được đóng gói với IP Header chứa địa chỉ IP nguồn và đích của IP-VPN client và IP-VPN server.
e)Đóng gói lớp đường truyền dữ liệu: để truyền đi được trên đường truyền LAN hoặc WAN, IP datagram cuối cùng sẽ được đóng gói với phần Header và Trailer tương ứng với kỹ thuật lớp đường truyển dữ liệu của giao diện vật lý đầu ra. Ví dụ, khi các IP datagram được gửi vào một giao diện Ethernet, IP datagram sẽ được đóng gói với Ethernet Header và Trailer. Khi các IP datagram được gửi trên đường truyền WAN điểm tới điểm, IP datagram được đóng gói với PPP Header và Trailer [5].
2.4.2.3. Xử lý dữ liệu đường ngầm L2TP trên nền IPSec
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.10. 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ể nén 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 [5].
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.
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 3. Giao thức IPSec cho 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 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ý.
+ 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, 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 để 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