giao thức radius là gì? trình bày các dịch vụ bảo mật radius hỗ trợ?

TÌM HIỂU GIAO THỨC RADIUS PROTOCOL: ĐỒ ÁN MÔN HỌC BẢO MẬT THÔNG TIN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 51 trang )

Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP. HCM
ĐỒ ÁN MÔN HỌC BẢO MẬT THÔNG TIN
TÌM HIỂU GIAO THỨC RADIUS PROTOCOL
Ngành : CÔNG NGHỆ THÔNG TIN
Chuyên ngành : MẠNG MÁY TÍNH
Giảng viên hướng dẫn : VĂN THIÊN HOÀNG
TP. Hồ Chí Minh, 2012
MỤC LỤC
1
Nhóm thực hiện: Nhóm 03 Lớp : 10LDTHM1
1. Nguyễn Đăng Hải 1081020022
2. Hoàng Nguyễn Minh Tuấn 1081020115
3. Trần Khánh Mạnh Phương 1081020080
4. Huỳnh Thị Minh Ly 1081020066
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
o)0(o
Mở đầu 2
CHƯƠNG 1 : TỔNG QUAN VỀ GIAO THỨC RADIUS 3
1.1 Những nét chính về giao thức Radius 3
1.2 Lịch sử phát triển và các RFC liên quan 4
1.3 Kiến trúc AAA 5
1.4 Dịch vụ an ninh Radius hỗ trợ 9
1.5 Một số phuơng thức và thuật toán trong Radius 9
1.6 Các ứng dụng công nghệ và mô hình triển khai Radius hiện nay 14
1.7 Ưu điểm và nhược điểm 16
CHƯƠNG 2: CẤU TRÚC, NGUYÊN LÝ HOẠT ĐỘNG
VÀ THUẬT TOÁN ÁP DỤNG 17
2.1 Nguyên lý hoạt động 17
2.1.1 Xác thức-Ủy quyền 17


2.1.2 Kế toán 21
2.2 Cấu trúc gói tin 23
2.3 Ý nghĩa một số trường thuộc tính 26
CHƯƠNG 3: MÔ HÌNH THỰC NGHIỆM VÀ KẾT LUẬN 31
3.1 Mô hình triển khai thực nghiệm 31
3.2 Các bước triển khai cài đặt 32
3.3 Bắt và phân tích gói tin 38
3.4 Kết luận 47
TÀI LIÊU THAM KHẢO 48
2
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
MỞ ĐẦU
Ngày nay, với sự phát triển của xã hội cùng sự tiến bộ vượt bậc về khoa học kỹ
thuật, đặc biệt là ngành mạng máy tính, internet đã không còn là khái niệm xa lạ với
tất cả mọi người. Hiện nay internet như một món ăn tinh thần không thể thiếu, từ công
việc đến học hành, từ thông tin liên lạc đến giải trí, từ tra cứu tìm kiếm thông tin đến
giao lưu kết bạn. Bên cạnh những lợi ích không thể phủ nhận mà internet mang lại
vẫn còn đâu đó những mối hiểm họa tiềm ẩn. Một trong những vấn đề đáng lo ngại và
được mọi người quan tâm nhất chính là việc bảo mật thông tin trong quá trình sử dụng
các dịch vụ, tiện ích của internet. Thông tin, dữ liệu có khả năng bị các kẻ xấu giả mạo
hoặc đánh cắp nhằm mục đích phá hoại hay vụ lợi cá nhân. Chẳng hạn có một công ty
xây dựng một hệ thống mạng cho phép nhân viên có thể kết nối truy cập tại nhà để sử
dụng tài nguyên và dịch vụ. Làm sao để xác định và đảm bảo chỉ có nhân viên của
công ty được phép kết nối đến hệ thống. Để giải quyết vấn đề này đòi hỏi cần có một
hệ thống đủ thông minh và an toàn để nhận biết đâu là nhân viên của công ty và đâu là
những kẻ tấn công từ bên ngoài. Một hệ thống có khả năng xác thực danh tính của
người dùng truy cập đến để quyết định người dùng đó được phép kết nối và sử dụng
tài nguyên, dịch vụ hay không. Chính xác hơn khi kết nối đến hệ thống người dùng
phải xác thực danh tính với một cái máy tính. Chiếc máy tính này sẽ sử dụng một
chuỗi các tiến trình và giao thức để xác minh rằng người dùng (máy tính) đang kết nối

đến có phải thực sự là nhân viên công ty hay không, cũng như tìm hiểu tất cả những dữ
liệu, thông tin nào nhân viên đó được phép truy cập đồng thời có khả năng phản hồi tất
cả những thông tin trên để thông báo cho người dùng. Cũng xuất phát từ nhu cầu thiết
yếu ấy, giao thức RADIUS ( Remote Access Dial In User Service ) đã ra đời để đảm
nhận những công việc kể trên.
Giao thức Radius hiện nay đang được sử dụng khá rộng rãi, đặc biệt là đối với
các nhà cung cấp phân phối mạng ISP và dần dần đã trở thành giao thức tiêu chuẩn
cho việc xác thực người dùng truy cập từ xa. Lí do nào mà giao thức Radius lại được
sử dụng phổ biến như vậy ? Nhóm chúng em xin chọn đề tài Tìm hiểu về giao thức
Radius để tìm hiểu rõ hơn về đặc điểm, nguyên lý hoạt động cũng như các phương
thức cũng và thuật toán bảo mật được sử dụng trong giao thức để có câu trả lời cho câu
hỏi vừa đặt ra. Đề tài bao gồm 3 chương
Chương 1: Tổng quan về giao thức Radius
Chương 2: Cấu trúc, nguyên lý hoạt động và thuật toán áp dụng
Chương 3: Mô hình thực nghiệm và kết luận
3
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
CHƯƠNG 1 : TỔNG QUAN VỀ GIAO THỨC RADIUS
1.1 Những nét chính về giao thức RADIUS:
Radius ( Remote Access Dial In User Service) là một giao thức bảo mật mạng
dựa theo mô hình Client Server, hoạt động ở tầng thứ 7 ( Application Layer) trong
mô hình OSI. Ban đầu giao thức này được phát triển để điều khiển truy cập và xác
thực người dùng ( thông qua kiểm tra username và password) trong những trường hợp
truy cập từ xa ( remote access). Tuy nhiên do tính chất là giao thức mở rông nên đã
không ngừng cải tiến và mở rộng và ngày càng sử dụng phổ biến rộng rãi cho các máy
chủ VPN (Vitual Private Network), các điểm truy cập không dây (wireless network),
xác thực chuyển mạch internet, truy cập DSL (Digital Subcriber Line) và các loại truy
cập mạng khác. Và là một trong các giao thức khá hữu dụng đối với các nhà quản lý
phân phối mạng ISP ( Internet Service Provider).
Được thiết kế dựa trên nền tảng kiến trúc AAA ( Authentication

Authorization Accouting ) đó là Xác thực - Ủy Quyền Kế toán và được mô tả khá
chi tiết trong tài liệu RFC 2865 ( đối với tính năng Authentication Authorization ) và
RFC 2866 ( với tính năng Accouting). Radius dùng giao thức UDP ( User Datagram
Protocol) và port 1812 ( Authentication- Authorization), 1813 (Accounting) trong quá
trình vận chuyển các gói tin. Tuy nhiên trước khi port 1812 và 1813 được chính thức
công bố, port 1645 và 1646 đã được khá nhiều Client/Server sử dụng và trở thành
cổng mặc định trong suốt thời gian này. Và thói quen đó vẫn còn sử dụng cho đến
ngày nay do dó một số server Radius được thiết lập lắng nghe trên cả 2 bộ port này.
Radius của Microsoft thiết lập port mặc định là UDP 1812 và UDP 1813, trong khi
Cisco thiết lập UDP 1812, 1645 và UDP 1813, 1646 làm port mặc định.
Ngoài ra, Radius còn sử dụng khá nhiều giao thức con hỗ trợ như PPP (Point to
Point Protocol), PAP (Password Authentication Protocol), CHAP(Challenge-
Handshake Authentication Protocol) , MS-CHAP, MS-CHAP v2( version Microsoft
của CHAP). cũng như một số thuật toán bảo mật như Share Secret , MD5 ,.
Khi Radius vừa xuất hiện, một câu hỏi lớn đuợc đặt ra đó là vì sao không sử
dụng TCP làm giao thức vận chuyển mà thay vào đó là dùng UDP. Nguyên nhân UDP
đuợc dùng để phù hợp với những yêu cầu kĩ thuật của Radius:
- Khi một yêu cầu gửi đến một Server Radius thất bại, yêu cầu đó đuợc chuyển
cho các Radius server khác. Để thực hiện đuợc yêu cầu này đòi hỏi một bản sao của
yêu cầu phải được giữ ở trên tầng giao vận cho phép truyền tải thay thế. Điều này có
nghĩa cần thiết bộ định thời gian tái thực hiện yêu câu (retransmission timer)
- Nguời dùng luôn muốn việc xác thực đăng nhập vào hệ thống diễn ra nhanh
chóng. Về mặt này, UDP đáp ứng đuợc về mặt truyền tải dữ liệu nhanh. Đồng thời,
giao thức Radius không yêu cầu việc phản hồi khi phát hiện dữ liệu bị mất. Nhờ vậy
giảm bớt thời gian khi tiến hành xác thực.
- Bản chất của giao thức Radius là phi trạng thái phù hợp với UDP. Với TCP,
client và server phải có mã đặc biệt hoặc giải pháp để giảm thiểu những ảnh hưởng của
tổn thất về điện năng, khởi động lại, nghẽn mạng, và ngừng hoạt động của hệ thống.
UDP giúp giải quyết điều đau đầu này vì cho phép một phiên làm việc mở trong suốt
toàn bộ các giao dịch.

4
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
- Để hỗ trợ trong những hệ thống lớn ( đôi khi xảy ra trì hoãn yêu cầu , và việc
tìm kiếm tốn thời gian) nên Radius yêu cầu hoạt động ở chế độ đa luồng
( multithread). UDP có khả năng giúp Server giải quyết nhiều yêu cầu cùng lúc và các
khách hàng cũng như thiết bị không bị ảnh huởng lẫn nhau trong quá trình giao dịch.
- Ngoài ra UDP còn giúp giảm lưu luợng đuờng truyền.
Một điểm yếu của việc sử dụng UDP đó là các nhà phát triển phải tự tạo và
quản lý thời gian tái thực hiện lại yêu cầu. So với khá nhìêu các ưu điểm vừa nêu trên
thì và đây cũng là một hạn chế không lớn lắm nên Radius đuợc quyết định sử dụng
UDP.
1.2 Lịch sử phát triển của giao thức và các RFC liên quan:
Cũng giống như mọi giao thức khác, Radius được xây dựng từ nhu cầu thiết
yếu của con người. Trong trường hợp này, vấn đề đặt ra là cần có một phương pháp có
khả năng xác thực, ủy quyền và kế toán cho những người dùng có nhu cầu truy cập tài
nguyên máy tính một cách không đồng nhất. Từ năm 1990-1995, hệ thống mạng
Merit, một những nhà tiên phong sáng lập nên hệ thống internet, quản lí một số lượng
lớn các tài nguyên các thuê bao truy cập quay số (dial-up) trên toàn California. Vào
thời điểm đó, phương pháp xác thực được sử dụng khá đặc biệt và cho từng phần cụ
thể của thiết bị nên tốn khá nhiều chi phí đầu tư cũng như độ linh hoạt không cao trong
việc quản lý và lập báo cáo. Khi số lượng người sử dụng truy cập quay số càng tăng
lên, công ty nhận ra cần có một cơ chế linh hoạt hơn và mở rộng hơn so với các đoạn
kịch bản ( script) cùng các thiết bị độc quyền, khó sử dụng này. Merit đã gửi đi lời yêu
cầu đề nghị tìm phương pháp giải quyết vấn đề này, một doanh nghiệp mang tên
Livingston đã sớm có lời phúc đáp đầu tiên. Sau đó đại diện của cả hai bên Merit và
Livingston đã liên lạc với nhau và kết quả của cuộc hội nghị đó phiên bản đầu tiên của
giao thức Radius ra đời. Sau đó đã nhiều phần mềm được xây dựng để hoạt động dựa
các thiết bị dịch vụ do Livingston sản xuất và các máy chủ Radius do Merit cung cấp
trên nền hệ điều hành Unix. Đến tháng 1/1997 giao thức Radius được xuất bản thành
RFC 2058 ( Authentication Authorization) và 2059 (Accounting). Phiên bản tiêu

chuẩn hóa hiện nay RFC 2865 và RFC 2866 được phát hành vào tháng 6/2000. Tên
của nhà sáng lập ra giao thức Radius, Steve Willins vẫn còn được nhắc tên trong các
tài liệu RFC.
Diameter, một giao thức được khởi đầu tại một trong những cuộc họp không
chính thức ngay sau khi nhóm làm việc về giao thức Radius được bầu ra, ban đầu giao
thức này được dự dịnh như một phiên bản tối ưu (clean version) của Radius. Một số
lời kiến nghị gọi đây là Radius v2 nhưng IETF không chấp nhận lời kiến nghị này vì
Radius v1 vẫn đang trong thời gian được phê duyệt. Giao thức mới này về sau được
gọi là Diameter, hiệu quả gấp đôi so với Radius và được IETF tiêu chuẩn hóa thành
bản RFC 3588. Điểm mạnh của Diameter đó là sử dụng giao thức vận tải SCTP và
TCP thay cho UDP của Radius.
Tuy nhiên, do đặc tính là một giao thức mở rộng, Radius cũng không ngừng
phát triển và mở rộng để trở nên hoàn thiện hơn. Nhiều phần mở rộng đã được thêm
vào cùng với các bản RFC bổ sung đã mở rộng cho Radius từ chỉ hỗ trợ truy cập quay
số ( dial up) thành hỗ trợ tất cả các dạng xác thực, ủy quyền và kế toán qua mạng.
Những phần mở rộng này đã loại bỏ khá nhiều những hạn chế, động lực ban đầu trong
5
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
việc tạo ra giao thức Diameter cũng như giảm đi nhiều những tiến bộ trong việc
thương mại hóa giao thức này. Ngày nay, Radius đã được sử dụng rộng rãi, đặc biệt là
đối với các nhà quản lí cung cấp phân phối mạng internet ISP và dần dần trở thành
giao thức tiêu chuẩn đối với người dùng truy cập từ xa.
Tổng hợp một số bản RFC hiện nay của Radius:
RFC 2865: Authentication & Authorization (Draft Standard)
RFC 2866: Accounting (Information)
RFC 2867: Accounting extensions for Tunneling (Information)
RFC 2868: Attributes for Tunneling (Information)
RFC 2869: RADIUS Extensions (Information)
RFC 3162: RADIUS and IPv6 (Proposed Standard)
RFC 3575: IANA Considerations (Proposed Standard)

RFC 3576: Dynamic Authorization Extensions (Information)
RFC 3579: RADIUS Support for EAP (Information)
RFC 3580: IEEE 802.1X Usage Guidelines (Information)
1.3 Kiến trúc AAA:
Một kiến trúc AAA đơn thuần một thiết kế đuợc vạch ra để đảm bảo cho các
thành phần có thể hoạt động phù hợp với nhau. Việc triển khai một mô hình kiến trúc
AAA phức tạp hay đơn giản tùy vào môi truờng sử dụng. Chính xác hơn kiến trúc này
đuợc thiết kế để làm việc trong những môi truờng đa dạng về yêu cầu của nguời dùng
cũng như đa dạng về các thiết kế hệ thống mạng. Để đạt đuợc khả năng này thì kiến
trúc AAA cần phải có một số thuộc tính quan trọng.
Đầu tiên, mô hình AAA phụ thuộc vào sự tuơng tác của máy khách và máy chủ,
trong truờng hợp này là một máy khách gửi yêu cầu về việc sử dụng một tài nguyên
hay một dịch vụ nào đó trên một hệ thống máy chủ. Môi truờng Client- Server đảm
bảo cho một thiết kế cân bằng tải tốt, đáp ứng đuợc 2 yếu tố quan trọng đó là khả năng
sẵn sàng phục vụ và thời gian phản hồi. Đặc biệt là máy chủ có thể đuợc phân cấp và
phân phối trong toàn hệ thống mạng.
Một yếu tố cũng ảnh hưởng đến kiến trúc AAA này đó là proxy. Một máy chủ
AAA được cấu hình để cấp quyền cho một yêu cầu gửi đến hoặc cho phép yêu cầu đó
đi qua để đến một máy chủ AAA khác, quá trình lập lại đến khi nào đến đúng được
máy chủ thích hợp để cấp quyền về tài nguyên cho yêu cầu đó. Một chuỗi proxy được
tạo ra và trong đó các máy chủ AAA gửi đi yêu cầu từ client cũng như từ các máy chủ
trung gian khác. Chính vì thế mô hình đòi hỏi phải có mối quan hệ tin tưởng giữa
client / server cũng như giữa các server AAA với nhau.
Khi một client gửi yêu cầu cần truy cập đến một dịch vụ và tài nguyên nào đó
từ một máy chủ AAA ( client ở đây bao hàm cả các AAA proxy trung gian), để đến
được máy chủ AAA cần thiết phải thông qua 1 trong 2 hình thức giao dịch đó là hop-
to-hop và end-to-end.
Đối với giao dịch hop-to-hop, khi client gửi một yêu cầu khởi tạo đến một thiết
bị AAA. Một mối quan hệ tin cậy sẽ được thiết lập giữa client và server AAA đó. Và
server xác định rằng yêu cầu này cần phải được chuyển đến một server AAA ở khu

vực khác vì vậy sẽ hoạt động như một proxy và tiến hành liên lạc. Tiếp đến sẽ phải
6
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
thiết lập mối quan hệ tin cậy giữa 2 server AAA này, server AAA hoạt động như một
proxy lúc này được xem như một client và server AAA cần liên lạc đến đóng vai trò
của một server. Tuy nhiên mối quan hệ tin cậy không được phép kế thừa, tức là giữa
client khởi tạo yêu cầu và server AAA thứ 2 không có mối quan hệ tin cậy.
Hình 1.1 MỐI QUAN HỆ TIN CẬY TRONG GIAO DỊCH HOP-TO-HOP
Sự khác biệt giữa 2 hình thức giao dịch hop-to-hop và end-to-end là là cách
thiết lập mối quan hệ tin cậy trong mô hình. Giữa các server lúc này không cần phải
thiết lập mối quan hệ tin cậy với nhau nữa, mà chủ yếu tập trung vào mối quan hệ tin
cậy giữa khách hàng tạo yêu cầu và máy chủ AAA cuối cùng. Và do không có mối
quan hệ tin cậy giữa các server nên việc gửi các thông tin nhạy cảm thông qua các yêu
cầu proxy giữa các server đòi hỏi phải có sự xác thực và đảm bảo về tính toàn vẹn dữ
liệu. Thông thường để giải quyết vấn đề này, người ta sử dụng giấy chứng nhận số
hoặc các chứng nhận của hệ mã khác công khai ( PKI Public Key Infrastructure).
7
Máy chủ AAA khởi tạo
Mối quan hệ tin cậy Mối quan hệ tin cậy
Mối
quan
hệ tin
cậy
Máy chủ AAA
cuối
Máy chủ AAA
trung gian
Ở đây không có mối quan hệ tin cậy nào
giữa máy khách và máy chủ AAA trung gian
và máy chủ AAA cuối

Máy khách
Yêu cầu Proxies
Yêu cầu Proxies
Gửi yêu cầu
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
Hình 1.2 MỐI QUAN HỆ TIN CẬY TRONG GIAO DỊCH END-TO-END
1.3.1 Xác thực (Authentication):
Xác thực là quá trình xác minh danh tính của một người ( hay một máy tính).
Hình thức xác thực phổ biến thường thấy nhất hiện nay là sự kết hợp giữa tên đăng
nhập (ID logon) và mật khẩu (password). Trong đó phần mật khẩu sẽ đại diện cho tính
xác minh về người sử dụng. Tuy nhiên, việc phân phối mật khẩu sẽ phá hủy phương
pháp xác thực này. Do đó những trang web thương mại điện tử và các giao dịch kinh
doanh thông qua internet đòi hỏi phải có một cách thức xác thực phù hợp, mạnh mẽ và
đáng tin cậy hơn. Và giấy chứng nhận số ( digital certificate) là một trong những
hướng giải quyết phù hợp, giấy chứng nhận số là một cái gì đó chứng nhận bạn là ai
trên internet hoặc trong mạng nội bộ. Giấy chứng nhận số có thể là một số ID cá nhân
( personal ID) hoặc là một chữ kí điện tử ( digital signature) được dùng để chứng minh
tính xác thực hoặc đảm bảo một thông báo được gửi đúng từ người mà bạn cho rằng đã
xuất phát từ đó và không bị thay đổi trong suốt quá trình truyền đi.
Một giấy chứng nhận số xác minh tính xác thực của người đang tải thông tin
đến một máy chủ an toàn. Ngoài ra, một server cũng cần giấy chứng nhận để xác minh
tính xác thực đối với người truy cập, nghĩa là cần phải sự xác minh từ 2 phía để đảm
bảo về tính an toàn. Giấy chứng nhận được phát hành bởi CA ( certificate authority
người có thẩm quyền cấp giấy chứng nhận), là một tổ chức đáng tin cậy nhằm xác
nhận các chứng từ và đóng dấu xác nhận lên những chứng từ này. Toàn bộ quá trình
xác nhận sử dụng một cơ chế an toàn, đã biết và đáng tin cậy, dựa trên hệ mã hóa dùng
khóa công khai. Một trong những công ty chứng nhận có uy tín nhất trên thế giới hiện
nay đó là Verisign.
Định nghĩa đơn giản nhất về giấy chứng nhận số là một vật chứa ( container)
gồm khóa công khai của người dùng và đôi khi là một vài thông tin của người dùng

đó. Và vật chứa này sau đó được ký bởi một CA đáng tin cậy dùng các khóa riêng của
8
Máy chủ AAA khởi tạo
Máy chủ AAA cuốiMáy chủ AAA trung gian
Yêu cầu Proxies
Không có mối quan hệ
tin cậy nào giữa các
máy chủ Proxy
Mối quan hệ tin tưởng
Máy khách
Yêu cầu Proxies
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
nó. Về cơ bản, CA chấp nhận giấy chứng nhận và mã hoá nội dung. Sau đó các giấy
chứng nhận này đuợc dùng cho các giao dịch kinh doanh cũng như để đăng nhập an
toàn vào máy chủ. Hệ thống chấp nhận giấy chứng nhận có thể nhận đuợc một bản sao
các khoá công khai của CA và kiểm tra rằng giấy chứng nhận là đúng.
Tóm lại mục đích chính của việc xác thực đó là tạo một mối quan hệ đáng tin
cậy giữa hai đối tuợng tham gia, hay chính xác hơn là giữa hai nguời dùng hợp lệ.
Việc tạo ra mối quan hệ tin cậy giữa 2 hệ thống này cho phép thực hiện các chức năng
quan trọng đó máy chủ proxy, tại máy chủ này hệ thống chấp nhận các yêu cầu từ một
đại diện của hệ thống khác và cho phép triển khai thực hiện cơ chế AAA để mở rộng
thành hệ thống không đồng nhất để hỗ trợ cho nhiều loại khách hàng và dịch vụ khác
nhau.
1.3.2 Ủy quyền (Authorization):
Một buớc khá quan trọng tiếp theo của việc xác thực đó là Ủy quyền. Việc ủy
quyền này có liên quan đến sử dụng một số các tập hợp luật lệ ( rule) hoặc một số kiểu
mẫu (templates) để quyết định xem những nguời dùng đã qua đuợc khâu xác thực
đuợc phép làm gì trên hệ thống. Ví dụ như, đối với truờng hợp một nhà quản lý phân
phối mạng internet ISP, việc uỷ quyền sẽ quyết định xem thuê bao tài khoản nào đuợc
cấp phát IP tĩnh thay vì phải do hệ thống DHCP cấp phát như thuờng lệ. Và những luật

lệ này do chính nhà quản trị hệ thống ( administrator) định nghĩa.
Một hệ thống máy chủ AAA đòi hỏi cần phải có sự logic và nhạy bén trong
việc giải quyết các yêu cầu. Nghĩa là khi một yêu cầu gửi đến, hệ thống cần phải phân
tích xem đâu là những yêu cầu hợp lệ và đồng thời cấp quyền truy cập đến bất cứ
những gì đuợc phép truy cập. Chẳng hạn, một thuê bao khách hàng truy cập quay số
yêu cầu một đa kết nối (multilink) đến server. Một hệ thống AAA bình thuờng sẽ đơn
giản từ chối yêu cầu này nhưng một hệ thống tốt và đủ thông minh sẽ tiến hành phân
tích yêu cầu, và xác định rằng một khách hàng chỉ đuợc phép có một kết nối quay số
đến, sau đó sẽ mở một kênh để kết nối với khác hàng này trong khi từ chối các kênh
khác.
1.3.3 Kế Toán (Accounting) :
Tính năng quan trọng còn lại của kiến trúc AAA đó chính là kế toán, đây là tính
năng dùng để tính toán và tài liệu hoá lại về tất cả những tài nguyên mà một nguời
dùng đã sử dụng trong suốt quá trình truy cập. Điều này bao cả việc tính toán đuợc lưu
luợng thời gian hệ thống cũng như là dung luợng của nguời dùng trong quá trình gửi
và nhận trong một phiên làm việc. Thực ra kế toán là quá trình ghi nhận lại số liệu
thống của các phiên làm việc cũng như việc sử dụng thông tin để phục vụ cho việc
kiểm soát uỷ quyền truy cập, thanh toán, phân tích các khuynh huớng sử dụng, sử
dụng tài nguyên hiệu quả
Các dữ liệu của việc kế toán có khá nhiều mục đích sử dụng. Một nhà quản trị
có thể phân tích các yêu cầu thành công để xác định và dự đoán về năng lực tải dữ liệu
của hệ thống trong tuơng lai. Một nguời chủ kinh doanh có thể theo dõi các dịch vụ
đang đuợc sử dụng và thông qua đó sẽ điều chỉnh để có mức thanh toán hợp lý. Một
chuyên gia an ninh có thể xem xét về các yêu cầu bị từ chối, kiểm tra xem có những gì
khả nghi hoặc không bình thuờng hay không, nhờ đó có thể sớm chặn đuợc những tay
9
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
tin tặc hay nhưng kẻ tải lậu dữ liệu (freeloader). Tóm lại các dữ liệu kế toán này khá
hữu ích đối với một quản trị viên của hệ thống máy chủ kiến trúc AAA
1.4 Dịch vụ an ninh Radius hỗ trợ:

Được xây dựng dựa trên nền tảng kiến trúc AAA nên Radius thừa hưởng tất cả các
tính chất cũng như các chức năng bao gồm cả xác thực, ủy quyền và kế toán. Tuy
nhiên với tính chất là một giao thức bảo mật mạng, các chức năng này phải được xây
dựng để phục vụ các dịch vụ an ninh. Hiện nay hầu hết tất giao thức bảo mật mạng
được xây dựng theo chuẩn chung đó là X.800 hoặc RFC 2828. Theo chuẩn X.800 có 5
hình thức bảo mật bao gồm: xác thực, điều khiển truy cập, toàn vẹn dữ liệu, bảo mật
thông tin và chống chối bỏ. Điểm mạnh của Radius đó là hỗ trợ hoàn toàn 5 hình thức
bảo mật trên
Xác thực: xác minh danh tính của một người ( hay một máy tính) tham gia truy cập
vào hệ thống để thiết lập mối quan hệ tin cậy ( trust relationship). Để phục vụ dịch vụ
này, Radius cho phép hỗ trợ sử dụng khá nhiều giao thức xác thực như PAP, CHAP,
MS-CHAPv1,MS-CHAPv2, EAP v.v.
Điều khiển truy cập: kết hợp với bước xác thực ở trên hệ thống tiến hành phân tích
và xác định các yêu cầu gửi đến để cấp quyền truy cập đến những tài nguyên cũng như
dịch vụ đối với những yêu cầu hợp lệ. Đồng thời ngăn chặn những yêu cầu truy cập
trái phép từ bên ngoài.
Toàn vẹn dữ liệu: Radius sử dụng cơ chế bí mật chia sẻ ( share secret) để đảm bảo
dữ liệu không bị thay đổi trong quá trình vận chuyển.
Bảo mật dữ liệu: Radius sử dụng khóa secret ( share secret) kết hợp với hàm băm
MD5 và trường Authenticator Request để mã hóa bảo vệ cho trường thông tin user-
password trong quá trình truyền tải. Ngoài ra toàn bộ quá trình truyền tải đều tiến hành
trong mạng nội bộ nên giảm thiểu nguy cơ tấn công.
Chống chối bỏ: Radius sử dụng trường thông tin Authenticator Response trong các
gói tin để đảm bảo các gói tin gửi đi là của server. Riêng các cầu yêu cầu Access-
Request đòi hỏi phải cấu hình sử dụng truờng Message-Authenticator để thực hiện
dịch vụ này.
1.5 Một số phuơng thức và thuật toán trong Radius
1.5.1 Giao thức xác thực :
PAP ( Password Authentication Protocol): là một cơ chế xác thực người dùng thông
qua việc sử dụng trường thông tin password. PAP sử dụng giao thức PPP (Point to

Point Protocol) để xác nhận người dùng trước khi cho phép truy cập vào tài nguyên
của hệ thống. Hầu hết các hệ thống xác thực cho người dùng từ xa đều hỗ trợ cơ chế
này. Cơ chế của PAP được xem là không an toàn vì quá trình truyền tải mã ASCII của
password qua mạng không được mã hóa. Vì vậy nếu ko hỗ trợ các giao thức xác thực
khác như CHAP hoặc EAP thì mới dùng đến giao thức này.
Giao thức xác thực dựa trên password là giao thức mà 2 bên tham gia chia sẻ
một password từ trước và dựa vào password đó làm cơ sở để xác thực. Hiện tại hệ
thống xác thực dựa trên mật khẩu được phân thành 2 loại : hệ thống xác thực mật khẩu
yếu và mạnh (weak-password authentication và strong-password authen tication).
10
PAP-Auth-Request #1 (Name=u1, Passwd=123)
PAP-Auth-Success #1 (Message="00")
PAP-Auth-Failure #1 (Message="Incorrect Password")
Access-Request
User-Name=u1
User-Password=red
Access-Accept
Access-Reject
Remote Client
Radius Server
Radius Client
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
Trong đó giao thức xác thực mật khẩu mạnh có lợi thế hơn các so với xác thực mật
khẩu yếu, trong đó chi phí tính toán của họ là nhẹ hơn, thiết kế đơn giản, và thực hiện
được dễ dàng hơn, và do đó đặc biệt thích hợp đối với một số môi trường hạn chế.
HINH 1.3 MÔ HÌNH MINH HỌA RADIUS DÙNG CƠ CHẾ XÁC THỰC PAP
Cơ chế làm việc:
- User sẽ gửi lên hệ thống username và password
- Server sẽ phản hồi authentication-ack (nếu thông tin phù hợp) hoặc
authenticationnak nếu không phù hợp

CHAP (Challenge /Handshake Authentication Protocol) : cơ chế cho phép ngăn chặn
tấn công theo kiểu replay attack (Replay attack là dạng thức tấn công mà hacker chặn
đứng dòng dữ liệu thay đổi nó và truyền lại cho người nhận mà người nhận vẫn không
biết gì về điều này) bằng cách thông qua bộ đếm các bước thay đổi (incrementally
changing identifier) và một biến giá trị challenge(Challenge value). CHAP yêu cầu cả
2 bên tham gia phải nắm được bản rõ của của một giá trị bí mật mặc dù giá trị này
không bao giờ được gửi qua mạng. Đối với các phiên bản MS-CHAP thì không yêu
cầu cả 2 bên biết bản rõ, tuy nhiên lại vấp phải một số nhược điểm khác.Cũng như
PAP, CHAP dùng giao thức PPP để xác nhận danh tính của nguời dùng truy cập từ
xa . CHAP sẽ định kì xác minh danh tính của nguời dùng bằng cách sử dụng cơ chế
bắt tay ba bước. Điều này xảy ra tại thời điểm thiết lập liên kết ban đầu (LCP- Link
Control Protocol), và có thể xảy ra một lần nữa bất cứ lúc nào sau đó. Xác minh được
dựa trên một bí mật được chia sẻ (share secret) (chẳng hạn như mật khẩu của người
dùng).
11
Radius Client Radius Server
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
HÌNH 1.4 MÔ HÌNH MINH HỌA RADIUS DÙNG CƠ CHẾ XÁC THỰC CHAP
Cơ chế làm việc:
- Sau khi liên kết đuợc thiết lập hệ thống sẽ gửi một thông điệp challenge đến
nguời dùng.
- Nguời dùng sẽ phản hồi bằng một giá trị đuợc tính bằng cách sử dụng một
hàm băm một chiều trên giá trị challenge nhận đuợc và kết hợp với mã bí mật
chia sẻ.
- Tại hệ thống cũng tiến hành tự tính toán giá trị tuơng tự như của nguời dùng.
Nếu các giá trị phù hợp, thực hiện xác nhận chứng thực, nếu không sẽ chấm dứt
kết nối.
- Sau một khoảng thời gian ngẫu nhiên hệ thống lại tiến hành thực hiện chứng
thực gửi một challenge mới đến nguời dùng và các buớc đuợc lặp đi lặp như
vậy.

MS-CHAP v1,v2 (các phiên bản CHAP của Microsoft):
Những điểm khác nhau giữa phiên bản MS-CHAP và CHAP :
- Đuợc thết kể phù hợp với sản phẩm của Windows
- Không đòi hỏi lưu trữ bản rõ hay bản đã mã hoá của password
- Cung cấp cơ chế xác thực lặp lại và cơ chế chuyển đổi password
- Định nghĩa 1 dãy code phục vụ cho việc phản hồi khi gửi thông điệp thất bại
12
CHAP-Auth-Challenge #1 (Chall. Length=16,
Challenge Value= 0c7d203 a8, Name= tnt2)
Auth-Response #1 (Chall. Length=16, Challenge Value=
016b89 91, Name= u1)
CHAP-Auth-Success #1 (Message="00")
CHAP-Auth-Failure #1 (Message="Incorrect Password")
Access-Request
User-Name=u1
CHAP-Password=016b89 91
[CHAP-Challenge*=0c7d203 a8]
Access-Accept
Access-Reject
NAS
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
HÌNH 1.5 MÔ HÌNH MINH HỌA
BẮT TAY LCP XÁC ĐỊNH PHUƠNG THỨC XÁC THỰC
EAP(Extensible Authentication Protocol) thuờng đuợc sử dụng để xác thực trong các
hệ thống mạng không dây với kết nối PPP. Điểm chính của phuơng thức xác thực này
là dùng khoá và các tham số tùy theo các phuơng thức mà EAP hỗ trợ ( EAP-MD5,
EAP-OTP, EAP-GTC, EAP-TLS, EAP-IKEv2, EAP-SIM, EAP-AKA and EAP-AKA
.). Mỗi giao thức sử dụng định nghĩa một cách để đóng gói các thông điệp EAP
trong tin nhắn của giao thức.
1.5.2 Cơ chế share secret :

