Một phương pháp khoá công cộng hỗ trợ nhiều thuật toán mật mã

Một phần của tài liệu Bảo mật trong mạng thông tin di động 3G (Trang 43 - 90)

2.9.1 Các phần tử dữ liệu trong giao thức Aziz-Diffie

Các phần tử dữ liệu quan trọng trong giao thức nhận thực được đề xuất bởi Aziz và Diffie gồm:

1. RCH1 (Random Chanllenge): RCH1 là một giá trị yêu cầu ngẫu nhiên được tạo bởi trạm di động trong pha khởi tạo của giao thức nhận thực có độ dài 128 bít.

2. CertMS (Certificate of the Mobile Station): Certificate của trạm gốc chứa các phần tử dữ liệu dưới đây: Số Sêri (Serial number), thời gian hiệu lực, tên máy, khoá công cộng của máy và tên CA. Nội dung và định dạng Cert tuân theo CCITT X.509. Cert được kí với bản tin digest được tạo với khoá riêng của CA. Nhận dạng chứa trong CA này trong Cert cho phép Principal khác đảm bảo an toàn khoá công cộng CA.

3. CertBS (Certificate of Base Station): CertBS có cùng các phần tử và cấu trúc như của trạm di động.

4. KUMS (Public Key): Khoá công cộng của trạm di động.

5. KUBS (Public Key): Khoá công cộng của trạm gốc.

6. RAND1; RAND2 (Random Numbers): RAND1, được tạo bởi trạm gốc và RAND2, mà trạm di động tạo ra được sử dụng trong việc tạo khoá phiên.

7. Ks (Session Key): Khoá phiên được tạo thông qua việc sử dụng cả RAND1 lẫn RAND2.

8. SKCS (List of Encription Protocols): SKCS cung cấp một danh sách các giao thức mật mã dữ liệu khoá riêng mà trạm di động có thể sử dụng cho việc mật mã dữ liệu được truyền dẫn trong một phiên truyền thông.

9. Sig (Digital Signatures): Những chữ ký số dưới giao thức Aziz-Diffie, được tạo ra bằng cách sử dụng khoá riêng của đăng ký principal, và được áp dụng bằng cách áp dụng khoá công cộng của người ký.

2.9.2 Hoạt động của giao thức Aziz-Diffie

Chuỗi trao đổi bản tin giữa trạm di động và trạm gốc mạng trong giao thức Aziz-Diffie bao gồm:

1. Trạm di động gửi bản tin “request-to-join” (yêu cầu tham gia) tới một trạm gốc mạng trong vùng lân cận của nó. Bản tin request to join chứa ba phần tử chính: số được tạo ngẫu nhiên đóng vai trò như một yêu cầu (challenge), RCH1; chứng nhận trạm di động, CertMS; và một danh sách các thuật toán mật mã dữ liệu khoá riêng mà trạm di động có thể hỗ trợ, SKCS.

2. Trạm di động xác nhận giá trị của chữ ký trên chứng nhận của trạm di động. Chú ý rằng điều này chứng nhận rằng chính chứng nhận cũng là điều xác nhận có giá trị mà không phải là chứng nhận nhận được từ trạm di động cùng trạm di động mà chứng nhận phát hành tới. Nếu chứng nhận không có giá trị thì trạm gốc kết thúc phiên; nếu khác nó tiếp tục.

3. Trạm gốc trả lời trạm di động bằng cách gửi chứng nhận của nó, CertBS; một số ngẫu nhiên, RAND1, mật mã bằng cách sử dụng khoá công cộng của trạm di động; và lựa chọn thuật toán mật mã khoá riêng từ các thuật toán được giới thiệu bởi trạm di động. Trạm gốc chọn từ sự giao nhau của tập các thuật toán được giới thiệu bởi trạm di động và tập các thuật toán mà trạm gốc hỗ trợ thuật toán đó mà nó xem là đưa ra độ bảo mật cao. Độ dài khoá được đàm phán đến độ dài tối thiểu mà trạm di động có khả năng xử lý và trạm gốc hỗ trợ. Trạm gốc tính toán một chữ ký bản tin bằng cách sử dụng khoá riêng trên một tập các giá trị mà chứa giá trị đã mật mã RAND1, thuật toán mật mã dữ liệu được chọn, challenge RCH1 ban đầu nhận được từ trạm di động và danh sách ban đầu các thuật toán mật mã ứng cử.

