Bài giảng An toàn hệ thống thông tin - Chương 5: Quản lý và phân phối khóa - Trần Thị Kim Chi

Symmetric-key Distribution

• Mã hóa khóa đối xứng hiệu quả hơn mã hóa khóa

bất đối xứng đối với việc mã hóa các thông điệp lớn.

Tuy nhiên mã hóa khóa đối xứng cần một khóa chia

sẻ giữa hai tổ chức.

• Một người cần trao đổi thông điệp bảo mật với N

người, thì người đó cần N khóa khác nhau. Vậy N

người giao tiếp với N người khác thì cần tổng số là

N*(N-1) khóa

 số khóa không chỉ là vấn đề, mà phân phối khóa là

một vấn đề khác.

Độ tin cậy của một hệ thống mật mã phụ thuộc vào

công nghệ phân phối khóa (key distribution technique).

Key-Distribution Center: KDC

• Quá trình xử lý như sau:

1. Alice gửi 1 yêu cầu đến KDC để nói rằng cô ta cần

một khóa phiên (session secret key) giữa cô ta và

Bob.

2. KDC thông báo với Bob về yêu cầu của Alice

3. Nếu Bob đồng ý, một session key được tạo giữa 2

bên.

• Khóa bí mật này được dùng để chứng thực Alice và

Bob với KDC và ngăn chặn Eve giả mạo một trong

hai.

pdf 157 trang kimcuc 2360
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An toàn hệ thống thông tin - Chương 5: Quản lý và phân phối khóa - Trần Thị Kim Chi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng An toàn hệ thống thông tin - Chương 5: Quản lý và phân phối khóa - Trần Thị Kim Chi

Bài giảng An toàn hệ thống thông tin - Chương 5: Quản lý và phân phối khóa - Trần Thị Kim Chi
5(KEY MANAGEMENT AND 
DISTRIBUTION)
Mục tiêu
• Giải thích được sự cần thiết của một Key-
Distribution Center (KDC)
• Làm thế nào để KDC có thể tạo ra được 
Session Key giữa hai bên tham gia
• Khái niệm về Session Key
• Giải thích mô hình KDC
• Giải thích các bước tạo Session Key bằng KDC
• Giải thích về Flat Multiple KDCs; Hierarchical 
Multiple KDCs
2
Nguyễn Thị Hạnh
Mục tiêu
• Làm thế nào hai bên than gia dùng giao thức
Symmetric-Key Agreement để tạo session
key mà không dùng dịch vụ của KDC
• Diffie-Hellman Key Agreement
• Station-to-Station Key Agreement
• Mô tả Kerberos như là một KDC và một giao
thức xác thực: Servers; Operation; Using
Different Servers; Kerberos Version 5;
Realms
3
Nguyễn Thị Hạnh
Mục tiêu
• Nêu được cần thiết của Certification đối với
Public Key
• Public Announcement
• Trusted Center
• Controlled Trusted Center
• Certification Authority
• X.509 đề xuất một định dạng Certificate như
thế nào?
• X.509 Certificate Format
4
Nguyễn Thị Hạnh
Mục tiêu
• Nêu ra ý tưởng của Public-key Infrastructure 
(PKI) và giải thích được nhiệm vụ của nó.
5
Nguyễn Thị Hạnh
Nội dung chính
1. Symmetric-key Distribution
2. Kerberos
3. Symmetric-Key Agreement
4. Public-key distribution
(Cryptography & Network Security. McGraw-
Hill, Inc., 2007., Chapter 15)
( Cryptography and Network Security: Principles 
and Practices (3rd Ed.) – Chapter 14)
Nguyễn Thị Hạnh
6
1. Symmetric-key Distribution
• Mã hóa khóa đối xứng hiệu quả hơn mã hóa khóa 
bất đối xứng đối với việc mã hóa các thông điệp lớn. 
Tuy nhiên mã hóa khóa đối xứng cần một khóa chia 
sẻ giữa hai tổ chức.
• Một người cần trao đổi thông điệp bảo mật với N 
người, thì người đó cần N khóa khác nhau. Vậy N 
người giao tiếp với N người khác thì cần tổng số là 
N*(N-1) khóa
 số khóa không chỉ là vấn đề, mà phân phối khóa là 
một vấn đề khác.
 Độ tin cậy của một hệ thống mật mã phụ thuộc vào 
công nghệ phân phối khóa (key distribution technique).
7
Nguyễn Thị Hạnh
Key-Distribution Center: KDC
• Để giảm số lượng khóa, mỗi người sẽ thiết 
lập một khóa bí mật chia sẻ với KDC
• Làm thế nào để Alice có thể gửi một thông 
điệp bảo mật tới Bob
8
Key-Distribution Center: KDC
• Quá trình xử lý như sau:
1. Alice gửi 1 yêu cầu đến KDC để nói rằng cô ta cần 
một khóa phiên (session secret key) giữa cô ta và 
Bob.
2. KDC thông báo với Bob về yêu cầu của Alice
3. Nếu Bob đồng ý, một session key được tạo giữa 2 
bên.
• Khóa bí mật này được dùng để chứng thực Alice và 
Bob với KDC và ngăn chặn Eve giả mạo một trong 
hai.
9
Nguyễn Thị Hạnh
Key-Distribution Center: KDC
Flat Multiple KDCs
• Khi số lượng người dùng KDC tăng, hệ thống trở nên
khó quản lý và một bottleneck sẽ xảy ra.
 chúng ta có nhiều KDCs, chia thành các domain. Mỗi
