Chuyên đề Phương thức bảo mật WPA trong mạng WLAN

LỜI MỞ ĐẦU Ngày nay, khoa học công nghệ đặc biệt là công nghệ thông tin và viễn thông đang phát triển vô cùng mạnh mẽ. Thành tựu mà nó đem lại đã được ứng dụng rất nhiều trong đời sống của chúng ta. Những thiết bị công nghệ cao như máy tính xách tay, máy tính bỏ túi, điện thoại di động đã không còn xa lạ và là một phần không thể thiếu trong cuộc sống hiện đại. Cùng với hệ thống mạng và viễn thông, các thiết bị này đã kết nối mọi người trên toàn thế giới lại với nhau. Mạng viễn thông mà tiêu biểu là internet cung cấp rất nhiều những dịch vụ tiện ích khác nhau, từ Chat, efmail, VoIP, đến các thông tin khoa học, kinh tế giáo dục Và dần dần, truy nhập internet đã trở thành một nhu cầu không thể thiếu đối với mọi người. Trước đây, để có thể kết nối Internet, người sử dụng cần phải truy nhập từ một vị trí cố định thông qua một máy tính có thể kết nối vào mạng. Điều này đôi khi gây ra rất nhiều bất cập cho người sử dụng khi đang di chuyển hoặc ở một vị trí không có điều kiện kết nối. Xuất phát từ yêu cầu mở rộng mạng Internet để thân thiện hơn với người sử dụng, mạng cục bộ không dây (Wireless Local Area Network) đã được nghiên cứu và triển khai ứng dụng trong thực tế. Mạng không dây mang lại cho người dùng sự tiện lợi bởi tính cơ động, không phụ thuộc vào dây nối và người dùng mạng không dây có thể truy nhập mạng tại bất cứ vị trí nào, miễn là nơi đó có các điểm truy nhập. Tuy nhiên, trong mạng không dây cũng tồn tại những nguy cơ rất lớn về an ninh mạng, những lỗ hổng cho phép Hacker có thể xâm nhập vào hệ thống để ăn cắp thông tin hoặc phá hoại. Vì vậy, khi nghiên cứu và triển khai các ứng dụng công nghệ WLAN, người ta đặc biệt quan tâm tới tính bảo mật, an toàn thông tin của nó. Từ những nhu cầu đó, đề tài “ Phương thức bảo mật WPA trong mạng WLAN” đã hướng tới những nghiên cứu về bảo mật cho mạng WLAN và những giải pháp để xây dựng mạng WLAN an toàn và hiệu quả, giúp cho người dùng có thể yên tâm hơn khi lưu trữ hoặc trao đổi các tài nguyên trên mạng Internet. Trong giới hạn đề tài này, em xin trình bày chuyên đề gồm 3 chương chính, đó là: Chương I: Tổng quan mạng không dây . Chương này trình bày một cách khái quát về mạng không dây cục bộ, giúp cho người đọc có được những hiểu biết cơ bản nhất về mạng không dây cũng như các thành phần cấu tạo của mạng không dây WLAN. Chương II: Giới thiệu về bảo mật mạng. Giới thiệu một số phương thức tấn công mạng phổ biến và cách phòng tránh. Chương III: Phương thức bảo mật mạng WPA. Trình bày chi tiết về các phương thức xác thực và mã hoá của phương thức bảo mật WPA, WPA2. Trong quá trình thực hiện chuyên đề này, em xin gửi lời cảm ơn sâu sắc đến thầy giáo, Ths Hoàng Trọng Minh, người đã nhiệt tình giúp đỡ và chỉ bảo em trong suốt quá trình làm chuyên đề. Đồng thời, em cũng xin gửi lời cảm ơn đến các bạn bè thầy cô giáo đã động viên và giúp đỡ em rất nhiều trong thời gian qua. Do thời gian chuẩn bị có hạn nên không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp quí báu của thầy cô và các bạn để chuyên đề được hoàn thiện hơn nữa. Em xin chân thành cảm ơn! MỤC LỤC MỤC LỤC 1 DANH MỤC HÌNH . 2 DANH MỤC BẢNG 4 DANH MỤC BIỂU TƯỢNG 4 TỪ VIẾT TẮT . 5 LỜI MỞ ĐẦU 8 CHƯƠNG I: TỔNG QUAN MẠNG KHÔNG DÂY 10 1.1 Giới thiệu mạng không dây 10 1.1.1 Khái niệm . 10 1.1.2 Lịch sử ra đời 11 1.1.3. Ưu điểm và nhược điểm của mạng WLAN . 12 1.1.4. Các loại mạng không dây 13 1.2. Các chuẩn thông dụng cho mạng WLAN . 14 1.2.1. Nguồn gốc xây dựng chuẩn . 14 1.2.2. Các chuẩn IEEE 802.11 . 15 1.2.3. Các kênh trong mạng không dây . 17 1.3. Mô hình cấu trúc IEEE 802.11 19 1.3.1. Các thiết bị cơ bản . 19 1.3.2. Các thành phần kiến trúc . 21 1.3.3. Các chế độ hoạt động 23 1.4. Tổng kết chương . 24 CHƯƠNG II: GIỚI THIỆU VỀ BẢO MẬT MẠNG WLAN 26 2.1. Những phương thức tấn công phổ biến 26 2.2. Các loại tấn công khác . 28 2.2.1. Tấn công không sử dụng khoá mạng . 28 2.2.2. Tấn công vào khoá mạng . 31 2.3. Các chính sách bảo mật mạng WLAN . 33 2.3.1. Giữ bí mật những thông tin nhạy cảm . 34 2.3.2. Bảo mật vật lí . 34 2.3.3. Kiểm kê thiết bị WLAN và mức độ bảo mật . 35 2.3.4. Sử dụng các giải pháp bảo mật cao cấp . 35 2.3.5. Quản lí mạng không dây công cộng 36 2.3.6. Giới hạn và theo dõi truy cập 36 2.4. Các phương thức bảo mật mạng WLAN 37 2.4.1. Bảo mật bằng phương pháp lọc . 38 2.4.2. Sử dụng giải pháp VPN . 41 2.4.3. Phương thức bảo mật WEP . 42 2.5. Tổng kết chương . 48 CHƯƠNG III: PHƯƠNG THỨC BẢO MẬT WPA 49 3.1. Phương thức kiểm soát truy nhập . 50 3.1.1. Chuẩn chứng thực 802.1X . 50 3.1.2 Nguyên lý RADIUS Server 52 3.1.3. Giao thức chứng thực mở rộng ( EAP) 54 3.2. Phương thức xác thực lớp trên 60 3.2.1. TLS 60 3.3. Phương thức mã hoá 68 3.3.1. Phương thức mã hoá TKIP 68 3.3.2. Phương thức mã hoá AES – CCMP 74 3.4. So sánh WEP, WPA và WPA2 84 KẾT LUẬN 85 TÀI LIỆU THAM KHẢO 86

