DÂY WPA
Với rất nhiều lỗ hổng trong việc đảm bảo an ninh mạng của WEP, các nhà nghiên cứu đã phát triển một thế hệ bảo mật mới được gọi là IEEE 802.11i mà trong đó định nghĩa một kiểu mạng không dây mới gọi là “Mạng bảo mật mạnh” RSN.
Trong 1 số khía cạnh thì nó tương đối giống với mạng bình thường hoặc mạng WEP cơ bản. Tuy nhiên, để có thể tham gia vào mạng RSN, một thiết bị không dây cần có thêm một số chức năng mới. Tuy nhiên, hầu hết các thiết bị card wifi đang có trên thị trường không thể nâng cấp lên RSN bởi các hoạt động mã hoá không được tích hợp vào phần cứng và người sử dụng lại không muốn thay thế thiết bị của họ. Vì thế cần có một khoảng thời gian để mạng RSN có thể hoàn toàn đi vào hoạt động.Tuy nhiên, đã có một giải pháp để giải quyết vấn đề này. Các nhà nghiên cứu đã phát triển một giải pháp bảo mật dựa trên khả năng của những sản phẩm wifi hiện có. Đó chính là giao thức khoá toàn vẹn thời gian (TKIP). TKIP là một chế độ tuỳ chọn của RSN.
Sự phát triển của TKIP đã giúp nâng cấp cho các hệ thống hiện có rất nhiều. Tuy nhiên, công nghệ này không thể đợi đến khi được phêduyệt tiêu chuẩn vì nó sẽ mất thời gian. Chính vì thế hiệp hội Wifi – Aliance đã thôngqua một phương thức an ninh mới được phát triển dựa trên RSN nhưng chỉ sử dụng TKIP.
Có thể nói đây là một tập hợp con của RSN và được gọi là WPA (Wifi Protected Access). Nhiều nhà cung cấp đã
nâng cấp phần mềm cho các sản phẩm của họ để hỗ trợ phương thức WPA và hầu hết các sản phẩm mới đều đượctích hợp WPA. WPA sử dụng khoá toàn vẹn thời gian TKIP cho mã hoá và khuyến nghị sử dụng 802.1X/EAP cho nhận thực. Ngoài ra, WPA cũng đã bổ sung cơ chế kiểm tra toàn vẹn dữ liệu MIC để chống lại những gói tin giả mạo.
3.1. Phương thức kiểm soát truy nhập
3.1.1. Chuẩn chứng thực 802.1X
a. Giới thiệu
802.1X là một khái niệm tương đối đơn giản. Mục đích của nó là thực hiện việc kiểm soát truy nhập tại điểm mà người sử dụng tham gia vào mạng.
Nó chia mạng thành 3 phần:
• Máy trạm là thiết bị muốn gia nhập mạng
• Thiết bị nhận thực để kiểm soát truy nhập
• Máy chủ xác thực dùng để đưa ra các quyết định
Điểm để người truy nhập có thể kết nối vào mạng được gọi là cổng. Một mạng có thể có nhiều cổng khác nhau và các cổng này hoạt động hoàn toàn độc lập với nhau. VD như hub chuyển mạch LAN, Máy trạm sẽ liên kết với 1 cổng và mỗi cổng và mỗi cổng lại liên kết với thiết bị nhận thực để kiểm soát tình trạng của nó. Mục đích chính của các cổng này là để bảo vệ các kết nối mạng, nhất là tại nhữngđiểm kết nối không an toàn.
Ban đầu, 802.1X được thiết kế để sử dụng cho mạng có dây với ý tưởng là để bảo vệ các cổng trên hub chuyển mạch Ethernet. Tuy nhiên, sau khi được hoàn thiện, người ta đã nhận
ra rằng nguyên tắc này cũng có thể mở rộng để áp dụng cho cả mạng không dây. Cisco đã hợp nhất tất cả các khái niệm này vào trong một sản phẩm được sử dụng cho RSN trong 802.11i và sau đó là cho WPA.
Với ý tưởng thiết kế cho việc điều khiển các cổng LAN riêng lẻ, vậy thì nó ánh xạ sang mạng WLAN, nơi mà một điểm truy nhập có thể hỗ trợ nhiều thiết bị truy nhập cùng một lúc như thế nào? Chúng ta có thể coi mỗi kết nối không dây từ AP đến thiết bị truy nhập như là những kết nối độc lập. Trong thực tế, các nhà nghiên cứu chỉ cần thay thế kết nối vật lý của bộ chuyển mạch Hub của mạng LAN thành kết nối vật lý của mạng không
dây. Trong
bối cảnh
hoạt động
của
802.1X, mỗi thiêt bị truy cập là một máy trạm mong muốn được cung cấp các dịch vụ của AP ( thông thường là kết nối với một mạng có dây). Để thực hiện được việc này, các AP cần phải tạo cho mỗi máy trạm một cổng vật lý kết nối với thiết bị nhận thực. Mỗi thiết bị nhận thực có trách nhiệm điều khiển truy nhập cho các máy trạm di động mà nó được phân công. Cùng với cáccổng vật lý và thiết bị nhận thực, đây cũng có thể coi là một điều khiển chuyển mạch vật lý.
Hình : Cổng vật lý của IEEE 802.1X trong AP
802.1X 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ệ. Ngoài ra, 802.1X còn cung cấp một phương tiện để tự động thay đổi các khoá mã hoá dữ liệu, ví dụ như từ máy chủ RADIUS thông qua EAP. Framework này 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ẻ xấu không thể kết nối vào mạng được.
b. Các bước xác thực
Hình : Các bước xác thực trong IEEE 802.1X
Các AP gửi khung báo hiệu với các yếu tố thông tin WPA đến trạm phục vụ các thiết lập. Các yếu tố thông tin bao gồm các phương thức nhận thực bắt buộc (802.1X hoặc khoá chia sẻ trước) và thuật toán mã hoá (TKIP, AES)
• Bước 1: 802.1X được bắt đầu với một máy trạm chưa xác thực (client) cố gắng kết nối tới 1 thiết bị nhận thực (802.11 AP). Client sẽgửi một thông điệp bắt đầu EAP. Việc này sẽ bắt đầu một loạt các trao đổi thông điệp để xác thực client.
• Bước 2: AP trả lời với một EAP – Thông điệp yêu cầu nhận dạng
• Bước 3: Client gửi một EAP – gói tin trả lời chứa danh tính đến máy chủ xác thực. Ap sẽ trả lời bằng cách mở một cổng chỉ cho phép gói tin EAP từ client đi đến máy chủ xác thực nằm ở bên có dây của AP. Ap sẽ chặn tất cảcác lưu lượng khác như HTTP, DHCP và các gói dữ liệu cho đến khi AP có thể nhận dạng được client bằng cách sử dụng máy chủ xác thực ( ví dụ như RADIUS)
• Bướ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 client. Đ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.
• Bướ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 AP
• Bước 6: AP gửi EAP- gói tin thành công( hoặc từ chối) tới client
• Bước 7: Nếu máy chủ xác thực chấp nhận client, client sẽ được phép truy nhập vào các tài nguyên mạng.
Việc chứng thực của 802.1x được thực hiện trên một server riêng, server này sẽ quản lý các thông tin để xác thực người sử dụng như tên đăng nhập, mật khẩu, mã số thẻ, dấu vân tay, vv.. Khi người dùng gửi yêu cầu chứng thực, server 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, vv.. Nguyên lý này được gọi là RADIUS (Remote Authentication Dial−in User Service) Server – Máy chủ cung cấp dịch vụ chứng thực người dùng từ xa thông qua phương thức quay số. Phương thức quay số xuất hiện từ ban đầu với mục đích là thực hiện qua
đường điện thoại,
ngày nay không chỉ thực
hiện qua quay số mà
còn có thể thực hiện
trên những đường
truyền khác nhưng
người ta vấn giữ tên
RADIUS như xưa.
Các quá trình liên kết và xác thực được tiến hành như mô tả trong hình và thực hiện theo các bước sau:
Hình : Hoạt động của RADIUS Server
• Bước 1: Client gửi yêu cầu kết nối đến AP
• Bước 2: AP thu thập các yêu cầu của Client và gửi tới RADIUS Server
• Bước 3: RADIUS Server gửi đến Client yêu cầu nhập username và password
• Bước 4: Client gửi username và password đến cho RADIUS Server
• Bước 5: RADIUS Server sẽ kiểm tra username/passwordcó đúng không, nếu đúng thì RADIUS Server sẽ gửi cho Client mã khoá chung
• Bước 6: RADIUS Server cũng đồng thời gửi cho AP mã khoá này và báo với AP về quyền hạn và phạm vi được phép truy nhập của Client này
• Bước 7: Client và AP thực hiện trao đổi thông tin với nhau theo mã khoá đượ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 (session) khác nhau, thậm chí là còn có cơ chế 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 không phải để chỉ việc dùng chung của các máy tính Client mà để chỉ việc dùng chung giữa Client và AP.
3.1.3. Giao thức chứng thực mở rộng (EAP).
a. Giới thiệu.
Để đảm bảo an toàn trong quá trình trao đổi bản tin chứng thực giữa Client và AP không bị giải mã trộm, sửa đổi, người ta đưa ra khái niệm EAP (Extensible Authentication Protocol) – giao thức chứng thực mở rộng trên nền tảng của 802.1X.
Giao thức chứng thực mở rộng EAP là giao thức hỗ trợ, đảm bảo an ninh trong khi trao đổi các bản tin chứng thực giữa các bên bằng các phương thức mã hóa thông tin chứng thực. EAP có thể hỗ trợ, kết hợp với nhiều phương thức chứng thực của các hãng khác nhau, các loại hình chứng thực khác nhau ví dụ ngoài user/password như chứng thực bằng đặc điểm sinh học, bằng thẻ chip, thẻ từ, bằng khóa công khai, vv...Kiến trúc EAP cơ bản nó được thiết kế để vận hành trên bất cứ lớp đường dẫn nào và dùng bất cứ các phương pháp chứng thực nào.
Hình : Kiến trúc EAP cơ bản. Hinh : Bản tin EAP
Một bản tin EAP được thể hiện ở hình trên. Các trườngcủa bản tin EAP:
• Code:trường đầu tiên trong bản tin, dài 1 byte và dùng để xác định loại bản tin của EAP. Nó thường được dùng để thể hiện trường dữ liệu của bản tin.
• Identifier: dài 1 byte. Nó bao gồm một số nguyên không dấu được dùng để xác định các bản tin yêu cầu và trả lời. Khi truyền lại bản tin thì vẫn là các số identifier đó, nhưng việc truyền mới thì dùng các số identifier mới.
• Length: dài 2 byte. Nó chứa chiều dài của toàn bộ bản tin bao gồm các trường Code, Identifier, Length, và Data.
• Data: là trường cuối cùng và có độ dài thay đổi. Phụ thuộc vào loại bản tin, trường dữ liệu có thể là các byte rỗng. Cách thể hiện của trường dữ liệu được dựa trên giá trị của trường Code.
b. Các bản tin yêu cầu trả lời EAP.
Trao đổi trong chứng thực mở rộng EAP bao gồm các bản tin yêu cầu và trả lời. Nơi tiếp nhận chứng thực (Authenticator)
gửi yêu cầu tới hệ thống tìm kiếm truy cập, và dựa trên các bản tin trả lời , truy cập có thể được chấp nhận hoặc từ chối. Bản tin yêu cầu và trả lời được minh họa ở hình
Hình : Cấu trúc khung của bản tin trả lời
• Code: có giá trị là 1 nếu là bản tin yêu cầu và có giá trị là 2 nếu là bản tin trả lời. Trường Data chứa dữ liệu được dùng trong các bản tinyêu cầu và trả lời.
• Mỗi trường Data mang một loại dữ liệu khác nhau, phân ra loại mã xác định và sự liên kết dữ liệu như sau:
o Type: là một trường byte chỉ ra loại các bản tin yêu cầu hay trả lời. Chỉ có một byte được dùng trong mỗi gói tin. Khi một bản tin yêu cầu không được chấp nhận, nó có thể gửi một NAK để đề nghị thay đổi loại, có trên 4 loạichỉ ra các phương pháp chứng thực.
o Type–Data: là trường có thể thay đổi để làm rõ hơn nguyên lý của từng loại. Nơi tiếp nhận chứng thực thường dùng loại Identity như là yêu cầu thiết lập. Sau đó, việc xác định người dùng là bước đầu tiên trong trong chứng thực. Trường Type–Data có thể bao gồm chuỗi để nhắc người dùng, chiều dài của chuỗi được tính từ trường Length trong chính gói EAP.
o Loại code 1: indentity. Nơi tiếp nhận chứng thực thường dùng loại Identity như là yêu cầu thiết lập.
Sau đó, việc xác định người dùng là bước đầu tiên trong trong chứng thực. Trường Type–Data có thể bao gồm chuỗi để nhắc người dùng, chiều dài của chuỗi được tính từ trường Length trong chính gói EAP.
o Loại code 2 : Notification (Thôngbáo). Nơi tiếp nhận chứng thực có thể dùng loại thông báo để gửi một bản tin tới người dùng. Sau đó hệ thống của người dùng hiển thị bản tin đó.Bản tin thông báo được dùng để cung cấp bản tin tới người dùng từ hệ thống chứng thực, như là password về việc hết quyền sử dụng. Các bản tin đáp ứng phải được gửi để trả lời các yêu cầu thông báo. Tuy nhiên, chúng thường là các phản hồi đơn giản, và trường Type–Data có chiều dài là 0.
o Loại code 3: NAK. Các NAK được dùng để đưa ra một phương thức chứng thực mới. Nơi tiếp nhận chứng thực đưa ra chuỗi mời kết nối, được mã hóa bởi một loại mã. Các loại chứng thực được đánh số thứ tự trên 4. Nếu hệ thống người dùng không phù hợp với loai chứng thực của chuỗi này, nó có thể đưa ra một NAK. Các bản tin NAK của trường của trường Type–Data bao gồm một byte đơn tương ứng với loại chứng thực.
o Loại code 4: Chuỗi MD–5 (MD–5 Challenge). MD–5 Challenge thường được sử dụng trong EAP tương tự của giao thức CHAP, được đưa ra trong RFC 1994. Đây là yêu cầu bảo mật cơ bản mà EAP sử dụng gồm có tên đăng nhập và mật khẩu. MD–5 bảo vệ gói tin bằng cách tạora những dấu hiệu đặc trưng riêng (như chữ ký điện tử) lưu trong gói tin đó. MD-5 là một giao thức còn đơn giản, chạy nhanh, dễ bổ
sung. Nó không sử dụng chứng thực PKI,mức độ mã hóa của nó còn chưa cao, có khả năng bị tấn công kiểu thu hút.
o Loại code 5: One–time password (OPT). Hệ thống one–time password dùng bởi EAP được định nghĩa trong RFC 1938. Bản tin yêu cầu được đưa tới người dùng bao gồm chuỗi mời kết nối OPT. Trong một bản tin đáp ứng OPT (loại 5), trường Type–Data gồm có các từ ở từ điển OPT trong RFC 1938. Giống như tất cả các loại chứng thực, các bản tin trả lời có thể là các NAK (loại 3).
o Loại code 6: Đặc điểm thẻ Token (Generic Token Card). Các thẻ Token như là SecurID của RSA và Safeword của Secure Computing là phổ biến với nhiều nơi bởi vì chúng đưa ra sự bảo mật “ngẫu nhiên” các one–time password mà không có một phức tạp nào của một OPT. Các bản tin yêu cầu chứa đựng thông tin đặc điểm thẻ Token cần thiết cho chứng thực. Trường Type-Data của yêu cầu phải có chiều dài lớn hơn 0 byte. Trong các bản tin đáp ứng, trường Type–Data được dùng để mang thông tin được sao chép từ thẻ Token bởi người dùng. Trong cả bản tin yêu cầu và trả lời, trường chiều dài của gói EAP được tính là chiều dàibản tin yêu cầu của Type–Data.
c. Các khung trong EAP
Khi các trao đổi EAP kết thúc, người dùng hoặc chứng thực thành công hoặc không thành công. Khi nơi tiếp nhận chứng thực xác định việc trao đổi là hoàn tất nó đưa ra khung thành công (Code 3) và không thành công (Code4) để kết thúc trao
đổi EAP. Nó cho phép gửi nhiều bản tin yêu cầu trước khi chứng thực không thành công để cho phép người dùng nhận được thông tin chứng thực đúng.
Hình : Cấu trúc khung EPA thành công hay không thành công.
d. Chứng thực cổng.
Chứng thực tới các thiết bị mạng ở lớp đường dẫn là không mới. Chứng thực cổng mạng đã được biết đến từ trước. Hầu hết sự ra đời của nó đã có sự phát triển cơ sở hạ tầng khá rộng để phù hợp chứng thực người dùng, như là nguyên lý RADIUS servers, và LDAP directories.
• Khái niệm Port: để chỉ việc đóng mở cổng tương ứng với việc chấp nhận hay từ chối kết nối của Authenticator. Ngoài ra còn có thêm 1 port cho các tuyến đi qua mà không liên quan đến quá trình
chứng thực.
Hình : Cấu trúc cổng ( port )