Khóa mã nhóm GCK (Group Cipher Key)

Một phần của tài liệu Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA (Trang 59)

Khóa mã nhóm GCK được tạo ra và phân phát tới các thiết bị đầu cuối MS trong cùng một nhóm bởi hệ thống. Khóa GCK sẽ không được trao đổi qua lại trực tiếp giữa các thiết bị, nó sẽ được biến đổi nhờ mã CCK hoặc SCK để tạo ra mã GCK hiệu chỉnh (Modified GCK - MGCK). Thuật toán được sử dụng trong quá trình này là TA71. Khóa mã MGCK được sử dụng để mã hóa các cuộc gọi nhóm. Các khóa mã GCK, MGCK đều có kích thước 80 bit.

3.5.4. Khóa mã tĩnh SCK (Static Cipher Key)

Khóa mã tĩnh được lưu trữ tại trung tâm mạng và tại thiết bị đầu cuối MS. Một thiết bị đầu cuối có thể lưu trữ tới 32 khóa mã tĩnh SCK. Giá trị của khóa SCK không bao giờ thay đổi. Khóa SCK không được dùng trong quá trình xác thực mà nó được dùng trong quá trình mã hóa tín hiệu trong chế độ đàm thoại trực tiếp. Bảng 3.6 tổng kết độ dài bit các mã bảo mật đã được đề cập.

Tham số Bits Tham số Bits

RS 80 K, KS, KSO 128 DCK, DCK1, DCK2 80 UAK 128 CK, CCK, SCK 80 RAND1, RAND 2 80 GCK, MGCK 80 RES1, RES2 32 SCCK, SGCK, SSCK 120 XRES1, XRES 2 32 AC 16-32 PIN 16-32

Bảng 3.6 Kích thước các khóa bảo mật [6].

3.6. Thay đổi khóa mã từ xa (OTAR)

Over the Air Re-keying (OTAR) là một cách mà hệ thống mạng truyền các khóa mã bí mật (CCK, SCK và GCK) tới các thiết bị đầu cuối MS thông qua giao diện vô tuyến. Việc truyền các khóa mã CCK và GCK được bảo vệ bởi DCK, trong khi khóa mã SCK được bảo mật bởi khóa phiên KSO (Session Key for OTAR). Khóa phiên KSO được tạo từ khóa xác thực người dùng và mã ngẫu nhiên RS. Quá

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

60

trình thay đổi khóa mã từ xa OTAR được thực hiện thông qua việc trao đổi các bản tin như U-OTAR CCK Demand, D-OTAR CCK Provide,… Cụ thể về quá trình này được trình bày trong tài liệu [6]. Bên dưới là giới thiệu sơ lược về các bản tin này.

Trong một vùng định vị, bản tin U-OTAR CCK Demand được sử dụng bởi một thiết bị đầu cuối MS để yêu cầu khóa mã CCK từ hệ thống. Để phản hồi, hệ thống sẽ đáp lại bằng bản tin D-OTAR CCK Provide. Cấu trúc bản tin trên được mô tả như bảng 3.7.

Trường thông tin Độ dài (bits) Chú thích

PDU Type 4 U-OTAR=11012

OTAR sub-type 3 Kiểu PDU là yêu cầu hay phản hồi kết

quả các mã CCK, GCK hay SCK

Location Area 14 Vùng định vị mà MS đang đăng ký

Proprietary element - Cho phép thêm các thông tin khi cần Bảng 3.7 Cấu trúc bản tin U-OTAR CCK Demand [6].

Bản tin D-OTAR CCK Provide được hệ thống gửi tới thiết bị đầu cuối MS để cung cấp khóa mã CCK. Cấu trúc bản tin trên được mô tả như bảng 3.8.

Trường thông tin Độ dài (bits) Chú thích

PDU Type 4 D-OTAR=00002

OTAR sub-type 3 Kiểu PDU là yêu cầu hay phản hồi kết

quả các mã CCK, GCK hay SCK CCK provision indicatior 2 Cho biết phạm vi sử dụng của CCK

Proprietary element - Cho phép thêm các thông tin khi cần Bảng 3.8 Cấu trúc bản tin D-OTAR CCK Provide [6].

3.7. Truyền các thông tin xác thực

Khi một người dùng chuyển sang một vùng mạng TETRA khác thì vùng mạng TETRA này sẽ cần phải biết các thông tin xác thực từ mạng TETRA ban đầu mà người dùng đó đăng ký, điều này là cần thiết để vùng mạng TETRA mới có thể

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

61

