Point to Point Protocol (PPP)
PPP được xây dựng dựa trên nền tảng giao thức điều khiển truyền dữ liệu lớp cao (High-Level Data link Control (HDLC)) nó định ra các chuẩn cho việc truyền dữ liệu các giao diện DTE và DCE của mạng WAN như V.35, T1, E1, HSSI, EIA-232-D, EIA-449. PPP được ra đời như một sự thay thế giao thức Serial Line Internet Protocol (SLIP), một dạng đơn giản của TCP/IP.
Cả LCP và NCP đều họat động ở lớp 2. Hiện đã có mở rộng của PPP phục vụ cho việc truyền dữ liệu sử dụng nhiều links một lúc, đó là Multilink PPP (MPPP) trong đó sủ dụng Multilink Protocol (MLP) để liên kết các lớp LCP và NCP.
RFC 1661 đề cập tổng quan về giao thức PPP.
Định dạng khung dữ liệu
Chi tiết về định dạng khung của PPP như sau:
Có 5 pha trong quá trình thiết lập kết nối PPP:
Có thể sử dụng cơ chế Piggyback routing để cache lại các thông tin định tuyến và chỉ truyền khi kết nối đã thông suốt.
Trong gói LCP (được chứa trong trường Information của gói tin PPP), trường Code sẽ định ra các gói tin Configure Request (1), Configure Ack (2), Configure Nak (3) nghĩa là không chấp nhận và Configure Reject (4).
Mỗi giao thức lớp 3 đều có NCP code xác định cho nó, và giá trị mã này được đặt trong trường protocol của gói tin NCP, một số giá trị ví dụ như sau:
Tham khảo thêm RFC 1662 và RFC 1549 mô tả cơ chế đóng khung cụ thể.
Chứng thực
Password Authentication Protocol (PAP)
Trong pha LCP, khi một kết nối PPP được yêu cầu bởi client và PAP được chọn dùng, access server sẽ ra lệnh cho client sử dụng PAP. Client sau đó sẽ phải gửi bộ username và password của mình, các thông tin này đều được truyền dưới dạng clear text mà không được mã hóa gì cả và được đóng gói trong các gói dữ liệu của PPP. Server sau đó sẽ quyết định chấp nhận hay từ chối việc thiết lập kết nối.Đây là cơ chế PAP một chiều giữa một client và một server. Nếu hai router nói chuyện với nhau thì Two-way PAP (PAP hai chiều) sẽ được sử dụng trong đó mỗi router sẽ gửi username và password, như vậy mỗi router sẽ chứng thực lẫn nhau.
Challenge Handshake Protocol (CHAP)
CHAP được sử dụng phổ biến hơn PAP, do nó có khả năng mã hóa mật khẩu cũng như dữ liệu.
Hai đầu kết nối chia sẻ bộ mã mật secret CHAP giống nhau và mỗi đầu được gán một local name riêng.
Việc băm (Hashing) hoàn toàn khác với việc mã hóa thông tin bởi vì thông tin sẽ không thể được khôi phục lại sau khi thực hiện hàm băm. Trong các router của Nortel Networks Code C223 xác định họat động của CHAP.
RFC 1994 mô tả chi tiết về CHAP trong khi RFC 1334 mô tả các giao thức chứng thực khác.
Theo IPMAC Informatic Technology
PPP được xây dựng dựa trên nền tảng giao thức điều khiển truyền dữ liệu lớp cao (High-Level Data link Control (HDLC)) nó định ra các chuẩn cho việc truyền dữ liệu các giao diện DTE và DCE của mạng WAN như V.35, T1, E1, HSSI, EIA-232-D, EIA-449. PPP được ra đời như một sự thay thế giao thức Serial Line Internet Protocol (SLIP), một dạng đơn giản của TCP/IP.
PPP cung cấp cơ chế chuyển tải dữ liệu của nhiều giao thức trên một đường truyền, cơ chế sửa lỗi nén header, nén dữ liệu và multilink. PPP có hai thành phần:
- Link Control Protocol (LCP): (được đề cập đến trong RFC 1570) thiết lập, điều chỉnh cấu hình, và hủy bỏ một liên kết. Hơn thế nữa LCP còn có cơ chế Link Quality Monitoring (LQM) có thể được cấu hình kết hợp với một trong hai cơ chế chứng thực Password Authentication Protocol (PAP) hay Challenge Handshake Authentication Protocol (CHAP).
- Network Control Protocol (NCP): NCP làm nhiệm vụ thiết lập, điều chỉnh cấu hình và hủy bỏ việc truyền dữ liệu của các giao thức của lớp network như: IP, IPX, AppleTalk and DECnet.
Cả LCP và NCP đều họat động ở lớp 2. Hiện đã có mở rộng của PPP phục vụ cho việc truyền dữ liệu sử dụng nhiều links một lúc, đó là Multilink PPP (MPPP) trong đó sủ dụng Multilink Protocol (MLP) để liên kết các lớp LCP và NCP.
RFC 1661 đề cập tổng quan về giao thức PPP.
Định dạng khung dữ liệu
Chi tiết về định dạng khung của PPP như sau:
Có 5 pha trong quá trình thiết lập kết nối PPP:
- Dead: kết nối chưa họat động
- Establish: khởi tạo LCP và sau khi đã nhận được bản tin Configure ACK liên kết sẽ chuyển sang pha sau: authentication
- Authenticate: có thể lựa chọn một trong hai cơ chế PAP hay CHAP.
- Network: trong pha này, cơ chế truyền dữ liệu cho các giao thức lớp Network được hỗ trợ sẽ được thiết lập và việc truyền dữ liệu sẽ bắt đầu.
- Terminate: Hủy kết nối
Có thể sử dụng cơ chế Piggyback routing để cache lại các thông tin định tuyến và chỉ truyền khi kết nối đã thông suốt.
Trong gói LCP (được chứa trong trường Information của gói tin PPP), trường Code sẽ định ra các gói tin Configure Request (1), Configure Ack (2), Configure Nak (3) nghĩa là không chấp nhận và Configure Reject (4).
Mỗi giao thức lớp 3 đều có NCP code xác định cho nó, và giá trị mã này được đặt trong trường protocol của gói tin NCP, một số giá trị ví dụ như sau:
Code..............................Protocol
8021..................................... IP
8029 ....................................AT
8025 ......................XNS, Vines
8027 ............................DECnet
8031 ..............................Bridge
8023 .................................OSI
8021..................................... IP
8029 ....................................AT
8025 ......................XNS, Vines
8027 ............................DECnet
8031 ..............................Bridge
8023 .................................OSI
Tham khảo thêm RFC 1662 và RFC 1549 mô tả cơ chế đóng khung cụ thể.
Chứng thực
Password Authentication Protocol (PAP)
Trong pha LCP, khi một kết nối PPP được yêu cầu bởi client và PAP được chọn dùng, access server sẽ ra lệnh cho client sử dụng PAP. Client sau đó sẽ phải gửi bộ username và password của mình, các thông tin này đều được truyền dưới dạng clear text mà không được mã hóa gì cả và được đóng gói trong các gói dữ liệu của PPP. Server sau đó sẽ quyết định chấp nhận hay từ chối việc thiết lập kết nối.Đây là cơ chế PAP một chiều giữa một client và một server. Nếu hai router nói chuyện với nhau thì Two-way PAP (PAP hai chiều) sẽ được sử dụng trong đó mỗi router sẽ gửi username và password, như vậy mỗi router sẽ chứng thực lẫn nhau.
Challenge Handshake Protocol (CHAP)
CHAP được sử dụng phổ biến hơn PAP, do nó có khả năng mã hóa mật khẩu cũng như dữ liệu.
Hai đầu kết nối chia sẻ bộ mã mật secret CHAP giống nhau và mỗi đầu được gán một local name riêng.
- Giả sử một user A quay số truy cập vào access server B.
- Access server sẽ gửi qua đường truyền một gói tin khởi tạo chứng thực Type 1 gọi là gói tin Challenge. Gói tin Challenge này chứa một số được sinh ngẫu nhiên, một số ID sequence number để xác định challenge và tên chứng thực của challenager
- Bên gọi sẽ lấy ra chuỗi authentication name, và tìm trong dữ liệu của mình chuỗi mã mật CHAP ứng với user name nhận được.
- Caller sẽ nhập mã mật của CHAP, số ID sequence number và một giá trị số được sinh ngẫu nhiên vào thuật toán băm Message Digest 5 (MD5).
- Giá trị kết quả sau khi tính toán hàm băm được gửi trả lại cho Challenger (Access server) trong một gói CHAP Response (Type 2) chứa chuỗi băm, tên chứng thực của caller và cuối cùng là ID (Sequence Number) được lấy từ gói Challenge.
- Khi nhận được gói Response Type 2, Challenger sẽ sử dụng ID để tìm gói Challenge nguyên thủy.
- username của caller (A) được sử dụng để tìm kiếm mã mật CHAP từ một local database, hay một RADIUS server hoặc một TACACS+ server.
- ID, giá trị Challande gốc được sinh ngẫn nhiên và giá trị CHAP ngẫu nhiên ban đầu và mã mật của được đưa vào xử lỷ bởi hàm băm MD5.
- Chuỗi băm kết quả sau khi tính toán sau đó được so sánh với giá trị nhận được trong gói Response.
- Nếu 2 chuỗi là giống nhau thì quá trình chứng thực CHAP đã thành công và các gói Type 3 được gửi đến caller chứa ID. Điều này có nghĩa là kết nối đã được chứng thực hợp lệ.
- Nếu chứng thực CHAP thất bại, một gói tin Type 4 sẽ được gửi đến caller trong đó chứa original ID, xác nhận quá trình chứng thực là không thành công.
Việc băm (Hashing) hoàn toàn khác với việc mã hóa thông tin bởi vì thông tin sẽ không thể được khôi phục lại sau khi thực hiện hàm băm. Trong các router của Nortel Networks Code C223 xác định họat động của CHAP.
RFC 1994 mô tả chi tiết về CHAP trong khi RFC 1334 mô tả các giao thức chứng thực khác.
Theo IPMAC Informatic Technology
Comment