BẢO MẬT WPA2

Một phần của tài liệu các phương pháp bảo mật trong mạng không dây (Trang 44 - 73)

Một giải pháp về lâu dài là sử dụng 802.11i tƣơng đƣơng với WPA2, đƣợc chứng nhận bởi Wi-Fi Alliance. Chuẩn này sử dụng thuật toán mã hoá mạnh mẽ và đƣợc gọi là Chuẩn mã hoá nâng cao AES. AES sử dụng thuật toán mã hoá đối xứng theo khối Rijndael, sử dụng khối mã hoá 128 bit, và 192 bit hoặc 256 bit. ể đánh giá chuẩn mã hoá này, Viện nghiên cứu quốc gia về Chuẩn và Công nghệ của Mỹ, NIST (National Institute of Standards and Technology), đã thông qua thuật toán mã đối xứng này.

Lưu ý: Chuẩn mã hoá này đƣợc sử dụng cho các cơ quan chính phủ Mỹ để bảo vệ

các thông tin nhạy cảm.

Trong khi AES đƣợc xem nhƣ là bảo mật tốt hơn rất nhiều so với WEP 128bit hoặc 168bit DES (Digital Encryption Standard). ể đảm bảo về mặt hiệu n ng, quá trình mã hoá cần đƣợc thực hiện trong các thiết bị phần cứng nhƣ tích hợp vào chip. Tuy nhiên, rất ít ngƣời sử dụng mạng không dây quan tâm tới vấn đề này. Hơn nữa, hầu hết các thiết bị cầm tay Wi-Fi và máy quét mã vạch đều không tƣơng thích với chuẩn 802.11i.

2.5. BẢO MẬT WPA HA WPA2 DÙNG RADIUS SERVER 2 5 1 Giới thiệu tổng quan

Remote Authentication Dial In User Service (RADIUS) là một giao thức mạng cung cấp Authentication, Authorization, Accounting (AAA) để quản lý tập trung cho những máy tính kết nối và sử dụng dịch vụ mạng. RADIUS đƣợc phát triển bởi Livingston Enterprises, vào n m 1991 nhƣ là một máy chủ xác thực và giao thức tính cƣớc và sau đó đƣợc đƣa vào chuẩn Internet Engineering Task Force (IETF).

Vì đƣợc hỗ trợ rộng rãi và tính chất phổ biến của giao thức RADIUS, nó thƣờng đƣợc dùng bời các ISP và các doanh nghiệp để quản lý truy cập và internet hoặc mạng nội bộ, mạng không dây, và các dịch vụ tích hợp e-mail. Những mạng lƣới này có thể kết hợp modem, DSL, VPN, web server… RADIUS là một giao thức client/server chạy trên lớp ứng dụng, sử dụng giao thức UDP khi vận chuyển.

Việc bảo mật WLAN sử dụng chuẩn 802.1x kết hợp với xác thực ngƣời dùng trên Access Point (AP). Một máy chủ thực hiện việc xác thực trên nền tảng RADIUS có thể là một giải pháp tốt cung cấp xác thực cho chuẩn 802.1x. Phần này này sẽ giới thiệu cách thức làm việc của RADIUS và vì sao phải cần máy chủ RADIUS để hỗ trợ việc xác thực cho WLAN.

Hình 25: M hình xác thực giữa Wireless Clients và RADIUS Server. 2.5 2 Ho t động của Radius Server

Radius là một giao thức làm việc theo mô hình server/client. Radius cung cấp dịch vụ xác thực và tính cƣớc cho mạng truy cập gián tiếp. Radius Client là một máy chủ truy cập tiếp nhận các yêu cầu xác thực từ ngƣời dùng từ xa và chuyển yêu cầu này tới Radius server. Radius Server nhận các yêu cầu kết nối của ngƣời dùng xác thực và sau đó trả về các thông tin cấu hình cần thiết để chuyển dịch vụ tới ngƣời sử dụng.

Quy trình hoạt động đƣợc mô tả nhƣ sau:

Ngƣời sử dụng từ xa khởi tạo quá trình xác thực PPP tới máy chủ truy cập. Máy chủ yêu cầu ngƣời dùng cung cấp thông tin về username và password bằng các giao thức PAP hoặc CHAP.

Ngƣời dùng từ xa gởi thông tin username và password tới máy chủ truy cập. Máy chủ truy cập (Radius Client) gởi chuyển tiếp thông tin username và password đã đƣợc mã hóa tới Radius Server.

