TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ
TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC: BẢO MẬT THÔNG TIN
ĐỀ TÀI: WEP / WAP
GVHD: VĂN THIÊN HOÀNG
SVTH:
PHẠM ANH QUYỀN
NGUYỄN XUÂN THƯ
BÙI TRUNG KIÊN
NGÔ THANH PHONG
MỤC LỤC
CHƯƠNG I: GIỚI THIỆU
I. TỔNG QUAN VỀ MẠNG KHÔNG DÂY (WLAN)
1. Mạng không dây là gì?
2. Ưu khuyết điểm của mạng không dây
I.1 Ưu điểm
I.2 Khuyết điểm
II. CÁC HÌNH THỨC TẤN CÔNG PHỔ BIẾN TRONG WLAN
III. TỔNG QUAN VỀ WEP/WPA
1. WEP là gì?
2. Lịch sử phát triển của WEP
3. Ưu nhược điểm của WEP
3.1 Ưu điểm
3.2 Khuyết điểm
4. Chuyển sang WPA
4.1 WPA là gì?
4.2 Những thay đổi so với WEP
CHƯƠNG II: CÁC VẤN ĐỀ TRONG BẢO MẬT WEP/WPA
I. CƠ CHẾ HOẠT ĐỘNG CỦA WEP
II. CÁC VẤN ĐỀ VỀ BẢO MẬT TRONG WEP
nó dần thay thế cho các hệ thống mạng có dây truyền thống hiện tại.
2.2 Khuyết điểm:
- Đi cùng với sự phổ biến của mạng không dây, các vấn đề bảo mật mạng
không dây cũng là mối quan tâm hàng đầu hiện nay, vì sự giao tiếp
trong mạng đều cho bất kỳ ai trong phạm vi cho phép với thiết bị phù
hợp có thể bắt được các tín hiệu được truyền tải. Các hacker có thể sử
dụng các phương pháp tấn công:…
II. CÁC HÌNH THỨC TẤN CÔNG PHỔ BIẾN TRONG WLAN
Tấn công và phòng chống trong mạng WLAN là vấn đề được quan tâm đến rất
nhiều hiện nay bởi các chuyên gia trong lĩnh vực bảo mật. Nhiều giải pháp tấn công và
phòng chống đã được đưa ra nhưng cho đến bây giờ chưa có giải pháp nào được gọi là
bảo mật an toàn, cho đến hiện nay mọi giải pháp phòng chống được đưa ra đều chỉ là
tương đối (nghĩa là tính bảo mật trong mạng WLAN vẫn có thể bị phá vỡ bằng nhiều
cách khác nhau). Theo rất nhiều tài liệu nghiên cứu, hiện tại để tấn công vào mạng
WLAN thì các attacker có thể sử dụng một trong những cách sau:
Rogue Access Point
De-authentication Flood Attack
Fake Access point
Tấn công dựa trên cảm nhận lớp vật lý
Disassociation Flood Attack
1. Rogue Access Point
1.1 Định nghĩa
Access Point giả mạo được dùng để mô tả những Access Point được tạo ra
một cách vô tình hay cố ý làm ảnh hưởng đến hệ thống mạng hiện có. Nó được
dùng để chỉ các thiết bị hoạt động không dây trái phép mà không quan tâm đến
mục đích sử dụng của chúng.
1.2 Phân loại
1.2.1 Access Point được cấu hình không hoàn chỉnh
Một Access Point có thể bất ngờ trở thành thiết bị giả mạo do sai sót trong
việc cấu hình. Sự thay đổi trong services set Indentifier (SSID), thiết lập xác thực,
chính thống do vậy người dùng sẽ phải kết nối lại với AP giả.
Trong mạng 802.11 sự lựu chọn được thực hiện bởi cường độ tính hiệu
nhận. Điều duy nhất mà tin tặc phải thực hiện là chắc chắn rằng AP của mình phải
có cường độ tín hiệu của mình mạnh hơn cả. Để có được điều đó tin tặc phải đặt
AP của mình gần người bị lừa hơn là AP chính thống hoặc sử dụng kĩ thuật anten
định hướng. Sau khi nạn nhận kết nối tới AP giả, nạn nhân vẫn hoạt động như
bình thường do vậy nếu nạn nhân kết nối đến một AP chính thống khác thì dữ liệu
của nạn nhân đều đi qua AP giả. Tin tặc sẽ sử dụng các tiện ích để ghi lại mật
khẩu của nạn nhân trao đổi với Web Server. Như vậy tin tặc sẽ có được những gì
anh ta muốn để đăng nhập vào mạng chính thống. Kiểu tấn công này tồn tại là do
trong 802.11 không yêu cầu xác thực 2 hướng giữa AP và nút. AP phát quảng bá
ra toàn mạng. Điều này rất dễ bị tin tặc nghe trộm và do vậy tin tặc có thể lấy
được tất cả các thông tin mà chúng cần. Các nút trong mạng sử dụng WEP để xác
thực chúng với AP nhưng WEP cũng có những lỗ hổng có thể khai thác. Một tin
tặc có thể nghe trộm thông tin và sử dụng bộ phân tích mã hóa để trộm mật khẩu
của người dùng.
Access Point giả mạo được thiết lập bởi chính nhân viên của công ty:
Vì sự tiện lợi của mạng không dây một số nhân viên của công ty đã tự trang
bị Access Point và kết nối chúng vào mạng có dây của công ty. Do không hiểu rõ
và nắm vững về bảo mật trong mạng không dây nên họ vô tình tạo ra một lỗ hổng
lớn về bảo mật.
Những người lạ vào công ty và hacker bên ngoài có thể kết nối đến Access
Point không được xác thực để đánh cắp băng thông, đánh cắp thông tin nhạy cảm
của công ty, sử dụng mạng của công ty tấn công người khác……
Tấn công Man-In-The-Middle
2. De-authentication Flood Attack (tấn công yêu cầu xác thực lại)
- Kẻ tấn công xác định mục tiêu tấn công là các người dùng trong mạng
wireless và các kết nối của họ (Access Point đến các kết nối của nó).
- Chèn các frame yêu cầu xác thực lại vào mạng WLAN bằng cách giả mạo
địa chỉ MAC nguồn và đích lần lượt của Access Point và các người dùng.
làm cho card mạng chuyển vào chế độ kiểm tra mà ở đó nó truyền đi liên tiếp một
mẩu kiểm tra. Tất cả các nút trong phạm vi của một nút giả là rất nhạy với sóng
mang và trong khi có một nút đang truyền thì sẽ không có nút nào được truyền
5. Disassociation Flood Attack (Tấn công ngắt kết nối)
Kẻ tấn công xác định mục tiêu (wireless cliens) và mối liên kết giữa AP với
các client.
Kẻ tấn công gửi disassociation frame bằng cách giả mạo source và
Destination MAC đến AP và các clien tương ứng.
Client sẽ nhận các frame này và nghĩ rằng frame hủy kết nối đến từ AP.
Đồng thời kẻ tấn công cũng gửi gói disassociation frame đến AP.
Sau khi đã ngắt kết nối của một clien, kẻ tấn công tiếp tục thực hiện tương
tự với các clien còn lại làm cho các clien tự động ngắt kết nối với AP.
Khi các clien bị ngắt kết nối sẽ thực hiện kết nối lại với AP ngay lập tức.
Kẻ tấn công tiếp tục gửi gói disassociation frame đến AP và clien.
Mô hình tấn công ngắt kết nối
Như chúng ta đã thấy, có rất nhiều cách để tấn công vào mạng WLAN, do đó
hiện nay vấn đề bảo mật trong WLAN là mối quan tâm hàng đầu. Trọng phạm
vi đồ án này, chúng ta sẽ trình bày giải pháp bảo mật xác thực và mã hóa bằng
WEP/WPA
III. TỔNG QUAN VỀ WEP/WPA
1. WEP là gì?
WEP là từ viết tắt của Wired Equipvalent Privacy, nghĩa là bảo mật tương
đương với mạng có dây (Wired LAN). Khái niệm này là một phần trong chuẩn
IEEE 802.11. Theo định nghĩa, WEP được thiết kế để đảm bảo tính bảo mật cho
mạng không dây đạt mức độ như là mạng nối cáp truyền thống. Đối với mạng
LAN (định nghĩa theo chuẩn IEEE 802.3), bảo mật cho dữ liệu trên đường
truyền đối với các tấn công bên ngoài được đảm bảo qua biện pháp giới hạn vật lý,
tức là hacker không thể truy xuất trực tiếp đến hệ thống đường truyền cáp. Do đó
chuẩn 802.3 không đặt ra vấn đề mã hóa dữ liệu để chống lại các truy cập trái
phép. Đối với chuẩn 802.11, vấp đề mã hóa dữ liệu được đặt lên ưu tiên hàng đầu
xuyên thay đổi khóa bí mật. WEP cho phép thay đổi khóa (K) và Initialization
Vector – giá trị vector khởi tạo (IV).
Tính tự đồng bộ: WEP có thể tự đồng bộ cho mỗi thông điệp. Dữ liệu được
mã hóa ở những mức khác nhau, khi mà sự cố gắng gửi gói tin đi là giả và tỷ lệ
gói tin bị mất là cao.
Tính hiệu quả: Thuật toán WEP có tính hiệu quả và có thể bổ sung thêm các
phần cứng và phần mềm khác.
Tính xuất khẩu: Những cố gắng để thiết kế hệ thống ứng dụng WEP là sự cố
gắng tối đa của Bộ Thương mại Mỹ.
Tính tùy chọn: Thực hiện và sử dụng WEP là một tùy chọn của
IEEE802.11.
Cần chú ý rằng cần thử cân xứng giữa tính hợp lý khi thực thi và xuất khẩu
WEP. Khả năng tự đồng bộ thật sự là quan trong trong mạng Wi-Fi Lan. Về cơ
bản, mỗi gói tin cần mã hóa riêng biệt, mà chỉ cần đưa ra gói tin và khóa của nó,
bạn sẽ có tất cả các thông tin mà bạn cần. Rõ ràng, không ai muốn khi một gói tin
bị hủy thì tất cả những phần tiếp theo không thể đọc được.
Chuẩn IEEE 802.11 thường chỉ sử dụng khóa có độ dài là 40 bit. Như vậy
40 bit là quá ngắn để chống lại phương pháp tấn công theo kiểu brute - force, vậy
tại sao không đưa ra một quy tắc khác. Về cơ bản, trong tương lai sẽ sử dụng
mạng không dây, có giao thức bảo mật chạy trên nền WEP, và khi đó tính bảo mật
cần được nâng cao, hợp lý để đưa vào ứng dụng
3. Ưu nhược điểm của WEP
3.1 Ưu điểm
- Có thể đưa ra rộng rãi, triển khai đơn giản.
- Mã hóa mạnh.
- Khả năng tự đồng bộ.
- Tối ưu tính toán, hiệu quả tài nguyên bộ vi xử lý.
- Có các lựa chọn bổ xung thêm
3.2 Khuyết điểm
Lúc đầu người ta tin tưởng ở khả năng kiểm soát truy cập và tích hợp dữ
cùng với 1 IV ngẫu nhiên 24 bit. Do đó, cùng một IV sẽ được sử dụng lại
nhiều lần. Bằng cách thu thập thông tin truyền đi, kẻ tấn công có thể có đủ
thông tin cần thiết để có thể bẻ khóa WEP đang dùng. Việc sử dụng 1 khóa
cố định được chọn bởi người sử dụng và ít được thay đổi (khóa WEP không
tự động được thay đổi) làm cho WEP rất dễ bị tấn công.
- Một khi khóa WEP đã được biết, kẻ tấn công có thể giải mã thông tin truyền
đi và có thể thay đổi nội dung của thông tin truyền. Do vậy, WEP không
đảm bảo được việc bảo mật và toàn vẹn dữ liệu.
WEP cho phép người dùng xác minh AP, trong khi AP không thể xác minh
tính xác thực của người dùng. Nói cách khác, WEP không cung ứng cơ chế xác
thực lẫn nhau
4. Chuyển sang WPA
4.1 WPA là gì?
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 co 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
4.2 Những thay đổi so với WEP
Trong những cải tiến quan trọng nhất của WPA là sử dụng hàm thay đổi
khóa TKIP. WPA cũng sử dụng thuật toán RC4 như WEP, nhưng mã hóa đầy đủ
128 bit. Và một đặc điểm khác là WPA thay đổi khóa cho mỗi gói tin. Các công cụ
thu thập các gói tin để khóa phá mã hóa đều không thể thực hiện được với WPA.
Bởi WPA thay đổi khóa 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 cả tính toà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. WPA có sẵn 2 lựa chọn: WPA Personal và WPA Enterprise. Cả
2 lựa chọn đều sử dụng giáo thức TKIP, và sự khác biệt chỉ là khóa khởi tạo mã
hóa lúc đầu. WPA Personal thích hợp cho gia đình và mạng văn phòng nhỏ, khóa
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 đó,
giao thức MAC (Media Access Control) Mỗi mảnh đó sẽ được mã hóa bởi
WEP. Một MAC header sẽ được thêm vào đằng trước và một bit để kiểm tra được
thêm vào cuối mỗi mảnh
Có thể thấy về cơ bản MSDU có thể được tách thành nhiều frame và
nhiều byte sẽ được thêm vào các frame tách rời, rồi sẽ được mã hóa. Mỗi một
frame như thế được gọi là một MPDU (MAC protocol data unit). Quá trình xử lý
này làm giảm kích thước tối đa của các frame được phát đi.
Chương trình xử lý dữ liệu như một khối các byte chưa định dạng .
Kích thước phụ thuộc vào số lượng MSDU và thiết lập phân mảnh. Thường là
trong khoảng từ 10 đến 1,500 byte. Bước thứ nhất trong mã hóa đó là thêm một
vai byte gọi là integrity check value (ICV).
2. Giá trị kiểm tra tính toàn vẹn
Mục đích của IVC là để ngăn ngừa việc các frame gửi đi bị xáo trộn. Cả ở
frame được mã hóa và không mã hóa, việc kiểm tra này để tìm ra có bit nào bị sai
lạc hay không trong quá trình truyền phát. Tất cả các byte trong frame được
kết hợp lại bởi CRC (cyclic redundancy check)
2.1 CRC – kiểm tra mã vòng dư (Cyclic Redundancy Check)
CRC (cyclic redundancy check) là một loại hàm băm, được dùng để
sinh ra giá trị kiểm thử, của một chuỗi bit có chiều dài ngắn và cố định, của các
gói tin vận chuyển qua mạng hay một khối nhỏ của tệp dữ liệu. Giá trị kiểm thử
được dùng để dò lỗi khi dữ liệu được truyền hay lưu vào thiết bị lưu trữ. Giá trị
của CRC sẽ được tính toán và đính kèm vào dữ liệu trước khi dữ liệu được truyền
đi hay lưu trữ. Khi dữ liệu được sử dụng, nó sẽ được kiểm thử bằng cách sinh ra
mã CRC và so khớp với mã CRC trong dữ liệu
CRC là một loại mã phát hiện lỗi. Cách tính toán của nó giống như phép
toán chia số dài trong đó thương số được loại bỏ và số dư là kết quả, điểm khác
biệt ở đây là sử dụng cách tính không nhớ (carry-less arithmetic) của một trường
hữu hạn. Độ dài của số dư luôn nhỏ hơn hoặc bằng độ dài của số chia, do đó số
chia sẽ quyết định độ dài có thể của kết quả trả về. Định nghĩa đối với từng loại
CRC đặc thù quyết định số chia nào được sử dụng, cũng như nhiều ràng buộc
byte kiểm tra. Sau đó được thêm vào cuối frame.
IVC được thêm vào
3. Chuẩn bị frame để truyền phát
Sau khi ICV được thêm vào, frame đã sẵn sàng để mã hóa. Đầu tiên, hệ
thống phải chọn một giá trị IV và thêm nó vào khóa bí mật WEP (giống như là
chọn lựa khóa hoạt động). Tiếp đến, nó được mã hóa bằng RC4. Cuối cùng, mỗi
byte đi qua từ sự kết hợp dữ liệu và khối ICV trong mã hóa. Và cứ mỗi byte đi qua
là có một byte được mã hóa cho đến khi quá trình hoàn tất. Đó gọi là mã hóa dòng
Để phía nhận biết được phải giải mã frame như thế nào, khóa và giá trị IV
phải được đặt ở phía trước của frame. Bốn byte được thêm vào cho mục đích đó.
Ba byte đầu tiên chứa 24- bit giá trị IV và byte sau chứa số KeyID 0, 1, 2, 3 như
trong hình.
Thêm vào IV và KeyID
Cuối cùng, MAC header được gắn vào và giá trị CRC được đặt vào cuối để
tìm ra lỗi trong quá trình truyền phát. Một bit trong MAC header chỉ ra cho nơi
nhận biết frame được mã hóa bằng WEP.
Phía nhận xử lý theo logic. Phía nhận thông báo rằng bit WEP được thiết
lập và nhờ vậy đọc và lưu giữ giá trị IV. Sau khi đọc bit KeyID, nơi nhận có thể
chọn được đúng khóa WEP, giá trị IV và thuật toán mã hóa RC4. Thông báo
rằng với RC4 không có sự khác nhau giữa quá trình mã hóa và giải mã. Nếu bạn
cho dữ liệu qua quá trình mã hóa hai lần, bạn sẽ nhận được dữ liệu khác với dữ
liệu đưa vào. Bởi vậy, bạn chỉ nên dùng một phương tiện cho cả mã hóa và giải
mã. Sau khi mã hóa, dữ liệu chạy qua một byte chỉ ra thời gian frame gốc. Bước
cuối cùng là tính toán ICV kiểm tra rằng giá trị có trùng khớp với giá trị
trong frame gửi
4. Mã hóa bằng thuật toán RC4
RC4 là tên của các thuật toán mã hóa được sử dụng trong WEP. Một
thuật toán mã hóa là một tập hợp các hoạt động mà bạn sử dụng để biến đổi văn
bản chưa mã hóa thành mật mã. Nó sẽ hữu ích, trừ khi có một thuật toán giải mã
tương ứng. Trong trường hợp của RC4, cùng một thuật toán được sử dụng để mã
nội dung bản tin được bổ xung thêm phần kiểm tra CRC để tạo thành một gói tin
mới, CRC ở đây được sử dụng để nhằm kiểm tra tính toàn vẹn của dữ liệu (ICV –
Intergrity Check Value), chiều dài của phần CRC là 32 bit ứng với 8 bytes. Gói tin
mới vẫn có nội dung ở dạng chưa mã hóa (plant text), sẽ được kết hợp với chuỗi
các khóa key stream theo thuật toán XOR để tạo ra một bản tin đã được mã hóa –
cipher text. Bản tin này và chuỗi IV được đóng gói thành gói tin phát đi.
Dữ liệu được đưa vào kết hợp với chuỗi mã được chia thành các khối
(block), các khối này có độ lớn tương ứng với độ lớn của chuỗi mã, ví dụ nếu ta
dùng chuỗi mã 64 bit thì khối sẽ là 8 byte, nếu chuỗi mã 128 bit thì khối sẽ là 16
byte. Nếu các gói tin có kích cỡ lẻ so với 8 byte (hoặc 16 byte) thì sẽ được chèn
thêm các ký tự “độn” vào để thành số nguyên lần các khối.
Bộ tạo chuỗi khóa là một yếu tố chủ chốt trong quá trình xử lý mã hóa vì nó
chuyển một khóa bí mật từ dạng ngắn sang chuỗi khóa dài. Điều này giúp đơn giản
rất nhiều việc phân phối lại các khóa, các máy kết nối chỉ cần trao đổi với nhau
khóa bí mật. IV mở rộng thời gian sống có ích cuả khóa bí mật và cung cấp khả
năng tự đồng bộ. Khóa bí mật có thể không thay đổi trong khi truyền nhưng IV lại
thay đổi theo chu kỳ. Mỗi một IV mới sẽ tạo ra một seed mới và một sequence
mới, tức là có sự tương ứng 1-1 giữa IV và key sequence.IV không cung cấp một
thông tin gì mà kẻ bất hợp pháp có thể lợi dụng.
Giải mã khi nhận về:
Quá trình giải mã khi nhận về
Quá trình giải mã cũng thực hiện tương tự như theo các khâu tương tự của
quá trình mã hóa nhưng theo chiều ngược lại. Bên nhận dùng Khóa dùng chung và
giá trị IV (tách được từ bản tin) làm 2 đầu vào của bộ sinh chuỗi mã RC4. Chuỗi
khóa do RC4 tạo ra sẽ kết hợp XOR với Cipher Text để tạo ra Clear Text ở đầu ra,
gói tin sau khi bỏ phần CRC sẽ còn lại phần Payload, chính là thông tin ban đầu
gửi đi. Quá trình giải mã cũng chia bản tin thành các khối như quá trình mã hóa.
II. CÁC VẤN ĐỀ VỀ BẢO MẬT
1. Chứng thực và xác nhận
1.1 Xác thực là gì
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.
3. Client nhận được chuỗi này này sẽ mã hóa chuỗi bằng thuật toán RC4 theo mã
khóa mà Client được cấp, sau đó Client gửi lại cho AP chuỗi đã mã hóa.
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 toá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
Theo nguyên tắc, nếu điểm truy cập hoạt động ở chế độ mở, nó luôn luôn
chấp nhận yêu cầu xác thực và đáp ứng lại với một thông báo xác thực thành công.
Nó là định nghĩa về hệ thống hoạt động mở. Tuy nhiên, trong thực tế có
nhiều hệ thống cung cấp các phương thức độc quyền, mà phổ biến nhất là danh
sách địa chỉ MAC (Medium Access Control). Điểm truy cập sẽ có một danh sách
địa chỉ MAC mà nó sẽ cho phép lien kết vào mạng. Danh sách đó được tạo ra bởi
người quản lý và chương trinh có sẵn. Xác thực sẽ bị từ chối trừ khi thiết bị có địa
chỉ MAC có ở trong danh sách. Không chống lại được việc giả mạo địa chỉ MAC,
nhưng nó mang đến sự bảo vệ cơ bản trước những phương thức tấn công đơn giản.
Xác thực dùng để chứng minh với điểm truy cập về tính hợp pháp của
thiết bị khi nó biết khóa bí mật. Khi mà thiết bị gửi yêu cầu xác thực, điểm truy cập
sẽ gửi một số ngẫu nhiên gọi là challenge text. Đó là một số tùy ý dài 128 bit (tốt
nhất là ngẫu nhiên). Thiết bị sau khi mã hóa số đó với khóa bí mật sử dụng WEP
và gửi trả nó về cho điểm truy cập. Vì điểm truy cập biết được số ngẫu nhiên đã
gửi đi, nên có thể kiểm tra kết quả gửi về với khóa chính xác. Thiết bị phải biết
khóa để mã hóa giá trị ngẫu nhiên. Chú ý rằng nó không chứng minh với thiết bị
là điểm truy cập biết khóa. Hơn nữa nếu một kẻ tấn công nghe được, nghĩa là bạn
đã đưa cho kẻ đó một mẫu thích hợp để có thể bắt đầu tấn công mạng của bạn.
Một lợi ích của trao đổi xác thức trong một mạng hợp lý là nó ngăn
chặn các trạm khác truy cập vào mạng nếu không biết khóa WEP.
2. Mã hóa – bảo mật và toàn vẹn dữ liệu
2.1 Khóa WEP
Tùy theo người dùng truy cập mạng ở đâu mà sẽ dùng các kiểu khóa WEP