1- Lời mở đầu.
Hiện nay công nghệ mạng ko dây wifi đã khá phổ biến, được nhiều nơi sử dụng vì tính tiện dụng của nó, nhưng bên cạnh đó vấn đề bảo mật cho wifi cũng gây nhức đầu cho ko ít người, nhất là người dùng gia đình & ko chuyên. Bài viết này tôi xin đề cập đến khả năng dò khoá mã hoá WEP (wep key) của wifi và các giải pháp phòng chống.
2- Giới thiệu chung về wifi và WEP.
WIFI – WIreless FIdelity ( thuật ngữ này hiện giờ vẫn còn đang gây tranh cãi vì nó chẳng có nghĩa gì cả) là một bộ giao thức cho thiết bị ko dây dựa trên chuẩn 802.11x bao gồm các Access Point và các thiết bị đầu cuối ko dây như pc card, usb card, wifi PDA… kết nối với nhau. Wifi sử dụng nhiều chuẩn mã hoá khác nhau nhằm bảo vệ tránh sự truy cập trái phép, vì tính đặc thù của kết nối ko dây là ko thể giới hạn về mặt vật lý truy cập đến đường truyền, bất cứ ai trong vùng phủ sóng đều có thể truy cập được, nên mã hoá là điều cần thiết đối với người sử dụng cần sự riêng tư, an toàn. Wifi hiện nay có 3 kiểu mã hoá chính gồm: WEP-Wired Equivalent Privacy , WPA-Wireless Protected Access và WPA2. WEP là kiểu mã hoá ra đời sớm nhất và được hỗ trợ phổ biến nhất bởi các nhà sx thiết bị wifi, đa số thiết bị wifi đều hỗ trợ wep sử dụng khoá mã hoá dài từ 40-128 bits. Gần đây nhiều người đã phát hiện ra điểm yếu trong phương thức mã hoá wep và đã đưa ra rất nhiều công cụ crack. Tuy nhiên cũng ko thể từ bỏ WEP ngay được vì nó đã được sử dụng phổ biến từ lâu, ko phải nhà sx thiết bị nào cũng kịp chuyển sang hỗ trợ các kiểu mã hoá khác với các thiết bị mà họ đã sx Vậy điểm yếu của WEP là ở đâu ? Do wep sử dụng phương thức mã hoá dòng (stream cipher), nó cần 1 cơ chế đảm bảo hai gói tin-packet giống nhau sau khi được mã hoá sẽ cho ra kết quả ko giống nhau nhằm tránh sự suy đoán của hacker. Nhằm đạt mục tiêu trên, một giá trị có tên IV (Initialization Vector) được sử dụng để cộng thêm với khoá của ta đưa vào, tạo ra khoá khác nhau sau mỗi lần mã hoá dữ liệu. IV là giá trị có độ dài 24 bit được thay đổi ngẫu nhiên theo từng gói dữ liệu, vì vậy thực tế wep key chúng ta được chỉ định chỉ còn 40bits với kiểu mã hoá 64bits và 104bit với kiểu 128bit trong các AP(access point), vì 24bit được dành cho việc tạo các IV này(các bạn thử để ý xem, khi nhập mật mã trong AP nếu chọn mã hoá 64bit ta chỉ có thể nhập được 5 ký tự nếu chọn mật mã kiểu string, hay 10 ký tự nếu chọn kiểu hexa, tương đương với 40bit). Do khi thiết bị gửi tạo ra IV 1 cách ngẫu nhiên nên bắt buộc phải được gửi đến thiết bị nhận ở dạng ko mã hoá trong header của gói tin, thiết bị nhận sẽ sử dụng IV & khoá để giải mã phần còn lại của gói dữ liệu. IV chính là điểm yếu trong mô hình mã hoá WEP, vì độ dài của IV là 24bits nên giá trị của IV khoảng hơn 16 triệu trường hợp, nếu cracker bắt giữ đủ 1 số lượng packet nào đó thì hoàn toàn có thể phân tích các IV này để đoán ra khoá-key mà nạn nhân đang sử dụng. Phần tiếp sau đây tôi sẽ mô tả mô hình mạng wifi thử nghiệm và cách thức để dò ra khoá mã.
3- Mô hình thử nghiệm và cách dò.
Mô hình thử nghiệm tôi giả lập là 1 mạng wifi giống thực tế bao gồm 1 AP hiệu DLink DI524 & 1 máy tính có card wifi, được gọi là AP & client “mục tiêu”, sử dụng kiểu mã hóa WEP 64bits với mật khẩu là 1a2b3c4d5e dạng hex (xem hình 1).
Bức ảnh này đẵ được thay đổi kích thước.Bạn nhấn vào đây để xem toàn bộ bức ảnh. Với khích thước thực là 589x440. |
Hình 1: Giao diện Setup của AP thử nghiệm.
Như người ta thường nói: biết người biết ta trăm trận trăm thắng, để crack mạng wifi mục tiêu, đầu tiên ta phải biết rõ mọi thông tin về mục tiêu như chính chủ nhân của nó vậy (tất nhiên chỉ có khóa mã là chưa biết thôi. :-p). Thế những thông tin cần biết là gì ?, đó là :
- SSID hoặc ESSID (Service Set IDentifier -hiểu nôm na là tên nhận diện của mạng, giống như tên workgroup của mạng LAN ngang hàng vậy), ở mô hình thử nghiệm này tôi đặt tên là thunghiem.
- Kênh – channel của mạng, ở đây tôi để là kênh 11.
- Kiểu mã hóa, ở đây là WEP 64 bit.
- Địa chỉ MAC address của AP & MAC card của máy mục tiêu.
Vậy dùng cái gì để thu thập những thông tin này ?. Đó là dùng NetStumbler (xem hình 2) chạy trên windows hoặc Kismet trên linux, netstumbler ko xem được MAC của client mục tiêu nên ta dùng kismet or chương trình airodump trong bộ công cụ aircrack để thu thập.
DDTH Code:: Image
Hình 2: Dùng netstumbler để thu thập thông tin.
Sau khi thu thập đủ thông tin về mục tiêu, ta tiến hành sử dụng bộ aircrack. Aircrack là bộ công cụ nguồn mở chạy trên linux dùng để dò tìm khóa mã WEP/WPA rất mạnh được phát triển bởi Christophe Devine, có rất nhiều công cụ tương tự nhưng aircrack được ưa thích hơn cả vì mạnh & dễ dùng, tuy nhiên nó cũng hỗ trợ khá ít loại chipset wifi. Bộ aircrack có 3 công cụ chính ta sẽ dùng là:
- aireplay dùng để bơm-injection làm phát sinh thêm dữ liệu lưu thông trong mạng mục tiêu, đối với những mạng có quá ít dữ liệu lưu thông mạng ta phải dùng nó để làm giảm thời gian chờ đợi bắt giữ đủ số packet phục vụ cho việc dò tìm khóa. (hình ví dụ 3)
Bức ảnh này đẵ được thay đổi kích thước.Bạn nhấn vào đây để xem toàn bộ bức ảnh. Với khích thước thực là 589x273. |
Hình 3: deauth client, giả dạng ARP & bơm dữ liệu để tăng lưu thông mạng
- airodump dùng để monitor và capture-bắt giữ packet mà AP đã phát ra, lưu lại thành file capture.(hình 4)
Bức ảnh này đẵ được thay đổi kích thước.Bạn nhấn vào đây để xem toàn bộ bức ảnh. Với khích thước thực là 589x178. |
Hình 4: bắt các gói dữ liệu, dưới cột station là địa chỉ MAC của client- aircrack dùng để đọc file capture và dò tìm khóa.(hình 5)
Bức ảnh này đẵ được thay đổi kích thước.Bạn nhấn vào đây để xem toàn bộ bức ảnh. Với khích thước thực là 589x394. |
Hình 5: dò tìm khóa bằng aircrack, chỉ có 1s là ra !!!
Tôi sẽ ko ghi cụ thể các dòng lệnh & tham số ra đây vì ta có thể dùng tham số help –h để biết cú pháp cụ thể. Nhưng đầu tiên ta phải đưa 2 card wifi của chúng ta qua chế độ “monitor mode”, xem help của lệnh ifconfig & iwconfig để biết cách làm.
Vì mạng thử nghiệm của tôi có quá ít lưu thông mạng nên tôi sử dụng aireplay bơm các gói tin tới AP. Đại khái cách hoạt động của aireplay là gửi các gói tin deauthentication đến AP làm cho AP mất kết nối, “đá” client ra khỏi mạng (nhiều người thường dùng cách này để quấy phá mấy quán café wifi), client sẽ phải gởi các yêu cầu ARP request để kết nối lại với AP. Sau đó ta chạy aireplay với tham số khác cùng với đ/c MAC của client đã biết để giả dạng gửi các ARP request này liên tục tới AP, làm cho AP trả lời các yêu cầu này. Trong lúc chạy aireplay, ta chạy airodump để bắt giữ các gói tin trả lời từ AP có chứa IV (lưu ý aireplay & airodump phải chạy trên 2 card khác nhau, ko được cùng 1 card). Sau khi chạy airodump, theo dõi màn hình ta sẽ thấy số IV ở cột #Data sẽ tăng nhanh chóng cùng với sự tăng packet ở cột Beacons nếu ta đã chạy aireplay để bơm dữ liệu.
Tài liệu có nói rằng phải cần bắt khoảng dưới 500 ngàn IV để giải mã khóa 64bit & từ 500 ngàn IV trở lên để giải mã khóa 128bit, thực tế ở đây tôi chỉ cần hơn 300k IV là đã thành công. Khi thấy airodump đã capture được kha khá, ta cứ để nó chạy tiếp và mở 1 cửa sổ console khác và chạy aircrack để đọc các IV từ file mà airodump đã lưu để dò tìm khóa, tiến trình này rất nhanh thường ko mất quá 5s với máy P4 Mobile của tôi. Tổng thời gian để bơm dữ liệu & dò tìm khóa ko quá 1 tiếng, khá ấn tượng phải ko ?!.
Ngoài ra công cụ này còn có thể dò được cả khóa mã hóa bằng WPA, 1 phương thức an toàn và mạnh hơn WEP nhiều. Do thời gian có hạn nên tôi ko trình bày trong bài viết này.
4- Các phương pháp bảo mật cho mạng WiFi.
Phần này tôi sẽ trình bày các cách bảo mật cho mạng wifi, phân tích các mặt ưu nhược của từng cách, từ cách đơn giản đến phức tạp, tuy nhiên ai cũng có thể tự làm được hết. Chúng ta có thể áp dụng riêng lẻ từng cách hay kết hợp nhiều cách lại đều được.
- Tắt access point: khi xài xong or ko có nhu cầu sử dụng mạng nữa thì ta có thể tắt điện nó đi. Cách này nghe có vẻ cực đoan & buồn cười nhưng lại là cách hiệu quả 100%.
- Tắt chế độ SSID Broadcast: đa số các AP đều cho phép ta tắt chế độ này, nó làm cho tiện ích wireless zero config trong winxp or các ct scan wifi như netstumble ko nhìn thấy được mạng của chúng ta. Tuy vậy nó cũng ko ngăn được 1 số ct scan mạnh khác như Kismet…
- Lọc địa chỉ MAC: AP đều có tính năng lọc MAC của các client kết nối vào, có 2 cách lọc là chỉ cho phép và chỉ cấm đ/c MAC nào đó. Cách này vẫn ko ngăn được những cao thủ tìm cách biết được đ/c MAC các client trong mạng của ta & dễ dàng giả dạng chúng thông qua thay đổi đ/c MAC của card mạng wifi.
- Mã hóa: WEP, WPA/WPA2 là những kiểu mã hóa thông dụng trong các AP, nếu AP của bạn chỉ hỗ trợ WEP thì hãy xài key dài nhất có thể (thường là 128bit), nếu có hỗ trợ WPA thì xài key tối thiểu 128bit or 256bit. Đa phần các AP có support WPA đều xài kiểu WPA-PSK (pre-shared key hoặc passphare key), WPA2 mã hóa thì an toàn hơn nữa nhưng phải cần thêm 1 server Radius nhằm mục đích xác thực. Chúng ta nên đặt khóa càng phức tạp càng tốt(bao gồm ký tự hoa thường, số & ký tự đặc biệt kết hợp lại), ko nên dùng những từ có nghĩa hay có trong từ điển, vì cracker vẫn dò được mã khóa WPA khi dùng tự điển dò theo kiểu brute force attack. Dùng cách này sẽ làm giảm tốc độ đường truyền giữa AP & client vì các thiết bị sẽ mất nhiều năng lực để giải/mã hóa kiểu phức tạp này.
- Dùng các kiểu xác thực người dùng, tường lửa, mã hóa dữ liệu trên đĩa & tập tin: các cách này sẽ ko ngăn được người khác dò ra khóa mã hóa wep/wpa. Nhưng nó ngăn họ ko xem cũng như can thiệp vô được những dữ liệu đang lưu thông & tài nguyên trên mạng của chúng ta.
5- Lời kết.
Qua bài viết này, chúng ta thấy 1 cách tương đối tổng quát về vấn đề bảo mật của mạng ko dây hiện nay. Chúng ta ko thể từ bỏ hoàn toàn được WEP vì hiện giờ rất nhiều thiết bị wifi hỗ trợ tốt cho nó. Nó cũng đã bộc lộ khá nhiều điểm yếu dễ bị khai thác. Nhưng cũng ko phải là thảm họa gì nếu chúng ta biết cách sử dụng kết hợp 1 vài cách phòng thủ phù hợp cho mạng wifi của chúng ta.
Với bài viết này tôi muốn giúp mọi người hiểu thêm về bảo mật mạng wifi. Tôi sẽ ko chịu trách nhiệm về bất cứ điều gì xảy ra nếu có ai đó sử dụng những thông tin trong bài này vào mục đích ko tốt khác, cũng như sẽ ko trả lời bất cứ câu hỏi nào liên quan tới dò tìm key.
Các tài liệu tham khảo:
- How to crack WEP key – Humphrey Cheung, tomsnetworking.
- WEP, Dead again ? – Michael Ossmann, security focus.
- Aircrack documentation – Christophe Devine
(Theo VN Informatic)