thực hiện các yêu cầu xác thực cuộc gọi, tạo và cung cấp các khóa mã bảo mật. Một cách đơn giản nhất là truyền khóa xác thực K cho vùng mạng mới, nhưng rõ ràng là cách này không đảm bảo được bảo mật thông tin. Một cách khác an toàn hơn là thực hiện truyền đi các thông tin cần thiết cho mỗi lần xác thực. Phương pháp này được sử dụng trong mạng di động GSM và nó đưa ra mức độ bảo mật rất cao, tuy vậy cái giá phải trả là việc lãng phí tài nguyên khi phải truyền nhiều thông tin cho mỗi lần xác thực.

Hệ thống TETRA đưa ra một các tiếp cận khác tốt hơn khi kết hợp được cả tính bảo mật và tính hiệu quả sử dụng tài nguyên. Với phương pháp tiếp cận này, khi một thiết bị đầu cuối MS chuyển sang một vùng mạng khác thì nó sẽ yêu cầu mạng chủ (mạng ban đầu mà thiết bị MS này đăng ký) gửi một khóa xác thực phiên KS, sau đó khóa này sẽ được MS sử dụng cho các lần xác thực sau này. Cơ chế xác thực này không sử dụng tới khóa xác thực gốc K và không cần phải truyền các thông tin cho mỗi lần xác thực, do vậy đảm bảo được tính bảo mật và sử dụng tài nguyên mạng hiệu quả hơn.

3.8. Mã hóa kênh vô tuyến

Hình 3.11 Mã hóa thông tin điều khiển và thông tin thoại [6].

Vì bất kỳ ai cũng có thể truy cập vào kênh vô tuyến trong suốt quá trình trao đổi giữa MS và BS nên việc mã hóa thông tin được truyền đi là một điều cực kỳ quan trọng. Mã hóa thông tin là một phương pháp đảm bảo các thông tin được truyền đi một cách an toàn, bí mật và chỉ có thể giải mã được bởi người nhận đích.

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

62

Mã hóa qua kênh vô tuyến được xử lý tại lớp trên của lớp MAC, do vậy phần tiêu đề của lớp MAC không được mã hóa. Mã hóa kênh vô tuyến được thực hiện bằng cách sử dụng một thuật toán mã hóa được tiến hành trong bộ tạo luồng khóa KSG (Key Stream Generator). Như được chỉ ra trên hình 3.11, bộ KGS có hai đầu vào là giá trị khởi tạo IV (Initial Value) và khóa mã ECK (Encryption Cipher Key), đầu ra của bộ KGS là một phân luồng khóa KSS (Key Stream Segment). Bản mã thu được bằng việc công modun-2 (XORed) giữa khóa KSS với thông tin cần truyền đi. Giá trị khởi tạo IV (Initial Value) là một số 29 bit bao gồm 2 bit chỉ số khe, 5 bit chỉ số khung, 6 bit chỉ số đa khung, 15 bit chỉ số siêu khung, và 1 bit chỉ thị hướng của luồng truyền dẫn (bit 0 cho luồng xuống, bit 1 cho luồng lên). Khóa mã ECK có kich thước 80 bit. Như được chỉ ra trên hình 3.12, khóa mã bảo mật ECK được dẫn xuất từ một khóa mã CK nhất định chẳng hạn như khóa SCK, DCK, MGCK hoặc CCK. Khóa mã CK sẽ được hiệu chỉnh bởi chỉ số sóng mang CN (Carrier Number), LA-id và mã màu CC (Colour Code) bằng việc sử dụng thuật toán TB5.

Hình 3.12 Tạo khóa ECK [6].

Trong hệ thống TETRA họ thuật toán TEA (TETRA Encryption Algorithm) được sử dụng để mã hóa kênh vô tuyến. Hiệp hội TETRA MoU cũng đề xuất một số thuật toán khác như trong các tài liệu [10, 11, 12, 13] cho các yêu cầu thương mại khác nhau. Các thuật toán TEA2 và TEA3 chủ yếu được sử dụng cho các tổ chức an ninh công cộng và không được công bố rộng rãi, trong khi các thuật toán TEA1 và TEA4 đã được công bố công khai. Tiêu chí kỹ thuật về các thuật toán trên chỉ có thể biết đến bởi các thành viên trong tổ chức ETSI.

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

63

3.9. Mã hóa đầu cuối

