Đồ án Nghiên cứu các phương pháp bảo mật trong hệ thống GSM

MỤC LỤC

MỤC LỤC 5

LỜI NÓI ĐẦU 9

DANH SÁCH CÁC HÌNH VẼ 90

THUẬT NGỮ VIẾT TẮT 92

TÀI LIỆU THAM KHẢO 97

 

CHƯƠNG I . TỔNG QUAN HỆ THỐNG THÔNG TIN TẾ BÀO

1.1.Hệ thống thông tin di động tế bào 11

1.1.1. Khái niệm 11

1.1.2. Cấu trúc 11

1.1.2.1. Cấu trúc hệ thống thoại di động trước đây 11

1.1.2.2. Cấu trúc hệ thống thông tin di động tế bào 11

1.1.3. Phân loại cell 13

1.2. Lịch sử phát triển các hệ thống mạng di động 14

1.2.1. Hệ thống thông tin di động thế hệ thứ nhất ( 1G ) 14

1.2.2. Hệ thống thông tin di động thế hệ thứ 2 ( 2G ) 15

1.2.3. Hệ thống thông tin di động thế hệ 2,5G 16

1.2.4. Hệ thống thông tin di động thế hệ 3G 16

1.3. Hệ thống thông tin di động GSM 16

1.3.1 Mô hình hệ thống thông tin di động GSM 16

1.3.2. Các thành phần chức năng trong hệ thống 17

1.3.2.1. Trạm di động ( MS – Mobile Station ) 18

1.3.2.2. Phân hệ trạm gốc ( BSS – Base Station Subsystem ) 18

1.3.2.2.1. Khối TRAU (Transcode/Rate Adapter Unit ) 19

1.3.2.2.2. Khối BTS ( Base Tranceiver Station ) 19

1.3.2.2.3. Khối BSC (Base Station Controller) 19

1.3.2.3. Phân hệ chuyển mạch SS ( SS - Switching Subsystem ) 19

1.3.2.3.1. Trung tâm chuyển mạch di động MSC 20

1.3.2.3.2. Bộ ghi định vị thường trú ( HLR – Home Location Register ) 21

1.3.2.3.3. Bộ ghi định vị tạm trú ( VLR – Visitor Location Register ) 22

1.3.2.3.4. Thanh ghi nhận dạng thiết bị ( EIR – Equipment Identity Register ) 22

1.3.2.3.5. Khối chứng thực thuê bao ( AuC – Authetication Center ) 22

1.3.2.4. Phân hệ khai thác và bảo duỡng 23

1.3.2.4.1. Khai thác 23

1.3.2.4.2. Bảo dưỡng 23

1.4. Hệ thống thông tin di động UMTS 24

1.4.1. Mô hình hệ thống thông tin di động UMTS 24

1.4.2. Các thành phần chức năng trong hệ thống 24

1.4.2.1. Trạm di động 24

1.4.2.2. Phân hệ trạm gốc 26

1.4.2.2.1. Cấu trúc của UTRAN 27

1.4.2.3. Mạng lõi UMTS ( CN – Core Network ) 29

1.4.2.3.1. Máy chủ quản lý thuê bao HSS 30

1.4.2.3.2. Miền chuyển mạch kênh CS 31

1.4.2.3.3. Miền chuyển mạch gói PS 32

CHƯƠNG II : BẢO MẬT TRONG MẠNG GSM

2.1. Mô hình bảo mật trong mạng GMS 34

2.2. Mục đích của việc bảo mật 36

2.3. Một số đặc trưng bảo mật trong GSM 36

2.3.1. Chứng thực thuê bao 36

2.3.1.1. Cơ chế chứng thực trong hệ thống GSM 38

2.3.1.2 Quá trình chứng thực như sau 38

2.3.2. Mã hóa 39

2.3.2.1. Tạo key mã hóa Kc 39

2.3.2.2. Mã hóa dữ liệu 40

2.2.3. Một số đặc trưng bảo mật khác 40

2.2.3.1. Bảo vệ nhận dạng thuê bao 40

2.3.3.2. Card thông minh 41

2.4. Thuật toán nhận thực 41

2.4.1. Giới thiệu 41

2.4.2. Thủ tục nhận thực 42

2.4.3. Thuật toán COMP 128 45

2.4.3.1. Mô tả thuật toán COMP 128 45

2.4.3.2. Chức năng cơ bản của COMP 128 46

2.4.3.2.1. Thuật toán Nén – Cấu trúc Butterfly 47

2.4.3.2.2. Hoán vị 48

2.4.3.2.3. Đầu ra của thuật toán COMP 128 48

2.4.5. Tấn công COMP 128 49

2.4.5.1. Narrow Pipe 49

2.4.5.2. Phân vùng tấn công 50

2.5. Thuật toán A5 50

2.5.1. Giới thiệu 50

2.5.2. Thủ tục mã hóa 51

2.5.3. Thuật toán A5 52

3.5.3.1. Cấu trúc thuật toán A5 52

2.5.3.2. Mô tả thuật toán A5 53

2.5.4. Tấn công thuật toán A5/1 56

2.5.4.1. Hệ thống GSM Interceptor Pro 58

2.6. Hạn chế của bảo mật trong mạng GSM 58

2.6.1. Ưu điểm của GSM từ quan điểm UMTS 58

2.6.2. Nhược điểm của GSM 59

