Mô tả thuật toán AES

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 36)

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:

a. 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 bít của khóa con với khối dữ liệu.

Hình 2.6: Mỗi byte được kết hợp với một byte trong khóa con của chu trình sử dụng phép toán XOR

b. 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 2.7: Mỗi byte được thay thế bằng một byte theo bảng tra S(bij)=S(aij)

c. 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.

Hình 2.8: Các byte trong mỗi hàng được dịch vòng trái số vị trí dịch chuyển tùy thuộc từng hàng

d. 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 byte ở đầu ra với tính chất là mỗi byte ở đầu vào đều ảnh hưởng tới cả 4 byte đầu ra. Cùng với bước ShiftRows, MixColumns đã tạo ra tính chất khuyếch tán cho thuật toán. Mỗi cột được xem như một đa thức trong trường hữu hạn và được nhân với đa thức c(x) = 3x3 + x2 + x + 2 (modulo x4 + 1). Vì thế, bước này có thể được xem là phép nhân ma trận trong trường hữu hạn.

Hình 2.9: Mỗi cột được nhân với một hệ số cố định c(x) 2.2.3.3 Tối ưu hóa AES

Đối với các hệ thống 32 bit hoặc lớn hơn, ta có thể tăng tốc độ thực hiện thuật toán bằng cách sát nhập các bước SubBytes, ShiftRows, MixColumns và chuyển chúng thành dạng bảng. Có cả thảy 4 bảng với 256 mục, mỗi mục là 1 tư 32 bit, 4 bảng này chiếm 4096 byte trong bộ nhớ. Khi đó, mỗi chu trình sẽ được bao gồm 16 lần tra bảng và 12 lần thực hiện phép XOR 32 bit cùng với 4 phép XOR trong bước AddRoundKey. Trong trường hợp kích thước các bảng vẫn lớn so với thiết bị thực hiện thì chỉ dùng một bảng và tra bảng kết hợp với hoán vị vòng quanh.

2.2.3.4 Bảo mật trong AES

Vào thời điểm năm 2006, dạng tấn công lên AES duy nhất thành công là tấn công kênh bên (side channel attack). Tháng 6 năm 2003, chính phủ Hoa kỳ tuyên bố AES có thể được sử dụng cho thông tin mật.

"Thiết kế và độ dài khóa của thuật toán AES (128, 192 và 256 bit) là đủ an toàn để bảo vệ các thông tin được xếp vào loại Tối Mật (secret). Các thông tin Tuyệt Mật (Top secret) sẽ phải dùng khóa 192 hoặc 256 bit. Các phiên bản thực hiện AES nhằm mục đích bảo vệ hệ thống an ninh hay thông tin quốc gia phải được NSA kiểm tra và chứng nhận trước khi sử dụng.”

Điều này đánh dấu lần đầu tiên công chúng có quyền tiếp xúc với thuật toán mật mã mà NSA phê chuẩn cho thông tin Tuyệt Mật. Nhiều phần mềm thương mại hiện nay sử dụng mặc định khóa có độ dài 128 bit. Phương pháp thường dùng nhất để tấn công các dạng mã hóa khối là thử các kiểu tấn công lên phiên bản có số chu trình thu gọn. Đối với khóa 128 bit, 192 bit và 256 bit, AES có tương ứng 10, 12 và 14 chu trình. Tại thời điểm năm 2006, những tấn công thành công được biết đến là 7 chu trình đối với khóa 128 bit, 8 chu trình với khóa 192 bit và 9 chu trình với khóa 256 bit. Một

