Các phương pháp mã hóa

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 44)

Hai phương pháp mã hóa thường dùng trong quá trình bảo mật thông tin là phương pháp mã hóa đối xứng và phương pháp mã hóa bất đối xứng. Phương pháp mã hóa đối xứng sử dụng một khóa bí mật chia sẻ cho cả hai quá trình mã hóa và giải mã. Trong khi đó phương pháp mã hóa bất đối xứng sử dụng một khóa công khai và một khóa bí mật cho quá trình mã hóa và giải mã. Phương pháp mã hóa bất đối xứng còn được gọi là phương pháp mã hóa khóa công khai. Phần tiếp theo sau đây sẽ trình bày cơ bản về hai phương pháp mã hóa này.

3.2.1. Mã hoá đối xứng Bản tin gốc Bản tin gốc Bản tin đã Mã hóa SYM SYM Kênh C Khóa bí mật Khóa bí mật SKc SKc

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

45

Hình 3.2 Kênh nguyên lý trong hệ thống mã hoá đối xứng.

Nguyên lý cơ bản của hệ thống mã hoá khoá đối xứng được chỉ ra trong hình 3.1. Có thể thấy rằng bản chất của mã hoá đối xứng là cả phía thu và phía phát đều sử dụng cùng một khoá bí mật (SK), và tất nhiên là thuật toán ở cả hai phía cũng đều giống nhau. Mã hoá đối xứng như trên dựa vào việc phân phối khoá một cách bảo mật giữa cả hai phía. Nhưng thực tế là khoá chung đó lại phân phối tới tất cả mọi người trong mạng, và vấn đề bảo mật kênh truyền đã làm đau đầu những nhà quản trị mạng. Điều nguy hiểm nhất là bất cứ ai chiếm được khoá trong quá trình phân phối cũng có toàn quyền truy nhập tới dữ liệu do khoá đó bảo vệ. Do đó, quá trình phân phối khoá phải được thực hiện trên kênh truyền có tính bảo mật cao, bất kể là kênh logic hay kênh vật lý (hình 3.2).

3.2.2. Mã hoá bất đối xứng

Ngược lại với mã hoá đối xứng, thuật toán mã hóa bất đối xứng hoạt động theo ít nhất là hai khoá, hay chính xác hơn là một cặp khoá (hình 3.3). Khoá sử dụng được biết đến như là khoá bí mật và khoá công khai và do đó thuật toán này còn được gọi là thuật toán mã hoá khoá công khai. Mỗi khoá được sử dụng để mã hoá hay giải mã, nhưng khác với thuật toán đối xứng, giá trị của khoá ở mỗi phía là khác nhau.

Trong hệ thống sử dụng thuật toán mã hóa bất đối xứng RSA (phát minh bởi Rivest, Shamir và Adleman), dữ liệu được mã hoá bằng khoá bí mật (KXu) và chỉ có thể giải mã được bằng khoá công khai của cặp khoá đó. Cặp khoá này được tạo

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

46

ra cùng nhau và do đó có liên quan trực tiếp với nhau. Mặc dù có quan hệ với nhau nhưng nếu biết hay truy nhập được khoá công khai thì cũng không thể tính toán được giá trị của khoá bí mật. Do đó, công khai khoá mã cũng không làm ảnh hưởng tới tính bảo mật của hệ thống. Bản chất của mã hoá khoá công khai RSA là bất cứ bản tin mật mã nào đều có thể được xác thực nếu như nó được mã hoá bằng khoá bí mật còn giải mã bằng khoá công khai. Từ đó, phía thu sẽ xác định được cả nguồn gốc của bản tin.

Hình 3.3 Nguyên lý cơ bản của mã hoá khoá công khai và thuật toán RSA. Bất cứ người nào giữ khoá công khai đều có thể nghe được bản tin mật mã bằng cách tính toán với khóa bí mật, điều này đảm bảo được tính tin cậy của bản tin, tính xác thực và tính chống thoái thác. Nó hoàn toàn trái ngược với hoạt động của khoá đối xứng, trong đó bản tin mật mã được đảm bảo tính toàn vẹn giữa phía mã hoá và giải mã, nhưng bất kỳ ai có được khoá chung đều có thể phát bản tin và từ chối rằng chính mình đã phát nó, còn phía thu thì không thể biết được đâu là tác giả của bản tin đó. Thuật toán mã hóa bất đối xứng yêu cầu khả năng tính toán lớn hơn và do đó tốc độ quá trình mã hoá chậm hơn so với mã hoá đối xứng. Đây cũng là trở ngại chính trong các hệ thống cho phép tỷ lệ lỗi lớn như trong truyền thông thoại. Do đó, mã hoá khoá công khai không phù hợp với các bản tin có chiều dài thông thường, tuy nhiên khi kết hợp cả hai chế độ với nhau lại có thể đảm bảo tính nhận thực, tin cậy và toàn vẹn của bản tin.

