Cách Sử dụng RADIUS cho quá trình xác thực trong WLAN

Trong bài viết này nói về bài học đầu tiên của tôi, việc bảo mật WLAN sử dụng chuẩn 802.1X kết hợp với xác thực người dùng trên Access Point (AP). Một máy chủ thực hiện việc xác thực trên nền tảng RADIUS có thể là một giải pháp tốt cung cấp xác thực cho chuẩn 802.1X. Trong bài viết này tôi sẽ giới thiệu với các bạn cách thức làm việc của RADIUS và vì sao phải cần thiết máy chủ RADIUS để hỗ trợ việc xác thực cho WLAN.

Trong phần sau của bài viết tôi sẽ giới thiệu một vài RADIUS Server từ các nhà sản xuất khác nhau, cách cài đặt cũng như giá cả của từng sản phẩm

Authentication, Authorization, and Accounting

Giao thức Remote Authentication Dial In User Service (RADIUS) được định nghĩa trong RFC 2865 được đưa ra với định nghĩa: Với khả năng cung cấp xác thực tập trung, cấp phép và điều khiển truy cập (Authentication, Authorization, và Access Control – AAA) cho các phiên làm việc với SLIP và PPP Dial-up – như việc cung cấp xác thực của các nhà cung cấp dịch vụ Internet (ISP) đều dựa trên giao thức này để xác thực người dùng khi họ truy cập Internet. Nó cần thiết trong tất cả các Network Access Server (NAS) để làm việc với danh sách các username và password cho việc cấp phép, RADIUS Access-Request sẽ chuyển các thông tin tới một Authentication Server, thông thường nó là một AAA Server (AAA – Authentication, Authoriztion, và Accounting). Trong kiến trúc cua hệ thống nó tạo ra khả năng tập trung các dữ thông tin của người dùng, các điều kiện truy cập trên một điểm duy nhất (single point), trong khi có khả năng cung cấp cho một hệ thống lớn, cung cấp giải pháp NASs.

Khi một user kết nối, NAS sẽ gửi một message dạng RADIUS Access-Request tới máy chủ AAA Server, chuyển các thông tin như username và password, thông qua một port xác định, NAS identify, và một message Authenticator.

Sau khi nhận được các thông tin máy chủ AAA sử dụng các gói tin được cung cấp như, NAS identify, và Authenticator thẩm định lại việc NAS đó có được phép gửi các yêu cầu đó không. Nếu có khả năng, máy chủ AAA sẽ tìm kiểm tra thông tin username và password mà người dùng yêu cầu truy cập trong cơ sở dữ lệu. Nếu quá trình kiểm tra là đúng thì nó sẽ mang một thông tin trong Access-Request quyết định quá trình truy cập của user đó là được chấp nhận.

Khi quá trình xác thực bắt đầu được sử dụng, máy chủ AAA có thể sẽ trả về một RADIUS Access-Challenge mang một số ngẫu nhiên. NAS sẽ chuyển thông tin đến người dùng từ xa (với ví dụ này sử dụng CHAP). Khi đó người dùng sẽ phải trả lời đúng các yêu cầu xác nhận (trong ví dụ này, đưa ra lời đề nghị mã hoá password), sau đó NAS sẽ chuyển tới máy chủ AAA một message RADIUS Access-Request.

Nếu máy chủ AAA sau khi kiểm tra các thông tin của người dùng hoàn toàn thoả mãn sẽ cho phép sử dụng dịch vụ, nó sẽ trả về một message dạng RADIUS Access-Accept. Nếu không thoả mãn máy chủ AAA sẽ trả về một tin RADIUS Access-Reject và NAS sẽ ngắt kết nối với user.

Khi một gói tin Access-Accept được nhận và RADIUS Accounting đã được thiết lập, NAS sẽ gửi mộtgói tin RADIUS Accounting-Request (Start) tới máy chủ AAA. Máy chủ sẽ thêm các thông tin vào file Log của nó, với việc NAS sẽ cho phép phiên làm việc với user bắt đầu khi nào, và kết thúc khi nào, RADIUS Accouting làm nhiệm vụ ghi lại quá trình xác thực của user vào hệ thống, khi kết thúc phiên làm việc NAS sẽ gửi một thông tin RADIUS Accounting-Request (stop).

