Chào mừng các bạn đã trở lại với Series KaliTheKey chuyên giới thiệu về hệ điều hành cho dân bảo mật Kali Linux. Sau loạt bài mở đầu lê thê nhàm chán về cách cài và thiết lập ban đầu cho Kali Linux, thì bây giờ đã đến lúc chúng ta đi vào phần phấn khích nhất, đó là cách sử dụng công cụ Fern Wifi Cracker để Hack WiFi nhà lão hàng xóm kibo xin mãi không cho cái pass rồi ^^
Vâng, mình rất xin lỗi phải thông báo đó là chủ đề của bài viết sau 😀
Còn trong bài viết hôm nay mình sẽ giới thiệu sơ lược cho các bạn về Wifi- chuẩn truyền dẫn kết nối Internet phổ biến nhất thế giới hiện nay, và các phương thức khai thác lỗ hổng bảo mật của nó.
Đừng vội chán vì lại phải đọc mớ lí thuyết khô khan này nha, mình nghĩ hiện nay không ai không dùng wifi đâu, và chắc chắn các bạn sẽ tìm thấy nhiều điều bổ ích qua bài viết này đấy !
Mục Lục Nội Dung
I. WiFi là gì ? và các đặc điểm vật lý của WiFi
WiFi là từ viết tắt của Wireless Fidelity (hay mạng 802.11), là hệ thống mạng không dây sử dụng sóng vô tuyến được liên minh Wifi (wifi alliance) giới thiệu lần đầu tiên vào năm 1995.
Về mặt bản chất, Wifi sử dụng sóng điện từ giống như sóng di động hay sóng truyền hình. Tuy nhiên, giữa các loại sóng này có sự khác biệt về tần số dẫn đến tính chất và khả năng ứng dụng rất đa dạng của chúng cho nhiều mục đích.
Hiện nay có tới 6 chuẩn Wifi thông dụng là 802.11a/b/g/n/ac/ad hoạt động trên 3 tần số chính là 2.4GHz, 5GHz và 60Ghz.
Về cơ bản sóng có tần số càng cao sẽ cho khả năng mang thông tin càng nhiều, dẫn tới tốc độ truyền dữ liệu nhanh hơn, trong khi lại dễ dàng bị chặn lại bởi các vật cản khiến tầm phủ sóng bị thu hẹp (các bạn có thể dễ dàng nhận thấy sóng di động 2G/3G/4G độ phủ rộng hơn luôn có tần số dao động từ 750Hz tới 2100Hz, thấp hơn so với sóng wifi).
Bên cạnh tần số sóng mang thì phương thức mã hóa cũng là một yếu tố quyết định đến tốc độ truyền dữ liệu của các loại sóng wifi.
Đọc thêm:
- Tìm hiểu về mạng viễn thông (Networking) [Phần 1]
- Hãy cẩn thận khi sử dụng Wifi Công Cộng và các mạng Wifi miễn phí
II. Lịch sử các chuẩn bảo mật Wifi
Mình sơ lược qua cho các bạn dễ hình dung hơn….
#1. Chuẩn WEP (Wired Equivalent Privacy)
Tháng 9/1999, Wifi Alliance giới thiệu WEP như là phương thức bảo mật tiêu chuẩn cho wifi. Như cái tên của mình, WEP sử dụng giao thức bảo mật kết nối tương tự giao thức sử dụng với hệ thống mạng có dây.
Ngay tại thời điểm ra mắt, WEP không hề là một chuẩn bảo mật mạnh do nó chỉ dùng 64bit, mã hóa theo quy định của chính phủ mỹ với xuất khẩu công nghệ mã hóa.
Sau này khi chuẩn WEP được cải tiến với 128, thậm chí 256 bit mã hóa, vẫn có những lỗ hổng rất lớn khác trong giao thức bắt tay giữa Client (máy trạm) và AP (Access Point-điểm truy cập) khiến WEP trở thành một chuẩn yếu và dễ dàng bị hack bởi các tin tặc.
Vì những điểm yếu không thể khắc phục mà WEP được wifi alliance cho về hưu năm 2004 !
#2. Chuẩn WPA (Wifi Protected Access)
Năm 2003 Wifi alliance giới thiệu WPA với vai trò chuẩn bảo mật mới thay thế WEP với WPA-PSK (pre-shared) hiện nay là phiên bản phổ biến nhất.
Cải rõ rệt của WPA so với WEP là khả năng kiểm tra tính toàn vẹn của gói tin (message integrity check) xác định liệu dữ liệu có bị Hacker đánh chặn và thay đổi trong quá trình truyền dẫn giữa Client-AP hay không.
Bên cạnh đó, giao thức TKIP (Temporal Key Integrity Protocol) cho phép gửi nhận dữ liệu an toàn hơn nhiều nhờ hệ thống kí tự riêng cho từng gói tin thay vì bộ kí tự cố định như WEP.
Tuy vậy, do việc phân phối các bản cập nhật cho TKIP vẫn được diễn ra dựa trên hệ thống WEP cũ, vẫn còn đó những lỗ hổng mà hacker có thể khai thác.
#3. WPA2-bản nâng cấp của WPA
Năm 2006, WPA2 ra đời và chính thức thay thế WPA. Điểm cải tiến mạnh nhất của WPA2 là hỗ trợ giao thức AES (Advance Encryption Standard) thay cho TKIP.
Đến phiên bản này, gần như không còn lỗ hổng bảo mật hiện hữu nào để Hacker khai thác.
Nhưng an toàn hơn không có nghĩa là an toàn tuyệt đối, với một máy tính đủ mạnh và thời gian, ngay cả chuẩn bảo mật mạnh như WPA2 cũng có thể bị bẻ khóa.
Hiện nay Wifi alliance đã giới thiệu WPA3, tuy nhiên chuẩn này vẫn chưa phổ biến trên các AP có mặt trên thị trường nên cần nhiều thời gian hơn để đánh giá khả năng của chuẩn mới này. Cho đến lúc đó, chắc chắn WPA2 vẫn sẽ là tiêu chuẩn toàn cầu về bảo mật Wifi.
III. Cơ chế vận hành và khai thác lỗ hổng của các chuẩn bảo mật wifi
Câu hỏi đặt ra là chuẩn bảo mật WEP yếu kém dùng trên wifi tương đương với chuẩn đang được sử dụng trên hệ thống mạng có dây (wired).
Vậy phải chăng khả năng bảo mật của hệ thống mạng có dây hiện nay là rất tồi ?
Thực ra, tính yếu kém của chuẩn bảo mật này không hoàn toàn đến từ phương thức mã hóa mà phần quan trọng bắt nguồn từ đặc điểm cố hữu của hệ thống mạng không dây: Bất cứ thiết bị nào nằm trong vùng phủ sóng của AP và có phần cứng thích hợp đều có khả năng truy cập đến AP.
Điều này tạo ra rất nhiều lỗ hổng có thể khai thác trong quá trình xác thực và truyền nhận dữ liệu qua sóng vô tuyến.
Đối với mạng có dây, điều kiện tiên quyết để xâm nhập hệ thống là Hacker phải có kết nối vật lí trực tiếp từ một trong các node của mạng thông qua cable, vì vậy các cuộc tấn công truy cập từ xa là không khả thi.
#1. Lỗ hổng WEP
Có hai yếu tố chính gây ra vấn đề bảo mật với WEP:
- Sử dụng khóa WEP (WEP key) tĩnh: Một khóa truy cập duy nhất được chia sẻ và lưu trữ trên AP và các Client. Trong quá trình trao đổi dữ liệu, AP và Client sử dụng tổng của khóa này và Initialization Vector (IV) thành một giá trị không cố định, thông qua thuật toán RC4 để mã hóa dữ liệu… WEP key không thay đổi trong nhiều phiên làm việc liên tục. Vì vậy, nếu có một Client trong hệ thống rời mạng, khóa WEP cũng theo đó có khả năng bị rò rỉ
- Để đảm bảo một dữ liệu sẽ sinh hai kết quả mã hóa khác nhau trong hai lần mã hóa, giá trị IV cần được khởi tạo trên máy gửi và gửi đến Client trên mỗi gói dữ liệu. Do IV được tạo ra không bắt buộc và không theo định luật hay tiêu chuẩn nào nên nó được gửi kèm dưới dạng không mã hóa ở đầu gói dữ liệu IEEE802.11. độ dài của IV là 24bit, vì vậy có 2^24=16.777.216 khóa IV có thể sinh. Nếu bắt được lượng gói tin đủ lớn, hacker có thể tìm ra hai gói tin sử dụng cùng giá trị IV và cùng khóa. Từ đó suy đoán được key và giải mã mọi dữ liệu đến và đi trong mạng. Thoạt nghe có vẻ xác suất chẳng mấy khả thi? Nhưng đừng quên máy tính xử lí và gửi nhận cả triệu byte dữ liệu mỗi giây. Bằng một máy tính hiện đại và phần mềm chuyên dụng như Aircrack-ng trong Kali Linux. Chỉ mất 5 đến 10 phút để thu thập đủ lượng dữ liệu dùng cho việc bẻ khóa!
- Có thể nói, WEP là tính năng bảo mật đầu tiên bạn cần tắt khi cấu hình AP của mình nếu muốn có một không gian mạng riêng tư và bảo mật.
#2. Mã hóa chuẩn WPA/WPA2
Về cơ bản, WPA/WPA2 là một chuẩn bảo mật đủ mạnh để bạn có thể yên tâm sử dụng.
Bên cạnh việc sử dụng 128 đến 256 bit để mã hóa so với chỉ 64 bit của WEP, chuẩn mới còn nâng độ dài khóa IV lên 48bit, tạo nên 2^48=281,474,976,710,656 ~ 300 triệu tỷ kết quả khác nhau (tin mình đi, ngay cả PC của bạn dùng CPU core i7, bạn cũng không muốn dò dẫm trong núi dữ liệu ấy đâu!).
Tuy nhiên, không có gì là hoàn hảo. Giới hacker luôn rất giỏi trong việc tìm và khai thác những lỗ hổng khó nhất.
Trong phạm vi bài viết này, mình xin giới thiệu một kĩ thuật khá phổ biến thường được sử dụng để bẻ khóa WPA/WPA2-PSK (chuẩn phổ biến nhất đối với người dùng thông thường), đó là tấn công từ điển (dictionary attack). Phương thức này khai thác điểm yếu của PSK và giao thức xác thực bắt tay 4 bước (4-way handshake) sử dụng trong WPA. Dĩ nhiên tỉ lệ thành công không phải tuyệt đối. Nhưng với sự chủ quan của đa số người dùng phổ thông sử dụng những mật khẩu yếu hoặc quá phổ biến, phương thức này vẫn tỏ ra hữu hiệu đáng kinh ngạc !
Trước tiên, chúng ta tìm hiểu chút về 4-way handshake:
4-way handshake sử dụng 4 đầu vào, đó là:
- Khóa PMK (được lấy luôn là khóa PSK-thường được chúng ta gọi là mật khẩu wifi).
- Anonce là giá trị sinh ngẫu nhiên từ AP.
- Snonce là giá trị sinh ngẫu nhiên từ Client và địa chỉ MAC của AP và Client.
- Tổng sinh từ các giá trị này được gọi là PTK, chính là chìa khóa mã hóa dữ liệu trong quá trình giao tiếp.
Các bước thực hiện:
+ Bước 1: AP gửi một gói dữ liệu kèm giá trị được sinh ngẫu nhiên (Anonce) đi khắp nơi trong phạm vi phủ sóng của nó.
Một client ở trong phạm vi này muốn kết nối đến AP sẽ nhận gói, kết hợp với các thông số đã biết là: PSK do người dùng nhập vào.
MAC của Client (đương nhiên như việc bạn nhớ tên mình).
Địa chỉ MAC của AP (đương nhiên biết tên nó thì mới gọi được nó) => tính ra được chìa khóa PTK.
+ Bước 2: Client dùng PTK tính được để mã hóa gói dữ liệu nhận từ AP, gửi kèm gói đã mã hóa này và Snonce của nó đến địa chỉ của AP.
AP nhận được Snonce, dựa vào các thông số đã biết tương tự Client mà tính được PTK. AP dùng khóa PTK giải mã gói do Client gửi. Nếu đúng là gói nó đã gửi đi ban đầu chứng tỏ Client đã có PSK.
+ Bước 3: AP dùng PTK để tạo ra GTK, khóa sẽ được dùng để mã hóa dữ liệu băng thông gửi nhận với Client trong suốt phần còn lại của phiên truy cập. Nó gửi mã này cho Client sau khi đã mã hóa bằng PTK.
+ Bước 4: Client nhận và giải mã GTK, nó sẽ gửi thông điệp được mã hóa bằng chính GTK vừa nhận để thông báo với AP là mình đã có khóa này. Quá trình giao tiếp kết thúc và bắt đầu truyền nhận dữ liệu.
Đến đây ta thấy giao thức bắt tay 4 bước là khá kín kẽ và dường như không có lỗ hổng trong thuật toán để khai thác nếu không biết mật khẩu là mã PSK.
Nhưng giống như giải xuôi một bài toán mãi không được, người ta sẽ tìm cách làm ngược bằng cách thay lần lượt từng đáp án trong 4 đáp án trắc nghiệm vào xem cái nào đúng! Đây cũng là tinh thần cơ bản của phương pháp tấn công từ điển (dictionary attack).
Bằng cách tổng hợp từ các nguồn rò rỉ trên mạng, sinh các tổ hợp kí tự phổ biến hoặc bộ số với 8,9 chữ số… các hacker tạo ra các wordlist chứa hàng triệu mật khẩu khác nhau. Hacker sau đó nghe trộm cuộc trao đổi giữa Client thật và AP, sử dụng các thông tin thu thập được là MAC của Client và AP, Anonce, Snonce, kết hợp thử với từng key trong bộ wordlist tạo sẵn để sinh khóa PTK và trao đổi thử với AP cho đến khi được xác nhận.
Với máy tính của mình, mình sử dụng CPU Intel core i7-3740QM + GPU NVIDIA Quadro K2000m + 16GB RAM, tốc độ sinh mã PTK và trao đổi với AP là ~5000key/s. Thử tính toán bài toán tiểu học với một số bộ password thông dụng:
- Bộ password ngày tháng năm sinh do người viết tự tạo có dạng @@@@19@@ và @@@@20@@ (các năm của thế kỉ XX và XXI) gồm 2×10^6=20.000.000 khóa. Mất 20.000.000/5000=400s ~ 6,7 phút để thử hết
- Bộ password 8 số từ 00000000 đến 99999999 gồm 10^8=100.000.000 mã thử hết trong 100.000.000/5000=20000s ~ 5.5 giờ.
- Các bộ thư viện nổi tiếng khác trên Internet cũng có số lượng dao động từ vài chục đến vài trăm triệu mã. Như vậy rõ ràng thời gian bẻ khóa là có thể chấp nhận được.
Đọc xong phần bên trên, có thể nhiều bạn sẽ lí luận rằng nếu đặt một mật khẩu dài, mạnh hoặc chứa kí tự phức tạp thì tôi chẳng việc gì phải sợ. Việc mò mẫm giữa nhiều tỉ kết quả xác suất chẳng khác nào mò kim đáy bể mà nói thẳng ra là bất khả thi !
Điều đó đúng, nhưng sự thật thì lại phũ phàng rằng đa số người sử dụng wifi hay bất cứ dịch vụ trực tuyến cần xác thực bảo mật nào cũng đều có xu hướng đặt những mật khẩu dễ nhớ, dễ thuộc, hoặc dùng một mật khẩu cho nhiều tài khoản.
Bằng chứng là chuỗi “123456” luôn nằm trong Top thống kê những mật khẩu phổ biến nhất được sử dụng trên mạng Internet.
Đó là chưa kể rất nhiều vụ rò rỉ mật khẩu diễn ra hằng năm trên thế giới đã tạo nên kho báu khổng lồ cho giới hacker thỏa thích mà thử nghiệm… (thú thực là mình đã thử và thành công nhiều lần trên mục tiêu thật với bộ pass ngày tháng năm sinh siêu đơn giản… A di đà phật… phật tổ chứng giám, chỉ là thử nghiệm thôi nhé! )
Lời kết
Chẳng có gì là an toàn mãi mãi. Nguồn gốc của sự phát triển chính là mâu thuẫn giữa các mặt đối lập.
Cuộc chiến không hồi kết giữa những nhà nghiên cứu bảo mật và giới hacker đôi khi là điều cần thiết để sản sinh ra những tiêu chuẩn mới ngày càng an toàn hơn cho thế giới Internet.
Giữa cuộc chiến ấy chúng ta không thể làm gì khác hơn là tự nâng cao khả năng phòng vệ để tránh bị tổn thương. Đơn giản nhất là truy cập vào chiếc router của bạn và đặt ngay một mật khẩu mới mạnh hơn, dài ít nhất 10 kí tự và đừng quên thêm vào đó những kí tự loằng ngoằng kiểu như ”`~@#$(*^&^$%^” chẳng hạn(^-^).
Xa hơn, thay vì ngồi ngoài quan chiến tự lo lấy bản thân, bạn cũng có thể lựa chọn trở thành một phần của cuộc chiến ấy từ bằng việc dành thời gian để học về bảo mật và an ninh mạng. Chỉ cần bạn luôn luôn ghi nhớ một điều, giữa trắng và đen là một bức tường mỏng manh, đừng bao giờ chọn sai phía để rồi phải hối hận !
Thế nhé !
Các bạn nhớ đón đọc các bài viết tiếp theo của mình nhé ^^
CTV: Vũ Hữu Thăng – Blogchiasekienthuc.com