Chương 3: CÁC KỸ THUẬT TẤN CÔNG WLAN & BIỆN PHÁP NGĂN CHẶN
4.3.2. Các kỹ thuật bảo mật sử dụng phương thức mã hóa Encryption
Hai vấn đề an toàn chính trong mạng không dây là: xác thực Authentication và mã hóa Encryption.
Mã hóa là quá trình biến đổi dữ liệu để chỉ có các thành phần được xác nhận mới có thể giải mã được nó. Quá trình mã hóa là kết hợp dữ liệu ở dạng chưa mã hóa (plaintext) với một khóa để tạo thành dữ liệu đã được mã hóa (ciphertext). Sự giải mã bằng cách kết hợp ciphertext với khóa để tái tạo lại plaintext gốc như hình 4.7. Quá trình sắp xếp và phân bố các khóa gọi là sự quản lý khóa.
Hình 4.7: Quá trình mã hóa và giải mã
Nếu cùng một khóa được sử dụng cho cả hai quá trình mã hóa và giải mã thì các khóa này được hiểu như là “Symmetric” (đối xứng). Còn nếu các khóa khác nhau được sử dụng thì quá trình này được hiểu như là “Asymmetric” (không đối xứng). Các khóa Asymmetric được sử dụng nhiều trong các PKI (Public Key Infrastructure), nơi mà một khóa là “public” và các cái còn lại là “private”.
Cơ chế mã hóa dữ liệu dựa trên các thuật toán mật mã (cipher) làm cho dữ liệu xuất hiện theo dạng ngẫu nhiên. Có hai loại mật mã: mật mã khối (block cipher) và mật mã dòng (cipher stream). Cả hai loại mật mã này hoạt động bằng cách sinh ra một chuỗi khóa (key stream) từ một giá trị khóa bí mật. Chuỗi khóa sau đó sẽ được trộn với dữ liệu plaintext để tạo thành dữ liệu được mã hóa. Hai loại mật mã này khác nhau về kích thước của dữ liệu mà chúng thao tác tại một thời điểm.
Tiến trình mã hóa dòng và mã hóa khối còn được gọi là chế độ mã hóa khối mã điện tử ECB (Electronic Code Block). Chế độ mã hóa này có đặc điểm là cùng một đầu vào plaintext (input plaintext) sẽ luôn luôn sinh ra cùng một đầu ra ciphertext (output ciphertext). Đây chính là yếu tố mà kẻ tấn công có thể lợi dụng để nhìn thấy được dạng của ciphertext và đoán được plaintext ban đầu.
Hình 4.8: Hoạt động của mật mã dòng
Mật mã dòng là phương thức mã hóa theo từng bit, mật mã dòng phát sinh chuỗi khóa liên tục ngẫu nhiên (8bit) dựa trên giá trị của khóa, sau đó kết hợp với plaintext để mã hóa nó. Mật mã dòng khá nhỏ và là một thuật toán mã hóa rất hiệu quả, ít tiêu tốn tài nguyên CPU. Một loại mật mã dòng phổ biến là RC4, một nền tảng chính của thuật toán WEP.
Ngược lại, mật mã khối sinh ra một chuỗi khóa duy nhất và có kích thước cố định (64bit hoặc 128bit). Chuỗi kí tự chưa mã hóa sẽ được phân mảnh thành những khối (block) và mỗi khối sẽ được trộn với chuỗi khóa một cách độc lập. Nếu như khối plaintext nhỏ hơn khối chuỗi khóa thì plaintext sẽ được đệm thêm vào để có được kích thước thích hợp. Tiến trình phân mảnh cùng với một số thao tác khác của mật mã khối sẽ làm tiêu tốn nhiều tài nguyên CPU. Kết quả là mật mã khối sẽ làm giảm thông lượng của thiết bị.
Hình 4.9: Hoạt động của mật mã khối.
Một số kỹ thuật mã hóa có thể khắc phục được vấn đề trên: + Sử dụng vector khởi tạo IV (Initialization Vector). + Chế độ phản hồi (FeedBack).
*) Vector khởi tạo IV
Là một số được cộng thêm vào khóa và làm thay đổi chuỗi khóa. IV được nối vào khóa trước khi chuỗi khóa được sinh ra, mỗi khi IV thay đổi thì chuỗi khóa cũng sẽ thay đổi theo và kết quả là ta sẽ có ciphertext khác nhau. Ta nên thay đổi giá trị IV theo từng khung. Theo cách này nếu một khung được truyền hai lần thì chúng ta sẽ có hai ciphertext hoàn toàn khác nhau cho từng khung..
*) Chế độ phản hồi (Feedback Modes)
Chế độ phản hồi nhằm sửa đổi quá trình mã hóa để tránh việc một plaintext sinh ra cùng một ciphertext trong suốt quá trình mã hóa. Chế độ phản hồi thường được sử dụng với mật mã khối.
(a): Mã hóa mật mã dòng không sử dụng vector khởi tạo
(b): Mã hóa mật mã dòng sử dụng vector khởi tạo Hình 4.10 (a,b): Mã hóa mật mã dòng