Một bí mật chia sẻ ( share secret) là một đoạn chuỗi được xem như một mật
khẩu giữa :
- Radius Client và Radius Server
- Radius Client và Proxy Radius
- Proxy Radius và Radius Server
Trong trường hợp hệ thống bao gồm một Radius Client, một Proxy Radius, và
một Radius Server, thì mã chia sẻ bí mật được sử dụng giữa Radius client và Proxy
Radius có thể là khác so với mã bí mật chia sẻ được sử dụng giữa Proxy Radius và
Radius Server.
Share secret được dùng để xác minh các thông điệp Radius ( ngoại trừ Access
Request) trong quá trình trao đổi giữa các máy đã thực hiện chia sẻ mã bí mật từ trước.
Bí mật được chia sẻ cũng xác nhận rằng các thông điệp Radius này đã không bị sửa
đổi trong quá trình vận chuyển ( đảm bảo tính toàn vẹn dữ liệu). Ngoài ra mã chia sẻ bí
mật cũng được sử dụng để mã hóa một số thuộc tính trong thông điệp Radius, chẳng
13
Config-Request #1 (MRU=1524, auth=PAP, )
Config-Ack #2 (MRU=1524, auth=PAP, )
Config-Reject #1 (auth=PAP)
Config-Request #2 (MRU=1524, auth=CHAP/MD5)
Config-Ack #2 (MRU=1524, auth=CHAP/MD5)
Config-Request #1 (MRU=1524, auth=PAP, )
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
hạn User-Password và Tunel-Password. Để thực hiện tính xác minh cho thông điệp
Access-Request, phải cấu hình sử dụng trường thông tin Messeage -Authenticator trên
NAS (Radius Client) và cả Remote user.
Những điểm lưu ý khi tạo và sử dụng mã chia sẻ bí mật:
- Mã chia sẻ bí mật là thông tin nhạy cảm được chia sẽ dùng chung giừa 2 máy
Radius ( Client và Server)
- Nếu trong hệ thống cấu hình proxy Radius, giữa các cặp Radius Client/server
phải sử dụng mã chia sẻ bí mật khác nhau.

