- Gọi Z là kết quả sau khi thực hiện mã hóa RC4 tức là Z = RC4(Key, IV). - Gọi phần dữ liệu chưa mã hóa lúc đầu là P (gồm CRC và Packet), dữ liệu sau khi mã hóa là C, ta có C = P Z.
- Như vậy phía phát sẽ truyền đi gói tin gồm có mã IV và chuỗi C. - Ở phía thu sẽ tách riêng IV và C.
- Xây dựng giá trị Z theo công thức Z = RC4(Key, IV) giống như ở bên phát.
- Sau đó tìm lại P theo công thức C Z = (P Z) Z = P (Z Z ) = P.
Một số tính chất của phép toán cộng logic (XOR):
Giả sử a, b là 2 bit, khi đó ta có:
a 0 = a
a a = 0
a (a b) = (a a) b = 0 b = b
Như đã đề cập ở trên về khả năng giá trị IV lặp lại giống nhau, khi kẻ
tấn công bắt được các gói tin đã mã hóa và tìm được các cặp gói tin có mã IV giống nhau thì quá trình bẻ khóa sẽ như sau:
- Vì 2 gói tin cùng dùng một mã khóa chung, lại có IV giống nhau vì vậy giá trị Z cũng sẽ giống nhau Z = RC4(Key, IV).
- Giả sử gói tin thứ nhất có chứa thông tin mã hóa là C tức là C = P Z. - Giả sử gói tin thứ hai có chứa thông tin mã hóa là C’ tức là C’ = P’ Z. - Kẻ tấn công bắt được cả hai gói tin đã mã hóa là C và C’.
- Nếu thực hiện phép toán C C’ thì sẽ được kết quả là C C’ = (P Z)
(P’ Z) = (P P’) (Z Z) = P P’. - Vì biết C và C’ nên sẽ biết giá trị P P’.
- Nếu biết được P thì sẽ suy ra P’, cùng với C và C’ tính ra được Z = C P.
- Biết Z, có IV, có thể dò ra được giá trị Key bằng các thuật toán giải mã RC4.
2.1.6.2 Cách biết đƣợc bản tin P trao đổi giữa AP và Client
Việc biết được P tức là 1 bản tin (lúc chưa mã hóa) trao đổi giữa Client và AP ở thời điểm nào đó về lý thuyết có vẻ là khó vì số lượng bản tin truyền đi là cực kỳ nhiều nhưng thực tế lại có thể biết được bằng cách sau: Kẻ tấn công làm cho Client và AP phải trao đổi với nhau liên tục, mật độ cao 1 bản tin (mà kẻ tấn công đã biết trước) trong khoảng thời gian đó. Như vậy xác suất bản tin trao đổi trong thời khoảng thời đó là bản tin mà kẻ tấn công biết trước là rất cao (vì còn có bản tin trao đổi của các kết nối khác, nhưng số lượng ít hơn).
2.1.6.3 Thực hiện từ bên ngoài mạng không dây
Phương pháp này được thực hiện khi mạng không dây có kết nối với mạng bên ngoài. Kẻ tấn công từ mạng bên ngoài sẽ gửi liên tục các gói tin đến máy Client trong mạng không dây, gói tin đơn giản nhất có thể gửi là gói tin ping dùng giao thức ICMP, khi đó bản tin giữa AP và Client sẽ là các bản tin ICMP đó. Như vậy kẻ tấn công đã biết được bản tin gốc P.
Hình 2.6 Mô tả quá trình thực hiện từ bên ngoài mạng không dây
2.1.6.4 Thực hiện ngay từ bên trong mạng không dây
Việc thực hiện bên trong sẽ phức tạp hơn một chút, và phải dựa trên nguyên lý Sửa bản tin khai thác từ điểm yếu của thuật toán tạo mã kiểm tra tính toàn vẹn ICV. Kẻ tấn công sẽ bắt 1 gói tin truyền giữa Client và AP, gói tin là chứa bản tin đã được mã hóa, sau đó bản tin sẽ bị sửa một vài bit (nguyên lý bit-flipping) để thành 1 bản tin mới, đồng thời giá trị ICV cũng được sửa thành giá trị mới sao cho bản tin vẫn đảm bảo được tính toàn vẹn ICV. Nguyên lý Bit-Flipping có như sau:
Hình 2.7 Mô tả nguyên lý Bit- Flipping
Kẻ tấn công sẽ gửi bản tin đã sửa này đến AP. AP sau khi kiểm tra ICV, thấy vẫn đúng nó sẽ gửi bản tin đã giải mã cho tầng xử lý lớp 3. Vì bản tin sau khi mã hóa bị sửa 1 vài bit nên đương nhiên bản tin giải mã ra cũng bị sai, khi đó tầng xử lý ở lớp 3 sẽ gửi thông báo lỗi, và AP chuyển thông báo lỗi này cho Client. Nếu kẻ tấn công gửi liên tục lặp đi lặp lại bản tin lỗi này cho AP thì AP cũng sẽ gửi liên tục các thông báo lỗi cho Client. Mà bản tin thông báo lỗi này thì có thể xác định rõ ràng đối với các loại thiết bị của các hãng và kẻ tấn công đương nhiên cũng sẽ biết. Như vậy hắn đã biết được bản tin gốc P.
Hình 2.8 Mô tả quá trình thực hiện từ bên trong mạng không dây
Tóm lại, khi tìm được các cặp gói tin có IV giống nhau, kẻ tấn công tìm cách lấy giá trị P (có thể bẳng cách đẩy các gói tin P giống nhau vào liên tục) thì khả năng kẻ tấn công đó dò ra mã khóa dùng chung (shared key) là hoàn toàn có thể thực hiện được.
2.1.7Biện pháp ngăn chặn
Cải tiến, bổ sung, khắc phục những nhược điểm, lỗ hổng trong quá trình chứng thực, mã hóa của WEP bằng các nguyên lý của các hãng thứ 3 khác.
Xây dựng các nguyên lý mới chặt chẽ hơn, phức tạp hơn và an toàn hơn
dựa trên nguyên lý của WEP.
2.1.7.1 Cải tiến trong phƣơng pháp chứng thực và mã hóa WEP
Để tăng cường tính bảo mật của WEP, tổ chức IEEE 802.11 đã đưa ra giao thức tích hợp khóa tạm thời TKPI – Temporal Key Integrity Protocol. TKIP bổ sung 2 phần chính cho WEP là:
Kiểm tra tính toàn vẹn của bản tin (MIC-Message Integrity Check).
Thay đổi mã khóa cho từng gói tin (Per packet keying).
2.1.7.2 Bổ sung trƣờng MIC
Giá trị kiểm tra tính toàn vẹn của bản tin MIC - Message Integrity Check được bổ sung vào 802.11 để khắc phục những nhược điểm của phương pháp kiểm tra toàn vẹn dữ liệu ICV.
MIC bổ sung thêm số thứ tự các trường trong khung dữ liệu (AP sẽ loại
bỏ những khung nào sai số thứ tự đó), để tránh trường hợp kẻ tấn công chèn các gói tin giả mạo sử dụng lại giá trị IV cũ.
MIC bổ sung thêm 1 trường tên là MIC vào trong khung dữ liệu để
kiểmsự toàn vẹn dữ liệu nhưng với thuật toán kiểm tra phức tạp, chặt chẽ hơn ICV.
Hình 2.9 Cấu trúc khung dữ liệu trước và sau khi bổ sung
Trường MIC dài 4 byte được tổng hợp từ các thông số theo hàm HASH:
Hình 2.10 Cấu trúc bên trong của trường MIC
Hàm băm Hash
Đây là một loại hàm mã hóa dữ liệu thỏa mãn các yêu cầu sau:
Tóm lược mọi bản tin có độ dài bất kỳ thành một chuỗi nhị phân có độ
dài xác định.
Từ chuỗi nhị phân này không thể tìm lại bản tin nguyên thủy ban đầu
(hàm tóm lược là hàm một chiều).
Bất kỳ một thay đổi dù rất nhỏ ở bản tin nguyên thủy cũng dẫn đến sự
Các hàm tóm lược này phải thỏa mãn tính chất “không va chạm” có nghĩa là với hai bản tin bất kỳ khác nhau, cùng dùng một hàm tóm lược rất khó có thể cho ra hai chuỗi tóm lược có nội dung giống nhau. Điều này rất có ích trong việc chống giả mạo nội dung bức điện.
2.1.7.3 Thay đổi mã khóa theo từng gói tin
Vì việc dùng giá trị khóa dùng chung trong một khoảng thời gian có thể bị kẻ tấn công dò ra trước khi kịp đổi nên người ta đưa ra một phương pháp là thay đổi mã khóa này theo từng gói tin. Nguyên lý thực hiện đơn giản bằng cách thay vì đưa giá trị mã khóa tới đầu vào của bộ RC4, người ta sẽ kết hợp mã khóa này với IV bằng hàm băm Hash, rồi đưa kết quả này (gọi là Mã khóa tổ hợp) tới đầu vào của bộ RC4. Vì mã RC4 thay đổi liên tục (tăng tuần tự) theo mỗi gói tin nên mã khóa tổ hợp cũng thay đổi liên tục dù mã khóa chưa đổi.
Hình 2.11 Mô tả quá trình mã hóa khi truyền đi sau khi bổ sung
Để đảm bảo hơn nữa, Cisco đưa ra quy ước là giá trị IV vẫn để tăng tuần tự nhưng AP dùng giá trị IV lẻ còn Client dùng giá trị IV chẵn như vậy
giá trị IV của AP và Client sẽ không bao giờ trùng nhau và mã khóa tổ hợp của AP và Client cũng sẽ không bao giờ trùng nhau.
2.2 Tiêu chuẩn bảo mật WPA
Để khắc phục nhược điểm của WEP, chuẩn 802.11i được xây dựng và phát triển. Giao thức WPA được nhóm Wi-Fi Alliance tạm thời thay thế cho WEP khi chuẩn 802.11i chưa được hoàn thiện, sau khi chuẩn này hoàn thiện thì giao thức bảo mật sử dụng là WPA2 (nội dung chi tiết của WPA2 sẽ được trình bày ở phần sau).
Giống như các chuẩn 802.1x WPA có chức năng chứng thực, WPA có 2 chế độ thực hiện chứng thực: IEEE 802.1x và khóa chia sẻ PSK (Pre-Shared Key). Chứng thực IEEE 802.1x là hướng vào một nhóm chứng thực cơ sở, như máy chủ RADIUS (Remote Authentication Dial-In User Service – dịch vụ người dùng quay số vào chứng thực từ xa). IEEE 802.1x sử dụng giao thức chứng thực mở rộng EAP (Extensible Authentication Protocol) như giao thức truyền thông được sử dụng cho việc chứng thực, EAP là một phương thức truyền thông chứ không phải một phương thức chứng thực. Có rất nhiều phương pháp chứng thực trong thực tế sử dụng phương thức EAP, ví dụ như thẻ chứng thực, hay mật khẩu. Một số kiểu chứng thực bảo mật phổ biến như EAP-TLS (Transport Layer Security), EAP-TTLS (Tunnelled TLS) và PEAP (Protected EAP). Phương thức bảo mật này được cấp chứng nhận X.509 và cung cấp nhiều khả năng chứng thực. IEEE 802.1x là một cổng cơ bản đối với cơ chế chứng thực. Nó thực hiện trên quan điểm của cổng điều khiển và không điều khiển. Giao thức của WLAN có thể mô tả theo mô hình sau:
Hình 2.12 Mô hình thiết lập điển hình của WLAN
Hình 2.12a: trước khi station hoàn thành chứng thực, cổng điều khiển (thường được sử dụng để truy cập và LAN) bị đóng. Hình 2.12b: sau khi station hoàn thành chứng thực, cổng điều khiển được mở, station có thể truy cập vào LAN. Hai cổng này là 2 thực thể logic và cả hai đều sử dụng kết nối vật lý đến AP và các tài nguyên khác của LAN.
Trước khi station được chứng thực, chỉ có thông tin EAPOL (EAP over LAN) là được tham gia truyền thông tới máy chủ chứng thực. Về cơ bản thì nhóm đối tượng này vẫn có thể truy cập vào mạng cho đến khi quá trình chứng thực được hoàn thành. Một station có nhu cầu chứng thực đưa yêu cầu chứng thực. AP sẽ nhận các yêu cầu chứng thực, chuyển qua bộ chứng thực cấp quyền truy cập tới nguồn tài nguyên LAN. Tuy nhiên, bộ chứng thực không nhất thiết phải có trong AP nhất định hiện có. Để sử dụng phương thức EAP, yêu cầu chứng thực được gửi tới máy chủ chứng thực (thường là máy chủ RADIUS). Tất cả các giao tiếp đều được gửi thông qua bộ chứng thực.
Một chứng thực thành công, bộ chứng thực cấp quyền truy cập tới station đã chứng thực, khi đó station có thể truy cập tới tài nguyên của LAN (Hình 2.12b)
Trong 802.1x là 802.11i, một hệ đẳng cấp khóa được định nghĩa trong quá trình xử lý chứng thực như sau:
-Khóa chính MK (Master Key), không hẳn là một khóa đối xứng riêng
PSK2 (Private Symmetric Key), mà chỉ cho một station và một máy chủ
chứng thực có thể xử lý. MK bị giới hạn trong phiên làm việc riêng giữa station và máy chủ chứng thực. MK được đề cập như khóa AAA (Authentication, Authorisation and Accounting) trong chuẩn 802.11i
-Khóa chính thông minh kết hợp PMK (Pairwise Master Key), khóa này
có thể tạo thành từ MK, hay có thể sử dụng trực tiếp PSK2. Chỉ station và máy chủ chứng thực có thể chuyển PMK từ MK. PMK bị giới hạn phiên làm việc giữa station và AP. Máy chủ chứng thực nhận PMK chỉ một lần, rồi chuyển nó tới bộ chứng thực. PMK không giống MK, AP không thể tạo lập được PMK, Một AP khác có thể tạo ra những quyết định điều khiển truy cập thay cho máy chủ chứng thực
-Khóa tức thời thông minh kết hợp PTK (Pairwise Transient Key) được
tạo lập từ PMK và phương thức bắt tay phía thứ 4 giữa yêu cầu chứng thực (station) và bộ chứng thực (AP). PTK được tạo thành từ sự lựa chọn các khóa:
+ Khóa xác thực khóa KCK (Key Confirmation Key): 128 bit, sử
dụng để xác minh trạng thái của PMK và ràng buộc PMK theo sự quan hệ của station và AP
+ Khóa mã hóa khóa KEK (Key Encryption Key): 128 bit, sử dụng
để điều phối khóa tức thời theo nhóm GTK(Group Transient Key)
+ Khóa mã hóa theo thời gian TEK (Temporal Encryption Key):
+ Khóa xác thực nguồn gốc dữ liệu theo thời gian TDOAK (Temporal Data Origin Authenticity Key): 128 bit, TKIP thường sử dụng 2 khóa 64 bit, mỗi khóa theo hướng kết nối riêng, và được sử dụng để mã hóa mã toàn vẹn thông điệp (Message Integrity Code). TKIP-MIC sẽ được mô tả sau.
GTK là khóa được AP tạo ra (ngẫu nhiên), và mã hóa nó với KEK rồi gửi cho station. Khóa GTK này được sử dụng bởi tất cả các station kết hợp với AP. Quá trình xử lý này cung cấp việc quản lý khóa bảo mật và khóa GTK là bước cuối cùng hoàn thành quá trình xử lý chứng thực.
Như trên đã giới thiệu, EAP-TLS là một ví dụ về phương pháp chứng thực quan hệ bảo mật, hình sau sẽ minh họa từng bứớc của quá trình phức tạp này:
Bước 1. Station kết hợp với AP.
Bước 2. AP khóa tất cả lưu lượng truyền từ station và yêu cầu ID của
station.
Bước 3. Station trả lời và AP chuyển thông tin đó đến máy chủ
RADIUS.
Bước 4. Máy chủ RADIUS tìm khóa dùng chung của station ở nơi lưu
trữ các chứng nhận. Máy chủ gửi thông báo trả lời (lời mời) cho station (ví dụ như: Here is something encrypted with your public key. Decrypt it with your private key, perform a function on it and then return it encrypted with my public key- Có một số khóa được mã hóa với khóa dùng chung của bạn. Giải mã với khóa riêng của bạn, thực hiện chức năng trên nó và trả về sau khi đã được mã hóa với khóa dùng chung của tôi).
Bước 5. Station trả lời thông báo (lời mời) trên.
Bước 6. Nếu máy chủ RADIUS chấp nhận, khóa MK thỏa thuận giữa
station và máy chủ RADIUS được tạo lập và nó được gửi một cách đảm bảo từ máy chủ RADIUS tới station.
Bước 7. Cả máy chủ RADIUS và station đều tạo PMK từ MK.
Bước 8. Máy chủ RADIUS chuyển PMK đến AP.
Bước 9. Station và AP sử dụng PMK và phương thức bắt tay phía thứ 4
để nhận (không phải truyền) kết nối và xác minh PTK. TEK là một phần của PMK thường được sử dụng trong phiên này để mã hóa truyền thông giữa station và AP.
Bước 10. AP sử dụng bắt tay phía thứ 4 khác, KEK một phần của PTK
để mã hóa GTK và gửi nó cho station.
Bước 11. Quá trình xử lý chứng thực được hoàn thành, AP cho phép
Các khóa phiên này có thể được làm mới tự động, đây là sự cải tiến lớn trong sử dụng khóa so với WEP. AP có thể cấu hình lại để phá vỡ liên kết với các station để chứng thực lại khi thấy không bình thường.
Với phương thức PSK, một khóa điều khiển thường được thiết lập trong mỗi thiết bị của hệ thống mạng không dây. PSK được sử dụng trực tiếp như PMK. WPA với chứng thực PSK được định nghĩa cho mạng không dây trong các văn phòng nhỏ thì không cần có máy chủ chứng thực, nhưng vẫn muốn có các chức năng mà WPA hơn WEP. Một station được chứng thực để sử dụng.
TKIP vẫn sử dụng IV như RC4 trong cấu trúc để thực hiện trên một số thiết bị phần cứng đá được định nghĩa cho giao thức WEP. Tuy nhiên IV được sử dụng khác so với WEP. IV được mở rộng tới 48 bit và được sử dụng như một bộ đếm tuần tự TKIP (TKIP Sequence Counter - TSC). 16 bit đầu của TSC được lưu trữ trong trường WEP IV, 32 bit được lưu trữ trong một