MỤC LỤC
MỤC LỤC5
LỜI NÓI ĐẦU9
DANH SÁCH CÁC HÌNH VẼ90
THUẬT NGỮ VIẾT TẮT92
TÀI LIỆU THAM KHẢO97
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ệm11
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 cell13
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,5G16
1.2.4. Hệ thống thông tin di động thế hệ 3G16
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 MSC20
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 UTRAN27
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ật36
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ật64
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 SN66
3.2.3. Phát sinh vecto chứng thực AV67
3.2.3. Chứng thực và khóa thỏa thuận. 68
3.2.4. Cơ chế đồng bộ lại70
3.2.5. Thông báo chứng thực thất bại từ SGSN/VLR tới HLR71
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 – C72
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 – I75
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
95 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3260 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu 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
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ên liên kết truy nhập vô tuyến có cơ chế giống GSM
Một số đặc điểm mới trong UMTS
Mở rộng cơ chế chứng thực người sử dụng
Nâng cao bảo mật chống lại việc giả trạm gốc bằng cách cho phép di động chứng thực mạng.
Bảo vệ nguyên vẹn tín hiệu giữa di động và bộ điều khiển mạng vô tuyến RNC. Cung cấp bảo mật nâng cao chống lại làm giả trạm gốc bằng cách cho phép di động kiểm tra chứng thực của bản tin báo hiệu.
3.1.1. Đặc điểm bảo mật trong mạng UMTS
Một yêu cầu cao đối với việc thiết kế cấu trúc an ninh cho UMTS là tạo ra một hệ thống co sở mà hệ thống này có thể mở rộng được sau này. Một phương pháp tiếp cận là tạo ra một bộ các lớp cùng với sự thiết kế hệ thống và các mục đích thực hiện đối với những lớp này. Trong bảo mật mạng UMTS chia thành 5 nhóm đặc điểm bảo mật như sau
Bảo mật truy nhập mạng : thiết lập các đặc điểm bảo mật cung cấp cho người sử dụng có thể truy nhập được vào mạng 3G và tránh các cuộc tấn công trên liên kết truy nhập vô tuyến.
Bảo mật miền mạng : thiết lập các đặc điểm bảo mật cho phép các node trong cơ sở hạ tầng mạng của nhà cung cấp trao đổi dữ liệu với sự đảm bảo an ninh và bảo vệ chống lại sự xâm nhập trái phép cơ sở hạ tầng mạng hữu tuyến.
Bảo mật người sử dụng : thiết lập các đặc điểm bảo mật đảm bảo truy nhập tới trạm di động.
Bảo mật miền ứng dụng : cho phép trao đổi các bản tin trong lớp ứng dụng giữa người sử dụng và hệ thống các nhà cung cấp dịch vụ.
Tính cấu hình và tính rõ rãng của bảo mật : Tập các tính năng qua đó người sử dụng hệ thống có thể biết các đặc điểm an ninh nào đang hoạt động và điều khiển các dịch vụ nào đang được sử dụng đưa ra một tập nhất định các dịch vụ an ninh
3.1.1.1. Bảo mật truy nhập mạng
Những đặc trưng an ninh cung cấp cho người sử dụng di động , sự truy nhập an toàn tới cơ sở hạ tầng UMTS và việc bảo vệ người sử dụng khỏi sự tấn công vào liên kết vô tuyến không dây tới mặt đất. Các thành phần bao gồm :
Bí mật nhận dạng người dùng : thông tin nhận dạng thường xuyên khác liên hệ với người sử dụng không bị tiết lộ cho kẻ nghe lén
Nhận thực chung : cả thiết bị đầu cuối di động và BS của mạng dich vụ được nhận thực với nhau, điều này đã ngăn chặn được kẻ giả dạng tấn công vào cả hai bên trong phiên truyền thông.
Tính tin cậy của số liệu người sử dụng và số liệu báo hiệu : cả nội dung của phiên truyền thông của thuê bao và thông tin báo hiệu liên kết được bảo vệ trong việc truyền qua liên kết không dây.
Toàn vẹn số liệu và nhận thực khởi đầu : thực thể nhận trong một phiên truyền có thể xác minh rằng bản tin đã nhận không thay đổi trong khi truyền và bản tin đó xuất phát từ bên yêu cầu.
3.1.1.2. Bảo mật lĩnh vực mạng
Tập hợp các đặc điểm bảo mật cho phép các node trong cơ sở hạ tầng của nhà cung cấp trao đổi các dữ liệu với sự đảm bảo an ninh và bảo vệ chống lại sự xâm nhập trái phép cơ sở hạ tầng mạng hữu tuyến.
Nhận thực phần tử mạng : khả năg của các thành phần cơ sở mạng bao gồm các khả năg thuộc về các nhà cung cấp dịch vụ khác nhau nhận thực nhau và dữ liệu đựoc trao đổi
Tính tin cậy của dữ liệu được trao đổi : việc bảo mật dữ liệu trao đổi giữa các phần tử mạng khỏi các cuộc nghe lén.
Toàn vẹn dữ liệu và nhận thực ban đầu : điều này song song với khía cạnh toàn vẹn dữ liệu và nhận thực ban đầu của bảo mật truy nhập mạng nhưng áp dụng đối với mối quan hệ giữa các phần tử mạng. Khi một phần tử này truyền dữ lỉệu đến phần tử khác, node nhận có thể xác nhận rằng dữ liệu không bị thay đổi khi truyền.
3.1.1.3. Bảo mật miền người sử dụng
Tập các đặc điểm bảo mật gắn vào sự tương tác giữa một người sử dụng và máy cầm tay UMTS của họ. Một mục tiêu quan trọng trong miền này là tối thiểu thiệt hại và gian lận có thể xảy ra khi một máy cầm tay bị đánh cắp.
Nhận thực User đến USIM : nhận thực trong miền con này gắn với mối quan hệ giữa một thuê bao riêng và thẻ thông minh SIM trong máy cầm tay UMTS của họ. Để giới hạn sự hoạt động đối với chủ sở hữu hoặc một nhóm cá nhân có quyền, người sử dụng có thể cần cung cấp PIN để khởi tạo một phiên truyền thông.
Đoạn nối USIM – Terminal : vì thẻ thông minh trợ giúp USIM có thể di chuyển được nên cũng cần thiết để bảo vệ an toàn mối quan hệ giữa USIM và máy cầm tay UMTS. Đoại nối USIM – Terminal ngăn ngừa thẻ USIM của người sử dụng không bị chèn vào trong máy cầm tay khác và bị sử dụng khi không có quyền.
3.1.1.4. Bảo mật miền ứng dụng
Trong kiến trúc UMTS, việc cung cấp được thực hiện cho các nhà vận hành mạng hoặc nhà cung cấp dich vụ khác tạo ra các ứng dụng nằm trong USIM hoặc trong tổ hợp.
Nhắn tin an toàn : nhắn tin an toàn sẽ cung cấp một kênh an toàn cho việc truyền các bản tin giữa USIM và server mạng.
Tính tin cậy lưu lượng người sử dụng trên toàn mạng : việc bảo mật các bản tin khỏi các cuộc nghe lén ( điển hình là thông qua mật mã ) trên các đoạn mạng hữu tuyến cũng như vô tuyến của toàn bộ kiến trúc hạ tầng mạng.
3.1.1.5. Tính định hình và tính rõ ràng của bảo mật
Tính rõ ràng : người sử dụng hệ thống các cơ chế được cung cấp bởi cơ sở hạ tầng UMTS có thể xác định được đặc điểm bảo mật nào đang hoạt động tại bất kỳ thời điểm nào theo thời gian và mức độ an ninh là gì.
Tính định hình : người sử dụng thông qua cơ chế được cung cấp bởi cơ sở hạ tầng UMTS có thể yêu cầu tập các dich vụ bảo mật nào phải hoạt động trước khi người sử dụng dịch vụ nhất định. Chẳng hạn, logic này có thể áp dụng cho Enable và Disable việc sử dụng mã PIN cá nhân với USIM trong máy cầm tay của ai đó hoặc áp dụng cho việc chấp nhận cuộc gọi đến mà không được mật mã.
Chia toàn bộ lĩnh vực bảo mật thành các miền theo kiểu này có một ưu điểm là : thứ nhất nó sẽ chia nhỏ toàn bộ không gian vấn đề thành các miền con rời rạc. Ngoài ra, bằng việc tạo ra các modul an ninh với các giao diện được biết rõ để có thể cập nhật hoặc thay thế các thành phần của kiến trúc bảo mật mà không phải làm lại toàn bộ việc kinh doanh.
3.1.2. Cấu trúc bảo mật mạng UMTS
Hình 3.1. Cấu trúc các miền bảo mật trong mạng UMTS
( I ) Network access security NAS : bảo mật lĩnh vực truy nhập mạng
( II ) Network domain security NDS : bảo mật miền mạng
( III ) User domain security UDS : bảo mật miền người sử dụng
( IV ) Application domain security ADS : bảo mật miền ứng dụng
3.2. Nhận thực trong UMTS
Cơ chế nhận thực ở đây thực hiện việc nhận thực chung cho người sử dụng và mạng thông qua một khóa bí mật Ki được lưu giữ trong USIM và trung tâm nhận thực AuC trong môi trường thường trú của người sử dụng. Thêm nữa, USIM và HE sẽ theo dõi bộ đếm SQNMS và SQNHE để hỗ trợ cho quá trình nhận thực. Phương thức được chọn để đạt được sự thích nghi lớn nhất với cấu trúc bảo mật mạng GSM và thuận tiện cho việc di chuyển từ GSM đến UMTS. Phương thức này bao gồm giao thức challenges / response giống với nhận thực và tạo key trong GSM.
3.2.1. Cơ chế nhận thực trong mạng UMTS
Hình 3.2. Cơ chế nhận thực và tạo khóa phiên trong UMTS
Node phục vụ (SN: Serving Node): Bộ ghi định vị tạm trú VLR (Visitor Location Register) gửi yêu cầu dữ liệu nhận thực đến môi trường thường trú (HE) mà hỗ trợ bộ ghi định vị thường trú (HLR) và trung tâm nhận thực (AuC).
Môi trường thường trú gửi một mảng các véctơ nhận thực (AV) tới SN. Mỗi véctơ như thế có thể được sử dụng để thực hiện thoả thuận khoá phiên và nhận thực giữa SN và USIM trong trạm di động. Mỗi AV (tương ứng với bộ ba của GSM) bao gồm: (1) một số ngẫu nhiên challenge RAND; (2) một response mong muốn XRES; (3) một khoá phiên mật mã CK; (4) một khoá toàn vẹn dữ liệu IK; và (5) một thẻ nhận thực AUTN bao gồm : một chuỗi số SQN được XOR với khóa “nặc danh” AK; một trường quản lý nhận thực và khóa; một mã chứng thực bản tin MAC.
Mạng phục vụ gửi challenge ngẫu nhiên RAND và thẻ nhận thực AUTN tới trạm di động qua đoạn nối vô tuyến.
USIM trong trạm di động xác nhận rằng AUTN là có thể chấp nhận được. Khi đó trạm di động tạo một RES truyền trở lại SN.
USIM tính toán khóa mật mã CK và khóa toàn vẹn IK riêng của nó bằng cách sử dụng RAND, số chuỗi (được nhúng trong AUTN) và khoá bí mật của nó.
Mạng phục vụ so sánh RES mà nó đã nhận được từ trạm di động với XRES. Nếu hai giá trị trùng nhau thì trạm di động được nhận thực.
USIM và SN truyền CK tới các thành phần của hệ thống chịu trách nhiệm về mật mã dữ liệu được truyền, và IK tới các thành phần của hệ thống chịu trách nhiệm về kiểm tra tính toàn vẹn dữ liệu.
3.2.2. Chứng thực dữ liệu từ HE đến SN
Mục đích của việc chứng thực này là cung cấp cho SN các chuỗi vecto chứng thực mới từ môi trường thường trú HE của người sử dụng để thực hiện một số chứng thực người sử dụng.
Hình 3.3. Quá trình chứng thực dữ liệu giữa SN và HE
SN/VLR yêu cầu thủ tục bằng cách gửi vecto chứng thực đến HE/AuC. Yêu cầu dữ liệu chứng thực sẽ bao gồm một số nhận dạng người dùng và thông số MODE. Thông số MODE cho biết node yêu cầu là node PS hay là node CS. Nếu người sử dụng biết SN/VLR bằng IMUI thì yêu cầu dữ liệu chứng thực sẽ bao gồm IMUI. Nếu người sử dụng được nhận biết bằng một mã hóa thông số nhận dạng thì bản tin HLR sẽ thay thế cho IMUI. Trong trường hợp này,thủ tục này và thủ tục yêu cầu nhận dạng người dùng đến HLR được kết hợp với nhau. Khi HE nhận được yêu cầu dữ liệu chứng thực từ SN/VLR, HE có thể tính toán trước số yêu cầu của vecto chứng thực và lấy chúng từ cơ sở dữ liệu của HLR. HE/AuC gửi trả lời chứng thực trở lại SN/VLR, nó bao gồm một mảng n vecto chứng thực AV (1..n).
3.2.3. Phát sinh vecto chứng thực AV
Hình 3.4. Quá trình phát sinh vecto AV
HE/AuC bắt đầu với việc phát ra một chuỗi số SQN và chuỗi ngẫu nhiên RAND. Đối với mỗi người sử dụng, HE/AuC theo dõi 2 bộ đếm : SQNHE/CS cho việc chứng thực bắt đầu từ CS CN node và SQNHE/PS cho chứng thực bắt đầu bởi node PS CN. Để tạo ra một chuỗi số, bộ đếm của chế độ thích hợp được tăng lên và sau đó SQN thiết lặp tới một giá trị mới.
Những giá trị được tính toán như sau :
Mã chứng thực bản tin : MAC = f1k (SQN || RAND || MODE || Ki). Ở đây, f1 có chức năng chứng thực bản tin
XRES = f2k (RAND || Ki). Ở đây, f2 có chức năng chứng thực bản tin
Khóa mật mã : CK = f3k ( RAND || Ki). Ở đây, f3 có chức năng phát sinh khóa
Khóa toàn vẹn dữ liệu : IK = f4k (RAND || Ki). Ở đây, f4 có chức năng phát sinh khóa
Khóa nặc danh : AK = f5k (RAND || Ki). Ở đây, f5 có chức năng phát sinh khóa
Cuối cùng thẻ chứng thực được tạo: AUTN = (SQN XOR AK) || MODE || MAC
3.2.3. Chứng thực và khóa thỏa thuận
Mục đích của thủ tục này là để chứng thực người sử dụng và thu được một cặp khóa mới là khóa mật mã và khóa toàn vẹn dữ liệu giữa SN/VLR và MS. Trong suốt quá trình chứng thực, người sử dụng kiểm tra độ tươi của vecto chứng thực đó để sử dụng.
Hình 3.5. Quá trình chứng thực và thiết lập khóa
SN/VLR yêu cầu thủ tục bằng cách chọn tiếp một vecto chứng thực không sử dụng từ chuỗi vecto chứng thực trong cơ sở dữ liệu của VLR. SN/VLR gửi đến người sử dụng RAND và một thẻ chứng thực cho việc chứng thực mạng AUTN.
Quá trình xử lý trên USIM như sau:
Hình 3.6. Quá trình chứng thực người sử dụng trên USIM
Theo như hình trên, đầu tiên USIM tính ra khóa nặc danh AK = f5 (RAND || Ki) sau đó là chuỗi số SQN = (SQN xor AK) xor AK
Tiếp đó, USIM tính toán XMAC = f1k ( SQN || RAND || MODE || Ki ) và so sánh với MAC có trong AUTN. Nếu chúng khác nhau, người sử dụng gửi bản tin từ chối chứng thực tới VLR/SGSN. Trong trường hợp này VLR/SGSN sẽ khởi tạo một thông báo chứng thực thất bại tới HLR. VLR/SGSN có thể quyết định bắt đầu một thủ tục nhận dạng và chứng thực người sử dụng mới
Tiếp đó, USIM kiểm tra chuỗi số SQN nhận được xem có đúng trong phạm vi không. Nếu USIM thấy chuỗi số không đúng phạm vi, nó sẽ gửi bản tin báo đồng bộ thất bại tới VLR/SGSN bao gồm một thông số thích hợp và từ chối thủ tục. Bản tin đồng bộ thất bại bao gồm thông số AUTS = Cons (SQNMS) || MAC – S. Trong đó, Cons(SQNMS) = SQNMS xor f5*k(RAND) là giá trị ẩn của bộ đếm SQNMS và MAC-S = f1*k(SQNMS || RAND || AMF) ở đây RAND là một giá trị ngẫu nhiên đuợc nhận trong bản tin yêu cầu chứng thực nguời sử dụng.. f1* là một hàm mã hóa chứng thực bản tin (MAC) với các thuộc tính có thể được tính từ giá trị hàm của f1* khaỏng của f1…f5, f5*. f5* là hàm phát sinh key thường sủ dụng để tính toán AK trong thủ tục đồng bộ lại với thuộc tính có thể được tính từ giá trị hàm f5* khoảng f1,f1*,f2 và f5.
3.2.4. Cơ chế đồng bộ lại
Hình 3.7. Cơ chế đồng bộ lại
Sau khi nhận được bản tin đồng bộ thất bại từ người sử dụng, VLR/SGSN sẽ gửi bản tin yêu cầu dữ liệu chứng thực với chỉ số đồng bộ thất bại tới HE cùng vói các thông số
RAND gửi tới MS trong bản tin yêu cầu dữ liệu chứng thực
AUTS được nhận bởi VLR/SGSN.
VLR/SGSN sẽ không gửi bản tin yêu cầu dữ liệu chứng thực mới tới HLR/AuC cho đến khi nhận được trả lời từ HE/AuC. Khi nhận được bản tin yêu cầu dữ liệu chứng thực với chỉ số đồng bộ thất bại thì HE sẽ hoạt động như sau
HE/AuC lấy SQNMS từ Cons(SQNMS) bằng cách tính Cons(SQNMS) xor f5*k(RAND).
HE kiểm tra SQNHE xem có nằm trong phạm vi hay không
Nếu SQNHE nằm trong phạm vi thì nó tiếp tục với bước 6 còn khác thì nó bắt đầu với bước 4
HE/AuC kiểm tra AUTS
Nếu việc kiểm tra thành công, HE/AuC thiết lập lại giá trị của bộ đếm SQNHE đến SQNMS.
HE/AuC gửi bản tin trả lời dữ liệu chứng thực với một vecto chứng thực mới tới VLR/SGSN. Nếu bộ đếm SQNHE không được thiết lập lại, những vecto chứng thực có thể được lấy từ bộ nhớ hoặc được tạo mới sau khi thiết lập lại SQNHE.
Khi VLR/SGSN nhận được một vecto chứng thực mới từ HE/AuC trong bản tin trả lời dữ liệu chứng thực, nó sẽ xóa bản tin cũ cho người sử dụng trong VLR/SGSN.
3.2.5. Thông báo chứng thực thất bại từ SGSN/VLR tới HLR
Mục đích của thủ tục này là cung cấp một cơ chế cho việc thông báo chứng thực thất bại từ môi trường dịch vụ tới môi trường thường trú.
Hình 3.8. Thông báo chứng thực thất bại
Thủ tục này được yêu cầu bởi VLR/SGSN khi thủ tục chứng thực thất bại. Thông báo chứng thực thất bại bao gồm có : số nhận dạng thuê bao, loại truy nhập, địa chỉ VLR/SGSN, RAND.
3.3. Mã hóa trong UMTS
3.3.1. Giới thiệu
Dữ liệu nguời sử dụng và một vài thông tin báo hiệu có thể bị hư hỏng nên cần phải được bảo vệ. Chế độ bảo vệ cho việc truyền tin được đặt trên kênh giữa ME và RNC.
Chức năng bảo mật được thực hiện ở trên lớp con RLC hoặc là lớp con MAC :
Nếu kênh mang vô tuyến sử dụng chế độ RLC không trong suốt (AM hoặc UM), quá trình mã hóa được thực hiện trên lớp con RLC
Nếu kênh mang vô tuyến sử dụng chế độ RLS trong suốt, quá trình mã hóa được thực hiện trên lớp con MAC.
Mã hóa được thực hiện trong S – RNC và ME, các thông số cần cho việc mật mã là CK, HFN…
3.3.2. Phương thức mã hóa
Hình 3.9. Dữ liệu người sử dụng và báo hiệu được mã hóa trên liên kết truy nhập vô tuyến.
Hình trên mô tả cách sử dụng thuật toán f8 để mã hóa plaintext bằng cách đặt một Keystream sử dụng một bit/bit nhị phân cộng với plaintext. Plaintext có thể được khôi phục bằng cách phát sinh cùng một Keystream sử dụng cùng thông số đầu vào và đặt một bit/bit nhị phân vào Cipheringtext.
Các thông số đầu vào của thuật toán là khóa mật mã CK, COUNT – C, BEARER, định hướng truyền DIRECTION và chiều dài của Keystream yêu cầu LENGTH. Trên cơ sở các thông số đầu vào đó, thuật toán phát sinh ra khối Keystream đầu ra (Keystream Block) để mã hóa khối Plaintext (Plaintext Block) để được đầu ra là khối Cipheringtext (Ciphering Block ). Thông số đầu vào LENGTH sẽ quyết định đến chiều dài của Keystream Block.
3.3.3. Các thông số đầu vào của thuật toán
3.3.3.1. COUNT – C
Chuỗi số COUNT – C dài 32 bit. Có một giá trị COUNT – C trên đường lên sóng mang vô tuyến và một COUNT – C trên đuờng xuống sóng mang vô tuyến. Đối với tất cả chế độ RLC trong suốt, sóng mang của cùng miền CN COUNT – C là giống nhau và vì thế COUNT – C của đường lên và xuống cũng giống nhau.
COUNT – C được tạo bởi 2 phần : một chuỗi số ngắn và một chuỗi số dài. Chuỗi số ngắn có dạng các bit ít quan trọng của COUNT – C trong khi chuỗi số dài chứa các bit quan trọng nhất của COUNT – C.
Hình 3.10. Cấu trúc của COUNT – C ở tất cả các chế độ
Đối với chế độ RLC TM trên DHC, chuỗi số ngắn có 8 bit kết nối số khung CFN của COUNT – C. Chuỗi số dài có 24 bit MAC – d HFN và nó được tăng lên sau mỗi vòng CFN.
Đối với chế độ RLC UM, chuỗi số ngắn có 7 bit RLC SN và đây là một phần của phần đầu RLC UM PDU. Chuỗi số dài có 225 bit RLC UM HFN và nó tăng lên sau mỗi vòng RLC SN
Đối với chế độ RLC AM, bản tin ngắn có 12 bit RLC SN và đây là phần của phần đầu RLC AM PDU. Chuỗi số dài có 20 bit RLC AM HFN và nó tăng lên sau mỗi vòng RLC SN.
Số siêu khung HFN được bắt đầu bởi thông số Start. ME và RNC bắt đầu với 20 bit quan trọng của RLC AM HFN, RLC UM HFN và MAC – d HFN để Start. Các bit còn lại của RLC AM HFN, RLC UM HFN và MAC – d HFN bắt đầu với 0.
Khi một sóng mang vô tuyến mới được tạo ra trong suốt một kết nối RRC trong chế độ mã hóa, HFN được bắt đầu bới giá trị Start hiện tại.
3.3.3.2. Ciphering key (CK)
Khóa mật mã CK có chiều dài 128 bit. Có thể có một CK cho kết nối CS giữa miền phục vụ CS và người sử dụng, một CK cho kết nối PS giữa miền phục vụ PS và người sử dụng. CK được lưu trữ trên USIM và một bản copy được lưu trữ trong ME. CK gửi từ USIM tới ME trên yêu cầu của ME. USIM sẽ gửi CK dưới vai trò là một giá trị CK có sẵn. ME sẽ bắt đầu một thủ tục nhận thực mới nếu giá trị hiện tại của StartCS hoặc StartPS trong USIM đạt tới ngưỡng Threshold. ME sẽ xóa CK từ bộ nhớ sau khi tắt nguồn hay là tháo bỏ USIM.
CK gửi từ HLR/AuC tới VLR/SGSN và được lưu trữ tại VLR/SGSN như một phần của bộ năm (quintet). Lúc chuyển vùng, CK được truyền bên trong các thành phần mạng từ RNC cũ tới RNC mới. Khóa mật mã CK còn lại không thay đổi.
Thông số Bearer có chiều dài là 5bit. Có một thông số Bearer trên sóng mang vô tuyến kết hợp với cùng một người sử dụng và đa thành phần trên một khung đơn 10ms
Thông số Direction có chiều dài là 1 bit. Giá trị của Direction là 0 cho các bản tin từ UE đến RNC và 1 cho các bản tin từ RNC đến UE
Thông số Length có chiều dài 16 bit. Length xác định chiều dài của khối Keystream và nó chỉ ảnh hưởng tới chiều dài của khối này không ảnh hưởng tới các bit bên trong nó.
Nhận dạng UEA được chỉ định 4 bit nhận dạng và nó được định nghĩa như sau :
0000 : UEA0, không mã hóa
0001 : UEA1, mã hóa Kasumi
Các giá trị còn lại không được định nghĩa.
3.3.4. Thuật toán nguyên ( Integrity Algorithms )
Hình sau mô tả cách sử dụng thuật toán f9 để chứng thực tính toàn vẹn của dữ liệu
Hình 3.11. Nguồn gốc của MAC-I (XMAC – I)
Các thông số đầu vào của thuật toán là IK,COUNT – I, FRESH, DIRECTION, MESSAGE. Trên cơ sở các thông số đầu vào, người sử dụng tính toán mã chứng thựuc bản tin cho dữ liệu nguyên thủy MAC – I sử dụng thuật toán f9. MAC – I sau đó được gắn vào bản tin khi gửi đi trên liên kết truy nhập vô tuyến. Phía bên nhận sẽ tính toán XMAC – I với quá trình tương tự như bên gửi và kiểm tra tính toàn vẹn của dữ liệu bằng cách so sánh nó với MAC – I nhận được.
3.3.5. Các thông số đầu vào
3.3.5.1. COUNT – I
Có chiều dài 32 bit. Đối với tín hiệu sóng mang vô tuyến (RB 0-4) có một giá trị COUNT – I cho tín hiệu sóng mang đường lên và một giá trị cho tín hiệu sóng mang đường xuống.
COUNT – I bao gồm có 2 phần : một chuỗi số ngắn và một chuỗi số dài. Chuỗi số ngắn có dạng các bit ít quan trọng của COUNT – I trong khi đó chuỗi số dài có dạng các bit quan trọng nhất của COUNT – I. Chuỗi số ngắn có 4 bit RRC số chuỗi SN (RRC SN)và nó có sẵn trong mỗi RRC PDU. Chuỗi số dài có 28 bit RRC số siêu khung (RRC HFN) và nó được tăng lên sau mỗi vòng RRC HFN.
Hình 3.12. Cấu trúc của COUNT – I
3.3.5.2. Khóa nguyên (IK)
Khóa nguyên có chiều dài 128 bit. Có thể có một IK cho kết nối CS giữa miền phục vụ CS và người sử dụngvà một IK cho kết nối PS giữa miền phục vụ PS và người sử dụng. IK được lưu trữ trên USIM và một bản copy được lưu trữ trong ME. IK gửi từ USIM tới ME trên yêu cầu của ME. USIM sẽ gửi IK dưới vai trò là một giá trị IK có sẵn. ME sẽ bắt đầu một thủ tục nhận thực mới nếu giá trị hiện tại của StartCS hoặc StartPS trong USIM đạt tới ngưỡng Threshold. ME sẽ xóa IK từ bộ nhớ sau khi tắt nguồn hay là tháo bỏ USIM.
Ck gửi từ HLR/AuC tới VLR/SGSN và đựoc lưu trữ tại VLR/SGSN như một phần của bộ năm (quintet). Lúc chuyển vùng, IK được truyền bên trong các thành phần mạng từ RNC cũ tới RNC mới. Khóa mật mã IK còn lại không thay đổi.
3.3.5.3. Fresh
Fresh là một thông số có chiều dài 32 bit. Có một Fresh cho mỗi gười sử dụng. Thông số Fresh bảo vệ mạng chống lặp lại của bản tin báo hiệu bởi người sử dụng. Một kết nối được thiết lập, RNC phát ra một số ngẫu nhiên Fresh và gửi nó đến người sử dụng trong chế độ bảo mật RRC. Giá trị của Fresh sau đó được sử dụng bởi cả mạng lẫn người sử dụng thông qua một kết nối đơn.
3.3.6.4. Bit định hướng Direction
Nhận dạng định hướng Direction có chiều dài 1 bit. Bit này có nhiệm vụ là tránh cho thuật toán nguyên sử dụng để tính mã chứng thực bản tin muốn sử dụng một nhận dạng thiết lập của giá trị thông số đầu vào cho đường lên bản tin và đường xuống bản tin.
Nhận dạng UIA
Mỗi thuật toán nguyên UMTS (UIA) sẽ được nhận dạng bởi 4 bit và nó được định nghĩa như sau
0001 : UIA1, thuật toán Kasumi
Các giá trị còn lại không được định nghĩa
3.4. Mối tương quan của UMTS và GSM
UMTS được xây dựng dựa trên cơ sở mạng GSM. Nó kế thừa các đặc điểm bảo mật của mạng GSM, điều đó thực sự cần thiết và thiết thực. Mạng UMTS còn đảm bảo tính tương thích với mạng GSM trong việc liên kết làm việc và chuyển giao.
Ngoài việc kế thừa và phát huy những đặc điểm bảo mật của GSM thì UMTS còn có thêm một số đặc điểm bảo mật mới. Những đặc điểm đó là
Sẽ có những nhà cung cấp dịch vụ mới và khác nhau ngoài các nhà cung cấp các dịch vụ viễn thông vô tuyến. Sẽ bao gồm các nhà cung cấp nội dung và các nhà cung cấp dịch vụ số liệu.
Các hệ thống di động sẽ được định vị như một phương tiện truyền thông yêu thích cho người dùng – ưa chuộng hơn các hệ thống đường dây cố định.
Sẽ có nhiều dịch vụ trả trước và pay-as-you-go. Việc thuê bao dài hạn giữa người sử dụng và người vận hành mạng có thể không phải là một mô hình quen thuộc.
Người sử dụng sẽ có quyền điều khiển nhiều hơn đối với các profile dịch vụ của họ và đối với các khả năng đầu cuối của họ.
Sẽ có các cuộc tấn công chủ động vào người sử dụng;
Các dịch vụ phi thoại sẽ quan trọng như các dịch vụ thoại hoặc quan trọng hơn.
Các máy cầm tay di động sẽ được sử dụng như một nền tảng cho thương mại điện tử. Nhiều thẻ thông minh đa ứng dụng sẽ được sử dụng để trợ giúp nền tảng này.
CHƯƠNG IV : MÔ PHỎNG THUẬT TOÁN A3, A8 VÀ A5
Chương trình mô tả việc thực hiện của thuật toán A3,A8. Bản quyền thuộc về Marc Briceno, Ian Goldberg, and David Wagner năm 1998. Phần nguồn mã này được viết bằng ngôn ngữ C
4.1. Chương trình mô phỏng thuật toán A3, A8
typedef unsigned char Byte;
#include
#include
#include
#include
#include
#include
/* #define TEST */
/*
* rand[0..15]: chuỗi RAND truy vấn từ trạm gốc
* key[0..15]: độ dài khóa Ki của thuật toán A3/A8 trong SIM
* simoutput[0..11]: cái bạn đưa trở lại nếu bạn nhận RAND và khóa tới một SIM thực
SIM.
* Trạng thái đầu simoutput[0..3] là SRES,
* và simoutput[4..11] là Kc (the A5 session key).
* Chú ý rằng Kc là bít thứ 74…127 của đầu ra thuật toán COMP 128 thêm vào bởi 10 bit 0
* Marc Briceno , Ian Goldberg , and David Wagner
*/
void A3A8(/* in */ Byte rand[16], /* in */ Byte key[16],
/* out */ Byte simoutput[12]);
/* The compression tables. */
static const Byte table_0[512] = {
102,177,186,162, 2,156,112, 75, 55, 25, 8, 12,251,193,246,188,
109,213,151, 53, 42, 79,191,115,233,242,164,223,209,148,108,161,
252, 37,244, 47, 64,211, 6,237,185,160,139,113, 76,138, 59, 70,
67, 26, 13,157, 63,179,221, 30,214, 36,166, 69,152,124,207,116,
247,194, 41, 84, 71, 1, 49, 14, 95, 35,169, 21, 96, 78,215,225,
182,243, 28, 92,201,118, 4, 74,248,128, 17, 11,146,132,245, 48,
149, 90,120, 39, 87,230,106,232,175, 19,126,190,202,141,137,176,
250, 27,101, 40,219,227, 58, 20, 51,178, 98,216,140, 22, 32,121,
61,103,203, 72, 29,110, 85,212,180,204,150,183, 15, 66,172,196,
56,197,158, 0,100, 45,153, 7,144,222,163,167, 60,135,210,231,
174,165, 38,249,224, 34,220,229,217,208,241, 68,206,189,125,255,
239, 54,168, 89,123,122, 73,145,117,234,143, 99,129,200,192, 82,
104,170,136,235, 93, 81,205,173,236, 94,105, 52, 46,228,198, 5,
57,254, 97,155,142,133,199,171,187, 50, 65,181,127,107,147,226,
184,218,131, 33, 77, 86, 31, 44, 88, 62,238, 18, 24, 43,154, 23,
80,159,134,111, 9,114, 3, 91, 16,130, 83, 10,195,240,253,119,
177,102,162,186,156, 2, 75,112, 25, 55, 12, 8,193,251,188,246,
213,109, 53,151, 79, 42,115,191,242,233,223,164,148,209,161,108,
37,252, 47,244,211, 64,237, 6,160,185,113,139,138, 76, 70, 59,
26, 67,157, 13,179, 63, 30,221, 36,214, 69,166,124,152,116,207,
194,247, 84, 41, 1, 71, 14, 49, 35, 95, 21,169, 78, 96,225,215,
243,182, 92, 28,118,201, 74, 4,128,248, 11, 17,132,146, 48,245,
90,149, 39,120,230, 87,232,106, 19,175,190,126,141,202,176,137,
27,250, 40,101,227,219, 20, 58,178, 51,216, 98, 22,140,121, 32,
103, 61, 72,203,110, 29,212, 85,204,180,183,150, 66, 15,196,172,
197, 56, 0,158, 45,100, 7,153,222,144,167,163,135, 60,231,210,
165,174,249, 38, 34,224,229,220,208,217, 68,241,189,206,255,125,
54,239, 89,168,122,123,145, 73,234,117, 99,143,200,129, 82,192,
170,104,235,136, 81, 93,173,205, 94,236, 52,105,228, 46, 5,198,
254, 57,155, 97,133,142,171,199, 50,187,181, 65,107,127,226,147,
218,184, 33,131, 86, 77, 44, 31, 62, 88, 18,238, 43, 24, 23,154,
159, 80,111,134,114, 9, 91, 3,130, 16, 10, 83,240,195,119,253
}, table_1[256] = {
19, 11, 80,114, 43, 1, 69, 94, 39, 18,127,117, 97, 3, 85, 43,
27,124, 70, 83, 47, 71, 63, 10, 47, 89, 79, 4, 14, 59, 11, 5,
35,107,103, 68, 21, 86, 36, 91, 85,126, 32, 50,109, 94,120, 6,
53, 79, 28, 45, 99, 95, 41, 34, 88, 68, 93, 55,110,125,105, 20,
90, 80, 76, 96, 23, 60, 89, 64,121, 56, 14, 74,101, 8, 19, 78,
76, 66,104, 46,111, 50, 32, 3, 39, 0, 58, 25, 92, 22, 18, 51,
57, 65,119,116, 22,109, 7, 86, 59, 93, 62,110, 78, 99, 77, 67,
12,113, 87, 98,102, 5, 88, 33, 38, 56, 23, 8, 75, 45, 13, 75,
95, 63, 28, 49,123,120, 20,112, 44, 30, 15, 98,106, 2,103, 29,
82,107, 42,124, 24, 30, 41, 16,108,100,117, 40, 73, 40, 7,114,
82,115, 36,112, 12,102,100, 84, 92, 48, 72, 97, 9, 54, 55, 74,
113,123, 17, 26, 53, 58, 4, 9, 69,122, 21,118, 42, 60, 27, 73,
118,125, 34, 15, 65,115, 84, 64, 62, 81, 70, 1, 24,111,121, 83,
104, 81, 49,127, 48,105, 31, 10, 6, 91, 87, 37, 16, 54,116,126,
31, 38, 13, 0, 72,106, 77, 61, 26, 67, 46, 29, 96, 37, 61, 52,
101, 17, 44,108, 71, 52, 66, 57, 33, 51, 25, 90, 2,119,122, 35
}, table_2[128] = {
52, 50, 44, 6, 21, 49, 41, 59, 39, 51, 25, 32, 51, 47, 52, 43,
37, 4, 40, 34, 61, 12, 28, 4, 58, 23, 8, 15, 12, 22, 9, 18,
55, 10, 33, 35, 50, 1, 43, 3, 57, 13, 62, 14, 7, 42, 44, 59,
62, 57, 27, 6, 8, 31, 26, 54, 41, 22, 45, 20, 39, 3, 16, 56,
48, 2, 21, 28, 36, 42, 60, 33, 34, 18, 0, 11, 24, 10, 17, 61,
29, 14, 45, 26, 55, 46, 11, 17, 54, 46, 9, 24, 30, 60, 32, 0,
20, 38, 2, 30, 58, 35, 1, 16, 56, 40, 23, 48, 13, 19, 19, 27,
31, 53, 47, 38, 63, 15, 49, 5, 37, 53, 25, 36, 63, 29, 5, 7
}, table_3[64] = {
1, 5, 29, 6, 25, 1, 18, 23, 17, 19, 0, 9, 24, 25, 6, 31,
28, 20, 24, 30, 4, 27, 3, 13, 15, 16, 14, 18, 4, 3, 8, 9,
20, 0, 12, 26, 21, 8, 28, 2, 29, 2, 15, 7, 11, 22, 14, 10,
17, 21, 12, 30, 26, 27, 16, 31, 11, 7, 13, 23, 10, 5, 22, 19
}, table_4[32] = {
15, 12, 10, 4, 1, 14, 11, 7, 5, 0, 14, 7, 1, 2, 13, 8,
10, 3, 4, 9, 6, 0, 3, 2, 5, 6, 8, 9, 11, 13, 15, 12
}, *table[5] = { table_0, table_1, table_2, table_3, table_4 };
void A3A8(/* in */ Byte rand[16], /* in */ Byte key[16],
/* out */ Byte simoutput[12])
{
Byte x[32], bit[128];
int i, j, k, l, m, n, y, z, next_bit;
/* ( Load RAND into last 16 bytes of input ) */
for (i=16; i<32; i++)
x[i] = rand[i-16];
/* ( Loop eight times ) */
for (i=1; i<9; i++) {
/* ( Load key into first 16 bytes of input ) */
for (j=0; j<16; j++)
x[j] = key[j];
/* ( Perform substitutions ) */
for (j=0; j<5; j++)
for (k=0; k<(1<<j); k++)
for (l=0; l<(1<<(4-j)); l++) {
m = l + k*(1<<(5-j));
n = m + (1<<(4-j));
y = (x[m]+2*x[n]) % (1<<(9-j));
z = (2*x[m]+x[n]) % (1<<(9-j));
x[m] = table[j][y];
x[n] = table[j][z];
}
/* ( Form bits from bytes ) */
for (j=0; j<32; j++)
for (k=0; k<4; k++)
bit[4*j+k] = (x[j]>>(3-k)) & 1;
/* ( Permutation but not on the last loop ) */
if (i < 8)
for (j=0; j<16; j++) {
x[j+16] = 0;
for (k=0; k<8; k++) {
next_bit = ((8*j + k)*17) % 128;
x[j+16] |= bit[next_bit] << (7-k);
}
}
}
for (i=0; i<4; i++)
simoutput[i] = (x[2*i]<<4) | x[2*i+1];
for (i=0; i<6; i++)
simoutput[4+i] = (x[2*i+18]<<6) | (x[2*i+18+1]<<2)
| (x[2*i+18+2]>>2);
simoutput[4+6] = (x[2*6+18]<<6) | (x[2*6+18+1]<<2);
simoutput[4+7] = 0;
}
int hextoint(char x)
{
x = toupper(x);
if (x >= 'A' && x <= 'F')
return x-'A'+10;
else if (x >= '0' && x <= '9')
return x-'0';
fprintf(stderr, "bad input.\n");
exit(1);
return(0);
}
int main(int argc, char **argv)
{
Byte rand[16], key [16], simoutput[12];
int i;
if (argc != 3 || strlen(argv[1]) != 34 || strlen(argv[2]) != 34
|| strncmp(argv[1], "0x", 2) != 0
|| strncmp(argv[2], "0x", 2) != 0) {
fprintf(stderr, "Usage: %s 0x 0x\n", argv[0]);
exit(1);
}
/*void main()
{
Byte rand[16], key [16], simoutput[12];
char **argv;
int i;
read("argv[1]:%s",*argv[1]);
read("argv[2]:%s",*argv[2]);
*/
for (i=0; i<16; i++)
key[i] = (hextoint(argv[1][2*i+2])<<4)
| hextoint(argv[1][2*i+3]);
for (i=0; i<16; i++)
rand[i] = (hextoint(argv[2][2*i+2])<<4)
| hextoint(argv[2][2*i+3]);
A3A8(key, rand, simoutput);
printf("simoutput: ");
for (i=0; i<12; i++)
printf("%02X", simoutput[i]);
printf("\n");
getch();
return 0;
}
4.2. Chương trình chạy mô phỏng thuật toán A51
#include
/* định nghĩa cho 3 thanh ghi dịch */
#define R1MASK 0x07FFFF /* 19 bits, numbered 0..18 */
#define R2MASK 0x3FFFFF /* 22 bits, numbered 0..21 */
#define R3MASK 0x7FFFFF /* 23 bits, numbered 0..22 */
/* Bit giữa của mỗi thanh ghi được dung làm bit điều khiển clock */
#define R1MID 0x000100 /* bit 8 */
#define R2MID 0x000400 /* bit 10 */
#define R3MID 0x000400 /* bit 10 */
/* Feedback taps, for clocking the shift registers.
* These correspond to the primitive polynomials
* x^19 + x^5 + x^2 + x + 1, x^22 + x + 1,
* and x^23 + x^15 + x^2 + x + 1. */
#define R1TAPS 0x072000 /* bits 18,17,16,13 */
#define R2TAPS 0x300000 /* bits 21,20 */
#define R3TAPS 0x700080 /* bits 22,21,20,7 */
/* Output taps, for output generation */
#define R1OUT 0x040000 /* bit 18 (the high bit) */
#define R2OUT 0x200000 /* bit 21 (the high bit) */
#define R3OUT 0x400000 /* bit 22 (the high bit) */
typedef unsigned char byte;
typedef unsigned long word;
typedef word bit;
/* Tính toán nhị phân của 32 bit, tổng của nó là bội số của 2 */
bit parity(word x) {
x ^= x>>16;
x ^= x>>8;
x ^= x>>4;
x ^= x>>2;
x ^= x>>1;
return x&1;
}
/* Clock một thanh ghi */
word clockone(word reg, word mask, word taps) {
word t = reg & taps;
reg = (reg << 1) & mask;
reg |= parity(t);
return reg;
}
word R1, R2, R3;
bit majority() {
int sum;
sum = parity(R1&R1MID) + parity(R2&R2MID) + parity(R3&R3MID);
if (sum >= 2)
return 1;
else
return 0;
}
void clock() {
bit maj = majority();
if (((R1&R1MID)!=0) == maj)
R1 = clockone(R1, R1MASK, R1TAPS);
if (((R2&R2MID)!=0) == maj)
R2 = clockone(R2, R2MASK, R2TAPS);
if (((R3&R3MID)!=0) == maj)
R3 = clockone(R3, R3MASK, R3TAPS);
}
void clockallthree() {
R1 = clockone(R1, R1MASK, R1TAPS);
R2 = clockone(R2, R2MASK, R2TAPS);
R3 = clockone(R3, R3MASK, R3TAPS);
}
bit getbit() {
return parity(R1&R1OUT)^parity(R2&R2OUT)^parity(R3&R3OUT);
}
void keysetup(byte key[8], word frame) {
int i;
bit keybit, framebit;
R1 = R2 = R3 = 0;
for (i=0; i<64; i++) {
clockallthree(); /* always clock */
keybit = (key[i/8] >> (i&7)) & 1; /* The i-th bit of the
key */
R1 ^= keybit; R2 ^= keybit; R3 ^= keybit;
}
for (i=0; i<22; i++) {
clockallthree(); /* always clock */
framebit = (frame >> i) & 1; /* The i-th bit of the frame #
*/
R1 ^= framebit; R2 ^= framebit; R3 ^= framebit;
}
for (i=0; i<100; i++) {
clock();
}
}
void run(byte AtoBkeystream[], byte BtoAkeystream[]) {
int i;
for (i=0; i<=113/8; i++)
AtoBkeystream[i] = BtoAkeystream[i] = 0;
for (i=0; i<114; i++) {
clock();
AtoBkeystream[i/8] |= getbit() << (7-(i&7));
}
for (i=0; i<114; i++) {
clock();
BtoAkeystream[i/8] |= getbit() << (7-(i&7));
}
}
void test() {
byte key[8] = {0x12, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF};
word frame = 0x134;
byte goodAtoB[15] = { 0x53, 0x4E, 0xAA, 0x58, 0x2F, 0xE8, 0x15,
0x1A, 0xB6, 0xE1, 0x85, 0x5A, 0x72, 0x8C, 0x00 };
byte goodBtoA[15] = { 0x24, 0xFD, 0x35, 0xA3, 0x5D, 0x5F, 0xB6,
0x52, 0x6D, 0x32, 0xF9, 0x06, 0xDF, 0x1A, 0xC0 };
byte AtoB[15], BtoA[15];
int i, failed=0;
keysetup(key, frame);
run(AtoB, BtoA);
for (i=0; i<15; i++)
if (AtoB[i] != goodAtoB[i])
failed = 1;
for (i=0; i<15; i++)
if (BtoA[i] != goodBtoA[i])
failed = 1;
printf("key: 0x");
for (i=0; i<8; i++)
printf("%02X", key[i]);
printf("\n");
printf("frame number: 0x%06X\n", (unsigned int)frame);
printf("known good output:\n");
printf(" A->B: 0x");
for (i=0; i<15; i++)
printf("%02X", goodAtoB[i]);
printf(" B->A: 0x");
for (i=0; i<15; i++)
printf("%02X", goodBtoA[i]);
printf("\n");
printf("observed output:\n");
printf(" A->B: 0x");
for (i=0; i<15; i++)
printf("%02X", AtoB[i]);
printf(" B->A: 0x");
for (i=0; i<15; i++)
printf("%02X", BtoA[i]);
printf("\n");
if (!failed) {
printf("Self-check succeeded: everything looks ok.\n");
return;
} else {
printf("\nI don't know why this broke; contact the authors.\n");
exit(1);
}
}
int main(void) {
test();
return 0;
}
Kết quả cuối cùng ta được là
Key : 0*123456789ABCDEF
Frame number : 0*000134
Chuỗi đầu ra đã biết :
A à B : 0*534EAA582FE8151AB6E1855A728C00
B à A : 0*24FD35A35D5FB6526D32F906DF1AC0
Chuỗi đầu ra quan sát được bằng Borland C
A à B : 0*534EAA582FE8151AB6E1855A728C00
B à A : 0*24FD35A35D5FB6526D32F906DF1AC0
CHƯƠNG V : KẾT LUẬN
Sau một thời gian tập trung nghiên cứu, em đã tìm được một số vấn đề về nhận thực và an ninh trong GSM. Em đã tìm hiểu những yếu tố cần thiết để xây dựng một môi trường an ninh, các nguy cơ an ninh chính và những thách thức gặp phải khi xây dựng kiến trúc an ninh trong môi trường vô tuyến và di động nói chung. Về các kỹ thuật an ninh sử dụng trong thông tin vô tuyến và di động, đây là phần tương đối rộng nên em tập trung nhấn mạnh vào các kỹ thuật và giao thức an ninh chính. Đặc biệt, em tập trung nghiên cứu sâu vào thủ tục nhận thực và thoả thuận khoá trong các hệ thống thế hệ hai, em đã biết được các giao thức; các thủ tục; và các thuật toán mã hóa sử dụng trong thông tin di động thế hệ hai. Qua đó em nhận thấy rằng, các hệ thống thế hệ hai mặc dù được mã hóa bảo mật hơn các hệ thống tương tự thế hệ thứ nhất nhưng với sự phát triển của các hệ thống máy tính nó đã bộc lộ nhiều điểm yếu như đã phân tích trên, và hiện nay chỉ có các thủ tục nhận thực và bảo mật được giới thiệu trong UMTS mới đảm bảo an toàn cho thông tin người dùng, bảo vệ được quyền lợi người dùng cũng như quyền lợi của nhà cung cấp dịch vụ.
Như chúng ta đã biết, tiêu chuẩn GSM 02.09 qui định các vấn đề bảo mật trong hệ thống GSM. Tuy nhiên do tính chất bí mật của những thuật toán này, chúng không được công bố rộng rãi ra cộng đồng. Chính vì thế nó không được cộng đồng GSM kiểm chứng một cách sâu sắc dẫn tới các thuật toán A3/A8 cũng như A5 có nhiều thiếu sót (i.e. A5/2 and COMP128), dẫn tới việc chúng dễ dàng bị hach bởi các Attacker. Do đó chúng liên tục có những cải tiến qua các giai đoạn.A3/A8 có các phiên bản COM128, COM128-2, COM128-3. A5 có các phiên bản A5/0, A5/1, A5/2 , A5/3 (năm 2002 áp dụng thuật toán Kasumi). Do vậy với sự phát triển không ngừng của các thế hệ công nghệ di động, mỗi công nghệ mới cần có những thuật toán mã hóa cũng như nhận thực tương ứng, và cuộc đấu tranh chống lại những attacker vẫn tiếp diễn không ngừng
Do thời gian hạn chế nên một số vấn đề em mới chỉ nêu ra mà chưa tập trung nghiên cứu sâu được chẳng hạn như: nhận thực và mã hóa trong mạng UMTS… Đây là những vấn đề khá phức tạp và cũng hết sức hấp dẫn. Em hy vọng trong thời gian tới em sẽ có điều kiện để nghiên cứu sâu hơn vào các vấn đề này, đặc biệt là vấn đề an ninh trong mạng 3G, một công nghệ mà nhiều nhà nghiên cứu coi là có triển vọng trong tương lai.
Với thời lượng và kiến thức còn hạn chế nên đồ án tốt nghiệp của em chắc chắn sẽ không tránh khỏi thiếu sót, em rất mong nhận được sự đóng góp ý kiến của các thầy cô và bạn bè để đồ án của em được hoàn thiện hơn.
DANH SÁCH CÁC HÌNH VẼ
Hình 1.1. Cấu trúc hệ thống thông tin di dộng tế bào trước đây. 13
Hình 1.2. Hệ thống thông tin di động sử dụng cấu trúc tế bào. 14
Hình 1.3. Khái niệm cell 15
Hình 1.4. Cấu trúc của một Macro Cell 16
Hình 1.5. Cấu trúc của Micro Cell, Pico Cell và Nano Cell 16
Hình 1.6. Cấu trúc của một Umbrella 16
Hình 1.7. Mô hình hệ thống thông tin di động GSM 19
Hình 1.8. Chức năng xử lý cuộc gọi của MSC 22
Hình 1.9. Mô hình hệ thống thông tin di động UMTS 26
Hình 1.10. Cấu trúc của UE 27
Hình 1.11. Cấu trúc UTRAN 29
Hình 1.12. Cấu trúc Base Station 30
Hình 1.13. Cấu trúc của RNC 30
Hình 1.14. Cấu trúc mạng lõi UMTS hỗ trợ chuyển mạch kênh CS và chuyển mạch gói PS 32
Hình 1.15. Cấu trúc HSS với các chức năng và giao diện kết nối tới CN 33
Hình 1.16. Cấu trúc miền chuyển mạch kênh CS 34
Hình 1.17. Cấu trúc miền chuyển mạch gói PS 34
Hình 2.1. Cấu trúc bảo mật mạng GSM 36
Hình 2.2. Quá trình mã hóa cơ bản 37
Hình 2.3. Quá trình nhận thực 37
Hình 2.4. Quá trình chứng thực trong SIM 39
Hình 2.5. Các bước từ 4 đến 6 41
Hình 2.6. Tạo khóa phiên Kc 41
Hình 2.7. Mã hóa dữ liệu thoại. 42
Hình 2.8. MS gửi bản tin IMSI 44
Hình 2.9. HLR gửi IMSI tới AuC 44
Hinh 2.10. AuC tạo RAND và Ki 45
Hình 2.11. Tạo ra SRES trong AuC 45
Hình 2.12. Tạo Kc và Triplet trong AuC 46
Hình 2.13. AuC gửi Triplet tới MSC 46
Hình 2.14. MSC gửi RAND tới MS 47
Hình 2.15. MS tạo SRES và Kc 47
Hình 2.16. Mô tả thuật toán COMP 128 48
Hình 2.17. Quá trình nén trong COMP 128 49
Hình 2.18. 32 bit SRES 50
Hình 2.19. 64 bit Kc 51
Hình 2.20. Narrow Pipe 52
Hình 2.21. Quá trình nhận thực 53
Hình 2.22. MSC gửi khóa Kc tới BSS 54
Hình 2.23. Quá trình mã hóa 54
Hình 2.24. Cấu trúc thuật toán A5 54
Hình 2.25. Chi tiết bộ mã hóa 55
Hình 2.26. Cấu trúc của 3 thanh ghi dịch LSFR 56
Hình 2.27. Hàm Majority Fuction điều khiển clock 57
Hình 2.28. Các trạng thái của thuật toán A5 58
Hình 3.1. Cấu trúc các miền bảo mật trong mạng UMTS 66
Hình 3.2. Cơ chế nhận thực và tạo khóa phiên trong UMTS 67
Hình 3.3. Quá trình chứng thực dữ liệu giữa SN và HE 68
Hình 3.4. Quá trình phát sinh vecto AV 69
Hình 3.5. Quá trình chứng thực và thiết lập khóa 70
Hình 3.6. Quá trình chứng thực người sử dụng trên USIM 71
Hình 3.7. Cơ chế đồng bộ lại 72
Hình 3.8. Thông báo chứng thực thất bại 73
Hình 3.9. Dữ liệu người sử dụng và báo hiệu được mã hóa trên liên kết truy nhập vô tuyến. 74
Hình 3.10. Cấu trúc của COUNT – C ở tất cả các chế độ 75
Hình 3.11. Nguồn gốc của MAC-I (XMAC – I) 76
Hình 3.12. Cấu trúc của COUNT – I 77
THUẬT NGỮ VIẾT TẮT
1G
2G
3G
3GPP
1fs Generation
2nd Generation
3rd Generation
Third Generation Partnership Project
Thế hệ thứ 1
Thế hệ thứ 2
Thế hệ thứ 3
Dự án hợp tác thế hệ 3
A
AMPS
AuC
A3
A8
A5
ADS
AV
AUTN
AK
AMF
Advance Mobile Phone System
Authetication Center
Authetication Algorithm
Cipher Key Generating Algorithm
Encryption Algorithm
Application domain security
Authentication Vector
Authentication Token
Anonymity Key
Authentication and Key Management Field
Hệ thống điện thoại di động thông minh
Trung tâm nhận thực
Thuật toán nhận thực
Thuật toán phát sinh khóa mật mã Kc
Thuật toán mã hóa
Bảo mật miền ứng dụng
Vectơ nhận thực
Thẻ nhận thực
Khóa nặc danh
Trường quản lý nhận thực và khóa
B
BTS
BSC
BS
Base Transceiver Station
Base Station Subsystem
Base Station
Trạm thu phát gốc
Phân hệ trạm gốc
Trạm gốc
C
CDMA
CSPDN
CN
CS
CK
Code Division Multiple Access
Circuit Switched Public Data Network
Core Network
Circuit Switched
Ciphering key
Đa truy nhập phân chia theo mã
Mạng số liệu chuyển mạch kênh công cộng
Mạng lõi
Chuyển mạch kênh
Khóa mật mã
E
EDGE
EIR
Enhanced Data Rates for Global Evolution
Equipment Identity Register
Nâng cao tốc độ dữ liệu cho sự phát triển toàn cầu
Bộ nhận dạng thiết bị
F
FDMA
FDD
Fn
Frequency Division Multiple Access
Frequency Division Duplex
Frame number
Đa truy nhập phân chia theo tần số
Song công phân chia theo tần số
Số khung
G
GSM
GPRS
GMSC
GGSN
Global System for Mobile Communication
General Packet Radio Service
Gateway Mobile Services Switching Centre
GPRS Getway Support Node
Truyền tin di động toàn cầu
Dịch vụ vô tuyến gói chung
Trung tâm chuyển mạch dịch vụ di động cổng
Cổng hỗ trợ dịch vụ GPRS
H
HLR
HSS
HE
Home Location Register
Home Subcriber Server
Home Environment
Bộ ghi định vị thường trú
Phục vụ thuê thường trú
Môi trường thường trú
I
IMEI
IMSI
IMUI
IK
ISDN
International Mobile Equipment Indentifier
International Mobile Subscriber Identity
International Mobile User Identifier
Integrity key
Integrated Services Digital Network
Số nhận dạng thiết bị di động quốc tế
Nhận dạng thuê bao di động quốc tế
Nhận dạng người sử dụng di động quốc tế
Khóa toàn vẹn
Mạng số tích hợp đa dịch vụ
K
Kc
Ki
Session Key
Secret Key
Khóa phiên
Khóa bí mật
L
LSFR
Linear Feedback Shift Registers
Thanh ghi dịch
M
MS
MSC
ME
MSISDN
MT
Mobile Station
Mobile Switching Centre
Mobile Equipment
Mobile Station International ISDN Number
Mobile Terminal
Trạm di động
Trung tâm chuyển mạch di động
Thiết bị di động
Số ISDN trạm di động quốc tế
Đầu cuối di động
N
NMT
NAS
NDS
Nordic Mobile Telephony
Network access security
Network domain security
Điện thoại di động Bắc Âu
Bảo vệ truy nhập mạng
Bảo vệ miền mạng
O
OSS
OMC
Operation Support System
Operations and Maintenance Centre
Hệ thống hỗ trợ vận hành
Trung tâm vận hành và bảo dưỡng
P
PSTN
PSPDN
PLMN
PS
Public Switched Telephone Network
Public Switched Packet Data Network
Public Land Mobile Network
Packet Switched
Mạng điện thoại chuyển mạch công cộng
Mạng chuyển mạch dữ liệu gói công cộng
Mạng di động mặt đất công cộng
Chuyển mạch gói
R
RNC
RAND
Radio Network Controller
Random Number
Điều khiển mạng vô tuyến
Số ngẫu nhiên
S
SS
SIM
SGSN
SQN
Switching Subsystem
GSM Subscriber Identity Module
Serving GPRS Support Node
Sequence Number
Phân hệ chuyển mạch
Modul nhận dạng thuê bao GSM
Nút hỗ trợ dịch vụ GPRS
Số chuỗi
T
TRAU
TMSI
TE
TDMA
Transcoder Rate Adapter Unit
Tempoary Mobile Subscriber Identity
Terminal Equipment
Time Division Multiple Access
Bộ thích nghi tốc độ chuyển đổi
Nhận dạng thuê bao di động tạm thời
Thiết bị đầu cuối
Đa truy nhập phân chia theo thời gian
U
UMTS
UE
USIM
UTRAN
UDS
Universal Mobile Telecommunications System
User Equipment
Universal Subscriber Identity Module
Universal Terrestrial Radio Access Network
User domain security
Hệ thống truyền tin di động toàn cầu
Thiết bị người sử dụng
Modul nhận dạng thuê bao toàn cầu
Mạng truy nhập vô tuyến mặt đất
Bảo mật miền người sử dụng
V
VLR
Visitor Location Register
Bộ ghi định vị tạm trú
W
W-CDMA
Wide Band Code Division Multiple Access
Đa truy nhập phân chia theo mã băng rộng
TÀI LIỆU THAM KHẢO
[1] Security and Encryption, Margrave David, [30.9.1999]
[2] GSM Interception, Lauri Pesonen, [ 21.11.1999]
[3] GSM security issues, Wei Zhang, [11.15.2000]
[4] GSM System Security Study, RACAL RESEARCH LTD, [06,10,1998]
[5] Encryption and Ciphers using 7816 for smart cards, Chris Hills, [09,2001]
[6] A new class of collision attacks and its application on DES
[7] Guang Gong
[8] Real Time Cryptanalysis of A5/1 on a PC, Alex Biryukov, Adi Shamir, David Wagner, [04,27,2000]
[9] UMTS Networks Architecture Mobility and Services, 2nd Edition , Wiley (2005)
Các file đính kèm theo tài liệu này:
- Nghiên cứu các phương pháp bảo mật trong hệ thống gsm.doc