2 THUẬT TOÁN BẢO MẬT THÔNG TIN CHO MẠNG D
2.5.3 Thuật toán mật mã khối Rijndeal
Hàm lõi (kernel) là bộ mật mã khối Rijndael, có độ dài khối và một khoá mã thay đổi. Độ dài khối và độ dài khoá có thểđến 128, 192 hoặc 256 bit.
2.5.3.1 Trạng thái và các giao diện bên ngoài của Rijndael
Rijndael gồm một chuỗi các vòng chuyển đổi đầu vào thành đầu ra. Kết quả
trung gian được gọi là trạng thái, như là một mảng các byte chữ nhật 4x4 (tổng cộng 128 bit). Khoá mật mã cũng tương tự như một mảng chữ nhật 4x4.
Rijndael nhận các byte bản tin P0, P1, …,P15 và các byte khoá K0, K1, …K15 như là tham số đầu vào và các byte mật mã C0, C1, …, C15 như là tham số đầu ra. Các byte bản tin được ánh xạ thành các byte trạng thái theo thứ tự
a0,0, a1,0, a2,0, a3,0, a0,1, a1,1, a2,1, a3,1,…và các byte khoá theo thứ tự k0,0, k1,0, k2,0, k3,0, k0,1, k1,1, k2,1, k3,1,…Ở cuối toán tử mật mã hoá, bản tin mật mã
được trích ra từ trạng thái bằng cách đặt các byte trạng thái theo cùng thứ tự, do đó, nếu chỉ số một chiều của một byte trong một khối là n và chỉ số hai chiều là (i, j), thì:
i = n mod 4; j = n/4 ; n = i + 4 * j
2.5.3.2 Cấu trúc nội bộ
Rijndael gồm các toán tử sau:
- Một toán tử cộng khoá vòng khởi đầu; - Một toán tử chuyển dịch thay thế byte;
- Một toán tử chuyển dịch hàng;
- Một toán tử chuyển dịch cột trộn lẫn; - Một toán tử cộng khoá vòng;
- Vòng cuối cùng (vòng 10) gồm: + Một chuyển dịch thay thế byte; + Một chuyển dịch hàng;
+ Một toán tử cộng khoá vòng.
2.5.3.3 Chuyển dịch thay thế byte
Hình 3.5 mô tả chuyển dịch thay thế byte trên trạng thái. Đó là chuyển dịch không tuyến tính đối với hoạt động của mỗi byte độc lập.
Đối với mỗi phần tử trạng thái, chuyển dịch được áp dụng là:
bi,j = S-box[ ai,j ] (2.33)
trong đó ai,j là giá trị khởi đầu của phần tử trong trạng thái, và bi,j là giá trị đầu ra của phần tử trong trạng thái.
Hình 2.5- Thay thế byte thực hiện trên các byte riêng lẻ của trạng thái.
2.5.3.4 Chuyển dịch hàng
Trong chuyển dịch hàng, các hàng của trạng thái được dịch trái quay vòng bởi các lượng khác nhau. Hàng 0 không bị dịch, hàng 1 bị dịch 1 byte, hàng 2 bị dịch 2 byte, và hàng 3 bị dịch 3 byte.
2.5.3.5 Chuyển dịch cột trộn lẫn
Chuyển dịch cột trộn lẫn trên mỗi cột của trạng thái một cách độc lập. Đối với cột j, thì: b0,j = T2(a0,j) ⊕ T3(a1,j) ⊕ a2,j ⊕ a3,j b1,j = a0,j⊕ T2(a1,j) ⊕ T3(a2,j) ⊕ a3,j a0 , 0 a0 , 1 a0 , 2 a0 , 3 a1 , 0 a1 , 1 a1 , 2 a1 , 3 a2 , 0 a2 , 1 a2 , 2 a2 , 3 a3 , 0 a3 , 1 a3 , 2 a3 , 3 b0 , 0 b0 , 1 b0 , 2 b0 , 3 b1 , 0 b1 , 1 b1 , 2 b1 , 3 b2 , 0 b2 , 1 b2 , 2 b2 , 3 b3 , 0 b3 , 1 b3 , 2 b3 , 3 ai , j bi , j S - b o x
b2,j = a0,j⊕ a1,j ⊕ T2(a2,j) ⊕ T3(a3,j) b3,j = T3(a0,j) ⊕ a1,j⊕ a2,j⊕ T2(a3,j) (2.34) trong đó: T2(a) = 2*a nếu a < 128 hoặc T2(a) = (2*a) ⊕ 283 nếu a ≥ 128 và T3(a) = T2(a) ⊕ a 2.5.3.6 Phép cộng khoá vòng
Khoá vòng được áp dụng cho trạng thái bằng phép XOR. Khoá vòng nhận
được từ khoá mật mã bằng sơ đồđịnh trình khoá. Độ dài khoá vòng bằng độ
dài khối.
a0,0 a0,1 a0,2 a0,3
a1,0 a1,1 a1,2 a1,3
a2,0 a2,1 a2,2 a2,3
a3,0 a3,1 a3,2 a3,3
a0,0 a0,1 a0,2 a0,3
a1,1 a1,2 a1,3 a1,0
a2,2 a2,3 a2,0 a2,1
a3,3 a3,0 a3,1 a3,2
No shift
Cyclic left shift by 1
Cyclic left shift by 2
Cyclic left shift by 3
Hình 2.6- Dịch trái các hàng của trạng thái. a0 , 0 a0 , 1 a0 , 2 a0 , 3 a1 , 0 a1 , 1 a1 , 2 a1 , 3 a2 , 0 a2 , 1 a2 , 2 a2 , 3 a3 , 0 a3 , 1 a3 , 2 a3 , 3 b0 , 0 b0 , 1 b0 , 2 b0 , 3 b1 , 0 b1 , 1 b1 , 2 b1 , 3 b2 , 0 b2 , 1 b2 , 2 b2 , 3 b3 , 0 b3 , 1 b3 , 2 b3 , 3 M i x C o l u m n a2 , j a3 , j a1 , j a0 , j b2 , j b3 , j b1 , j b0 , j Hình 2.7- Trộn lẫn cột hoạt động trên các cột của trạng thái. Đối với mỗi phần tử trạng thái, thì:
bi,j = ai,j⊕ rki,j (2.34)
trong đó ai,j là giá trị khởi đầu của phần tử trong trạng thái bi,j là giá trịđầu ra của phần tử trong trạng thái rki,j là byte khoá vòng
a0,0 a0,1 a0,2 a0,3 a1,0 a1,1 a1,2 a1,3 a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 b0,0 b0,1 b0,2 b0,3 b1,0 b1,1 b1,2 b1,3 b2,0 b2,1 b2,2 b2,3 b3,0 b3,1 b3,2 b3,3 rk0,0 rk0,1 rk0,2 rk0,3 rk1,0 rk1,1 rk1,2 rk1,3 rk2,0 rk2,1 rk2,2 rk2,3 rk3,0 rk3,1 rk3,2 rk3,3 ⊕ =
Hình 2.8- Phép cộng khoá theo XOR.
2.5.3.7 Định trình khoá
Rijndael có 11 khoá vòng, được đánh số từ 0 đến 10. Đó là mảng các byte chữ nhật 4x4. Các khoá vòng nhận được từ khoá mật mã theo sơ đồ định trình khoá. Khoá vòng khởi đầu (được xem là khoá vòng 0) được tạo trực tiếp từ khoá mật mã. Khoá vòng 0 được sử dụng không đổi đối với phép cộng khoá khởi đầu. Các khoá vòng còn lại được sử dụng ở 10 vòng. Mỗi khoá vòng mới nhận được từ khoá vòng trước đó
Gọi rkr,i,j là giá trị của khoá vòng thứ r ở vị trí (i, j) ở trong mảng và ki,j là khoá mật mã được nạp vào mảng 4x4. Bắt đầu: rk0,i,j = ki,j với tất cả i và j. Các khoá vòng khác (r=1 đến 10) được tính toán từ khoá vòng trước đó như
sau: Trước tiên cột thứ 0 được xây dựng:
rkr,0,0 = rkr-1,0,0⊕ S-box[rkr-1,1,3] ⊕ round_const[r] rkr,1,0 = rkr-1,1,0⊕ S-box[rkr-1,2,3]
rkr,2,0 = rkr-1,2,0⊕ S-box[rkr-1,3,3]
rkr,3,0 = rkr-1,3,0⊕ S-box[rkr-1,0,3] (2.35)
trong đó round_const[1] = 1 và round_const[r] = T2(round_const[r-1]),
hộp S được nêu ở phần trên nhờ thay thế byte. Ba cột còn lại được xây dựng từ cột tương ứng của khoá vòng trước đó và cột trước đó của khoá vòng:
rkr,i,j = rkr-1,i,j⊕ rkr,i,j-1 với i=0,1,2,3 và j=1,2,3 (2.36) Chú ý: Mười hằng số vòng được tính toán từ các phương trình: là: 1, 2, 4, 8, 16, 32, 64, 128, 27, 54.
round_const[1] = 1
2.6 KẾT LUẬN
Chương này giới thiệu tổng quan một số thuật toán bảo mật thông tin áp dụng cho bảo mật 3G, bao gồm: Thuật toán bí mật f8, Thuật toán toàn vẹn dự liệu f9 dự trên một thuật toán đã chuẩn hóa KASUMI và Thuật toán tạo mã, nhận thực MILENAGE.
Thuật toán bí mật f8 là một bộ mật mã dòng dùng để mã hóa và giải mật mã các khối dự liệu có đồ dài nhỏ hơn 20 000 bit, bằng một khóa bí mật CK. Qúa trình tạo lập mật mã và giả mã tuân theo 4 bước, được trình bày trong tiêu chuẩn 3GPP TS 35 201
Thuật toán toàn vẹn dự liệu f9 được dựa trên bộ mật mã khối KASUMI trong chế độ CBC-MAC để tạo một mã nhận thực bản tin MAC dài 32 bit, bằng một khóa toàn vẹn IK cho các bản tin không giới hạn độ dài. Qúa trình tạo lập mật mã và giả mã tuân theo 4 bước, được trình bày trong tiêu chuẩn 3GPP TS 35 201.
KASUMI là một bộ mật mã khối được sử dụng trong các mạng di động. - Trong mạng 3G, KASUMI được sử dụng trong 2 thuật toán bí mật
(f8) và toàn vẹn (f9) với tên là UEA1 và UIA1 tương ứng;
- Trong mạng GSM, KASUMI được sử dụng ở bộ tạo dòng khoá A5/3; - Trong mạng GPRS, KASUMI được sử dụng ở bộ tạo khoá GEA3. Thuật toán này được trình bày trong tiêu chuẩn 3GPP TS 35 02
Trong kiến trúc bảo mật mạng mạng 3G các hàm f1, f2, f3, f4, f5 được dùng
để tạo khóa nhận thực và chúng nằm trong miền của một nhà khai thác. Các thuật toán tạo khoá và nhận thực (AKA) được thực hiện ở các trung tâm nhận thực (AuC) của nhà khai thác và ở các mô đun đặc tả thuê bao di động (USIM) chỉ thuộc mạng của nhà khai thác đó. Để đạt được sự liên kết hoạt
động giữa các USIM khác nhau và AuC, ta cần sử dụng một thuật toán tiêu chuẩn chung, và thuật toán MILENAGE được đề xuất dùng chung cho các nhà khai thác mạng. Thuật toán này được trình bày trong tiêu chuẩn 3GPP TS 35 206
Chương 3
CÁC LOẠI TẤN CÔNG VÀ GIẢI PHÁP BẢO VỆ MẠNG 3G 3.1 NHỮNG HIỂM HỌA ĐỐI VỚI MÁY DI ĐỘNG [17]
Trong mạng thông tin di động 3G, dự liệu của máy di động có thể bị lộ, do một số phần mềm độc hại (malware) gây ra. Phần mềm độc hại thường là một chương trình hoặc một đoạn mã chương trình có khả năng tác vụ bất hợp pháp lên máy tính, các phần tử mạng, hoặc thiết bịđầu cuối di động với mục đích: thăm dò lưu lượng, đánh cắp các thông tin cá nhân, làm lộ các thông tin bí mật, xoá các file dự liệu...Có 8 loại phần mềm độc hại điển hình:
1) Worms (sâu/mọt): Một chương trình có thể tự copy bản thân nó, làm mất khả năng bảo mật của máy bị nhiễm. Các loại sâu độc hại thường gặp trên máy điện thoại di động là:
- Cabir Worm: Phần mềm có hại sử dụng Bluetooth để gây nhiễm các máy
điện thoại và truyền tải bản thân nó đến máy chủ dưới dạng một file. Phần mền này có thể lan toả nhanh giữa các máy di động sử dụng hệ điều hành Symbian. Khi bị nhiễm Cabir worm, hệ điều hành của máy di động bị biến
đổi sau mỗi lần khởi động máy. Máy điện thoại bị nhiễm lại có thể quét các máy điện thoại khác có Bluetooth và gửi file “velasco.sis”, có chứa Cabir worm. Cabir.worm không phá huỷ dự liệu, nhưng nó có thể khoá mọi kết nối Bluetooth và làm cạn kiệt nhanh pin của máy điện thoại.
- Lasco Worm: Một loại sâu gây nhiễm các thiết bị trợ giúp cầm tay (PDA) và các máy di động chạy hệ điều hành Symbian. Nó dựa trên mã nguồn của Cabir để tự nhân bản và truyền qua kết nối Bluetooth đến thư mục inbox dưới dạng file “velasco.sis”. Khi mở file này, sâu được kích hoạt và tìm kiếm các thiết bị mới có sử dụng Bluetooth, sau đó tự nhân bản và chèn vào các file SIS (các hệ thống tích hợp Silicon) khác trên thiết bị di động.
- Comwarrior Worm: Một loại sâu lan toả qua MMS và Bluetooth. Hiện có hơn 7 dạng biến đổi của loại sâu này, trong đó nguy hiểm nhất là Comwar.g có khả năng lây nhiễm file và tìm các file SIS khác trong bộ nhớ của máy
điện thoại di động, sau đó bổ sung mã nguồn của nó tới các file này.
2) Zombies: Một chương trình bí mật được thực hiện trên các máy tính có nối với Internet, nhằm tấn công làm từ chối dịch vụ (DoS). Chúng thường
được sử dụng một cách đồng bộ, tạo thành các cuộc tấn công mạnh, gây quá tải mục tiêu, tràn ngập lưu lượng Internet.
3) Viruses: Một chuỗi mã nguồn được chèn vào các mã nguồn khác. Khi chương trình chạy thì mã nguồn bị virus sẽ tự copy và chèn tiếp vào các chương trình khác. Viruses không phải là các chương trình riêng biệt, nên chúng không thể tự chạy, mà cần phải có chương trình chủ để kích hoạt chúng. Một số loại virus điển hình trong thông tin di động như Duts virus, Pseudo-virus,...Các virus này có thể khoá thẻ nhớ, phá các chương trình diệt virus, gây nhiễm file cá nhân, biến đổi các biểu tượng, cài đặt font chữ sai, dừng hoạt động một số ứng dụng, lấy cắp dữ liệu và gửi các bản tin tới những người sử dụng khác...
4) Trojan Horses: Một phần mềm độc hại thực hiện các tác vụ bất hợp pháp. Trojan khác với virus là nó không có khả năng nhân bản. Một Trojan gồm 2 phần: Client và Server. Khi một nạn nhân thực hiện một Trojan server trên máy của mình, kẻ tấn công liền sử dụng phần client của Trojan đó để kết nối với máy chủ và bắt đầu sử dụng máy chủ dựa trên giao thức, ví dụ, TCP hoặc UDP. Khi một Trojan server chạy trên máy tính của nạn nhân, nó thường ẩn ở đâu đó, sau đó nó bắt đầu tìm kiếm các cuộc kết nối trên các cổng đầu vào, làm biến đổi việc ghi chép của hệ thống, hoặc sử dụng một số
phương pháp tự động khác để khởi động lại và cấp phép cho kẻ tấn công truy nhập vào máy bị nhiễm. Các loại Trojan phổ biến trên máy di động là:
- Skull Trojan: Tấn công trên các điện thoại dùng hệ điều hành Symbian, làm ngừng liên kết với những ứng dụng hệ thống, bằng cách thay thế biểu tượng menu bằng các hình ảnh đầu lâu;
- Mosquito Trojan: Phiên bản được crack từ trò chơi điện thoại di động “Mosqutos”, nó có ảnh hưởng tới trên 60 loại điện thoại thông minh;
- Brador Trojan: Một Trojan gây ảnh hưởng các máy di động dùng hệ điều hành Windows CE, bằng cách tạo ra một file “svchost.exe” trong thư mục Windows Start-up, nhằm điều khiển toàn bộ thiết bị.
- Cardtrap.A: Một Trojan lây nhiễm các máy tính khi truyền dự liệu từ máy di động bị nhiễm sang máy tính. Nó có thể cài một số sâu vào thẻ nhớ của máy di động để gây nhiễm máy tính. Cardtrap.A lan toả chậm và chỉ ảnh hưởng đến các máy di động chạy hệđiều hành Symbian;
-MetalGear: Một Trojan có khả năng kết hợp một số chương trình máy di
động đã bị nhiễm, sau đó lan toả trên các máy di động sử dụng hệ điều hành Symbian. Nó ngăn các chương trình diệt virus hoặc các chương trình khác chạy, sau đó cài đặt sâu Cabir, để cấm khởi động nút Menu của máy di động.
5) Logic Bombs: Một đoạn mã chương trình được chèn có chủ ý hoặc bí mật dưới những điều kiện đặc biệt, sau một khoảng thời gian đã trôi qua kể từ
logic bomb có thể hiển thị một bản tin giả mạo, xoá, phá vỡ dự liệu hoặc gây những ảnh hưởng có hại khác.
6) Trap Doors: Một trap door (back door) là điểm đầu vào bí mật trong một chương trình, cho phép kẻ tấn công nhận được quyền truy nhập mà không cần thực hiện các thủ tục truy nhập bảo mật. Sự khác biệt giữa một trap door và một Trojan truy nhập từ xa (RAT) là trap door chỉ mở một cổng, còn RAT được thiết kế với kiến trúc client-server.
7) Phishing Scam (PS): Một trang Web, một email, hoặc một tin nhắn không trung thực, làm cho những người sử dụng mất cảnh giác, để lộ các thông tin nhạy cảm như password, thông tin tài chính, hoặc dự liệu cá nhân...
8) Spyware: Một phần mềm làm lộ thông tin cá nhân của người sử dụng máy di động hoặc hệ thống máy tính. Ví dụ, như FlexiSpy gửi một log các cuộc gọi di động và các bản sao các văn bản và các tin nhắn MMS đến một máy chủ Internet thương mại, để bên thứ ba có thể xem được.
3.2 CÁC KIỂU TẤN CÔNG TRÊN MẠNG DI ĐỘNG 3G [05]
3.2.1 Phân loại các kiểu tấn công
Có thể phân chia các kiểu tấn công vào mạng 3G thành 3 nhóm: (1) Theo thể
loại tấn công; (2) Theo phương tiện tấn công và (3) Theo chiều truy nhập vật lý, trong đó các kiểu tấn công lại được phân chia theo mức độ truy nhập vật lý mà kẻ tấn công sử dụng trong mạng.
1) Theo thể loại tấn công
(a) Ngăn chặn: Kẻ tấn công ngăn chặn thông tin, đọc các bản tin báo hiệu trên một đường truyền, nhưng không biến đổi hoặc xóa các thông tin này;
(b) Giả mạo/phát lặp: Kẻ tấn công chèn thêm các đối tượng giả mạo vào hệ
thống, các bản tin báo hiệu sai, logic dịch vụ giả, hoặc dự liệu thuê bao giả
vào đường truyền thông, dẫn đến là, kẻ tấn công giả mạo như là một thực thể
có thẩm quyền;
(c) Biến đổi các nguồn tài nguyên: Kẻ tấn công biến đổi các nguồn tài nguyên của hệ thống như các bản tin báo hiệu vào và ra, biến đổi logic dịch vụ, hoặc dự liệu thuê bao;
(d) Từ chối dịch vụ (DoS): Kẻ tấn công gây quá tải, ngắt các nguồn tài nguyên hoặc những ứng dụng được kết nối đến mạng, buộc mạng phải hoạt
dịch vụ, trong khi đó một thuê bao không hợp lệ lại có thể nhận được dịch vụ, tệ hơn, làm toàn bộ mạng bị cấm;
(e) Ngắt quãng: Kẻ tấn công phá huỷ các nguồn tài nguyên: Xoá các bản tin