GIẢI PHÁP BẢO MẬT WPA TRONG MẠNG WLAN WPA là kỹ thuật bảo mật sử dụng phương thức mã hóa được thiết kế để bảo mật trên tất cả các phiên bản 802.11b, 802.11a, 802.11g, và 802.11n hỗ trợ đa kênh (multi- band), đa chế độ (multi-mode). WPA có các đặc điểm sau: + WPA mã hóa thông tin bằng RC4 chiều dài của khóa là 128 bit và IV có chiều dài là 48 bit. WPA sử dụng giao thức TKIP (Temporal Key Integrity Protocol) nhằm thay đổi khóa dùng AP và user một cách tự động trong quá trình trao đổi thông tin. Cụ thể là TKIP dùng một khóa nhất thời 128 bit kết hợp với địa chỉ MAC của user host và IV để tạo ra mã khóa. Mã khóa này sẽ được thay đổi sau khi 10000 gói thông tin được trao đổi. + WPA sử dụng cơ chế kiểm tra tính toàn vẹn của thông tin MIC (Message Integrity Check) để chống lại những gói tin giả mạo. MIC là một bản tin 64 bit được tính dựa trên thuật toán Michael. MIC sẽ được gửi trong gói TKIP và giúp người nhận kiểm tra xem thông tin nhận được có bị lỗi trên đường truyền hoặc bị thay đổi bởi kẻ phá hoại hay không. + WPA sử dụng 802.1x/EAP để đảm bảo xác thực lẫn nhau (mutual authentication) nhằm chống lại man-in-middle attack. Theo đó, WPA có sẵn 2 lựa chọn: WPA Personal và WPA Enterprise. Cả 2 lựa chọn này đều sử dụng giao thức TKIP, và sự khác biệt chỉ là khóa khởi tạo mã hoá 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 sinh ra từ khóa tĩnh được nhập vào thủ công trên AP và các STA và sử dụng giao thức TKIP với Pre-Shares Key (PSK). Trong khi đó, WPA Enterprise được áp dụng cho doanh nghiệp, đối với các doanh nghiệp lớn có thể sử dụng một máy chủ nhận thực (thường là Remote Authentication Dial-In User Service Server, viết tắt là RADIUS Server) và 802.1x để cung cấp các khóa khởi tạo cho mỗi phiên làm việc. 1. Giao thức toàn vẹn khóa tạm thời TKIP TKIP (Temporary 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 WEP nhằm vá những vấn đề bảo mật trong cài đặt mật mã dòng RC4 trong WEP. TKIP cung cấp kỹ thuật băm (hashing) vector khởi tạo IV để chống lại việc giả mạo gói tin; nó cũng cung cấp phương thức để kiểm tra tính toàn vẹn của thông điệp MIC (Message Integrity Check) giúp xác định xem liệu hacker đã thay đổi nội dung gói tin (bằng cách chèn vào) hay chưa nhằm mục đích để đảm bảo tính chính xác của gói tin. TKIP sử dụng khóa động để chống lại việc bẻ khóa, bằng cách đặt cho mỗi khung một chuỗi số riêng để chống lại dạng tấn công giả mạo. TKIP không chỉ được thiết kế để triển khai trên các thiết bị WLAN đã tồn tại mà còn tích hợp vào các thiết bị WPA2. Hình 1: Thuật toán Michael MIC Để kiểm tra tính toàn vẹn thông điệp MIC, IEEE đã đề xuất một thuật toán gọi là Michael để bổ sung các chức năng của ICV trong việc mã hóa khung 802.11. MIC sử dụng một khóa duy nhất khác với khóa đã được sử dụng để mã hóa khung dữ liệu. Khóa duy nhất này sẽ được trộn với địa chỉ MAC đích và nguồn của khung cũng như toàn bộ phần dữ liệu chưa được mã hóa của khung. TKIP có thể được cài đặt thông qua nâng cấp firmware cho AP hay Bridge cũng như nâng cấp phần mềm và firmware cho client. TKIP xác định các nguyên tắc cho IV, phương thức khởi tạo lại khóa dựa trên 802.1X, trộn khóa theo gói tin, hay kiểm tra toàn vẹn MIC. Những điều này sẽ gây ảnh hưởng đến hiệu năng sử dụng nhưng sự mất mát này đáng đuợc cân nhắc nếu xét về khía cạnh nâng cao bảo mật. Hình 2: Tiến trình mã hóa TKIP Hình 3: Tiến trình giải mã TKIP TKIP tăng kích thước khóa từ 40bit lên 128bit và thay thế khóa WEP đơn, tĩnh bằng cách cấp phát và phân phối tự động bởi máy chủ nhận thực. Bằng cách mở rộng kích thước khóa, số lượng khóa sử dụng, và tăng cơ chế kiểm tra độ toàn vẹn dữ liệu, TKIP đã tăng độ phức tạp và khó khăn trong việc giải mã dữ liệu. TKIP đã tăng độ dài và độ phức tạp của mật mã hóa trong WLAN, làm cho nó trở nên khó hơn và là không thể cho các hacker có thể truy nhập vào mạng. TKIP sử dụng hệ thống khóa và phương thức quản lý khóa, điều này sẽ loại bỏ khả năng dự đoán của hacker dựa trên khóa WEP. Để làm được điều này, TKIP dựa trên cơ sở 802.1x/EAP. Máy chủ nhận thực sử dụng 802.1x để cung cấp một khóa cặp “pair-wise” cho phiên tính toán. TKIP phân phát khóa này cho cả client và AP để client và AP có thể thiết lập hệ thống khóa và hệ thống quản lý sử dụng cặp khóa “pair-wise”, để cấp phát tự động và để mã hóa dữ liệu trên từng gói tin. Một điểm quan trọng nữa của TKIP là nó thay đổi khóa sử dụng trên từng gói tin. Khóa được tạo ra bằng cách kết hợp nhiều yếu tố bao gồm base-key (hay còn gọi là khóa Pairwise), địa chỉ MAC của trạm phát và số thứ tự gói tin. Sự kết hợp này được thiết kế nhằm đem lại độ dài từ khóa đủ lớn để nó không dễ dàng có thể phát hiện được. Quan trọng nhất là một phần base-key được trộn vào trong khóa TKIP, không giống như WEP (khóa này là cố định và được tất cả các người dùng trong mạng WLAN biết đến). TKIP phát base-key và được trộn vào trong từng gói tin. Mỗi thời điểm client giao tiếp với AP, mỗi khóa base-key được sinh ra. Khóa này được xây dựng dựa trên sự xáo trộn một vài số ngẫu nhiên được phát ra bởi AP và client với địa chỉ MAC của AP và client, và được truyền qua một phiên truyền bí mật. Với 802.1x, phiên truyền bí mật này là duy nhất và được truyền tin cậy tới client bởi máy chủ nhận thực. Khi sử dụng TKIP với Pre-Shared Key (PSK), phiên bí mật này giống nhau cho tất cả mọi người dùng và không bao giờ thay đổi. Do đó vẫn tồn tại nguy hiểm trong bảo mật TKIP khi sử dụng PSK. 2. Xác thực 802.1x/EAP Việc chứng thực của 802.1X được thực hiện trên một máy chủ riêng, máy chủ này sẽ quản lý các thông tin để xác thực người sử dụng như: tên đăng nhập (username), mật khẩu (password), mã số thẻ, dấu vân tay Khi người dùng gửi yêu cầu chứng thực, máy chủ này sẽ tra cứu dữ liệu để xem người dùng này có hợp lệ không, được cấp quyền truy cập đến mức nào Nguyên lý này được gọi là RADIUS Server (Remote Authentication Dial−In User Service Server). * Chuẩn 802.1X - EAP: Chuẩn 802.1X cung cấp đặc tả cho việc điều khiển truy cập mạng dựa trên cổng (port-based). Khi cổng (port) chưa được xác thực, nó chỉ có thể được sử dụng để chuyển lưu lượng cho quá trình xác thực. Chuẩn 802.1X hoạt động trên cả môi trường có dây truyền thống lẫn không dây. Việc điều khiển truy cập dựa trên cổng xuất phát từ các bộ chuyển mạch (Ethernet Switch). Khi một người dùng cố gắng kết nối vào cổng ethernet, cổng đó sẽ đặt kết nối của user vào trạng thái chặn (block) và đợi cho việc kiểm tra định danh người dùng hoàn tất. Trong mô hình chuẩn 802.1X, việc xác thực mạng bao gồm 3 thành phần chính: + Người cần (xin) xác thực (Supplicant). + Thiết bị nhận yêu cầu xác thực từ người dùng (Authenticator). + Máy chủ AAA (thường sử dụng RADIUS Server) thực hiện việc xác thực (Authentication Server). Qúa trình xác thực 802.1X-EAP cho client gồm 7 bước và các bước được mô tả trong hình 4: Supplicant (client) được kích hoạt trên môi trường truyền và kết nối tới Authenticator (AP). Authenticator (chuyển mạch mạng) phát hiện được sự kết nối của Client và kích hoạt cổng của client và đặt trạng thái cổng là chưa cấp quyền và chỉ cho lưu lượng 802.1X được truyền đi, còn tất cả các lưu lượng khác đều bị chặn lại. 1. Client thực hiện khởi tạo thông tin nhận thực, nó gửi gói tin EAPOL-Start tới AP (authenticator), mặc dù việc khởi tạo từ client là không bắt buộc, (nếu là Authenticator khởi tạo thì nó sẽ gửi gói tin EAP-Request/Indentity tới client). 2. AP sẽ trả lời bằng một khung thông điệp EAP–Request Identity ngược trở lại Supplicant để có được định danh (Identity) của client. 3. Supplicant trả lời bằng một gói tin EAP –Reponse/Identity trong đó chứa định danh của client. Sau đó Authenticator chuyển định danh này đến RADIUS Server một bản tin RADIUS–Access–Request (giá trị định danh của mỗi loại EAP là khác nhau). Hình 4: Quá trình trao đổi thông điệp (xác thực) trong 802.1X 4. RADIUS server được cấu hình để xác định client bằng một thuật toán xác định (hiện tại 802.1X cho WLAN không chỉ định hoặc bắt buộc phải sử dụng một thuật toán cụ thể nào). Authentication Sever sẽ trả lời bằng một bản tin RADIUS–Acces– Challenge. Sau đó, Authenticator gửi đến Supplicant một bản tin EAP–Request (tùy vào việc sử dụng thuật toán chứng thực nào mà bản tin này sẽ khac nhau) cho sự chứng thực hợp lệ chứa bất kỳ thông tin liên quan. 5. Supplicant tập hợp các thông tin trả lời từ người dùng và gửi một EAP– Response tới Authenticator. Tại đây thông tin xử lý thành bản tin RADIUS–Access- Request và được gửi tới RADIUS Server (tùy thuộc vào thuật toán xác thực của EAP nào được sử dụng mà việc trao đổi này có thể khác nhau). 6. RADIUS server gửi một bản tin RADIUS–Access–Accept (nếu việc nhận dạng xác thực thành công) cho phép truy cập (hoặc RADIUS-Access Refect nếu xác thực thất bại). Khi nhận được gói tin Accept, AP sẽ gửi một khung EAP–Success tới Supplicant, đồng thời cổng của Client sẽ chuyển trạng thái sang cấp quyền (authorized). Khi quá trình nhận dạng Supplicant bởi Server xác thực là thành công, Supplicant bắt đầu truy cập vào mạng thông qua cổng này. 7. Khi Supplicant hoàn tất việc truy cập mạng, nó gửi một bản tin EAPOL– Logoff tới Authenticator thì cổng sẽ trở về trạng thái bị chặn (blocked). Thuật toán xác thực: EAP thực hiện trao đổi chứng thực giữa người xin xác thực và máy chủ nhận thực. Không có thiết bị nào khác như AP hay Proxy server tham gia vào quá trình trao đổi này. Việc xác thực trong 802.1X có thể dựa trên người dùng và được quản lý tại các máy chủ xác thực tập trung. Chuẩn 802.1X sử dụng EAP để mang các thông tin chứng thực. Ngoài ra, 802.1X cung cấp các tùy chọn để phân phối khóa. 802.1X và EAP không đòi hỏi phải sử dụng một thuật toán xác thực cụ thể nào. Người quản trị mạng có thể sử dụng bất kỳ kiểu xác thực nào tương thích với EAP. Yêu cầu duy nhất là cả client (được gọi là Supplicant) và máy chủ phải hỗ trợ thuật toán mà EAP sẽ sử dụng. Thuật toán xác thực 802.1X-EAP có thể sinh ra khóa động dựa trên từng người dùng (user-based). Nhưng khóa sinh ra trong tiến trình xác thực không phải là khóa được sử dụng cho mã hóa khung hay kiểm tra tính toàn vẹn của thông điệp. Trong 802.11i và WAP, khóa này được gọi là khóa chủ (master key) và được sử dụng để sinh ra các khóa khác. Trong 802.1X, việc sử dụng khóa chủ để sinh ra các khóa khác được sử dụng trong phân cấp khóa unicast và phân cấp khóa nhóm (group key hierarchy). Cơ chế sinh khóa mã hóa được gọi là bắt tay 4 bước (4-way handshake). Quá trình bắt tay bốn bước được thực hiện giữa AP và client sau khi đã có khóa PMK. Quá trình này nhằm tạo ra các khóa PTK và GTK. Hình 5 minh họa quá trình bắt tay 4 bước: Hình 5: Quá trình bắt tay bốn bước Đầu tiên, AP tạo ra số ANonce rồi gửi về client. Client sử dụng khóa PMK để sinh ra khóa PTK, sau đó dùng khóa PTK này kết hợp với số ANonce để tạo ra mã MIC. Mục đích của việc làm này là để AP xác định xem client thực sự có khóa PMK chính xác không. Sau khi tạo ra mã MIC rồi, client cũng sinh ra số SNonce của mình và gửi về phía AP. AP nhận được những thông tin này, dựa vào mã MIC để khẳng định rằng client có cùng khóa PMK giống mình. Sau đó AP cũng phải sử dụng khóa PMK của mình để sinh ra khóa PTK, dùng khóa PTK này kết hợp với số SNonce để tạo ra mã MIC. Cũng trong lúc này, AP sử dụng khóa GMK tạo ra khóa GTK. Khóa GTK, mã MIC cùng với số Anonce mới sẽ được mã hóa bằng khóa PTK và gửi về phía client. Client dùng khóa PTK của mình để giải mã, sau đó kiểm tra mã MIC để chắc chắn rằng AP cũng có khóa PMK giống mình. Sau đó client tiến hành cài đặt các khóa PTK và GTK. Khóa PTK được dùng để mã hóa các bản tin unicast, có giá trị duy nhất dành cho mỗi client. Khóa GTK được dùng để mã hóa các bản tin multicast, broadcast, có giá trị chung giống nhau cho nhiều client hợp pháp. Cuối cùng client gửi bản tin xác nhận về phía AP. AP thực hiện cài đặt khóa phục vụ cho quá trình trao đổi thông tin tiếp sau. Từ lúc này, mọi dữ liệu trao đổi unicast giữa AP và client sẽ được mã hóa bằng khóa PTK, với multicast và broadcast được mã hóa bằng khóa GTK. Hình 6: Mô hình phân cấp khóa Unicast trong 802.1X. Các tiến trình trong mô hình phân cấp khóa Unicast trong 802.1X: - Client và AP cài đặt khóa động (còn được gọi là khóa chủ cặp PMK- Pairwise Master Key) được sinh ra từ tiến trình 802.1X. AP sẽ gửi cho client một số ngẫu nhiên bí mật (Secure Random Number) còn được gọi là ANonce thông qua thông điệp 802.1X ( EAPOL-Key). - Client sẽ tự nó sinh ra một số ngẫu nhiên bí mật khác được gọi là SNonce (Supplicant Nonce). Client sinh khóa cặp tạm thời PTK (Pairwise Transient Key) bằng cách trộn lẫn PMK, SNonce, ANonce, địa chỉ MAC của client, địa chỉ MAC của AP và một chuỗi khởi tạo (initialize string). Địa chỉ MAC sẽ được sắp theo thứ tự với địa chỉ MAC nhỏ hơn sẽ được đặt trước. Tiến trình này bảo đảm rằng client và AP sẽ có địa chỉ MAC sắp theo thứ tự giống nhau. Giá trị được trộn lẫn đó sẽ cho qua một hàm giả ngẫu nhiên PRF (Pseudo Random Function) để sinh ra 512bit PTK. Qúa trình tạo khóa PTK được mô tả trong hình 7. - Client sẽ gửi SNonce ở trên cho AP thông qua thông điệp 802.1X EAPOL-Key và được bảo vệ bằng EAPOL-Key MIC key. - AP sẽ sử dụng SNonce để tính toán PTK giống như client đã làm. AP sử dụng EAPOL-Key MIC key có được từ PTK để kiểm tra tính toàn vẹn của thông điệp từ client. AP gửi thông điệp EAPOL-Key thông báo rằng client nên cài đặt PTK và ANonce của AP. Thông điệp này được bảo vệ bằng EAPOL-Key MIC key. Bước này cho phép client kiểm tra ANonce mà nó nhận được từ AP ở trên có hợp lệ hay không. - Client gửi thông điệp EAPOL-Key (được bảo vệ bằng EAPOL-Key MIC key) thông báo rằng nó đã hoàn thành việc cài đặt. Hình 7: Tạo khóa PTK trong phân cấp khóa Unicast 802.1X. Nhận xét: bản thân khóa PMK và PTK là unicast tức là chúng chỉ mã hóa và giải mã khung unicast và được gán cho một người dùng duy nhất. Nếu sử dụng mô hình này cho các khung broadcast và multicast thì sẽ làm tăng lưu lượng mạng lên đáng kể. Do đó, cần có một mô hình khác cho các khung broadcast và multicast. Để truyền dạng broadcast và multicast thì trong 3 thành phần chính của 802.1X chỉ có thành phần Authenticator (điển hình là AP) thực hiện được. AP sẽ gửi cùng một khung broadcast/multicast đến mỗi người dùng, mỗi khung đều được mã hóa với khóa từng khung tương ứng. Khung broadcast/multicast sử dụng mô hình phân cấp khóa nhóm. Xét mô hình phân cấp khóa nhóm: Hình 8: Mô hình phân cấp khóa nhóm trong 802.1X Khóa chủ nhóm GMK (Group Master Key) nằm ở đỉnh của mô hình và nó được sinh ra trên AP. PRF (Pseudo-Random Function) sinh ra 256bit GMK. Đầu vào của PRF là một số ngẫu nhiên bí mật đã được mã hóa (Nonce), một chuỗi ký tự, địa chỉ MAC của AP và thời gian trong định dạng NTP (Network Time Protocol). GMK, chuỗi ký tự, địa chỉ MAC của AP và GNonce (một giá trị được lấy từ biến đếm số lượng khóa được sinh ra trên AP) sẽ được nối vào nhau và xử lý thông qua PRF và sinh ra 256bit khóa nhóm tạm thời GTK (Group Transient Key). GTK sẽ được chia thành một khóa mã hóa broadcast/multicast 128bit, một khóa MIC 64bit dùng để truyền và một khóa 64bit dùng để nhận khung. Việc sử dụng khóa để mã hóa và giải mã khung broadcast/multicast là hoàn toàn tương tự như khóa unicast. Client sẽ được cập nhật với khóa mã hóa nhóm (Group Encryption Key) thông qua thông điệp EAPOL đã được mã hóa bằng khóa mã hóa unicast của client. Khóa nhóm sẽ bị hủy bỏ và sinh lại mỗi khi có một trạm thực hiện ngắt kết nối (disassociation) hay hủy xác thực (deauthenticate) với BSS. Cũng như vậy, nếu như việc kiểm tra tính toàn vẹn dữ liệu MIC bị lỗi thì một trong những biện pháp đối phó là hủy bỏ tất cả các khóa của trạm thu bị ảnh hưởng, trong đó bao gồm cả khóa nhóm. Phương pháp bảo mật WPA có một số ưu điểm chưa thể khắc phục được, vì vậy WPA2 với các tiêu chuẩn bảo mật cao hơn đã được Wi-Fi Alliance thông qua tháng 9 năm 2004. TÀI LIỆU THAM KHẢO Tài liệu tiếng việt [1]. Vũ Đình Cường (2008), Từng Bước Khám Phá An Ninh Mạng: Hack Internet-OS và Bảo Mật (tập 1&2), Nhà xuất bản Lao Động – Xã Hội. [2]. TS. Phạm Thế Quế (2008), Công Nghệ Mạng Máy Tính, Nhà xuất bản Bưu Điện, Hà Nội. Tài liệu tiếng anh [1]. A. Stubblefield, J. Ioannidis, A.D. Rubin (2001), “Using the Fluhrer, Mantin and Shamir Attack to Break WEP”, AT&T Labs Technical Report. [2]. Pejman Roshan, Jonathan Leary (2003), 802.11 Wireless LAN Fundamentals, Cisco Press. . GIẢI PHÁP BẢO MẬT WPA TRONG MẠNG WLAN WPA là kỹ thuật bảo mật sử dụng phương thức mã hóa được thiết kế để bảo mật trên tất cả các phiên bản 802.11b, 802.11a,. trong những biện pháp đối phó là hủy bỏ tất cả các khóa của trạm thu bị ảnh hưởng, trong đó bao gồm cả khóa nhóm. Phương pháp bảo mật WPA có một số ưu điểm chưa thể khắc phục được, vì vậy WPA2 . (Temporary 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 WEP nhằm vá những vấn đề bảo mật trong cài đặt mật mã dòng RC4 trong WEP. TKIP cung cấp kỹ thuật