Mã hóa kênh truyền vô tuyến vừa đề cập ở trên bảo vệ việc truyền thông tin dữ liệu giữa các thiết bị đầu cuối MS và trạm gốc TBS. Trong khi đó mã hóa đầu cuối bảo mật thông tin được truyền xuyên suốt trong mạng từ TBS đến MSC, từ MSC này tới MSC khác và các kết nối truyền dẫn khác bên trong cơ sở hạ tầng mạng TETRA. Các thông tin được mã hóa bởi người gửi và chỉ có thể được giải mã bởi người thu. Mã hóa đầu cuối và quản lý khóa bảo mật không được chỉ rõ trong bộ tiêu chuẩn TETRA. Trong bộ tiêu chuẩn TETRA chỉ mô tả cơ chế đồng bộ như được minh họa trên hình 3.13. Hệ thống TETRA không tham gia vào quá trình quản lý và tạo mã bảo mật, nó chỉ cung cấp các kênh truyền dẫn.

Hình 3.13 Quá trình đồng bộ hóa [6].

Bộ tạo luồng mã đầu cuối EKSG (End-to-end Key Stream Generator) tạo ra mã EKSS (End-to-end Key Stream Segment) với các đầu vào là mã CK (Cipher Key) và giá trị khởi tạo IV (Initial Value). Để chống lại trường hợp sao chép mã bởi các kẻ tấn công, giá trị khởi tạo IV là một tham số biến đổi theo thời gian được sử dụng để khởi tạo quá trình đồng bộ cho các bộ mã hóa. Hàm F1 kết hợp luồng dữ liệu chưa được mã hóa “P” với mã EKSS để tạo luồng dữ liệu mã hóa bảo mật “C”. Quá trình ngược lại được diễn ra để giải mã luồng dữ liệu bảo mật thu được bằng cách sử dụng hàm F1-1 với mã EKSS. Hàm F2 có chức năng thay một nửa số khe của luồng mã bảo mật với một khung đồng bộ được tạo từ khối chức năng điều

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

64

khiển đồng bộ (Synch Control). Hàm F3 có chức năng nhận diện khung đồng bộ và truyền nó tới khối chức năng phát hiện đồng bộ (Synch Detect).

Nội dung của chương 3 đã trình bày các vấn đề cơ bản về bảo mật trong hệ thống bộ đàm số TETRA, trong chương tiếp theo sẽ phân tích cụ thể hơn về giao thức xác thực trong TETRA thông qua công cụ Scyther.

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

65

CHƯƠNG 4: PHÂN TÍCH GIAO THỨC XÁC THỰC TRONG HỆ THỐNG BỘ ĐÀM SỐ TETRA

Bảo mật thông tin trong hệ thống mạng bộ đàm số TETRA bao gồm nhiều khía cạnh khác nhau, chẳng hạn xác thực người dùng, mã hóa giao diện vô tuyến, mã hóa đầu cuối end-to-end, quản lý khóa bảo mật, các vấn đề đảm bảo an ninh cơ sở hạ tầng mạng,… Do đó đây là vấn đề rất rộng, trong nội dung tiếp theo của luận văn này sẽ trình bày một cách cụ thể về việc phân tích giao thức xác thực trong hệ thống mạng TETRA để từ đó có thể hiểu rõ hơn về cơ chế bảo mật này, cũng như thấy được các lỗ hổng bảo mật còn tồn tại để từ đó đưa ra được các cách khắc phục kịp thời và hiệu quả.

Để phân tích giao thức xác thực trong hệ thống mạng TETRA, trong luận văn này sẽ sử dụng công cụ phân tích giao thức tự động Scyther được phát triển bởi Cas Cremers thuộc khoa Khoa học Máy tính trường đại học Oxford Vương quốc Anh. Trên thực tế ngoài công cụ Scyther nói trên còn có nhiều công cụ khác nhau để phân tích giao thức bảo mật, chẳng hạn như công cụ Proverif, AVISPA, CPSA, hay NRL, … Tuy nhiên với đầy đủ các chức năng phân tích, giao diện thân thiện dễ sử dụng, đặc biệt miễn phí cho người dùng nên công cụ này được lựa chọn trong luận văn này. Trước khi đi vào phân tích giao thức xác thực trong hệ thống mạng TETRA, những hiểu biết cơ bản về công cụ Scyther là rất cần thiết và hữu ích, do vậy phần tiếp theo sẽ trình bày tổng quan về công cụ này.

4.1. Giới thiệu về công cụ Scyther

Scyther là công cụ hữu hiệu trong việc kiểm tra các giao thức bảo mật, nó sử dụng các mô hình toán học và logic được mô tả trong các tài liệu [1], [2] và [17] dưới giả định rằng tất cả các hàm mã hóa là hoàn hảo, nói cách khác kẻ tấn công chỉ có thể giải mã được bản tin khi biết được khóa mã cần thiết.

