MỤC LỤC
LỜI MỞ ĐẦU i
MỤC LỤC ii
MỤC LỤC HÌNH ẢNH iv
CHƯƠNG 1. TỔNG QUAN VỀ WLAN 1
1.1. Tổng quan về WLAN 1
1.1.1. Mạng WLAN là gì? 1
1.1.2. Lịch sử hình thành và phát triển. 1
1.1.3. Ưu điểm của WLAN 2
1.1.4. Nhược điểm 2
1.2. Cơ sở hạ tầng WLAN 3
1.2.1. Cấu trúc cơ bản của WLAN 3
1.2.2. Thiết bị dành cho WLAN 3
1.2.3. Các mô hình WLAN. 7
1.2.3.1. Mô hình mạng độc lập 7
1.2.3.2. Mô hình mạng cơ sở (BSSs) 8
1.2.3.3. Mô hình mạng mở rộng (ESSs) 9
CHƯƠNG 2. CÁC HÌNH THỨC TẤN CÔNG PHỔ BIẾN TRONG WLAN VÀ GIẢI PHÁP PHÒNG CHỐNG 11
2.1. Các hình thức tấn công phổ biến trong WLAN 11
2.1.1. Rogue Access Point 11
2.1.1.1. Định nghĩa 11
2.1.1.2. Phân loại 11
2.1.1.3. Access Point được cấu hình không hoàn chỉnh: 11
2.1.1.4. Access Point giả mạo từ các mạng WLAN lân cận 12
2.1.1.5. Access Point giả mạo do kẻ tấn công tạo ra: 12
2.1.2. Tấn công yêu cầu xác thực lại 14
2.1.3. Face Access Point 14
2.1.4. Tấn công dựa trên sự cảm nhận sóng mang lớp vật lý 15
2.1.5. Tấn công ngắt kết nối 16
2.2. Các giải pháp bảo mật WLAN 17
2.2.1. WEP 17
2.2.2. WLAN VPN 18
2.2.3. TKIP (Temporal Key Integrity Protocol) 18
2.2.4. AES 19
2.2.5. 802.1X và EAP 19
2.2.6. WPA (WI-FI Protected Access) 20
2.2.7. WPA2 21
2.2.8. LỌC (Filltering) 22
2.3. Kết luận 24
CHƯƠNG 3. TÌM HIỂU GIAO THỨC XÁC THỰC RADIUS VÀ RADIUS SERVER 26
3.1. Giao thức RADIUS 26
3.1.1. Tổng quan về giao thức RADIUS 26
3.1.2. Giới thiệu 26
3.1.3. Tính chất của RADIUS 26
3.1.4. Giao thức RADIUS 1 27
3.1.4.1. Cơ chế hoạt động 27
3.1.4.2. Dạng gói của packet 29
3.1.4.3. Packet type (kiểu packet) 31
3.1.5. Giao thức RADIUS 2 37
3.1.5.1. Cơ chế hoạt động 37
3.1.5.2. Packet Format 37
3.1.6. Phương pháp mã hóa và giả mã 38
3.2. RADIUS SERVER 39
3.2.1. Tổng quan 39
3.2.2. Xác thực- cấp phép và kiểm toán 39
3.2.3. Sự bảo mật và tính mở rộng 40
3.2.4. Áp dụng RADIUS cho WLAN 41
3.2.5. Các tùy chọn bổ sung 42
CHƯƠNG 4. BẢO MẬT WLAN BẰNG PHƯƠNG PHÁP CHỨNG THỰC RADIUS 43
4.1. Phân tích và thiết kế hệ thống chứng thực bảo mật WLAN với RADIUS 43
4.1.1. Giới thiệu 43
4.1.2. Yêu cầu hệ thống 43
4.1.2.1. Phần cứng 43
4.1.2.2. Phần mềm 43
4.2. Quy trình cài đặt và triển khai 44
4.2.1. Cài đặt và cấu hình DHCP 44
4.2.1.1. Cài đặt DHCP 44
4.2.1.2. Cấu hình DHCP 44
4.2.2. Cài Enterprise CA và Request Certificate từ CA Enterprite Server 44
4.2.2.1. Cài đặt Enterprise CA 44
4.2.2.2. Request Certificate từ CA Enterprite Server 45
4.2.3. Tạo user, cấp quyền Remote Access cho users và chuyển sang Native Mode 46
4.2.3.1. Tạo OU có tên “KTX” 46
4.2.3.2. Chuyển sang Native Mode 47
4.2.4. Cài đặt và cấu hình RADIUS, tạo Remote Access Policy 47
4.2.4.1. Cài đặt RADIUS 47
4.2.4.2. Tạo Remove Access Policy 48
4.2.5. Cấu hình AP 50
4.2.6. Cấu hình Wireless client 51
4.2.7. Demo 54
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 59
63 trang |
Chia sẻ: netpro | Lượt xem: 5146 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Bảo mật mạng WLAN với chứng thực RADIUS, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
các giải pháp bảo mật phù hợp với từng mô hình của mạng WLAN
WEP
Wep (Wired Equivalen Privacy) có nghĩa là bảo mật không dây tương đương với có dây. Thực ra, WEP đã đưa cả xác thực người dùng và đảm bảo an toàn dữ liệu vào cùng một phương thức không an toàn. WEP sử dụng một khó mã hóa không thay đổi có đọ dài 64 bit hoặc 128 bit, (nhưng trừ đi 24 bit sử dụng cho vector khởi tạo khóa mã hóa, nên độ dài khóa chỉ còn 40 bit hoặc 104 bit) được sử dụng để xác thực các thiết bị được phép truy cập vào trong mạng và cũng được sử dụng để mã hóa truyền dữ liệu.
Rất đơn giản, các khóa mã hóa này dể dàng được “bẻ gãy” bởi thuật toán brute-force và kiểu tấn công thử lỗi (tria-and-error). Các phần mềm miễn phí như Aircrack-ng, Airsnort, hoặc WEP crack sẽ cho phép hacker có thể phá vỡ khóa mã hóa nếu họ thu thập từ 5 đén 10 triệu gói tin trên một mạng không dây. Với những khóa mã hóa 128 bit cũng không khá hơn: 24 bit cho khởi tạo mã hóa nên chỉ có 104 bit được sử dụng.
Dụng để mã hoá và cách thức cũng giống như mã hóa có độ dài 64 bit nên mã hoaí 128 bit cũng dẽ dàng bi bẻ khóa. Ngoài ra, những điểm yếu trong những vector khởi tạo khóa mã hoá giúp cho hacker có thể tìm ra mật khẩu nhanh hơn với ít gói thông tin hơn rất nhiều.
Không dự đoán được những lỗi trong khóa mã hóa. WEP có thể được tao ra cách bảo mật mạnh mẽ hơn niếu sử dụng một giao thức xác thực mà cung cấp mỗi khóa mã hóa mới cho mỗi phiên làm việt. khóa mã hóa sẽ thay đổi trên mỗi phiên làm việt. Điều này sẽ gây khó khăn hơn cho hacker thu thập đủ các gói dự liệu cần thiết để có thể bẽ gãy khóa bảo mật.
WLAN VPN
Mạng riêng VPN bảo vệ mạng WLAN bằng cách tạo ra một kênh che chắng dữ liệu khỏi các truy cập trái phép. VPN tạo ra một tin cậy cao thông qua việt sử dụng một cơ chế bảo mật như Ipsec (Internet Protocol Security). IPSec để mã hóa dự liệu và dùng các thuật toán khác để các thực gói dự lieeuk Ípec cũng sử dụng thẻ xác nhận số để xác nhận khóa mã (public key). Khi được sử dụng trên mạng WLAN, công kết của VPN đảm nhận việt xác thực, đóng gói và mã hóa
Hình 25 Mô hình WLAN VPN
TKIP (Temporal Key Integrity Protocol)
Là giải pháp của IEEE được phát triển năm 2004. Là một nâng cấp cho WED nhằm và những vấn đề bảo mật trong cài đặt mã dòng RC4 trong WEP. TKIP dùng hàm băm (hashing) IV để chống lại việc MIC (message integity check) đẻ đảm bảo tính chính xác của gói tin TKIP và sử dụng khóa động bằng cách đặt cho mỗi frame một chuỗi sống lại dạng tấn công giả mạo.
AES
Trong mật mã học AES (viết tắt của từ tiếng Anh: Advanced Encryption Stadar, hay Tiêu chuẩn mã hóa tiên tiến) là một thuật toán mà hóa khối được chính phủ Hoa kỳ áp dụng làm tiêu chuẩn mã hóa. Giống như tiêu chuẩn tiền nhiệm DES, AES được kì vọng áp dụng trên phạm vi thế giới và đã được nghiên cứu rất kỹ lưỡng. AES được chấp nhận làm tiêu chuẩn lien bang bởi viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (NIST) sau một quá trình tiêu chuẩn hóa kéo dài 5 năm.
Thuật toán được thiết kế bởi 2 nhà mật mã học người Bỉ: Joan Daemen và Vincent Rijmen (lấy tên chung là Rijndael khi tham gia cuộc thi thiết kế AES).
Rijdael được phát âm là “Rhine dahl” (theo phiên âm quốc tế ).
802.1X và EAP
802.1x là chuẩn đặc tả cho việc truy cập dựa trên cổng (port-based) được định nghĩa bởi IEEE. Hoạt động trên cả môi trường có dây truyền thống và không dây. Việc điều khiển truy cập được thực hiện bằng cách: Khi một người dùng cố gắng kết nối vào hệ thống mạng, kết nối của người dùng sẽ được đặt ở trạng thái bị chặn (bloking) và chờ cho việc kiểm tra định danh người dùng hoàn tất.
Hình 26 Mô hình hoạt động xác thực 802.1x
EAP là phương thức xác thực bao gồm yêu cầu định danh người dùng (password, certificate,…), giao thức được sử dụng (MD5, TLI_Transport Layer Security, OTP_One Time Password,…) hỗ trợ tự động sinh khóa và xác thực lẫn nhau.
Quá tình chứng thực 802.1x-EAP như sau:
Wireless client muốn lien kết với một AP trong mạng.
AP sẽ chặn lại tất cả các thông tin của client cho tới khi client log on vào mạng. Khi đó client yêu cầu lien kết tới AP.
AP đáp lại yêu cầu liên kết với một yêu cầu nhận dạng EAP.
Client gửi đáp lại yêu cầu nhận dạng EAP cho AP.
Thông tin đáp lại yêu cầu nhận dạng EAP của client được chuyển tới Server chứng thực.
Server chứng thực gửi một yêu cầu cho phép AP.
AP chuyển yêu cầu cho phép tới client.
Client gửi trả lời sự cấp phép EAP tới AP.
AP chuyển sự trả lời đó tới Server chứng thực.
Server chứng tực gửi một thông báo thành công EAP tới AP.
AP chuyển thông báo thành công tới client và đặt cổng của client trogn chế độ forward.
WPA (WI-FI Protected Access)
WEP được xây dựng để bảo vệ một mạng không dây tránh bị nghe trộm. Nhưng nhanh chóng sau đó người ta phát hiện ra nhiều lỗ hổng công nghệ này. Do đó công nghệ mới co tên gọi WPA (Wi-Fi Protected Access) ra đời, khắc phục được nhiều nhược điểm của WEP.
Trong những cải tiến quan trọng nhất của WPA là sử dụng hàm thay đổi khóa TKIP. WPA cũng sử dụng thuật toán RC4 như WEP, nhưng mã hóa đầy đủ 128 bit. Và một đặc điểm khác là WPA thay đổi khóa cho mỗi gói tin. Các công cụ thu thập các gói tin để khóa phá mã hóa đều không thể thực hiện được với WPA. Bởi WPA thay đổi khóa liên tục nên hacker không bao giờ thu thập đủ dữ liệu mẫu để tìm ra mật khẩu.
Không những thế WPA còn bao gồm cả tính toàn vẹn của thông tin (Message Integrity check). Vì vậy, dữ liệu không thể bị thay đổi trong khi đang ở trên đường truyền. WPA có sẵn 2 lựa chọn: WPA Personal và WPA Enterprise. Cả 2 lựa chọn đều sử dụng giáo thức TKIP, và sự khác biệt chỉ là khóa khởi tạo mã hóa lúc đầu. WPA Personal thích hợp cho gia đình và mạng văn phòng nhỏ, khóa khởi tạo sẽ được sử dụng tại các điểm truy cập và thiết bị máy trạm. Trong khi đó, WPA cho doanh nghiệp cần một máy chủ xác thực và 802.1x để cung cấp các khóa khởi tạo cho mỗi phiên làm việc.
Lưu ý:
Có một lỗ hổng trong WPA và lỗi này chỉ xảy ra với WPA Personal. Khi mà sử dụng hàm thay đổi khóa TKIP được sử dụng để tạo ra các khóa mã hóa chưa phát hiện, nếu hacker có thể đoán được khóa khởi tạo hoặc một phần của mật khẩu, họ có thể xác định được toàn bộ mật khẩu, do đó có thể giải mã được dữ liệu. tuy nhiên, lố hỏng này cũng sẽ được loại bỏ bằng cách sử dụng những khóa khởi tạo không dể đoán (đừng sử dụng những từ như “P@SSWORD” để làm mật khẩu).
Điều này cũng có nghĩa rằng thủ thuật TKIP của WPA chỉ là giải pháp tam thời, chưa cung capas một phương thức bảo mật cao nhất. WPA chỉ thích hợp với những công ty mà không truyền dữ liệu “mật” về những thương mại hay các thông tin nhạy cảm…WPA cũng thích hợp với những hoạt động hằng ngày và mang tính thử nghiệm công nghệ.
WPA2
Một giải pháp về lâu dài là sử dụng 802.11i tương đương với WPA2, được chứng nhận bởi Wi-Fi Alliance. Chuẩn này sử dụng thuật toán mã hóa mạnh mẽ và được gọi là Chuẩn mã hóa nâng cao AES. AES sử dụng thuật toán mã hóa đối xứng theo khối Rijndael, sử dụng khối mã hó 128 bit, và 192 bit hoặc 256 bit. Để đánh giá chuẩn mã hóa này, Việc nghiên cứu quốc gia về Chuẩn và Công nghệ của Mỹ, NIST (National Institute of Standards and Technology), đã thông qua thuật toán mã đối xứng này.
Lưu ý: Chuẩn mã hóa này được sử dụng cho các cơ quan chính phủ Mỹ để bảo vệ các thông tin nhạy cảm.
Trong khi AES được xem như là bảo mật tốt hơn rất nhiều so với WEP 128 bit hoặc 168 bit DES (Digital Encryption standanrd). Để đảm bảo về mặt hiệu năng, quá trình mã hóa cần thực hiện trong các thiết bị phần cứng như tích hợp vào chip. Tuy nhiên, rất ít người sử dụng mạng không dây quan tâm tới vấn đề này. Hơn nữa, hầu hết các thiết bị cầm tay WI-FI và máy quét mã vạch đều không tương thích với chuẩn 802.11i.
LỌC (Filltering)
Lọc là cơ chế bảo mật cơ bản có thể sử dụng cùng với WEP. Lọc hoạt động giống access list trên router, cấm những cái không mông muốn và cho phép những cái mong muốn. Có 3 kiểu lọc cơ bản có thể sử dụng trong wireless lan:
Lọc SSID
Lọc địa chỉ MAC
Lọc giao thức
Lọc SSID
Lọc SSID là phương thức cơ bản của lọc và chỉ nên được sử dụng trong việc điều khiển truy cập cơ bản.
SSID của client phải khớp với SSID của AP để có thể xác thực và kết nối với tập dịc vụ. SSID được quảng bá mà không được mã hóa trong các Beocon nên rất dễ bị phát hiện bằng cách sử dungjcacs phần mềm. Một số sai lầm mà người sử dung WLAN mắc phải trong quản lí SSSID gồm:
Sử dụng giá trị SSID mặc định tạo điều kirnj cho hacker dò tìm địa chỉ MAC của AP.
Sử dụng SSID có liên qua đến công ty.
Sử dụng SSID như là phương thức bảo mật của công ty.
Quảng bá SSID một cách không cần thiết.
Lọc địa chỉ MAC
Hầu hết các AP đều có chức năng lọc địa chỉ MAC. Người quản trị xây dựng danh sách các địa chỉ MAC được cho phép.
Nếu client có địa chỉ MAC không nằm trong danh sách lọc địa chỉ MAC của AP thì AP sẽ ngăn chặn không cho phép client đó kết nối vào mạng.
Nếu công ty có nhiều client thì có thể xây dựng máy chủ RADIUS có chức năng lọc địa chỉ MAC thay vì AP. Cấu hình lọc địa chỉ MAC là giải pháp bảo mật có tính mở rộng cao.
Lọc giao thức
Mạng Lan không dây có thể lọc các gói đi qua mạng dựa trên các giao thức từ lớp 2 đến lớp 7. Trong nhiều trường hợp người quản trị nên cài đặt lọc giao thức trong môi trường dùng chung,
Hình 27 Tiến trình xác thực MAC
Có một nhóm cầu nối không dây được đặt trên một Remote building trong một mạng WLAN của một trường đại học mà kết nối lại tới AP của tòa nhà kỹ thuật trung tâm.
Vì tất cả những người sử dụng trong Remote builing chia sẻ băng thông 5Mbs giữa những tòa nhà này, nên một số lượng đáng kể các điểu khiển trên các sử dụng này phải được thực hiện.
Nếu các kết nối này được cài đặt với mục đích đặc biệt của sự truy nhập internet của người sử dụng, thì booj lọc giao thức sẽ loại trừ tất cả các giao thức, ngoại trừ HTTP, SMTP, HTTPS, FTP…
Hình 28 Lọc giao thức
Kết luận
Qua các hình thức tấn công cũng như các giải pháp bảo mật WLAN trên, người thiết kế mạng cũng như bảo mật mạng phải nắm được cụ thể các hình thức tấn công nào có thể xảy ra đối với mô hình mạng mình thiết kế. Từ đó có được các giải pháp bảo mật phù hợp với từng mô hình. Đảm bảo tính bảo mật nhưng cũng đảm bảo tính tiện dụng, không gây khó khăn cho người dùng. Sau đây là một số kiểu bảo mật áp dụng cho các mô hình mạng khác nhau.
Cho các điểm truy cập tự động (hotspots), việc mã hóa không cần thiết, chỉ cần người dùng xác thực mà thôi.
Với người dùng sử dụng mạng WLAN cho gia đình, một phương thức bảo mật với WPA passphare hay preshared key được khuyến cáo sử dụng.
Với giải pháp doanh nghiệp, để tối ưu quá trình bảo mật với 802.1x EAP làm phương thức xác thực và TKIP hay AES làm phương thức mã hóa. Được dựa theo chuẩn WPA hay WPA2 vf 802.11i security. Với các doanh nghiệp đòi hỏi bảo mật, quản lý người dùng chặc chẽ và tập trung, một giải pháp tối ưu được đặt ra đó là sử dụng dịch vụ chứng thực RADIUS kết hợp với WPA2 . Với dịch vụ chứng thực này, người dùng không dùng chung một “share key” mà có tên đăng nhập và mật khẩu riêng, được quản lý bởi server AAA. Cụ thể về dịch vụ xác thực sẽ được trình bày trong chương sau.
Hình 29 Escalating Security
TÌM HIỂU GIAO THỨC XÁC THỰC RADIUS VÀ RADIUS SERVER
Giao thức RADIUS
Tổng quan về giao thức RADIUS
RADIUS là một giao thức sử dụng rộng rãi cho phép xác thực tập trung, ủy quyền và kiểm toán truy cập cho mạng. Ban đầu được phát triển cho thiết lập kết nối từ xa. Radius bâu giờ thì hỗ trợ cho máy chủ VPN, các điểm truy cập không dây, chứng thực chuyển mạch internet, truy cập DSL, và các loại truy cập mạng khác. RADIUS được mô tả trong RFC 2865, "Remote Authentication Dial-in User Service (RADIUS), (IETF Draft Standard) and RFC 2866, "RADIUS Accounting" (Informational).
Giới thiệu
Có 2 loại giao thức RADIUS mô tả về:
Giao thức RADIUS 1: Xác nhận quyền (authentication), phân quyền (authorization), thông tin cấu hình giữa máy chủ quản lý truy cập (NAS-Network Access Server) mà có các yêu cầu cần xác nhận và máy chủ xác nhận quyền dùng chung (Shared Authentication Server).
Giao thức RADIUS 2: Thông tin về tài khoảng giữa NAS và máy chủ quản lý tài khoản dùng chung.
Tính chất của RADIUS
RADIUS thực ra là một giao dịch được xây dựng trên giao thức có các tính chất chính như sau:
Nếu như yêu cầu (request) gởi tới máy chủ xác nhận quyền sơ cấp (primary authentication server) thất bại, thì yêu cầu này phải được gửi tới máy chủ sơ cấp (secondary server). Để thực hiện yêu cầu này, một bản sao yêu cầu phải được lưu trên lớp transport để cho phép việc truyền luân phiên. Điều này có nghĩa là phải có timers cho việc truyền lại (retransmission).
Các đòi hỏi về thời gian của RADIUS rất khác biệt so với TCP. Một mặt, RADIUS không yêu cầu “câu trả lời” (responsive) về việc dò tìm dữ liệu bị mất. User sẵn sang chờ trong nhiều giây để cho việc xác nhận quyền được hoàn thành. Việc truyền lại thường xảy ra đối với các TCP dựa trên thời gian truyền nhận trung bình không cần thiết nữa, kể cả thời gian hao tổn cho việc nhận biết phản hồi về. Mặt khác, user không thể chờ đợi quá lâu trong nhiều phút cho việc xác nhận quyền. Việc phải chờ đợi quá lâu là không hữu ích. Việc sử dụng luân phiên nhanh chóng các server sẽ cho phép user truy cập được vào mạng trước khi họ bỏ cuộc.
Trạng thái rất tự do của RADIUS đã đơn giản hóa việc sử dụng UDP. Các client và server có thể đăng ký vào hoặc ra khỏi mạng. Hệ thống bị khởi động lại vì một lý do nào đó, như: Nguồn điện bị mất…Các sự kiện bất thường này nói chung sẽ không gây nguy hiểm nếu như có những timeout tốt và xác định được các cầu nối TCP đã bị đứt. Tuy nhiên UDP hoàn toàn bỏ qua các sự cố đặt biệt này; Các client và server có thể một “ chuyến vận chuyển dữ liệu” UDP ngay lập tức và để nó tự nhiên truyền trên mạng với các sự kiện có thể có.
UDP đơn giản hóa việc thực hiện server. Ở những phiên bản trước, server được thực hiện đơn luồng (single thread), có nghĩa là mỗi lúc chỉ có một yêu cầu được nhận, xử lí và trả về. Điều này không thể quản lý được trong môi trường kỹ thuật an toàn quay vòng (back-end security mechanism) dùng thời gian thực (real-time). Hàng đợi yêu cầu của server sẽ bị đầy, và trong một môi trường có hàng trăm người được yêu cầu xác nhận quyền trong mỗi phút, thời gian quay vòng của yêu cầu sẽ lớn hơn rất nhiều so với thời gian mà user chờ đợi. Do vậy, giải pháp được chọn là thực hiện server chế độ đa luồng (multu-thread) với UDP. Những quá trình xử lý độc lập sẽ được sinh ra trên server tương ứng với mỗi yêu cầu và những quá trình này sẽ trả lời trực tiếp với các NAS khách hàng bằng gói UDP tới lớp truyền dẫn chính của client.
Giao thức RADIUS 1
Cơ chế hoạt động
Khi một client được cấu hình để sử dụng RADIUS, thì bất kỳ user nào của client đều giới thiệu những thông tin xác nhận quyền với client. Đó có thể là dấu nhắc lệnh đăng ký vào mạng yêu cầu user nhập username và password vào. User có thể lựa chọn việc sử dụng protocol thích hợp để thực hiện giới thiệu những thông tin này các gói dữ liệu chẳng hạn như PPP.
Mỗi client nhận được thông tin như vậy, nó có thể chọn dùng RADIUS để xác nhận quyền. Client sẽ tạo ra một “yêu cầu truy cập” (access request) chứa các thuộc tính như trên: mật khẩu của user, ID của client và ID port mà user này sẽ truy cập vào. Mật khẩu khi nhập vào sẽ được ẩn (Mã hóa RSA hoặc MD5).
“Yêu cầu truy cập” (access request) sẽ được gửi cho RADIUS thông qua mạng. Nếu không trả lời trong một khoảng thời gian qui ước thì yêu cầu sẽ được gửi lại. Client có thể chuyển (forward) yêu cầu cho các server dự phòng trong trường hợp server chính bị tắt hoặc hư hỏng hoặc hoạt động theo kiểu round-bin.
Mỗi khi RADIUS server nhận được yêu cầu, nó sẽ xác nhận client gửi. Những yêu cầu từ các client nào không chia sẽ thông tin bảo mật với RADIUS sẽ không được xác nhận và trả lời. Nếu client là hợp lệ, RADIUS server sẽ tìm kiếm trong cơ sở dữ liệu (CSDL) user có cùng tên trong yêu cầu. Chỉ mục của user trong CSDL sẽ chứa danh sách các đòi hỏi cần thiết cho phép user truy cập vào mạng. RADIUS luôn luôn xác nhận mật khẩu của user và có thể cả ID của client và ID port mà user được phép truy cập.
RADIUS server có thể yêu cầu các server khác xác nhận yêu cầu. Lúc đó RADIUS đóng vai trò của một client.
Nếu bất cứ điều kiện nào không thỏa mãn, RADIUS server sẽ gửi một trả lời ‘từ chối truy cập” (access reject) biểu thị rằng yêu cầu của user là không hợp lệ. Server có thể kèm theo một thông báo dạng văn bản (text massage) trong access-reject để client có thể hiển thị cho user. Không có một thuộc tính nào khác được phép chứa trong access-reject.
Nếu tất cả các điều kiện đều thỏa mãn và RADIUS server muốn đưa ra một yêu cầu đòi hỏi user phải trả lời, thì RADIUS sẽ gửi một trả lời “đòi hỏi truy cập” (access-challenge), nó có thể dưới dạng một thông báo dạng văn bản được hiển thị cho user bởi client hoặc là một thuộc tính trạng thái (state attribute). Client sẽ nhận access-challenge, và nếu nó được trang bị challenge/ response, nó sẽ hiển thị thông báo nhắc nhở user trả lời yêu cầu. Sau đó client sẽ gửi lại (re-submit) “yêu cầu truy cập” (original access-request) vơi một số hiệu yêu cầu (request ID) mới, nhưng thuộc tính usename-password được lấy từ thông tin vừa mới nập vào, và kèm luôn cả thuộc tính trạng thái từ access-challenge. RADIUS server có thể trả lời một access-request bằng một access-accept, access-reject hoặc một access-challenge khác.
Nếu cuối cùng tất cả các điều kiện trên được thỏa mãn, thì danh sách các giá trị cấu hình cho user được đặt vào trả lời “access-accept”. Các giá trị này bao gồm kiểu của dịch vụ (SLIP, PPP, Login..) và các giá trị cần thiết để cấp phát dịch vụ này. Ví dụ như đối với SLIP hay PPP, các giá trị này có thể là địa chỉ IP, subnet mask, MTU, phương pháp nén và số hiệu lọc gói. ở chế độ ký tự (character mode), các giá trị này có thể là giao thức và tên máy chủ.
Dạng gói của packet
Một cách chính xác, một gói RADIUS được bao bọc trong trường dữ liệu của gói UDP, và trường địa chỉ đích có số hiệu cổng là 1812. Khi gói trả lời được tạo ra, số hiệu cổng của địa chỉ nguồn và đích được bảo lưu.
Một gói dữ liệu của RADIUS được xác định như sau (các trường được gửi đi từ trái sang phải).
Hình 41 Packet Format
Code: Code field là một octet, và xác định kiểu gói của RADIUS. Khi một gói có mã không hợp lệ sẽ không được xác nhận
RADIUS code (decimal) được chỉ định như sau:
1 Access-Request
2 Access-Accept
3 Access-Reject
4 Accounting-Request
5 Accounting-Response
11 Access-Challenge
12 Status-Server (experimental)
13 Status-Client (experimental)
255 Reserved
Mã số 4 và số 4 được che đậy trong tài liệu RADIUS accouting [5]. Mã số 12 và 13 là dành riêng cho việc có thể sử dụng, nhưng nó không được đề cập ở đây.
Identifier (Trường định danh )
Indentifier field là một octet, và phù hợp với việc hỗ trợ yêu cầu và trả lời. Các máy chủ RADIUS có thể phát hiện một yêu cầu trùng lặp, nếu có các client có cùng một địa chỉ IP nguồn và UDP port và định danh trong một thời gian ngắn.
Length
Length field là hai octet, nó bao gồm các code field, indentifier, length, authentication, và trường thuộc tính (attribute field). Những byte nằm ngoài khoảng qui định bởi length sẽ được coi là những byte thừa, và sẽ bị bỏ qua khi nhận. Nếu gói ngắn hơn giá trị trường length, nó sẽ không được xác nhận và trả lời. Giá trị nhỏ nhất của trường length là 20 và giá trị lớn nhất là 4096.
Authenticator
Trường authenticator là 16 octet. Octet lớn nhất được truyền đi đầu tiên. Giá trị này được sử dụng để xác nhận các trả lời từ RADIUS server và được sử dụng trong thuật toán ẩn mật khẩu.
Request Authenticator: Trong các gói access-request, giá trị của trường xác nhận (authenticator field) là một số ngẫu nhiên 16 byte được gọi là bộ xác nhận yêu cầu (request authenticator). Giá trị này không thể dự đoán trước và duy nhất trong suốt thời gian sống của “thông tin bí mật” (mật khẩu dùng chung giữa client và RADIUS server); Vì nếu có sự lặp lại của giá trị này có nghĩa là một attacker có thể trả lời câu hỏi này không cần sự xác nhận của RADIUS server. Do đó, bộ xác nhận yêu cầu nên có giá trị toàn cục và duy nhất theo thời gian. Mặc dù, giao thức RADIUS không có khả năng ngăn chặn sự nghe lé phiên xác thực qua đường dây, nhưng việc sinh ra các giá trị không thể đoán trước được cho bộ xác nhận yêu cầu có thể hạn chế rất nhiều sự kiện này. NAS và RADIUS server chia sẽ ‘thông tin bí mật’. Thông tin bí mật chung này có được sau khi giá trị của “bộ xác nhận yêu cầu” được thuật toán MD5 băm để tạo ra giá trị 16 byte. Giá trị này được XOR với mật khẩu mà user nhập vào, kết quả sẽ được đặt vào thuộc tính user-password trong gói access-accept.
Response authenticator: Giá trị của trường xác nhận (authenticator field value) trong các gói access-request, access-reject, access-challenge được coi là bộ xác nhận trả lời (response authenticator). Giá trị này được tính bởi băm MD5 chuỗi các byte của code field, indentifier, length, xác nhận của gói access-request, và cộng thêm các thuộc tính trả lời và thông tin bí mật dùng chung
ResponseAuth =
MD5(Code+ID+Length+RequestAuth+Attributes+Secret) where +
denotes concatenation.
Administrative Note
Thông tin bí mật (chia sẽ password giữa client và RADIUS server) nên ít nhất là lớn và phứt tạp đó là cách lựa chọn mật khẩu tốt. Mức ưu tiên có thể chấp nhận được ít nhất là 16 octet. Điều này để đảm bảo phạm vi đủ lớn cho việc cung cấp các cơ chế bảo mật chống lại các cuộc tấn công tìm kiếm.
Packet type (kiểu packet)
Packet type được xác định bởi code field chiếm byte đầu tiên của gói RADIUS.
Access-Request
Gói access-request được gửi tới RADIUS server. Nó chuyên chở thông tin dùng để xác định xem user có được phép truy cập vào NAS và các dịch vụ được chỉ định hay không. Code field của gói phải có giá trị 1. Gói access-request phải chứa các thuộc tính user-name, user-password hoặc CHAP-password, và có thể chứa các thuộc tính NAS-IP-Address, NAS-Indentifier, NAS-PORT, NAS-PORT-TYPE.
Trường indentifier phải được thay đổi khi nội dung của trường thuộc tính bị thay đổi khi nội dung của trường thuộc tính bị thay đổi hoặc là đã nhận được trả lời hợp lệ cho yêu cầu trước đó. Trong trường hợp phải gửi lại gói, trường indentifier không đượ thay đổi.
Hình 42 Access-request Packet Format
Access-accept
Gói access-accept đưcọ gởi trả bởi RADIUS server khi tất cả các giá trị thuộc tính của gói access-request. Nó cung cấp thông tin cấu hình cần thiết để cấp phát các dịch vụ cho user. Trường code phải có giá trị 2. Gói access-accept nhận được ở NAS phải có trường danh hiệu trùng khớp với access-request tương ứng đã gởi trước đó và phải có xác nhận (response authenticator) phù hợp với thông tin bí mật dùng chung.
Hình 43 Access-accept Packet Format
Access-reject
Gói access-reject được gởi trả từ RADIUS server khi có giá trị thuộc tính không được thỏa. Trường code của mã phải có giá trị 3. Gói có thể chứa 1 hoặc nhiều thuộc tính reply-message với một thông báo dạng văn bản mà NAS sẽ hiển thị nó với user. Trường indentifier của gói access-reject chính là bản sao của gói access-request tương ứng.
Hình 44 Access-reject packet format
Access-challenge
Gói access-challenge được RADIUS server gửi đến user đòi hỏi thêm thông tin cần thiết mà user phải trả lời. Trường code của gói phải có giá trị 11. Gói có thể chứa 1 hoặc nhiều thuộc tính reply-message và có thể có 1 thuộc tính state. Các thuộc tính khác không được xuất hiện trong gói access-chanllenge. Trường indentifier của gói access-challenge phải trùng khớp với gói access-request tương ứng đã gửi đi trước đó và phải có trường xác nhận (authenticator field) phù hợp với thông tin bí mật dùng chung. Nếu NAS không được trang bị challenge/ response thì gói access-challenge nhận được sẽ coi như gói access-reject. Nếu NAS được trang bị chức năng challenge/ response và gói access-challenge nhận được là hợp lệ thì NAS sẽ hiển thị thông báo và yêu cầu user trả lời thông tin mà RADIUS server yêu cầu. Sau đó NAS sẽ gửi gói access-request gốc nhưng với danh hiệu yêu cầu (request ID) và xác nhận yêu cầu (request authenticator) mới, đồng thời thuộc tính user-password cũng được thay thế bởi thông tin trả lời của user (đã được mã hóa) và có thể bao gồm cả thuộc tính state từ gói access-challenge.
Hình 45 Access-challenge packet format
Attributes (các thuộc tính)
Các thuộc tính của RADIUS, chứa trong các gói yêu cầu/ trả lời, mang thông tin xác thực quyền, phân quyền, cấu hình cần thiết để cấp phát các dịch vụ cho user. Giá trị các trường length của gói RADIUS sẽ qui định điểm kết thúc của các thuộc tính trong gói. Dạng của thuộc tính như sau:
Hình 46 Attributes type
Type
Mỗi trường type là một octet, giá trị từ 192-223 là dành riêng cho nghiên cứu, giá trị từ 224-240 là dành cho việc thực hiện cụ thể, 241-255 là dành riêng và không nên sử dụng.
RADIUS server có thể bỏ qua các thuộc tính với một loại không rõ.
RADIUS client có thể bỏ qua các thuộc tính với một loại không rõ.
Điều này quan tâm đặc tả các giá trị sau:
1 User-Name
2 User-Password
3 CHAP-Password
4 NAS-IP-Address
5 NAS-Port
6 Service-Type
7 Framed-Protocol
8 Framed-IP-Addres
Các file đính kèm theo tài liệu này:
- Báo cáo tìm hiểu radius.doc