Security and Extensibility

Tất cả các message của RADIUS đều được đóng gói bởi UDP datagrams, nó bao gồm các thông tin như: message type, sequence number, length, Authenticator, và một loạt các Attribute-Value.


Authenticator: tác dụng của Authenticator là cung cấp một chế độ bảo mật. NAS và AAA Server sử dụng Authenticator để hiểu đuợc các thông tin đã đươcj mã hoá của nhau như mật khẩu chẳng hạn. Authenticator cũng giúp NAS phát hiện sự giả mạo của gói tin RADIUS Responses. Cuối cùng, Authenticator được sử dụng làm cho để biễn password thành một dạng nào đó, ngăn chặn việc làm lộ mật khẩu của người dùng trong các message RADIUS.

Authenticator gửi Access-Request trong một số ngẫu nhiên. MD5 sẽ băm (hash) số ngẫu nhien đó thành một dạng riêng là OR’ed cho mật khẩu của ngwoif dùng và gửi trong Access-Request User-Password. Toàn bộ RADIUS response sau đó được MD5 băm (hash) với cùng thông số bảo mật của Authenticator, và các thông số response khác.

Authenticator giúp cho quá trình giao tiếp giữa NAS và máy chủ AAA được bảo mật nhưng nếu kẻ tấn công tóm được cả hai gói tin RADIUS Access-Request và Access-Response thì có thể thực hiện "dictionary attack" để phân tích việc đóng gói này. Trong điều kiện thực tế để việc giải mã khó khăn bạn cần phải sử dụng những thông số dài hơn, toàn bộ vấn đề có khả năng nguy hại cho quá trình truyền tải này được miêu tả rất kỹ trong RFC 3580

Attribute-Value Pairs: Thông tin được mang bởi RADIUS đuợc miêu tả trong một dạng Attribute-Value, để hỗ trợ cho nhiều công nghệ khác nhau, và nhiều phương thức xác thực khác nhau. Một chuẩn được định nghĩa trong Attribute-Value pairs (cặp đôi), bao gồm User-Nam, User-Password, NAS-IPAddress, NAS-Port, Service-Type. Các nhà sản xuất (vendors) cũng có thể định nghĩa Attribute-Value pairs để mang các thông tin của mình như Vendor-Specific toàn bộ ví dụ này được miêu tả trong RFC 2548 - Định nghĩ Microsoft Attribute-Value pair trong MS-CHAP.

Thêm vào đó, rất nhiều chuẩn Attribute-Value pairs được định nghĩa trong nhiều năm để hỗ trợ Extensible Authentication Protocol (EAP), một dạng khác cũ hơn của nó là PAP và CHAP dial-up protocol. Bạn có thể tìm thấy trong tài liệu RFC 3579 cho phiên bản mới nhất của RADIUS hỗ trợ EAP. Trong phần này sẽ nói rất rõ về hỗ trợ xác thực cho WLAN, từ khi chuẩn EAP được sử dụng cho 802.1X Port Access Control để cho phép xác thực từ bên ngoài cho wireless.

Applying RADIUS to Wireless LANs

Trong một mạng Wireless sử dụng 802.1X Port Acces Control, các máy chạm sử dụng wireless với vai trò Remote User và Wireless Access Point làm việc với vai trò như một Network Access Server NAS. Để thay thế cho việc kết nối đến NAS với dial-up như giao thức PPP, wireless station kết nối đến Access Point bằng việc sử dụng giao thức 802.11.

Một quá trình được thực hiện, wireless station gửi một message EAP-Start tới Access Point. Access Point sẽ yêu cầu station nhận dạng và chuyển các thông tin đó tới một AAA Server với thông tin là RADIUS Access-Request User-Name attribute.

Bây giờ bạn đã hiểu, máy chủ AAA và wireless station hoàn thành quá trình bằng việc chuyển các thông tin RADIUS Access-Challenge và Access-Request qua Access Point. Được quyết định bởi phía trên là một dạng EAP, thông tin này được chuyển trong một đường hầm được mã hoá TLS (Encypted TLS Tunnel).