Như vậy về cơ bản có hai phương pháp mã hóa là mã hóa đối xứng và mã hóa bất đối xứng. Xét riêng về quá trình xác thực trong hệ thống TETRA thì theo

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

47

tiêu chuẩn [7] trong quá trình này sử dụng phương pháp mã hóa đối xứng. Một số lý do giải thích về điều này là phương pháp mã hóa đối xứng có tốc độ mã hóa và giải mã nhanh, dễ quản lý các thông tin bảo mật và độ bảo mật tương đối tốt. Cụ thể về quá trình xác thực trong TETRA sẽ được trình bày sau đây.

3.3. Nguyên tắc xác thực

Xác thực là quá trình kiểm tra danh tính hay tính hợp pháp của một thực thể xác định, đó có thể là một cá nhân, một đối tượng hay một hệ thống nào đó. Việc sử dụng mật khẩu hay chỉ số nhân dạng cá nhân (personal identity number - PIN) đã được sử dụng rộng rãi trong nhiều hệ thống bảo mật, tuy nhiên mức độ bảo vệ khi sử dụng các phương pháp này ở quá trình xác thực trong môi trường vô tuyến là rất thấp. Kẻ tấn công có thể bẻ các khóa bảo mật để truy cập bất hợp pháp vào hệ thống hoặc chúng có thể làm giảm hiệu năng hoạt động của hệ thống bằng cách gửi đi hàng loạt các yêu cầu xác thực.

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

48

Để khắc phục được tình huống trên, trong các hệ thống thông tin vô tuyến thường sử dụng phương pháp xác thực với tên gọi Three-Pass Challenge-Response- Result như được minh họa trên hình 3.4. Quá trình xác thực Challenge-Response về cơ bản hoạt động theo hình thức một bên sẽ đưa ra một câu hỏi (thách thức – challenge) và bên kia phải cung cấp một câu trả lời (hồi đáp – response) hợp lệ.Cụ thể hơn, một bên sẽ đưa ra một số ngẫu nhiên (ramdom number) như là một thách thức cho bên còn lại. Để đưa ra câu trả lời, bên còn lại sẽ kết hợp số ngẫu nhiên vừa nhận được với một khóa bí mật (secret key) hay một khóa phiên dẫn xuất (derived session key). Sau đó cả hai bên sẽ so sánh kết quả nhận được với một khóa bí mật dùng chung (shared secret key) để đưa ra phản hồi cuối cùng. Trong các hệ thống thông tin di động, khóa bí mật thường được lưu trữ trong thẻ SIM, do đó người sử dụng không thể truy cập trực tiếp vào khóa bí mật này. Trong hình thức xác thực này một khóa bí mật được chia sẻ cho cả hai bên tham gia liên lạc, chính vì điều này đây là một kiểu mã hóa đối xứng. Quá trình xác thực trên hình 3.4 chỉ ra rằng các thuật toán khác nhau có thể được sử dụng để tạo ra khóa phiên KS (Session Key) từ số ngẫu nhiên RS (Random Seed) và để tạo ra mã thử thách ngẫu nhiên RAND (random challenge). RS và RAND tạo nên cặp mã thử thách (RS, RAND) để gửi tới bên cần xác thực. Để quá trình xác thực diễn ra thành công, cả hai phía cần phải tính toán ra cùng một giá trị phản hồi. Cụ thể về quá trình xác thực trong hệ thống bộ đàm TETRA được đề cập trong phần dưới đây.

3.4. Xác thực trong hệ thống bộđàm TETRA

3.4.1. Tạo khóa xác thực