Radius Server trả lời với các thông tin chấp nhận hay từ chối ngƣời dùng này. Radius Client thực hiện theo các dịch vụ và các thông số dịch vụ đi cùng với các thông tin chấp nhận hay từ chối ngƣời dùng từ Radius Server.

2 5 3 Chứng thực, cấp quyền và t nh cước

Khi Radius server nhận yêu cầu truy cập từ xa từ Radius client, Radius Server tìm kiếm trong cơ sở dữ liệu các thông tin về yêu cầu này. Nếu username không có trong cơ sở dữ liệu thì một thông báo từ chối truy cập sẽ đƣợc chuyển tới Radius Client.

Trong Radius, chứng thực và cấp quyền đi đôi với nhau, nếu username có trong cơ sở dữ liệu và password đƣợc xác nhận là chính xác thì Radius Server sẽ gởi trả về thông báo truy cập đƣợc chấp nhận, thông báo này bao gồm một danh sách các đặc tính và thông số. Các thông số điển hình bao gồm : kiểu dịch vụ, kiểu giao thức, địa chỉ gán cho ngƣời dùng…

Vấn đề xử lý tính cƣớc của Radius hoạt động đập lập với chứng thực và cấp quyền. Chức n ng tính cƣớc cho phép ghi lại dữ liệu đƣợc gởi tại thời điểm bắt đầu và kết thúc một phiên làm việc và đƣa ra các con số về mặt sử dụng tài nguyên nhƣ thời gian, số gói, số byte…đƣợc sử dụng trong phiên làm việc đó.

2 5 4 Áp dụng RADIUS cho WLAN

Trong một mạng Wireless sử dụng 802.1x Port Access Control, các máy trạm sử dụng wireless với vai trò Remote User và Wireless Access Point làm việc nhƣ một Network Access Server (NAS). ể thay thế cho việc kết nối đến NAS với dial-up nhƣ giao thức PPP, wireless station kết nối đến Access Point bằng việc sử dụng giao thức 802.11.

Khi quá trình thực hiện, wireless station gửi một message EAP-Start tới Access Point. Access Point sẽ yêu cầu station nhận dạng và chuyển các thông tin đó tới một máy chủ AAA với thông tin là RADIUS Access-Request User-Name attribute. Máy chủ AAA và wireless station hoàn thành quá trình bằng việc chuyển các thông tin RADIUS Access-Challenge và Access-Request qua Access Point.

Nếu máy chủ AAA gửi một thông điệp chấp nhận, Access Point và wireless station sẽ hoàn thành quá trình kết nối và thực hiện phiên làm việc với việc sử dụng WEP hay TKIP để mã hoá dữ liệu. Lúc này Access Point sẽ cho

phép wireless station có thể gửi và nhận dữ liệu từ hệ thống mạng một cách bình thƣờng.

Nếu máy chủ AAA gửi một thông điệp từ chối, Access Point sẽ ngắt kết nối tới station. Station có thể cố gắng thử lại quá tình xác thực, nhƣng Access Point sẽ cấm station này không gửi đƣợc các gói tin tới các Access Point ở gần đó.

2 5 5 M tả hệ thống:

Trong xây dựng mạng WLAN, để ng n chặn những truy cập mạng trái phép không mong muốn, ta phải triển khai các phƣơng pháp bảo mật thiết yếu cho WLAN để giúp cho hệ thống mạng đƣợc an toàn hơn. Khi đó client muốn truy cập vào mạng thì phải đ ng nhập đúng username và password hợp lệ. Quá trình xác thực này đƣợc điều khiển bởi RADIUS server.

2.5 5 1 M tả yêu cầu:

Cấu hình RADIUS server trên Window Server 2003, tạo user và password cho các client dự định tham gia vào mạng.

Bật tính n ng bảo mật trên Wireless Router LINKSYS và điền địa chỉ của Radius Server.

Cho PC tham gia vào mạng, kiểm tra kết nối.

2.5 5 2 Thiết bị yêu cầu:

1 Wireless Router hiệu LINKSYS, Model WAP4400N. 2 máy tính:

- Máy tính dùng làm Radius Server sử dụng hệ điều hành Windows Server 2003 Enterprise và đã đƣợc nâng lên Domain Controller.

