Lược đồ phân phối khoá công khai

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu ứng dụng hạ tầng cơ sở mật mã khoá công khai cho hệ thống đấu thầu qua mạng (Trang 59 - 61)

Các bước thực hiện như sau:

- A gửi một thông báo có gán nhãn thời gian cho cơ quan quản lý khoá công khai, yêu cầu khoá công khai hiện thời của B.

- Cơ quan quản lý trả lời bằng một thông báo. Thông báo này được mã hoá bằng khoá riêng của cơ quan quản lý, KRauth. Như vậy, A có khả năng giải mã thông báo bằng cách sử dụng khoá công khai của cơ quan quản lý, A được đảm bảo rằng thông báo có nguồn gốc từ cơ quan quản lý. Thông báo gồm có:

o Khoá công khai của B là KUb - A có thể sử dụng nó để mã hoá các thông báo gửi cho B.

o Yêu cầu gốc - A so khớp yêu cầu này với yêu cầu A đã gửi đi trước đó, nhờ đó A có thể biết yêu cầu gốc có bị sửa đổi trước khi cơ quan quản lý nhận được hay không. Nhãn thời gian gốc - cho phép A xác định: đây không phải là một thông báo cũ mà là thông báo có chứa khoá công khai hiện thời của B.

- A lưu giữ khoá công khai của B và sử dụng nó để mã hoá một thông báo gửi cho B, thông báo này có chứa tên của A (IDA) và một nonce (N1) được sử dụng để nhận dạng giao dịch này.

- B lấy khoá công khai của A từ cơ quan quản lý (tương tự như A lấy khoá công khai của B).

Đến lúc này, các khoá công khai được chuyển giao an toàn cho A và B, họ có thể trao đổi với nhau. Tuy nhiên, 2 bước sau được bổ xung thêm (tuỳ chọn):

- B gửi một thông báo cho A, thông báo này được mã hoá bằng KUa và có chứa N1 của A và một nonce mới (N2) do B sinh ra. Do chỉ có B mới có thể giải mã thông báo (3) và sự có mặt của N1 trong thông báo (6) đảm bảo với A rằng B chính là người A đang liên lạc.

- A trả lại N2 được mã hoá bằng khoá công khai của B, đảm bảo với B rằng A chính là người B đang liên lạc.

Sử dụng mã hoá khoá công khai để phân phối khoá bí mật

Việc sử dụng khoá công khai có thể ngăn chặn tình trạng nghe trộm, giả mạo. Tuy nhiên, do thời gian mã hoá và giải mã lớn nên trong một số trường hợp mã hoá đối xứng vẫn được ưa chuộng hơn. Khi đó mã khoá công khai được sử dụng để phân phối khoá bí mật cho mã hoá đối xứng.

Phân phối khoá bí mật đơn giản

Merkle đưa ra một lược đồ rất đơn giản (được minh hoạ trong hình 4.11).

Nếu A muốn truyền thông với B, thủ tục được thực hiện như sau:

- A tạo ra một cặp khoá {KUa, KRa} và truyền thông báo cho B. Thông báo gồm KUa và tên của A (IDA).

- B tạo ra khoá bí mật (Ks) và truyền cho A. Khoá được mã bằng khoá công khai của A. A tính toán DKRa[EKUa[Ks]] để khôi phục lại khoá bí mật. Chỉ A mới có thể giải mã thông báo. Chỉ A và B biết được Ks. A huỷ bỏ KUa và KRa, B huỷ bỏ KUa.

Từ đây, A và B có thể truyền thông an toàn bằng cách sử dụng mã đối xứng và khoá phiên Ks. Sau khi trao đổi xong, A và B cùng huỷ bỏ Ks. Tuy đơn giản nhưng nó là một giao thức hấp dẫn. Không có khoá nào tồn tại trước khi liên lạc và cũng không có khoá nào tồn tại sau khi kết thúc liên lạc. Do đó, rủi ro lộ khoá sẽ rất nhỏ. Tại thời điểm này, liên lạc được đảm bảo không bị nghe trộm.

Tuy nhiên phương pháp phân phối khoá đơn giản như trên có điểm yếu là rất dễ bị tấn công chủ động. Giả sử E có thể kiểm soát được kênh truyền thông, E có thể dàn xếp cuộc truyền thông mà không bị phát hiện, theo hình thức sau đây:

 A sinh ra một cặp {KUa, KRa} và truyền một thông báo cho B. Thông báo gồm có KUa và tên của A (IDA). E chặn lấy thông báo, tạo ra một cặp {KUe, KRe} của nó và truyền KUe || IDA cho B. B sinh ra một khoá bí mật, Ks, và truyền EKUe[Ks]

 E chặn lấy thông báo, biết được Ks bằng cách tính toán DKRe[EKUe[ Ks]]. E truyền EKUa[ Ks] cho A.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu ứng dụng hạ tầng cơ sở mật mã khoá công khai cho hệ thống đấu thầu qua mạng (Trang 59 - 61)