4. Trạm di động xác nhận tính chất hợp lệ của chứng nhận nó đã nhận được từ trạm gốc. Trạm di động cũng xác nhận chữ ký trạm gốc bằng cách giải mật mã tập các giá trị nó đã nhận được trong bản tin đã kí, bằng cách sử dụng khoá công cộng của trạm gốc. Nếu giá trị RCH1 và giá trị các thuật toán mật mã ứng cử nhận được từ trạm gốc phù hợp với những giá trị này được truyền ban đầu bởi trạm di động thì nhận dạng trạm gốc được xác nhận. Nếu khác trạm di động kết thúc phiên truyền thông.

5. Trạm di động lấy ra giá trị RAND1 bằng giải mật mã sử dụng khoá riêng của nó.

6. Trạm di động bây giờ tạo ra một giá trị ngẫu nhiên thứ hai, RAND2 có cùng độ dài bít như RAND1 và làm phép toán logic XOR hai chuỗi. Chuỗi tạo ra bởi

RAND1⊗RAND2 sẽ cấu thành một khoá phiên cho phiên truyền thông này.

Trạm di động mật mã giá trị RAND2 theo khoá công cộng của trạm gốc.

7. Trạm di động gửi giá trị đã mật mã RAND2 tới trạm gốc. Nó cũng tính toán chữ ký của nó trên một tập các giá trị chứa giá trị mật mã RAND2, và giá trị đã mật mã RAND1 mà nó đã nhận được trước đây từ trạm gốc. (Bởi vì giá trị mật mã RAND1 này bây giờ được ký với khoá riêng của trạm di động nên trạm gốc

có một cơ chế để xác nhận việc nhận thực trạm di động). Trạm di động gửi các phần tử dữ liệu này tới trạm gốc.

8. Trạm gốc xác nhận chữ ký trên bản tin vừa nhận được từ trạm di động bằng cách sử dụng khoá công cộng trạm di động. Nếu chữ ký được xác nhận, trạm gốc chấp nhận trạm di động như một thuê bao hợp lệ.

9. Trạm gốc giải mật mã giá trị RAND2 bằng cách sử dụng khoá riêng của nó.

Trạm gốc bây giờ có thể tạo ra RAND1⊗RAND2, để nó cũng nắm giữ khoá

phiên. (Chú ý rằng để đảm bảo an toàn khoá phiên RAND1⊗RAND2, một kẻ

xâm nhập cần truy nhập vào khoá riêng của cả trạm gốc lẫn trạm di động ít có khả năng hơn là một trong hai bị xâm nhập).

Đáng chú ý rằng chữ ký số được thêm vào bản tin được gửi bởi trạm gốc trong bước 3 ở trên có ba vai trò khác nhau sau đây: (1) để nhận thực bản tin, (2) để cung cấp sự trả lời yêu cầu (Challenge) tới bản tin đầu tiên của trạm di động, và (3) để nhận thực bản tin đầu tiên nhận được thông qua việc chứa danh sách ban đầu các thuật toán ứng cử. Cũng chú ý rằng, trong khi CA không liên quan trực tiếp đến chuỗi giao thức nhận thực thì CA đã ký các xác nhận cả trạm gốc lẫn trạm di động trong một bước ưu tiên.

Sự trao đổi bản tin trong giao thức Aziz-Diffie được thể hiện trong hình 2.2.

2.10 Kết luận chương 2