CHƯƠNG III : MỐI TƯƠNG QUAN GIỮA UMTS VÀ GSM

3.1. Giới thiệu về bảo mật trong mạng UMTS 61

3.1.1. Đặc điểm bảo mật trong mạng UMTS 61

3.1.1.1. Bảo mật truy nhập mạng 62

3.1.1.2. Bảo mật lĩnh vực mạng 63

3.1.1.3. Bảo mật miền người sử dụng 63

3.1.1.4. Bảo mật miền ứng dụng 63

3.1.1.5. Tính định hình và tính rõ ràng của bảo mật 64

3.1.2. Cấu trúc bảo mật mạng UMTS 64

3.2. Nhận thực trong UMTS 65

3.2.1. Cơ chế nhận thực trong mạng UMTS 65

3.2.2. Chứng thực dữ liệu từ HE đến SN 66

3.2.3. Phát sinh vecto chứng thực AV 67

3.2.3. Chứng thực và khóa thỏa thuận 68

3.2.4. Cơ chế đồng bộ lại 70

3.2.5. Thông báo chứng thực thất bại từ SGSN/VLR tới HLR 71

3.3. Mã hóa trong UMTS 71

3.3.1. Giới thiệu 71

3.3.2. Phương thức mã hóa 72

3.3.3. Các thông số đầu vào của thuật toán 72

3.3.3.1. COUNT – C 72

3.3.3.2. Ciphering key (CK) 73

3.3.4. Thuật toán nguyên ( Integrity Algorithms ) 74

3.3.5. Các thông số đầu vào 75

3.3.5.1. COUNT – I 75

3.3.5.2. Khóa nguyên (IK) 75

3.3.5.3. Fresh 75

3.3.6.4. Bit định hướng Direction 76

3.4. Mối tương quan của UMTS và GSM 76

CHƯƠNG IV : MÔ PHỎNG THUẬT TOÁN A3, A8 VÀ A5

4.1. Chương trình mô phỏng thuật toán A3, A8 77

4.2. Chương trình chạy mô phỏng thuật toán A51 83

CHƯƠNG V : KẾT LUẬN

 

 