- Máy tính làm wireless client sử dụng hệ điều hành Windows 7.

2.5 5 3 Qui trình cài đặt

Nâng cấp server lên Domain Controller Cài Enterprise CA

Cài Radius

Cấu hình DHCP Cấu hình Radius Cấu hình CA

Tạo User, cấp quyền Remote Access cho user và cho computer Tạo Remote Access Policy

Cấu hình AP

CHƯƠNG 3: THUẬT TOÁN CỦA CÁC GIAO THỨC BẢO MẬT 3.1 MẬT M D NG V RC4

Trong phần này chúng ta xem xét qua mật mã dòng đối xứng có lẽ là phổ biến nhất, RC4. Chúng ta bắt đầu với một cái nhìn tổng quan về cấu trúc mật mã dòng, và sau đó nghiên cứu RC4.

3 1 1 Stream Cipher Structure ( Cấu trúc mật mã dòng )

Một đặc trƣng của mật mã dòng là mã hóa v n bản gốc (Plaintext) một byte tại một thời điểm, mặc dù vậy một mật mã dòng có thể đƣợc thiết kế để hoạt động trên một bit tại một thời điểm hoặc trên các đơn vị lớn hơn một byte tại một thời điểm. Hình 4.1 là một sơ đồ biểu diễn của cấu trúc mật mã dòng. Trong cấu trúc này Key chính là đầu vào cho một hàm tạo bit giả ngẫu nhiên tạo ra một dòng 8-bit các số ngẫu nhiên. Bây giờ, chúng ta chỉ đơn giản nói là một dòng giả ngẫu nhiên là không thể đoán đƣợc mà không biết Key đầu vào. ầu ra của hàm, đƣợc gọi là một keystream, là sự kết hợp của một byte tại một thời điểm với dòng v n bản gốc bằng cách sử dụng toán tử thao tác bit (XOR). Ví dụ, nếu các byte tiếp theo đƣợc tạo ra bởi hàm là 01101100 và byte v n bản gốc tiếp theo là11001100, khi đó, kết quả v n bản mã hóa (ciphertext) là:

Hình 26: S đồ mật mã dòng

3 1 2 Thuật toán RC4

Các thuật toán RC4 là khá đơn giản và dễ dàng để giải thích. Một khóa có độ dài thay đổi từ 1 đến 256 byte (8-2048 bit) đƣợc sử dụng để khởi tạo 256-byte vector trạng thái S, với các phần tử S[0], S[1], ..., S[255]. Vào mọi thời điểm, S chứa một hoán vị của tất cả các số 8-bit từ 0 đến 255. ối với mã hóa và giải mã,1 byte K (xem Hình 4.1) đƣợc tạo ra từ S bằng cách chọn một trong 255 phần tử một cách có hệ thống. Khi mỗi giá trị của K đƣợc tạo ra, các phần tử trong S một lần nữa đƣợc hoán vị.

hởi t o S

ể bắt đầu, các mục của S đƣợc thiết lập bằng các giá trị từ 0 đến 255 theo thứ tự t ng dần, đó là S[0] = 0, S[1] = 1, ..., S[255] = 255. Một vector tạm thời T cũng đƣợc tạo ra. Nếu chiều dài của khóa K là 256 byte, K sau đó đƣợc chuyển giao cho T. Nói cách khác, cho một byte chiều dài khóa keylen, đầu tiên các phần tử keylen của T đƣợc sao chép từ K và sau đó K đƣợc lặp đi lặp lại nhiều lần cần thiết để điền vào T. Các hoạt động sơ bộ có thể đƣợc tóm tắt nhƣ sau:

/* hởi t o */

for i = 0 to 255 do S[i] = i;

Tiếp theo, chúng ta sử dụng T để tạo các hoán vị ban đầu của S. iều này liên quan đến việc bắt đầu với S[0] và đi tới S[255], và ở mỗi S[i], hoán đổi S[i] với một byte khác trong S theo 1 phép tính toán đƣợc quyết định bởi T[i]:

/* T o các hoán vị của S */

j = 0;

for i = 0 to 255 do

j = ( j + S[i] + T[i] ) mod 256; Swap ( S[i], S[j] );

Bởi vì hoạt động duy nhất trên S là hoán đổi, chỉ có tác dụng nhƣ là một phép hoán vị. S vẫn còn chứa tất cả các số từ 0 đến 255

T o dòng Stream