- Nên sử dụng mã chia sẻ bí mật có độ dài hơn 22 kí tự để đảm bảo an toàn
- Để tạo một mã chia sẻ bí mật an toàn nên tạo 1 chuỗi ngẫu nhiên bao gồm kí
tự hoa và thường ( a-z, A-Z), kí tự số (0-9) và kí tự hình ( !, ? , : ,.) và thường
xuyên thay đổi mã chia sẻ bí mật này.
Ví dụ về một mã chia sẻ bí mật an toàn: 8d#>9fq4bV)H7%a3-zE13sW
1.4.2.3 Hàm băm MD5 :
MD5 ( Message-Digest algorithm 5) là một
Bộ tạo Hash mật mã được sử dụng phổ biến với giá
trị Hash dài 128-bit. Là một chuẩn Internet (RFC
1321), MD5 đã được dùng trong nhiều ứng dụng bảo
mật, và cũng được dùng phổ biến để kiểm tra tính
toàn vẹn của tập tin. Một bảng băm MD5 thường
được diễn tả bằng một số hệ thập lục phân 32 ký tự.
* ĐẶC ĐIỂM MD5:
- Việc tính MD đơn giản, có
khả năng xác định được file có
kích thước nhiều Gb.
- Không có khả năng tính
ngược, khi tìm ra MD.
- Do bản chất ngẫu nhiên của
hàm băm và số lượng cực lớn
các giá trị hash có thể, nên hầu
như không có khả năng hai
bản tin phân biệt có cùng giá
trị hash.
- Giá trị MD phụ thuộc vào
bản tin tương ứng.
- Một chuổi chỉ có duy nhất một hash. HÌNH 1.6 MD5
- Giá trị MD phụ thuộc vào tất cả các bit của bản tin tương ứng.
Ví dụ :