Nếu máy chủ AAA gửi một message Access-Accept, Access Point và wireless station sẽ hoàn thành quá trình kết nối và thực hiện phiên làm việc với việc sử dụng WEB hay TKIP để mã hoá dữ liệu. Và tại điểm đó, Access Point sẽ không cấm cổng và wireless station có thể gửi và nhận dữ liệu từ hệ thống mạng một cách bình thường.

Các bạn cần lưu ý là mã hoá dữ liệu từ wireless station tới Access Point khác với quá trình mã hoá từ Access Point tới máy chủ AAA Server (RADIUS Server).

Nếu máy chủ AAA gửi một message Access-Reject, Access Point sẽ ngắt kết nối tới station. Station có thể cố gắng thử lại quá tình xác thực, nhưng Access Point sẽ cấm station này không gửi được các gói tin tới các Access Point ở gần đó. Chú ý là station này hoàn toàn có khả năng nghe được các dữ liệu được truyền đi từ các stations khác – Trên thực tế dữ liệu được truyền qua sóng radio và đó là câu trả lời tại sao bạn phải mã hoá dữ liệu khi truyền trong mạng không dây.

Attribute-Value pare bao gồm trong message của RADIUS có thể sử dụng bởi máy chủ AAA để quyết định phiên làm việc giữa Access Point và wireless station, như Sesstion-Timeout hay VLAN Tag (Tunnel-Type=VLAN, Tunnel-Private-Group-ID=tag). Chính xác các thông tin thêm vào có thể phụ thuộc vào máy chủ AAA Server hay Access Point và station bạn sử dụng.

Implementation Options

Một vấn đề đầu tiên bạn phải hiều vai trò của RADIUS trong quá trình xác thực của WLAN, bạn phải thiết lập một máy chủ AAA hỗ trợ interaction.

- Nếu bạn có một máy chủ AAA trong mạng gọi là RADIUS, nó đã sẵn sàng để hỗ trợ xác thực cho chuẩn 802.1X và cho phép chọn lựa các dạng EAP. Nếu đã có bạn chuyển tiếp đến bước tiếp theo là làm thế nào để thiết lập tính năng này.

- Nếu bạn có một RADÍU – AAA Server không hỗ trợ 802.1X, hoặc không hỗ trợ các dạng EAP, bạn có thể lựa chọn bằng cách cập nhật các phiên bản phần mềm mới hơn cho server, hay bạn có thể cài đặt một máy chủ mới. Nếu bạn cài đặt một máy chủ AAA hỗ trợ xác thực cho chuẩn 802.1X, bạn có thể sử dụng tính năng RADIUS proxy để thiết lập một chuỗi các máy chủ, cùng chia sẻ chung một cơ sở dữ liệu tập trung, RADIUS proxy có thể sử dụng để chuyển các yêu cầu xác thực tới máy chủ có khả năng xác thực qua chuẩn 802.1X.

- Nếu baạnkhông có một RADIUS – là máy chủ AAA, bạn cần thiết phải cài đặt một máy chủ cho quá trình xác thực của WLAN, lựa chọn cài đặt này là một công việc thú vị.

Kết luận

Với cơ sở tập trung - Giải pháp sử dụng RADIUS cho mạng WLAN là rất quan trọng bởi nếu một hệ thống mạng của bạn có rất nhiều Access Point việc cấu hình để bảo mật hệ thống này là rất khó nếu quản lý riêng biệt, người dùng có thể xác thực từ nhiều Access Point khác nhau và điều đó là không bảo mật.

Khi sử dụng RADIUS cho WLAN mang lại khả năng tiện lợi rất cao, xác thực cho toàn bộ hệ thống nhiều Access Point, … cung cấp các giải pháp thông minh hơn.

Toàn bộ thông tin về RFC các bạn có thể lấy được từ trang web sau:

Ví dụ bạn cần thông tin về RFC 2865: ftp://ftp.rfc-editor.org/in-notes/rfc2865.txt bạn chỉ cần thay thông số rfcxxxx.txt để lấy thông tin về nó.

Post a Comment

Mới hơn Cũ hơn