Trao đổi khóa

In document AN TOÀN VÀ BẢO MẬT THÔNG TIN (Page 72-75)

CHƯƠNG 4. MÃ HÓA KHÓA CÔNG KHAI

4.6 Trao đổi khóa

KRB

KRA

mã hóa

chứng thực mã hóa

bảo mật giải mã

bảo mật giải mã chứng thực

KUA

KUB

Alice kênh truyền Bob

M C M

M

C

bộ sinh khóa

E D Bob

Alice M

KUA

kênh thường

KRA kênh thường

M

C

bộ sinh khóa

E D Bob

Alice M

KUB

kênh thường

KRB

kênh thường

73 4.6.1 Trao đổi khóa công khai

Khi hai người sử dụng muốn truyền dữ liệu với nhau bằng phương pháp mã hóa khóa công khai, trước tiên họ phải trao đổi khóa công khai cho nhau. Vì đây là khóa công khai nên không cần giữ bí mật việc trao đổi này, khóa có thể truyền công khai trên kênh thường.

Alice và Bob, hay bất cứ người nào khác có thể công bố rộng rãi khóa công khai của mình theo mô hình bên dưới:

Hình 4-4. Trao đổi khóa công khai tự phát

Tuy nhiên ở đây chúng ta lại gặp phải vấn đề về chứng thực. Làm như thế nào mà Alice có thể đảm bảo rằng KUB chính là khóa công khai của Bob? Trudy có thể mạo danh Bob bằng cách lấy khóa KUT của Trudy và nói rằng đó là khóa công khai của Bob.

Vì vậy, việc trao đổi khóa công khai theo mô hình trên đặt gánh nặng lên vai của từng cá nhân. Alice muốn gửi thông điệp cho Bob hay bất cứ người nào khác thì phải tin tưởng vào khóa công khai của Bob hay của người đó. Tương tự như vậy cho Bob.

Để giảm gánh nặng cho từng cá nhân, một mô hình gọi là „chứng chỉ khóa công khai‟

(public-key certificate) được sử dụng. Trong mô hình này có một tổ chức làm nhiệm vụ cấp chứng chỉ được gọi là trung tâm chứng thực (Certificate Authority – CA). Các bước thực hiện cấp chứng chỉ cho Alice như sau:

1) Alice gửi định danh IDA và khóa công khai KUA của mình đến trung tâm chứng thực.

2) Trung tâm chứng nhận kiểm tra tính hợp lệ của Alice, ví dụ nếu IDA

„Microsoft‟, thì Alice phải có bằng chứng chứng tỏ mình thực sự là công ty Microsoft.

3) Dựa trên cơ sở đó, trung tâm chứng thực cấp một chứng chỉ CA để xác nhận rằng khóa công khai KUA đó là tương ứng với IDA. Chứng chỉ được ký chứng thực bằng khóa riêng của trung tâm để đảm bảo rằng nội dung của chứng chỉ là do trung tâm ban hành.

CA = E(IDA|| KUA, KRAuth) (|| là phép nối dãy bít) 4) Alice công khai chứng chỉ CA .

5) Bob muốn trao đổi thông tin với Alice thì sẽ giải mã CA bằng khóa công khai của trung tâm chứng thực để có được khóa công khai KUA của Alice. Do đó nếu Bob

. . A .

IDA||KUA

IDA||KUA

IDA||KUA

IDA||KUA

. . . IDB||KUB

IDB||KUB

IDB||KUB

IDB||KUB

B

74

tin tưởng vào trung tâm chứng thực thì Bob sẽ tin tưởng là KUA là tương ứng với IDA, tức tương ứng với Alice.

Hình 4-5. Trao đổi khóa công khai dùng trung tâm chứng thực

Như vậy có thể thấy rằng nếu Bob muốn gởi thông điệp cho Alice, Cindy, hay Darth…, thì Bob không cần phải tin tưởng vào khóa công khai của Alice, Cindy, hay Darth nữa. Bob chỉ cần tin tưởng vào trung tâm chứng thực và khóa công khai của trung tâm chứng thực là đủ.

Hiện nay mô hình chứng chỉ khóa công khai đang được áp dụng rộng rãi với chuẩn của chứng chỉ là chuẩn X.509. Trên thế giới có khoảng 80 tổ chức chứng thực chứng chỉ khóa công khai. Chúng ta sẽ tìm hiểu chi tiết hơn về chuẩn X.509 trong chương 7.

4.6.2 Dùng mã hóa khóa công khai để trao đổi khóa bí mật

Do đặc điểm toán học của phương pháp mã hóa khóa công khai, thời gian mã hóa và giải mã của phương pháp này chậm hơn so với phương án mã hóa đối xứng. Trong thực tế, đối với vấn đề bảo đảm tính bảo mật, người ta vẫn sử dụng phương pháp mã hóa đối xứng.

Mã hóa khóa công khai được dùng để thiết lập khóa bí mật cho mỗi phiên trao đổi dữ liệu.

Lúc này khóa bí mật được gọi là khóa phiên (session key), các phiên trao đổi dữ liệu khác nhau sẽ dùng các khóa bí mật khác nhau.

Hình dưới mô tả một mô hình đơn giản để thiết lập khóa phiên KS giữa Alice và Bob.

Hình 4-6. Thiết lập khóa phiên bí mật bằng mã hóa khóa công khai

Alice tạo một khóa phiên KS , mã hóa bằng khóa riêng của Alice, sau đó mã hóa bằng khóa công khai của Bob. Bob giải mã KS dùng khóa riêng của Bob và khóa công khai của Alice. Nhờ tính bảo mật, Alice biết chắc rằng ngoài Alice chỉ có Bob mới biết được KS. Nhờ tính không từ chối, Bob biết rằng ngoài Bob chỉ có Alice mới biết được KS vì Alice dùng khóa riêng để mã hóa KS. Do đó KS có thể dùng làm khóa bí mật cho mã hóa đối xứng

A B

1.CA

3.E( E(KS , KRA), KUB) 2.CB

4. E(P, KS)

. . .

A

CA

CA

. . .

B CB

CB

IDA||KUA

CA = E(IDA|| KUA , KRAuth) Certificate

Authority

CB = E(IDB|| KUB , KRAuth) IDB||KUB

75 để trao đổi dữ liệu giữa Alice và Bob. Sau phiên trao đổi dữ liệu, KS được hủy bỏ nên khóa bí mật này sẽ ít có khả năng bị lộ. Lúc này vai trò của mã hóa khóa công khai không phải là bảo mật dữ liệu nữa (việc này do mã hóa đối xứng đảm trách) mà là bảo đảm tính bí mật của khóa đối xứng, chỉ có A và B biết khóa KS.

In document AN TOÀN VÀ BẢO MẬT THÔNG TIN (Page 72-75)