doc95 trang | Chia sẻ: lethao | Lượt xem: 3617 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu các phương pháp bảo mật trong hệ thống GSM, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
S đến HLR/AuC để hỏi Triplet có hợp pháp hay không. Trên IMSI nhận được, bộ HLR/AuC có thể tìm Ki tương ứng đến thuê bao. Bằng thuật toán A3 và A8 bộ HLR/AuC tạo ra nhiều Triplet thị thực và gửi trả lại trạm gốc. Sau khi nhận được các Triplet nhận thực, BS chọn một Triplet và gửi RAND đến MS thông qua đường truyến vô tuyến. Với Ki trong SIM và bằng thuật toán A3, A8 thiết bị di động MS có thể tính ra SRES và Kc tương ứng với RAND mà nó vừa nhận được từ BS. Máy MS gửi SRES trở lại trạm BS và cho biết rằng thuê bao đã ghép với IMSI Trạm BS kiểm tra, so sánh giữa SRES vừa nhận và SRES trong Triplet đã chọn, nếu chúng bằng nhau thì quá trình nhận thực thành công Các bước từ 4 đến 6 được biểu diễn theo hình dưới. Hình 2.5. Các bước từ 4 đến 6 Nếu quá trình nhận thực thành công thì MS có thể truy nhập vào hệ thống mạng GSM. 2.3.2. Mã hóa 2.3.2.1. Tạo key mã hóa Kc GSM sử dụng key mã hóa để bảo vệ dữ liệu người dùng và báo hiệu trên các giao tiếp vô tuyến. Mỗi khi người dùng được xác thực, RAND được phát từ mạng cùng với Ki từ SIM được gửi qua giải thuật tạo key mã hóa A8 để tạo ra key mã hóa Kc. Giải thuật A8 được lưu trên SIM. Kc được tạo bởi giải thuật A8 sau đó được sử dụng trong giải thuật A5 để mã hóa và giải mã dữ liệu. Hình 2.6. Tạo khóa phiên Kc Key phiên Kc được tạo ra trong SIM của máy di động. Mạng có thể sử dụng cùng tập Ki, RAND và cùng giải thuật để tạo cùng key để giải mã dữ liệu. Phần lớn các nhà khai thác GSM sử dụng một giải thuật (gọi là COMP128) cho cả xác thực và tạo key Kc. 2.3.2.2. Mã hóa dữ liệu Giao tiếp được mã hóa được khởi động bởi lệnh yêu cầu chế độ mã hóa từ mạng GSM. Khi nhận lệnh này, máy di động bắt đầu mã hóa và giải mã dữ liệu. Mỗi khung trong dữ liệu vô tuyến được mã hóa với một chuỗi key khác nhau. Giải thuật A5 sử dụng để mã hóa dữ liệu với Kc và số khung được mã hóa, vì vậy tạo ra một chuỗi key khác nhau cho mỗi khung. Cùng Kc được sử dụng cho đến khi MSC xác thực MS lại, trong trường hợp này một Kc mới được tạo ra. Thực tế, cùng một Kc có thể được sử dụng vài ngày. Xác thực MS là một thủ tục tùy chọn khi bắt đầu cuộc gọi, nhưng thường không được thực hiện. Vì vậy phổ biến là Kc sẽ không trao đổi trong các cuộc gọi. Khi nó được tắt, máy di động lưu trữ TMSI trên SIM để chắc rằng nó có sẵn khi mở lại. Giải thuật A5 được cài đặt trong phần cứng của máy di động để mã hóa và giải mã dữ liệu. Hình 2.7. Mã hóa dữ liệu thoại. 2.2.3. Một số đặc trưng bảo mật khác 2.2.3.1. Bảo vệ nhận dạng thuê bao IMSI (Số nhận dạng thuê bao di động quốc tế) được lưu trong SIM. Để đảm bảo nhận dạng thuê bao một cách tin cậy, TMSI (số nhận dạng thuê bao tạm thời) được sử dụng. TMSI được gởi đến máy di động sau khi thủ tục xác thực và mã hóa xảy ra. Máy di động trả lời bằng cách báo đã nhận TMSI. TMSI có giá trị trong khu vực định vị mà nó được phát ra. Để giao tiếp bên ngoài khu vực này, LAI cần được bổ sung tới TMSI. 2.3.3.2. Card thông minh Card thông minh giống như một máy tính nhỏ mà có bộ nhớ, CPU và hệ điều hành. Bằng cách lập trình trong rom, nó có thể lưu dữ liệu nhạy cảm với mức bảo mật cao. Vì vậy nó đưa ra cách tốt để lưu trữ Ki và IMSI và các dữ liệu nhạy cảm khác. 2.4. Thuật toán nhận thực 2.4.1. Giới thiệu A3 là giải thuật chứng thực trong mô hình bảo mật GSM.Giải thuật lấy RAND từ MSC và khóa bảo mật Ki từ trong SIM như là các dữ liệu đầu vào và tạo ra 32 bit ngõ ra gọi là các đáp ứng ngõ ra. Cả RAND và Ki đều có chiều dài là 128 bit. Giả thuật A3 có thể xem như là giải thuật Hash một chiều. Nói chung, hàm Hash là hàm xuất ra chuỗi bit có chiều dài cố định từ các ngõ vào ngẫu nhiên. Hàm Hash một chiều được thiết kế để mã hóa dữ liệu sao cho không cách nào có thể phát hiện ra được các giá trị đầu vào đã tạo ra giá trị Hash và không có hai giá trị đầu vào lại tạo ra cùng một giá trị Hash. Giải thuật A8 là giải thuật tạo ra key phiên giao dịch trong mô hình bảo mật GSM. Giải thuật lấy 2 tham số nhập 128 bit và tạo ra chuỗi 64 bit từ chúng. Chuỗi này gọi là key Kc. Hầu hết, các nhà vận hành mạng GSM đều sử dụng giải thuật COMP 128 cho cả hai thuật toán A3 và A8. COMP 128 lấy RAND và Ki làm ngõ vào để tạo ra 128 bit ngõ ra, thay vì 32 bit SRES và 64 bit Kc. Chuỗi 32 bit đầu tiên trong kết quả 128 bit đầu ra đóng vai trò là đáp ứng SRES. Chuỗi 54 bit cuối của chuỗi COMP 128 tạo thành key phiên giao dịch Kc cho đến khi MS được xác thực lại. Chiều dài của key Kc là 54 bit chứ không phải 64 bit chiều dài của key nhập vào giải thuật A5. Để tạo ra key với 64 bit thì 10 bit 0 được chèn vào cuối của chuỗi 54 bit được tạo ra bởi thuật toán COMP 128. Cả giải thuật A3 và A8 được lưu trong SIM để ngăn chặn mọi người làm giả chúng. 2.4.2. Thủ tục nhận thực Khi MS muốn truy nhập mạng, MS sẽ gửi số nhận dạng IMSI kèm Ki tới MSC/VLR. Sau đó, MSC/VLR sẽ gửi IMSI tới HLR và AuC và yêu cầu bộ ba chứng thực Hình 2.8. MS gửi bản tin IMSI Khi HLR nhận được IMSI và yêu cầu chứng thực. Đầu tiên nó kiểm tra cơ sở dữ liệu xem IMSI có hợp lệ hay không. Nếu hợp lệ HLR sẽ gửi IMSI và yêu cầu chứng thực tới trung tâm nhận thực AuC Hình 2.9. HLR gửi IMSI tới AuC AuC sẽ tìm kiếm Ki kết hợp với IMSI. Ki là khóa chứng thực thuê bao cá nhân. Nó là một số gồm 128 bit, tạo thành 1 cặp với IMSI khi SIM card được tạo ra. Ki được lưu trữ ở trên SIM card và trung tâm nhận thực AuC. AuC sẽ tạo ra một số ngẫu nhiên gồm 128 bit gọi là RAND Hinh 2.10. AuC tạo RAND và Ki RAND và Ki là tín hiệu đầu vào của thuật toán A3 và đầu ra là một chuỗi 32 bit gọi là tín hiệu trả lời SRES Hình 2.11. Tạo ra SRES trong AuC RAND và Ki là đầu vào của thuật toán A8 để đầu ra là một chuỗi gồm 64 bit gọi là khóa mã hóa Kc. Kc được sử dụng cho thuật toán A5 để mã hóa dữ liệu truyền trên giao diện Um. RAND, SRES và Kc được gọi là bộ ba ( Triplets ). AuC có thể tạo ra nhiều bộ ba để gửi đến MSC Hình 2.12. Tạo Kc và Triplet trong AuC Chỉ có AuC là tạo ra bộ ba Triplets và gửi chúng tới HLR. Sau đó, HLR sẽ gửi chúng tới MSC/VLR. Hình 2.13. AuC gửi Triplet tới MSC MSC giữu lại Kc và SRES còn RAND được gửi tới MS và yêu cầu nó chứng thực Hình 2.14. MSC gửi RAND tới MS MS với Ki được lưu ở trên SIM và cùng thuật toán A3, A8. RAND, Ki ở đầu vào của thuật toán A3 và A8 để tạo ra SRES và Kc ở đầu ra. Hình 2.15. MS tạo SRES và Kc Sau khi MS tạo ra SRES nó sẽ gửi SRES tới MSC/VLR. Tại đây MSC/VLR so sánh SRES nó nhận được từ AuC và MS xem có bằng nhau không. Nếu chúng giống nhau thì quá trình nhận thực thành công. 2.4.3. Thuật toán COMP 128 2.4.3.1. Mô tả thuật toán COMP 128 Nhận thực thường được sử dụng trong mạng GSM cung cấp các khả năng nhận thực trạm di động và các trạm truyền dẫn gốc. Ngày nay, các thuật toán A3 và A8 đều được tích hợp bên trong một thuật toán gọi là COMP 128. Với thuật toán COMP 128 này, đầu vào bao gồm 32 bytes (256 bit) của RAND và Ki, đầu ra là 12 bytes (96 bit) trong đó 32 bit SRES và 64 bit Kc. Thuật toán này không được đưa ra công khai nhưng điều đó đã bị làm trái lại bởi Marc Briceno, Ian Goldberg, và David Wagner vào năm 1998. Hình 2.16. Mô tả thuật toán COMP 128 2.4.3.2. Chức năng cơ bản của COMP 128 Thuật toán COMP128 với các thông số như sau : Đầu vào : 32 bytes trong đó có 16 byte (128 bit) RAND 16 byte (128 bit) Ki Đầu ra : 12 byte trong đó có 32 bit SRES sử dụng cho việc chứng thực 54 + 10 bit 0 (thêm vào) Kc sử dụng cho thuật toán A5. Thuật toán COMP 128 có chức năng của hàm Hash một chiều. Hàm Hash là một hàm bao gồm có 5 vòng trong mỗi vòng có 16 cặp của 2 byte được chuyển đổi. Trong mỗi vòng một số S- box khác nhau được sử dụng. Vòng đầu tiên chỉ chuyển đổi 2 octets bằng 2 octets, vòng thứ 2 giảm 2 octets thành 1 cặp có giá trị 7 bit. Vòng thứ 3 giảm 16 cặp có giá tri 7 bit thành 16 cặp có giá trị 6 bit và cứ thế cho đến hết 5 vòng. Vì vậy, nguyên lý cơ bản của hàm Hash là một cấu trúc Butterfly. Sự giảm nhỏ được thực hiện với một giá trị tạm thời : y = ( x[m] + 2x[n] ) (mod 29 – j) z = ( 2x[m] + x[n] ) (mod 29 - j) Sau đó quá trình nén được thực hiện như sau : x[m] = tablej [y] x[n] = tablej [z] Thuật toán COMP 128 được thực hiện với một mảng 32 bytes x[]. Quá trình đó diễn ra như sau : Bước 1 : Tải RAND vào trong x[16…31] Bước 2 : Thực hiện lặp 8 lần . Trong đó, mỗi lần lặp diễn ra như sau Tải Ki đến x[1…15] Compression ( nén ) Tạo bit từ bytes Hoán vị Bước 3 : Nén 16 bytes thành 12 bytes và lưu trữ ở trong Simoutput []. Bước 4 : Trở về Simoutput []. 2.4.3.2.1. Thuật toán Nén – Cấu trúc Butterfly Hình 2.17. Quá trình nén trong COMP 128 Cấu trúc như trên được gọi là cấu trúc Butterfly. Theo cấu trúc này quá trình nén được thực hiện trong 5 mức. Trong mỗi mức đó, nén được thực hiện trên 2 phần bằng nhau ví dụ như ở mức 0 nó thực hiện trên 2 phần 16 bytes, mức 1 thực hiện trên 4 phần 8 bytes..vv. Kết quả là một byte được sinh ra từ 2 byte đầu vào. Hai bytes đầu vào đựoc sử dụng để xác định chỉ số của bảng tìm kiếm ( lookup table ). Bảng tìm kiếm mức i được xác định bởi Ti và nó bao gồm 29 – i giá trị của 8 bit. Ví dụ : Level Table name Number of entries Value 0 T0 512 8 4 T4 32 4 Như vậy, sau khi nén chỉ có giá trị 4 bit được đưa vào x []. Tạo bit từ bytes : mỗi đầu vào của x [] bao gồm một giá trị 4 bit sau khi nén. Ngoại trừ, ở vòng lặp cuối các bit được đưa vào ngẫu nhiên và được lưu trữ trong x [16…31] 2.4.3.2.2. Hoán vị Sau mỗi vòng lặp của thuật toán COMP 128 trừ vòng lặp cuối, hoán vị sẽ được thực hiện như sau Sau khi giảm thì 4 bit MSB mang giá trị là 0 Vị trí mới của tất cả các bit được xác định theo biểu thức : Bit [i] = bit [(17.i)(mod 128)] Sau đó, dãy bit được sử dụng để đưa vào 4 bytes cao nhất trong x []. Vì vậy, các bit từ bit [i] đến bit [i + 7] được sử dụng như là bytes x [i], nhưng bị đảo nghịch lại. Vì thế, bit [i] là MSB của byte [i] 2.4.3.2.3. Đầu ra của thuật toán COMP 128 Thuật toán COMP 128 cung cấp một chuỗi 128 bit nhưng chỉ sử dụng 86 bit : 32 bit đầu trong 86 bit được sử dụng cho việc trả lời chứng thực SRES Hình 2.18. 32 bit SRES 54 bit sau được sử dụng để làm đầu vào cho thuật toán A5. Tuy nhiên, thuật toán A5 cần 64 bit Kc đầu vào vì vậy 10 bit 0 đuợc thêm vào khóa Kc để làm đầu vào. Hình 2.19. 64 bit Kc 2.4.5. Tấn công COMP 128 Vào tháng 4 năm 1998 Marc Briceno, Ian Goldberg và David Wagner đã công khai tấn công COMP 128 với việc tìm ra khóa bí mật Ki. Marc Briceno đã nghiên cứu tấn công với truy nhập vật lý tới Card trong khoảng 8 h nhưng thật ngạc nhiên là lại tìm ra cách tấn công trên giao diện vô tuyến. GSM đã chống lại điều đó bằng cách tạo ra các phiên bản mới của COMP 128. Như vậy, các chức năng cơ bản đã được đổi tên thành COMP 128 – 1, sau đó phát triển 2 bản khác trong bí mật cho đến bây giờ. Bản thứ 2 dường như tìm ra một cách mới để tạo ra tín hiệu trả lời SRES, trong khi đó COMP 128 – 3 lại chỉ mở rộng độ dài của tín hiệu SRES đưa tới A5. Nhưng hầu hết các cung cấp đó vẫn sử dụng trong COMP 128 – 1. Hai năm sau, một nhóm nghiên cứu của IBM lần đầu tiên công khai tấn công với công nghệ gọi là Partitioning Attack dựa trên sự phân tích công suất khác nhau ( DPA ). Kết quả của cuộc tấn công này là chỉ cần 8 yêu cầu để gửi đến SIM và truy nhập vật lý chỉ trong vài giây. Trong thời gian ấy,phiên bản thứ 4 ra đời đây là một phiên bản hoàn toàn mới. Sự cải tiên lớn nhất là GSM đã thay đổi từ các mẫu bảo mật cũ đến các chuẩn công khai, dựa trên AES. Phiên bản COMP 128 – 4 được sử dụng trong mạng UMTS. 2.4.5.1. Narrow Pipe Sự công kích là một sự đụng độ mà nó là điều đầu tiên trong tất cả điều có thể xảy ra bởi vì 95% sự đụng độ xảy ra ở đầu ra bắt đầu của vòng 2, ngược lại sự đụng độ không xảy ra ở vòng 1 kể từ khi nó được sắp xếp một – một.. Với cách phân tích như vật Briceon đã tìm ra rằng “ riêng bytes i, i + 8 ,i +16, i + 24 đầu ra của vòng thứ 2 phụ thuộc đầu vào của thuật toán COMP 128.” Việc này gọi là Narrow Pipe, một “pipe” có độ rộng là 4 bytes. Hình 2.20. Narrow Pipe 2.4.5.2. Phân vùng tấn công Phân vùng tấn công nói chung cho tôc độ chậm trong việc xử lý của Card thông minh, nó thường rất cần thiết để thoát ra khỏi một vài phép tính và tìm kiếm kết quả trong bảng. Bảng tìm kiếm này có thể có một vài đặc điểm giúp cho người tấn công. Trong trường hợp COMP 128 thì thông tin quan trọng đó là bộ xử lý chỉ đề địa chỉ 8 bit nhưng trong s-box đầu tiên bao gồm 512 giá trị nó cần đề địa chỉ của 9 bit. Như vậy, bảng cần chia thành 2 miếng nhỏ. Các kỹ sư IBM đã tạo nên sự giả định rằng bảng đó được chia ở giữa. Với sự giả định đó họ đã có được thông tin kich thước, kết thúc việc phân vùng tấn công. Kết quả này có thể hoàn thành với một số lớn của một 1000 challenges ngẫu nhiên. 2.5. Thuật toán A5 2.5.1. Giới thiệu Thuật toán A5/1 là một thuật toán mã hóa và giải mã sử dụng trong hệ thống thông tin di động GSM để bảo vệ thông tin Voice của thuê bao di động gửi qua đường vô tuyến, tránh các trường hợp nghe lén. Hiện tại trên thế giới đang triển khai các phiên bản của thuật toán A5 như sau A5/0 là một phiên bản của thuật toán A5 nhưng nó yếu hiện không được sử dụng. A5/1 là một thuật toán mạnh nhất hiện nay, đang được triển khai tại Western Europe và America A5/2 là một phiên bản của A5, yếu hơn A5/1 và được triển khai chủ yếu ở các nước Asia. A5/3 đang trong giai đoạn nghiên cứu. Cùng với các thuật toán A3 và A8, thuật toán này được phát triển phục vụ cho việc bảo mật trong mạng GSM, nó không được công bố rộng rãi. Nhưng hiện nay các thuật toán này đã bị bẻ khóa và có thể dễ dàng tìm thấy chúng ở trên mạng Internet. Ở đây chúng ta chỉ tìm hiểu thuật toán A5/1 đang được sử dụng rộng rãi ở Việt Nam cũng như nhiều nước khác. 2.5.2. Thủ tục mã hóa Trong phần này, chúng ta nghiên cứu phương thức trao đổi, thực hiện việc mã hóa trên đường vô tuyến như thế nào. Các phần tử tham gia vào thủ tục này gồm có : MS, BTS, MSC/VLR. Như ta đã biết thông qua thủ tục nhật thực, MS lưu khóa Kc trên SIM card. Sau khi nhận được RAND từ mạng, MS dùng thuật toán A8 để tính ra SRES rồi gửi ngược về mạng. Tổng đài MSC nhận SRES từ MS và so sánh với SRES nhận đựoc từ trung tâm nhận thực AuC. Nếu chúng giống nhau thì quá trình nhận thực thành công và MS có thể sử dụng các dịch vụ mạng Hình 2.21. Quá trình nhận thực Sau khi MS được nhận thực, MSC sẽ gửi khóa Kc tới hệ thống BSS cụ thể ở đây là BTS và yêu cầu BTS, MS chuyển sang chế độ mã hóa Cipher Mode. Kc sẽ không được truyền qua giao diện Um mà được lưu trữ tại BTS Hình 2.22. MSC gửi khóa Kc tới BSS BTS đưa khóa Kc và tải dữ liệu vào thuật toán A5, kết quả ta được chuỗi dữ liệu được mã hóa. MS cũng đưa khóa Kc và tải dữ liệu thuê bao vào thuật toán A5, kết quả ta được chuỗi dữ liệu được mã hóa. Cần chú ý rằng, thuật toán A5 là một chức năng của máy di động ME chứ không phải của SIM card. Hình 2.23. Quá trình mã hóa 2.5.3. Thuật toán A5 3.5.3.1. Cấu trúc thuật toán A5 Cấu trúc của thuật toán A5 được biểu thị qua hình sau Hình 2.24. Cấu trúc thuật toán A5 Hai thông số vào của thuật toán A5 là session key Kc( 64bit ) và số khung ( 22 bit ), và bộ mã hóa sẽ thực hiện sinh ra keystream sau mỗi lần khung mang dữ liệu thay đổi. Cùng một Kc được sử dụng xuyên suốt cuộc gọi, nhưng số thứ tự khung Frame Number ( một số 22 bit ) thay đổi trong suốt chu kỳ cuộc gọi. Do vậy, thuật toán sinh ra chuỗi khóa 228 bit duy nhất tương ứng với mỗi khung. Chi tiết bộ mã hóa như sau Hình 2.25. Chi tiết bộ mã hóa Mục đích của thuật tóan A5 là sinh ra 228 bit Cipher Stream từ Kc và Fn ( số khung ), sau đó dùng Cipher Stream này để mã hóa dữ liệu của thuê bao.. Tại BTS, 114 bit đầu dùng để giải mã luồng dữ liệu từ MS đến BTS còn 114 bit sau được dùng để mã hóa luồng dữ liệu từ BTS đến MS. Tại MS, 114 bit đầu được dùng để mã hóa luồng dữ liệu từ BTS đến MS và 114 bit sau được dùng để mã hóa luồng dữ liệu từ MS đến BTS. 2.5.3.2. Mô tả thuật toán A5 Thuật toán A5/1 bao gồm 3 thanh ghi dịch LSFR có độ dài khác nhau R1 = 19, R2 = 22, R3 = 23, các bit đầu tiên bên phải đều là các bit 0. Trên thanh ghi R1 các bit 13, 16, 17, 18 được gọi là các bit vị trí. Tương tự trên thanh ghi R2 là các bit 20, 21 và thanh ghi R3 là 7, 20, 21, 22. Các thanh ghi này đều được đặc trưng bởi các hàm f(x) như sau : LSFR 1 : f(x) = x19 + x5 + x2 + x + 1 LSFR 2 : f(x) = x22 + x + 1 LSFR 3 : f(x) = x23 + x15 + x2 + x + 1 Hình 2.26. Cấu trúc của 3 thanh ghi dịch LSFR Trong các vị trí d = 11, d = 12, d = 13 từ trái qua hay các bit mang số thứ tự là 8 trong thanh ghi R1 và 10 ở thanh ghi R2, R3 được gọi là các “tap clockings”. Các thanh ghi được “clock” theo luật stop/go đặc trưng bởi hàm Majority. Ta định nghĩa hàm Majority như sau : f{a(t + 11), b(t + 12), c(t + 13)} = (y1, y2, y3) Gía trị của hàm Majority được thể hiện trong bảng sau : f (a(t + 11), b(t + 12), c(t + 13) ) = (y1, y2, y3) a(t+11) b(t+12) c(t+13) ( 1,1,1 ) ( 1,1,0 ) ( 0,1,1 ) ( 1,0,1 ) 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 Mỗi thanh ghi dịch bit định thời ‘tap clocking’, bit 8 trong R1, bit 10 trong R2 và R3. Hàm Majority được tính toán với đầu vào là các bit định thời của mỗi thanh ghi và đầu ra là các bit dùng để ‘clock’ vào các bit vị trí ‘tap possision’. Giá trị của hàm này tương ứng với các trường hợp khác nhau của bit định thời. Thanh ghi dịch chỉ được định thời khi bit ‘clock’ thỏa với hàm. Hàm điều khiển ‘clock’ này là phi tuyến trong thuật toán A5/1. Theo bảng trên, mỗi lần ‘clocks’ thì sẽ có 2 hoặc là 3 thanh ghi dịch nhận được xung clock và dịch bit. Ví dụ, trong trường hợp các bit định thời trong 3 thanh ghi dịch lần lượt là (0,0,1), kết quả hàm ‘Majority’ = (1,1,0) có nghĩa là thanh ghi R1, R2 sẽ nhận được xung clock và dịch (go), R3 không nhận được xung clock và không dịch (stop). Chuỗi tuần tự đầu ra U = {U(t)} = a(I1) + b (I2) + c(I3) Trong đó, t = 0, 1........và Ii được xác định bởi tín hiệu đồng bộ ‘stop/go’, clock điều khiển bởi hàm Majority. Hình 2.27. Hàm Majority Fuction điều khiển clock Các bước hoạt động của A5/1 như sau : Initialization : các bit của thanh ghi được đưa về zero. Thuật toán ở trong trạng thái S0. Input Kc : các thanh ghi đựoc clock nhưng không sử dụng luật stop/go trong 64 chu kỳ xung. Trong mỗi chu kỳ đưa một bit từ chuỗi khóa Kc vào cả 3 thanh ghi, từ bit có ý nghĩ thấp nhất đến bit có ý nghĩ lớn nhất. Mỗi bit này được XOR với bit zero trong mỗi thanh ghi. Khi tới chu kỳ xung mới, các bit trong thanh ghi được dịch trái, và bit mới được đưa vào lặp lại qúa trình như trên. Thuật toán đạt trạng thái S64. Input Fn : tương tự như bước 2, nhưng với chu kỳ là 22 chu kỳ xung clock và 22 bit Fn được nạp vào thay vì Kc. Thuật toán đạt trạng thái S86. Mixing : các thanh ghi được clock 100 chu kỳ. Ở bước này ta dùng thuật toán stop/go, các bit output được sinh ra ta bỏ qua và thuật toán đạt trạng thái S186 Output generation : các thanh ghi tiếp tục được clock 228 lần nữa vẫn dùng thuật toán stop/go. Lúc này, chuỗi bit sinh ra được chia làm 2 phần, mỗi phần dài 114 bit. Phần đầu tiên được XOR với chuỗi Ciphertext thu được để giải mã, trong khi đó phần thứ 2 được XOR với chuỗi Plaintext để mã hóa chuỗi này. Chuỗi 228 bit được gọi là chuỗi mã hóa “cipher stream”. Thuật toán đạt trạng thái S414 tại cuối bước này. Các bước từ 1 đến 5 được lặp lại với mỗi khung dữ liệu mới. Mỗi lần như vậy thông số Fn thay đổi trong khi Kc vẫn được giữ nguyên cho đến lần nhận thực kế tiếp Các trạng thái của thuật toán A5/1 được thể hiện trong hình sau : Hình 2.28. Các trạng thái của thuật toán A5 2.5.4. Tấn công thuật toán A5/1 Thuật toán A5/1 là một thuật toán mã hóa rất mạnh, các phương pháp tấn công tốt nhất vào thuật toán này cũng yêu cầu từ 240 đến 245 bước. Các cuộc tấn công thường nhằm vào quá trình tạo ra chuỗi mã hóa “Cipher stream”. Để làm điều này các attacker cần phải biết được Kc và Fn được dùng với mỗi khung dữ liệu cụ thể. Giá trị của Fn có thể đạt được từ số khung Frame Number. Vì vậy vấn đề là làm sao lấy được Kc. Tuy nhiên, thay vì lấy trực tiếp Kc thì các attacker có thể lấy nội dung của các thanh ghi ngay sau giai đoạn Input Kc tức là thuật toán đạt trạng thái S64. Bởi vì giá trị cụ thể của Kc tương ứng với một giá trị nào đó ở trạng thái S64, do đó khi biết S64 ta có thể lấy được Kc. Attacker có thể chạy thuật toán từ trạng thái này để lấy Cipher stream. Sự khác nhau của các kiểu tấn công A5/1 biểu thị qua các thông số sau : Pre – computation complexity : chính là sự phức tạp của giai đoạn đầu ( chuẩn bị ) cho một cuộc tấn công. Known plaintext/ciphertext : số lượng cặp plaintext và ciphertext được yêu cầu bởi cuộc tấn công. Memory complexity : không gian lưu trữ dữ liệu cần thiết cho cuộc tấn công. Time complexity : thời gian cho cuộc tấn công. Sau đây là một số kiểu tấn công A5/1 điển hình và các thông số của chúng 2.5.4.1. Hệ thống GSM Interceptor Pro Đây là một loại thiết bị giám sát thoại trên hệ thống tế bào GSM. Hệ thống khá đơn giản, gồm một 1 anten thu sóng vô tuyến GSM, một hệ thống CPU xử lý thoại và một màn hình để cấu hình hệ thống, giám sát kết quả. Đặc điểm Hệ thống có thể giám sát mọi thuê bao trên đường truyền cô tuyến hoặc một thuê bao cụ thể nào đó Các cuộc đàm thoại được ghi nhận tức thời và dữ liệu được lưu trữ lại Hệ thống làm việc với các số nhận dạng thuê bao IMSI, TMSI, IMEI và MSISDN. 2.6. Hạn chế của bảo mật trong mạng GSM Hệ thống thông tin tế vào hiện nay có một số điểm yếu kém, điều đó đã được xem xét trong các yêu cầu về bảo mật cho mạng GSM. 2.6.1. Ưu điểm của GSM từ quan điểm UMTS Các khả năng thế hệ hai được đưa tới xác định các phần tử hệ thống dưới đây (các đoạn văn bản giải thích được lấy ra từ tài liệu hợp tác 3GPP): Nhận thực thuê bao: “Các vấn đề với các thuật toán không phù hợp sẽ được giải quyết. Những điều kiện chú ý đến sự lựa chọn nhận thực và mối quan hệ của nó với mật mã sẽ được thắt chặt và làm rõ ràng.” Độ tin cậy nhận dạng thuê bao sẽ được thực hiện trên giao diện vô tuyến. SIM (Subscriber Identity Module: Modul nhận dạng thuê bao) sẽ là modul an ninh phần cứng có thể lấy ra được riêng rẽ với máy cầm tay theo tính năng an ninh của nó (nghĩa là SIM là một thẻ thông minh). Các đặc điểm an ninh toolkit phần ứng dụng SIM cung cấp kênh tầng ứng dụng an toàn giữa SIM và server mạng nhà sẽ được tính đến. Hoạt động của các đặc điểm an ninh hệ thống sẽ độc lập với người sử dụng (nghĩa là người sử dụng không phải làm bất cứ điều gì để kích hoạt các đặc tính an ninh). Yêu cầu cho mạng nhà tin cậy các mạng phục vụ để thực hiện một mức tính năng an ninh sẽ được tối thiểu hóa. 2.6.2. Nhược điểm của GSM Một danh sách những khiếm khuyết trong các giao thức an ninh thế hệ thứ hai mà UMTS phải quan tâm cũng là hữu dụng. Những vấn đề đó như sau: Các cuộc tấn công chủ động trong đó trạm gốc bị giả mạo là có khả năng xảy ra (thiếu nhận thực mạng đối với máy cầm tay di động). Khoá phiên và dữ liệu nhận thực trong khi được che đậy trong các tuyến vô tuyến lại được truyền một cách rõ ràng giữa các mạng. Mật mã không mở rộng đủ phức tạp đối với lõi mạng, dẫn đến việc truyền các văn bản rõ ràng của người sử dụng và các thông tin báo hiệu qua các tuyến vi ba. Thiếu chính sách mật mã và nhận thực đồng nhất qua các mạng nhà cung cấp dịch vụ tạo cơ hội cho việc xâm nhập. Cơ chế toàn vẹn dữ liệu cũng đang thiếu. Các cơ chế như thế ngoài việc tăng độ tin cậy còn cung cấp việc bảo vệ chống lại sự mạo nhận trạm gốc. IMEI (International Mobile Equipment Identifier: Bộ nhận dạng thiết bị di động quốc tế) là một sự nhận dạng không an toàn. Sự gian lận và “sự can thiệp hợp pháp” (bị nghe trộm bởi các chính quyền thực thi luật) được xử lý như là một sự giải quyết đến sau hơn là trong pha thiết kế GSM ban đầu. Có một thiết sót về kiến thức mạng nhà và điều khiển mà mạng phục vụ sử dụng các tham số nhận thực cho các thuê bao mạng nhà chuyển vùng trong vùng phục vụ của mạng phục vụ. Độ mềm dẻo nhằm cập nhật và bổ xung các tính năng bảo mật theo thời gian để duy trì tính phổ biến các giao thức an ninh hệ thống là không cần thiết. CHƯƠNG III : MỐI TƯƠNG QUAN GIỮA UMTS VÀ GSM 3.1. Giới thiệu về bảo mật trong mạng UMTS UMTS là hệ thống thông tin di động toàn cầu, là một trong những hệ thống thông tin tế bào thế hệ thứ 3 gọi là mạng 3G. Nó được xây dựng bên trong cấu trúc khung chung được định nghĩa bởi ITU vào năm 1998. Công nghệ GSM đựơc xem là ra đời trước UMTS và tất nhiên nó là công nghệ được sử dụng phổ biến nhất hiện nay, với khoảng 650 triệu thuê bao trên toàn thế giới. Việc xây dựng vấn đề bảo mật trong mạng UMTS được thực hiện dựa trên cơ sở các đặc điểm của mạng GSM. Kế thừa các đặc điểm bảo mật tử GSM là cần thiết và thiết thực,đảm bảo sự tương thích với GSM để dễ dàng kết hợp với nhau và chuyển giao. Bảo mật trong mạng UMTS có một số điểm mới hơn so với GSM là có thêm một số dịch vụ mới, thay đổi địa chỉ trong cấu trúc mạng..vv.. Những đặc điểm bảo mật UMTS kế thừa và phát triển từ GSM : Chứng thực người sử dụng tới mạng Mã hóa dữ liệu người sử dụng và báo hiệu trên liên kết vô tuyến : một thuật toán mới được thiết kê mở và công khai, mã hóa đầu cuối tại bộ điều khiển mạng vô tuyến RNC, chiều dài của khóa là 128 bit, sử dụng nhận dạng tr

Các file đính kèm theo tài liệu này:

  • docNghiên cứu các phương pháp bảo mật trong hệ thống gsm.doc
Tài liệu liên quan