love is blue 03d4ad6e7fee3f54eb46b5ccde58249c
love is Blue 82b76f8eeb4a91aa640f9a23016c7b1c
14
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
1.6 Các ứng dụng công nghệ và mô hình triển khai Radius hiện nay :
1.6.1 Ứng dụng công nghệ :
Xác thực chuyển mạch Internet: Trước đây việc truy cập internet hầu hết được
thực hiện theo hình thức quay số (dial up). NAS và Radius Server làm cầu nối
trung gian thực hiện xác thực tài khoản người dùng và cấp quyền truy cập
internet.
HÌNH 1.7 SƠ ĐỒ XÁC THỰC CHUYỂN MẠCH INTERNET
Truy cập DSL : Mặc dù hiện nay việc kết nối internet bằng Dial-up đã trở nên
lạc hậu và thay thế bằng ADSL nhưng với kiến trúc AAA cùng các tính năng
hỗ trợ (xác thực tập trung, cấp quyền hoặc ngăn chặn các yêu cầu, và kế toán,
tài liệu hóa trạng thái người dùng trong một phiên làm việc) Radius vẫn là giao
thức số một với các nhà cung cấp phân phối mạng internet (ISP).
VPN (Vitual Private Network): là một mạng dành riêng để kết nối các máy tính
của các công ty, tập đoàn hay các tổ chức với nhau thông qua mạng Internet
công cộng. Công nghệ VPN chỉ rõ 3 yêu cầu cơ bản:
- Cung cấp truy nhập từ xa tới tài nguyên của tổ chức mọi lúc, mọi nơi.
- Kết nối các chi nhánh văn phòng với nhau.
- Kiểm soát truy nhập của khách hàng, nhà cung cấp và các thực thể bên
ngoài tới những tài nguyên của tổ chức.
Mặc dù VPN có các cơ chế bảo mật riêng nhưng để tăng cường và đảm bảo
về bảo mật người ta thường sử dụng kèm thêm các giao thức bảo mật để tiến
hành xác thực, điều khiển truy cập đối với các VPN client thực hiện truy cập từ
xa vào hệ thống công ty. Ngoài ra còn có một lợi ích nữa là có thể quản lý
account người dùng, account dùng để connect VPN được khởi tạo trong domain
Win2k3, nên sẽ giúp Admin quản lý thuận tiện hơn.
Wireless Network: với tính chất là một giao thức mở rộng, Radius đã không

