Khái niệm và Lịch sử phát triển của Chuẩn WPA
Trước khi đi vào chi tiết về khái niệm và lịch sử phát triển của Chuẩn WPA (Wi-Fi Protected Access), hãy hiểu rằng WPA là một chuẩn bảo mật được sử dụng trong mạng Wi-Fi để bảo vệ thông tin và ngăn chặn việc truy cập trái phép vào mạng.
- Khái niệm của Chuẩn WPA:
- WPA là một chuẩn bảo mật Wi-Fi được phát triển để thay thế chuẩn WEP (Wired Equivalent Privacy), một chuẩn cũ đã bị các lỗ hổng bảo mật nghiêm trọng.
- Chuẩn WPA cung cấp các phương pháp mã hóa và xác thực mạnh mẽ hơn để đảm bảo an toàn cho các kết nối Wi-Fi.
- Lịch sử phát triển của Chuẩn WPA:
- Ban đầu, WPA được phát triển như một bản cải tiến của chuẩn WEP và được gọi là WPA 1.0.
- WPA 1.0 sử dụng một giao thức tạm thời gọi là TKIP (Temporal Key Integrity Protocol) để thay đổi khóa bảo mật theo thời gian, làm khó việc tấn công dựa trên các khóa đã biết trước.
- Tuy nhiên, để giải quyết các vấn đề bảo mật tiềm tàng, WPA2 đã được phát triển và trở thành chuẩn bảo mật Wi-Fi tiên tiến nhất.
- WPA2 sử dụng giao thức mã hóa AES (Advanced Encryption Standard) với chế độ CCMP (Counter Mode Cipher Block Chaining Message Authentication Code Protocol), cung cấp mức bảo mật cao hơn so với WPA 1.0.
- WPA3:
- WPA3 là phiên bản mới nhất của chuẩn bảo mật Wi-Fi và đã được giới thiệu vào năm 2018.
- WPA3 cung cấp nhiều tính năng bảo mật tiên tiến hơn như sử dụng mã hóa individualized data, giúp ngăn chặn việc đánh cắp thông tin trên mạng công cộng và tăng cường tính riêng tư.
- WPA3 cũng đưa ra các phương thức xác thực mạnh mẽ hơn, như SAE (Simultaneous Authentication of Equals) để chống lại các cuộc tấn công bằng từ điển.
Chuẩn WPA đã đóng góp quan trọng vào việc nâng cao bảo mật trong mạng Wi-Fi và tạo ra một môi trường an toàn hơn cho việc truy cập.
Xem thêm 50+ công cụ tấn Wireless Attack của kali linux
WPA
Trong phần này, chúng ta sẽ thảo luận về mã hóa Wi-Fi Protected Access (WPA). Sau WEP, mã hóa này được thiết kế để giải quyết tất cả các vấn đề khiến WEP rất dễ bị bẻ khóa. Trong WEP, vấn đề chính là IV ngắn, được gửi dưới dạng văn bản thuần túy trong mỗi gói. IV ngắn có nghĩa là khả năng có một IV duy nhất trong mỗi gói có thể cạn kiệt trong mạng hoạt động để khi chúng ta đưa các gói vào, chúng ta sẽ có nhiều hơn một gói có cùng IV. Khi đó, aircrack-ng có thể sử dụng các cuộc tấn công thống kê để xác định luồng khóa và khóa WEP cho mạng.
Các bài viết liên quan:
Trong WPA, mỗi gói được mã hóa bằng khóa tạm thời hoặc khóa duy nhất. Có nghĩa là số lượng gói dữ liệu mà chúng tôi thu thập là không liên quan. Nếu chúng tôi thu thập một triệu gói, những gói này cũng không hữu ích vì chúng không chứa bất kỳ thông tin nào mà chúng tôi có thể sử dụng để bẻ khóa WPA. WPA2 cũng giống như WPA. Nó hoạt động với các phương pháp giống nhau và sử dụng cùng một phương pháp, nó có thể bị bẻ khóa. Sự khác biệt duy nhất giữa WPA, WPA2 là WPA2 sử dụng một thuật toán được gọi là Counter-Mode Cipher Block Chaining Message Authentication Code Protocol (CCMP) để mã hóa.
Xem thêm Kiểm tra chức năng thay đổi hoặc đặt lại mật khẩu yếu
Handshake
Trong WPA, mỗi gói được mã hóa bằng một khóa tạm thời duy nhất. Nó không giống như WEP, nơi các IV được lặp lại và chúng tôi thu thập một số lượng lớn các gói dữ liệu có các IV giống nhau. Trong mỗi gói WPA, có một IV tạm thời duy nhất, ngay cả khi chúng ta thu thập 1 triệu gói thì những gói này sẽ không hữu ích cho chúng ta. Các gói này không chứa bất kỳ thông tin nào có thể giúp chúng tôi xác định khóa WPA thực sự.
Xem thêm Tấn công bẻ khóa wifi chuẩn WEP
Các gói duy nhất chứa thông tin hữu ích và giúp chúng ta xác định khóa là các gói bắt tay. Đây là bốn gói và các gói này sẽ được gửi khi một thiết bị mới kết nối với mạng đích. Ví dụ: giả sử chúng ta đang ở nhà, thiết bị của chúng ta kết nối với mạng bằng mật khẩu và một quá trình gọi là bắt tay bốn chiều xảy ra giữa AP và các thiết bị. Trong quá trình này, bốn gói được gọi là gói bắt tay, được chuyển giữa hai thiết bị, để xác thực kết nối thiết bị. Chúng ta có thể sử dụng danh sách từ bằng cách sử dụng aircrack-ng và kiểm tra từng mật khẩu trong danh sách từ bằng cách sử dụng bắt tay. Để bẻ khóa mạng được mã hóa WPA, chúng ta cần hai thứ: chúng ta cần capturing được quá trình bắt tay và chúng ta cần một danh sách từ có chứa mật khẩu.
Xem thêm Web standard là gì? W3C là gì
Ưu điểm và Tính năng của Chuẩn WPA
Chuẩn WPA (Wi-Fi Protected Access) mang lại nhiều ưu điểm và tính năng bảo mật so với chuẩn WEP (Wired Equivalent Privacy) trước đó. Dưới đây là một số ưu điểm và tính năng quan trọng của Chuẩn WPA:
- Mã hóa mạnh mẽ: WPA sử dụng mã hóa TKIP (Temporal Key Integrity Protocol) trong phiên bản WPA 1.0 và mã hóa AES (Advanced Encryption Standard) trong phiên bản WPA2. Cả hai đều cung cấp mức độ bảo mật cao hơn so với mã hóa WEP truyền thống.
- Xác thực mạnh mẽ: Chuẩn WPA hỗ trợ các phương thức xác thực mạnh mẽ như 802.1X (EAP – Extensible Authentication Protocol) để đảm bảo rằng chỉ những người dùng có quyền được phép mới có thể truy cập vào mạng Wi-Fi.
- Tự động thay đổi khóa bảo mật: WPA sử dụng TKIP để thay đổi khóa bảo mật theo thời gian, đảm bảo rằng khóa không bị lộ và làm khó việc tấn công dựa trên việc sử dụng khóa đã biết trước.
- Bảo vệ chống lại tấn công từ điển: WPA cung cấp khả năng chống lại các cuộc tấn công từ điển bằng cách áp dụng một giới hạn số lần thử xác thực và thời gian chờ giữa các lần thử.
- Hỗ trợ nguồn gốc phần cứng: WPA được thiết kế để có thể cài đặt trên các thiết bị Wi-Fi sử dụng chuẩn IEEE 802.11b/g/n, nghĩa là nó có khả năng tương thích với nhiều thiết bị có sẵn trên thị trường.
- Tiện ích mở rộng: Chuẩn WPA hỗ trợ nhiều tính năng bổ sung như chế độ tiết kiệm năng lượng (Power Save Mode), khả năng tạo ra các mạng ảo (Virtual LAN), và tính năng báo cáo sự cố (Diagnostic Reporting).
- Hỗ trợ tiêu chuẩn mới: Phiên bản WPA3 mang lại nhiều cải tiến bảo mật, bao gồm mã hóa individualized data và các phương thức xác thực mạnh mẽ hơn, nhằm đáp ứng yêu cầu bảo mật ngày càng cao trong môi trường Wi-Fi.
Xem thêm Normal Distribution- Phân phối chuẩn trong R
Tấn công bẻ khóa WPA
Tấn công Capturing handshake trong WPA
Để bẻ khóa WPA, trước tiên chúng ta sẽ bắt tay. Sử dụng airodump-ng, chúng tôi sẽ capturing được cái bắt tay, giống như cách chúng tôi đã sử dụng nó với mạng mã hóa WEP. Sử dụng lệnh sau để capturing tất cả mạng xung quanh chúng ta:
Bây giờ chúng ta sẽ chạy airodump-ng trên mạng access point với –bssid là 74: DA: DA: DB: F7: 67. Chúng tôi sẽ bao gồm –channel, số 11, sau đó chúng tôi thêm –write để lưu trữ tất cả các gói mà chúng tôi chụp vào một tệp là wpa_handshake, và sau đó chúng tôi đưa thẻ không dây vào chế độ giám sát là wlan0. Lệnh như sau:
Khi chúng tôi khởi chạy lệnh này, chúng tôi sẽ có mạng được mã hóa WPA của mình và chúng tôi sẽ có các máy khách được kết nối với mạng.
Chúng ta có thể capturing cái bắt tay theo hai cách. Đầu tiên, chúng ta có thể chỉ cần ngồi xuống và đợi một thiết bị kết nối mạng. Sau khi một thiết bị được kết nối thì chúng ta có thể bắt tay. Thứ hai, chúng ta có thể sử dụng cuộc tấn công hủy xác thực mà chúng ta đã học trong phần trước, trong phần Các cuộc tấn công trước kết nối.
Trong một cuộc tấn công hủy xác thực, chúng tôi có thể ngắt kết nối bất kỳ thiết bị nào trong mạng nằm trong phạm vi Wi-Fi của chúng tôi. Nếu chúng ta áp dụng cuộc tấn công này trong một khoảng thời gian rất ngắn, chúng ta có thể ngắt kết nối mạng của một thiết bị trong một giây, thiết bị sẽ cố gắng kết nối với mạng tự động và thậm chí người sử dụng thiết bị sẽ không nhận thấy rằng thiết bị đang ngắt kết nối hoặc kết nối lại. Sau đó, chúng tôi sẽ có thể capturing các gói bắt tay. Bắt tay được gửi mỗi khi thiết bị kết nối với mạng mục tiêu.
Xem thêm Pre-connection Attack là gì? cách testing
Bây giờ bằng cách sử dụng aireplay-ng, chúng tôi sẽ thực hiện một cuộc tấn công xác thực cơ bản. Chúng tôi sử dụng aireplay-ng –deauth, tên của cuộc tấn công và 4 gói xác thực cho AP và ngắt kết nối thiết bị khỏi nó. Sau đó, chúng ta sẽ đặt -a, để chỉ định địa chỉ MAC của AP mục tiêu và -c, để chỉ định địa chỉ MAC của máy khách mà chúng ta muốn ngắt kết nối. Sau đó, chúng tôi sẽ đặt tên của thẻ WIFI, đó là wlan0. Lệnh như sau:
Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng chúng ta đã bắt tay WPA và thiết bị mục tiêu của chúng ta thậm chí không thay đổi, cũng như không bị ngắt kết nối:
Chúng tôi đã bị ngắt kết nối trong một khoảng thời gian rất ngắn, đó là lý do tại sao chúng tôi không nhận được bất kỳ thông báo nào về việc bị ngắt kết nối, đó là lý do tại sao ngay cả người sử dụng thiết bị cũng không nhận thấy và chúng tôi có thể capturing được cái bắt tay. Để xác định Khóa WPA, chúng ta có thể sử dụng một danh sách từ và chạy nó theo kiểu bắt tay.
Xem thêm Testing lỗ hổng bảo mật Weak Password Policy
Tạo danh sách password
Bây giờ chúng ta đã nắm bắt được sự bắt tay, tất cả những gì chúng ta cần làm là tạo một danh sách từ để bẻ khóa WPA. Danh sách từ chỉ là danh sách các từ mà aircrack-ng sẽ trải qua và thử từng từ với quá trình bắt tay cho đến khi nó xác định thành công khóa WPA. Nếu danh sách từ tốt hơn, khả năng bẻ khóa WPA sẽ cao hơn. Nếu mật khẩu không có trong tệp danh sách từ của chúng tôi, chúng tôi sẽ không thể xác định khóa WPA.
Để tạo danh sách từ, chúng ta sẽ sử dụng một công cụ có tên là crunch. Cú pháp như sau:
crunch [min] [max] [character] -o [FileName]
hoặc là
crunch [min] [max] [character] -t [pattern] -o [FileName]
Với:
- crunch là tên của công cụ.
- [min] chỉ định số ký tự tối thiểu để tạo mật khẩu.
- [max] chỉ định số ký tự tối đa cho mật khẩu.
- characters chỉ định các ký tự mà chúng tôi muốn sử dụng trong mật khẩu. Ví dụ, bạn có thể đặt tất cả các ký tự viết thường, tất cả các ký tự viết hoa, số và ký hiệu.
- -t là tùy chọn. Nó chỉ định mẫu.
- -o tùy chọn chỉ định tên tệp nơi mật khẩu sẽ được lưu trữ.
Nếu chúng ta biết một phần của mật khẩu, tùy chọn -t rất hữu ích. Ví dụ: nếu chúng tôi đang cố gắng đoán mật khẩu của ai đó và chúng tôi thấy anh ta nhập mật khẩu, chúng tôi biết rằng mật khẩu bắt đầu bằng a và kết thúc bằng b. Bây giờ chúng ta có thể sử dụng tùy chọn mẫu và nói với crunch để tạo mật khẩu luôn bắt đầu bằng a và kết thúc bằng b và đặt tất cả các kết hợp có thể có của các ký tự mà chúng ta đặt vào lệnh.
Chúng tôi sẽ sử dụng crunch, và sau đó chúng tôi sẽ tạo ra tối thiểu là 6 và tối đa là 8. Chúng tôi sẽ đặt 12ab và lưu trữ nó trong test.txt. Crunch sẽ tạo ra một tổ hợp các mật khẩu (tối thiểu là 6 ký tự và tối đa là 8 ký tự) và nó sẽ tạo ra tất cả các kết hợp có thể có của 12ab. Nó sẽ lưu trữ tất cả sự kết hợp trong một tệp có tên là test.txt. Lệnh sẽ như sau:
Kết quả sau sẽ được hiển thị sau khi thực hiện lệnh trên:
Sử dụng lệnh cat test.txt, chúng ta có thể thấy tất cả các mật khẩu được lưu trong tệp test.txt. Ảnh chụp màn hình sau đây hiển thị tất cả các mật khẩu:
Xem thêm Decision table technique trong black box testing
Bây giờ chúng ta hãy xem xét tùy chọn mẫu. Chúng ta sẽ bắt đầu sử dụng mật khẩu tối thiểu là 5 và tối đa là 5, vì vậy tất cả mật khẩu sẽ dài năm ký tự. Sau đó, chúng tôi sẽ đặt các ký tự, là abc12 và chúng tôi sẽ thêm tùy chọn -t, là tùy chọn mẫu, sau đó chúng tôi sẽ đặt một @@@ b nghĩa là mật khẩu bắt đầu bằng a và kết thúc bằng b. Thông qua đó, chúng ta sẽ nhận được tất cả các kết hợp có thể có của các ký tự giữa a và b. Sau đó, chúng ta sẽ chỉ định tệp đầu ra -o, hãy gọi nó là sample.txt. Lệnh sẽ như sau:
Đầu ra sẽ như sau:
Nó tạo ra 125 mật khẩu. Bây giờ chúng ta hãy nhìn vào chúng. Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng chúng luôn bắt đầu bằng a và luôn kết thúc bằng b.
Chúng ta có thể sử dụng crunch để tạo danh sách từ. Trong phần tiếp theo, chúng ta sẽ sử dụng tệp bắt tay và danh sách từ để xác định khóa WPA thực tế.
Xem thêm 10 nguyên nhân chính Website wordpress sẽ bị Hacker tấn công
Bẻ khóa WPA sử dụng danh sách password
Để bẻ khóa WPA hoặc WPA2, trước tiên chúng ta cần nắm bắt bắt tay từ AP mục tiêu và thứ hai là có một danh sách từ chứa một số mật khẩu mà chúng ta sẽ thử. Bây giờ chúng tôi đã nắm bắt được sự bắt tay và chúng tôi có một danh sách từ sẵn sàng để sử dụng. Bây giờ chúng ta có thể sử dụng aircrack-ng để bẻ khóa cho AP mục tiêu. Máy bay sẽ duyệt qua tệp danh sách từ, kết hợp từng mật khẩu với tên của AP mục tiêu và tạo Khóa chính cặp (PMK). PMK này được tạo ra bằng cách sử dụng một thuật toán gọi là PBKDF2. Nó không giống như chỉ kết hợp mật khẩu và BSSID. Nó được mã hóa theo một cách nhất định và so sánh PMK với cái bắt tay. Mật khẩu đã được sử dụng là mật khẩu cho AP mục tiêu nếu PMK hợp lệ. Nếu PMK không hợp lệ, thì aircrack-ng sẽ thử mật khẩu tiếp theo.
Chúng tôi sẽ sử dụng aircrack-ng, tên tệp chứa bắt tay, wep_handshake-01.cap, -w và tên của danh sách từ, text.txt. Lệnh như sau:
Bây giờ hãy nhấp vào Enter, và aircrack-ng sẽ đi qua danh sách mật khẩu. Nó sẽ thử tất cả các mật khẩu và sẽ kết hợp từng mật khẩu với tên của AP mục tiêu để tạo PMK, sau đó so sánh PMK với cái bắt tay. Nếu PMK hợp lệ, thì mật khẩu được sử dụng để tạo PMK là mật khẩu cho AP mục tiêu. Nếu PMK không hợp lệ, thì bạn chỉ cần thử mật khẩu tiếp theo.
Trong ảnh chụp màn hình sau, chúng ta có thể thấy rằng chìa khóa đã được tìm thấy:
Bảo mật mạng khỏi các cuộc tấn công
Để ngăn chặn mạng của chúng tôi trước các phương pháp bẻ khóa được giải thích trong phần tấn công trước khi kết nối và giành quyền truy cập, chúng tôi cần truy cập trang cài đặt cho bộ định tuyến của mình. Mỗi bộ định tuyến có một trang wep nơi chúng ta có thể sửa đổi cài đặt của bộ định tuyến của mình và nó thường nằm ở IP của bộ định tuyến. Đầu tiên, chúng ta sẽ lấy IP của máy tính của tôi và để làm điều này, chúng ta sẽ chạy lệnh ifconfig wlan0. Như đã thấy trong ảnh chụp màn hình sau, phần được đánh dấu là IP của máy tính:
Bây giờ hãy mở trình duyệt và điều hướng đến 192.168.1.1. Đối với ví dụ này, IP của máy tính là 16. Thông thường, IP của bộ định tuyến là IP đầu tiên của mạng con. Hiện tại, nó là 192.168.1.0 và chúng tôi sẽ thêm số 1 vì đó là IP đầu tiên trong mạng con và điều đó sẽ đưa chúng tôi đến trang cài đặt bộ định tuyến. Tại trang cài đặt, nó sẽ yêu cầu nhập tên người dùng và mật khẩu. Để nhập tên người dùng và mật khẩu, chúng ta có thể đăng nhập vào cài đặt bộ định tuyến.
Xem thêm Security Standards – chuẩn bảo mật an ninh mạng
Đôi khi kẻ tấn công có thể đang thực hiện cuộc tấn công hủy xác thực chống lại chúng tôi. Để ngăn chặn điều này, những gì chúng ta có thể làm là kết nối với bộ định tuyến bằng cáp Ethernet và sửa đổi cài đặt bảo mật và thay đổi mã hóa, thay đổi mật khẩu, thực hiện tất cả những điều được khuyến nghị để tăng cường bảo mật. Vì vậy, kẻ tấn công sẽ không thể tấn công mạng và lấy được key.
Bây giờ, cài đặt của mỗi bộ định tuyến là khác nhau. Chúng phụ thuộc vào mô hình của bộ định tuyến. Nhưng thông thường, cách chúng tôi thay đổi cài đặt là giống nhau. Hầu hết các trường hợp, bộ định tuyến luôn ở IP đầu tiên của mạng con, chúng ta chỉ cần lấy IP của mình bằng lệnh ifconfig, giống như chúng ta đã làm ở đầu chủ đề này. Chúng tôi đã nhận được IP 192.168.1.16 và sau đó chúng tôi thay đổi 16 cuối cùng thành 1 thành IP đầu tiên và đó là IP của bộ định tuyến của chúng tôi.
Bây giờ, chúng ta sẽ đến phần WIRELESS NETWORK SETTINGS. Như chúng ta có thể thấy, có rất nhiều cài đặt mà chúng ta có thể thay đổi cho mạng của mình:
Trong ảnh chụp màn hình ở trên, chúng ta có thể thấy rằng cài đặt không dây là Bật, chúng ta có thể thay đổi tên của mạng dưới SSID, chúng ta cũng có thể thay đổi Số kênh và Băng tần.
Sau khi chuyển đến tùy chọn WPS, chúng ta có thể thấy rằng WPS đã bị Tắt. Chúng tôi không sử dụng WEP, đó là lý do tại sao kẻ tấn công không thể sử dụng bất kỳ cuộc tấn công nào để bẻ khóa mã hóa WEP:
Chúng tôi đã tắt WPS và sử dụng WPA, bảo mật hơn nhiều, vì vậy kẻ tấn công không thể sử dụng trình phục hồi để xác định mã PIN WPS và sau đó thiết kế ngược lại mật khẩu. Tin tặc chỉ có thể lấy được mật khẩu bằng cách bắt tay trước và sau đó sử dụng danh sách từ để tìm mật khẩu. Mật khẩu của mạng rất ngẫu nhiên, mặc dù nó không thực sự sử dụng số hoặc chữ số, chỉ là chữ cái, vì vậy có rất ít khả năng ai đó có thể đoán được.
Sau khi đi tới Kiểm soát truy cập, chúng ta có thể thấy rằng chúng ta có thể thêm Chế độ, chẳng hạn như Danh sách Cho phép hoặc Danh sách Từ chối.
Tại đây, chúng tôi có thể chỉ định địa chỉ MAC của mạng mà chúng tôi muốn cho phép kết nối với mạng của chúng tôi. Chúng tôi cũng có thể chỉ định địa chỉ MAC của mạng mà chúng tôi muốn từ chối tạo thành mạng của chúng tôi. Ví dụ: nếu chúng tôi đang ở trong một công ty và chúng tôi đã chỉ định số lượng máy tính và chúng tôi chỉ muốn cho phép một số máy tính kết nối với mạng, thì bạn có thể lấy địa chỉ MAC của hệ thống mà bạn muốn cho phép và thêm chúng vào danh sách Cho phép hoặc Danh sách trắng. Ngay cả khi một người có khóa thực sự và họ không tồn tại trong Danh sách cho phép, họ sẽ không thể truy cập mạng. Chúng tôi cũng có thể thêm một máy tính nhất định hoặc một người nào đó vào Danh sách từ chối nếu chúng tôi nghĩ rằng nó đáng ngờ, chúng tôi chỉ cần thêm địa chỉ MAC của họ vào Danh sách từ chối và họ sẽ không thể kết nối với mạng của chúng tôi.