domain có thể có một hoặc nhiều KDCs
• Alice muốn gửi thông điệp bí mật tới Bob, mà Bob 
thuộc vào domain khác, thì Alice liên lạc với KDC của
cô ta mà trong đó tiếp tục liên lạc với KDC trong
domain của Bob.
• Hai KDCs như vậy thì được gọi là Flat multiple KDCs
10
Nguyễn Thị Hạnh
Key-Distribution Center: KDC
Flat Multiple KDCs
11
Nguyễn Thị Hạnh
Key-Distribution Center: KDC
• Hierarchical Multiple KDCs
12
Khóa phiên (Session Keys)
• KDC tạo khóa bí mật cho mỗi thành viên,
khóa bí mật này chỉ có thể dùng giữa thành
viên và KDC, chứ không dùng giữa hai thành
viên
• Nếu muốn dùng giữa hai thành viên, KDC tạo
một session key giữa hai thành viên, sử
dụng khóa của họ với trung tâm.
• Khóa phiên giữa hai thanh viên chỉ được
dùng một lần (sau giao tiếp kết thúc thì khóa
phiên cũng không còn tác dụng)
13
Nguyễn Thị Hạnh
Khóa phiên (Session Keys)
• Một giao thức đơn giản sử dụng một KDC
• Giao thức này có thể bị tấn công phát lại ở bước 3 14
Khóa phiên (Session Keys)
Giao thức Needham-Schroeder (nền tảng của nhiều giao thức 
khác)
15
Khóa phiên (Session Keys)
• Giao thức Otway-Rees
16
4/28/2018
17
Các giả thiết
• Kịch bản giả thiết rằng mỗi đầu cuối
chia xẻ một khóa chủ duy nhất với
KDC.
• A muốn thiết lập một liên kết logic với B
để truyền dữ liệu.
• A có khóa chủ Ka chỉ A và KDC biết.
• B có khóa chủ Kb chỉ B và KDC biết.
4/28/2018
18
Các bước tạo khóa phiên
1. A gửi yêu cầu đến KDC để nhận được
khoá phiên nhằm thực hiện truyền
thông với B.
• Bản tin gồm định danh của A, B và một
định danh duy nhất N1 cho phiên truyền
gọi là nonce (nhãn thời gian, biến đếm,
số ngẫu nhiên).
• Đối phương rất khó để xác định nonce.
4/28/2018
19
2. KDC trả lời yêu cầu bằng một tin tức,
được mã hoá với việc sử dụng khoá
Ka. Người duy nhất có thể nhận và
đọc được tin tức này đó chính là A và
bởi vậy A có thể tin tưởng rằng tin tức
đã được gửi từ KDC.
Các bước tạo khóa phiên
4/28/2018
20
• Tin tức có hai thông tin được chờ đợi
với A.
• Khoá phiên dùng một lần Ks, nó sẽ được
sử dụng làm khoá phiên để liên lạc
• Tin tức nguyên bản đã gửi bao gồm nonce
để A có khă năng đối chiếu câu trả lời phù
hợp với câu đã hỏi .
Các bước tạo khóa phiên
4/28/2018
21
• Trong tin tức, cũng bao gồm hai thông 
tin chờ đợi với B:
• Khoá phiên dùng một lần Ks, nó sẽ được
sử dụng làm khoá phiên để liên lạc.
• Định danh của A (IDA).
Các bước tạo khóa phiên
4/28/2018
22
3. A lưu giữ khoá phiên Ks để dùng cho
phiên liên lạc, và gửi về phía B một
thông tin đã nhận được từ trung tâm
(đó là thông tin EKb [Ks║IDA]).
 Người sử dụng B biết được khoá phiên