ngừng cải thiện và mở rộng, và hiện nay có khả năng xác thực cho cả các kết
nối mạng không dây. Radius hỗ trợ các chuẩn 802.1X, 802.11i, 802.16e.
15
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
1.6.2 Một số mô hình triển khai Radius :
HÌNH 1.8 MÔ HÌNH TRIỂN KHAI RADIUS
HÌNH 1.9 MÔ HÌNH TRIỂN KHAI RADIUS CÓ PROXY
16
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
1.7 Ưu điểm và khuyết điểm :
1.7.1 Ưu điểm :
- Được xây dựng dựa trên mô hình Client/Server. Trong đó NAS đóng vai trò là
một Radius Client chịu trách nhiệm chuyển thông tin từ người dùng lên Radius Server
cũng như làm cầu nối trung gian giúp Server phản hồi lại cho người dùng.
- Là giao thức bảo mật mạng hỗ trợ khá nhiều dịch vụ an ninh, cũng như các
thuật toán bảo mật.
- Các giao dịch giữa Client/Server đều được xác thực thông qua mã chia sẻ bí
mật share secret và chỉ thực hiện trong mạng nội bộ. Đồng thời password của người
dùng cũng được mã hóa trong các thông điệp giảm thiểu nguy cơ bị tấn công.
- Có cơ chế xác thực linh hoạt. Radius hỗ trợ khá nhiều phương thức chứng
thực cho người dùng ( PPP PAP, PPP CHAP, Unix Login, PPTP L2TP(VPN), và
nhiều phương thức khác .)
- Với bản chất là giao thức mở rộng nên giao thức không ngừng mở rộng và
phát triển để trở nên hoàn thiện hơn, phục vụ cho hầu hết tất cả thiết kế mạng. Đặc biệt
là đối với các hệ thống lớn
1.7.2 Khuyết điểm :
Mặc dù là một giao thức bảo mật mạng đa năng, linh hoạt nhưng và mặc dù
được cải thiện mở rộng khá nhiều nhưng Radius vẫn tồn đọng một số hạn chế :
- Vấn đề bảo mật ở một số thiết kế hệ thống chưa được hoàn hảo, đặc biệt là với
các hệ thống xây dựng nhiều proxy server Radius. Mỗi bước nhảy thông qua proxy

