• Wireless Client muốn liên 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 liên 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 tới AP.
• 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 thự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 trong chế độ forward.
Khi hỗ trợ khả năng chứng thực lẫn nhau thì quá trình trên tiếp tục xảy ra nhưng với chiều ngược lại. Trong quá trình xác thực trên có một số vấn đề cần xem xét: tạo chìa khóa theo phiên và quản lí chìa khóa tập trung.
• Sinh chìa khóa động
Để tránh việc giả mạo, mỗi một phiên kết nối với một client sẽ được RADIUS server cấp cho một key riêng, session key. Khi truyền key này cho Client, để tránh việc nghe trộm do gửi thông tin clear text, AP sẽ mã hóa session key này, và client sẽ dùng key của mình để giải mã, lấy session key cho mình. Tất cả các session key này đều được sinh bởi RADIUS server thông qua một thuật toán nào đó. Có khi mỗi phiên liên kết chỉ có một Key, nhưng bạn cũng có thể thiết lập trên RADIUS server để tạo các chu kỳ xác thực theo yêu cầu của bạn. Theo cơ chế này, RADIUS sẽ định kỳ xác thực client, do đó tránh được truy cập mạng do vô tình.
CHƯƠNG 3
GIAO THỨC CHỨNG THỰC RADIUS SERVER TRONG WLAN 3.1 GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC CHỨNG THỰC RADIUS 3.1.1 Radius là gì?
Radius là viết tắt của Remote Authentication Dial-in User Service, là một giao thức chứng thực đã được triển khai rộng rãi trong dịch vụ Internet quay số (Dial - up). Với phương pháp đơn giản trong quá trình xác thực là dựa trên mật khẩu và với quá trình transaction đơn giản, Radius đã trở thành giao thức xác thực trong thế giới dial – up cho những kết nối IP sử dụng giao thức điểm – điểm (point-to-point protocol). Gần đây, sự quan tâm trong Radius cũng đã được mở rộng trong vấn đề xác thực mạng WLAN.
Radius dựa trên mô hình client – server, nơi mà 1 Radius client tương tác với Radius server thông qua một hoặc nhiều Radius proxy. Trong bối cảnh của dịch vụ Dial – up, client thường là một NSA (network access server) được kết nối với RSA (remote access server) chủ yếu là điểm cuối của kết nối Dial – up qua đường dây điện thoại, Radius có trách nhiệm nhận yêu cầu kết nối của người sử dụng, xác thực người dùng và sau đó trả về tất cả các thông tin cấu hình cần thiết cho client để cung cấp dịch vụ cho người dùng. Như vậy, Radius không chỉ cung cấp chức năng xác thực để cung cấp dịch vụ cho người dùng, mà còn hỗ trợ ủy quyền cũng như kế toán/ kiểm toán (AAA).
Một số lý do mà Radius chạy trên UDP thay vì chạy trên TCP. Về cơ bản, Radius là một giao thức dựa trên các transaction không được công nhận. Cụ thể hơn, trong một môi trường dự kiến, nhiều Radius server có thể được triển khai để cung cấp dịch vụ tin cậy. Khi một máy chủ bị trục trặc hoặc có vấn đề, một máy chủ sao lưu dự phòng phải được đưa vào để thay thế máy chủ trước. Do đó, bản sao yêu cầu phải được giữ ở tầng Transport để cho phép thay thế quá trình vận chuyển. Điều này cho thấy UDP trong Radius truyền tải tốt hơn TCP. Tuy nhiên, việc sử dụng UDP có nghĩa là những điểm cuối của Radius phải thực thi cơ chế tin cậy của chính nó để xử lý các gói dữ liệu bị mất. Có rất nhiều cơ chế thực thi trong Radius và ngày nay, các trường hợp này chỉ cần sử dụng retransmission như một cơ chế tin cậy. Cuối cùng, Radius
được thiết kế với một nonaggressive response. Người dùng sẽ không để tâm tới việc chờ đợi vài giây để quá trình chứng thực hoàn thành. Như vậy, TCP được cho rằng “quá tích cực” cho các nhu cầu của Radius.
3.1.2 Radius Packets
Radius Packets có định dạng như hình dưới đây, nơi mà chỉ duy nhất Radius Packets được đóng gói trong trường dữ liệu UDP.
Hình 3.1: Minh họa định dạng của Radius Packets
• Code field: trường này xác định loại thông điệp và có độ dài là 1 octet. Một số thông điệp thường được sử dụng như access-request (code 1), access-accept (code 2), access-reject (code 3), accounting-request (code 4), and accounting- response (code 5). Một vài code khác được dùng trong accounting cụ thể, những code còn lại được dành riêng để sử dụng trong tương lai.
• Identifier field (nhận dạng): có độ dài là 1 octet, được dùng để kết hợp giữa yêu cầu và phản hồi.
• Length field (chiều dài): độ dài 2 octet, cho biết độ dài của toàn bộ packet, bao gồm code, identifier, length, authenticator và thuộc tính (attribute).
• Authenticator field (xác thực): với độ dài là 16 octet, những octet quan trọng nhất được truyền đi đầu tiên. Nội dung thực của trường này được xác định bởi loại gói tin mà trong đó nó được chứa. Khi packet là 1 access – request, chức năng này như là một lĩnh vực yêu cầu chứng thực gồm 16 octet của một số ngẫu nhiên. Trong Radius, NAS và Radius server cùng chia sẻ 1 bí mật chung. Sau đó là xác thực yêu cầu thông qua thuật toán băm 1 chiều MD5 để tạo ra 16
octet digest value. Sau đó, thuật toán XOR được sử dụng dựa trên mật khẩu của người dùng. Kết quả của quá trình này được đặt trong thuộc tính user – password của gói access – request.
Authenticator trong các gói access-accept, access-reject và access-challenge được gọi là xác thực phản hồi. Trường này chứa thuật toán băm 1 chiều MD5 được tính toán qua sự liên kết của những thành phần sau: các nhận dạng, độ dài, chứng thực theo yêu cầu (tư các gói access – request ban đầu), thuộc tính phản hồi, và bí mật được chia sẻ (chia sẻ giữa NAS hoặc Radius Client và Radius server).
• Attributes field (thuộc tính): trường này có giá trị thuộc tính cụ thể đối với mỗi loại packets.
3.1.3 Tiếp cận với chứng thực Radius
Trong lịch sử, Radius đã sử dụng 2 phương pháp xác thực cơ bản là sử dụng mật khẩu gốc và băm mật khẩu. Cách tiếp cận thứ 2 là sử dụng một cơ chế băm khóa dựa trên bí mật chia sẻ. Hai phương pháp được thể hiện trong 2 giao thức xác thực phổ biến nhất sử dụng với Radius là PAP và CHAP. Trong trường hợp sử dụng PAP, NAS (hoặc Radius server) sẽ gửi Client ID (hoặc PAP ID) cùng với mật khẩu (bản gốc) trong các gói access – request đến máy chủ. Kể tư khi quá trình gửi mật khẩu gốc tư client đến server không còn an toàn nữa, quá trình này bị cấm và không còn được sử dụng cho hầu hết các ISP dial – up. Trong trường hợp sử dụng CHAP, đầu tiên NAS tạo ra 1 giá trị ngẫu nhiên và gửi nó như là 1 giá trị yêu cầu cho người sử dụng, người sẽ trả lời nó với 1 phản hồi, kèm theo tên người dùng và giá trị CHAP ID. Sau đó, NAS giao tiếp với Radius server bằng cách gửi 1 gói tin yêu cầu truy nhập vào máy chủ có chứa thông tin của CHAP username và sử dụng CHAP ID, CHAP response như CHAP password. Sau đó, Radius server xác nhận mật khẩu của người dùng bằng cách lặp lại quá trình băm được thực hiện bởi người sử dụng và so sánh kết quả với giá trị lưu trữ. Nếu kết quả phù hợp và chính xác, máy chủ sẻ gửi trả lại 1 thông báo chấp nhận truy cập vào NAS, ngược lại sẽ có thông báo tư chối truy cập.
3.2 LỖ HỖNG TRONG CHỨNG THỰC RADIUS
• Thiếu gói tin xác thực cho các gói tin access – request. Các thông báo access – request có chứa 1 số giả ngẫu nhiên 128 bit được gọi là yêu cầu xác thực (Request Authenticator - RA). Tuy nhiên, trong thực tế thì chức năng của RA còn hơn cả lúc này, và được sử dụng trong việc ẩn mật khẩu của người dùng trong thông báo access – request. Như vậy, giá trị của RA thực sự không cung cấp xác thực trong thông báo access – request. Lưu ý rằng, sử dụng Radius trên IPsec sẽ khắc phục được vấn đề này.
• Sử dụng tư điển ngoại tuyến (offline) để tấn công bí mật chia sẻ. Nhiều triển khai Radius chỉ cho phép chia sẻ những bí mật bao gồm những ký tự ASCII và có độ dài dưới 16 ký tự. Điều này hạn chế kết quả trong những bí mật được chia sẻ thường có entropy thấp. Nhận thấy được điều này, một kẻ tấn công có thể bắt đầu thu thập các gói tin access – request, access – reponse (cũng có thể là gói accounting – request hoặc accounting – response) để sau đó thực hiện tấn công bằng tư điển ngoại tuyến.
• Tấn công bằng tư điển ngoại tuyến trong EAP. Tương tự như quá trình tấn công ở phần bí mật chia sẻ, kẻ tấn công cũng có thể thực hiện một cuốc tấn công ngoại tuyến trên bất kỳ gói tin nào trong thuộc tính của EAP. Tuy nhiên, kể tư khi các thuộc tính của các gói tin EAP sử dụng HMAC – MD5, kiểu tấn công này gặp khó khăn hơn trước đây.
3.3 QUÁ TRÌNH CHỨNG THỰC RADIUS SERVER TRONG WLAN
Mạng WLAN bản thân nó là không bảo mật, tuy nhiên đối với mạng có dây nếu bạn không có một sự phòng ngưa hay cấu hình bảo vệ thì nó cũng chẳng bảo mật. Điểm mấu chốt để tạo ra một mạng WLAN bảo mật là phải triển khai các phương pháp bảo mật thiết yếu cho WLAN để giúp cho hệ thống mạng được an toàn hơn, nhằm ngăn chặn những truy cập mạng trái phép không mong muốn. Khi đó client muốn truy cập vào mạng thì phải đăng nhập đúng Username và Password hợp lệ. Quá trình xác thực này được điều khiển bởi RADIUS server.
3.3.1 Kịch bản xác thực bảo mật WLAN với Radius Server
3.3.1.1 Giới thiệu
a. Mô hình
Mạng WLAN gồm:
- 01 Server được cài đặt Radius Server trên Window Server 2003 - 01 AP Linksys được thiết đặt chế độ bảo mật là WPA2 Enterprise - Các Client PC tham gia vào mạng, kiểm tra kết nối
Hình 3.2: Client, AP, Radius server
b. Yêu cầu :
- Cấu hình RADIUS server trên Window Server 2003, tạo User và Password cho các client dự định tham gia vào mạng.
- Trên AP Linksys, thiết đặt chế độ bảo mật là WPA2 Enterprise - Cho PC tham gia vào mạng, kiểm tra kết nối theo 2 trường hợp:
• Kết nối thành công
• Kết nối không thành công
3.3.1.2 Thực hiện
a) Thiết bị:
- 1 AP Linksys – WRT54G. 2 PC (1 PC có gắn card wireless và 1 PC làm Radius server)
- PC làm Radius server sử dụng hệ điều hành Windows Server 2003 Enterprise Edition và đã được nâng lên Domain Controller.
- PC làm wireless client sử dụng hệ điều hành Windows 7 Professional. b) Các bước cài đặt:
• Bước 1: Cài đặt DHCP trên máy chủ được chọn làm Radius Server
Vào Control Panel Add/Remove Program Add/Remove Windows Components Networking Services Chọn Dynamic Host Configuration Protocol (DHCP) Chọn OK.
Hình 3.3: Cài đặt DHCP
• Bước 2: Cài đặt Enterprise CA
Control Panel Add/Remove Program Add/Remove Windows Components Certificate Services Chọn Certificate Services CA và Chọn Certificate Services Web Enrollment Support Chọn OK (Trong quá trình cài đặt chọn IIS để dùng Web Enrollment Wizard). Trong các Wizard tiếp theo ta chọn “Enterprise root CA” và đặt tên cho CA này là “radiusserver”.
Hình 3.4: Cài đặt CA
• Bước 3: Cài Radius
Vào Control Panel Add/Remove Program Add/Remove Windows Components Networking Services Chọn Internet Authentication Service.
• Bước 4: Chuyển sang Native Mode
Để điều khiển truy cập của user qua Remote Access Policy. Mở Active Directory Users and Computers Console tư thư mục Administrative Tools, click chuột phải vào tên server và chọn “Raise domain Functional Level”
Hình 3.6: Raise domain functional level
• Bước 5: Cấu hình DHCP
Mở DHCP Console tư thư mục Administrative Tools, bấm phải chuột vào tên server và chọn “Anthorize” để đăng ký với DC.
- Tạo một Scope có tên là “wlan”.
- Scope range: 192.168.1.3 192.168.1.127 - Lease Duration: 7 ngày.
- Default Gateway: 192.168.1.1 - DNS Server: 192.168.1.2
• Bước 6: Cấu hình Radius
- Mở IAS Console tư thư mục Administrative Tools, bấm phải chuột vào “Internet Authentication Service (Local)” và chọn "Register Server in Active Directory".
Hình 3.8: Register Server in Active Directory
- Chuyển xuống mục RADIUS Client, bấm phải chuột và chọn "New RADIUS Client". Trong cửa sổ mở ra, ta nhập các thông số của thiết bị Access Point: Địa chỉ IP và Secret key. Ở phần chọn "Client - Vendor" nếu loại Access Point có tên trong danh mục thì chọn, nếu không biết loại gì thì chọn "RADIUS Standard" và Shared Secret là “1234” (phải trùng với shared key trên AP).
• Bước 7: Tạo User. Cấp quyền Remote Access cho User và Computer
Mở Active Directory Users and Computers Console tư thư mục Administrative Tools.
- Tạo 1 OU “wlan”
- Trong OU này tạo 1 user “u1”, password là “abc~123”. - Tạo tiếp 1 computer có tên là “wificlient”.
- Cũng trong OU “wlan” tạo 1 group “wifi”, các thành viên của group này là: “wificlient” và user “u1”.
- Vào User account Dial-in Tab ở mục Remote Access Permission chọn “Allow access” để quản lý việc ra vào của User qua IAS.
Hình 3.10: Active Directory Users and Computers
• Bước 8: Tạo Remote Access Policy
- Mở IAS Console tư thư mục Administrative Tools Remote Access Policies New Remote Access Policies.
Đặt tên cho Policy này là “wlan”
Hình 3.12: Policy name là “wlan”
Access mode là “Wireless”
Trong wizard tiếp theo cấp quyền truy cập cho User hay Group
Hình 3.14: User or Group Access
Ta chọn phương thức xác thực cho policy này là PEAP (Protected Extensible Authentication Protocol). Ta chọn Finish ở Wizard tiếp theo để hoàn thành.
• Bước 9: Request Certificate từ CA Enterprite Server
Do server Radius không đặt chung với CA Enterprite Server nên cần xin cấp Certificate tư CA server. Để xin Certificate server, tư cửa sổ Internet explorer nhập vào địa chỉ của CA server http://192.168.1.2/certsrv
Sau khi giao diện trang cấp phép hiện ra, click chọn “Request a certificate”
Hình 3.16: Màn hình bắt đầu xin Certificate server
Click chọn “ Advanced certificate request”
Hình 3.17: Request Certificate
Sau đó click chọn “Create and submit a request to this CA”
Trong trang “Advanced Certificate Request” chọn Certificate Template là Web Server và điền đầy đủ thông tin trong phần “Identifying information For Offline Template”.
Hình 3.19: Create and submit a request to this CA
Trong phần “Key Options” click chọn “Store certificate in the local computer certificate store”
Hình 3.20: Tùy chỉnh trong “Key Options”
Sau khi Certification được cấp phát click “Install this certificate” để cài cài Certificate
Hình 3.21: Certification được cấp phát
CA Server báo là đã cấp phát certification thành công
Hình 3.22: Certificate has been successfully installed
• Bước 10: Cấu hình AP. Khai báo địa chỉ máy Radius Server
Mở FireFox Trên thanh Address Bar gõ địa chỉ 192.168.1.5 (để vào cấu hình AP) Chọn Tab Wireless Tab Wireless Security Cấu hình AP như hình.
Hình 3.23: Cấu hình AP với chế độ bảo mật WPA2 Enterprise
• Bước 11: Cấu hình Wireless Client
Mở Control Panel Network and Sharing Center Manage wireless network Click chuột phải vào Radius_Network chọn Properties và cấu hình như bên dưới.
c) Demo
Khởi động Radius Server và AP. Tư Wireless Client đăng nhập với user là “u1” và passwork là “abc~123”.
Hình 3.25: Bắt đầu kết nối vào AP
Kết quả thu được khi kết nối thành công
Hình 3.26: Kết nối thành công
Khi nhập 1 username và password bất kỳ sẽ không thể kết nối được.
Cửa sổ xác định lỗi tại máy client.