Một khi vector S đƣợc khởi tạo, các khóa đầu vào không còn đƣợc sử dụng. Tạo dòng liên quan đến việc xoay vòng qua tất cả các phần tử của S[i], và ở mỗi S[i], hoán đổi S[i] với một byte khác trong S theo một phép tính toán đƣợc quyết định bởi hình trạng hiện tại của S. Sau khi đến S[255], quá trình này tiếp tục, bắt đầu lại một lần nữa tại S[0]:

/* T o dòng Stream */ i, j = 0; while (true) i = ( i + 1 ) mod 256; j = ( j + S[i] ) mod 256; Swap ( S[i], S[j] ); t = (S[i] + S[j]) mod 256; k = S[t];

ể mã hóa, XOR giá trị k với các byte tiếp theo của v n bản gốc (Plaintext). ể giải mã, XOR giá trị k với các byte tiếp theo của v n bản mã hóa (Ciphertext).

Hình 27: Minh họa logic RC4

3 1 3 Một minh chứng về thuật toán RC4

Chúng ta dùng 4 bytes state, và 2 bits key cho ví dụ này.

a Trình bày theo thuật toán Vòng lặp 1:

i=0, j=0, i mod 2 = 0

S[ ]=[ S0, S1, S2, S3 ] = [ 0, 1, 2, 3 ] K[ ]=[ K0, K1 ] = [ 2, 5 ]

T[i] = K[i mod 2];

j=(j + S0 + K0)mod 4=2, ta hoán vị S0 với S2

Mảng mới sau khi hoán vị S[ ]=[ S0, S1, S2, S3 ] = [ 2, 1, 0, 3 ] i = i +1 = 1

i mod 2 = 1

i=1, j=2, i mod 2=1

S[ ]=[ S0, S1, S2, S3 ] = [ 2, 1, 0, 3 ] K[ ]=[ K0, K1 ] = [ 2, 5 ]

Vì j=(j + S1 + K1)mod 4=0, ta hoán vị S1 với S0

Mảng mới sau khi hoán vị S[ ]=[ S0, S1, S2, S3 ] = [ 1, 2, 0, 3 ] i = i +1 = 2 i mod 2 = 0 Vòng lặp 3: i=2, j=0, i mod 2=0 S[ ]=[ S0, S1, S2, S3 ] = [ 1, 2, 0, 3 ] K[ ]=[ K0, K1 ]= [ 2, 5 ]

Vì j=(j + S2 + K0)mod 4=2, ta hoán vị S2 với S2

Mảng mới sau khi hoán vị S[ ]=[ S0, S1, S2, S3 ] = [ 1, 2, 0, 3 ] i = i +1 = 3 i mod 2 = 1 Vòng lặp 4: i=3, j=2, i mod 2 =1 S[ ]=[ S0, S1, S2, S3 ] = [ 1, 2, 0, 3 ] K[ ]=[ K0, K1 ]= [ 2, 5 ]

j=(j + S3 + K1)mod 4=2, ta hoán vị S3 với S2

Mảng mới sau khi hoán vị S[ ]=[ S0, S1, S2, S3 ] = [ 1, 2, 3, 0 ]

c. V dụ chúng ta sử dụng plaintext “HI” Mã hóa cho chữ “H”

i=0, j=0

S[ ]=[ S0, S1, S2, S3 ] = [ 1, 2, 3, 0 ] Vì i = ( i + 1 )mod 4 = 1

j =( j + S1)mod 4 = 2, ta hoán vị S1 với S2

Mảng mới sau khi hoán vị S[ ]=[ S0, S1, S2, S3 ] = [ 1, 3, 2, 0 ] t = ( S1 + S2 ) mod 4 = 1

k=S1 = 3 ( 0000 0011) H 0100 1000 XOR 0000 0011 0100 1011

Mã hóa cho chữ “I”

i=1, j=2

S[ ]=[ S0, S1, S2, S3 ] = [ 1, 3, 2, 0 ] Vì i = ( i + 1 )mod 4 = 2

j =( j + S2)mod 4 = 0, ta hoán vị S2 với S0

Mảng mới sau khi hoán vị S[ ]=[ S0, S1, S2, S3 ] = [ 2, 3, 1, 0 ] t = ( S2 + S0 )mod 4 = 3 k=S3 = 0 ( 0000 0000 ) I 0100 1001 XOR 0000 0000 0100 1001 Kết quả Plaintext : 0100 1000 0100 1001 Cipher: 0100 1011 0100 1001 3 2 MẬT M H I V AES