thông tin của user sẽ được giải mã rồi tiếp tục mã hóa để chuyển tiếp. Những thông tin
nhạy cảm của người dùng được chuyển tiếp qua nhiều cầu trung gian nguy cơ bị tấn
cộng càng cao hơn mặc dù là thông tin được mã hóa hoặc ẩn dấu trong các thông điệp.
- Chưa có cơ chế hủy bỏ (recalling) và thu hồi tài nguyên (deallocating
resource) khi tiến hành xác thực. Trong trường hợp hệ thống xây dựng nhiều proxy
server. Sau khi server đầu nhận được thông tin xác thực để chuyển tiếp đến các server
trung gian. Một số trường hợp xảy ra như là hết thời gian truy cập trong ngày, thì
Radius không hỗ trợ từ chối hoặc ngắt kết nối đối với phiên truy cập đó.
- Mặc dù tính phi trạng thái (stateless) hỗ trợ cho quá trình vận chuyển gói tin
trong hệ thống trở nên nhanh chóng và giảm độ phức tạp nhưng đây lại chính là một
hạn chế của Radius. Với tính chất này hệ thống sẽ không ghi nhận lại bất cứ các thiết
lập cấu hình, thông tin giao dịch, hoặc dữ liệu nào khác cho phiên tiếp theo. Điều này
làm phức tạp trong việc tìm các giải pháp quản lý tài nguyên và thời gian tự động
thoát.
- Việc mở rộng cho RADIUS như một con dao 2 lưỡi, có thể làm giảm hiệu
suất và dữ liệu bị mất khi được sử dụng trong các hệ thống quy mô lớn, một phần bởi
vì nó không bao gồm các quy định kiểm soát tắc nghẽn trong quá trình hoạt động và sử
dụng.
17
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
CHƯƠNG 2 : CẤU TRÚC, NGUYÊN LÝ HOẠT ĐỘNG
VÀ THUẬT TOÁN ÁP DỤNG
2.1 Nguyên lý hoạt động chung :
2.1.1 Xác thực và ủy quyền:

Hinh 2.1 MÔ HÌNH TIẾN HÀNH XÁC THỰC CHO NGƯỜI DÙNG
Khi một người dùng cần truy cập vào hệ thống để sử dụng các dịch vụ hay tài
nguyên thì cần phải thông qua bước xác thực thông tin cá nhân. Việc xác thực này
được thực hiện khá đơn giản thông qua một cửa sổ đăng nhập, là nơi mà người
dùng phải nhập username và password vào. Tiếp theo đó người dùng sẽ lựa chọn