số nhà khoa học trong lĩnh vực mật mã lo ngại về an ninh của AES. Họ cho rằng ranh giới giữa số chu trình của thuật toán và số chu trình bị phá vỡ quá nhỏ. Nếu các kỹ thuật tấn công được cải thiện thì AES có thể bị phá vỡ. Ở đây, “phá vỡ” có nghĩa chỉ bất cứ phương pháp tấn công nào nhanh hơn tấn công kiểu duyệt toàn bộ. Vì thế một tấn công cần thực hiện 2120 cũng được coi là thành công mặc dù tấn công này chưa thể thực hiện trong thực tế. Tại thời điểm hiện nay, nguy cơ này không thực sự nguy hiểm và có thể bỏ qua. Tấn công kiểu duyệt toàn bộ quy mô nhất đã tưng thực hiện là do distributed.net thực hiện lên hệ thống 64 bít RC5 vào năm 2002 (Theo định luật Moore thì nó tương đương với việc tấn công vào hệ thống 66 bit hiện nay). Một vấn đề khác nữa là cấu trúc toán học của AES. Không giống với các thuật toán mã hóa khác, AES có mô tả toán học khá đơn giản. Tuy điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu sợ rằng sẽ có người lợi dụng được cấu trúc này trong tương lai.

2.2.4 802.11

2.2.4.1 Giới thiệu về 802.11

IEEE 802 là họ các chuẩn IEEE dành cho các mạng LAN và mạng MAN. Các chuẩn IEEE 802 được giới hạn cho các mạng có các gói tin kích thước đa dạng. Con số 802 chỉ đơn giản là con số còn trống tiếp theo mà IEEE có thể dùng. Đôi khi 802 còn được liên hệ với ngày mà cuộc họp đầu tiên được tổ chức, đó là tháng 2 năm 1980. IEEE 802.11 là 1 chuẩn để “điều khiển truy cập mạng dựa trên port”. Nó cho phép quyết định cho hay không truy cập mạng được thực hiện tại port, trư khi port đã được xác thực, nó chỉ có thể được sử dụng để chuyển lưu lượng được kết hợp với quá trình xác thực. Giao thức 802.11 sử dụng EAP (Extensible Authentication Protocol) để mang các thông tin xác thực.

Tháng 2/2002, một bài báo được xuất bản tư trường Đại học Maryland đề cập đến các yếu điểm của 802.11. Bài báo này đã gây được nhiều sự chú ý do 802.11 được xem là có thể giải quyết những yếu điểm về an toàn của 802.11b nhưng đã bộc lộ những khuyết điểm của nó. May mắn là những kỹ thuật tấn công mô tả trong bài báo đó có thể ngăn chặn bằng cách sử dụng 802.11 một cách phù hợp. Các kỹ thuật tấn công được mô tả không cho phép các truy cập không mong muốn đến mạng hay nghe lén các dữ liệu đã được mã hóa. Chúng chỉ cho phép tấn công tư chối dịch vụ DoS và

gây nhiễu các truy cập mạng hợp lệ. Hiện tại, IEEE 802.11i đang giải quyết nhiều vấn đề để kết hợp 802.11b và 802.11 lại với nhau.

2.2.4.2 Những thành phần trong 802.11

a. Thiết bị yêu cầu (Supplicant)

Một thiết bị đầu cuối yêu cầu truy cập đến mạng được bảo vệ bằng 802.11. Laptop, PDA,… là một số các thiết bị yêu cầu thông dụng. Thiết bị yêu cầu phải hoàn tất trao đổi một cách suôn sẽ với thiết bị xác thực trong EAPOL (EAP Over LAN) để được truy cập mạng. Do đó, Supplicant phải chứa giao thức EAPOL, các máy trạng thái của Supplicant và tối thiểu một phương pháp xác thực EAP cụ thể mà thiết bị xác thực và máy chủ xác thực hỗ trợ. Nếu phương pháp EAP hỗ trợ nó, Supplicant có thể liên lạc với máy chủ xác thực, “khóa phiên làm việc” sẽ được sử dụng để mã hóa những khóa mã hóa được gởi đến nó.

b. Thiết bị xác thực (Authenticator)