pdf86 trang | Chia sẻ: lvcdongnoi | Lượt xem: 5671 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Phương thức bảo mật WPA trong mạng WLAN, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
r đó, nhưng việc truyền mới thì dùng các số identifier mới. • Length: dài 2 byte. Nó chứa chiều dài của toàn bộ bản tin bao gồm các trường Code, Identifier, Length, và Data. • Data: là trường cuối cùng và có độ dài thay đổi. Phụ thuộc vào loại bản tin, trường dữ liệu có thể là các byte rỗng. Cách thể hiện của trường dữ liệu được dựa trên giá trị của trường Code. TLS AKA/SIM Token Card EAP PPP 802.3 802.11 Phương thức Lớp liên kết dữ liệu Code Indentifier Length Data Byte 1 1 2 Tuỳ biến Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 56 b) Các bản tin yêu cầu và trả lời EAP Trao đổi trong chứng thực mở rộng EAP bao gồm các bản tin yêu cầu và trả lời. Nơi tiếp nhận chứng thực (Authenticator) gửi yêu cầu tới hệ thống tìm kiếm truy cập, và dựa trên các bản tin trả lời , truy cập có thể được chấp nhận hoặc từ chối. Bản tin yêu cầu và trả lời được minh họa ở hình 3.7: Hình 3.7: Cấu trúc khung của bản tin yêu cầu và trả lời • Code: có giá trị là 1 nếu là bản tin yêu cầu và có giá trị là 2 nếu là bản tin trả lời. Trường Data chứa dữ liệu được dùng trong các bản tin yêu cầu và trả lời. • Mỗi trường Data mang một loại dữ liệu khác nhau, phân ra loại mã xác định và sự liên kết dữ liệu như sau: - Type: là một trường byte chỉ ra loại các bản tin yêu cầu hay trả lời. Chỉ có một byte được dùng trong mỗi gói tin. Khi một bản tin yêu cầu không được chấp nhận, nó có thể gửi một NAK để đề nghị thay đổi loại, có trên 4 loại chỉ ra các phương pháp chứng thực. - Type–Data: là trường có thể thay đổi để làm rõ hơn nguyên lý của từng loại. Nơi tiếp nhận chứng thực thường dùng loại Identity như là yêu cầu thiết lập. Sau đó, việc xác định người dùng là bước đầu tiên trong trong chứng thực. Trường Type–Data có thể bao gồm chuỗi để nhắc người dùng, chiều dài của chuỗi được tính từ trường Length trong chính gói EAP. - Loại code 1: indentity Nơi tiếp nhận chứng thực thường dùng loại Identity như là yêu cầu thiết lập. Sau đó, việc xác định người dùng là bước đầu tiên trong trong chứng thực. Trường Type–Data có thể bao gồm chuỗi để nhắc người dùng, chiều dài của chuỗi được tính từ trường Length trong chính gói EAP. - Loại code 2 : Notification (Thôngbáo) Code Indentifier Length Type Type-Data Byte Tuỳ biến 1 2 1 1 1: Yêu cầu 2: Trả lời Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 57 Nơi tiếp nhận chứng thực có thể dùng loại thông báo để gửi một bản tin tới người dùng. Sau đó hệ thống của người dùng hiển thị bản tin đó. Bản tin thông báo được dùng để cung cấp bản tin tới người dùng từ hệ thống chứng thực, như là password về việc hết quyền sử dụng. Các bản tin đáp ứng phải được gửi để trả lời các yêu cầu thông báo. Tuy nhiên, chúng thường là các phản hồi đơn giản, và trường Type–Data có chiều dài là 0. - Loại code 3: NAK Các NAK được dùng để đưa ra một phương thức chứng thực mới. Nơi tiếp nhận chứng thực đưa ra chuỗi mời kết nối, được mã hóa bởi một loại mã. Các loại chứng thực được đánh số thứ tự trên 4. Nếu hệ thống người dùng không phù hợp với loai chứng thực của chuỗi này, nó có thể đưa ra một NAK. Các bản tin NAK của trường của trường Type– Data bao gồm một byte đơn tương ứng với loại chứng thực. - Loại code 4: Chuỗi MD–5 (MD–5 Challenge) MD–5 Challenge thường được sử dụng trong EAP tương tự của giao thức CHAP, được đưa ra trong RFC 1994. Đây là yêu cầu bảo mật cơ bản mà EAP sử dụng gồm có tên đăng nhập và mật khẩu. MD–5 bảo vệ gói tin bằng cách tạo ra những dấu hiệu đặc trưng riêng (như chữ ký điện tử) lưu trong gói tin đó. MD-5 là một giao thức còn đơn giản, chạy nhanh, dễ bổ sung. Nó không sử dụng chứng thực PKI, mức độ mã hóa của nó còn chưa cao, có khả năng bị tấn công kiểu thu hút. - Loại code 5: One–time password (OPT) Hệ thống one–time password dùng bởi EAP được định nghĩa trong RFC 1938. Bản tin yêu cầu được đưa tới người dùng bao gồm chuỗi mời kết nối OPT. Trong một bản tin đáp ứng OPT (loại 5), trường Type–Data gồm có các từ ở từ điển OPT trong RFC 1938. Giống như tất cả các loại chứng thực, các bản tin trả lời có thể là các NAK (loại 3). - Loại code 6: Đặc điểm thẻ Token (Generic Token Card) Các thẻ Token như là SecurID của RSA và Safeword của Secure Computing là phổ biến với nhiều nơi bởi vì chúng đưa ra sự bảo mật “ngẫu nhiên” các one–time password mà không có một phức tạp nào của một OPT. Các bản tin yêu cầu chứa đựng thông tin đặc điểm thẻ Token cần thiết cho chứng thực. Trường Type-Data của yêu cầu phải có chiều dài lớn hơn 0 byte. Trong các bản tin đáp ứng, trường Type–Data được dùng để mang thông tin được sao chép từ thẻ Token bởi người dùng. Trong cả bản tin yêu cầu và trả lời, trường chiều dài của gói EAP được tính là chiều dài bản tin yêu cầu của Type–Data. Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 58 - Loại code 13: TLS RFC đưa ra việc dùng Transport Layer Security (TLS) trong chứng thực. TLS là phiên bản nâng cấp đã được triển khai một cách rộng rãi ở Secure Socket Layer (SSL) và chứng thực TLS kế thừa một số đặc điểm từ SSL. TLS là một phương thức mã hóa mạnh, nó chứng thực song phương có nghĩa là không chỉ Server chứng thực Client mà Client cũng chứng thực lại Server, chống lại việc nghe trộm, bắt gói tin. Nhược điểm của nó là yêu cầu chứng thực PKI ở cả 2 phía làm cho quá trình chứng thực phức tạp, nó phù hợp với hệ thống nào đã có sẵn chứng thực PKI. c) Các khung trong EAP Khi các trao đổi EAP kết thúc, người dùng hoặc chứng thực thành công hoặc không thành công. Khi nơi tiếp nhận chứng thực xác định việc trao đổi là hoàn tất nó đưa ra khung thành công (Code 3) và không thành công (Code 4) để kết thúc trao đổi EAP. Nó cho phép gửi nhiều bản tin yêu cầu trước khi chứng thực không thành công để cho phép người dùng nhận được thông tin chứng thực đúng. Hình 3.8: Cấu trúc các khung EAP thành công và không thành công d) Chứng thực cổng Chứng thực tới các thiết bị mạng ở lớp đường dẫn là không mới. Chứng thực cổng mạng đã được biết đến từ trước. Hầu hết sự ra đời của nó đã có sự phát triển cơ sở hạ tầng khá rộng để phù hợp chứng thực người dùng, như là nguyên lý RADIUS servers, và LDAP directories. - Khái niệm Port: để chỉ việc đóng mở cổng tương ứng với việc chấp nhận hay từ chối kết nối của Authenticator. Ngoài ra còn có thêm 1 port cho các tuyến đi qua mà không liên quan đến quá trình chứng thực. Code Indentifier Length Byte 1 1 2 3: Thành công 4: Thất bại Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 59 Hình 3.9: Cấu trúc cổng e) Kiến trúc và thuật ngữ trong chứng thực EAP Trong quá trình chứng thực sử dụng EAP, có 3 bên chính tham gia là : - Client: là các phần tử có nhu cầu cần chứng thực để thiết lập kết nối. - Thiết bị xác thực: là các phần tử trung gian tiếp nhận nhu cầu chứng thực và trao đổi bản tin qua lại giữa Client và Server chứng thực. Phương thức trao đổi giữa Authenticator và Client gọi là EAPOL (EAP Over LAN) hoặc EAPOW (EAP Over Wireless). - Server xác thực: phần tử xử lý các yêu cầu chứng thực gửi đến, cấp phép hay từ chối. Nó không chỉ xử lý yêu cầu chứng thực của Client mà còn có thể gửi đến Client yêu cầu chứng thực bản thân nó. Server chứng thực có thể theo mô hình RADIUS Server hay Active Directory Server. Hình 3.10: Mô hình chứng thực RADIUS SERVER Hệ thống xác thực 1 Hệ thống xác thực 2 Cổng điều khiển Cổng điều khiển Cổng không điều khiển Cổng không điều khiển Cổng chưa xác thực Cổng đã xác thực LAN Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 60 3.2. Phương thức xác thực lớp trên Như chúng ta đã biết, có 3 lớp bảo mật: • Lớp mạng Lan không dây • Lớp kiểm soát truy nhập • Lớp xác thực Ta sẽ đi tìm hiểu về lớp xác thực và các giao thức được sử dụng cho việc xác thực. IEEE 802.11 nằm ở lớp mạng LAN không dây, nơi được coi là lớp thấp nhất và 802.1X nằm ở lớp kiểm soát truy nhập. Phương thức xác thực sử dụng giao thức ở lớp cao hơn và thuật ngữ “xác thực lớp trên” đã phản ánh một sự thật rằng các phương thức xác thực không phụ thuộc vào công nghệ LAN. Hiện nay có khá nhiều các phương thức xác thực, tuy nhiên với những người bắt đầu hoạt động trong lĩnh vực bảo mật, họ nên chọn một phương pháp mà được hỗ trợ rộng rãi nhất, có sẵn trong các sản phẩm wifi. Ứng viên hàng đầu chính là TLS (Transport Layer Security). Đây là phương thức được áp dụng cho cả WPA lẫn RSN. 3.2.1. TLS TLS cung cấp nhiều dịch vụ cho xác thực lớp trên của WPA/RSN. TLS cung cấp đầy đủ về chứng thực, mã hoá và cả chức năng nén dữ liệu (về mặt lí thuyết, tuy nhiên chức năng này hầu như không được sử dụng trong thực tế). TLS chia làm 2 giao thức đó là giao thức bản ghi và giao thức bắt tay. Giao thức bản ghi có trách nhiệm chuyển đổi dữ liệu dữa 2 thiết bị đầu cuối của liên kết bằng những tham số đã được thống nhất thông qua giao thức bắt tay. Các lớp được biểu thị ở hình 3.11. Qua đó bạn có thể thấy TLS dựa vào một giao thức đáng tin cậy như TCP/IP để gửi những thông điệp ngược lại và chuyển tiếp như thế nào. Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 61 Hình 3.11: Các lớp TLS Các ứng dụng gửi dữ liệu tới giao thức bản ghi của TLS, nơi nó sẽ được mã hoá và nén trước khi gửi tới thiết bị bên kia. Giả sử thiết bị bên kia là hợp lệ, dữ liệu được giải mã và giải nén trước khi được chuyển tiếp. Chú ý rằng giao thức bắt tay TLS cũng sử dụng giao thức bản ghi để gửi thông điệp của mình trong quá trình bắt tay. Điều này nghe có vẻ không hợp lí bởi giao thức bắt tay được sử dụng để trao đổi các tham số của lớp trên mà nó liên lạc. Tuy nhiên, TLS đã được xử lí để giải quyết được việc này. Ở giai đoạn đầu, giao thức bản ghi chuyển tiếp dữ liệu mà không cần mã hoá hoặc nén dữ liệu. Lớp giao thức TLS hoạt động theo một nhóm các thiết lập hoặc đối số được gọi là trạng thái kết nối (connection state). Các trạng thái kết nối này nên được sử dụng như là những cấu hình để cài đặt cho lớp. Nó bao gồm những thứ như “ thuật toán mã hoá nào đang được sử dụng” hay “ các khoá mã hoá là gì”… Lớp giao thức bản ghi có thể lưu trữ 4 trạng thái kết nối: 2 trạng thái kết nối cho điều khiển giao tiếp và 2 trạng thái kết nối cho những giao tiếp đang đợi. Đó là: - Trạng thái kết nối đang được truyền (current) - Trạng thái kết nối đang phải chờ đợi (pending) - Trạng thái nhận được kết nối hiện tại (curent) - Trạng thái chờ đợi nhận kết nối (pending) Khi có một thay đổi xảy ra, trạng thái đang chờ giải quyết trở thành trạng thái đang được thực hiện và lại tạo ra một trạng thái chờ tiếp theo. Khi kết nối được khởi tạo lần đầu tiên, trạng thái hiện tại sẽ là NULL: tất cả mọi thứ đều được đi qua, không khoá, không nén và cũng không mã hoá. Giao thức bắt tay sẽ được hoạt động trong thời gian này và xây dựng các thông số bảo mật ở trạng thái đang chờ giải quyết. Khi mọi thứ đã Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 62 sẵn sàng, trạng thái chờ giải quyết sẽ trở thành trạng thái đang thực hiện và khi đó, bảo mật sẽ có hiệu lực. Hình 3.12: Thay đổi trạng thái kết nối a) Bắt tay trao đổi (handshake exchange) Mối quan hệ được thiết lập giữa 2 phần trong TLS được thực hiện bằng việc bắt tay trao đổi. Nó bao gồm 1 loạt các thông điệp được gửi giữa các bên theo một trình tự nhất định. Hình 3.13: Trao đổi thông điệp trong TLS CLIENT Client Hello Chứng nhận Client Client trao đổi khoá Xác minh chứng nhận Thay đổi trạng thái kết nối Hoàn thành SERVER Server Hello Chứng nhận Server Yêu cầu chứng nhận Client Server hoàn thành Thay đổi trạng thái kết nối Hoàn thành Chờ đợi: ABC Hiện tại: XYZ Chờ đợi: 000 Hiện tại: ABC Thay đổi trạng thái kết nối Time Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 63 Có một số tuỳ chọn liên quan đến việc chọn thông điệp để gửi và lưu trữ những thông tin gì. Tuy nhiên, quan trọng hơn là thứ tự các thông điệp được gửi và trước khi kết thúc phiên bắt tay, mọi thông điệp cần phải được kiểm tra lại. Tại thời điểm bắt đầu, hai bên trao đổi thông điệp hello. Vì TLS là không đối xứng nên một bên phải đóng vai trò máy chủ và bên kia sẽ đóng vai trò client. Thông thường thì client sẽ gửi thông điệp hello trước. • Client Hello (Client  Server) Gửi 1 danh sách chứa các bộ mã hoá và phương pháp nén mà Client có thể hỗ trợ. Một bộ mã hoá được kết hợp các phương thức mã hoá với nhau để đảm bảo an ninh. Trong TLS, bộ mã hoá định nghĩa các loại chứng chỉ, phương thức mã hoá và phương thức kiểm tra tính toàn vẹn. Các TLS RFC định nghĩa một số chuẩn kết hợp, và các Client có thể chỉ ra những gì mà nó hỗ trợ theo thứ tự ưu tiên. Điều quan trọng là Client Hello cũng mang một giá trị ngẫu nhiên gọi là ClientHello.random. Giá trị này có thể là bất cứ cái gì nhưng phải đảm bảo tính an toàn, không thể đoán được (ngoại trừ Client). Giá trị này dùng để tạo ra thời gian tồn tại (liveness). • Server Hello (Server  Client) Khi máy chủ nhận được thông điệp Client Hello, nó cần kiểm tra xem nó có hỗ trợ một trong những bộ mã hoá và phương thức nén mà Client gửi không, sau đó sẽ trả lời với thông điệp Server Hello. Server Hello chứa 2 phần quan trọng. Thứ nhất là một số ngẫu nhiên được gọi là ServerHello.random (tất nhiên là khác với giá trị ClientHello.random) và thứ hai là nó chứa ID của phiên mà Client và Server sử dụng để tham chiếu đến phiên làm việc. Một trong những tính năng của TLS là đảm bảo an toàn cho các phiên làm việc. Khi đã được thành lập, nó có thể nối lại nhiều lần nhờ có ID của phiên được chứa trong thông điệp Client Hello. Ở giai đoạn này, Client và Server đã trao đổi và cho kết quả: Đồng bộ được các trạng thái Chấp nhận ID phiên Chấp nhận bộ mã hoá Trao đổi 2 số ngẫu nhiên Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 64 • Server Certificate ( Server  Client) Giai đoạn này liên quan đến việc trao đổi các chứng chỉ. Các Server sẽ gửi chứng chỉ của mình cho Client. Có 2 điều quan trọng trong chứng chỉ. Trước tiên, nó chứa tên và khoá công khai của máy chủ, nó có thể được dùng để mã hoá thông điệp tới Server và xác nhận các thông điệp. Thứ hai, nó đã được chấp thuận bởi cơ quan chứng nhận quốc tế. Client sẽ chấp nhận chứng chỉ này và sau đó nhớ khoá công khai của Server để mã hoá hơn nữa các thông điệp cho Server. Mặc dù một Server giả mạo có thể sao chép và gửi chứng chỉ hợp lệ nhưng nó sẽ không có khả năng giải mã những bí mật quan trọng trước đó bởi nó chỉ biết được 1 phần của cặp khoá công khai/bí mật. • Client Certificate (Client  Server) Server có thể yêu cầu Client gửi chứng chỉ để kiểm tra (điều này sẽ được xét sau) và Server sẽ gửi một thông điệp Server Hello Done. Cuối cùng, Client và Server sẽ thiết lập một khoá bí mật chung để sử dụng trong việc giao tiếp sau này. • Client trao đổi khoá (Client  Server) Mục tiêu của giai đoạn này là tạo ra một khoá chung giữa Client và Server. Khoá này sẽ kết hợp các số ngẫu nhiên đã được trao đổi trong giai đoạn Hello với 1 số bí mật được tạo ra tự động ( chỉ Client và Server biết) để có thể tạo ra được khoá pre-master. • Client xác nhận Certificate Nếu Client gửi chứng chỉ, đây là lúc nó phải chứng thực được mình bằng cách băm (hashing) tất cả các thông điệp với nhau, bao gồm cả những thông điệp đã gửi và nhận rồi sẽ gửi kết quả đến máy chủ và đánh dấu thông điệp này bằng một khoá bí mật của chứng chỉ của nó. Máy chủ nhận được thông điệp sẽ kiểm tra chữ kí sử dụng khoá công khai của Client. Nếu chữ kí đúng, máy chủ cũng sẽ sử dụng hàm băm với các thông điệp gửi và nhận để so sánh kết quả. Nếu chữ kí hoặc kết quả sau khi thực hiện hàm băm không khớp, rất có thể Client đã bị giả mạo. Cả 2 bên sẽ có những thông tin giống nhau vào lúc này: Bí mật pre-master Số ngẫu nhiên Client Số ngẫu nhiên Server Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 65 Cả 2 bên sẽ kết hợp mã hoá các giá trị này bằng cách sử dụng hàm băm để tạo ra một khoá chủ chốt (master key) 48 byte. Vì cả 2 đều sử dụng cùng 1 thuật toán và tính toán các giá trị giống nhau nên kết quả khoá đương nhiên sẽ giống nhau. • Thay đổi trạng thái kết nối Các đối tượng bắt tay đã được xác thực và tạo ra một trạng thái chờ kết nối mới sẵn sàng hoạt động khi đã có được đủ các khoá và thông tin cần thiết. Sau khi khởi tạo, trạng thái hiện hành là không mã hoá. Các khoá chủ chốt đã được tạo ra bây giờ được sử dụng để tạo ra các trạng thái chờ phụ thuộc vào bộ mã hoá đang được sử dụng. • Hoàn thành Mỗi bên sẽ gửi một thông điệp kết thúc. Do bộ mã hoá mới đã hoạt động nên thông điệp này sẽ được mã hoá với khoá chủ chốt mới. Thông điệp kết thúc chưa một giá trị băm bao gồm các bí mật chủ chốt mới và tất cả các thông điệp bắt tay đã được trao đổi từ đầu đến giờ (không bao gồm thông điệp kết thúc). Nếu các thông điệp nhận được là chính xác, bộ ứng dụng thuật toán mã hoá mới sẽ được bắt đầu hoạt động. b) Mối liên hệ giữa bắt tay TLS và WPA/RSN Quá trình bắt tay TLS này hoàn thành 3 việc: - Nó chứng thực Server (và tuỳ chọn Client) - Tạo ra một khoá bí mật tổng thể cho phiên làm việc - Khởi tạo và đưa bộ mã hoá vào để đảm bảo an toàn liên lạc Đối với WPA và RSN, tất cả những gì chúng ta cần từ TLS là chức năng xác thực và tạo ra khoá tổng thể. WPA sẽ phân phối nó dựa trên thuật toán mã hoá riêng của mình. WPA/RSN lấy bí mật chủ chốt được tạo ra bởi TLS và sau đó nhận được 1 bộ khoá để sử dụng trong việc mã hoá các liên kết không dây. Trong trường hợp này, mặc dù các khoá chủ chốt đã được tạo ra, giao thức bản ghi TLS không được cập nhật, nghĩa là RSN/WPA sẽ không sử dụng giao thức bản ghi TLS để mã hoá mà chỉ sử dụng trao đổi bắt tay để tạo khoá toàn cục. Bằng cách này, TLS đã tích hợp rất tốt với 802.1X và được chạy trên nền EAP. Đây là chế độ mặc định bắt buộc đối với WPA. Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 66 c) TLS over EAP RFC 2716, giao thức nhận thực PPP TLS EAP sẽ định nghĩa làm thế nào để thực hiện bắt tay TLS trên nền EAP. Như tên gọi cho thấy, nó được coi như truy nhập xác thực sử dụng PPP. EAP luôn bắt đầu và kết thúc bằng một chuỗi tương tự. Thông thường, yêu cầu nhận diện/ thông điệp trả lời sẽ được trao đổi cho nhau. Sau đó 1 loạt các EAP yêu cầu và hồi đáp được gửi cho phương thức nhận thực mà được xác định bởi trường Type ở mỗi thông điệp. Cuối cùng, thông điệp EAP – thành công hay EAP - từ chối sẽ cho biết kết quả. Dạng thức chung của các thông điệp EAP yêu cầu/hồi đáp được thể hiện như hình 3.14: Hình 3.14: Định dạng thông điệp EAP Đối với TLS, RFC định nghĩa kiểu trường cho EAP yêu cầu và trả lời là 13. Chỉ có những Client và Server hiểu được EAP-TLS sẽ giải mã những thông điệp này. RFC2716 cũng định nghĩa 2 trường mới sau trường Type gọi là Flag và Length như trong hình 3.15: Hình 3.15: Định dạng thông điệp EAP-TLS Trường Length xuất hiện 2 lần vì trường Length đầu tiên đề cập đến độ dài của khung EAP và trường Length thứ 2 đề cập đến độ dài của gói tin EAP-TLS. Gói tin EAP-TLS khá dài, có thể vượt quá kích thước tối đa của 1 thông điệp EAP. Trong trường hợp này, gói tin EAP-TLS sẽ phân thành nhiều mảnh và được trao đổi vài lần. Trong thực tế, trường Length thứ 2 là tuỳ chọn và thông thường sẽ không được thêm vào nếu dữ liệu EAP-TLS phù hợp với khung hiện thời. Trường Flag chứa 3 bit: Độ dài bao gồm cờ: trường chiều dài hiện tại Code Indentifier Length 13 Flag Length EAP-TLS Data Code Indentifier Length Type Request/ Response Data Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 67 Thêm mảnh cờ: được thiết lập nếu có nhiều phân mảnh trong các trao đổi tiếp sau Bắt đầu cờ: báo hiệu bắt đầu quá trình bắt tay Thứ tự các bước bắt tay EAP-TLS được chỉ ra ở hình 3.16: Hình 3.16: Các bước bắt tay EAP-TLS Trong đó: - (1) (Yêu cầu): Bắt đầu trao đổi EAP. Server yêu cầu nhận dạng Client - (2) (Trả lời): Client gửi thông điệp khai báo nhận dạng. - (3) (Yêu cầu): Server gửi một yêu cầu EAP-TLS rỗng với bit cờ bắt đầu được thiết lập. Đây là lần duy nhất thiết lập bit bắt đầu. - (4) (Trả lời): Client gửi thông điệp Client Hello chứa đựng các thông tin như đối với TLS bình thường - (5) (Yêu cầu): Server gửi 2 đến 3 thông điệp trong một yêu cầu: Server hello, tuỳ chọn yêu cầu chứng chỉ Client, thông điệp hoàn tất. - (6) (Trả lời): Client trả lời với một vài thông điệp TLS trong cùng 1 hồi đáp: + Chứng nhận Client (Nếu yêu cầu) + Bí mật Pre-master trong thông điệp trao đổi khoá + Chứng nhận xác minh thông tin Client + Thay đổi mật mã CLIENT EAP-Trả lời nhận dạng EAP-TLS: Client Hello EAP-TLS: Chứng nhận Client Client trao đổi khoá Kiểm tra chứng nhận Thay đổi mật mã Hoàn thành EAP-TLS: (Empty) SERVER EAP- Yêu cầu nhận dạng EAP-TLS (Bắt đầu) EAP-TLS: Server Hello Chứng nhận TLS Yêu cầu chứng nhận Client Server hoàn thành EAP-TLS: Thay đổi mật mã Hoàn thành EAP-Thành công Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 68 + Hoàn thành - (7) (Yêu cầu): Server gửi tất cả các thông điệp còn lại trong một yêu cầu EAP duy nhất. - (8) (Trả lời): Client không còn gì để trả lời nên sẽ gửi lại một thông điệp rỗng - (9) : Cuối cùng để hoàn tất công việc bắt tay EAP, Máy chủ sẽ gửi một EAP- Thành công (nếu mọi việc đều tốt). Nếu có bát kì một bước nào gặp trục trặc, Server sẽ gửi một EAP – báo hỏng tại chính thời điểm gặp vấn đề. Kết luận: Sử dụng EAP sẽ cung cấp chìa khoá để thực hiện TLS trong WPA/RSN. Sử dụng EAP nghĩa là không cần địa chỉ IP, thiết bị không dây có thể trao đổi thông điệp EAP đến AP và thực hiện toàn bộ qui trình bắt tay trước khi được quyền truy nhập vào mạng có dây. 3.3. Phương thức mã hoá 3.3.1. Phương thức mã hoá TKIP Phương thức mã hoá TKIP đã giải quyết được các vấn đề của WEP. Nó không thể thay đổi các mục chính như cách RC4 được thực hiện ở phần cứng nhưng nó đã thêm 1 loạt các công cụ chỉnh xung quanh các phần cứng hiện có. Ví dụ, ở mục trước, ta đã thấy được 1 số điểm yếu của WEP, đó là: • Giá trị của IV quá ngắn và không tránh được việc tái sử dụng • Cách xây dựng khoá từ IV đã làm cho các khoá yếu dễ bị tấn công (FMS) • Không phát hiện được các tin nhắn giả mạo (tính toàn vẹn thông điệp) • Sử dụng trực tiếp khoá master và không có các khoá dự phòng • Không được bảo vệ để chống lại các thông điệp phát lại Và TKIP đã có một số điều chỉnh phù hợp sau: • Toàn vẹn thông điệp: TKIP đã thêm một giao thức toàn vẹn thông điệp để ngăn chặn việc giả mạo • Lựa chọn và sử dụng IV: TKIP đã thay đổi qui tắc lựa chọn và sử dụng IV • Trộn khoá ở mỗi gói tin: thay đổi mật mã cho mỗi khung • Kích thước IV: Tăng kích thước của IV để tránh việc tái sử dụng • Khoá quản lí : Thêm một cơ chế để phân phối và thay đổi việc quảng bá các khoá Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 69 a) Mã toàn vẹn thông điệp (MIC) Toàn vẹn thông điệp là một phần không thể thiếu của bảo mật. WEP sử dụng một phương pháp để phát hiện việc sửa đổi, đó là kiểm tra tính toàn vẹn của giá trị (ICV), tuy nhiên, nó hoạt động không hiệu quả. Nếu bạn muốn phát hiện ra sự giả mạo, phương pháp được đưa ra là kết hợp tất cả các byte trong thông điệp lại với nhau để tạo ra một giá trị kiểm tra tính toàn vẹn thông điệp (MIC) và gửi giá trị này đi cùng với thông điệp. MIC được tạo ra bằng một qui trình đặc biệt không thể đảo ngược và kết hợp với một khoá bí mật. Phía bên nhận sẽ thực hiện tính toán và so sánh kết quả MIC. Nếu nó trùng khớp nghĩa là thông điệp được an toàn, nếu ngược lại thì rất có thể thông điệp đã bị giả mạo hoặc thay đổi. Phương thức này khá an toàn bởi hacker không thể tính được giá trị MIC trừ khi hắn biết được khoá bí mật. Có nhiều phương pháp để tính toán giá trị MIC nhưng phổ biến nhất là phương pháp Michael. Michael được thiết kế đặc biệt để giải quyết các nhu cầu của TKIP Các phép tính của MIC trong phương pháp Michael chỉ sử dụng phép thế, phép xoay, hoặc phép toán OR, không sử dụng phép nhân. MIC bảo vệ tải tin, địa chỉ nguồn và địa chỉ đích của thông điệp. Phần đầu tiên của thuật toán là tổ chức dữ liệu vào 32 bit. Việc này được thực hiện cho cả khoá và dữ liệu. 64 bit khoá được chia thành 2 phần 32 bit được gọi là K0 và K1. Việc chuyển đổi từ 64 bit khoá thành 2 phần 32 bit được thể hiện ở hình 3.17: Hình 3.17: Chia nhỏ khoá K7 = 11 K6 = 22 K5 = 33 K4 = 44 K3 = 55 K2 = 66 K1 = 77 K0 = 88 KEY =1122334455667788 K1 = 0*11223344 K0 = 0*55667788 High memory address Low memory address Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 70 Các byte ít quan trọng của thông tin được lưu giữ ở địa chỉ bộ nhớ thấp nhất và K0 được lưu trữ thấp hơn K1. Sau khi phân tách các khoá, dữ liệu cũng phải được phân thành từng nhóm 32 bit. Ban đầu, 1 byte giá trị đơn 0*5a được thêm vào phần cuối của dữ liệu. Cộng thêm các byte có giá trị 0. Ít nhất có 4 byte 0 được thêm vào để tổng chiều dài của dữ liệu phải là bội số của 4. VD, nếu dữ liệu ban đầu là 1 byte. - Dữ liệu MSDU là 13 byte ( 2 khối 6 byte địa chỉ và 1 byte dữ liệu người dùng) - Giá trị 0*5a được thêm vào để tạo thành 14 byte - Thêm tiếp 6 byte 0 để tạo thành 20 byte (5*32bit) để được xử lí bằng Michael Lưu ý các byte thêm vào chỉ được sử dụng để tính toán MIC rồi sẽ bỏ đi. Bây giờ chúng ta có 2 khối 32 bit khoá K0 và K1, ngoài ra còn 1 bộ dữ liệu M0…Mn (Mn luôn =0 và Mn-1 luôn khác 0). Bây giờ cần tính giá trị MIC – 64 bit được tạo thành bởi 2 khối 32 bit V0 và V1 mà sẽ được thêm vào dữ liệu trước khi mã hoá. Thuật toán được thực hiện như sau: - B1: Tạo ra bản sao của khoá: l = K0; r = k1 - B2: Thực hiện phép OR của dữ liệu M0 với l - B3: Gọi chức năng chặn Michael với giá trị r và l. Giá trị mới được trả về. - B4: Lặp lại bước 2 và bước 3 cho các khối dữ liệu còn lại. Các giá trị của l và r cuối cùng sẽ tạo ra kết quả MIC V0 và V1 tương ứng. (L, r)  (K 0 , K 1 ) for i=0 to N-1 do l  l M i ( l, r )  FnMichael (l, r) V 0 = l V 1 = r b) Lựa chọn và sử dụng IV Có 3 điểm yếu cơ bản trong cách sử dụng IV của WEP, đó là: - Giá trị IV quá ngắn và thường xuyên bị sử dụng lại - Mỗi trạm không có IV riêng nên cùng 1 IV và khoá bí mật có thể được sử dụng ở nhiều thiết bị không dây khác nhau - Cách sử dụng IV để tạo khoá làm cho mạng dễ bị tấn công bởi FMS Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 71 Vì thế TKIP đã có một số điều chỉnh như sau: • Tăng chiều dài IV Các chuyên gia bảo mật đã đề ra phương án cộng thêm 32 bit và 24 bit IV có sẵn để tạo ra 56 bit IV. Tuy nhiên trong thực tế, chỉ có 48 bit được sử dụng bởi phải loại bỏ 1 byte để tránh khoá yếu. IV 48 bit đã tạo ra những lợi thế rất lớn. Tăng độ dài của IV nghe có vẻ đơn giản nhưng nó cũng gây ra 1 số vấn đề. Ban đầu, IV của WEP được thêm vào phần trước của khoá bí mật để tạo ra khoá mã hoá RC4. Do đó, 40 bit khoá bí mật sẽ kết hợp với 24 bit IV để tạo ra khoá 64 bit RC4. Tuy nhiên, với IV mới, khoá RC4 sẽ là 88 bit. Điều này sẽ gây khó khăn khi áp dụng bởi hệ thống phần cứng sẽ không đáp ứng được. Tuy nhiên, đã có 1 giải pháp khá thú vị cho vấn đề này. Thay vì kết hợp khoá bí mật và IV để tạo khoá RC4, người ta đã tách IV thành 2 phần. 16 bit đầu tiên của IV được độn thêm để tạo thành 24 bit. Điều này sẽ tránh được khoá yếu. 24 bit này sẽ được sử dụng như trong WEP. Tuy nhiên, thay vì lấy giá trị này để tạo ra các khoá bí mật, một bộ khoá mới đươc tạo ra bằng cách kết hợp khoá bí mật với 32 bit IV còn lại. Điều này đã giúp chúng ta đạt được 2 mục tiêu: Giá trị của khoá được sử dụng để mã hoá RC4 là khác nhau với mỗi giá trị IV Cấu trúc của khoá RC4 bao gồm 24 bit IV như cũ và trường 104 bit khoá bí mật Hình 3.18: Tạo khoá RC4 Upper IV Lower IV IV d IV Trộn khoá mỗi gói tin Giai đoạn 1 Trộn khoá Giai đoạn 2 Trộn khoá Địa chỉ MAC Khoá phiên 16 bit D được thêm vào để tránh khoá yếu 32 bit 24 bit 104 bit Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 72 • IV được xây dựng để chống lại tấn công FMS bằng cách loại bỏ các khoá yếu • IV sẽ đóng vai trò thứ cấp như là một chuỗi truy nhập để tránh các cuộc tấn công lặp lại. c) Thực hiện TKIP Có 3 loại khoá là nguồn gốc để thực hiện TKIP, đó là: - Khoá dùng để bảo vệ trao đổi thông điệp EAPOL-Key - Cặp khoá được sử dụng để bảo vệ thông điệp thực sự sử dụng TKIP - Nhóm khoá bảo vệ Broadcast sử dụng TKIP Ngoài ra, còn một số thông tin quan trọng cần chú ý: - Khoá mã hoá khoá tạm thời (128 bit): Được sử dụng như một đầu vào của giai đoạn trộn khoá trước khi mã hoá RC4 - Khoá nhận thực Tx MIC tạm thời ( Temporal Authenticator Tx MIC key): Sử dụng phương thức Michael để tạo ra MIC - Khoá nhận thực Rx MIC tạm thời ( Temporal Authenticator Rx MIC key): Sử dụng với Michael để tạo ra các MIC trên khung truyền bởi các máy trạm Nhiệm vụ của TKIP là cung cấp một dịch vụ để đảm bảo tính toàn vẹn của thông điệp và truyền dữ liệu được mã hoá tốt. Để làm được điều này, TKIP cần các công cụ sau: - Tạo và kiểm tra IV - Tạo và kiểm tra MIC - Mã hoá và Giải mã Chi tiết về việc truyền sử dụng TKIP được thể hiện ở hình 3.19: Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 73 Hình 3.19: TKIP khi truyền đi Sau khi thông điệp được mã hoá và truyền đi, tại vị trí nhận, các bước được thực hiện không hoàn toàn ngược lại với lúc truyền: Hình 3.20: TKIP khi nhận về Chấp nhận MSDU Tính toán MIC Loại bỏ và kiểm tra MIC Re-assembly Khoá MIC Khoá chủ Khoá mã hoá Trộn khoá Giải mã Lấy IV Khối tạo khoá Khối Michael Từ chối nếu MIC lỗi Kiểm tra cửa sổ TSC Khối TSC Từ chối nếu ICV lỗi Nhận MPDU Tách tiêu đề MAC Khối RC4 Tính toán MIC Nối vào MIC MPDU để truyền Tính toán MIC Gắn vào MIC Khối Michael Khoá MIC Khoá chủ Khoá mã hoá Trộn khoá Mã hoá Thêm tiêu đề địa chỉ MAC MPDU cho Tx Khối RC4 Khối tạo khoá Fracmentation Tạo IV Gắn IV/ICV Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 74 Giải mã không được thực hiện đầu tiên mà thay vào đó là kiểm tra TSC để tránh bị phát lại. Lưu ý rằng giá trị ICV được kiểm tra và được sử dụng để từ chối các gói tin. Giá trị MIC sẽ được kiểm tra ngay sau khi tất cả các phần của gói tin đã nhận được và tập hợp thành MSDU. Nếu MIC có vấn đề, gần như chắc chắn gói tin đã bị giả mạo hoặc thay đổi nội dung. 3.3.2. Phương thức mã hoá AES – CCMP Mã hoá TKIP, nhận thực 802.1X/EAP và PSK trong WPA là những đặc tính được đưa vào để phát triển lên WPA2. Thêm vào đó, WPA2 sẽ cung cấp thêm một phương thức mã hoá mới là AES (chuẩn mã hoá nâng cao). AES sử dụng thuật toán mật mã toán học, có thể được triển khai với nhiều kích thước khoá khác nhau như 128 bit, 192 bit hoặc 256 bit. Có thể nói WPA2 là chuẩn mã hoá an toàn nhất hiện nay. a) AES AES là thuật toán mã hoá khối. Sử dụng các biểu thức logic và toán học, thuật toán này sẽ kết hợp khoá với khối dữ liệu 128 bit (không mã hoá) để tạo ra một khối dữ liệu 128 bit mới (đã mã hoá). AES được phát triển dựa trên thuật toán Rijndeal cho phép chọn lựa kích thước của khoá và của khối dữ liệu (thông thường là 128 bit, 192 bit hoặc 256 bit). Tuy nhiên, IEEE đã lựa chọn độ dài tiêu chuẩn cho cả khoá và khối dữ liệu là 128 bit. Điều này giúp đơn giản hoá việc thực hiện tính toán và cài đặt. Phương thức hoạt động: Bạn chỉ có thể sử dụng AES để mã hoá và giải mã khối dữ liệu có độ dài cố định. Tuy nhiên, trong thực tế, độ dài các khối dữ liệu lại không cố định. VF như trong mạng Wifi, dữ liệu thường được truyền trong những khung có độ dài khác nhau dao động trong khoảng 512 đến 12000 bit mỗi khung. Vì thế, để sử dụng được thuật toán mã hoá khối, cần phải xác định một phương thức để chuyển thông điệp dài thành nhiều thông điệp ngắn có độ dài cố định trước khi mã hoá. Tương tự như vậy, phương thức này cũng cho bạn ghép lại những khối dữ liệu rời rạc trở thành 1 thông điệp khi giải mã. Phương thức được sử dụng để tách và ghép các khối dữ liệu này được gọi là chế độ thực hiện mã hoá khối. Có một vài chế độ khác nhau được sử dụng kết hợp với AES. Việc lựa chọn sử dụng các chế độ này cũng mang ý nghĩa quan trọng cho việc bảo mật. Một chế độ tồi sẽ gây ra Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 75 những lỗ hổng bảo mật hết sức nguy hiểm ngay cả khi thuật toán mã hoá AES mạnh. Ta sẽ tham khảo một vài chế độ sau: • Sổ kí hiệu điện tử (Electronic Code Book - ECB) Chế độ ECB sẽ tạo ra các khối dữ liệu từ 1 thông điệp đầu vào và mã hoá tuần tự các khối này bằng cách sử dụng cùng 1 khoá cho đến khi mã hoá hết tất cả các khối này. Hình dưới thể hiện việc mã hoá nối tiếp và song song Hình 3.21: Chế độ mã hoá ECB Cách tiếp cận này nghe có vẻ đơn giản nhưng nó cũng gây ra một vài vấn đề. Thứ nhất là khi chia thông điệp ra làm nhiều khối nhỏ thì không phải tất cả các khối này sẽ có cùng kích thước như nhau và khi đó, bạn sẽ phải thêm vào phần cuối của khối và ghi nhớ độ dài thực tế. Ngoài ra, nếu 2 khối có dữ liệu giống nhau, sau khi mã hoá sẽ cho 2 kết quả giống nhau và đưa ra thông tin này cho người xem. Thông điệp ban đầu Chia thành các khối Mã hoá Mã hoá từng khối Tập hợp lại thành 1 khối đã mã hoá A: Tính toán nối tiếp E E E E E E E E E E E E E E E E Thông điệp Mã hoá AES Thông điệp sau khi mã hoá B: Tính toán song song Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 76 VD: cho 1 thông điệp gồm toàn chữ cái A lặp đi lặp lại 64 lần: AAAAAA… nếu kích thước của khối AES là 128 bit (16 byte) và sử dụng ECB để chia 64 chữ cái A này thành 4 khối, mỗi khối 16 chữ A. Sau khi mã hoá sẽ cho 4 khối kết quả giống hệt nhau và thông báo cho người xem một kết quả lặp đi lặp lại. Đây chính là một điểm yếu của ECB khiến nó hầu như không được sử dụng trong thực tế. • Chế độ đếm (Counter Mode) Chế độ đếm hoạt động ở nhiều cách khác nhau và phức tạp hơn ECB. Nó không trực tiếp sử dụng thuật toán mã hoá khối AES để mã hoá dữ liệu. Thay vào đó, nó mã hoá 1 giá trị tuỳ ý được gọi là “counter” và XOR kết quả này với dữ liệu để tạo ra bản mã hoá. Mỗi khối được mã hoá thành công thì giá trị “counter” sẽ tăng lên 1. Hình 3.22: Ví dụ về chế độ đếm Do giá trị “couter” đã được thay đổi sau mỗi lần mã hoá nên tránh được sự trùng lặp của ECB. Đây là chế độ được sự tin tưởng của cộng đồng mạng trong một thời gian dài bởi sự đơn giản của nó. Tuy nhiên, chế độ này chỉ thực hiện mã hoá mà không thực hiện xác thực. Vì thế cần bổ sung thêm chức năng xác thực để sử dụng cho RSN • Chế độ đếm + CBC MAC = CCM Chế độ CCM được tạo ra để sử dụng cho RSN, đồng thời nó cũng được sử dụng cho các hệ thống khác như AES, IP, bảo mật… XOR E 1 XOR E 2 XOR E 3 XOR E 4 XOR E 5 XOR E 6 Thông điệp Bộ đếm AES Chuỗi đã mã hoá Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 77 CCM sử dụng chế độ đếm kết hợp với một phương thức xác thực thông điệp được gọi là mã hoá chuỗi khối (CBC). CBC đươc sử dụng để tạo ra MIC, vì thế được gọi là CBC MAC ( gọi MIC để tránh việc nhầm với địa chỉ MAC) Thực hiện chế độ này tuân theo 3 bước đơn giản: - Mã hoá khối đầu tiên của thông điệp bằng AES (hoặc bất kì thuật toán mã hoá khối nào) - XOR kết quả với khối thứ 2 rồi tiếp tục mã hoá kết quả - XOR kết quả với khối thứ 3 và tiếp tục mã hoá… Kết quả cuối cùng sẽ là 1 khối duy nhất. Hầu hết các phương pháp hiện có mà thực hiện cả xác thực và mã hoá đều giả định rằng phải mã hoá toàn bộ thông điệp. Tuy nhiên, trong IEEE 802.11 lại chỉ mã hoá dữ liệu, phần header chứa địa chỉ MAC sẽ không được mã hoá nhưng vẫn phải đảm bảo tính an toàn. Để làm được điều này, chế độ CCM cho phép mã hoá 1 phần của thông điệp mà được gọi là chứng thực bởi CCM-MAC. • Offset Codebook Mode (OCB) OCB là một giản đồ mã hoá chứng thực, nghĩa là nó có thể mã hoá và chứng thực trong những phép toán đơn lẻ. OCB có một số lợi thế: - OCB có khả năng thực hiện song song nên nó sẽ hoạt động nhanh hơn - OCB rất hiệu quả do chỉ sử dụng các lí thuyết mã hoá tối thiểu - OCB được chứng minh là an toàn như các phương pháp mã hoá khối bình thường (AES) Nhờ có những lợi thế này nên OCB đã được IEEE802.11i lựa chọn và đặt tên là WRAP. Tuy nhiên, để triển khai thì cần phải thông qua các uỷ ban tiêu chuẩn mà OCB lại chưa làm được điều đó. Vì thế, CCMP là một sự lựa chọn bắt buộc. b) Sử dụng CCMP trong RSN • Mã hoá dữ liệu CCMP mã hoá dữ liệu ở mức MPDU. Các bước mã hoá được thể hiện ở hình 3.23. Dữ liệu đến tại MSDU sẽ bị phân mảnh, mỗi mảnh sẽ mang hình thức như MPDU và chia tiêu đề của IEEE 802.11 như địa chỉ đích, nguồn và các thông tin khác. Tại đây, mỗi MPDU được xử lí bởi CCMP và tạo ra MPDU Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 78 mới đã được mã hoá (chỉ mã hoá dữ liệu, không mã hoá tiêu đề). Ngoài ra, CCMP còn chèn thêm các trường, làm cho MPDU sau khi mã hoá dài hơn 16 byte. Hình 3.23: Các bước mã hoá dữ liệu Các bước mã hoá MPDU: MSDU Phân mảnh MPDU MPDU MPDU MPDU CCMP xử lí Mã hoá MPDU Hàng đợi ưu tiên Hàng đợi ưu tiên Hàng đợi ưu tiên Hàng đợi ưu tiên Chuỗi Tx Truyền Replay Ctr Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 79 Hình 3.24: Các bước mã hoá MPDU - B1: ban đầu là 1 MPDU chưa được mã hoá với tiêu đề chứa địa chỉ nguồn, đích và một số thông tin khác. - B2: Tiêu đề MAC được tách ra và đặt sang 1 bên, thông tin của tiêu đề sẽ được tách ra và sử dụng khi tạo 8 byte MIC. Ở giai đoạn này, 8 byte tiêu đề CCMP được đưa vào MPDU. - B3: Giá trị MIC được tính toán để bảo vệ tiêu đề CCMP, dữ liệu và tiêu đề IEEE 802.11.Thời gian tồn tại được đảm bảo bởi các nonce. Trường MIC sẽ được nối sau trường dữ liệu. - B4: Kết hợp dữ liệu và MIC rồi mã hoá. Tiêu đề CCMP được đặt vào trước ciphertext. - B5: Cuối cùng, tiêu đề MAC được đặt vào trước tiêu đề CCMP. Các MPDU đã sẵn sàng truyền mà không cần tiêu đề của CCMP. Bản mã MPDU đã được đặt trên 1 hàng đợi trước khi truyền. Có thể có nhiều hàng đợi cùng 1 lúc và có 1 chính sách ưu tiên trong việc lựa chọn các hàng đợi này. Ngay trước khi truyền, 1 số trường của tiêu đề IEEE 802.11 được cập nhật để đáp ứng cho các qui tắc truyền tải. • Tiêu đề CCMP Các tiêu đề CCMP phải được đặt vào trước phần dữ liệu và không được mã hoá. Tiêu đề CCMP cung cấp 2 mục đích: Tiêu đề MAC Dữ liệu Dữ liệu Tiêu đề CCMP Tiêu đề MAC Dữ liệu Tiêu đề CCMP Tiêu đề MAC MIC Bản tin đã mã hoá Tiêu đề CCMP Tiêu đề MAC Bản tin đã mã hoá Tiêu đề CCMP Tiêu đề MAC Tính toán MIC Mã hoá 1 2 3 4 5 Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 80 - Cung cấp 48 bit số lượng gói tin để bảo vệ phát lại và cho phép người nhận lấy được giá trị nonce được sử dụng trong mã hoá - Trong trường hợp multicast, nó thể hiện nhóm khoá nào được sử dụng. Định dạng tiêu đề của CCMP tương đối giống với TKIP Hình 3.25: Định dạng tiêu đề CCMP 6 byte được sử dụng cho PN, 1 byte để dành, các byte còn lại chứa KeyID. Lưu ý rằng bit bên cạnh KeyID được đặt là 1, tương ứng với IV mở rộng trong TKIP. • Thực hiện tổng quát Hình 3.26: Mã hoá và giải mã với CCMP Giai đoạn giải mã có đầu vào tương tự giai đoạn mã hoá , ngoài trừ đầu vào MPDU đã được mã hoá. Việc này là do thông tin tiêu đề, bao gồm cả tiêu đề CCMP được truyền mà Khối mã hoá CCMP Tiêu đề CCMP Địa chỉ nguồn Độ dài dữ liệu Dữ liệu MPDU Khối giải mã CCMP Tiêu đề CCMP Địa chỉ nguồn Độ dài dữ liệu Mã hoá MPDU MPDU đã mã hoá Dữ liệu MPDU PN0 PN1 Rsv PN2 PN3 PN4 PN5 Lưu trữ 1 KeyID 8 bit 8 byte Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 81 không mã hoá. Điều này làm cho người sử dụng có thể trích xuất các thông tin này trước khi giải mã. Việc thực hiện CCMP (được thể hiện ở hình trên như là “1 khối”) phải lưu trữ một chuỗi truy nhập được gọi là số gói mà được tăng lên mỗi lần xử lí xong 1 gói dữ liệu. Điều này sẽ ngăn cản kẻ tấn công sử dụng lại gói dữ liệu mà đã được gửi đi. PN dài 48 bit, đủ lớn để nó không bao giờ bị tràn và sẽ không bao giờ xảy ra trường hợp 2 gói tin được truyền đi với cùng 1 chuỗi giá trị. Thực hiện các khối mã hoá CCMP Hình 3.27: Mã hoá khối CCMP Lưu ý cách tính toán xảy ra trong 2 giai đoạn: - MIC được tính toán và nối vào MPDU - Sau đó, toàn bộ MPDU (gồm cả MIC) được mã hoá để tạo ra kết quả. Cụ thể hơn, Một bản mã MPDU có nhiều hơn 2 trường chưa mã hoá, đó là tiêu đề CCMP và giá trị MIC. Trường MIC dài 64 bit. Thứ tự của các trường trong bản mã MPDU được thể hiện ở hình 3.28: Số gói tin Bộ đếm Khối CBC-MAC đầu tiên Tính toán MIC và thêm vào MPDU Mã hoá MPDU với AES/counter mode Plantext MPDU Khoá tạm thời Độ dài Địa chỉ nguồn MPDU đã mã hoá Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 82 Hình 3.28: Mã hoá MPDU dưới dạng CCMP (CH = CCMP header) • Các bước mã hoá trong MPDU - Trước khi bắt đầu quá trình mã hoá, cần phải chuẩn bị tất cả các phân mảnh của MPDU theo thứ tự mà nó sẽ xuất hiện. Bắt đầu là 3 phần: Tiêu đề MAC, tiêu đề CCMP và các dữ liệu chưa mã hoá (hình a). các trường có thể thay đổi của trường MAC được che đậy bằng cách cho chúng bằng 0. Tiêu đề CCMP chứa PN và bit KeyID. Lưu ý PN được tăng thêm cho mỗi MPDU trước khi được sử dụng. Trường dữ liệu chứa dữ liệu trước khi mã hoá. Tiêu đề MAC và CCMP sẽ không được mã hoá nhưng được bảo vệ bởi các MIC. Chúng được nhóm vào với nhau để tạo thành dữ liệu xác thực (hình b). - Tính toán MIC: Tính toán MIC được thực hiện bằng cách sử dụng CBC –MAC trong đó bắt đầu bằng cách mã hoá 1 khối, sau đó XOR với khối tiếp theo và mã hoá kết quả. MIC cuối cùng là 1 khối 128 bit tuy nhiên, chỉ cần 64 bit cho CCMP, 64 bit thấp hơn sẽ bị loại bỏ. • Mã hoá MPDU MIC sẽ được tính toán và nối vào dữ liệu chưa mã hoá. Công đoạn mã hoá sẽ được thực hiện bằng cách sử dụng chế độ đếm (counter mode) và bắt đầu với dữ liệu ngay sau tiêu đề CCMP trong bản mẫu. Dữ liệu mã hoá sẽ thay thế cho các dữ liệu gốc bao gồm toàn bộ Tiêu đề MAC CH Dữ liệu nguyên bản Tiêu đề MAC CH Dữ liệu nguyên bản Dữ liệu nhận thực Tiêu đề MAC CH Đệm Dữ liệu nguyên bản Đệm 1st blk Tiêu đề MAC CH Dữ liệu nguyên bản MIC Tiêu đề MAC CH Dữ liệu nguyên bản MIC (a) (b) (d) (e) Chưa mã hoá Đã mã hoá (c) Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 83 dữ liệu và giá trị MIC, sau đó đưa ra 1 bản MPDU đã mã hoá hoàn chỉnh và sẵn sàng được truyền đi (hình e). Một bước quan trọng trong chế độ đếm là việc khởi tạo truy nhập cần tránh việc tái sử dụng giá trị bắt đầu. Hình 3.29: Hoạt động truy nhập trong chế độ đếm AES – CCMP Giá trị Ctr được khởi tạo từ 1 và được tăng lên như việc xử lí chế độ đếm. Ban đầu, chúng ta cần đặt lại tất cả các giá trị trong trường tiêu đề MAC mà đã được che đậy để tính toán MIC. Sau khi truy nhập được khởi tạo, quá trình mã hoá sẽ được thi hành như trong phần Counter Mode. Các giá trị sẽ được mã hoá bằng các khoá bí mật và XOR với các mẫu dữ liệu để tạo thành dữ liệu mã hoá. • Giải mã MPDU Khi nhận được bản mã MPDU, đầu tiên là cần khoá cho việc giải mã. Các cặp khoá thích hợp sẽ được lựa chọn dựa trên địa chỉ MAC nguồn trong tiêu đề MAC. Nguời nhận cần thực hiện một số bước để giải nén và kiểm tra tính hợp lệ của dữ liệu nhận được. Số lượng gói tin (PN) không được mã hoá trong tiêu đề CCMP. Ban đầu, người nhận sẽ đọc PN và so sánh với khung mới nhất nhận được. Nếu số này thấp hơn hoặc bằng so với lần nhận gần đây nhất, nó sẽ bị loại bỏ như là một sự phát lại của thông điệp cũ. Trong trường hợp PN khớp với khung mới nhất nhận được, bước tiếp theo là sử dụng AES/Counter mode. Nó đòi hỏi việc tính toán giá trị khởi đầu của truy nhập và giá trị này phải phù hợp với giá trị sử dụng trong mã hoá. Tất cả các thông tin cần thiết đều đã xuất hiện ở trong khung nhận được. Quá trình giải mã cũng tương tự như quá trình mã hoá. Giá trị kế tiếp của truy nhập được mã hoá và XOR với MPDU nhận được để phục hồi dữ liệu và giá trị MIC. Cờ Ưu tiên Địa chỉ nguồn Số gói tin Ctr 8 8 48 48 16 Nonce Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 84 Tiếp đến, cần xác minh giá trị MIC nhận được bằng cách tính toán lại trên cùng một dữ liệu với MPDU gốc. Nếu MIC trùng khớp nghĩa là thông tin được an toàn, nếu MIC không trùng khớp, ta nên nghĩ đến việc thông tin đã bị tấn công và cần loại bỏ khung tin này. 3.4. So sánh WEP, WPA và WPA2 WEP WPA WPA2 Là thành phần tuỳ chọn trong tiêu chuẩn IEEE 802.11 Tiêu chuẩn an ninh của Wi-Fi Alliance đặt ra Tương tự WPA Khoá WEP được cấu hình thủ công trên AP và các STA Khuyến nghị nên sử dụng xác thực 802.1X/EAP để nhận khoá tự động. Có hỗ trợ cài đặt khoá thủ công như WEP Tương tự WPA Sử dụng mã hoá dòng Tương tự WEP Sử dụng mã hoá khối, có hỗ trợ mã hoá dòng Mã hoá trên từng gói tin dựa vào sự thay đổi giá trị IV, giá trị IV được kết hợp trực tiếp với PMK để hình thành khoá Sử dụng phương pháp mã hoá tiên tiến và phức tạp hơn, quá trình tạo khoá có thông qua khoá trung gian PTK Tương tự WPA Độ dài khoá nhỏ, 64 bit hay 128 bit Độ dài khoá lớn, kết hợp nhiều thành phần thông tin để sinh khoá Tương tự WPA Sử dụng thuật toán CRC để kiểm tra tính toàn vẹn dữ liệu, độ tin cậy thấp Sử dụng thuật toán Michael để tính toán ra mã MIC, độ tin cậy cao hơn CRC Sử dụng CCMP/AES để tính ra mã MIC, có độ tin cậy cao nhất Không có khả năng xác thực 2 chiều Hỗ trợ khả năng xác thực 2 chiều, sử dụng IEEE 802.1X/EAP Tương tự WPA Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 85 Phương pháp đơn giản, không yêu cầu cao về năng lực phần cứng Phức tạp hơn WEP nhưng cũng không yêu cầu cao về phần cứng Phức tạp, yêu cầu cap về năng lực xử lí của phần cứng Thích hợp với mạng qui mô nhỏ Phù hợp với mạng qui mô nhỏ và trung bình Thích hợp với mạng qui mô lớn và các doanh nghiệp Bảng 3.1: So sánh WEP, WPA và WPA2 WPA được đánh giá là kém an toàn hơn so với người anh em WPA2. Tuy nhiên, lợi thế của WPA là không yêu cầu cao về phần cứng. Do WPA sử dụng TKIP mã hóa theo thuật toán RC4 giống như WEP nên hầu hết các card mạng không dây cũ hỗ trợ WEP chỉ cần được nâng cấp phần mềm cơ sở là có thể hoạt động tương thích với tiêu chuẩn của WPA. WPA2 sử dụng CCMP/AES cho việc mã hóa dữ liệu và kiểm tra tính toàn vẹn của gói tin. CCMP/AES là một cơ chế mã hóa rất mạnh và phức tạp do đó yêu cầu cao về năng lực xử lý của chip. Cũng chính vì điều này mà hiện nay WPA2 chưa được triển khai rộng dãi như WPA. Lý do là WPA2 cần phải nâng cấp về mặt phần cứng, tốn kém hơn nhiều so với viêc cập nhật firmware đối với WPA. Tuy nhiên, với các hệ thống mạng yêu cầu mức độ an ninh cao thì khuyến nghị nên sử dụng WPA2. KẾT LUẬN WLAN đang phát triển rất nhanh, nó đang dần trở thành một phần không thể thiếu trong mạng của doanh nghiệp hay của mỗi gia đình. Việc phát triển WLAN thực sự đem lại hiệu quả và sự tiện lợi cho các thiết bị di động. Tuy nhiên, khi lựa chọn WLAN, mọi người vẫn hoài nghi về tính bảo mật của nó. Rất nhiều câu hỏi đã được đặt ra như “ Mạng WLAN có thực sự an toàn ?” hoặc “ Phương thức bảo mật nào sẽ phù hợp cho mạng WLAN của họ ?”, … Mặc dù những chuẩn đầu tiên của WLAN không cung cấp tính bảo mật cao, nhưng các chuẩn WLAN ra đời sau này đã lấp được những lỗ hổng về bảo mật đó. Việc sử dụng kết hợp các phương thức bảo mật mạnh sẽ giúp cho mạng WLAN thực sự trở thành mạng thay thế mạng LAN truyền thống. Chuyên đề đã nêu một cách khái quát các vấn đề liên quan đến bảo mật cho mạng không dây, trong đó có đề cập đến: Chuyên Đề Tốt Nghiệp Phương thức bảo mật WPA trong WLAN Thạch Tuấn Việt TC17 86 - Các đặc tính riêng của bảo mật cho mạng WLAN. Ngoài ra còn mô tả một vài phương thức tấn công phổ biến với mạng WLAN. - Chuyên đề đã đặt ra các chính sách bảo mật cho người sử dụng cũng như thông tin về các chuẩn bảo mật hiện hành. Từ đó đi sâu phân tích những ưu điểm cũng như nhược điểm của các chuẩn này để người đọc có sự lựa chọn phù hợp cho từng mạng. - Chuyên đề đặc biệt đã đi sâu phân tích về phương thức bảo mật WPA và phương pháp xác thực 802.1X/EAP. Đây là 2 phương pháp có thể kết hợp với nhau tạo ra một hệ thống tương đối an toàn, tránh được sự tấn công của hacker. - Trong tương lai, với sự ra đời của WiMax, WLAN sẽ còn phát triển mạnh hơn nữa. Sự kết hợp giữa WiMax và WLAN là bước khởi đầu của các dịch vụ băng thông rộng cá nhân và các ứng dụng di động khác. Do đó vấn đề bảo mật cho mạng WLAN cần phải được nghiên cứu và cải tiến để có thể đảm bảo an toàn và tin cậy cho các ứng dụng mới phát triển này. TÀI LIỆU THAM KHẢO [1] Anand R.Prasad and Neeli Prasad, “802.11 WLANs and IP Networking” [2] Jon Edney, William A. Arbaugh, “ Real 802.11 Security: Wi-Fi Protected Access and 802.11i” [3] Jim Geier, “Wireless Networking Handbook” [4] Lee Barken, “ How secure is your wireless network? Safeguarding your WLAN” [5] [6] [7]

Các file đính kèm theo tài liệu này:

  • pdfPhương thức bảo mật WPA trong mạng WLAN.pdf