Ks và biết được thông tin nhận được đã
được gửi từ KDC (bởi vì thông tin đó đã
được mã hoá bằng Kb) .
Các bước tạo khóa phiên
4/28/2018
23
4. Phía B gửi cho phía A một nonce mới
N2, nó được mã hoá bằng khoá phiên
vừa nhận được.
5. Nhờ khoá phiên KS, A trả lời lại f(N2)
cho B, ở đây là hàm được thực hiện
bằng biến đổi nào đó của N2 (chẳng
hạn bổ sung thêm đơn vị).
Các bước tạo khóa phiên
4/28/2018
24
Nhận xét
• Các bước 4, 5 đảm bảo với B, tin tức là
nguyên bản mã không bị tái tạo lại.
• Bước 1, 2, 3 → phân phối khóa.
• Bước 3, 4, 5 → Xác thực.
4/28/2018
25
Định danh và trao đổi khóa phiên 
dùng mã hóa đối xứng với KDC
• Xét mô hình trao đổi khóa phiên
4/28/2018
26
Định danh và trao đổi khóa phiên 
dùng mã hóa đối xứng với KDC
• Mô hình trên có thể bị tấn công replay 
attack. Ví dụ, Trudy có thể replay bước 
4 mà B vẫn nghĩ là A gửi và B tiếp tục 
dùng KAB này làm khóa phiên. Dựa 
trên cơ sở đó Trudy tiếp tục replay 
bước 5.
4/28/2018
27
Định danh và trao đổi khóa phiên 
dùng mã hóa đối xứng với KDC
• Do đó giao thức Needham/Schroeder 
được sửa lại như sau:
1) A B: IDA ||NA
2) B KDC: IDB||NB||E(IDA||NA, KB)
3) KDC A: E(IDB||NA||KS, KA)|| E(IDA|| 
KS, KB)|| NB
4) A B: E(IDA||KS, KB)|| E(NB, KS)
5) A B: E(P, KS)
4/28/2018
28
Định danh và trao đổi khóa phiên 
dùng mã hóa khóa công khai
• Trong mô hình trên, 
Trudy có thể replay bước 
3 mà B vẫn nghĩ là A gửi 
và B tiếp tục dùng KS 
này làm khóa phiên. Dựa 
trên cơ sở đó Trudy tiếp 
tục replay bước 4.
4/28/2018
29
Định danh và trao đổi khóa phiên 
dùng mã hóa khóa công khai
• Dựa trên cơ sở đó Trudy tiếp tục replay bước 4. Ở đây 
áp dụng một cơ chế challenge/response khác để chống 
replay như sau:
4/28/2018
30
Định danh và trao đổi khóa phiên 
dùng mã hóa khóa công khai
Mô tả:
• Bước 1: A gửi chứng chỉ CA cho B.
• Bước 2: B gửi chứng chỉ CB và nounce NB cho A.
• Bước 3: A chọn một tiền khóa phiên S và tính được khóa 
phiên KS = H(S||NB). A gửi chứng thực và bảo mật S cho B. 
B cũng tính khóa phiên KS.
• Bước 4: A gửi giá trị hash H(KS) cho B, B kiểm tra giá trị hash 
này với giá trị hash do B tự tính. Nếu khớp, B biết được rằng 
bước 3 không thể bị replay attack. Giả sử Trudy replay bước 
3 nhưng không biết S, vậy Trudy không tính được KS tương 
ứng với NB mới của Bob, từ đó Trudy cũng không thể tính 
được H(KS). Do đó Trudy không thể replay bước 4 mà không 
bị Bob phát hiện.
• Bước 5: A và B tiến hành trao đổi dữ liệu.
4/28/2018
31
Định danh và trao đổi khóa phiên 
dùng mã hóa khóa công khai
Bài tập: Xét giao thức sau:
4/28/2018
32
Định danh và trao đổi khóa phiên 
dùng mã hóa khóa công khai
Bài tập:
a) B có thể chắc chắn A là người ứng với IDA không? Nếu 
Trudy mạo danh A sử dụng IDA thì B có phát hiện được 
không? Giải thích
b) Giả sử A có password để định danh với B, B lưu trữ giá 
trị hash password của A. Hãy sửa giao thức trên để B có 
thể định danh được A.
4/28/2018
33
2. Phân phối khóa trong các 
hệ mật khóa công khai
• Một trong các vai trò chính của mật mã
công khai là giải quyết vấn đề phân phối
khóa.
• Có hai hướng chính sử dụng mật mã
khóa công khai:
• Phân phối các khóa công khai.
• Sử dụng mật mã khóa công khai để phân
phối khóa bí mật.
4/28/2018
34
2.1. Phân phối khóa công khai
• Một số công nghệ được đề xuất:
• Công bố công khai khoá.
• Catalog khoá công khai.
• Trung tâm ủy quyền khoá công khai.
• Chứng chỉ khoá công khai.
4/28/2018
35
2.1.1. Công bố công khai khóa
• Khóa được công bố công khai.
• Bất kì ai cũng có thể gửi khóa tới bất kì
người khác.
4/28/2018
36
Thí dụ
• Việc sử dụng PGP (Pretty Good Privacy) rất phổ biến (có
sử dụng RSA).
• Khóa công khai được công bố trên USENET, Mailling list.
Tuy nhiên phương pháp này phát 
sinh vấn đề về chứng thực: Làm 
thế nào người gửi có thể đảm bảo 
Kub chính là khóa công khai của 
người nhận? Người thứ 3 có thể 
dùng khóa Ku3 và mạo danh 
người gửi để nói rằng đó là công 
khai của Bob
 Để khắc phục sử dụng mô hình 
