Chứng thực hệ thống mở là một hình thức rất cơ bản của chứng thực, nó gồm một yêu cầu chứng thực đơn giản chứa ID trạm và một đáp lại chứng thực gồm
thành công hoặc thất bại. Khi thành công, cả hai trạm được xem như được xác nhận với nhau.
Hình 2.1: Chứng thực hệ thống mở 2.3. Xác thực qua khoá chia sẻ (Shared-key Authentication)
Là kiểu xác thực cho phép kiểm tra xem một khách hàng không dây đang được xác thực có biết về bí mật chung khơng. Điều này tương tự với khố xác thực
dùng chung trong “bảo mật IP” (IPSec). Chuẩn 802.11 hiện nay giả thiết rằng “khoá chung” được phân phối đến các tất cả các khách hàng đầu cuối thông qua một kênh bảo mật riêng, độc lập với tất cả các kênh khác của IEEE 802.11. Tuy nhiên,
hRnh thức xác thực qua “khố chung” nói chung là khơng an tồn và khơng được
Chứng thực khóa chia sẻ được xác nhận trên cơ sở cả hai trạm tham gia trong quá trình chứng thực có cùng khóa “chia sẻ”. Ta giả thiết rằng khóa này đã được
truyền tới cả hai trạm suốt kênh bảo mật nào đó trong mơi trường không dây. Trong các thi hành tiêu biểu, chứng thực này được thiết lập thủ công trên trạm khách hàng và AP. Các khung thứ nhất và thứ tư của chứng thực khóa chia sẻ tương tự như các khung có trong chứng thực hệ thống mở. Cịn các khung thứ hai và khung thứ ba khác nhau, trạm xác nhận nhận một gói văn bản yêu cầu (được tạo ra khi sử dụng bộ tạo số giả ngẫu nhiên giải thuật WEP (PRNG)) từ AP, mật mã hóa nó sử dụng khóa chia sẻ, và gửi nó trở lại cho AP. Sau khi giải mã, nếu văn bản yêu cầu phù hợp, thì chứng thực một chiều thành cơng. Để chứng thực hai phía, q trình trên được lặp
lại ở phía đối diện. Cơ sở này làm cho hầu hết các tấn công vào mạng WLAN chuẩn IEEE 802.11b chỉ cần dựa vào việc bắt dạng mật mã hóa của một đáp ứng biết
trước, nên dạng chứng thực này là một lựa chọn kém hiệu quả. Nó cho phép các hacker lấy thông tin để đánh đổ mật mã hóa WEP và đó cũng là lý do tại sao chứng thực khóa chia sẻ khơng bao giờ khuyến nghị.
Sử dụng chứng thực mở là một phương pháp bảo vệ dữ liệu tốt hơn, vì nó cho phép chứng thực mà khơng có khóa WEP đúng. Bảo mật giới hạn vẫn được duy trì vì trạm sẽ khơng thể phát hoặc nhận dữ liệu chính xác với một khóa WEP sai.
2.3.1. Wired Equivalent Privacy (WEP)
WEP là một thuật toán đơn giản, sử dụng bộ phát chuỗi mã ngẫu nhiên
PRNG (Pseudo Random Number Generator) và dòng mã RC4. Trong vài năm, thuật tốn này được bảo mật và khơng sẵn có, tháng 9 năm 1994, một vài người đã
đưa mã nguồn của nó lên mạng. Mặc dù bây giờ mã nguồn có sẵn, nhưng RC4 vẫn được đăng ký bởi RSADSI. Chuỗi mã RC4 mã hóa và giải mã rất nhanh, nó rất dễ
thực hiện, và đủ đơn giản để các nhà phát triển phần mềm có thể dùng nó để mã hóa các phần mềm của mình.
WEP sử dụng một khố mã hố khơng thay đổi có độ dài 64 bit hoặc 128 bit, (nhưng trừ đi 24 bit sử dụng cho vector khởi tạo khố mã hố, nên độ dài khố chỉ cịn 40 bit hoặc 104 bit) được sử dụng để xác thực các thiết bị được phép truy cập vào trong mạng và cũng được sử dụng để mã hoá truyền dữ liệu.
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 WEPCrack sẽ cho phép hacker có thể phá vỡ khố mã hố 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 khố mã hố 128 bit cũng không khá hơn: 24 bit cho khởi tạo mã hố nên chỉ có 104 bit được sử dụng để mã hoá, và cách thức cũng giống như mã hố có độ dài 64 bit nên mã hố 128 bit cũng dễ dàng bị bẻ khố. Ngồi ra, những điểm yếu trong những vector khởi tạo khoá mã hố 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.
Để hiểu rõ hơn hoạt động của WEP, chúng ta bắt đầu xem xét stream ciphers
(dịng mã hóa), nhận xét hoạt động của nó, đồng thời so sánh với các block-ciphers (khối mã hóa).
Stream ciphers và Block-ciphers
Stream ciphers mã hóa dữ liệu được sinh ra bằng một key stream từ khóa kết
hợp với phép toán XOR dựa vào key-stream và dữ diệu dạng thơ. Key stream có độ
truyền đi sẽ được mã hóa bằng thuật tốn XOR với Key-stream để ra chuỗi đã được mã hóa.
Hình 2.3:Sơ đồ q trình mã hóa WEP
Hình 2.4: Sơ đồ q trình giải mã WEP
Block ciphers giao thiệp với dữ liệu trong các khối xác định, có thể là các
frame ở mọi kích thước. Block ciphers sẽ chia frame đó ra thành nhiều frame nhỏ
hơn với kích thước được xác định trước và sau đó thực thi phép XOR ở mỗi block. Mỗi block cần được xác định kích thước trước, và phần cịn dư sẽ được đưa vào
block có kích thước phù hợp. Chẳng hạn như một block-cipher lớn được chia thành
Điểm yếu của thuật toán này là : các kết quả được mã hóa sẽ giống nhau với
cùng 1 dữ liệu vào. Do đó, kẻ tấn cơng có thể thu thập tất cả các gói tin và xây dựng
một từ điển mã hóa. Vì thế, cách mã hóa này cũng khơng an tồn.
Để vượt qua vấn đề này, các nhà nghiên cứu đề xuất 2 cách sau:
+ Initialization Vectors + Feedback modes
Initialization Vectors
Initialization Vectors (IV) được dùng để đổi key-stream. IV là một giá trị số
được dựa theo khóa cơ sở trước khi key stream được thực thi. Mỗi khi IV thay đổi thì key-stream sẽ thay đổi theo.
Gốc của IV là 24 bit, sau này tăng lên đến 40, 64, 104, 128 bit WEP key. Cách IV gửi header ở dạng nguyên mẫu, vì thế trạm thu biết được giá trị IV và giải mã frame. Mặc dù số bit mã hóa có thể tăng lên nhưng nó vẫn khơng an tồn.
Feedback Modes
Chế độ feedback điều chỉnh lại tiến trình mã hóa để ngăn chặn việc hai dữ liệu giống nhau có kết quả mã hóa như nhau. Feedback mode thường được dùng với block ciphers, nó sẽ sinh ra một chuỗi dài block ciphers.
Chứng thực bằng WEP
Phương thức chứng thực của WEP cũng phải qua các bước trao đổi giữa
Hình 2.5: Mơ tả quá trình chứng 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 tố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 tố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
2.3.2. WPA (Wi-Fi Protected Access)
WEP được xây dựng để bảo vệ một mạng không dây tránh bị nghe trộm.
Nhưng nhanh chóng sau đó người ta phát hiện ra nhiều lổ hỏng ở cơng nghệ này.
Do đó, cơng nghệ mới có tên gọi WPA (Wi-Fi Protected Access) ra đời, khắc phục
được nhiều nhược điểm của WEP.
như WEP nhưng mã hoá đầy đủ 128 bit. Và một đặc điểm khác là WPA thay đổi
khố cho mỗi gói tin. Các công cụ thu thập các gói tin để phá khố mã hố đều
khơng thể thực hiện được với WPA. Bởi WPA thay đổi khoá liên tục nên hacker
không bao giờ thu thập đủ dữ liệu mẫu để tìm ra mật khẩu. Khơng những thế, WPA còn bao gồm kiểm tra tính tồn vẹn của thơng tin (Message Integrity Check). Vì vậy, dữ liệu không thể bị thay đổi trong khi đang ở trên đường truyền. Một trong
những điểm hấp dẫn nhất của WPA là không yêu cầu nâng cấp phần cứng. Các
nâng cấp miễn phí về phần mềm cho hầu hết các Card mạng và điểm truy cập sử dụng WPA rất dễ dàng và có sẵn.
WPA có sẵn 2 lựa chọn: WPA Personal và WPA Enterprise. Cả 2 lựa chọn này đều sử dụng giao thức TKIP và sự khác biệt chỉ là khoá khởi tạo mã hoá lúc đầu. WPA Personal thích hợp cho gia đình và mạng văn phịng nhỏ, khoá khởi tạo
sẽ được sử dụng tại các điểm truy cập và thiết bị máy trạm. Trong khi đó, WPA cho doanh nghiệp cần một máy chủ xác thực và 802.1x để cung cấp các khoá khởi tạo cho mỗi phiên làm việc.
Trong khi Wi-Fi Alliance đã đưa ra WPA, và được coi là loại trừ mọi lổ
hổng dễ bị tấn công của WEP nhưng người sử dụng vẫn không thực sự tin tưởng vào WPA. Có một lỗ hổng trong WPA và lỗi này chỉ xảy ra với WPA Personal. Khi mà hàm thay đổi khoá TKIP được sử dụng để tạo ra các khoá mã hoá bị phát hiện, nếu hacker có thể đốn được khố khởi tạo hoặc một phần của mật khẩu, họ có thể xác định được tồn bộ mật khẩu, do đó có thể giải mã được dữ liệu. Tuy nhiên, lỗ hổng này cũng sẽ bị loại bỏ bằng cách sử dụng những khoá khởi tạo khơng dễ đốn.
Điều này cũng có nghĩa rằng kỹ thuật TKIP của WPA chỉ là giải pháp tạm thời,
chưa cung cấp một phương thức bảo mật cao nhất.
WPA chỉ thích hợp với những cơng ty mà khơng khơng truyền dữ liệu "mật" về thương mại, hay các thông tin nhạy cảm... WPA cũng thích hợp với những hoạt
2.3.3. WPA2 (WPA-PSK)
Một giải pháp về lâu dài là sử dụng 802.11i tương đương với WPA2, được chứng nhận bởi Wi-Fi Alliance. Chuẩn này sử dụng thuật toán mã hoá mạnh mẽ và
được gọi là Chuẩn mã hoá nâng cao AES. AES sử dụng thuật toán mã hoá đối xứng
theo khối Rijndael, sử dụng khối mã hoá 128 bit, và 192 bit hoặc 256 bit. Để đánh giá chuẩn mã hoá này, Viện nghiên cứu quốc gia về Chuẩn và Công nghệ của Mỹ, NIST (National Institute of Standards and Technology), đã thơng qua thuật tốn mã
đối xứng này.
Và chuẩn mã hoá này được sử dụng cho các cơ quan chính phủ Mỹ để bảo vệ các thông tin nhạy cảm.
-AES làm việc với từng khối dữ liệu 4×4 byte: Q trình mã hóa bao gồm 4 bước:
AddRoundKey: mỗi byte của khối được kết hợp với khóa con, các khóa con này được tạo ra từ q trình tạo khóa con Rijndael.
SubBytes: đây là phép thế (phi tuyến) trong đó mỗi byte sẽ được thế bằng một byte
khác theo bảng tra (Rijndael S-box).
ShiftRows: đổi chỗ, các hàng trong khối được dịch vịng.
MixColumns: q trình trộn làm việc theo các cột trong khối theo một phép biến
đổi tuyến tính.
Bước AddRoundKey
Tại bước này, khóa con được kết hợp với các khối. Khóa con trong mỗi chu
trình được tạo ra từ khóa chính với 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
Hình 2.6: Bước AddRoundKey
Trong bước AddRoundKey, mỗi byte được kết hợp với một byte trong khóa
con của chu trình sử dụng phép tốn XOR (⊕).
Bước SubBytes
Các byte được thế thông qua bảng tra S-box. Đây chính là quá trình phi
tuyến của thuật toán. Hộp S-box này được tạo ra từ một phép nghịch đảo trong
trường hữu hạn GF (28) có tính chất phi tuyến. Để chống lại các tấn cơng dựa trên các đặc tính đại số, hộp S-box này được tạo nên bằng cách kết hợp phép nghịch đảo với một phép biến đổi affine khả nghịch. Hộp S-box này cũng được chọn để tránh các điểm bất động (fixed point).
Hình 2.7: Bước SubBytes
Trong bước SubBytes, mỗi byte được thay thế bằng một byte theo bảng tra, S; bij = S(aij).
Bước ShiftRows
Các hàng được dịch vòng một số vị trí nhất định. Đối với AES, 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ự, các
hàng thứ 3 và 4 được dịch 2 và 3 vị trí. Do vậy, mỗi cột khối đầu ra của bước này sẽ bao gồm các byte ở đủ 4 cột khối đầu vào. Đối với Rijndael với độ dài khối khác nhau thì số vị trí dịch chuyển cũng khác nhau.
Hình 2.8: Bước ShiftRows
Trong bước ShiftRows, các byte trong mỗi hàng được dịch vòng trái. Số vị
trí dịch chuyển tùy thuộc từng hàng.
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 một khối 4 byte ở đầu ra với tính chất là mỗi byte ở đầu vào đều ảnh hưởng tới cả 4 byte đầu ra. Cùng với bước ShiftRows, MixColumns đã tạo ra tính chất khuyếch tán cho thuật toán. Mỗi cột được xem như một đa thức trong trường hữu hạn và được nhân với đa thức c(x) = 3x3 + x2 + x + 2 (modulo x4 + 1). Vì thế, bước này có thể được xem là phép nhânma trận trong
trường hữu hạn
Hình 2.9: Bước MixColumns
Trong bước MixColumns, mỗi cột được nhân với một hệ số cố định c(x). Tại chu trình cuối thì bước MixColumns được thay thế bằng bước AddRoundKey
2.4. Filtering
Filtering (lọc) là một cơ chế bảo mật cơ bản có thể được sử dụng cùng với WEP và AES. Filtering có nghĩa là giữ lại những cái không mong muốn và cho phép những cái mong muốn. Filtering hoạt động tương tự như Access List trên
Router : bằng cách định nghĩa các tham số mà client phải tuân theo để có thể truy cập vào mạng. Có 3 kiểu filtering cơ bản có thể được sử dụng trong WLAN :
• SSID filtering
• MAC address filtering
2.4.1.SSID Filtering
SSID filtering là một phương thức cơ bản của filtering, và chỉ nên được sử dụng cho việc điều khiển truy cập cơ bản. SSID (Service Set Identifier) chỉ là
một thuật ngữ khác để gọi tên mạng. SSID của client phải khớp với SSID trên AP (trong mạng infrastructure) hay các client khác (trong mạng Ad-hoc) để có thể xác thực và kết nối với Service Set. Bởi vì SSID được quảng bá mà khơng được mã hóa trong các Beacon nên rất dễ phát hiện giá trị SSID bằng cách sử dụng sniffer. Nhiều AP có khả năng không phát SSID trong các Beacon. Trong trường hợp này, client phải có cùng giá trị SSID để có thể kết nối với AP. Khi một hệ thống được cấu hình theo cách này, nó được gọi là một hệ thống đóng. SSID filtering khơng được xem như là một phương thức tin cậy để ngăn chặn các người dùng không được quyền
truy cập vào mạng. Một số sai lầm mà người sử dụng WLAN mắc phải trong việc quản lý SSID gồm :
• Sử dụng giá trị SSID mặc định: Thiết lập này tạo điều kiện thuận lợi
cho hacker dị tìm địa chỉ MAC của AP. Rất đơn giản cho một hacker khi sử dụng sniffer để biết được địa chỉ MAC address của AP, sau đó nhìn vào phần OUI (3 bytes đầu) của MAC address để biết được nhà sản xuất (bằng cách tra bảng OUI được cung cấp hởi IEEE). Bảng OUI liệt kê các giá trị OUI khác nhau được gán cho các nhà sản xuất. Chúng ta có thể sử dụng NetStumbler
để thực hiện các thao tác này một cách tự động. Mỗi nhà sản xuất thiết bị đều
sử dụng giá trị SSID mặc định của riêng họ, việc có được giá trị này là hồn tồn dễ dàng, chúng đều nằm trên website của nhà sản xuất. Vì thế, thay đổi