Trong mật mã học, AES (Advanced Encryption Standard - Tiêu chuẩn mã hóa tiên tiến) là một thuật toán mã hóa khối đƣợc chính phủ Hoa kỳ áp dụng làm tiêu chuẩn mã hóa. Giống nhƣ tiêu chuẩn tiền nhiệm DES, AES đƣợc kỳ vọng áp dụng trên phạm vi thế giới và đã đƣợc nghiên cứu rất kỹ lƣỡng. AES đƣợc chấp thuận làm tiêu chuẩn liên bang bởi Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (NIST) sau một quá trình tiêu chuẩn hóa kéo dài 5 n m.

Thuật toán đƣợc thiết kế bởi hai nhà mật mã học ngƣời Bỉ: Joan Daemen và Vincent Rijmen (lấy tên chung là "Rijndael" khi tham gia cuộc thi thiết kế AES).

Mặc dù 2 tên AES và Rijndael vẫn thƣờng đƣợc gọi thay thế cho nhau nhƣng trên thực tế thì 2 thuật toán không hoàn toàn giống nhau. AES chỉ làm việc với khối dữ liệu 128 bit và khóa có độ dài 128, 192 hoặc 256 bit trong khi Rijndael có thể làm việc với dữ liệu và khóa có độ dài bất kỳ là bội số của 32 bit nằm trong khoảng từ 128 tới 256 bit.

Các khóa con sử dụng trong các chu trình đƣợc tạo ra bởi quá trình tạo khóa con Rijndael. Hầu hết các phép toán trong thuật toán AES đều thực hiện trong một trƣờng hữu hạn. AES làm việc với từng khối dữ liệu 4×4 byte (tiếng Anh: state, khối trong Rijndael có thể có thêm cột). Quá trình mã hóa bao gồm 4 bƣớc:

AddRoundKey: mỗi byte của khối đƣợc kết hợp với khóa con, các khóa con này đƣợc tạo ra từ quá trình tạo khóa con Rijndael. Tại bƣớc này, khóa con đƣợc kết hợp với các khối. Khóa con trong mỗi chu trình đƣợc tạo ra từ khóa chính với quá trình tạo khóa con Rijndael, mỗi khóa con có độ dài giống nhƣ các khối. Quá trình kết hợp đƣợc thực hiện bằng cách XOR từng bit của khóa con với khối dữ liệu.

SubBytes: đây là phép thế (phi tuyến) trong đó mỗi byte sẽ đƣợc thế bằng một byte khác theo bảng tra (Rijndael S-box). Các byte đƣợc thế thông qua bảng tra S-box. ây chính là quá trình phi tuyến của thuật toán. Hộp S-box này đƣợc tạo ra từ một phép nghịch đảo trong trƣờng hữu hạn GF (28) có tính chất phi tuyến. ể chống lại các tấn công dựa trên các đặc tính đại số, hộp S- box này đƣợc tạo nên bằng cách kết hợp phép nghịch đảo với một phép biến đổi affine khả nghịch. Hộp S-box này cũng đƣợc chọn để tránh các điểm bất động (fixed point).

Hình 29: AES – SubBytes

Hình 30: AES – ShiftRow

ShiftRows: đổi chỗ, các hàng trong khối đƣợc dịch vòng. Các hàng đƣợc dịch vòng một số vị trí nhất định. ối với AES, hàng đầu đƣợc giữ nguyên. Mỗi byte của hàng thứ 2 đƣợc dịch trái một vị trí. Tƣơng tự, các hàng thứ 3

và 4 đƣợc dịch 2 và 3 vị trí. Do vậy, mỗi cột khối đầu ra của bƣớc này sẽ bao gồm các byte ở đủ 4 cột khối đầu vào. ối với Rijndael với độ dài khối khác nhau thì số vị trí dịch chuyển cũng khác nhau.

MixColumns: quá trình trộn làm việc theo các cột trong khối theo một phép biến đổi tuyến tính. Bốn byte trong từng cột đƣợc kết hợp lại theo một phép biến đổi tuyến tính khả nghịch. Mỗi khối 4 byte đầu vào sẽ cho một khối 4

Một phần của tài liệu các phương pháp bảo mật trong mạng không dây (Trang 44 - 73)