một trong những giao thức phù hợp ( chẳng hạn như PPP PAP, PPP CHAP, PPTP,
L2TP ) để gửi qua internet các gói dữ liệu chứa các thông tin xác thực này đến
hệ thống. Khi NAS Server ( đảm nhiệm vai trò là một Radius Client) nhận được
những thông tin xác thực do người dùng gửi đến, sẽ tiến hành sử dụng giao thức
Radius để bắt đầu quá trình xác thực cho người dùng với Radius Server. Radius
Client sẽ tạo ra một yêu cầu truy cập ( Access-Request) bao gồm các một số thuộc
tính quan trọng như : username, password của người dùng, ID nhận diện của
Radius client ( NAS ID) cũng như thông số cổng (PortID) mà người dùng truy cập
vào ( thông số port ở đây không phải là các port socket). Thộc tính mật khẩu lúc
này sẽ được ẩn thông qua phương pháp hàm băm MD5.
18
Remote User
Client
User login
( Username, password)
NAS Server
(RADIUS Client)
RADIUS Server
Authentication Request
Authentication
Acknowledgement
NAS Server
(RADIUS Client)
RADIUS Server
Access Request
Access Reject
Hoặc Access Challenge
Hoặc Access Accept
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
Hình 2.2 SƠ ĐỒ MINH HỌA VIỆC GIAO TIẾP GIỮA RADIUS CLIENT VÀ

RADIUS SERVER TRONG QUÁ TRÌNH XÁC THỰC CẤP QUYỀN
Vì giao thức Radius dùng UDP làm phương tiện trung chuyển các gói tin vì vậy
rất có khả năng các gói tin không đến được đích. Do đó nếu server không có phản hồi
sau khoảng thời gian đã quy ước thì yêu cầu được gửi lại. Trong trường hợp hệ thống
có nhiều Radius server thì Radius client sẽ chuyển tiếp yêu cầu đến các server dự
phòng này nếu server chính hư hỏng, không hoạt động.
Khi Radius server nhận được yêu cầu gửi đến, server tiến hành xác minh và
kiểm tra user truy cập đến. Tuy nhiên nếu một Access Request được gửi đến từ một
Radius Client mà không được tiến hành share secret với Radius server thì Radius sẽ tự
động loại bỏ mà không phản hồi với các yêu cầu này ( slient discard). Nếu yêu cầu
được gửi đến từ một Radius client hợp lệ ( đã share secret ) , Radius Server tiến hành
kiểm tra cơ sở dữ liệu về thông tin của người dùng này. Hệ thống sẽ tiến hành kiểm tra
các thông tin do người dùng gửi đến so với các thông tin lấy từ cơ sở dữ liệu. Nếu
thông tin hoàn toàn trùng khớp hệ thống sẽ cấp quyền truy cập cho user đó. Việc kiểm
tra này bao gồm cả việc xác minh trường password cũng như các tài nguyên mà người
dùng được phép truy cập.
Ngoài ra, nếu không đủ thẩm quyền giải quyết yêu cầu cho user, Radius Server
lúc này sẽ đóng vai trò như một client , tạo và gửi yêu cầu tham chiếu đến các Server
radius khác. Quá trình tiếp tục lặp lại cho đến khi giải quyết được yêu cầu cầu của
người dùng. Trường hợp hệ thống có sử dụng Proxy Radius Server thì trong các
Access- Request thường bao gồm trường Proxy-State. Hệ thống sẽ sao chép thông số
của trường này và luôn gửi kèm theo trong các phản hồi mà không chỉnh sửa gì.
Đối với trường hợp các điều kiện không hợp lệ, Radius Server tiến hành gửi trả
một phản hồi Access-Reject để thông báo với người dùng là yêu cầu gửi đến không
hợp lệ. Ngoài ra trong phản hồi Access-Reject có thể chứa đoạn text hiển thị thông báo
cho người dùng và không chứa bất kì trường thông tin nào ( ngoại trừ Proxy State đã
nói ở trên).
Trường hợp đối với điều kiện hợp lệ, server có thể sẽ gửi một yêu cầu Access-
Challenge và yêu cầu người dùng phải phản hồi. Yêu cầu Access Challenge có thể
chứa một thông điệp văn bản sẽ hiển thị bên máy người dùng. Nếu máy người dùng

nhận được yêu cầu và hỗ trợ cơ chế thách thức / phản hồi ( challenge/response) thì
đoạn thông điệp sẽ hiển thị và yêu cầu người dùng phản hồi lại hệ thống. Sau khi nhận
được các phản hồi từ phía người dùng, Radius client tiến hành gửi lại Access Request
ban đầu với một số ID khác và trường user-password được thay thế bằng thông tin
phản hồi của người dùng ( đã được mã hóa).Đối với yêu cầu gửi lại này, tùy theo tình
huống mà Radius Server sẽ gửi phản hồi Access Reject để từ chối, Access Accept để
đồng ý hoặc một Access Challenge khác.
Nếu bên người dùng đáp ứng tất cả các điều kiện yêu cầu, Radius Server sẽ
phản hồi Access-Accept trong đó sẽ chứa các giá trị cấu hình của người dùng. Những
giá trị cấu hình này bao gồm loại dịch vụ (type of service ) chẳng hạn như PPP, SLIP,
Login User( người dùng dăng nhập) và tất cả các giá trị cần thiết mà dịch vụ, tài
nguyên của người dùng yêu cầu.
19
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
HÌNH 2.3 SƠ ĐỒ MINH HỌA VIỆC XÁC THỰC CẤP QUYỀN THÀNH
CÔNG CÓ SỬ DỤNG CHALLENGE
Cơ chế thách thức/ phản hồi (challenge/response):
Trong cơ chế xác thực này, người dùng sẽ được cung cấp một con số ngẫu nhiên,
không đoán trước được và được thánh thức mã hóa con số này và gửi lên hệ hệ thống.
Đối với người dùng xác thực được phần mềm hoặc công cụ hổ trợ tạo điều kiện thực
hiện tính toán và phản hồi một cách dễ dàng. Nhưng đối với người dùng trái phép thì
không có mã chia sẻ bí mật , nên chỉ có thể đoán mò lời phản hồi. Dựa vào đây server
có thể xác nhận đâu là yêu cầu từ người dùng hợp lệ và không hợp lệ. Người dùng sẽ
nhập con số Challenge này vào phần mềm hoặc thiết bị hỗ trợ, các thiết bị hay phần
mềm sẽ tự tính toán và gửi phản hồi cho hệ thống. Và NAS đóng vai trò như một
Radius Client sẽ chuyển tiếp phản hồi này đến với Radius Server dưới một yêu cầu
Access Request.
Ví dụ như theo hình 2.3 user đăng nhập vào hệ thống, nhập vào user name và
password. NAS chuyển tiếp lên Server trong Access Request bao gồm một số trường
thông tin như Username, User-password ( là chuỗi cố định tương tự challenge hoặc

có thể không có), NAS ID, NAS port. Server sẽ phản hồi một Access-Challenge bao
gồm thông điệp hiển thị và một chuỗi challage ( giả sử là 12345678). Khi máy người
dùng nhận được , màn hình hiển thị thông điệp chuỗi challenge và yêu cầu người dùng
nhập lại. Sau khi người dùng đã nhập xong, phần mềm hoặc thiết bị tự tính toán và
phản hồi lại cho hệ thống. Khi NAS nhận được phản hồi từ phía người dùng sẽ gửi
một Access Request có ID number khác chứa các thông tin của yêu cầu trước đó như
Username, NAS ID, NAS port và User-password ( lúc này trường này đã được thay
20
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
thế bằng chuỗi kí tự đã được mã hóa mà người dùng đã nhập trước đó). Server sẽ tiến
hành tự tính toán và so sánh với phản hồi nhận được để thực hiện bước tiếp theo.
PAP và CHAP :
Nếu hệ thống dùng PAP thì NAS sử dụng PAP ID và password thay thế cho trường
Username và Password trong Access-Request. Ngoài ra còn một số trường như
Service-Type = Framed-User and Framed-Protocol = PPP để gợi ý cho RADIUS
server dịch vị dư kiến là PPP.
Đối với CHAP , NAS tạo ra một giá trị challenge ngẫu nhiên ( độ dài khoảng
16octet) và người dùng sẽ phản hồi lại một giá trị là CHAP Response cùng với CHAP
ID và CHAP username. NAS sẽ gửi trong Access Request có giá trị user name là
CHAP Username và Password chính là CHAP Response. Giá trị ngẫu nhiên được tạo
ra ban đầu được đặt trong trường Authenticator ( Request Authenticator). Tương tự
như PAP , CHAP cũng chứa các trường Service-Type = Framed-User and Framed-
Protocol = PPP để gợi ý cho RADIUS server dịch vụ dự kiến là PPP.
Trong quá trình xác thực & cấp quyền Radius thực hiện lần lượt các công
việc sau :
- Decrypt password của user ( do encrypt trong quá trình vận chuyển) bằng cách sử
dụng share secret key ( cả Client và Server đều biết mã này)
- Tìm kiếm thông tin tài khoản của user trong CSDL.
Plain text file
Hệ quản tri CSDL SQL

