2.1.5. Hạn chế của WEP
Do WEP sử dụng thuật tốn mã hóa dịng RC4 nên cần đảm bảo rằng với hai gói tin giống nhau sẽ khơng cho ra kết quả giống nhau sau khi đƣợc mã hóa hai lần khác nhau nhằm hạn chế khả năng suy đốn của kẻ tấn cơng. Do vậy một véc tơ khởi tạo (Initialization Vector - IV) đƣợc thêm vào trƣớc một khóa bí mật tới mơ đun RC4 và tạo ra một khóa dịng đƣợc sử dụng trong việc mã hóa dữ liệu nhằm tạo ra sự khác nhau sau 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 nào nê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.
Tuy nhiên chính việc sử dụng IV lại là nguồn gốc của hầu hết các vấn đề liên quan tới các lỗ hổng bảo mật của WEP. Do giá trị IV đƣợc truyền đi ở dạng khơng mã hóa và đƣợc đặt trong phần đầu (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 (có thể gọi là va chạm IV), kẻ tấn cơng 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 điểm truy cập (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 nay, đã có rất nhiều những cơng cụ có khả năng bẻ khóa WEP nhƣ AirCrack, AirSnort, WepAttack, WepCrack, WepLab…Chƣơng cuối sẽ tìm hiểu một trong số các cơng cụ trên và thực nghiệm bẻ khóa WEP đó là cơng cụ AirCrack.
2.1.6. Giải pháp WEP tối ưu
Với những điểm yếu nghiêm trọng của WEP và sự phát tán rộng rãi của các cơng cụ dị tìm khóa WEP trên mạng, giao thức này khơng cịn là giải pháp bảo mật đƣợc chọn cho các mạng có mức độ nhạy cảm thông tin cao. Tuy nhiên, trong rất nhiều các thiết bị mạng không dây hiện nay, giải pháp bảo mật dữ liệu đƣợc hỗ trợ phổ biến vẫn là WEP. Dù sao đi nữa, các lỗ hổng của WEP vẫn có thể đƣợc giảm thiểu nếu đƣợc cấu hình đúng, đồng thời sử dụng các biện pháp an ninh khác mang tính chất hỗ trợ.
Để gia tăng mức độ bảo mật cho WEP và gây khó khăn cho kẻ tấn cơng, nên sử dụng các biện pháp sau:
Sử dụng khóa WEP có độ dài 128 bit: Thƣờng các thiết bị WEP cho phép cấu hình khóa ở ba độ dài: 40 bit, 64 bit, 128 bit. Sử dụng khóa với độ dài 128 bit gia tăng số lƣợng gói dữ liệu mà kẻ tấn cơng cần phải có để phân tích IV, gây khó khăn và kéo dài thời gian giải mã khóa WEP. Nếu thiết bị khơng dây của bạn chỉ hỗ trợ WEP ở mức 40 bit (thƣờng gặp ở các thiết bị không dây cũ), bạn cần liên lạc với nhà sản xuất để tải về phiên bản cập nhật firmware mới nhất.
Thực thi chính sách thay đổi khóa WEP định kỳ: Do WEP không hỗ trợ phƣơng thức thay đổi khóa tự động nên sự thay đổi khóa định kỳ sẽ gây khó khăn cho ngƣời sử dụng. Tuy nhiên, nếu khơng đổi khóa WEP thƣờng xun thì cũng nên thực hiện ít nhất một lần trong tháng hoặc khi nghi ngờ có khả năng bị lộ khóa.
Sử dụng các cơng cụ theo dõi số liệu thống kê dữ liệu trên đƣờng truyền không dây: Do các cơng cụ dị khóa WEP cần bắt đƣợc số lƣợng lớn gói dữ liệu và kẻ tấn cơng có thể phải sử dụng các cơng cụ phát sinh dữ liệu nên sự đột biến về lƣu lƣợng dữ liệu có thể là dấu hiệu của một cuộc tấn công WEP, đánh động ngƣời quản trị mạng phát hiện và áp dụng các biện pháp phòng chống kịp thời.
2.2. Giao thức WPA (WI-FI Protected Access )
2.2.1. Tổng quan về WPA
WPA là phƣơng thức đƣợc liên minh Wi-Fi đƣa ra để thay thế WEP trƣớc những nhƣợc điểm không thể khắc phục của chuẩn cũ. WPA đƣợc áp dụng chính thức vào năm 2003, một năm trƣớc khi WEP bị loại bỏ. WPA đƣợc thiết kế để khắc phục những lỗ hổng bảo mật của WEP, đặc biệt là q trình mã hóa dữ liệu và q trình xác thực yếu của WEP.
WPA cung cấp hai cải tiến về bảo mật nhƣ sau:
Cải tiến mã hóa dữ liệu thơng qua giao thức tồn vẹn khóa thời gian TKIP (Temporal Key Integrity Protocol). Giao thức này vẫn sử dụng thuật tốn mã hóa RC4 nhƣng cung cấp sự cải tiến trong mã hóa dữ liệu với véc tơ khởi tạo (IV) đƣợc mở rộng lên tới 48 bit và chiều dài của khóa là 128 bit. Ngồi ra, TKIP còn hiện thực chức năng kiểm tra sự tồn vẹn thơng điệp (Message Integrity Check – MIC) 64 bit với giải thuật MICHAEL.
Xác thực ngƣời dùng ở mức độ doanh nghiệp thông qua chuẩn 802.1x và giao thức chứng thực mở rộng EAP (Extensible Authentication Protocol). 802.1x và EAP dùng một máy chủ xác thực tập trung, chẳng hạn nhƣ RADIUS để xác thực mỗi ngƣời dùng trong mạng trƣớc khi họ kết nối vào, đồng thời cũng sử dụng cơ chế “nhận dạng lẫn nhau” để ngăn chặn ngƣời dùng truy cập vào một mạng giả mạo có thể đánh cắp nhận dạng của họ.
Hai phƣơng thức phổ biến của WPA dành cho ngƣời sử dụng đó là:
WPA-Personal: hay cịn đƣợc gọi là WPA-PSK (Pre-Share Key), đƣợc thiết kế cho gia đình và mạng văn phịng nhỏ, không yêu cầu một máy chủ xác thực.
WPA- Enterprise: còn đƣợc gọi là WPA-802.1x, đƣợc thiết kế cho các mạng doanh nghiệp và yêu cầu một máy chủ xác thực RADIUS. Điều này đòi hỏi một thiết lập phức tạp hơn, nhƣng cung cấp an ninh bổ sung (ví dụ nhƣ bảo vệ để chống lại các cuộc tấn công từ điển vào mật khẩu ngắn), một EAP đƣợc sử dụng để xác thực.
2.2.2. Phương thức mã hóa TKIP
TKIP (Temporary Key Integrity Protocol) là giải pháp của IEEE đƣợc phát triển năm 2004. Là một nâng cấp cho WEP nhằm khắc phục các vấn đề bảo mật trong việc sử dụng mật mã dịng RC4 của WEP. TKIP đã có các điều chỉnh sau:
Kiểm tra tính tồn vẹn thơng điệp (MIC):
Tồn vẹn thơng điệp là một phần không thể thiếu của bảo mật. WEP sử dụng một phƣơng pháp để phát hiện việc sửa đổi, đó là kiểm tra tính tồn vẹn của giá trị (ICV). Tuy nhiên nó hoạt động khơng hiệu quả.
TKIP cung cấp phƣơng thức để kiểm tra tính tồn vẹn của thông điệp MIC (Message Integrity Check) giúp kiểm tra xem gói tin đã bị thay đổi hay chƣa nhằm bảo đảm tính chính xác của gói tin.
TKIP sử dụng nhiều khóa chính. Khi cần mã hóa các khung tin, các khóa sẽ đƣợc sinh ra từ các khóa chính này. Các khóa này đƣợc sinh và quản lý bởi kiến trúc mạng an toàn ổn định (RSN- Robust Security Network). TKIP vẫn giữ cơ chế mã hóa RC4, nó sinh ra các khóa RC4 duy nhất cho mỗi khung tin từ khóa chính. Q trình này gọi là trộn khóa (key mixing). Vì việc dùng chung khóa trong một khoảng thời gian có thể bị kẻ tấn cơng dị ra trƣớc khi kịp đổi nên ngƣời ta đã đƣa ra phƣơng pháp là thay đổi mã khóa này theo từng gói tin. Nguyên lý thực hiện đơn giản bằng cách thay vì đƣa ra giá trị mã khóa tới đầu vào của RC4, ngƣời ta sẽ kết hợp khóa này với IV bằng hàm băm Hash, rồi đƣa kết quả này gọi là mã khóa tổ hợp tới RC4. Vì mã RC4 thay đổi liên tục (tăng tuần tự) theo mỗi gói tin nên mã khóa tổ hợp cũng thay đổi liên tục dù mã khóa chƣa đổi.
Hình 2.7 Q trình mã hóa khi truyền đi sau khi bổ sung
TKIP thay thế thuật tốn băm tuyến tính CRC bằng thuật tốn băm ổn định hơn là thuật tốn Michael. Thuật tốn này sinh ra mã tồn vẹn thông điệp gọi là MIC. Thêm vào đó địa chỉ nguồn của khung tin cũng đƣợc bảo vệ bởi mã toàn vẹn nhằm phát hiện các khung tin bị giả mạo địa chỉ nguồn.
MIC bổ sung thêm số thứ tự các trƣờng trong khung dữ liệu (AP sẽ loại bỏ những khung nào sai số thứ tự đó) để tránh trƣờng hợp kẻ tấn cơng chèn các gói tin giả mạo sử dụng lại giá trị IV cũ.
MIC bổ sung thêm một trƣờng tên là MIC vào trong khung dữ liệu để kiểm tra sự toàn vẹn dữ liệu nhƣng với thuật toán kiểm tra phức tạp, chặt chẽ hơn ICV.
Hình 2.8 Cấu trúc khung dữ liệu trước và sau khi bổ sung
Phƣơng pháp đƣợc đƣa ra là kết hợp tất cả các byte trong thông điệp lại với nhau để tạo ra một giá trị kiểm tra tính tồn vẹn thơng điệp (MIC) và gửi giá trị này đi cùng thông điệp. MIC đƣợc tạo ra bằng một quy trình đặc biệt và kết hợp với một khóa bí mật. Bên nhận sẽ thực hiện tính tốn và so sánh kết quả MIC. Nếu trùng khớp tức là thơng điệp đƣợc an tồn, ngƣợc lại rất có thể thơng điệp đã bị giả mạo hoặc thay đổi. Phƣơng thức này khá an tồn bởi kẻ tấn cơng khơng thể tính đƣợc giá trị MIC trừ khi biết đƣợc khóa bí mật. Có nhiều phƣơng pháp để tính tốn giá trị MIC, nhƣng phổ biến nhất vẫn là sử dụng thuật toán Michael.
Véc tơ khởi tạo IV:
Để giảm thiểu nguy cơ tấn công vào véc tơ khởi tạo, TKIP tăng độ dài véc tơ khởi tạo từ 24 bit lên 48 bit. Ban đầu IV của WEP đƣợc thêm vào phần trƣớc của khóa bí mật để tạo ra khóa mã hóa RC4. Do đó, 40 bit khóa bí mật sẽ kết hợp với 24 bit IV để tạo ra khóa 64 bit RC4. Tuy nhiên với IV mới, khóa RC4 sẽ là 88 bit. Điều này sẽ gây khó khăn khi áp dụng bởi hệ thống phần cứng không đáp ứng đƣợc. Do đó giải pháp đƣa ra là thay vì kết hợp khóa bí mật và IV để tạo khóa RC4 ngƣời ta đã tách IV ra làm hai phần: 16 bit đầu tiên của IV đƣợc tăng thêm để tạo thành 24 bit, điều này sẽ tránh đƣợc khóa yếu, 24 bit này sẽ đƣợc sử dụng nhƣ trong WEP. Tuy nhiên thay vì lấy giá trị này để tạo ra các khóa bí mật, một bộ khóa mới đƣợc tạo ra bằng cách kết hợp khóa bí mật với 32 bit IV cịn lại. Điều này giúp cho giá trị của khóa đƣợc sử dụng để mã hóa RC4 là khác nhau với mỗi giá trị IV và cấu trúc khóa RC4 bao gồm 24 bit IV nhƣ cũ và trƣờng 104 bit khóa bí mật.
Hình 2.9 Tạo khóa RC4
2.2.3. Phương thức kiểm soát truy cập
2.2.3.1. Chuẩn chứng thực 802.1X
Phƣơng pháp chứng thực đƣợc sử dụng để chứng thực các thông tin ngƣời dùng (và máy chủ) trên các mạng WPA đƣợc định nghĩa theo chuẩn IEEE 802.1X. Chuẩn 802.11X cung cấp một cơ cấu hoạt động hiệu quả cho chứng thực và kiểm soát lƣu lƣợng ngƣời dùng đến một mạng đƣợc bảo vệ. Ngồi ra 802.1X cịn cung cấp một phƣơng tiện để tự động thay đổi các khóa mã hóa dữ liệu, cho phép sử dụng một máy chủ xác thực trung tâm mà có thể xác thực lẫn nhau làm cho kẻ tấn công không thể kết nối vào mạng đƣợc.
Thông tin xác thực giữa máy chủ (Server) và máy khách (Client) sẽ đƣợc trao đổi thông qua giao thức xác thực mở rộng EAP (Extensible Authentication Protocol). Trong quá trình này điểm truy cập (AP) sẽ làm nhiệm vụ chuyển giao thông tin giữa máy chủ và máy khách muốn xác thực. Các bƣớc thực hiện nhƣ sau:
một thông điệp bắt đầu yêu cầu muốn đƣợc kết nối đến mạng. Việc này sẽ bắt đầu với một loạt các trao đổi thông điệp để xác thực máy khách.
2. Điểm truy cập trả lời với một thông điệp yêu cầu nhận dạng
3. Máy khách gửi một gói tin trả lời chứa danh tính đến máy chủ xác thực.
4. Các máy chủ xác thực sử dụng một thuật toán xác thực cụ thể để xác minh danh tính của máy khách. Điều này có thể đƣợc thơng qua bằng cách sử dụng các chứng chỉ số hoặc một vài loại chứng thực EAP khác.
5. Các máy chủ xác thực sẽ gửi thông điệp hoặc chấp nhận hoặc từ chối tới điểm truy cập.
6. Điểm truy cập gửi gói tin thơng báo thành công hoặc từ chối tới máy khách.
7. Nếu máy chủ xác thực chấp nhận máy khách, máy khách sẽ đƣợc phép truy cập vào các tài nguyên mạng.
Chứng thực 802.1X khơng dựa trên cổng (Port). Điều này có nghĩa là khi ai đó cố gắng kết nối đến một mạng đƣợc bảo vệ, sự truyền thông sẽ đƣợc phép qua một cổng ảo để truyền tải các thơng tin đăng nhập. Nếu q trình thẩm định thành cơng, các khóa mã hóa sẽ đƣợc gửi đi một cách an toàn và ngƣời dùng lúc này sẽ đƣợc trao quyền truy cập hoàn toàn.
Cách xác thực này yêu cầu một máy chủ ngoài đƣợc gọi là máy chủ Remote Authentication Dial In User Service (RADIUS) hoặc Authentication, Authorization, và Accounting (AAA), đƣợc sử dụng cho một loạt các giao thức mạng. Một máy chủ RADIUS cần phải hiểu ngôn ngữ của giao thức xác thực mở rộng EAP và có thể truyền thơng với các AP khơng dây (các máy khách RADIUS hoặc các bộ thẩm định). Máy chủ RADIUS về bản chất sẽ phục vụ nhƣ một máy trung gian giữa các AP và dữ liệu ngƣời dùng. Để từ đó các AP có thể truyền thơng trực tiếp với máy khách 802.1X, cũng đƣợc nói đến nhƣ một 802.1X Supplicant, trên máy tính hoặc thiết bị của ngƣời dùng.
2.2.3.2. Nguyên lý RADIUS Server
Việc xác thực của 802.1X đƣợc thực hiện trên một máy chủ (Server) riêng, máy chủ này sẽ quản lý các thông tin để xác thực ngƣời sử dụng nhƣ:
máy chủ này sẽ tra cứu dữ liệu để xem ngƣời dùng này có hợp lệ khơng, đƣợc cấp quyền truy cập đến mức nào… Nguyên lý này đƣợc gọi là RADIUS Server - máy chủ cung cấp dịch vụ xác thực ngƣời dùng từ xa thông qua phƣơng thức quay số. Các bƣớc thực hiện nhƣ sau:
1. Máy khách gửi yêu cầu kết nối đến điểm truy cập.
2. Điểm truy cập thu thập các yêu cầu của máy khách và gửi tới RADIUS Server.
3. RADIUS Server gửi đến máy khách yêu cầu nhập tên (username) và mật khẩu (password).
4. Máy khách gửi tên và mật khẩu đến cho RADIUS Server.
5. RADIUS Server kiểm tra tên và mật khẩu có đúng khơng, nếu đúng sẽ gửi cho máy khách mã khóa chung.
6. RADIUS Server cũng đồng thời gửi cho điểm truy cập mã khóa này và báo với điểm truy cập về quyền hạn và phạm vi đƣợc phép truy cập của máy khách này.
7. Máy khách và điểm truy cập thực hiện trao đổi thông tin với nhau theo mã khóa đƣợc cấp.
Để nâng cao tính bảo mật, RADIUS Server sẽ tạo ra các khóa dùng chung khác nhau cho các máy khác nhau trong các phiên làm việc khác nhau, thậm chí có thể thay đổi mã khóa đó thƣờng xuyên theo định kỳ. Khái niệm khóa dùng chung lúc này là để chỉ việc dùng chung giữa máy khách và điểm truy cập (AP).
2.2.3.3. Giao thức chứng thực mở rộng EAP
Để đảm bảo an tồn trong q trình trao đổi thơng tin xác thực giữa máy khách và điểm truy cập không bị giải mã trộm, hoặc sửa đổi ngƣời ta đƣa ra một giao thức chứng thực mở rộng trên nền tảng của 802.1X đƣợc gọi là EAP