Từ quan điểm của những người thiết kế và vận hành mạng thông tin tổ ong, các công trình được mô tả trong chương này rõ ràng là vượt thời đại. Bằng cách tập trung vào các phương pháp tính toán vừa phải như MSR và mật mã đường cong elíp, việc nghiên cứu ở đây tìm kiếm mối quan tâm liên quan tới hiệu năng và khả năng mở rộng.. Tuy nhiên khi thế giới mạng, thậm chí đối với các lưu lượng thoại hướng tới cơ chế dựa trên IP và khi Internet trở thành một mô hình nổi bật cho tất cả các loại truyền thông dữ liệu thì sự việc này sẽ thay đổi.

CHƯƠNG III: GIẢI PHÁP BẢO MẬT TRONG MẠNG 3G UMTS

3.1 Mô hình kiến trúc an ninh 3G UMTS

Kiến trúc an ninh trong 3G UMTS được xây dựng dựa trên ba nguyên lý sau:

3.1.1 Nhận thực

Nhận thực để xác nhận nhận dạng của một thực thể. Một nút muốn nhận thực đến một người nào đó phải trình diện số nhận dạng của mình. Quá trình này có thể được thực hiện bằng cách chỉ ra sự hiểu biết về một bí mật mà chỉ hai nút liên quan mới biết hoặc một nút thứ ba được cả hai nút tin tưởng, để xác nhận các số nhận dạng của chúng.

Việc sử dụng nhận thực đặc biệt quan trọng khi chuyển từ điện thoại thuần túy (trong đó bản thân tiếng thoại của người đàm thoại đã là một dạng nhận thực nào đó) sang truyền thông số liệu khi không có sự tham gia của tiếng thoại.

Nhận thực trong 3G UMTS được chia làm hai phần: mạng nhận thực người và người sử dụng nhận thực mạng. Cả hai thủ tục này đều xảy ra trong cùng một trao đổi bản tin giữa mạng và người sử dụng, thủ tục này gọi là “nhận thực một lần gửi” để giảm các bản tin cần truyền. Sau các thủ tục này, người sử dụng sẽ tin tưởng rằng mạng mà nó nối đến được tin tưởng, để phục vụ thay cho mạng nhà của nó. Đồng thời, mạng cũng tin tưởng nhận dạng của người sử dụng là hợp lệ. Mạng lõi rất cần biết số nhận dạng thực sự của người sử dụng để tin tưởng rằng người sử dụng này sẽ trả tiền cho các dịch vụ mà nó cung cấp. Mặt khác người sử dụng cũng muốn nhận thực để tin tưởng rằng các dịch vụ mà nó trả tiền sẽ được cung cấp.

3.1.2 Bảo mật

Bảo mật để đảm bảo an ninh thông tin đối với những kẻ không được phép. Khi số lượng thuê bao không ngừng tăng cho cả các cuộc gọi cá nhân lẫn kinh doanh (ví dụ các dịch vụ trực tuyến như trao đổi ngân hàng) thì nhu cầu bảo mật thông tin ngày càng trở nên bức thiết.

Bảo mật trong 3G UMTS đạt được bằng cách mật mã hóa các cuộc truyền thông giữa thuê bao và mạng, bằng cách sử dụng nhận thực tạm thời TMSI thay cho sử dụng nhận dạng toàn cầu IMSI. Mật mã hóa được thực hiện giữa USIM và RNC, bảo mật người sử dụng được thực hiện giữa USIM và VLR/SGSN.

Các thuộc tính cần bảo mật: + Nhận dạng thuê bao;

+ Vị trí hiện thời của thuê bao; + Số liệu người sử dụng; + Số liệu báo hiệu.

Nếu mạng phục vụ không hỗ trợ bảo mật số liệu người sử dụng thì thuê bao cần được thông báo về khả năng này bị từ chối.

3.1.3 Toàn vẹn

