WEP là thuật toán mã hóa đối xứng, nghĩa là quá trình mã hóa và giải mã đều sử dụng một khóa chia sẻ (shared key) bí mật giữa trạm không dây (máy tính, PDA... gọi chung là STA) và AP. Tất cả dữ liệu gửi và nhận giữa STA và AP được mã hóa sử dụng khóa này. Thông thường một khóa được chia sẻ giữa tất cả các STA và AP trong hệ thống.
Hình 5.4: Mô hình chia sẻ khóa WEP giữa máy khách và AP
Một số khái niệm:
bit (yếu) và 104 bit (mạnh hơn). Một AP có thể sử dụng nhiều khóa chia sẻ khác nhau, tức là có thể làm việc được với nhiều nhóm STA.
Hình 5.5: WEP có thể cài đặt lên tới 4 khóa chia sẻ
Vector khởi tạo IV (Initialization Vector): Đây là một chuỗi dài 24 bit, được tạo ra một cách ngẫu nhiên. Với mỗi gói tin truyền đi, chuỗi IV lại thay đổi một lần. Có nghĩa là các gói tin truyền đi sẽ có các giá trị IV thay đổi khác nhau. Vì thế nó còn được gọi là bộ sinh mã giả ngẫu nhiên PRNG (Pseudo Random Number Generator). Mã này sẽ được truyền cho bên nhận cùng với bản tin đã được mã hóa. Bên nhận dùng giá trị IV nhận được cho việc giải mã.
RC4 (Ron’s Code): đây là loại mã dạng chuỗi các ký tự được tạo ra liên tục (còn gọi là luồng dữ liệu). Độ dài của RC4 chính là độ dài của khóa chia sẻ và vector khởi tạo IV. Mã RC4 có 2 loại khác nhau về độ dài từ mã: loại 64 bit (ứng với khóa chia sẻ 40 bit) và 128 bit (ứng với khóa chia sẻ 104 bit).
WEP mã hóa dữ liệu sử dụng một trong 2 dạng khóa khác nhau về độ dài: 40 bit (yếu) và 104 bit (mạnh hơn) kết hợp với một mã giả ngẫu nhiên
RC4 (Pseudo Random Number Generator - PRNG). Hai quá tiến trình này được áp dụng cho dữ liệu gốc: một dùng để mã hóa dữ liệu và một dùng để bảo vệ dữ liệu không bị sửa đổi trong quá trình truyền.
5.2.1.1. Mã hóa khi truyền dữ liệu
Hình 5.6: phương pháp mã hóa của WEP
Khóa chia sẻ và vector khởi tạo IV là hai nguồn dữ liệu đầu vào của bộ tạo mã dùng thuật toán RC4 để tạo ra chuỗi khóa (key stream) giả ngẫu nhiên một cách liên tục.
Để bảo vệ dữ liệu mã hóa khỏi bị sửa đổi trái phép trên đường truyền, WEP đính thêm vào gói tin phần kiểm tra CRC gồm 32 bit ứng với 8 byte. Phần CRC này sẽ đảm bảo tính toàn vẹn cho dữ liệu (ICV - Intergrity Check Value). Gói tin mới vẫn có nội đung ở dạng chưa mã hóa.
Bên gửi lấy chuỗi khóa rồi tiến hành XOR với dữ liệu gốc (plaintext) để tạo ra dữ liệu mã hóa (cipertext). Dữ liệu đã mã hóa cùng với chuỗi IV được truyền đi đến bên nhận.
5.2.1.2. Giải mã khi nhận dữ liệu
Hình 5.7: Phương pháp giải mã của WEP
Khi nhận được dữ liệu mã hóa, bên nhận sử dụng chuỗi IV và bản sao khóa bí mật của nó để tạo ra chuỗi khóa giống như chuỗi khóa tạo ra bên gửi. Sau đó bên nhận tiến hành XOR chuỗi khóa với dữ liệu mã hóa để nhận lại dữ liệu gốc. Để kiểm tra tính toàn vẹn của dữ liệu, bên nhận tính toán giá trị ICV và so sánh giá trị này với giá trị ICV do bên gửi đính kèm vào bản tin. Nếu hai giá trị giống nhau thì dữ liệu không bị sửa đổi trong quá trình truyền.
5.2.2. Phương pháp chứng thực
WEP hỗ trợ hai dạng chứng thực:
• Hệ thống mở (Open System): tất cả người sử dụng đều được cho phép truy cập vào WLAN. Dạng chứng thực mở này là mặc định.
• Chứng thực sử dụng khóa chia sẻ: điều khiển truy cập vào WLAN và ngăn chặn các truy cập trái phép vào mạng.
Trong hai dạng chứng thực trên, phương pháp sử dụng khóa chia sẻ là cách đảm bảo an ninh hơn. Các STA và các AP ữong mạng WLAN cùng sử dụng chung một khóa bí mật. Khi STA muốn kết nối đến một AP nào đó, AP sẽ trả lời bằng một chuỗi ký tự ngẫu nhiên để yêu cầu chứng thực. STA phải sử
dụng khóa bí mật để mã hóa chuỗi ký tự này rồi gửi lại cho AP. AP giải mã nhờ khóa bí mật của nó và so sánh chuỗi ký tự này với chuỗi chính nó gửi đi trước đó. Nếu giống nhau, AP sẽ gửi bản tin xác nhận đến STA và cho phép STA kết nối vào mạng. Nếu STA không có khóa hoặc gửi sai chuỗi ký tự mã hóa thì AP từ chối và ngăn chặn không cho phép STA truy cập vào mạng
Hình 5.8: Quá trình chứng thực của WEP
5.2.3 Ưu điểm của WEP và những hạn chế 5.2.3.1. Những ưu điểm
Phương pháp chứng thực và mã hóa WEP được tạo ra trên các mục đích sau: Tăng khả năng bảo mật nhờ quá trình mã hóa: làm giảm khả năng dữ liệu bị giải mã bất hợp pháp
Có khả năng tự đồng bộ: tự đồng bộ lại kết nối giữa các thiết bị khi quá trình thông tin liên lạc vô ý bị ngắt quãng.
5.2.3.1. Hạn chế của WEP
Mặc dù bảo vệ tính bí mật, tin cậy và tính toàn vẹn của dữ liệu, WEP vẫn có những mặt hạn chế.
Đầu tiên phải kể đến việc sử dụng lại chuỗi IV. Chuỗi IV được kèm vào phần không mã hóa của bản tin để bên nhận biết chuỗi IV nào được dùng khi tạo chuỗi khóa dùng để giải mã. Chuẩn 802.11 đưa ra khuyến cáo nên thay đổi chuỗi IV sau mỗi lần truyền. Tuy nhiên điều này là không bắt buộc. Nếu chuỗi IV không thay đổi thường xuyên mà được sử dụng lại cho các lần truyền bản tin tiếp theo, kẻ tấn công có thể nghe trộm mà giải mã được chuỗi khóa (tạo bởi chuỗi IV và khóa bí mật). Từ đó kẻ tấn công sẽ giải mã và đọc được bản tin truyền đi sử dụng chuỗi IV đó.
Hạn chế từ việc sử dụng lại chuỗi IV dẫn đến một vấn đề khác. Khi biết được khóa của bản tin mã hóa (dựa vào chuỗi IV sử dụng lại), kẻ tấn công có thể dùng nó để tạo ra túi hiệu mã hóa và đưa vào mạng. Chuẩn 802.11 sử dụng CRC để đảm bảo tính toàn vẹn của dữ liệu. Tuy nhiên, WEP không mã hóa riêng giá trị CRC mà mã hóa chung cùng với bản tin. Do đó kẻ tấn công khi giải mã được bản tin có thể sử nội dung và giá trị CRC rồi gửi lại cho AP. AP sẽ chấp nhận bản tin này như một bản tin hợp lệ. Từ đó kẻ tấn công có thể xâm nhập và ăn cắp các thông tin quan trọng khác hoặc làm rối loạn hoạt động của mạng.
Một hạn chế nữa của WEP là việc trao đổi khóa. Hầu hết các WLAN sử dụng khóa chia sẻ giữa các STA và các AP trong cùng mạng. Việc chia sẻ khóa giữa nhiều người sử dụng cũng dẫn đến mức độ bảo mật kém đi. Giải pháp cho vấn đề này là người quản trị tự cấu hình khóa trên máy người sử dụng. Tuy nhiên việc khóa bí mật được lưu trong các STA vẫn dễ bị lấy cắp. Giải pháp tốt hơn là gán các khóa riêng biệt cho từng trạm và thường xuyên thay đổi khóa. Tuy nhiên việc gán khóa riêng biệt là không dễ dàng trong một mạng quy mô lớn.
Phương pháp chứng thực bằng khóa chia sẻ hoạt động khi chức năng mã hóa của WEP được bật lên. Nếu mã hóa không được bật thì mạng sẽ mặc định sử dụng phương pháp chứng thực mở (Open System mode) cho phép tất cả các STA ữong vùng phủ sóng kết nối vào mạng. Ngoài ra chỉ các STA mới chứng thực với AP, quá trình ngược lại thì không. Do đó STA không thể nhận biết được AP là đúng hay giả mạo. Điều này sẽ dẫn tới các kiểu tấn công dịch vụ thông qua việc sử dụng AP giả mạo đặt trong mạng không dây.