(Certificate Authority-CA)
37
Phân phối khóa không điều khiển
Các bước thực hiện chứng chỉ cho người gửi (Alice):
• Alice gửi định danh ID và khóa công khai KUA của
mình đến trung tâm chứng thực
• Trung tâm chứng thực kiểm tra tính hợp lệ của Alice, ví
dụ nếu IDA là ‘Microsoft’, thì Alice phải có bằng chứng
chứng tỏ mình thực sự là công ty Microsoft
• 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.
4/28/2018
38
Phân phối khóa không điều khiển
• Alice công khai chứng chỉ CA
• 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 đó Bob 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 của Alice
4/28/2018
39
Nhận xét
• Là phương pháp rất đơn giản, thuận
tiện.
• Nhưng có một điểm yếu chính → giả
mạo khóa công khai của đối tương
khác.
4/28/2018
40
2.1.2. Catalog khóa công khai 
• Một hình thức an toàn công bố khóa công khai cao hơn
là sử dụng duy trì một catalog động của các khóa công
khai.
• Việc phát hành catalog sẽ do một số thực thể hoặc
trung tâm tin cậy thực hiện.
4/28/2018
41
Mô tả các thành phần
1. Trung tâm được uỷ quyền lưu giữ catalog
dưới dạng các bản ghi (tên, khoá công khai)
của mỗi người tham gia.
2. Mỗi một người tham gia phải đăng ký khoá
công khai của mình với trung tâm.
Việc đăng ký phải diễn ra khi có mặt của chính
người tham gia, hoặc thông qua một kênh truyền
thông an toàn nào đó.
4/28/2018
42
3. Bất kì một người tham gia nào cũng có
quyền thay đổi khoá công khai mới của
mình vào bất kì thời điểm nào.
.
4. Theo từng chu kì, catalog phải được
tái bản có bổ xung.
Hình thức xuất bản có thể tương tự như
cuốn danh bạ điện thoại điện tử.
Mô tả các thành phần
4/28/2018
43
5. Mọi người tham gia có thể được phép
xâm nhập vào catalog thường xuyên.
Đối với điều này việc bảo mật và xác
thực giữa hai bên là ủy thác.
Mô tả các thành phần
4/28/2018
44
Nhận xét
• Có tính an toàn cao hơn so với phương
pháp công bố công khai không kiểm
soát khoá.
• Vẫn có điểm yếu:
• Nếu đối phương có khóa riêng của trung
tâm → giả mạo.
4/28/2018
45
2.1.3. Trung tâm ủy quyền 
khóa công khai
• Cung cấp kiểm soát chặt chẽ quá trình
phân phối khóa công khai từ catalog.
4/28/2018
46
Kịch bản phân phối khóa công 
khai
4/28/2018
47
Mô tả các bước thực hiện
1. A gửi tin tức cùng với điểm dấu ngày tháng/thời gian
tới trung tâm tin cậy, yêu cầu được cấp khoá công
khai hiện thời của B.
2. Trung tâm trả lời, tin tức được mã hoá bằng khoá
riêng của trung tâm KRauth. Tin tức này A có thể giải
mã nhờ khoá công khai của trung tâm. Bởi vậy, A có
thể tin tưởng rằng tin tức đã được gửi từ trung tâm.
• Bản tin bao gồm:Khoá công khai của B: KUB. Yêu cầu gốc, để A
có thể đối chiếu với yêu cầu đã gửi, từ đó A tin tưởng chắc chắn
rằng yêu cầu của mình đã không bị thay đổi trên đường truyền tới
trung tâm.
• Điểm dấu thời gian, để A tin tưởng chắc chắn rằng: tin tức này
không phải là tin tức cũ của trung tâm, khoá của B là khoá đang
lưu hành.
4/28/2018
48
3. A lưu giữ khoá công khai của B, và sử
dụng nó để mã hoá tin tức để gửi cho
B, trong đó phải có định danh của A
(IDA) và nonce (N1), được sử dụng để
chỉ rõ tính duy nhất của phiên truyền.
Mô tả các bước thực hiện
4/28/2018
49
4. B cũng sẽ nhận được khoá công khai
của A: KUA từ trung tâm, tương tự
như A đã nhận.
5. Vào thời điểm này, khoá công khai đã
được nhận bởi A và B theo thủ tục
trên, họ có thể bắt đầu trao đổi tin tức.
Mô tả các bước thực hiện
4/28/2018
50
Hai hành động bổ xung
6. B gửi tin tức tới A, được mã hoá bằng khoá
công khai của A: KUA, tin tức phải bao gồm
nonce của A (N1) và kèm theo nhãn thời
gian mới của B (N2).
Rõ ràng chỉ có B mới có khả năng giải mã tin
tức từ A gửi đến (3), do có N1 trong tin tức (6)
làm cho A tin tưởng rằng B là người nhận được
tin tức đã gửi.
4/28/2018
51
(tiếp)
7. A gửi quay lại N2, được mã hoá bằng
khoá công khai của B, để chứng tỏ
rằng đó chính là A.
4/28/2018
52
Nhận xét
• Như vậy, trong trường hợp chung đòi
hỏi bảy tin tức.
• Tuy nhiên, việc gửi tin tức từ thủ tục
đầu tiên đến thủ tục thứ bốn là không
thường xuyên,
• bởi vì cả hai phía đều có thể lưu giữ khoá
công khai của nhau để tiếp tục sử dụng.
4/28/2018
53
Nhận xét
• Trung tâm ủy quyền có thể bị tắc
nghẽn.
• Catalog lưu giữ tên và khóa công khai
có thể bị giả mạo.
4/28/2018
54
2.1.4. Chứng chỉ khóa công 
khai
4/28/2018
55
3. Phân phối khóa mật sử 
dụng mật mã khóa công khai
• Phân phối khóa mật đơn giản.
• Phân phối khóa mật với bảo mật và xác
thực.
• Sơ đồ lai ghép.
4/28/2018
56
3.1. Phân phối khóa mật đơn 
giản
• Sơ đồ được đề xuất bởi Merkle.
4/28/2018
57
Các bước thực hiện
1. A phát sinh cặp khoá công khai và
khoá riêng (KUA, KRA) và truyền tin
tức về phía B, bao gồm KUA và định
danh của A (IDA).
2. B phát sinh khoá mật Ks và truyền
khoá này về phía A, tin tức được mã
hoá bằng khoá công khai của A.
4/28/2018
58
3. A tính DKRa[EKUa[Ks]], để khôi phục
khoá mật . Bởi vì chỉ có A mới có khả
năng giải mã bản tin đó, và chỉ có A, B
biết khoá mật Ks.
4. A bỏ khóa KUa, KRa, còn B bỏ khóa
KUa.
Các bước thực hiện
4/28/2018
59
Nhận xét
• Sau khi kết thúc liên lạc, cả A, B đều vứt bỏ
khoá mật Ks.
• Không khảo sát tính đơn giản, thủ tục này
quả là thuận lợi.
• Không có khoá nào tồn tại trước mỗi phiên
liên lạc, không có khoá nào còn lại sau mỗi
phiên liên lạc. Bởi vậy, khả năng bị mất khoá
trở nên rất hiếm hoi. Các cuộc liên lạc xem ra
có vẻ an toàn.
4/28/2018
60
Nhận xét
• Không an toàn khi đối phươn ... à phương pháp thực tế trao đổi công khai
các khoá mật. Nó thúc đẩy việc nghiên cứu đề
xuất các mã khoá công khai. Sơ đồ được sử
dụng trong nhiều sản phẩm thương mại.
4/28/2018
85
3.4. Mô hình trao đổi khóa 
Diffie-Hellman
• Không thể dùng để trao đổi mẩu tin bất kỳ.
• Tuy nhiên nó có thể thiết lập khoá chung.
• Chỉ có hai đối tác biết đến.
• Giá trị khoá phụ thuộc vào các đối tác (và các thông
tin về khoá công khai và khoá riêng của họ).
• Dựa trên phép toán lũy thừa trong trường hữu hạn
(modulo theo số nguyên tố hoặc đa thức) là bài toán
dễ.
• Độ an toàn dựa trên độ khó của bài toán tính logarit
rời rạc (giống bài toán phân tích ra thừa số) là bài
toán khó.
4/28/2018
86
3.4. Mô hình trao đổi khóa 
Diffie-Hellman
Giao thức trao đổi khoá giữa A và B:
• A và B thống nhất chọn chung một số nguyên tố q và 
một phần tử sinh α.
4/28/2018
87
3.4. Mô hình trao đổi khóa 
Diffie-Hellman
Tạo cặp khóa:
4/28/2018
88
3.4. Mô hình trao đổi khóa 
Diffie-Hellman
• Xác định khóa phiên: Dựa vào sốhọc modulo
4/28/2018
89
Mô hình truyền tin bí mật sử dụng 
trao đổi khóa diffie-hellman (ôn thi)
3.1 Diffie-Hellman Key Agreement
•
90
Nguyễn Thị Hạnh
4/28/2018
91
Thí dụ
3.1 Diffie-Hellman Key Agreement
• Ví dụ: Giả sử rằng g = 7 và p = 23. Các 
bước như sau:
1. Alice chọn x = 3 và tính R1 = 7
3 mod 23 = 21.
2. Bob chọn y = 6 và tính R2 = 7
6 mod 23 = 4.
3. Alice gửi số 21 cho Bob.
4. Bob gửi số 4 cho Alice.
5. Alice tính Symmetric Key K = 43 mod 23 = 18.
6. Bob tính Symmetric key K = 216 mod 23 = 18.
7. Giá trị của K giống nhau giữa Alice và Bob;
gxy mod p = 718 mod 35 = 18.
3.1 Diffie-Hellman Key Agreement
• Bài tập: Cho số nguyên tố q=353 và α=3
• Chọn các khoá mật ngẫu nhiên: A chọn 
xA=97, B chọn xB=233. Tính khóa công khai 
và khóa phiên. Sau đó cho nhận xét
• Tính các khoá công khai:
• YA=397 mod 353 = 40 (A)
• YB=3233 mod 353 = 248 (B)
• Tính khoá phiên chung:
• KAB= YB
x
Amod 353 = 248
97 = 160 (A)
• KAB=YA
xBmod 353 = 40233 = 160 (B)
3.1 Diffie-Hellman Key Agreement
Bài tập: 1. Alice và Bob thống nhất với nhau chọn số nguyên 
tố p = 37 và g = 5. 
Alice chọn một giá trị ngẫu nhiên bất kỳ aA = 7 và bí mật aA. 
Bob chọn một giá trị ngẫu nhiên bất kỳ aB = 5 và bí mật aB
• Alice tính bA = 5
7 mod 37 = 18. 
• Sau đó Alice gửi bA = 18 cho Bob. 
• Bob tính bB = 5
5 mod 37 = 17. 
• Sau đó Bob gửi bB = 17 cho Alice. 
• Bob nhận được bA = 18 và tính khóa chung: KB = 18
5 mod 
37=15, và bí mật KB
• Alice nhận được bB =17 và tính khóa chung: KA = 17
7 mod 
37=15, và bí mật KA 94Nguyễn Thị Hạnh
3.1 Diffie-Hellman Key Agreement
• Ví dụ 2: Chúng ta dùng một chương 
trình tạo một số nguyên ngẫu nhiên 
521-bit (khoảng 159 chữ số). Chúng ta 
cũng chọn g, x, và y như sau.
95
3.1 Diffie-Hellman Key Agreement
• Giá trị của R1, R2, và K là: 
96
Nguyễn Thị Hạnh
3.1 Diffie-Hellman Key Agreement
97
Nguyễn Thị Hạnh
Tấn công
q = 353; a = 3; YA = 40; YB= 248
Vét cạn để tìm 2 khóa bằng nhau (với số nhỏ)
Không chống được tấn công Man-in-the-Middle
3.1 Diffie-Hellman Key Agreement
98
Nguyễn Thị Hạnh
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
Bảo mật của Diffie-Hellman:
1.Discrete Logarithm Attack
2.Man-in-the-Middle Attack
100
3.1 Diffie-Hellman Key Agreement
Discrete Logarithm Attack
Eve chặn R1 và R2. Nếu cô ta tìm ra được x từ R1=g
x
mod p và y từ R2=g
y mod p có thể tính toán được
khóa K=gxy mod p Khóa bí mật này không còn bí mật
nữa.
Để an toàn, ta nên chọn:
• Số nguyên tố p phải là rất lớn (hơn 300 chữ số)
• Số p phải được chọn sao cho p-1 có ít nhất một thừa
số nguyên tố lớn (nhiều hơn 60 chữ số)
• Phần tử sinh phải được chọn từ nhóm 
• Bob và Alice phải hủy x và y sau khi tính K; x và y chỉ
nên sử dụng một lần
3.1 Diffie-Hellman Key Agreement
Man-in-the-Middle Attack
3.1 Diffie-Hellman Key Agreement
• Giao thức là an toàn đối với việc tấn 
công thụ động, nghĩa là một người thứ 
ba dù biết bA và bB sẽ khó mà biết được 
KA,B. 
3.2 Station-to-Station Key Agreement
• Là một giao thức dựa trên Diffie-Hellman
• Dùng Digtal signature với Public-key
Certificates để thiết lập nên session key
giữa Alice và Bob
3.2 Station-to-Station Key Agreement
•
3.2 Station-to-Station Key Agreement
• Giao thức này ngăn chặn được tấn công man-
in-the-middle.
• Sau khi chặn R1, Eve không thể gửi R2 của cô ta cho
Alice và giả bộ nó được gửi đến từ Bob bởi vì Eve
không thể giả mạo được Private key của Bob để tạo
ra Sinature – Signature không thể được thẩm tra bằng
public key của Bob được xác định trong Certificate.
• Cùng cách tương tự Eve không thể giả private key
của Alice để ký thông điệp thứ 3 gửi bởi Alice.
106
4. PUBLIC-KEY DISTRIBUTION
• Trong mã hóa khóa công khai, mọi 
người có thể truy xuất đến Public key 
của mọi người; các Public Key này sẵn 
sàng được công khai
• Public key, giống như khóa bí mật, cần 
được phân bố như thể nào cho hữu 
dụng
4.1 Public Announcement
• Đưa Public Key lên Website, tạp chí
• Không an toàn, nó có thể bị giả mạo
108
4.2 Trusted Center
• Cách này an toàn hơn, phải có một trung tâm tin cậy 
lưu giữ lại một danh bạ (Directory) các Public Keys, 
danh bạ này được cập nhật tự động 
• Mỗi user chọn một Private Key (giữ bí mật) và một 
Public Key (được chuyển để chèn vào danh bạ)
• Trung tâm yêu cầu mỗi user đăng ký và chứng minh 
identity của cô/anh ta
• Danh bạ có thể được yết thị công khai bởi Trusted 
Center
• Center cũng đáp trả lại những thẩm tra về Public Key
109
4.2 Trusted Center
110
4.3 Controlled Trusted Center
• Mức độ bảo mật cao hơn có thể đạt
được nếu được thêm các điều khiển
(Control) vào việc phân phối Public Key.
• Bao gồm một Timestamp và được ký
bởi người thẩm quyền để ngăn chặn
sự nghe lén (interception) và sự hiểu
chỉnh response
4.3 Controlled Trusted Center
•
112
Nguyễn Thị Hạnh
4.4 Certification Authority
• Các phương pháp trước có thể tạo một tải
trọng nặng lên Center nếu số lượng yêu cầu
lớn
• Bob muốn 2 điều: (1) mọi người đều biết
Pulic Key của anh ta; (2) không một ai chấp
nhận một Public Key bị giả mạo
• đến Certification Authority (cơ quan chứng
nhận)- một tổ chức liên bang hoặc quốc gia
mà gắn kết Public Key với một thực thể và
phát hành một chứng chỉ (Certificate)
113
4.4 Certification Authority
• CA có một Public Key của chính nó, ai cũng biết 
mà không thể giả mạo. 
• CA kiểm tra nhận dạng của Bob (dùng một ID 
hình ảnh với những bằng chứng khác)
• Nó hỏi Public Key của Bob và ghi nó vào một 
Certificate (để ngăn chặn Certificate giả mạo, CA 
ký (sign) vào Certificate bằng Private Key của nó.
• Bob có thể đăng Certificate đã được ký.
• Alice sẽ tải Certificate của Bob về và dùng Public 
Key của Center đề trích ra Public Key của Bob
114
4.4 Certification Authority
•
115
Nguyễn Thị Hạnh
4.5 X.509
• CA đã giải quyết được vấn đề gian lận Public
Key, nhưng nó cũng tạo ra một tác động thứ
yếu.
• Mỗi Certificate có thể có một định dạng khác nhau,
điều này gây khó khăn nếu người dùng muốn dùng
một chương trình tự động để tải và lấy về các Public
Key của nhiều người khác nhau
• cần một định dạng phổ quát cho Certificate
• ITU thiết kế X.509 – là một cách để mô tả
Certificate trong một cách có cấu trúc, nó dùng
một giao thức nổi tiếng gọi là ASN.1 (Abstract
Syntax Notation 1) 116Nguyễn Thị Hạnh
4.5 X.509
X.509 Certificate Format
117
Nguyễn Thị Hạnh
4.5 X.509
• Thay mới (Certificate Renewal)
• Certificate hết hạn dùng, nếu không có vấn đề thì
CA cấp lại một certificate mới trứơc khi hết hạn
• Thu hồi (Delta Revocation)
• Private key ứng với Public Key có thể bị thỏa hiệp
• CA không muốn chứng nhận người dùng nữa
• Private Key của CA mà có thể dùng thẩm tra
Certificate, có thể đã bị thỏa hiệp
• CA phát hành danh sách các thu hồi
(Certificate Revocation List - CRL)
4.6 Public-Key Infrastructures (PKI)
• PKI là một mô hình dùng để tạo, phân phối và thu hồi 
Certificate dựa trên X.509
• Trách nhiệm của PKI:
119
Nguyễn Thị Hạnh
4.6 Public-Key Infrastructures (PKI)
• Mô hình phân cấp PKI 
120
Nguyễn Thị Hạnh
4.6 Public-Key Infrastructures (PKI)
• Ví dụ: Mô hình phân cấp PKI 
121
Nguyễn Thị Hạnh
4.6 Public-Key Infrastructures (PKI)
Ví dụ: 
• A muốn có được Certificates của B để lấy
Public Key của B
X> W> 
V>Y>Z>
• B muốn có Public Key của A
Z> Y> 
V>W>X>
122
Nguyễn Thị Hạnh
4/28/2018
123
4. Hạ tầng khóa công khai 
(PKI)
• “PKI là tập hợp của các công nghệ mật mã,
phần mềm, phần cứng chuyên dụng và các
dịch vụ cho phép các tổ chức/doanh nghiệp
đảm bảo an toàn thông tin liên lạc, định
danh và xác thực được người dùng, khách
hàng trên các giao dịch qua mạng/Internet”.
4/28/2018
124
Các thành phần
1. Chứng chỉ khóa công khai: họ tên hoặc định
danh của người sở hữu thật sự của khóa,
khóa công cộng và chữ ký điện tử giúp xác
nhận được tính hợp lệ của hai thành phần
này.
2. Hệ thống phân phối khóa tin cậy: sử dụng
hệ thống trao đổi thông tin tin cậy để
chuyển mã khóa công cộng đến người
nhận.
4/28/2018
125
Các thành phần của một chứng nhận khóa công 
cộng
4/28/2018
126
Mô hình Certification Authority đơn giản
4/28/2018
127
4.1. Các loại giấy chứng nhận khóa công 
cộng
• Giấy chứng nhận là một tập tin nhị phân
có thể dễ dàng chuyển đổi qua mạng
máy tính.
• Tổ chức CA áp dụng chữ ký điện tử của
nó cho giấy chứng nhận khóa công
cộng mà nó phát hành.
4/28/2018
128
Chứng nhận X.509
• Chứng nhận X.509 là chứng nhận khóa công
cộng phổ biến nhất.
• Hiệp hội viễn thông quốc tê (ITU) đã chỉ định
chuẩn X.509 vào năm 1988 (phiên bản 1).
• Phiên bản 2 (1993) của chuẩn X.509 được
phát hành với 2 trường tên nhận dạng duy
nhất được bổ sung.
• Phiên bản 3 (1997) của chuẩn X.509 được bổ
sung thêm trường mở rộng.
4/28/2018
129
Phiên bản 3 của chuẩn chứng nhận X.509
4/28/2018
130
Mô tả
• Một chứng nhận khóa công cộng kết buộc
một khóa công cộng với sự nhận diện của
một người (hoặc một thiết bị).
• Khóa công cộng và tên thực thể sở hữu khóa
này là hai mục quan trọng trong một chứng
nhận.
• Hầu hết các trường khác trong chứng nhận
X.509 phiên bản 3 đều đã được chứng tỏ là
có ích.
4/28/2018
131
Mô tả một số trường
• Signature Algorithm: Thuật toán chữ ký
chỉ rõ thuật toán mã hóa được CA sử
dụng để ký giấy chứng nhận.
• Subject Name: là một X.500 DN (X.500
Distinguised Name – X.500 DN), xác
định đối tượng sở hữu giấy chứng nhận
mà cũng là sở hữu của khóa công
cộng.
4/28/2018
132
(tiếp)
• Public key: Xác định thuật toán của khóa
công cộng (như RSA) và chứa khóa công
cộng được định dạng tuỳ vào kiểu của nó.
• Extensions: Chứa các thông tin bổ sung cần
thiết mà người thao tác CA muốn đặt vào
chứng nhận. Trường này được giới thiệu
trong X.509 phiên bản 3.
• Signature: Đây là chữ ký điện tử được tổ
chức CA áp dụng.
4/28/2018
133
Chứng nhận PGP
• Giấy chứng nhận X.509 được ký bởi tổ chức
CA.
• Trong khi đó, giấy chứng nhận PGP có thể
được ký bởi nhiều cá nhân.
Mô hình tin cậy của giấy chứng nhận PGP
đòi hỏi phải tin tưởng vào những người ký
giấy chứng nhận PGP muốn dùng chứ không
chỉ tin tưởng vào CA phát hành X.509.
4/28/2018
134
4.2. Sự chứng nhận và kiểm tra chữ ký
• Quá trình chứng nhận chữ ký diễn ra
theo hai bước.
• Đầu tiên, các trường của chứng nhận
được băm bởi thuật toán cho trước.
• Sau đó, kết quả xuất của hàm băm, được
mã hóa với khóa bí mật của tổ chức CA đã
phát hành chứng nhận này.
4/28/2018
135
Quá trình ký chứng nhận
4/28/2018
136
Quá trình kiểm tra chứng nhận
4/28/2018
137
4.3. Các thành phần của một cở sở hạ 
tầng khóa công cộng
4/28/2018
138
Mô hình cơ bản
Certification Authority
(CA)
Đơn vị cấp chứng thư
(IA)
Đơn vị đăng ký
(RA)
cơ sở dữ liệu 
chứng thư số
yêu cầu
Thông điệp dữ liệu ký số
cấp 
chưng thư số/khóa Xác minh
Thuê bao
Người nhận/ 
Người tin tưởng
4/28/2018
139
4.3.1. Tổ chức chứng nhận – Certificate 
Authority (CA)
• Tổ chức CA là một thực thể quan trọng
duy nhất trong X.509 PKI. (Public key
Infrastructure).
• Tổ chức CA có nhiệm vụ phát hành,
quản lý và hủy bỏ các giấy chứng nhận.
4/28/2018
140
Mô tả
• Để thực hiện nhiệm vụ phát hành giấy chứng
nhận của mình, CA nhận yêu cầu chứng
nhận từ khách hàng.
• Sau đó, tổ chức CA tạo ra nội dung chứng
nhận mới cho khách hàng và ký nhận cho
chứng nhận đó.
• Nếu CA có sử dụng nơi lưu trữ chứng nhận
thì nó sẽ lưu giấy chứng nhận mới được tạo
ra này ở đó.
4/28/2018
141
4.3.2. Tổ chức đăng ký chứng nhận –
Registration Authority (RA)
• Một RA là một thực thể tùy chọn được
thiết kế để chia sẻ bớt công việc trên
CA.
• Một RA không thể thực hiện bất kỳ một
dịch vụ nào mà tổ chức CA của nó
không thực hiện được
4/28/2018
142
Mô tả
• Các nhiệm vụ chính của RA có thể
được chia thành các loại:
• Các dịch vụ chứng nhận.
• Các dịch vụ kiểm tra.
4/28/2018
143
Nhận xét
• Một RA hoạt động như là một xử lý
ngoại vi của CA.
• Một RA chỉ nên phục vụ cho một CA.
Trong khi đó, một CA có thể được hỗ
trợ bởi nhiều RA.
4/28/2018
144
4.3.3. Kho lưu trữ chứng nhận –
Certificate Repository (CR)
• Một kho chứng nhận là một cơ sở dữ
liệu chứa các chứng nhận được phát
hành bởi một CA.
• Kho có thể được tất cả các người dùng
của PKI.
4/28/2018
145
4.4. Chu trình quản lý giấy chứng nhận
• Khởi tạo
• Yêu cầu về giấy chứng nhận
• Tạo lại chứng nhận
• Hủy bỏ chứng nhận
• Lưu trữ và khôi phục khóa
4/28/2018
146
4.4.1. Yêu cầu về giấy chứng nhận
• Hầu hết các CA sử dụng một trong hai
phương thức tiêu chuẩn của yêu cầu
chứng nhận : PKCS #10 và CRMF.
4/28/2018
147
Mẫu yêu cầu chứng nhận theo chuẩn 
PKCS#10
4/28/2018
148
Định dạng thông điệp yêu cầu chứng nhận theo 
RFC 2511
4/28/2018
149
4.4.2. Hủy bỏ chứng nhận
• Certificate Revocation List (CRL) là
cách đầu tiên và thông dụng nhất để
phổ biến thông tin hủy bỏ.
• CRL chứa thông tin thời gian nhằm xác
định thời điểm tổ chức CA phát hành
nó.
• CA ký CRL với cùng khóa bí mật được
dùng để ký các chứng nhận.
4/28/2018
150
Phiên bản 2 của định dạng danh sách chứng 
nhận bị hủy
4/28/2018
151
4.5. Các mô hình CA
• Mô hình tập trung
4/28/2018
152
Nhận xét
• Tất cả mọi chứng nhận khóa công cộng
đều được ký tập trung bởi tổ chức CA
và có thể được xác nhận bằng khóa
công cộng của CA.
• Khuyết điểm chính của mô hình này là 
hiện tượng “nút cổ chai” tại trung tâm.
4/28/2018
153
Mô hình phân cấp
4/28/2018
154
Nhận xét
• Tổ chức CA được phân ra thành nhiều
cấp, tổ chức CA ở cấp cao hơn sẽ ký
vào chứng nhận khóa công cộng của
các tổ chức CA con trực tiếp của mình.
• Một chứng nhận khóa công cộng của
người sử dụng sẽ được ký bởi một tổ
chức CA cục bộ.
Câu hỏi và bài tập
1. Liệt kê các cách mà secret key có thể được 
phân phối cho hai bên giao tiếp.
2. Khóa của Distribution Center là gì?
3. Cho biết trách nhiệm của một KDC
4. Session Key là gì và chỉ ra một KDC có thể 
tạo một session key giữa Alice và Bob
5. Kerberos là gì và tên server của nó; mô tả 
trách nhiệm của từng Server.
6. Thế nào là tấn công Man-in-the-middle
155
Nguyễn Thị Hạnh
Câu hỏi và bài tập
7. Giao thức Station-to-Station là gì, cho 
biết mục đích của nó
8. CA là gì, mối quan hệ của nó vỡ mã 
hóa khóa công khai
156
Nguyễn Thị Hạnh

File đính kèm:

  • pdfbai_giang_an_toan_he_thong_thong_tin_chuong_5_quan_ly_va_pha.pdf