Một trong những ưu điểm của công cụ Scyther so với các công cụ tương đồng khác đó là khả năng kiểm tra không giới nội (unbounded verification). Thông thường các công cụ kiểm tra chỉ kiểm tra các thuộc tính bảo mật trong một tập nhỏ

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

66

có giới hạn các trường hợp có thể xảy ra đối với một giao thức bảo mật nhất định, kiểu kiểm tra như vậy được gọi là kiểm tra giới nội (bounded verification). Trái ngược với điều này, kiểm tra không giới nội tập trung vào việc kiểm tra tính đúng đắn của một giao thức trong tất cả các trường hợp thực thi của nó, ngay cả trong trường hợp có sự hiện diện của kẻ tấn công [4]. Một đặc tính quan trọng thứ hai của Scyther là tính năng mô tả đầy đủ các cách thực thi của một giao thức. Tính năng mô tả đầy đủ (complete charaterization) này liên quan mật thiết với khả năng kiểm tra không giới nội vừa đề cập ở trên. Với một giao thức nhất định, trong vai trò là bên khởi tạo hay bên phản hồi thông tin, một mô tả đầy đủ là một tập hợp hữu hạn các mô tả về tất cả các cách thực thi có thể có của một giao thức, bao gồm cả các cách thực thi thông thường và các cách thực thi trong trường hợp bị tấn công. Các mô tả này được xây dựng rõ ràng, cụ thể để dựa vào đó cho phép kiểm tra các thuộc tính bảo mật. Do đó nếu như một thuộc tính bảo mật nhất định được đảm bảo trong tập mô tả toàn diện nói trên thì nó sẽ được đảm bảo trong mọi trường hợp. Trong Scyther tính năng mô tả đầy đủ này được biểu thị qua các biểu đồ dấu vết (trace patterns). Một ưu điểm khác của công cụ Scyther là khả năng kiểm tra nhanh và hiệu quả. Theo nghiên cứu [3] đây là một trong những công cụ phân tích giao thức bảo mật nhanh nhất trong khi vẫn có thể tìm ra các lỗ hổng bảo mật một cách hữu hiệu. Thêm vào đó giao diện đồ họa dễ sử dụng, cách trình bày các biểu đồ dấu vết, biểu đồ mô tả các kịch bản tấn công rất trực quan là một trong những ưu điểm đáng để kể đến của Scyther.

Công cụ Scyther được phát triển trên nền tảng Windows, Linux và Mac OS X và là công cụ hoàn toàn miễn phí có thể download trực tiếp từ [21]. Tuy nhiên trước khi sử dụng được Scyther, ba thành phần cơ bản sau cần phải được cài đặt và thiết lập đó là thư viện GraphViz, phần mềm thông dịch Python và các thư viện wxPython. Thư viện GraphViz được sử dụng trong Scyther để vẽ các đồ thị, nó có thể tải về trực tiếp tại [22]. Thông dịch Python cần phải được cài đặt vì giao diện đồ họa trong Scyther được phát triển bằng ngôn ngữ này, thông dịch này có thể được tải về tại [23]. Cần lưu ý là Scyther không hỗ trợ Python 3, do đó cần phải cài đặt

Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA

67

Python các phiên bản 2, ví dụ Python 2.7. Các thư viện wxPython được dùng trong chế độ đồ họa của Scyther, chúng có thể tải về tại [24]. Có rất nhiều gói wxPython khác nhau, tuy nhiên để phù hợp với thông dịch Python 2.7, bản wxPython 32-bit cần phải được cài đặt, phiên bản wxPython 32-bit dùng cho Windows có thể được tải về từ [25]. Sau khi cài đặt các gói dữ liệu trên, để chạy công cụ Scyther chúng ta chỉ cần chạy file scyther-gui.py trong thư mục chứa, khi đó giao diện chính của Scyther được cho trên hình 4.1.

Hình 4.1 Giao diện chính của công cụ Scyther.

Trước khi đi sâu vào việc phân tích giao thức xác thực bằng việc sử dụng công cụ Scyther, các thuật ngữ cũng như câu lệnh trong Scyther được dùng trong quá trình phân tích cần phải được xem xét. Do đó phần tiếp theo sẽ trình bảy cơ bản về các vấn đề này.

4.2. Các thuật ngữcơ bản trong Scyther

Protocols: Một protocol là một giao thức quy định cách thức trao đổi bản tin giữa hai hay nhiều đối tượng tham gia truyền thông.

Agents: Agent là một đối tượng tham gia truyền thông thực thi các giao thức, thực chất các đối tượng này là các chương trình chạy trong các hệ thống máy

Một phần của tài liệu Bảo mật thông tin trong hệ thống bộ đàm trung kế kỹ thuật số TETRA (Trang 59)