Đôi khi ta cần kiểm tra bản tin gốc, mặc dù bản tin này có thể được nhận từ một phía đã được nhận thực, xong nó vẫn có thể bị giả mạo. Để khắc phục vấn đề này cần có bảo vệ toàn vẹn, không chỉ bảo mật bản tin mà cần phải đảm bảo rằng đây là bản tin chính thống.

Phương pháp để bảo vệ toàn vẹn trong 3G UMTS là tạo ra các con dấu bổ sung cho các bản tin. Các con dấu này có thể được tạo ra tại các nút biết được các khóa, được rút ra từ một khóa chủ biết trước (K). Các khóa này được lưu trong USIM và AuC. Bảo vệ toàn vẹn đặc biệt cần thiết, vì mạng phục vụ thường được khai thác bởi một nhà khai thác khác với nhà khai thác của thuê bao.

Thuộc tính cần được bảo vệ toàn vẹn là các bản tin báo hiệu.

Cần lưu ý rằng tại lớp vật lý, các bit được kiểm tra tính toàn vẹn bằng cách kiểm tra tổng CRC (kiểm tra vòng dư). Xong các biện pháp này chỉ được thực hiện để đạt được các cuộc truyền thông số liệu không mắc lỗi trên giao diện vô tuyến, chứ không giống như toàn vẹn mức truyền tải.

Các thủ tục an ninh trên giao diện vô tuyến của 3G UMTS được thực hiện dựa trên năm thông số (bộ năm Quinlet) là: hô lệnh mạng (RAND); trả lời kỳ vọng của người sử dụng (XRES); khóa mật mã (CK); khóa toàn vẹn (IK) và thẻ nhận thực mạng (AUTN). Trong đó AUTN=(SQNAK, AMF, MAC-A). Toàn bộ quá trình tạo ra các thông số này tại USIM và VLR/SGSN được gọi là quá trình nhận thực và thỏa thuận khóa (AKA). Trong quá trình này AuC phải tạo ra các vec-tơ nhận thực (AV).

3.2 Các hàm mật mã

3.2.1 Yêu cầu đối với các giải thuật và các hàm mật mã

Các giải thuật và các hàm mật mã phải đáp ứng các yêu cầu chặt chẽ. Các hàm này phải được thiết kế để có thể tiếp tục được sử dụng ít nhất 20 năm. Các UE chứa các hàm này không bị giới hạn về xuất khẩu và sử dụng. Các thiết bị mạng như RNC và AuC có thể phải chịu các hạn chế. Việc xuất khẩu các nút này phải tuân thủ thỏa thuận Wassenaar. Như vậy nhà khai thác có thể thiết lập thiết bị và giải thuật theo luật và giấy phép địa phương và người sử dụng có thể chuyển mạng bằng thiết bị của mình mỗi khi chuyển đến một mạng hay một nước khác. Khi không biết các khóa đầu vào, ta không thể phân biệt các hàm này với các hàm ngẫu nhiên độc lập của các đầu vào của chúng. Thay đổi một thông số đầu vào mỗi lần không thể phát hiện bất kỳ thông tin nào về khóa chủ (K) hay trường cầu hình của nhà khai thác.

3.2.2 Các hàm mật mã

Các tính năng an ninh của 3G UMTS được thực hiện bởi tập các hàm và các giải thuật mật mã. Tất cả có mười hàm mật mã để thực hiện tính năng này : f0,

f1, f2, f3, f4, f5, f1*, f5*, f8 và f9. Trong đó, f0 để tạo ra hô lệnh ngẫu nhiên (RAND), bẩy hàm tiếp theo là các hàm tạo khóa. Chúng đều là đặc thù nhà khai thác, vì các khóa được sử dụng để nhận thực chỉ được tạo ra ở USIM và AuC. Đây là hai miền mà cùng một nhà khai thác phải chịu trách nhiệm.

