Tấn công Man-in-the-Middle (Man-in-the-Middle Attack)

Một phần của tài liệu Các giao thức bảo mật mạng không dây (Trang 26)

Hình 1.14: Mô phỏng hình thức tấn công Man-in-the-Middle

Tấn công theo kiểu Man-in-the-middle có nghĩa là dùng một khả năng mạnh hơn chen vào giữa hoạt động của các thiết bị và thu hút, giành lấy sự trao đổi thông tin của thiết bị về mình. Thiết bị chèn giữa đó phải có vị trí, khả năng thu phát trội hơn các thiết bị sẵn có của mạng. Một đặc điểm nổi bật của kiểu tấn công này là người sử dụng không thể phát hiện ra được cuộc tấn công, và lượng thông tin mà thu nhặt được bằng kiểu tấn công này là giới hạn. Hacker sử dụng một AP để đánh cắp các node di động bằng cách gởi tín hiệu RF mạnh hơn AP hợp pháp đến các node đó. Các node di động nhận thấy có AP phát tín hiệu RF tốt hơn nên sẽ kết nối đến AP giả mạo này, truyền dữ liệu có thể là những dữ liệu nhạy cảm đến AP giả mạo và hacker có toàn

quyền xử lý. Để làm cho client kết nối lại đến AP giả mạo thì công suất phát của AP giả mạo phải cao hơn nhiều so với AP hợp pháp trong vùng phủ sóng của nó. Việc kết nối lại với AP giả mạo được xem như là một phần của roaming nên người dùng sẽ không hề biết được. Việc đưa nguồn nhiễu toàn kênh (all-band interference - chẳng hạn như bluetooth) vào vùng phủ sóng của AP hợp pháp sẽ buộc client phải roaming.

CHƯƠNG II

CÁC GIAO THỨC BẢO MẬT TRONG MẠNG KHÔNG DÂY 2.1 CÁC GIẢI PHÁP BẢO MẬT MẠNG KHÔNG DÂY

Bảo mật là vấn đề rất quan trọng, đặc biệt rất được sự quan tâm của các cơ quan nhà nước và các doanh nghiệp. Không những thế, bảo mật cũng là nguyên nhân khiến cho các cơ quan, doanh nghiệp e ngại khi cài đặt mạng cục bộ không dây (wireless LAN). Họ lo ngại về bảo mật trong WEP(Wired Equivalent Privacy) và quan tâm tới những giải pháp bảo mật mới thay thế an toàn hơn. IEEE và Wi-Fi Alliance đã phát triển một giải pháp bảo mật hơn, đó là bảo vệ truy cập Wi-Fi WPA (Wi-Fi Protected Access) và IEEE 802.11i (cũng được gọi là "WPA2 Certified" - theo Wi-Fi Alliance) và một giải pháp khác mang tên VPN Fix cũng giúp tăng cường bảo mật cho mạng không dây. Theo Webtorial, WPA và 802.11i được sử dụng tương ứng là 29% và 22%. Mặt khác, 42% được sử dụng cho các "giải pháp tình thế" khác như: bảo mật hệ thống mạng riêng ảo VPN (Vitual Private Network) qua mạng cục bộ không dây.

2.2 WEP (Wired Equivalency Privacy) 2.2.1 Giới thiệu về WEP