Thường được thực hiện trên Access Point, Switch hay Router. Thành phần này giao tiếp với Supplicant bằng EAPOL. Liên lạc giữa Authenticator với máy chủ xác thực thường được thực hiện bằng Radius (Remote Authentication Dial In User Service). Do đó, Authenticator bao gồm giao thức EAPOL, các máy trạng thái của Authenticator và bất kỳ giao thức nào cần thiết để giao tiếp với máy chủ xác thực, thường là Radius.Tư khi Supplicant yêu cầu đến khi quá trình xác thực thành công, công việc của Authenticator là chuyển các gói EAP giữa Supplicant (EAPOL) và máy chủ xác thực (thường là Radius). Trong khi Authenticator mang tất cả các dữ liệu giữa Supplicant và máy chủ xác thực, nó không biết mật khẩu riêng hay chứng chỉ được sử dụng để tạo khóa phiên làm việc. Sau khi xác thực thành công, Authenticator nhận khóa phiên làm việc tư máy chủ xác thực và phân phối (hay tạo ra) các khóa mã hóa cho unicast và broadcast.

c. Máy chủ xác thực

Thông thường là máy chủ Radius xác thực người dùng. Nó tạo khóa phiên làm việc để giao tiếp với Supplicant, và sau khi xác thực thành công, phân phối khóa đó đến Authenticator. Miễn là máy chủ RADIUS hỗ trợ mở rộng RFC2869 cho EAP, và phương pháp xác thực EAP được yêu cầu, không cần thêm thành phần nào ở đây để thực hiện 802.11.

2.2.4.3 Quá trình mã hóa và những cơ chế chứng thực trong 802.11

a. Quá trình mã hóa:

Chuẩn 802.11 cung cấp dữ liệu riêng tư cùng với thuật toán WEP. WEP dựa trên mã hóa dòng của thuật toán RC4. Tính đối xứng của RC4 yêu cầu phải phù hợp với khóa WEP, độ dài 40 bit hoặc 104 bit, và phải được cấu hình tĩnh trên thiết bị client và các AP. WEP là sự lựa chọn chủ yếu vì nó có chi phí thấp. Trong một số trường hợp, WEP là 1 thuật toán rất dễ để thực hiện, bạn có thể lập trình nó trong khoảng 30 dòng lệnh. Chi phí phát sinh thấp khiến WEP trở thành một thuật toán mã hóa lý tưởng để sử dụng trên ASDs. Để tránh chế độ ECB (loại mã hóa dữ liệu sử dụng mật mã khối) trong quá trình mã hóa, WEP sử dụng một IV 24 bit được nối với một khóa trước khi được xử lý bằng thuật toán mã hóa RC4.

Hình 2.10: Minh họa 1 khung mã hóa WEP

b. Những cơ chế chứng thực:

Chuẩn 802.11 chỉ rõ 2 cơ chế chứng thực trong WLAN là: - Chứng thực mở

- Chứng thực chia sẻ khóa

Chứng thực mở là 1 thuật toán chứng thực null. Các AP chấp nhận bất kỳ các yêu cầu chứng thực nào. Các yêu cầu xác thực chấp nhận các thiết bị để nhanh chóng truy cập vào mạng.

Chứng thực mở kiểm soát truy cập dựa trên khóa WEP đã được cấu hình săn trên client và AP. Client và AP phải kết hợp với khóa WEP để kích hoạt mới có thể giao tiếp với nhau. Nếu Client và AP không kích hoạt WEP, sẽ không có sự bảo mật tại

BSS (Basic Service set – các thiết lập dịch vụ cơ bản). Bất kỳ thiết bị nào cũng có thể kết nối đến BSS và tất cả các khung dữ liệu (data frames) được truyền đi sẽ không được mã hóa.

Sau khi quá trình chứng thực mở và quá trình kết hợp được xử lý, client có thể bắt đầu truyền và nhận dữ liệu. Nếu Client được cấu hình với 1 khóa khác với khóa trên AP, Client sẽ không thể mã hóa hoặc giải mã các khung dữ liệu 1 cách chính xác, và các khung này sẽ bị loại bỏ bởi Client và AP. Quá trình này về cơ bản giống như cung cấp 1 phương tiện để kiểm soát quyền truy cập vào BSS.

Hình 2.11: Minh họa quá trình chứng thực mở khi 2 khóa WEP khác nhau

Không như chứng thực mở, quá trình chứng thực chia sẻ khóa yêu cầu các máy trạm và các AP phải có khóa WEP đã được kích hoạt và phù hợp với nhau. Quá trình chứng thực chia sẻ khóa được tóm tắt như sau:

