Tiêu chuẩn quốc gia Việt Nam về Quản lý khóa
Ví dụ, nếu chúng ta sử dụng cùng một khóa để mã hóa nhiều thông điệp trong một thời gian dài thì kẻ tấn công có thể thu thập được một số lượng bản mã nhất định, sau đó nhờ vào việc khai thác thông tin liên quan đến những thông điệp đã dùng mà kẻ tấn công có thể khám phá ra tất cả hoặc một phần của khóa. Nếu một khóa bị lộ vì lý do nào đó thì sẽ gây ra sự nguy hiểm tiềm ẩn cho những thành phần còn sử dụng khóa. Do đó, vấn đề quan trọng là quản lý các khoá mã. Quản lý khóa (key management) chính là thuật ngữ dùng để nói đến toàn bộ hoạt động liên quan đến một vòng đời (life-cycle) của khóa như việc sinh khóa, phân phối, sử dụng, lưu trữ và hủy bỏ khóa.
Trên cơ sở mục tiêu của quản lý khóa là quản trị và sử dụng an toàn các dịch vụ khóa, cần duy trì các quan hệ về khóa và dữ liệu khóa trong môi trường tiềm ẩn các nguy cơ bị tấn công. Bởi vậy Quản lý khóa được xem là tập hợp các kỹ thuật và thủ tục hỗ trợ cho việc thiết lập và duy trì các mối quan hệ về khóa giữa các bên có thẩm quyền.
Phân phối khoá là một quá trình đặc biệt quan trọng trong quản lý khóa, bởi trong khi quá trình tạo khóa và tích luỹ khóa thường được tập trung tại một trung tâm và được bảo vệ chặt chẽ thì quá trình phân phối khóa là lúc có thể xảy ra các sơ hở để những đối tượng không có thẩm quyền tấn công nhằm sở hữu trái phép khóa mã. Mặt khác, một hệ thống thông tin mật có được vận hành hoàn hảo hay không phụ thuộc chủ yếu vào quá trình phân phối khóa. Vì vậy, phân phối khóa cần đảm bảo tính chính xác, linh hoạt và các khóa cần được bảo vệ một cách an toàn nhất.
Quản lý khóa đóng một vai trò hết sức quan trọng trong mật mã, nó là cơ sở an toàn cho các kỹ thuật mật mã được sử dụng nhằm cung cấp tính bí mật, xác thực thực thể, xác thực nguồn gốc dữ liệu, toàn vẹn dữ liệu và chữ ký số. Các thủ tục quản lý khóa phụ thuộc vào các cơ chế mật mã được dùng đến, ý định sử dụng khóa và chính sách an toàn được áp dụng. Quản lý khóa cũng bao gồm cả các chức năng được thi hành trong một thiết bị mật mã.
Theo xu thế phát triển, quản lý khóa dần được tiêu chuẩn hóa nhằm đưa đến các cơ chế sử dụng thống nhất đáp ứng vấn đề tương thích giữa các hệ thống sử dụng kỹ thuật mật mã. Các tiêu chuẩn về quản lý khóa đã được đưa ra nhằm giúp người dùng có được các cơ chế thỏa thuận và trao đổi khóa dựa trên các nghiên cứu mang tính khoa học.
Qua quá trình xem xét trên nhiều khía cạnh, năm 2007 Ban Cơ yếu Chính phủ đã đề xuất ban hành 2 Tiêu chuẩn quốc gia Việt Nam về Quản lý khóa dựa trên bộ tiêu chuẩn ISO/IEC 11770. Ngày 31/12/2007, Bộ trưởng Bộ Khoa học và Công nghệ đã ký quyết định số 3223/QĐ-BKHCN về việc công bố 5 tiêu chuẩn quốc gia về mật mã, trong đó có các tiêu chuẩn về quản lý khóa là TCVN 7817- 1: 2007 Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa - Phần 1: Khung tổng quát (dựa trên tiêu chuẩn ISO/IEC 11770-1) và TCVN 7817- 3: 2007 Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khoá - Phần 3: Các cơ chế sử dụng kỹ thuật phi đối xứng (dựa trên tiêu chuẩn ISO/IEC 11770-3).
1. Tiêu chuẩn Quản lý khóa - Phần Khung tổng quát
Mục đích của Tiêu chuẩn TCVN 7817- 1: 2007 là đưa ra khuôn mẫu chung nhất sử dụng cho các dịch vụ quản lý khóa không phụ thuộc vào thuật toán. Các đặc tả liên quan đến thuật toán có thể tìm thấy ở các phần khác của bộ tiêu chuẩn đa phần về quản lý khóa.
Tiêu chuẩn này bao gồm các phần sau:
- Phạm vi: Xác định các nội dung quy định bởi Tiêu chuẩn, chỉ rõ tiêu chuẩn này quy định những vấn đề gì và những vấn đề nào có liên quan nhưng không được đề cập trong tiêu chuẩn này.
- Tài liệu viện dẫn: Liệt kê danh sách bao gồm 3 tiêu chuẩn ISO/IEC liên quan đến nội dung đề cập của tiêu chuẩn này là ISO 7498-2:1989, ISO/IEC 9798-1:1991 và ISO/IEC10181-1:1996.
- Thuật ngữ và định nghĩa: Đưa ra một số thuật ngữ được sử dụng trong Tiêu chuẩn và định nghĩa các thuật ngữ này (gồm 22 thuật ngữ).
- Thảo luận chung về Quản lý khóa: Thảo luận về vấn đề bảo vệ khóa và các phương pháp bảo vệ khóa bao gồm: ba trạng thái trong một chu kỳ khóa: Chờ kích hoạt, Đang kích hoạt và Sau hoạt động; các dịch vụ liên quan trong một chu kỳ khóa.
- Các khái niệm về Quản lý khóa: Đề cập chi tiết đến các dịch vụ quản lý khóa, bao gồm 11 dịch vụ: sinh khóa, đăng ký khóa, tạo chứng chỉ khóa, phân phối khóa, cài đặt khóa, lưu trữ khóa, truy nguồn gốc khóa, cất giữ khóa, thu hồi khóa, bỏ đăng ký khóa và hủy bỏ khóa. Tiếp theo đề cập đến các dịch vụ liên quan đến phương tiện quản lý khóa như điều khiển truy cập, kiểm toán, xác thực, dịch vụ mật mã và tem thời gian.
- Các mô hình khái niệm về Phân phối khóa: Phần này đề cập đến các cơ chế phân phối khóa theo ba mô hình truyền thông: phân phối khóa giữa hai thực thể liên lạc trực tiếp với nhau; phân phối khóa giữa hai thực thể cùng nằm trong một miền thông qua bên thứ ba được ủy quyền phân phối; phân phối khóa giữa hai thực thể thuộc hai miền thông qua các bên thứ ba được ủy quyền phân phối.
- Phần cuối gồm 5 phụ lục: Phụ lục A - Các mối đe dọa đối với Quản lý khóa; Phụ lục B - Các đối tượng thông tin về Quản lý khóa; Phụ lục C - Phân lớp các ứng dụng mật mã; Phụ lục D - Quản lý chu kỳ số của Chứng chỉ số; Phụ lục E - Tài liệu tham khảo.
Đây là tiêu chuẩn ở dạng khung nhằm hỗ trợ cho các phần sau của bộ tiêu chuẩn về quản lý khóa nên hầu hết khái niệm trong tiêu chuẩn đều đã được giải thích tường minh. Do đó, bài viết này không đề cập đến nội dung chi tiết của tiêu chuẩn mà chỉ làm sáng tỏ một số vấn đề còn chưa đầy đủ hoặc dễ gây nhầm lẫn.
Tiêu chuẩn này đề cập đến hai dạng xác thực là Xác thực thực thể (entity authentication) và Xác thực nguồn gốc dữ liệu (data origin authentication). Chúng ta cần phân biệt hai khái niệm này. Xác thực thực thể là việc đưa ra sự chứng thực rằng một thực thể là đúng như nó khai báo. Trong khi xác thực nguồn gốc dữ liệu lại đưa ra chứng thực rằng nguồn gốc dữ liệu nhận được là đúng như nó khai báo. Hai dạng xác thực này đều được sử dụng trong quản lý khóa. Xác thực thực thể sử dụng trong trường hợp như sau: giả sử thực thể A và thực thể B cần thỏa thuận khóa với nhau, thực thể A có thể yêu cầu thực thể B phải xác thực thực thể, nghĩa là cần đưa ra căn cứ chứng minh rằng thực thể B đúng là thực thể B, A đang giao tác với chính B chứ không ai khác. Xác thực nguồn gốc dữ liệu sử dụng trong trường hợp cần biết chính xác một thành phần dữ liệu thuộc về ai. Ví dụ A nhận được một khối thông tin khóa và A muốn biết chính xác khối thông tin khóa này xuất phát từ đâu, vậy thì A cần yêu cầu một sự xác thực nguồn gốc khóa.
Xác thực thực thể có thể thực hiện theo một chiều (từ A đến B) hoặc hai chiều (A đến B và B đến A), trong trường hợp hai chiều gọi là xác thực thực thể lẫn nhau (mutual entity authentication).
Trong Tiêu chuẩn, còn sử dụng 3 khái niệm về khóa là: Khóa bí mật (secrec key), Khóa riêng (private key) và Khóa công khai (public key). Khóa bí mật là khóa dùng trong hệ mật đối xứng, luôn được giữ bí mật. Khóa riêng và Khóa công khai là hai thành phần thuộc một cặp khóa phi đối xứng sử dụng trong hệ mật phi đối xứng, trong đó thành phần Khóa riêng được giữ bí mật còn thành phần Khóa công khai được công bố cho các thành viên của hệ thống biết. Tuy nhiên, trong ngôn ngữ tiếng Việt, đôi khi từ “private key” cũng được dịch là khóa bí mật (vì “private” cũng có nghĩa là “bí mật”, “giữ kín”) do đó dễ gây nhầm lẫn cho người áp dụng. Vì thế cần thống nhất sử dụng tách biệt hai khái niệm trong tiêu chuẩn này.
Ngoài ra, còn một số thuật ngữ khác như: Thiết lập khóa (key establishment): là quá trình tạo một khóa dùng chung cho các thực thể. Thiết lập khóa bao gồm Vận chuyển khóa (key transport) và Thoả thuận khóa (key agreement). Vận chuyển khóa là quá trình chuyển một khóa từ một thực thể tới một thực thể khác trong quá trình thực thi một lược đồ quản lý khóa hay chính là việc một bên sinh khóa (phiên) và chuyển an toàn tới bên kia. Thoả thuận khóa là quá trình thiết lập khóa bí mật dùng chung giữa hai thực thể A và B bằng một phương pháp trong đó cả hai thực thể không thể xác định trước được giá trị của khóa.
Khi nói tới Thoả thuận khóa thực ra là đã nói tới Giao thức Thoả thuận khóa (key agreement protocol). Giao thức Thoả thuận khóa là một lĩnh vực rất rộng. Nó là một trong những Nguyên thuỷ mật mã (cryptographic primitive) quan trọng được xây dựng trên một số nguyên thủy mật mã cơ sở (Chữ ký số, Hàm băm, Mã khối, Mã xác thực thông báo,...), người ta có thể sử dụng Chữ ký số, Mã khối,... để xây dựng nên giao thức Thoả thuận khóa.
2. Tiêu chuẩn Quản lý khóa - Phần Các cơ chế sử dụng kỹ thuật phi đối xứng
Tiêu chuẩn TCVN 7817- 3: 2007 đưa ra các cơ chế quản lý khóa dựa trên kỹ thuật mật mã phi đối xứng, bao gồm các cơ chế thiết lập khóa thuộc các nhóm sau:
- Các cơ chế thiết lập khóa bí mật dùng chung sử dụng cho kỹ thuật mật mã đối xứng giữa hai thực thể bằng việc thỏa thuận khóa, trong đó đòi hỏi rằng không một phía nào trong hai thực thể có thể xác định được khóa dùng chung trước khi thỏa thuận.
- Các cơ chế thiết lập khóa bí mật dùng chung sử dụng cho kỹ thuật mật mã đối xứng giữa hai thực thể bằng việc vận chuyển khóa, trong đó việc vận chuyển khóa được bảo vệ bằng kỹ thuật mật mã phi đối xứng.
- Các cơ chế tạo khóa công khai khả dụng của thực thể này đối với thực thể khác bằng việc vận chuyển khóa.
Tiêu chuẩn này gồm các phần sau:
- Phạm vi: Xác định các nội dung quy định bởi tiêu chuẩn. Chỉ rõ tiêu chuẩn này quy định những vấn đề gì và những vấn đề nào có liên quan nhưng không được đề cập trong tiêu chuẩn này.
- Tài liệu viện dẫn: Liệt kê danh sách bao gồm 6 tiêu chuẩn ISO/IEC liên quan đến nội dung đề cập của tiêu chuẩn này là ISO 7498-2:1989, ISO/IEC 9594-8:1995, ISO/IEC 9798-3:1998, ISO/IEC 10118-1:1994, ISO/IEC10181-1:1996 và ISO/IEC 11770-1:1996.
- Định nghĩa và thuật ngữ: giải thích 33 thuật ngữ sử dụng cho tiêu chuẩn này.
- Ký hiệu và từ viết tắt: Đưa ra các ký hiệu sử dụng trong các biểu thức hoặc lối diễn đạt của tiêu chuẩn. Các ký hiệu này phần lớn là ký hiệu toán học hoặc tên định danh của các thực thể.
- Yêu cầu: Nêu ra yêu cầu giả định về định danh thực thể trong các cơ chế quản lý khóa.
- Thỏa thuận khóa bí mật: Nội dung phần này trình bày 7 cơ chế thỏa thuận khóa bí mật chia sẻ giữa hai thực thể bằng cách sử dụng kỹ thuật mật mã phi đối xứng.
- Vận chuyển khóa bí mật: Phần này trình bày 6 cơ chế vận chuyển khóa bí mật giữa hai thực thể sử dụng kỹ thuật mật mã phi đối xứng.
- Vận chuyển khóa công khai: Phần này trình bày 3 cơ chế vận chuyển khóa công khai sử dụng kỹ thuật phi đối xứng. Các khóa công khai này có thể được dùng trong các cơ chế thỏa thuận và vận chuyển khóa hoặc được dùng trong các dịch vụ mật mã khác.
- Phần cuối gồm 4 phụ lục: Phụ lục A - Tính chất của các cơ chế thiết lập khóa, Phụ lục B - Các ví dụ về cơ chế thiết lập khóa, Phụ lục C - Các ví dụ về cơ chế thiết lập khóa dựa trên đường cong elliptic, Phụ lục D - Tài liệu tham khảo.
Như vậy TCVN 7817 - 3: 2007 khuyến cáo 7 cơ chế thỏa thuận khóa bí mật, 6 cơ chế vận chuyển khóa bí mật và 3 cơ chế vận chuyển khóa công khai. Các cơ chế này đều dựa trên kỹ thuật mật mã phi đốii xứng. Với nhiều tính chất đặc biệt, kỹ thuật mật mã khóa công khai là phương tiện phù hợp với việc xây dựng các cơ chế thiết lập khóa: dùng mật mã khóa công khai có thể thiết lập khóa không cần giao tác, tạo chữ ký số để xác thực thực thể, nội dung thông tin, chống chối bỏ v.v. Yếu tố cốt lõi trong kỹ thuật này là mỗi chủ thể A sử dụng một cặp khóa, khóa công khai EA và khóa bí mật DA. Hai khóa này được xác định theo cùng một thuật toán, liên quan nhau theo hệ thức EADA= I (với I là ánh xạ đồng nhất) và thỏa mãn tính chất có ý nghĩa quyết định đối với tính an toàn khi sử dụng mật mã khóa công khai: biết E không thể suy ra D. Khóa E được công khai và có khả năng truy cập đối với tất cả mọi người trong hệ thống. Khóa mật D được người dùng giữ bí mật. Kỹ thuật mật mã phi đối xứng sử dụng hai phép biến đổi là phép biến đổi công khai (phụ thuộc vào khóa công khai) và phép biến đổi bí mật (phụ thuộc vào khóa mật). Do tính chất đã nêu của cặp khóa, biết phép biến đổi công khai không thể tính toán ra được phép biến đổi bí mật.
Tình huống thiết lập khóa rất đa dạng, do đó người ta đề xuất nhiều cơ chế và mỗi cơ chế nhằm đáp ứng các yêu cầu nhất định do thực tiễn liên lạc đòi hỏi. Cơ chế thỏa thuận khóa thường được sử dụng trong các tình huống khi các thực thể trao đổi thông tin mật với nhau nhưng không đủ tin cậy nhau để cho phép một bên hoàn toàn tạo ra khóa và gửi cho bên kia. Trái lại cơ chế vận chuyển khóa lại sử dụng cho những tình huống các bên lạc hoàn toàn tin cậy nhau. Bởi vậy theo cơ chế này, trước hết khóa được một bên tin cậy sinh, sau đó chuyển cho phía bên kia.
Mỗi cơ chế được thiết lập để đáp ứng những yêu cầu nhất định một hoặc một số nội dung sau: Số lần truyền, xác thực thực thể, xác thực khóa, xác nhận khóa và kiểm soát khóa.
- Số lần truyền: Là số lần giao tác qua lại giữa hai thực thể tham gia trao đổi thông tin.
- Số thao tác khoá công khai: Là số lượng phép biến đổi mà các thực thể phải thực hiện khi sử dụng kỹ thuật phi đối xứng. Ví dụ kí hiệu số lượng thao tác khóa công khai (2,1) có nghĩa là thực thể A cần hai phép tính toán với hàm F, B cần một phép tính toán với hàm F.
Xác thực thực thể (entity authentication): Xác thực thực thể là một khía cạnh của vấn đề xác thực thông tin. Đó là sự kiểm tra và khẳng định tính chân thực của thực thể trong quá trình trao đổi thông tin. Ít nhất một trong hai thực thể tham gia vào quá trình trao đổi thông tin phải được đảm bảo về tính chân thực của thực thể kia.
Xác thực khóa (key authentication): Xác thực khóa được chia thành xác thực khóa ẩn (implicit key authentication) và xác thực khóa hiện (explicit key authentication). Xác thực khóa ẩn từ A đến B là đảm bảo cho B rằng thực thể A chính là thực thể có khả năng sở hữu khóa đúng (tức là khóa dùng chung mà hai bên đã thiết lập). Xác thực khóa hiện từ A sang B đảm bảo cho B rằng A chính là thực thể đang sở hữu khóa đúng (tức là A đã nhận được hoặc đã tính được khóa dùng chung). Sự khác nhau giữa hai dạng xác thực này là ở chỗ trong xác thực khóa hiện không chỉ đảm bảo cho B rằng A có khả năng sở hữu khóa mà đảm bảo rằng B thật sự đã sở hữu khóa.
Xác nhận khóa (key confirmation); Xác nhận khóa từ A đến B là đảm bảo cho B rằng thực thể A đang sở hữu khóa đúng. Xác nhận khóa có thể đạt được bằng nhiều cách. Như vậy xác thực khóa hiện bao gồm xác thực khóa ẩn và xác nhận khóa
Kiểm soát khóa (key control): Là khả năng lựa chọn khóa hoặc tham số sử dụng trong việc tính toán khóa. Nói một cách đơn giản thì thực thể được coi là kiểm soát được khóa nếu anh ta có khả năng chọn được khóa trước khi khóa được thiết lập.
Nhìn chung các cơ chế thỏa thuận khóa hoặc truyền khóa được đưa ra trong tiêu chuẩn này có nội dung được cấu trúc tương đối giống nhau: Phần đầu của cơ chế là một lời giới thiệu cho biết cơ chế này là cơ chế thỏa thuận khóa hay cơ chế vận chuyển khóa, cơ chế được thực hiện qua một hay nhiều bước truyền (pass), có sự xác thực khóa ra sao (thông thường là xác thực khóa ẩn), có cung cấp tính xác thực thực thể hay không, có sự kiểm soát khóa như thế nào. Phần tiếp theo đưa ra các yêu cầu đối với cơ chế, liệt kê các điều kiện tiên quyết để có thể thực hiện được cơ chế. Tùy thuộc vào từng cơ chế sẽ có số lượng các yêu cầu khác nhau. Tiếp đến là phần mô tả cơ chế, bao gồm một hình vẽ và các thuyết minh mô tả cơ chế. Cuối cùng là phần tổng kết các tính chất của cơ chế.
Các tiêu chuẩn: TCVN 7817 -1 và TCVN 7817- 3 phải được áp dụng cùng với các tiêu chuẩn khác đưa ra ở phần “Tài liệu viện dẫn”. Đối với các tiêu chuẩn quốc tế do ISO/IEC ban hành nếu đã được công bố lại dưới dạng Tiêu chuẩn quốc gia Việt Nam (TCVN) thì áp dụng TCVN tương ứng. Nếu chưa được công bố lại dưới dạng TCVN thì áp dụng bản tiêu chuẩn do ISO hoặc ISO/IEC ban hành.
Việc thực thi áp dụng các tiêu chuẩn này đòi hỏi có sự hướng dẫn của các cơ quan chuyên ngành có liên quan. Ban Cơ yếu Chính phủ sẽ có trách nhiệm hướng dẫn áp dụng các Tiêu chuẩn quốc gia này đối với các sản phẩm, dịch vụ mật mã tại Việt Nam.