Khi đăng nhập vào hệ thống mạng TETRA lần đầu tiên, thiết bị đầu cuối sẽ sẽ được gán một khóa xác thực người dùng UAK (User Authentication Key). Khóa UAK có kích thước 128 bit được lưu trữ trong SIM của thiết bị đầu cuối cũng như được lưu trữ trong cơ sở dữ liệu của trung tâm xác thực. Khóa xác thực K được dùng để xác thực có thể được tạo ra bằng một trong ba cách như mô tả trên hình 3.5.

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

49

Hình 3.5 Quá trình tạo khóa xác thực K [6].

Bằng việc sử dụng thuật toán TB1 khóa K có thể được tạo ra từ mã xác thực AC (Authentication Code), đây là một mã PIN có kích thước từ 16 đến 32 bit do người sử dụng thiết lập trên thiết bị đầu cuối của mình. Khóa K cũng có thể được tạo ra từ khóa xác thực người dùng UAK (được lưu trong SIM) thông qua thuật toán TB2. Bằng việc sử dụng thuật toán TB3 khi kết hợp cả mã AC và mã UAK là cách thứ ba để tạo khóa K. Thực ra khóa xác thực K không được dùng trực tiếp trong quá trình xác thực mà là các khóa phiên KS và KS’. Chiều dài của khóa K, KS và KS’ đều là 128 bit. Chi tiết về quá trình tạo ra các khóa phiên KS và KS’ sẽ được trình bày ở các phần tiếp theo.

3.4.2. Các quy trình xác thực

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

50

Trong hệ thống mạng TETRA, tính năng xác thực bao gồm xác thực MS (Mobile Station) bởi SwMI (Switching & Management Infrastructure), xác thực SwMI bởi MS và xác thực tương hỗ giữa MS và SwMI.

Hình 3.6 minh họa quá trình SwMI xác thực một MS. Cơ sở hạ tầng quản lý và chuyển mạch SwMI bao gồm trung tâm xác thực và trạm gốc. RS (Random Seed) là một mã ngẫu nhiên được kết hợp sử dụng với mã xác thực K để tạo ra một khóa phiên KS như đã đề cập ở phần trên. Thuật toán được sử dụng ở đây là TA11 và quá trình này sẽ được thực hiện bởi trung tâm xác thực AuC của hệ thống. Một mã ngẫu nhiên RAND1 được tạo ra bởi SwMI để gửi tới MS như một quy trình thử thách. Thiết bị đầu cuối MS sẽ tính toán mã phản hồi tương ứng RES1 bằng cách sử dụng khóa phiên KS và thuật toán TA12. Quá trình này đồng thời cũng sản sinh ra mã DCK1 đây là một thành phần để tạo khóa mã dẫn xuất DCK (Derived Cipher Key) sau này. Sau đó SwMI sẽ so sánh mã phản hồi RES1 của MS với mã phản hồi mong đợi XRES1 của SwMI, khi đó nếu RES1 hoàn toàn trùng khớp với XRES1 thì kết quả xác thực sẽ trả về giá trị TRUE và trong trường hợp ngược lại sẽ trả về giá trị FALSE.

Hình 3.7 Quá trình xác thực SwMI [7].

Hình 3.7 mô tả quá trình một thiết bị đầu cuối MS xác thực một cơ sở hạ tầng quản lý và chuyển mạch SwMI, quá trình này tương tự như quá trình xác thực

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

51

vừa đề cập ở trên. Các thuật toán TA11 và TA21 sẽ được thay thế bởi các thuật toán TA21 và TA22 tương ứng. Khóa phiên KS’ đồng thời cũng khác so với KS. Một thành phần khác của khóa dẫn xuất DCK cũng được tạo ra là DCK2.

Hệ thống mạng TETRA hỗ trợ quá trình xác thực tương hỗ giữa MS và SwMI. Quá trình xác thực tương hỗ xảy ra theo hai giai đoạn, giai đoạn một diễn ra khi một bên bắt đầu xác thực bên còn lại và giai đoạn thứ hai xảy ra theo chiều ngược lại, tuy nhiên cần lưu ý rằng giai đoạn hai chỉ được xảy ra khi quá trình xác thực trong giai đoạn một là thành công.

Hình 3.8 Quá trình xác thực tương hỗ được khởi tạo bởi SwMI [7].

Hình 3.8 minh họa quá trình xác thực tương hỗ được khởi tạo bởi SwMI, cụ thể quá trình này như sau:

(i). Khóa xác thực K và mã ngẫu nhiên RS sẽ tạo ra hai khóa phiên KS và KS’ thông qua các thuật toán TA11 và TA21.

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

