2.2.1. Giao thức đường hầm điểm (PPTP)
PPTP là giải pháp độc quyền cho phép truyền dữ liệu một cách an toàn giữa một Client từ xa và một Server của Doanh nghiệp bằng việc tạo ra một VPN qua một mạng dựa trên IP. Được phát triển bởi Consortium PPTP (Tập đoàn Microsoft, Ascend Communications, 3COM, US Robotics,và ECI Telematics). PPTP đề xuất dựa vào yêu cầu của VPN qua mạng không an toàn. PPTP không chỉ có khả năng bảo mật các giao dịch qua các mạng công cộng dựa trên TCP/IP mà còn cả các giao dịch qua mạng Intranet riêng.
Về phương diện lịch sử, hai hiện tượng đóng vai trò chính vào sự thành công của PPTP trong việc bảo mật các kết nối đường dài là:
- Việc sử dụng các Mạng điện thoại chuyển mạch công cộng(PSTN): PPTP cho phép sử dụng PSTN(Public Switched Telephone Network) để thực thi VPN. Kết quả là, qúa trình triển khai VPN đơn giản đi rất nhiều và tổng chi phí thực thi giảm một cách đáng kể. Lý do này hoàn toàn dễ hiểu – vì những yếu tố cần thiết cho giải pháp kết nối doanh nghiệp quy mô rộng dựa trên đường Leased Line và các Server truyền thông chuyên dụng hoàn toàn bị loại bỏ.
- Hỗ trợ các giao thức không dựa trên IP: Mặc dù dành cho các mạng dựa trên IP, PPTP cũng hỗ trợ các giao thức mạng khác như: TCP/IP, IPX, NetBEUI, và NetBIOS. Vì vậy, PPTP đã chứng tỏ là thành công trong việc triển khai VPN qua một mạng LAN riêng cũng như qua mạng công cộng.
PPP đóng vai trò chính trong các giao dịch dựa trên PPTP. Ta sẽ thảo luận chi tiết hơn vấn đề này trong phần tiếp sau đây.
2.2.1.1. Vai trò của PPP trong các giao dịch PPTP
PPTP là một sự mở rộng logic của PPP, PPTP không thay đổi dưới công nghệ PPP, nó chỉ định nghĩa một cách vận chuyển lưu lượng PPP mới qua các mạng công cộng không an toàn.
Hình 2.4 Mô tả vai trò của PPP trong các giao dịch dựa trên PPTP
Khá giống PPP, PPTP không hỗ trợ nhiều kết nối. Tất cả các kết nối được hỗ trợ bởi PPTP phải là kết nối điểm - điểm, ngoài ra, PPP đáp ứng các chức năng sau trong giao dịch dựa trên PPTP:
- Thiết lập và kết thúc các kết nối vật lý giữa các thực thể truyền thông cuối.
- Xác thực các Client PPTP.
- Mã hoá các gói dữ liệu IPX, NetBEUI, NetBIOS, và TCP/IP để tạo các gói PPP và bảo mật việc trao đổi dữ liệu giữa các nhóm liên quan.
2.2.1.2. Các thành phần của giao dịch PPTP
Bất kỳ một giao dịch dựa trên PPTP nào cũng gồm ít nhất 3 thành phần, các thành phần này bao gồm:
- Một Client PPTP.
1. PPTP Client
Một PPTP Client là một Node mạng hỗ trợ PPTP và có yêu cầu đến Node khác cho một phiên VPN. Nếu kết nối được yêu cầu từ một Server từ xa, PPTP Client phải sử dụng các dịch vụ trên NAS của ISP. Vì thế, PPTP Client phải được kết nối tới một Modem, cái thường được dùng để thiết lập một kết nối quay số PPP tới ISP.
Hình 2.5 Đường hầm PPTP và ba thành phần của giao dịch dựa trên PPTP
PPTP Client cũng phải được kết nối tới một thiết bị VPN và như vậy nó có thể định đường hầm yêu cầu tới thiết bị VPN trên mạng từ xa. Liên kết đến thiết bị VPN từ xa trước hết sử dụng kết nối quay số tới NAS của ISP để thiết lập một đường hầm giữa các thiết bị VPN qua Internet hoặc qua mạng trung gian khác.
Không giống như yêu cầu từ xa cho phiên VPN, yêu cầu cho một phiên VPN tới Server cục bộ không đòi hỏi một kết nối tới NAS của ISP. Cả Client và Server đều được kết nối vật lý đến cùng một mạng LAN, việc tạo ra một kết nối tới NAS của nhà cung cấp là không cần thiết. Client trong trường hợp này chỉ cần yêu cầu một phiên quay số đến thiết bị VPN trên Server. Như vậy thủ tục định tuyến của các gói PPTP cho một yêu cầu từ xa và một yêu cầu cục bộ là khác nhau, các gói của hai yêu cầu được xử lý khác nhau. Các gói PPTP đến Server cục bộ được đặt trên thiết bị vật lý gắn kèm với card mạng của PPTP Client. Gói PPTP đến Server từ xa được định tuyến qua một thiết bị vật lý gắn với một thiết bị truyền thông như một Router. Tất cả được minh hoạ như trong hình 2.6.
Hình 2.6 Truyền các gói PPTP đến Node đích 2. Các Server PPTP
Server truy cập PPTP là một Node mạng có hỗ trợ PPTP và có khả năng bảo quản các yêu cầu cho phiên VPN từ các Node từ xa hay cục bộ. Để phản hồi các yêu cầu từ xa, các Server này cũng phải hỗ trợ khả năng định tuyến. Một RAS và hệ điều hành mạng khác có hỗ trợ PPTP, chẳng hạn WinNT 4.0 có khả năng hoạt động như một Server PPTP.
3. Các Server truy cập mạng PPTP (PPTP NAS)
Các NAS PPTP được đặt tại Site PPTP và cung cấp kết nối Internet tới các Client đang sử dụng đường quay số PPP. Xác suất nhiều Client cùng đồng thời yêu cầu một phiên VPN là rất cao.
Các Server này phải có khả năng hỗ trợ các Client này. Ngoài ra, các PPTP Client không chỉ hạn chế với hệ điều hành mạng của Microsoft, vì vậy các NAS PPTP phải có khả năng hỗ trợ các Client dựa trên Window, các máy Unix. Tuy nhiên, điều quan trọng là các Client này hỗ trợ kết nối PPTP tới NAS.
2.2.1.3. Các tiến trình PPTP
Bao gồm ba tiến trình để truyền thông an toàn dựa trên PPTP qua phương tiện không an toàn. Ba tiến trình đó là:
Thiết lập kết nối dựa trên PPP. Kiểm soát kết nối. Tạo đường hầm PPTP và truyền dữ liệu.
1. Kiểm soát kết nối PPTP
Sau khi một kết nối vật lý dựa trên PPP được thiết lập giữa PPTP Client và Server, quá trình kiểm soát kết nối PPTP bắt đầu. Như trong hình 2.7, Kiểm soát kết nối PPTP được thiết lập dựa trên địa chỉ IP của PPTP Client và Server. Nó sử dụng cổng TCP phân phối động và cổng TCP giành riêng số 1723. Sau khi kiểm soát kết nối được thiết lập, nó thực hiện việc kiểm soát và quản lý các thông điệp được trao đổi giữa các nhóm truyền thông. Các thông điệp này có nhiệm vụ duy trì, quản lý và kết thúc đường hầm PPTP. Các thông điệp này bao gồm cả chu kỳ giao dịch của các thông điệp "PPTP-Echo-Request, PPTP-Echo- Reply" chúng giúp phát hiện lỗi kết nối giữa PPTP Server và Client.
Hình 2.7 Các thông điệp kiểm soát trao đổi dữ liệu PPTP qua PPP
Một số thông điệp thường dùng để kiểm soát PPTP được liệt kê trong bảng sau đây:
Bảng 2.1 Các thông điệp kiểm soát PPTP thông dụng
Name Description
Start-Control- Connection-Request
Yêu cầu từ PPTP Client để thiết lập kết nối
Start-Control-
Connection-Reply Phản hồi từ PPTP server tới thông điệp Start-Control-Connection-Request của Client Outgoing-Call-
Request
Yêu cầu từ PPTP client tới server để thiết lập một đường hầm PPTP.
Outgoing-Call-Reply Phản hồi từ PPTP server tới thông điệp Outgoing-Call-Request của Client.
Echo-Request Cơ chế duy trì hoạt động từ Server hoặc Client. Nếu nhóm đối diện không trả lời thông điệp này thì đường hầm bị kết thúc. Echo-Reply Phản hồi tới thông điệp Echo-Request từ thực thể cuối đối diện. Set-Link-Info Thông điệp từ phía khác tới thiết lập các lựa chọn liên quan
đến PPP.
Call-Clear-Request Thông điệp từ PPTP client bắt đầu kết thúc đường hầm. Call-Disconnect-
Notify
Phản hồi từ PPTP server tới Call-Clear-Request của Client. Nó cũng là thông điệp khởi tạo việc kết thúc đường hầm từ Server WAN-Error-Notify Thông điệp từ PPTP server đến tất cả các PPTP Client đã kết
nối để thông báo lỗi trong giao diện PPP của server. Stop-Control-
Connection-Request
Thông điệp từ PPTP client hoặc server để thông báo đến thực thể cuối khác để kết thúc kiểm soát kết nối.
Stop-Control-
Connection-Reply Phản hồi từ thực thể cuối bên kia tới thông điệp Stop-Control-Connection-Request.
Như đã mô tả trong hình 2.8, các thông điệp kiểm soát PPTP được đóng gói vào trong các gói TCP. Vì vậy, sau khi đã thiết lập một kết nối PPP với Server hoặc Client từ xa, một kết nối TCP được thiết lập. Kết nối này sau đó thường được dùng để trao đổi các thông điệp kiểm soát PPTP.
Data Link Header IP Heade r TCP Header TCP PPTP Control Message Data Link Trailer
Hình 2.8 Kiểm soát PPTP trong gói dữ liệu TCP 2. Xử lý và định đường hầm dữ liệu PPTP
Một gói dữ liệu PPTP phải trải qua nhiều giai đoạn đóng gói. Đó là các giai đoạn sau:
Bao gói dữ liệu: Thông tin gốc được mã hoá và sau đó bao gói vào bên trong một Frame PPP. Một tiêu đề PPP được thêm vào Frame.
Bao gói Frame PPP: Frame PPP kết quả sau đó được bao gói vào trong một sự đóng gói định tuyến chung(GRE) đã sửa đổi. Tiêu đề GRE sửa đổi chứa một
ACK. Hơn nữa, trường khoá trong frame GRE được thay bởi một trường có độ dài 2 byte gọi là độ dài tải và một trường có độ dài 2 byte gọi là định danh cuộc gọi. PPTP client thiết lập các trường này khi nó tạo đường hầm PPTP.
Bao gói các gói dữ liệu GRE: Tiếp theo, một tiêu đề IP được thêm vào khung PPP, và được bao gói vào trong gói GRE. Tiêu đề IP này chứa địa chỉ IP của PPTP client nguồn và PPTP Server đích.
Bao gói tầng liên kết dữ liệu: Như chúng ta đã biết, PPTP là một giao thức tạo đường hầm tầng 2, vì vậy, tiêu đề tầng liên kết dữ liệu và lần theo sự đánh dấu là các quy luật quan trọng trong đường hầm dữ liệu. trước khi được đặt lên các phương tiện truyền phát, tầng liên kết dữ liệu thêm vào tiêu đề của chính nó và đánh dấu cho các gói dữ liệu. Nếu gói dữ liệu phải chuyển qua một đường hầm PPTP cục bộ, gói dữ liệu sẽ được đóng gói vào trong một đánh dấu và tiêu đề theo công nghệ - LAN(như Ethenet chẳng hạn). Mặt khác, nếu đường hầm được trải qua một liên kết WAN, tiêu đề và đánh dấu luôn được thêm vào gói dữ liệu một lần. GRE Header HeadePPP r IP Header Data Link Header GRE Header HeaderPPP IP Header GRE Header HeaderPPP PPP Header Encryption PPP Payload Encryption PPP Payload Encryption PPP Payload Encryption PPP Payload Encryption PPP Payload Encryption PPP
Payload Data LinkTrailer
Hình 2.9 Mô tả tiến trình xử lý dữ liệu PPTP đường hầm
Chú ý: GRE là một cơ chế đóng gói thông dụng đơn giản cho các dữ liệu dựa trên IP. GRE thường được dùng bởi các ISP để chuyển tiếp thông tin định tuyến trong Intranet của họ. Tuy nhiên, các Router backbone thuộc Internet của ISP sẽ lọc lưu lượng dựa trên GRE này. Vì vậy các đường hầm đã được thiết lập có thể mang dữ liệu một cách an toàn và bí mật tới người nhận.
Khi dữ liệu PPTP được truyền thành công đến đúng người nhận, người nhận phải xử lý các gói dữ liệu đã được đóng gói bằng đường hầm để thu được dữ liệu gốc. Quá trình này là ngược lại với quá trình định đường hầm dữ liệu PPTP. Như ta thấy trong hình 2.10, để lấy lại dữ liệu gốc thì Node PPTP của người nhận phải thực hiện các bước sau:
- Người nhận loại bỏ tiêu đề và đánh dấu của tầng liên kết dữ liệu đã được thêm vào bởi người gửi.
- Tiếp đó, loại bỏ tiêu đề GRE - Tiêu đề IP được xử lý và loại bỏ - Tiêu đề PPP được xử lý và loại bỏ.
- Cuối cùng, thông tin gốc được giải mã (nếu được yêu cầu)
PPP Header GRE Header PPP Header GRE Header IP Header PPP Header GRE Header PPP Header PPP Payload Decryption Encryption PPP Payload Dada Link Header IP Header Encryption PPP Payload Data Link Trailer Encryption PPP Payload Encryption PPP Payload Encryption PPP Payload
Hình 2.10 Qúa trình xử lý gói dữ liệu để nhận được gói dữ liệu gốc
2.2.1.4. Bảo mật PPTP
PPTP đưa ra nhiều dịch vụ bảo mật xây dựng sẵn khác nhau cho PPTP Server và Client. Các dịch vụ bảo mật này bao gồm: Mã hóa và nén dữ liệu, xác thực, kiểm soát truy cập và lọc gói tin.
Hơn nữa các cơ chế bảo mật được đề cập ở trên, PPTP có thể được dùng chung với Firewall và Router.
PPTP không cung cấp một cơ chế mã hoá để bảo mật dữ liệu. Thay vào đó, nó sử dụng dịch vụ mã hoá được đề xuất bởi PPP. PPP lần lượt sử dụng mã hoá Microsoft Point–to-Point, nó dựa trên phương pháp mã hoá chia sẻ bí mật.
2. Xác thực dữ liệu PPTP
PPTP hỗ trợ các cơ chế xác thực của Microsoft sau đây:
a. Giao thức xác thực có thăm dò trước của Microsoft(MS-CHAP)
MS-CHAP là phiên bản thương mại của Microsoft và được dùng cho xác thực dựa trên PPP. Vì sự tương đồng cao với CHAP, các chức năng của MS- CHAP khá giống với CHAP. Điểm khác nhau chính giữa chúng là trong khi CHAP dựa trên RSA và thuật toán MD5 thì MS-CHAP dựa trên RSA RCA và DES. Mục đích là MS-CHAP được phát triển chỉ cho các sản phẩm Microsoft, nó không được hỗ trợ bởi các nền khác.
b. Giao thức xác thực mật khẩu(PAP)
Là giao thức đơn giản và là giao thức xác thực đường quay số thông dụng nhất. Nó cũng được dùng để xác thực các kết nối dựa trên PPP. Tuy nhiên nó gửi ID và mật khẩu của người dùng qua liên kết mà không mã hoá. Và như vậy, nó không đưa ra được sự bảo vệ từ việc phát lại hay thử lặp và các tấn công lỗi. Một lỗ hỗng của PAP khác là các thực thể truyền thông cuối chỉ được xác thực một lần khi khởi tạo kết nối. Vì vậy, nếu kẻ tấn công vượt qua được một lần thì không còn phải lo lắng về vấn đề xác thực trong tương lai nữa!. Vì lý do này, PAP được xem như là một giao thức xác thực ít phức tạp nhất và không phải là cơ chế xác thực được ưa thích trong VPN.
3. Kiểm soát truy cập PPTP
Sau khi một Client PPTP từ xa được xác thực thành công, sự truy cập của nó đến các tài nguyên trong mạng bị hạn chế bởi mục đích bảo mật nâng cao. Mục tiêu này được hoàn thành bởi việc thực thi bổ sung cơ chế kiểm soát truy cập như: Quyền truy cập, mức cho phép, nhóm và lọc gói PPTP
Lọc gói PPTP cho phép một Server PPTP trên mạng riêng chỉ chấp nhận và định tuyến các gói chỉ từ các Client PPTP đã được xác thực thành công. Kết quả là, chỉ các Client PPTP đã được xác thực mới có thể truy cập lại tới mạng từ xa đã xác định.
Trong cách này, PPTP không chỉ cung cấp các cơ chế xác thực, kiểm soát truy cập và mã hoá, mà còn làm tăng thêm sự an toàn của mạng.
4. PPTP với FireWall và Router
Các thiết bị PPTP chấp nhận lưu lượng TCP và IP tại cổng 1723 và 47. Tuy nhiên, khi PPTP dùng chung với FireWall và Router, lưu lượng đã được dự tính cho các cổng này được định tuyến qua Firewall hoặc Router, chúng lọc lưu lượng trên cơ sở danh sách kiểm soát truy cập (ACL) và các chính sách bảo mật khác, PPTP nâng cao các dịch vụ bảo mật mà nó đưa ra.
2.2.1.5. Các tính năng của PPTP
1. Tính sẵn có
PPTP được hỗ trợ trong nhiều hệ điều hành: trong Window NT Server, trong Workstation. Vì vậy, PPTP thực sự sẵn có trên các Platform của người sử dụng. Không cần mua thêm các phần mềm bổ sung vì Microsoft đã đưa ra cách nâng cấp PPTP trong tất cả các phiên bản Windows, được bổ sung trong nhiều nhánh của các Switch truy cập từ xa như các thiết bị Ascend, 3Com và ECI Telematics. PPTP đã trở thành một phần của các gói tin hệ điều hành mạng và phần lớn các Switch truy cập từ xa. Một nhà quản trị mạng Window NT có thể