WEP (Wired Equivalent 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. 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ư 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 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ấn đề mã hóa dữ liệu được ưu tiên hàng đầu, vì đặc tính của mạng không dây là không 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 dữ liệu nếu không được bảo vệ.

WEP cung cấp bảo mật cho dữ liệu trên mạng không dây qua phương thức mã hóa sử dụng thuật toán đối xứng RC4, được Ron Rivest (Hãng RSA Security Inc) phát triển. Thuật toán RC4 cho phép chiều dài của khóa thay đổi và có thể lên đến 256 bit.

Chuẩn 802.11 bắt buộc các thiết bị WEP phải hỗ trợ chiều dài khóa tối thiểu là 40 bit, đồng thời đảm bảo tùy chọn hỗ trợ cho các khóa dài hơn. Với phương thức mã hóa RC4, WEP cung cấp tính bảo mật và toàn vẹn của thông tin trên mạng không dây, đồng thời được xem như một phương thức kiểm soát truy cập. Một máy nối mạng không dây không có khóa WEP chính xác sẽ không thể truy cập đến Access Point (AP) và cũng không thể giải mã hay thay đổi dữ liệu trên đường truyền.

Hiện nay, đa số các thiết bị không dây hỗ trợ WEP với ba chiều dài khóa: 40 bit, 64 bit và 128 bit. Tuy nhiên, đã có những phát hiện của giới phân tích an ninh cho thấy nếu bắt được một số lượng lớn nhất định dữ liệu đã mã hóa sử dụng WEP và sử dụng công cụ thích hợp, có thể dò tìm được chính xác khóa WEP trong thời gian ngắn. Điểm yếu này là do lỗ hổng trong cách thức WEP sử dụng phương pháp mã hóa RC4.

Hình 2.1: Mã hóa WEP sử dụng RC4

2.2.2 Những hạn chế của WEP

Do WEP sử dụng RC4, một thuật toán sử dụng phương thức mã hóa dòng (stream cipher), nên cần một cơ chế đảm bảo hai dữ liệu giống nhau sẽ không cho kết quả giống nhau sau khi được mã hóa hai lần khác nhau. Đây là một yếu tố quan trọng trong vấn đề mã hóa dữ liệu nhằm hạn chế khả năng suy đoán khóa của hacker. Để đạt mục đích trên, một giá trị có tên Initialization Vector (IV) được sử dụng để cộng thêm với khóa nhằm tạo ra khóa khác nhau mỗi lần mã hóa. IV là một giá trị có chiều dài 24 bit và được chuẩn IEEE 802.11 đề nghị (không bắt buộc) phải thay đổi theo tưng gói dữ liệu. Vì máy gửi tạo ra IV không theo định luật hay tiêu chuẩn, IV bắt buộc phải được gửi đến máy nhận ở dạng không mã hóa. Máy nhận sẽ sử dụng giá trị IV và

khóa để giải mã gói dữ liệu. Cách sử dụng giá trị IV là nguồn gốc của đa số các vấn đề với WEP. Do giá trị IV được truyền đi ở dạng không mã hóa và đặt trong header của gói dữ liệu 802.11 nên bất cứ ai "tóm được" dữ liệu trên mạng đều có thể thấy được. Với độ dài 24 bit, giá trị của IV dao động trong khoảng 16.777.216 trường hợp. Những chuyên gia bảo mật tại đại học California-Berkeley đã phát hiện ra là khi cùng giá trị IV được sử dụng với cùng khóa trên một gói dữ liệu mã hóa (khái niệm này được gọi nôm na là va chạm IV), hacker có thể bắt gói dữ liệu và tìm ra được khóa WEP. Thêm vào đó, ba nhà phân tích mã hóa Fluhrer, Mantin và Shamir (FMS) đã phát hiện thêm những điểm yếu của thuật toán tạo IV cho RC4. FMS đã vạch ra một phương pháp phát hiện và sử dụng những IV lỗi nhằm tìm ra khóa WEP. Thêm vào đó, một trong những mối nguy hiểm lớn nhất là những cách tấn công dùng hai phương pháp nêu trên đều mang tính chất thụ động. Có nghĩa là kẻ tấn công chỉ cần thu nhận các gói dữ liệu trên đường truyền mà không cần liên lạc với Access Point. Điều này khiến khả năng phát hiện các tấn công tìm khóa WEP đầy khó khăn và gần như không thể phát hiện được. Hiện tại đã có những công cụ có khả năng tìm khóa WEP như AirCrack, AirSnort, dWepCrack, WepAttack, WepCrack, WepLab. Tuy nhiên, để sử dụng những công cụ này đòi hỏi nhiều kiến thức chuyên sâu và chúng còn có hạn chế về số lượng gói dữ liệu cần bắt được.

2.2.3 Quá trình chứng thực trong giao thức WEP

Đặc điểm kỹ thuật của IEEE 802.11 đòi hỏi tất cả các thiết bị không dây yêu cầu dịch vụ chạy một giao thức xác thực. Có 2 lựa chọn cho một STA để xác thực đến một STA khác hoặc một Access Point: trước tiên, các STA có thể yêu cầu sử dụng xác thực hệ thống mở hoặc chia sẻ khóa xác thực. Trong xác thực hệ thống mở, các thực thể được yêu cầu khẳng định chính nó và nếu nhận được sự hỗ trợ tư xác thực hệ thống mở, nó sẽ trả về một thông báo cho biết việc xác thực thành công. Trong quá trình chia sẻ khóa xác thực, yêu cầu của STA là đòi hỏi phải cung cấp bằng chứng quyền sở hữu của khóa bí mật được chia sẻ. Quá trình chứng thực trong hệ thống mở là 1 sự trao đổi 2 chiều, trong khi đó quá trình chứng thực sử dụng khóa chia sẻ lại là sự trao đổi 4 chiều. Trong cả 2 trường hợp, các thông báo xác thực được định nghĩa là một phân nhóm trong mục quản lý các thông báo. Chúng bao gồm những thành phần sau:

• Kiểu thông báo: Quản lý.

• Loại thông báo: Xác thực.

• Những mục thông tin:

- Thuật toán xác thực: Trường này chứa giá trị 0 cho chứng thực hệ thống mở và giá trị 1 cho việc chia sẻ khóa chứng thực.

- Xác định STA ID (tùy chọn). Thông tin này được yêu cầu trong thông báo 1 và cũng giống như các trường SA của MAC header, và được tùy chọn trong tất cả các thông báo khác.

- Chuỗi chứng thực số. Số chuỗi được khởi tạo tư 1 và tăng thêm 1 cho mỗi thông báo chứng thực tiếp theo. Trường này có giá trị 1, 2, 3 hoặc 4.

- Xác thực thông tin theo thuật toán phụ thuộc (algorithm-dependent). Trường này không thực sự cần thiết trong xác thực hệ thống mở, thường bao gồm các thông điệp đầu tiên và cuối cùng của 1 trong 2 phương thức xác thực. Trong chế độ xác thực chia sẻ khóa, trường này bao gồm đoạn văn bản yêu cầu.

2.2.3.1 Xác thực hệ thống mở:

Hình 2.2: Minh họa quá trình xác thực hệ thống mở

Đây là sự trao đổi 2 chiều bắt đầu với Requester gửi địa chỉ MAC của nó (SA trong trường MAC header). Nếu Responder hỗ trợ xác thực hệ thống mở, nó sẽ yêu cầu Requester khẳng định lại định danh để nhận dạng danh tính thực.

2.2.3.2 Xác thực chia sẻ khóa

Xác thực chia sẻ khóa yêu cầu hỗ trợ WEP. Mục tiêu của quá trình trao đổi này là STA yêu cầu dịch vụ 802.11 cung cấp một bằng chứng về sở hữu của 1 khóa bí mật, mà khóa đó được phép chia sẻ trong quá trình xác thực, chia sẻ với STA hoặc AP. Chứng thực chia sẻ khóa là quá trình trao đổi 4 chiều, bao gồm những bước sau:

• Xác định đối tượng. Thông điệp đầu tiên mà STA gửi yêu cầu đến STA khác hay Access Point là phải cung cấp dịch vụ hoặc có kết nối không dây. Việc xác định thuật toán để chỉ ra chế độ chia sẻ khóa, và cũng khẳng định yêu cầu của STA gửi.

• Yêu cầu. Các STA hoặc AP đáp ứng yêu cầu của Requester bằng cách chứng minh là nó thực sự giữ bản sao của cả 2 bên chia sẻ khóa. Với mục đích này, Responder sẽ gửi 1 đoạn văn bản yêu cầu ngẫu nhiên 1 phần thông tin của thuật toán phụ thuộc trong khung chứng thực. (adsbygoogle = window.adsbygoogle || []).push({});

• Trả lời yêu cầu. Requester sẽ trả lời yêu cầu bằng cách xây dựng 1 khung xác thực, với 1 số thứ tự là 0,1 hoặc 2, cùng với đoạn văn bản nhận yêu cầu trong trường thông tin của thuật toán phụ thuộc. Sau đó, nó sẽ mã hóa các khung xác thực sử dụng WEP. Các khóa mã hóa WEP là chìa khóa bí mật được chia sẻ và do đó chỉ giữ 1 phần khóa có thể đáp ứng yêu cầu của thông báo 2.

• Kết thúc quá trình. Các thông báo cuối cùng bao gồm các kết quả của quá trình trao đổi trên. Responder sẽ mở gói thông báo 3 sử dụng WEP với các bản sao của khóa bí mật đã chia sẻ. Nếu quá trình kiểm tra toàn vẹn và nếu các yêu cầu nhận được trùng với những yêu cầu ban đầu, STA sẽ gửi yêu cầu dịch vụ được coi là hợp pháp và Responder sẽ đáp trả yêu cầu dịch vụ mà Requester đã yêu cầu.

Hình 2.3: Minh họa quá trình xác thực khóa chia sẻ

2.2.4 Quá trình đóng gói và mở gói gói tin trong WEP

2.2.4.1 Thuật toán sử dụng

a. Mã hóa số RC4

RC4 là thuật toán mã hóa được sử dụng trong quá trình đóng gói các gói tin của WEP, vì dễ thực hiện trong phần cứng hay phần mềm, đơn giản và hiệu quả. Thêm vào đó, giá cả các thiết bị 802.11 điển hình khá thấp, điều này có thể coi là 1 sự lựa chọn phù hợp. Tuy nhiên, RC 4 là 1 thuật toán mã hóa dòng kèm theo 1 số báo trước. Trong RC4, 1 khóa phiên được sử dụng như 1 khởi tạo để tạo ra 1 khóa dòng (keystream) có chiều dài cần thiết; keystream này là thuật toán XOR kết hợp với văn bản gốc để tạo ra văn bản đã mã hóa. Nếu 1 phần của 1 dòng trong văn bản gốc bị lộ, sẽ rất dễ dàng cho việc lấy được những dòng văn bản gốc khác.

RC4 hoạt động tốt ví dụ như trong TLS, là giao thức được lựa chọn trong nhiều triển khai SSL/TLS. SSL/TLS hoạt động trên TCP, và do đó, các gói dữ liệu đáng tin cậy mà TLS đã đóng gói làm cho RC4 là 1 sự lựa chọn hoàn hảo.

b. Mã hóa toàn vẹn CRC-32

WEP chỉ định CRC-32 là thuật toán toàn vẹn. Quá trình kiểm tra được tính toán qua MPDU, ghép nối tới MPDU, và MPDU cộng với quá trình kiểm tra đã được mã hóa sử dụng RC4.

Thật không may khi CRC-32 không phải là 1 thuật toán toàn vẹn khóa và do đó, hacker có thể dễ dàng tạo ra 1 quá trình kiểm tra đúng. Tư RC4 là 1 thuật toán mã hóa dòng, các quá trình mã hóa không đủ khả năng để bảo vệ đúng nghĩa.

2.2.4.2 Quá trình mã hóa gói tin

Quá trình đóng gói các gói tin của WEP khá đơn giản và bao gồm những bước sau:

• Bảo vệ tính toàn vẹn. Trước tiên, CRC-32 được sử dụng để bảo về MPDU. Các vector kiểm tra tính toàn vẹn (ICV) sử dụng CRC-32 để tính toán và nối vào phần cuối của MPDU, tư đó dẫn đến việc thêm vào 4 octets (8 bit) để MPDU gửi đi.

• Tạo keystream. Quá trình tạo keystream trong WEP có thể được xử lý độc lập với quá trình tạo CRC-32. 1 IV 24 bit mới sẽ được nối với khóa bí mật được chia sẻ để tạo thành 1 khóa WEP 64 bit hoăc 128 bit.

• Tạo bản mã. Quá trình tạo bản mã là quá trình kết hợp các keystream với MPDU nối với ICV sử dụng thuật toán XOR.

• Tạo header. Là quá trình trong đó bao gồm các IV 24 bit và các octets khác với bit 0 và 1 đại diện cho key ID. Như vậy header được thêm vào 4 octets so với chiều dài của MPDU gửi đi, khiến cho gói mở rộng tổng thể do WEP đóng gói lên đến 8 octets.

Hình 2.4: Minh họa quá trình đóng gói gói tin 2.2.4.3 Quá trình giải mã gói tin

Quá trình giải mã gói tin cũng tương tự như quá trình mã hóa, và trong thực tế, quá trình này sử dụng lại bước tạo keystream. Bao gồm các bước như sau:

• Trước tiên, một MPDU đã được mã hóa chứa các IV và key ID của khóa bí mật được chia sẻ được sử dụng để tạo RC4 keystream. Sử dụng key ID, các STA hoặc AP sẽ tìm kiếm khóa bí mật được chia sẻ và nối IV trong WEP header với bản sao của khóa bí mật. Sau đó, người nhận sẽ dùng các seed được hình thành bởi quá trình nối trên để tạo keystream.

• Tiếp theo, người nhận sử dụng thuật toán XOR với keystream và MPDU đã nhận được trư đi WEP header (ban đầu là 4 octets, sau đó là MAC header). Kết quả thu được là MPDU gốc và ICV.

• Sau khi nhận, quá trình xử lý để tính toán các ICV của MPDU đã được giải mã bằng cách sử dụng thuật toán CRC-32. Các ICV gửi được tính trùng với các ICV nhận.

• Bước cuối cùng, các STA nhận hoặc AP nhận sẽ so sánh ICV gửi và ICV nhận. Nếu cả 2 phù hợp thì MPDU được chấp nhận. Nếu không, nó sẽ bị hủy bỏ (dropped).

Hình 2.5: Minh họa quá trình giải mã gói tin

Tóm lại, mặc dù có những nhược điểm nghiêm trọng, bảo mật WEP vẫn tốt hơn là không dùng cơ chế mã hóa nào cho mạng không dây. WEP có thể được xem như một cơ chế bảo mật ở mức độ thấp nhất, cần thiết được triển khai khi không thể

Một phần của tài liệu Các giao thức bảo mật mạng không dây (Trang 26)