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
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 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0
( 1,0,1 ) 1 0 0 1 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 :
S 186 Input COUNT S 414 100 clocks 228 clocks S 64 S86 S0 64 clocks 22 clocks
Input K C Mixing Output generation 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.
• 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
Đâ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 độ