Mật mã dòng phát sinh chuỗi khóa liên tục dựa trên giá trị khóa. Ví dụ, một mật mã dòng có thể sinh ra một chuỗi dài 15 byte để mã hóa một khung và một chuỗi khóa khác dài 200 byte để mã hóa môt khung khác. Hình 1 minh họa hoạt động của mật mã dòng. Mật mã dòng khá nhỏ và một thuật toán mã hóa rất hiệu quả, kết quả là nó không sử dụng nhiều CPU. Mật mã dòng phổ biến là RC4, chính là nền tảng của thuật toán WEP.
Hình 4.3: Hoạt động của mật mã dòng 4.3.2. Mật mã khối
Một mật mã khối sinh ra sinh ra một chuỗi khóa duy nhất và có kích thước cố định, chuỗi ký tự chưa mã hóa (plaintext) sẽ đươc phân mảnh thành những khối (block) và mỗi khối sẽ được trộn với một chuỗi khóa độc lập. Nếu như khối plaintext là nhỏ hơn khối chuỗi khóa thì plaintext sẽ được đệm thêm vào để có kích thước thích hợp. Hình 2 minh họa hoạt động của của mật mã khối. Tiến trình phân mảnh cùng với các thoa 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 hơn là mật mã dòng. Kết quả là mật mã khối sẽ làm giảm thông lượng của thiết bị.
Tiến trình mã hóa được mô tả ở đây của mật mã dòng và mật mã khối được gọi là chế độ mã hóa khối mã hóa tử ECB ( Electronic Code Block). Chế độ mã hóa ECB có đặc điểm là cùng một đầu vào plaintext sẽ luôn sinh ra cùng một đầu ra ciphertext. Yếu tố này chính là một nguy cơ bảo mật tiềm tàng bỡi vì những kẻ nghe lén có thể nhìn thấy được dạng của ciphertext có thể đoán được plaintext ban đầu.
Hình 4.4: 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 vấn đề này bao gồm:
- Vector khởi tạo IV (Initialization vector).
Hình 4.5: Mã hóa vectơ khởi tạo
Một vector khởi tạo IV là một số được cộng thêm vào khóa, kết quả cuối cùng là thay đổi chuỗi khóa. IV sẽ được nối vào 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 thay đổi theo. Hình 4.6 minh họa hai trường hợp:
- Thứ nhất, mã hóa mật mã dòng không sử dụng IV. Trong trường hợp này thì dữ
liệu planintext khi trộn với chuỗi khóa 12345 sẽ luôn luôn sinh ra ciphertext là AHGHE.
- Thứ hai, mã hóa sử dụng IV. Trong trường hợp này thì chuỗi khóa sẽ có những giá
trị khác nhau khi IV thay đổi, kết quả sẻ có ciphertext khác nhau.
Chế độ phản hồi: Chế độ phản hồi (feedback) sữa đổi tiến trình mã hóa để tránh một việc plaintext sinh ra trong 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.
4.4. Các phƣơng thức bảo mật trong WLAN 4.4.1. Bảo mật bằng WEP
Phƣơng thức chứng thực qua SSID khá đơn giản, chính vì vậy mà nó chƣa đảm bảo đƣợc yêu cầu bảo mật, mặt khác nó chỉ đơn thuần là chứng thực mà
chƣa có mã hóa dữ liệu. Do đó chuẩn 802.11 đã đƣa ra phƣơng thức mới là WEP. WEP có thể dịch là chuẩn bảo mật dữ liệu cho mạng không dây mức độ
tƣơng đƣơng với mạng có dây, là phƣơng thức chứng thực ngƣời dùng và mã hóa nội dung dữ liệu truyền trên mạng LAN không dây (WLAN).Nó dựa trên mật mã dòng đối xứng (symmetric) RC4. Đặc điểm đối xứng của RC4 yêu cầu
khóa WEP phải khớp nhau giữa Access Point (AP) và client . WEP là một thuật toán mã hóa đƣợc sử dụng bởi tiến trình xác thực ngƣời dùng và mã hóa
dữ liệu trên phân đoạn mạng không dây của mạng LAN. Chuẩn 802.11 yêu cầu sử dụng WEP nhƣ là phƣơng thức bảo mật cho mạng không dây.
Hình 4.6: Khung đã đƣợc mã hóa bởi WEP
WEP là một thuật toán đơn giản sử dụng bộ phát sinh số ngẫu nhiên PRNG (Pseudo-Random Number Generator) và mật mã dòng RC4. RC4 thuộc sở hữu thương mại của RSADSL. Mật mã dòng RC4 là khá nhanh để mã hóa và giải mã,
vì thế mà nó tiết kiệm được CPU, RC4 cũng đủ đơn giản để các nhà phần mềm lập trình nó vào trong sản phẩm của mình.
Để tránh chế độ ECB trong quá trình mã hóa, WEP sử dụng 24 bit IV, nó được nối vào khóa WEP trước khi sử lý bởi RC4. Hình 4 mô tả một khung đã được mã hóa bỡi WEP có sử dụng IV.IV thay đổi theo từng khung (per-frame basis) để tránh hiện tượng xung đột. Xung đột IV xuất hiện khi sử dụng cùng một IV và khóa WEP kết quả là cùng một chuỗi khóa đã được tạo ra để sử dụng mã hóa khung. Xung đột này giúp hacker đoán được dữ liệu plaintext bằng cách nhìn vào tính tương tự trong chuỗi ciphertext. Việc sử dụng IV là để ngăn chặn trường hợp này, vì thế mà chúng ta nên thay đổi thường xuyên thay đổi IV. Hầu như các nhà sản xuất đều hỗ trợ tính năng thay đổi IV theo từng khung (per-frame IV) cho các sản phẩm của mình. Đặc tả 802.11 yêu cầu khóa WEP (được cấu hình thủ công trên AP và các thiết bị client) phải khớp với nhau thì chúng mới truyền thông được. Chúng ta có thể định nghĩa lên bốn khóa WEP trên một thiết bị. Nhưng ở mỗi thời điểm chúng ta có thể sử dụng một khóa WEP duy nhất để mã hóa các khung phát ra. Mã hóa WEP chỉ được sử dụng cho các khung dữ liệu trong suốt tiến trình xác thực khóa chia sẻ. WEP mã hóa những trường hợp trong khung dữ liệu:
- Phần dữ liệu (payload).
- Giá trị kiểm tra tính toàn vẹn ICV (Integrity Check Value).
Tất cả các trường hợp khác được truyền mà không được mã hóa. Giá trị IV phải được gửi mà không mã hóa để cho trạm nhận có thể sử dụng nó để giải mã phần dữ liệu và ICV. Chi tiết tiến trình mã hóa, truyền, nhận và giải mã của một khung dữ liệu.
Hình 4.7: Tiến trình mã hóa và giải mã
Ngoài việc mã hóa dữ liệu thì chuẩn 802.11 cũng cung cấp một giá trị 32 bit có chức năng kiểm tra tính toàn vẹn của khung. Việc kiểm tra này cho trạm thu biết
rằng khung đã nhận mà không có lỗi nào xảy ra trong quá trình truyền. Nếu bổ sung cho chức năng FCS (Frame Check Secquence) của lớp một và lớp hai. FCS được thiết kế để kiểm tra lỗi liên quan đến việc truyền dữ liệu. ICV(Integrity check value) được tính toán dựa trên tất cả các trường trong khung sử dụng CRC-32 (Cyclic Redundancy Check 32). Trạm phát sẽ tính toán giá trị và đặt gái trị và kết quả vào trong trường ICV. ICV sẽ được bao gồm trong phần được mã hóa bỡi WEP của khung, vì thế chúng không nhìn thấy được bởi những kẻ nghe lén. Trạm thu sẽ giải mã khung, tính toán giá trị ICV và so sánh giá trị ICV đã được trạm phát tính toán trong khung nhận được. Nếu trong hai giá trị trùng nhau thì khung được xem như chưa được thay đổi hay giả mạo.
Hình 4.8: Hoạt động của ICV4
Hình 4.9: Quá trình chức thực giữa Client và AP
Các bước cụ thể như sau:
- Bƣớc 1: Client gửi đến AP yêu cầu xin chứng thực.
- Bƣớc 2: AP sẽ tạo ra một chuỗi mời kết nối (challenge text) ngẫu nhiên gửi đến Client.
- Bƣớc 3: Client nhận được chuỗi này này sẽ mã hóa chuỗi bằng thuật toán RC4 theo mã khóa mà Client được cấp, sau đó Client gửi lại cho AP chuỗi đã mã hóa.
- Bƣớc 4: AP sau khi nhận được chuỗi đã mã hóa của Client, nó sẽ giải mã lại bằng thuật toán RC4 theo mã khóa đã cấp cho Client, nếu kết quả giống với chuỗi ban đầu mà nó gửi cho Client thì có nghĩa là Client đã có mã khóa đúng và AP sẽ chấp nhận quá trình chứng thực của Client và cho phép thực hiện kết nối.
4.4.1. Ƣu và nhƣợc điểm của WEP
Ưu điểm của WEP:
- Có thể đưa ra rộng rãi, triển khai đơn giản.
- Mã hóa mạnh.
- Khả năng tự đồng bộ.
- Tối ưu tính toán, hiệu quả tài nguyên bộ vi xử lý.
- Có các lựa chọn bổ xung thêm.
Nhược điểm của WEP:
- Rất đơn giản, các khoá mã hoá này dễ dàng bị "bẻ gãy" bởi thuật toán brute-
force và kiểu tấn công thử lỗi (trial-and-error). Các phần mềm miễn phí như Airsnort hoặc WEP Crack sẽ cho phép hacker có thể phá vỡ khoá mã hoá nếu họ thu thập đủ từ 5 đến 10 triệu gói tin trên một mạng không dây. Với những khoá mã hoá 128 bit cũng không khá hơn: 24 bit cho khởi tạo mã hoá nên chỉ có 104 bit được sử dụng để mã hoá, và cách thức cũng giống như mã hoá có độ dài 64 bit nên mã hoá 128 bit cũng dễ dàng bị bẻ khoá.
- Ngoài ra, những điểm yếu trong những vector khởi tạo khoá mã hoá giúp cho
hacker có thể tìm ra mật khẩu nhanh hơn với ít gói thông tin hơn rất nhiều.
- Chỉ có chứng thực một chiều: Client chứng thực với AP mà không có chứng
thực tính họp pháp của AP với Client
- WEP còn thiếu cơ chế cung cấp và quản lý mã khóa. Khi sử dụng khóa tĩnh,
nhiều người dụng khóa dùng chung trong một thời gian dài. Bằng máy tính xử lý tốc độ cao hiện nay kẻ tấn công cũng có thể bắt những bản tin mã hóa này để giải mã ra mã khóa mã hóa một cách đơn giản. Nếu giả sử một máy tính trong mạng bị mất hoặc bị đánh cắp sẽ dẫn đến nguy cơ lộ khóa dùng chung đó mà các máy khác cũng đang dùng. Hơn nữa, việc dùng chung khóa, thì nguy cơ lưu lượng thông tin bị tấn công nghe trộm sẽ cao hơn.
4.4.2. Bảo mật bằng WPA/WPA2.
Tổ chức Liên minh các nhà sản xuất lớn về thiết bị wifi – Wifi Alliance, được thành lập để giúp đảm bảo tính tương thích giữa các sản phẩm wifi của các hãng khác nhau. Nhằm cải thiện mức độ an toàn về mặt thông tin trong mạng 802.11 mà không cần yêu cầu nâng cấp phần cứng, Wifi Alliance thông qua TKIP như một
tiêu chuẩn bảo mật cần thiết khi triển khai mạng lưới được cấp chứng nhận Wifi. Kiểu bảo mật này được gọi với tên là WPA. WPA ra đời trước khi chuẩn IEEE 802.11i – 2004 được chính thức thông qua. Nó bao gồm việc quản lý khóa và quá trình xác thực.
Tiếp sau đó, WPA2 được đưa ra, như một tiêu chuẩn bảo mật bám sát hơn theo chuẩn 802.11i của IEEE. Điểm khác biệt lớn nhất giữa WPA và WPA2 là thay vì sử dụng AES để đảm bảo tính bảo mật và toàn vẹn dữ liệu thì WPA dùng TKIP cho việc mã hóa và thuật toán Michael cho việc xác thực trên từng gói dữ liệu. Mỗi phiên bản của WPA đều được chia thành hai loại: Personal dành cho hộ gia đình và văn phòng quy mô nhỏ, Enterprise dành cho doanh nghiệp lớn có cơ sở hạ tầng mạng đầy đủ. Điểm khác biệt duy nhất đáng kể giữa hai loại này là ở hình thức có được khóa PMK. Với Personal, khóa PMK sinh ra từ khóa tĩnh được nhập vào thủ công trên AP và các STA. Rõ ràng cách làm này là không khả thi đối với các mạng lưới có quy mô lớn. Do đó trong Enterprise, khóa PMK nhận được từ quá trình xác thực IEEE 802.1X/EAP. Việc cấp phát khóa này là hoàn toàn tự động và tương đối an toàn. Sau khi đã xác thực lẫn nhau rồi, STA và máy chủ xác thực xây dựng khóa PMK dựa trên các thông tin đã biết. Khóa này là giống nhau trên cả STA và máy chủ xác thực. Máy chủ xác thực sẽ tiến hành sao chép một bản khóa PMK này rồi gửi về cho AP. Lúc này, cả AP và STA đều đã nhận được khóa PMK phù hợp. Trong thực tế, máy chủ xác thực thường được sử dụng là máy chủ RADIUS.
So sánh giữa WEP, WPA và WPA2
WEP WPA WPA2
Là thành phần tùy chọn trong chuẩn IEE802.11
Tiêu chuẩn an ninh của
Wifi Alliance đặt ra Tương tự WPA
Khóa WEP được cấu hình thủ công trên AP và STA
Khuyến nghị nên sử dụng xác thực 802.1X/EAP để nhận khóa tự động. Có hổ
trợ cái đặt khóa thủ công như WEP
Tương tự WPA
Sử dụng mã hóa dòng Tương tự WEP
Sử dụng mã hóa khối có sử dụng mã hóa
dòng TKIP Mã hóa trên từng gói tin
dựa vào việc thay đổi giá
Sử dụng phương pháp mã
trị IV, giá trị này được kết hợp trực tiếp với PMK tạo
thành khóa
trình tạo khóa có thông qua khóa trung gian PTK Độ dài khóa nhỏ 64 bit
hay 128 bit
Độ dài khóa lớn kết hợp nhiều thành phần thông
tin để sinh khóa
Tương tự WPA Sử dụng thuất toán CRC
để kiểm tra tính toàn vẹn nên mức độ bảo mật thấp
Sử dụng thuật toán Michael để tính toán ra mã MIC. Có độ tin cậy
hơn CRC
Sử dụng CCMP/AES tính toán mã MIC. Có độ tin cậy cao nhất Không có khả năng xác
thực hai chiều
Hổ trợ xác thực hai chiều,
sử dụng IEE 802.1X/EAP Tương tự WPA
Phương pháp đơn giản không yêu cầu năng lực
cao về phần cứng
Tương đối phức tạp hơn WEP nhưng cũng không yêu cao về phần cứng
Phức tạp yêu cầu cao về năng lực xử lý
phần cứng Thích hợp với mạng qui
mô nhỏ
Phù hợp với mạng quy mô nhỏ và trung bình
Phù hợp mạng lớn như doanh nghiệp
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 firmware 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. Việc lựa chọn tiêu chuẩn an ninh nào là hoàn toàn phụ thuộc vào sự cân bằng giữa tiềm lực tài chính và mức độ an toàn thông tin cần đảm bảo.
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ã dòng RC4 trong WEP. TKIP dùng hàm băm(hashing) 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 ) để đảm bảo tính chính xác của gói tin. TKIP sử dụng khóa động bằng cách đặt cho mỗi frame một chuỗi số riêng để chống lại dạng tấn công giả mạo.
4.4.5. Bảo mật bằng AES
Là một chức năng mã hóa được phê chuẩn bởi NIST (Nation Instutute of Standard and Technology). IEEE đã thiết kế một chế độ cho AES để đáp ứng nhu cầu của mạng WLAN. Chế độ này được gọi là CBC-CTR(Cipher Block Chaining Counter Mode) với CBC-MAC(Cipher Block Chaining Message Authenticity Check). Tổ hợp của chúng được gọi là AES-CCM . Chế độ CCM là sự kết hợp của mã hóa CBC-CTR và thuật toán xác thực thông điệp CBC-MAC. Sự kết hợp này cung cấp cả việc mã hóa cũng như kiểm tra tính toàn vẹn của dữ liệu gửi
Mã hóa CBC-CTR sử dụng một biến đếm để bổ sung cho chuỗi khóa. Biến đếm sẽ tăng lên 1 sao khi mã hóa cho mỗi khối(block). Tiến trình này đảm bảo chỉ có duy nhất một khóa cho mỗi khối. Chuỗi ký tự chưa được mã hóa sẽ được phân mảnh ra