2.2.4. Hạn chế của WPA
Bên cạnh những ƣu điểm mà WPA đã khắc phục đƣợc các lỗ hổng bảo mật trƣớc đó của WEP thì cũng cịn một số hạn chế sau:
Nếu khơng sử dụng WPA–PSK thì các thiết lập phức tạp là cần thiết do đó khơng phù hợp với các mạng sử dụng trong hộ gia đình. Do WPA-PSK là một phiên bản yếu của WPA gặp vấn đề về việc quản lý mật khẩu (password) hoặc bí mật đƣợc chia sẻ giữa nhiều ngƣời dùng. Vế mặt kĩ thuật, WPA-PSK làm việc trên từng máy
Nhƣng các khóa này có nguồn gốc giữa máy khách và điểm truy cập nên sẽ dễ dàng bị giải mã hơn. Do vậy khi một ngƣời trong nhóm (trong cơng ty) rời nhóm, một mật khẩu hoặc thơng tin bí mật mới cần phải đƣợc thiết lập.
Firmwware cũ thƣờng không đƣợc nâng cấp để hỗ trợ cho WPA.
Một số phần cứng của mạng không dây không hỗ trợ cho WPA trong khi WEP thì có.
Windows 2000 và các phiên bản trƣớc đó khơng tích hợp hỗ trợ cho WPA
Chi phí thực hiện lớn hơn WEP.
Do TKIP vẫn sử dụng một số yếu tố có trong WEP nên một số lỗ hổng bảo mật trong WEP vẫn còn tồn tại trong WPA.
WPA cũng giống nhƣ WEP, cũng phải trải qua các cuộc trình diễn cơng khai để cho thấy những yếu điểm của mình trƣớc một cuộc tấn cơng. Phƣơng pháp qua mặt WPA không phải bằng cách tấn công trực tiếp vào thuật tốn của nó mà là vào một hệ thống bổ trợ có tên là Wifi Protected Setup (WPS), đƣợc thiết kế để có thể dễ dàng kết nối thiết bị tới các điểm truy cập.
Tuy nhiên trên thực tế WPA là một giao thức bảo mật khá tốt và rất khó để thực hiện các cuộc tấn cơng trên WPA.
2.3. Giao thức WPA2
Giữa năm 2004, chuẩn WPA thế hệ thứ hai là WPA2 ra đời có khả năng bảo mật cao hơn với chuẩn bảo mật IEEE 802.11i. Đến năm 2006, WPA chính thức bị thay thế bởi WPA2. Một trong những cải tiến đáng chú ý nhất của WPA2 so với WPA là sử dụng thuật tốn mã hóa AES (Advanced Encryption Standard) hay tiêu chuẩn mã hóa tiên tiến và CCMP (Counter Cipher Mode with Block Chaining Message Authentication Code Protocol) nhằm thay thế cho TKIP. Tuy vậy, TKIP vẫn có mặt trong WPA2 để làm phƣơng án dự phịng và duy trì khả năng tƣơng tác với WPA. WPA2 cũng sử dụng phƣơng pháp chứng thực giống nhƣ WPA. Ta cũng có hai lựa chọn cho WPA2 đó là:
WPA2 – Personal hay Pre-Shared Key (PSK): thích hợp với hầu hết các mạng gia đình, qn cà phê, văn phịng nhỏ…. Ta có thể định nghĩa mật khẩu
mã hóa trên Router khơng dây và các điểm truy cập (AP) khác. Sau đó, mật khẩu phải đƣợc nhập vào bởi ngƣời dùng khi kết nối với mạng Wifi. Mặc dù chế độ này rất dễ triển khai nhƣng nó khơng đảm bảo an tồn tuyệt đối cho các mạng doanh nghiệp. Mật khẩu mã hóa đƣợc lƣu trên các máy tính nên ai cũng có thể xem đƣợc và khơi phục mật khẩu và sẽ gặp nhiều phiền toái khi muốn thay đổi mật khẩu vì phải thay đổi trên tất cả các điểm truy cập và máy tính.
WPA2 – Enterprise (EAP/RADIUS): chế độ này cung cấp khả năng bảo mật cần thiết cho các mạng không dây trong môi trƣờng doanh nghiệp. Mặc dù phức tạp trong thiết lập, nhƣng chế độ bảo mật này cung cấp khả năng điều khiển tập trung và có thể triển khai các chính sách riêng biệt cho từng ngƣời dùng. Thông tin đăng nhập của ngƣời dùng có thể đƣợc thay đổi hoặc thu hồi bởi các quản trị mạng. Ngƣời dùng không cần quan tâm đến các khóa mã hóa thực sự. Chúng đƣợc tạo một cách an toàn và đƣợc gán trên mỗi phiên (session) ngƣời dùng trong chế độ nền sau khi ngƣời dùng nhập vào mật khẩu đăng nhập của họ. Điều này sẽ tránh đƣợc việc ai đó có thể khơi phục lại mật khẩu từ các máy tính. Phƣơng pháp xác định các thông tin ngƣời dùng (và máy chủ) trên các mạng WPA/WPA2-Enterprise đƣợc định nghĩa theo chuẩn IEEE 802.1x. Cách thức này yêu cầu một máy chủ ngoài, đƣợc gọi là máy chủ Remote Authentication Dial In User Service (RADIUS).
2.3.1. Phương thức mã hóa AES – CCMP
Mã hóa TKIP, nhận thực 802.1X/EAP và PSK trong WPA đều đƣợc đƣa vào để phát triển lên WPA2. Thêm vào đó, WPA2 cung cấp thêm một phƣơng thức mã hóa mới là AES (Advanced Encryption Standard). AES sử dụng thuật tốn mật mã tốn học, có thể đƣợc triển khai với nhiều kích thƣớc khóa khác nhau nhƣ 128 bit, 192 bit hoặc 256 bit. Có thể nói WPA2 là chuẩn mã hóa an tồn nhất hiện nay.
2.3.1.1. Thuật tốn mã hóa AES
AES là thuật tốn mã hóa khối. Sử dụng các biểu thức logic và toán học, thuật toán này kết hợp khóa với khối dữ liệu 128 bit (khơng mã hóa) để tạo ra một khối dữ liệu 128 bit mới (đã mã hóa). AES đƣợc phát triển dựa trên thuật toán Rijndeal cho phép lựa chọn kích thƣớc của khóa và của khối dữ liệu
độ dài tiêu chuẩn cho cả khóa và khối dữ liệu là 128 bit. Điều này giúp đơn giản hóa việc thực hiện tính tốn và cài đặt. Mỗi khối dữ liệu đầu vào 128 bit đƣợc chia thành 16 byte (mỗi byte 8 bit), có thể xếp thành 4 cột, mỗi cột 4 phần tử hay là một ma trận 4x4 của các byte, nó đƣợc gọi là ma trận trạng thái, hay gọi tắt là trạng thái (state). Trong q trình thực hiện thuật tốn các toán tử tác động để biến đổi ma trận trạng thái này.
Phƣơng thức hoạt động:
Chỉ có thể sử dụng AES để mã hóa 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. Ví dụ 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 từ 512 đến 12 000 bit mỗi khung. Vì thế để sử dụng thuật tốn mã hóa 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 thông điệp ngắn có độ dài cố định trƣớc khi mã hóa. Phƣơng thức này cũng có thể ghép lại các khối dữ liệu rời rạc thành một 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à phƣơng thức thực hiện mã hóa khối.
Có một vài phƣơng thức 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 phƣơng thức này cũng rất quan trọng cho việc bảo mật. Một phƣơng thức ko tốt sẽ gây ra những lỗ hổng bảo mật rất nguy hiểm ngay cả khi thuật tốn mã hóa AES là mạnh. Ta sẽ tìm hiểu một vài phƣơng thức sau:
Số kí hiệu điện tử: (Electronic Code Book - ECB):
phƣơng thức ECB sẽ tạo ra các khối dữ liệu từ một thông điệp đầu vào và mã hóa tuần tự các khối này bằng cách sử dụng cùng một khóa cho đến khi mã hóa hết tất cả các khối này. Hình dƣới đây thể hiện việc mã hóa nối tiếp và song song.
Hình 2.12 Phương thức mã hóa ECB
Cách tiếp cận này có vẻ đơn giản nhƣng gây ra một số 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 đó sẽ phải thêm vào phần cuối của mỗi khối và ghi nhớ độ dài thực tế. Ngoài ra nếu hai khối có dữ liệu giống nhau, sau khi mã hóa sẽ cho hai kết quả giống nhau và đƣa ra thông tin này cho ngƣời xem.
Phƣơng thức đếm (Counter Mode):
Phƣơng thức đế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 tốn mã hóa khối AES để mã hóa dữ liệu. Thay vào đó, nó mã hóa một giá trị tùy ý đƣợc gọi là “counter” và XOR kết quả này với dữ liệu để tạo ra bản mã hóa. Mỗi khối đƣợc mã hóa thành cơng thì giá trị “counter” sẽ tăng lên 1.
Do giá trị “counter” đã đƣợc thay đổi sau mỗi lần mã hóa nên tránh đƣợc sự trùng lặp của ECB. Đây là phƣơng thức đƣợ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, phƣơng thức này chỉ thực hiện mã hóa 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 mạng bảo mật mạnh RSN (Robus Security Network).
Hình 2.13 Ví dụ về phương thức đếm
Q trình mã hóa:
Mã hóa AES sử dụng dữ liệu đầu vào là khóa và bản rõ dƣới dạng hệ Hexadecimal, vì thế bản rõ và khóa trƣớc khi mã hóa phải đƣợc chuyển đổi từ hệ ASCII sang hệ Hexadecimal.
Các bƣớc mã hóa nhƣ sau: 1. Khởi động vịng lặp
1. AddRoundKey: khóa con đƣợc kết hợp với các khối. Khóa con
trong mỗi vịng lặp đƣợc tạo ra từ khóa chính theo q trình tạo khóa con Rijndael, mỗi khóa con có độ dài giống nhƣ các khối. Quá trình kết hợp đƣợc thực hiện bằng cách XOR từng bít của khóa con với khối dữ liệu.
2. Vòng lặp
1. SubBytes: là phép thế (phi tuyến) trong đó mỗi byte trong trạng
2. ShiftRows: là bƣớc dịch chuyển, các hàng trong trạng thái đƣợc
dịch vòng theo số bƣớc khác nhau. Trong đó hàng đầu đƣợc giữ nguyên, mỗi byte của hàng thứ 2 đƣợc dịch trái một vị trí. Tƣơng tự hàng thứ 3 và thứ 4 đƣợc dịch trái 2 và 3 vị trí.
3. MixColumns: là quá trình trộn. Bốn byte trong từng cột đƣợc kết
hợp lại theo một phép biến đổi tuyến tính khả nghịch. Mỗi khối 4 byte đầu vào sẽ cho ra một khối 4 byte với tính chất là mỗi byte ở đầu vào đều ảnh hƣởng tới cả 4 byte đầu ra.
4. AddRoundKey
3. Vòng lặp cuối 1. SubBytes
2. ShiftRows
3. AddRoundKey
Tại chu trình cuối bƣớc MixComumns khơng đƣợc thực hiện. Bảng Rijndael S-box:
2.3.1.2. Giao thức CCMP(Counter Mode – CBC MAC Protocol)
CCMP là giao thức đƣợc sử dụng trong IEEE 802.11. Giao thức CCMP dựa trên thuật tốn mã hóa AES, sử dụng phƣơng thức Couter Mode với CBC – MAC (CCM).
Phƣơng thức 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… CCM sử dụng phƣơng thức đếm kết hợp với một phƣơng thức xác thực dữ liệu là CBC (Cipher Block Chaining). CBC đƣợc sử dụng để tạo ra mã chứng thực gói tin MIC, vì thế đƣợc gọi là CBC - MAC (gọi MIC để tránh việc nhầm với địa chỉ MAC). Phƣơng thức này thực hiện nhƣ sau:
- Mã hóa khối đầu tiên của thơng điệp bằng AES (hoặc bất kỳ thuật tốn mã hóa khối nào).
- XOR kết quả với khối thứ hai rồi tiếp tục mã hóa kết quả.
- Tiếp tục XOR kết quả trƣớc với khối thứ tiếp theo, lặp lại quá trình này cho đến khi tồn bộ dữ liệu đƣợc mã hóa hết.
Kết quả cuối cùng sẽ là một khối duy nhất.
CBC – MAC rất đơn giản nhƣng không thực hiện đƣợc theo kiểu song song, việc mã hóa phải thực hiện tuần tự. Thêm vào đó nó chỉ có thể sử dụng đối với dữ liệu có số khối chính xác. CCM sử dụng cả hai kỹ thuật là Counter Mode và CBC – MAC. Nó thêm vào những đặc điểm rất hữu ích cho các ứng dụng nhƣ mạng bảo mật mạnh RSN (Robus Security Network). Các đặc điểm đó là:
- Tạo ra số nonce nên các dữ liệu là hoàn toàn khác nhau. - Việc mã hóa và chứng thực chỉ sử dụng một khóa.
- Mở rộng việc chứng thực đối với dữ liệu khơng đƣợc mã hóa.
Q trình mã hóa và giải mã của CCMP có thể xem nhƣ một q trình xử lý với các đầu vào và đầu ra nhƣ Hình 2.14.
Giai đoạn giải mã có đầu vào tƣơng tự giai đoạn mã hóa, ngoại trừ đầu vào MPDU đã đƣợc mã hóa. Do thơng tin tiêu đề, bao gồm cả tiêu đề CCMP đƣợc truyền mà khơng mã hóa. Đ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ã.
Hình 2.14 Mã hóa và giải mã với CCMP
CCMP mã hóa dữ liệu ở cấp MPDU (MAC Protocol Data Unit) chứ không phải ở MSDU (MAC Service Data Unit). Mỗi một MPDU ứng với một khung truyền và nó là một phần của MSDU do MSDU đƣợc chia ra thành các MPDU. Các bƣớc mã hóa đƣợc thể hiện ở Hình 2.15. Dữ liệu đến 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, địa 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 mới đã đƣợc mã hóa (chỉ mã hóa dữ liệu, khơng mã hóa tiêu đề). Ngồi ra CCMP cịn chèn thêm các trƣờng làm cho MPDU sau khi mã hóa dài hơn 16 byte.
Hình 2.15 Các bước mã hóa dữ liệu
Các bƣớc mã hóa MPDU:
Hình 2.16 Các bước mã hóa MPDU
- B1: ban đầu là một MPDU chƣa đƣợc mã hóa 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 một 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
- B3: Giá trị MIC đƣợc tính tố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ã hóa. Tiêu đề CCMP đƣợc đặt vào trƣớc bản mã hóa.
- 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.
CCMP sử dụng thuật toán AES trong phƣơng thức CBC – MAC để tính tốn giá trị MIC cho MPDU.
Đầu vào của thuật toán là: 1. Bản rõ MPDU
2. Khối khởi tạo (Initial Block) cho MPDU này 3. Khóa tạm thời
Đầu ra của thuật toán là giá trị MIC. Giá trị này đƣợc nối với MPDU trên đƣờng truyền và đƣợc so sánh với một giá trị MIC tại nơi nhận.
Giải mã MPDU:
Khi nhận đƣợc bản mã MPDU, đầu tiên cần khóa cho việc giải mã. Các cặp khóa thích hợp đƣợc lựa chọn dựa trên địa chỉ MAC nguồn trong phần đầu MAC, Ngƣờ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 (Packet Number) khơng đƣợc mã hóa 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ũ. Trƣờng hợp PN khớp với khung mới nhất nhận đƣợc, bƣớc tiếp theo sử dụng AES/Couter Mode. Nó địi hỏi việc tính tố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ã hóa. Tất cả các thơng tin cần thiết đều có trong khung nhận đƣợc.
Q trình giải mã tƣơng tự nhƣ q tình mã hóa. Giá trị kế tiếp của truy nhập đƣợc mã hóa và XOR với MPDU nhận đƣợc để phục hồi dữ liệu và giá trị MIC. Tiếp theo cần xác minh giá trị MIC nhận đƣợc bằng cách tính tốn lại trên cùng một dữ liệu với MPDU gốc. Nếu MIC khớp nghĩa là thơng tin
đƣợc an tồn, nếu MIC khơng khớp có thể thơng tin đã bị tấn công và cần loại bỏ thông tin này.
2.3.2. Hạn chế của WPA2
Hiện tại, lỗ hổng bảo mật chính của hệ thống WPA2 không thực sự lộ rõ. Kẻ tấn cơng phải có quyền truy cập vào mạng WiFi đã đƣợc bảo vệ trƣớc khi có thể có trong tay bộ kí tự, sau đó mới có thể tiến hành tấn cơng các thiết bị khác trong cùng mạng. Nhƣ vậy, các lỗ hổng của WPA2 khá hạn chế và gần nhƣ chỉ gây ảnh hƣởng đến các mạng quy mô lớn nhƣ của tập đoàn. Trong khi