LDAP server
/etc/passwd trong HDH Linux
Active Directory của HDH Window
etc
- Xác thực cho user
- Kiểm tra các tùy chọn (check-items)
Loại kết nối (POTS, ISDN, ADSL, cable, UMTS, etc.)
Thời gian trong ngày
Calling number, called number
etc.
- Gửi Access-Accept/Reject đến NAS với những thuộc tính phù hợp cho phiên làm
việc (reply-items)
Idle and session timeout
Bộ lọc Ip cho người dùng
Chỉ định IP gán cho người dùng
Đối với ISDN, số lương kênh phát tối đa (MLPPP)
etc.
21
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
2.1.2 Kế toán:
HÌNH 2.4 SƠ ĐỒ MÔ HÌNH TRAO ĐỔI THÔNG ĐIỆP TRONG KẾ TOÁN
Nếu nguời dùng đuợc cấu hình sử dụng dịch vụ kế toán (Accounting), khi bắt
đầu cung cấp dịch vụ, Radius Client sẽ tiến hành gửi một thông yêu cầu Accounting
Request (Start) mô tả các loại hình dịch vụ mà nguời dùng đuợc cung cấp và tiến hành
gửi cho Radius Server. Khi nhận đuợc yêu cầu này Radius Sever sẽ phản hồi một
thông điệp Accounting-Response thừa nhận đã nhận yêu cầu ở trên. Khi kết thúc phiên
làm việc , client cũng tiến hành gửi yêu cầu Accounting Request (Stop) bao gồm mô tả
về các loại hình dịch vụ sử dụng cũng như một số tùy chọn thống kê sử dụng như thời
gian sử dụng, lưu luợng dữ liệu truyền tải, tốc độ truy cập trung bình cùng một số chi
tiết khác Và sau đó cũng sẽ phản hồi cho client biết là đã nhận đuợc yêu cầu. Trong

truờng hợp Radius Server không lưu lại đuợc gói tin gửi đến thì sẽ không phản hồi trở
lại cho client.
22
NAS Server
(RADIUS Client)
RADIUS Server
Accounting-Request (Start)
Accounting-Response
Accounting-Request (Stop)
Accounting-Response
Quá trình trao đổi dữ liệu
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
HÌNH 2.5 SƠ ĐỒ NGUYÊN LÝ LÀM VIỆC CỦA GIAO THỨC RADIUS
* Các buớc thực hiện xác thực , cấp quyền , kế toán trong giao thức Radius :
B1 : User tiến hành nhập Username & Password đăng nhập vào hệ thống
B2 : NAS(Radius Server) nhận đuợc thông tin của nguời dùng tiến hành gửi thông
điệp Access-Request để yêu cầu Server chứng thực cho nguời dùng.
23
Remote User Client
NAS Server
(RADIUS Client)
RADIUS Server
Ti
me
1.User login
( Username, password)
2.Access-Request
3a. Access-Reject
3b. Access-Challenge
3b2.Message Display

3b3.User Respone
3b4.Accept-Request
3c Access-Accept
4.Accounting-Request (Start)
7.Accounting-Request (Stop)
5.Accounting-Response
8.Accounting-Response
6. Quá trình truy cập dữ liệu
9. Thông báo kết thúc giao dịch
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
B3: Server tiến hành kiểm tra thông tin của nguời dùng để xác định bước kế tiếp
- Nếu các thông tin không hợp lệ, Server sẽ phản hồi lại Acess-Reject để từ chối
yêu cầu
- Để đảm bảo Server gửi một yêu cầu Access-Challenge yêu cầu nguời dùng
phản hồi. Nguời dùng tiến hành nhập mã phản hồi và gửi lên lại hệ thống. NAS
chuyển tiếp phản hồi của nguời dùng lên Server. Server lúc này có thể từ chối
bằng Access-Reject, chấp nhập bằng Access-Accept hoặc gửi một Access-
Challenger khác.
- Nếu thông tin hợp lệ Server sẽ phản hồi Access-Accept.
B4: Radius Client gửi yêu cầu thực hiện dịch vụ Accounting bằng yêu cầu
Accounting-Request (Start)
B5: Server phản hồi đã nhận đuợc yêu cầu bằng Accounting-Response
B6: Quá trình truy cập dữ liệu của user
B7: Khi nguời dùng ngắt kết nối, Radius Client gửi một yêu cầu ngưng dịch vụ
Accounting bằng yêu cầu Accounting-Request (Stop).
B8: Server sau khi đã nhận đuợc yêu cầu sẽ phản hồi bằng Accounting-Response
B9: Thông báo cho nguời dùng phiên làm việc kết thúc.
2.2 Cấu trúc gói tin:
2.2.1 Phân loại gói tin:
Người ta dựa vào phần code ( chiếm 1 byte ) để phân loại gói tin

24
Identifier
Code Length
Authenticator
Attributes
1 2 3
4
1-4
5-20
21
Qui định loại gói tin
(Decimal)
Xác định các cặp (yêu cầu phản hồi)
thông qua IP và port UDP nguồn
Độ dài của toàn bộ gói tin
(20-4096 bytes)
+ Auth.Request : có giá trị ngẫu nhiên, dùng để kết hợp với gia trị seret
(share secret) để mã Password của user.
+ Replies (accept/reject) : dùng để xác thực các phản hồi từ server(server
authentication)
bytes
Nhóm 03 : RADIUS PROTOCOL GVHD: Văn Thiên Hoàng
Code Tên Mô tả
1 Access-Request Yêu cầu chứng thực do NAS (Radius Client) gửi cho
Radius Server
2 Access-Accept Phản hồi từ server đến NAS đã chấp nhận phiên làm
việc của user.
3 Access-Reject Phản hồi từ server đến NAS từ chối phiên làm việc
của user
11 Access-Challenge Yêu cầu gửi từ Server cho NAS để yêu cầu User cung

cấp thêm thông tin bổ sung
4 Accounting-Request NAS gửi thông tin kế toán cho server
5 Accounting-Response Server xác nhận đã nhận được gói tin bằng ACKs
BẢNG PHÂN LOẠI CÁC GÓI TIN THEO MÃ CODE
2.2.2 Trường Authenticator :
HÌNH 2.6 CHỨC NĂNG CỦA TRƯỜNG AUTHENTICATOR
TRONG XÁC THỰC VÀ CẤP QUYỀN
Theo như hình 2.6, nhiệm vụ của trường Authenticator nhằm phục vụ cho 2
mục đích, tùy thuộc vào đó là một yêu cầu ( Access-Request) hay là một phản hồi
( Access Reject/Accept).
- Mã hóa trường thông tin Password của user ( phục vụ dịch vụ bảo mật thông tin)
- Xác thực thông tin của User ( phục vụ dịch vụ xác thực)
Sau khi nhận được thông tin của người dùng gửi đến, Radius Client gửi một
Access-Request đến Radius Server xin xác thực cho người dùng. Trường
25
Server AuthenticatedDiscard packet
Random num.
Shared key
Hash MD5
CHAP-Passwd(clear text)
XOR
Authenticator field
Attrib. User-Password
Shared key
Hash MD5
XOR
Clear Passwd
Client Server
Access-Request
Request Authenticator

Shared key
Hash MD5
Authenticator Field
Access-Accept/Reject
Match?

X
Request Authenticator
Shared key
Response packet
(without authenticator)
Hash MD5
Response packet
(without authenticator)