52

(ii). Các khóa phiên và mã ngẫu nhiên RS được gửi tới trạm gốc TBS. Sau đó trạm gốc TBS sẽ tạo ra mã ngẫu nhiên RAND1 và gửi nó tới thiết bị đầu cuối MS cùng với mã RS nói trên. Thiết bị đầu cuối MS sẽ tạo ra các khóa phiên và tính toán mã phản hồi RES1, sau đó mã phản hồi này sẽ được gửi tới trạm gốc TBS.

(iii). Nếu người dùng quyết định việc xác thực tương hỗ thì MS đồng thời cũng tạo và sau đó gửi mã ngẫu nhiên RAND2 tới trạm gốc TBS.

(iv). Trạm gốc TBS sẽ so sánh RES1 với XRES1, và nếu hai giá trị này bằng nhau thì trạm gốc sẽ tính toán để tạo mã RES2 nhờ thuật toán TA22. Kết quả trả về là RES2 và R1 có giá trị TRUE.

(v). RES2 được so sánh với XRES2 bởi thiết bị đầu cuối MS và nếu giống nhau MS sẽ trả về kết quả là R2 bằng TRUE. Quá trình xác thực tương hỗ hoàn tất. DCK1 và DCK2 được tạo ra trong các quá trình trên sẽ được dùng để tạo ra khóa mã dẫn xuất DCK thông qua thuật toán TB4.

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

53

Quá trình xác thực tương hỗ được khởi tạo bởi người dùng được chỉ ra trên hình 3.9. Quá trình này tương tự với quá trình vừa trình bày ở trên.

3.4.3. Phân tích giao thức xác thực

Trong suốt quá trình xác thực, khóa xác thực K không bao giờ được sử dụng trực tiếp hay được truyền qua kênh vô tuyến. Thay vào đó, các khóa phiên được sử dụng trong quá trình này. Cơ chế này nhằm bảo vệ khóa xác thực K.

Có ba số ngẫu nhiên liên quan tới quá trình xác thực tương hỗ đó là RS, RAND1 và RAND2. Việc sử dụng ba số ngẫu nhiên này gây khó khăn cho những kẻ có ý định tấn công mạng đặc biệt trong trường hợp replay attack, đây một hình thức tấn công mạng trong đó kẻ tấn công sẽ tiến hành lắng nghe trên đường truyền của nạn nhân. Khi nạn nhân trao đổi các thông tin quan trọng thì kẻ tấn công sẽ chặn các gói tin đó lại. Các gói tin bị bắt không bị kẻ tấn công thay đổi nội dung mà giữ nguyên đến một thời điểm thích hợp nào đó sẽ gửi gói tin đó đi giả dạng như nó được gửi từ người gửi hợp lệ mà nạn nhân vẫn không hề hay biết. Một lỗ hổng trong giao thức xác thực là không đảm bảo được tính toàn vẹn dữ liệu của các bản tin xác thực. Một trạm gốc giả có thể dễ dàng ngăn chặn và sửa đổi các bản tin xác thực, điều này sẽ dẫn tới quá trình xác thực thất bại. Tùy vào ý định của những kẻ tấn công, với cùng một kiểu tấn công cơ bản có thể gây ra những ảnh hưởng khác nhau đến hệ thống và người sử dụng.

Tuy nhiên việc thiết lập một trạm gốc TBS giả để chỉnh sửa các bản tin xác thực cho từng cá nhân người dùng dường như không phải là một cách tấn công hiệu quả. Có lẽ tấn công từ chối dịch vụ DoS (Deny of Service) là một hình thức tấn công hiệu quả hơn khi mà kẻ tấn công chỉ cần liên tục phát đi một tín hiệu với cường độ lớn trong băng tần hoạt động của hệ thống mạng TETRA khi đó người dùng sẽ không thể truy cập vào được hệ thống. Tuy nhiên hình thức tấn công lại rất dễ bị phát hiện và người dùng có thể dễ dàng chuyển sang một vùng sóng khác tốt hơn để thực hiện truy cập hệ thống.

Mức độ bảo mật phụ thuộc rất nhiều vào các thuật toán: TA11, TA12, TA21 và TA22. Như đã đề cập trong tài liệu [13], khi một thiết bị đầu cuối MS chuyển

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 44)