III. Mật mã khoá công khai (bất đối xứng)
2. Một số kỹ thuật phân phối khoá công khai
Như chúng ta đã biết, trong mật mã khoá công khai, người dùng có thể công khai khoá mã để cho tất cả những người dùng khác mã hoá thông báo gửi cho họ. Tuy nhiên việc công bố khoá công khai cũng đòi hỏi những điều kiện nhất định. trong phần này chúng ta tìm hiểu các kỹ thuật phân phối khoá công khai.
a. Thông báo công khai khoá công khai
Mỗi người dùng của hệ mật khoá công khai có thể gửi hoặc phát khoá công khai của anh ta cho mọi người dùng khác trên mạng.
Hạn chế cơ bản của kỹ thuật này là bất kỳ ai cũng có thể giả mạo thông báo công khai này. Bất kỳ ai cũng đóng giả một người dùng A khác và gửi khoá công khai đi
Bản rõ
Bản rõ Mã hoáMã hoá Bản mã Giải mãGiải mã Bản rõBản rõ
Khoá bí mật (KR) Khoá bí mật (KR)
Khoá dùng để mã hoá và giải mã là khác nhau
Khoá công khai (KU) Khoá công khai (KU)
với tư cách là A. Mọi thông tin gửi đến A đều bị nghe trộm thậm chí cả khoá xác thực cũng bị giả mạo.
b. Thư mục chung khoá công khai
Duy trì những thư mục động công khai trên mạng. Việc duy trì và phân phối thư mục động giao cho một thực thể hoặc tổ chức được tin cậy được gọi là người thẩm quyền (Authority).
Cơ chế hoạt động của kỹ thuật thư mục chung khoá công khai như sau:
- Người thẩm quyền duy trì một thư mục với một đầu vào (tên, khoá công khai) cho mỗi thành viên.
- Mỗi thành viên đăng ký một khoá công khai với người thẩm quyền. Việc đăng ký có thể là đưa trực tiếp hoặc qua kênh truyền thông xác thực an toàn.
- Một thành viên có thể thay thế khoá công khai hiện tại đã được dùng cho một số lớn dữ liệu hoặc do khoá bí mật tương ứng bị tổn thương.
- Định kỳ, người thẩm quyền công bố toàn bộ thư mục hoặc cập nhật thư mục.
- Các thành viên có thể truy nhập thư mục qua phương tiện điện tử. Để thực hiện điều này cần có một kênh truyền thông xác thực an toàn từ người thẩm quyền tới các thành viên.
Sơ đồ này an toàn hơn các thông báo khoá công khai trước kia nhưng vẫn bị tổn thương. Nếu kẻ địch đạt được hoặc tính được khoá bí mật của người chủ thư mục anh ta có thể trao đổi các khoá công khai và đóng giả làm bất kỳ thành viên nào để nghe trộm các thông báo gửi tới thành viên bất kỳ nào. Kẻ địch có thể thay đổi các bản ghi được giữ bởi người có thẩm quyền.
c. Thẩm quyền khoá công khai
Kỹ thuật này có độ an toàn cao hơn kỹ thuật thư mục chung khoá công khai. Nhà thẩm quyền trung tâm duy trì thư mục động các khoá công khai của tất cả các thành viên. Mỗi thành viên đều biết một cách tin cậy khoá công khai của người có thẩm quyền nhưng chỉ có người có thẩm quyền biết khoá bí mật.
Khoá công khai được phân phối an toàn cho A và B nhờ xác thực dùng khoá công khai của người có thẩm quyền.
Cơ chế hoạt động như sau:
- A gửi một thông báo có tem thời gian tới người thẩm quyền khoá công khai để đòi hỏi khoá công khai của B.
- Người thẩm quyền gửi lại A một thông báo được mã dùng khoá riêng KRauth của thẩm quyền khoá công khai. Như vậy A có thể giải mã dùng khoá công khai của Người thẩm quyền. Thông báo bao gồm :
• Khoá công khai KUb của B mà A có thể dùng để mã thông báo cho B.
• Đòi hỏi nguyên bản của A để A xác định được đòi hỏi tương ứng trước đó và để xác nhận rằng đòi hỏi ban đầu không thay đổi trước khi được Người thẩm quyền chấp nhận.
• Tem thời gian nguyên bản, như vậy A có thể xác định rằng đây không phải là một thông báo cũ từ Người thẩm quyền chứa một khoá khác khoá công khai hiện tại của B.
- A lưu giữ khoá công khai của B và dùng nó để mã một thông báo tới B chứa định danh IDA của A và một giá trị nonce (N1), được dùng để định danh duy nhất giao dịch này.
- B thu được khoá công khai của A từ Người thẩm quyền theo cùng cách thức như A lấy được khoá công khai của B.
- B gửi một thông báo tới A được mã bằng KUa và chứa giá trị N1 của A và N2 mới được sinh của B. Vì chỉ có B mới có thể giải mã thông báo (3) nên sự có mặt của N1 trong thông báo (6) đảm bảo với A rằng người đáp ứng là B.
- A gửi trả lại N2 được mã bằng khoá công khai của B để đảm bảo rằng người đáp ứng là A.
Như vậy có 7 thông báo được đòi hỏi. Tuy nhiên 4 thông báo khởi tạo được dùng không thường xuyên vì cả A và B có thể lưu lại khoá công khai của người khác để dùng lại. Định kỳ, một người dùng phải đòi hỏi một bản sao mới của các khoá công khai của các thành viên tương ứng.
Người thiết kế hệ thống cần xây dựng bộ phần mềm có chức năng thực hiện kỹ thuật thẩm quyền khoá công khai. Bộ phần mềm này gồm có hai thành chính là thành phần chạy trên máy Thẩm quyền khoá công khai đóng vai trò người phân phối khoá, thành phần thứ hai được cài trên các máy khách hàng (n máy). Các máy này được kết nối với nhau qua kênh truyền công khai.
Các máy khách hàng đã có khoá công khai của Thẩm quyền khoá công khai được phân phối một cách tin cậy từ trước.
Giả sử hai máy khách hàng A và B bất kỳ muốn nhận được khoá công khai của nhau để thiết lập một kết nối an toàn. Mỗi máy có một định danh IDa và IDb. Để tiến hành phân phối khoá công khai các thành phần của bộ phần mềm của kỹ thuật Thẩm quyền khoá công khai trên 3 máy Thẩm quyền khoá công khai, máy A và máy B sẽ được kích hoạt và thực hiện theo đúng các bước như đã chỉ ra trong sơ đồ. Kết quả là các máy A và B đã xác thực lẫn nhau và cùng nhận được khoá công khai của nhau một cách tin cậy để thiết lập phiên kết nối an toàn. Tương tự như vậy đối với các cặp máy khách hàng khác.
d. Chứng chỉ khoá công khai
Trong sơ đồ thẩm quyền khoá công khai còn có hạn chế khi người dùng yêu cầu người uỷ quyền cung cấp khoá công khai của tất cả các người dùng khác mà nó muốn kết nối sẽ gây ra hiện tượng quá tải thắt cổ chai trong hệ thống. Sơ đồ trao đổi chứng chỉ khoá công khai tạo ra các chứng chỉ được dùng bởi các thành viên để trao đổi khoá không cần giao tiếp với người có thẩm quyền nhưng lại giống như khoá được trao trực tiếp từ người có thẩm quyền khoá công khai.
Mỗi chứng chỉ chứa khoá công khai và thông tin liên quan được tạo ra bởi người có thẩm quyền và được giao cho thành viên với khoá bí mật phù hợp tương ứng. Thành viên này truyền thông tin khoá của mình đến thành viên khác chính là chứng chỉ của mình. Thành viên khác có thể kiểm tra xem chứng chỉ có được tạo ra bởi người có thẩm quyền không bằng cách dùng khoá công khai của người có thẩm quyền để giải mã chứng chỉ.
Đây thực ra là quá trình xác thực chữ ký của người có thẩm quyền vì ai cũng giải mã được thông tin trong chứng chỉ nhưng phải dùng khoá công khai của người có thẩm quyền.
Một kẻ xấu biết được khoá bí mật của A. Khi A sinh ra một cặp khoá mới và xin người thẩm quyền cấp một chứng chỉ mới, kẻ xấu dùng lại chứng chỉ cũ của A và gửi cho B. Nếu B mã thông báo dùng khoá công khai cũ thì kẻ xấu có thể đọc các thông báo này.
Các yêu cầu đối với sơ đồ trên là:
- Một thành viên bất kỳ có thể đọc một chứng chỉ để xác định tên và khoá công khai của người chủ của chứng chỉ.
- Thành viên bất kỳ có thể xác nhận rằng chứng chỉ là nguyên bản từ người thẩm quyền chứng chỉ và không bị giả.
- Chỉ người thẩm quyền chứng chỉ mới có thể đọc và cập nhật chứng chỉ.
- Thành viên bất kỳ có thể xác nhận thời gian lưu hành của chứng chỉ.