• Client gửi một yêu cầu xác thực chia sẻ khóa tới AP.

• AP trả lời yêu cầu của Client với 1 khung yêu cầu khác dưới dạng cleartext.

• Client tiến hành mã hóa các yêu cầu mà AP đã gửi. Sau đó gửi ngược lại cho AP.

• Nếu AP có thể giải mã chính xác những khung yêu cầu trên cũng như khôi phục lại được những yêu cầu ban đầu, client đã gửi thành công yêu cầu.

Hình 2.12: Minh họa quá trình chứng thực chia sẻ khóa 2.2.4.4 Những lỗ hổng bảo mật trong chuẩn 802.11

a. Lỗ hỗng trong quá trình chứng thực mở

Quá trình chứng thực mở không cung cấp cho AP làm thế nào để xác định Client có hợp lệ hay không. Sự thiếu sót này chính là 1 lỗ hổng bảo mật, nếu quá trình mã hóa WEP không được thực hiện trong một mạng WLAN. Thậm chí khi trạng thái WEP cho phép kết nối giữa Client và AP, quá trình chứng thực mở không cung cấp những thông tin cho việc xác định người đang sử dụng thiết bị WLAN. Chỉ cần 1 thiết bị đã được ủy quyền nào đó nằm trong tay của người sử dụng trái phép, bảo mật mạng sẽ bị đe dọa.

b. Lỗ hổng trong quá trình Chứng thực chia sẻ khóa:

Hình 2.13: Minh họa quá trình tạo khóa

Quá trình Chứng thực chia sẻ khóa yêu cầu Client phải dùng 1 khóa WEP chia sẻ chính để mã hóa đoạn text yêu cầu được gửi tư AP. AP sẽ xác nhận Client thông qua quá trình giải mã những phản hồi của khóa chia sẻ và xác nhận các đoạn text yêu cầu là như nhau. Quá trình trao đổi những đoạn text yêu cầu xuất hiện trên các liên kết không dây và là lỗ hổng được biết đến để tấn công những đoạn text đã mã hóa. Lỗ

hổng này chủ yếu dựa trên thuật toán sau khi mã hóa. Hacker có thể bắt được cả 2 đoạn văn bản yêu cầu và đoạn văn bản phản hồi đã được mã hóa. Vì chỉ cần chạy các giá trị thông qua 1 hàm XOR, hacker đã có 1 luồng khóa hợp lệ. Hacker có thể sử dụng luồng khóa này để giải mã các frame có kích thước phù hợp với luồng khóa chính, rồi đưa cho IV để tạo ra luồng khóa giống như khung mã hóa.

Hình 2.14: Minh họa lỗ hổng chứng thực chia sẻ khóa

2.2.5 WPA, WPA2

2.2.5.1 WPA (Wi-Fi Protected Access)

WEP được xây dựng để bảo vệ một mạng không dây tránh bị nghe trộm. Nhanh chóng sau đó, khi nhận thấy được những khó khăn khi nâng cấp lên chuẩn 802.11i cũng như những lổ hỗng của công nghệ này, Wi-fi Alliance đã đưa ra 1 giải pháp khác gọi là Wi-fi Protected Access (WPA), đã khắc phục được đa số những nhược điểm của WEP. Và một trong những cải tiến quan trọng nhất của WPA là hàm thay đổi khóa TKIP (Temporal Key Integrity Protocol).

WPA cũng sử dụng thuật toán RC4 như WEP nhưng mã hóa đầy đủ 128bit. Và đặc điểm khác nữa là WPA thay đổi khóa cho mỗi gói tin. Các công cụ thu thập gói tin để phá khóa mã hóa hầu như không thực hiện được với WPA. Không những thế, WPA còn bao gồm kiểm tra tính toàn vẹn thông tin. Do đó, dữ liệu không thể bị thay đổi trong khi đang ở trên đường truyền. Một trong những điểm hấp dẫn nhất của WPA

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 36)

Tải bản đầy đủ (DOC)

(77 trang)
w