Các hàm để tạo ra các thông số AKA là: f1, f2, f3, f4, f5, f1* và f5*. Việc lựa chọn các hàm này về nguyên tắc là tùy thuộc vào nhà khai thác. Do việc thiết kế giải thuật mật mã mạnh cho các hàm này rất khó, nên 3GPP đã cung cấp một tập mẫu các giải thuật AKA với tên gọi là MILENAGE. Việc cấu trúc các giải thuật này dựa trên một giải thuật mật mã mạnh 128bit được gọi là hàm lõi cùng với trường cấu trúc bổ sung do nhà khai thác lựa chọn. Tiêu chuẩn mật mã hóa tiên tiến (AES) được khuyến nghị sử dụng cho hàm lõi của các hàm f1, f2, f3, f4 và f5.

Hàm f1* và f5* được sử dụng để tạo khóa phục vụ quá trình đồng bộ lại Các hàm f8 và f9 sử dụng hàm lõi là bộ mật mã khối KASUMI.

Các hàm f8 và f9 được sử dụng trong USIM và RNC, vì hai miền này có thể thuộc hai nhà khai thác khác nhau, nên chúng không thể đặc thù nhà khai thác. Các hàm này sử dụng khóa chủ (K). Lý do là để tránh phân bổ khóa này trên mạng và để giữ nó an toàn trong USIM và AuC.

Hàm Đầu vào Đầu ra Chức năng

f0 RAND Tạo hô lệnh ngẫu nhiên cho

mạng

f1 K, SQN, AMF, RAND MAC-A/XMAC-A Nhận thực mạng

f2 K, RAND XRES và RES Nhận thực người sử dụng

f3 K, RAND CK Tạo khóa mật mã

f4 K, RAND IK Tạo khóa toàn vẹn

f5 K, RAND AK Tạo khóa dấu tên

f1* K, RAND, AMF MAC-S Nhận thực bản tin đồng bộ lại

f5* K, RAND AK Tạo khóa dấu tên cho bản tin

f8 CK, COUNT-C,

BEARER, DICRECTION, LENGTH

KS Tạo luồng khóa để mật mã

hóa và giải mật mã hóa số liệu

f9 Bản tin báo hiệu

phát/thu,

DICRECTION,IK, COUNT-I, FRESH

MAC-I và XMAC-I Tạo mã nhận thực toàn vẹn bản tin.

3.2.2.1 Hàm f8

Bảng 3.1 Các hàm mật mã.Số liệu người sử dụng và một số phần tử thông tin báo hiệu được coi là nhậy cảm và phải được bảo mật. Để bảo mật nhận dạng, số nhận dạng thuê bao di động tạm thời gói (P-TMSI) phải được truyền trong chế độ bảo mật tại thời điểm cấp phát và tại các thời điểm khác, khi các thủ tục báo hiệu cho phép nó. Hàm mật mã đảm bảo chế độ truyền dẫn có bảo vệ trên các kênh truy nhập vô tuyến giữa UE và RNC. Chúng ta dùng hàm mật mã f8 để tiến hành mật mã hóa và giải mật mã hóa số liệu (hình 3.1).

Hình 3.1 Quá trình mật mã hoá và giải mật mã hoá bằng hàm f8

Các thông số đầu vào của hàm f8 bao gồm:

Số trình tự mật mã hóa (COUNT-C) (32bit), số này tăng mỗi khi gửi đi hoặc thu về một bản tin được bảo mật. Có hai bộ đếm cho đường lên và đường xuống.

Khóa mật mã (CK) (128bit) được tạo ra ở AuC và được gửi đến VLR/SGSN trong các vec-tơ nhận thực (AV). Sau khi quá trình nhận thực thành công, khóa này được gửi đến RNC. USIM tạo ra các khóa này trong thời gian nhận thực, khi thực hiện chuyển giao khóa mật mã (CK) được truyền từ RNC hiện thời

Một phần của tài liệu Bảo mật trong mạng thông tin di động 3G (Trang 43 - 90)