07/01/2018
Chương 5:
QUẢN LÝ VÀ PHÂN PHỐI KHÓA
(KEY MANAGEMENT AND DISTRIBUTION)
1
Nguyễn Thị Hạnh
GV: Nguyễn Thị Hạnh
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 (cid:1) Khái niệm về Session Key (cid:1) Giải thích mô hình KDC (cid:1) Giải thích các bước tạo Session Key bằng KDC ˗ Giải thích về Flat Multiple KDCs; Hierarchical
Nguyễn Thị Hạnh
2
1
Multiple KDCs
07/01/2018
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 (cid:1) Diffie-Hellman Key Agreement (cid:1) Station-to-Station Key Agreement
Nguyễn Thị Hạnh
3
˗ 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
Mục tiêu
˗ Nêu được cần thiết của Certification đối với
Public Key (cid:1) Public Announcement (cid:1) Trusted Center (cid:1) Controlled Trusted Center (cid:1) Certification Authority
˗ X.509 đề xuất một định dạng Certificate như
Nguyễn Thị Hạnh
4
2
thế nào? (cid:1) X.509 Certificate Format
07/01/2018
Mục tiêu
Nguyễn Thị Hạnh
5
˗ Nêu ra ý tưởng của Public-key Infrastructure (PKI) và giải thích được nhiệm vụ của nó.
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
Nguyễn Thị Hạnh
6
3
and Practices (3rd Ed.) – Chapter 14)
07/01/2018
1. Symmetric-key Distribution
˗ Mã hóa khóa đối xứng là 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
˗ (cid:2) số khóa không chỉ là vấn đề, mà phân phối
Nguyễn Thị Hạnh
7
khóa là một vấn đề khác.
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
Nguyễn Thị Hạnh
8
4
điệp bảo mật tới Bob
07/01/2018
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.
Nguyễn Thị Hạnh
9
˗ 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.
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.
˗ (cid:2) 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
Nguyễn Thị Hạnh
10
5
07/01/2018
Key-Distribution Center: KDC
Nguyễn Thị Hạnh
11
Flat Multiple KDCs
Key-Distribution Center: KDC
Nguyễn Thị Hạnh
12
6
˗ Hierarchical Multiple KDCs
07/01/2018
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
Nguyễn Thị Hạnh
13
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)
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
Nguyễn Thị Hạnh
14
7
07/01/2018
Khóa phiên (Session Keys)
˗ Giao thức Needham-Schroeder (nền tảng của nhiều
giao thức khác)
Nguyễn Thị Hạnh
15
Khóa phiên (Session Keys)
Nguyễn Thị Hạnh
16
8
˗ Giao thức Otway-Rees
07/01/2018
2. KERBEROS
˗ Kerberos là một giao thức chứng thực ˗ Ra đời cùng thời điểm với KDC, nhưng đã trở nên thông dụng. (Windows 2000 sử dụng cơ chế Kerberos để chứng thực)
˗ Đầu tiên được thiết kế tại MIT, nó đã qua
Nguyễn Thị Hạnh
17
nhiều phiên bản khác nhau
2. KERBEROS
˗ Servers ˗ Operation ˗ Using Different Servers ˗ Kerberos Version 5 ˗ Realms
Nguyễn Thị Hạnh
18
9
Trong giao thức Kerberos gồm có:
07/01/2018
Servers
˗ Authentication Server (AS): là KDC trong giao
thức Kerberos
˗ Ticket-granting server (TGS): phát hành một
ticket cho real server (Bob)
˗ Real (data) server (của Bob): cung cấp dịch vụ
Nguyễn Thị Hạnh
19
cho người dùng (Alice)
Servers
Nguyễn Thị Hạnh
20
10
07/01/2018
Operation
Nguyễn Thị Hạnh
21
˗ Ví dụ
Using Different Servers
Nguyễn Thị Hạnh
22
11
Nếu Alice cần nhận các dịch vụ từ các servers khác, cô ta chỉ cần lặp lại 4 bước sau cùng.
07/01/2018
Kerberos Version 5
˗ Sự khác biệt nhỏ giữa phiên bản 4 và 5 như
sau:
1. Version 5 có một ticket lifetime dài hơn 2. Version 5 cho phép các ticket được tạo lại
mới
3. Version 5 có thể chấp nhận bất kỳ thuật toán
khóa đối xứng
4. Version 5 dùng một giao thức khác cho việc
mô tả kiểu dữ liệu
Nguyễn Thị Hạnh
23
5. Version 5 có nhiều overhead hơn version 4
Realms (lãnh địa)
Nguyễn Thị Hạnh
24
12
˗ Kerberos cho phép sự phân bố toàn cục của các AS và TGS, với mỗi hệ thống được gọi là một realm. Người dùng có thế lấy một ticket cho một local server hoặc remote server.
07/01/2018
3. Symmetric-Key Agreement
˗ Alice và Bob có thể tạo ra một session key giữa chúng mà không cần dùng một KDC. Phương pháp tạo session-key này được tham chiếu như một symmetric-key agreement.
˗ Hai phương pháp
Nguyễn Thị Hạnh
25
(cid:1) Diffie-Hellman Key Agreement (cid:1) Station-to-Station Key Agreement
3.1 Diffie-Hellman Key Agreement
˗ Trong giao thức Diffie-Hellman hai bên tạo một
symmetric session key mà không cần KDC.
˗ Hai bên chọn p (nguyên tố lớn – 1024-bit), g
là phần tử sinh trong nhóm
˗ Các bước của giao thức thực hiện như hình
Nguyễn Thị Hạnh
26
13
sau.
07/01/2018
3.1 Diffie-Hellman Key Agreement
Nguyễn Thị Hạnh
27
˗
3.1 Diffie-Hellman Key Agreement
1.Alice chọn ngẫu nhiên số lớn x với 0<=x<=p-1,
tính
˗ Ví dụ: Cho trước g và p, các bước như sau:
R1 = gx mod p.
2.Bob chọn số lớn y với 0<=y Nguyễn Thị Hạnh 28 14 07/01/2018 ˗ Ví dụ: Giả sử rằng g = 7 và p = 23. Các bước như gxy mod p = 718 mod 35 = 18. Nguyễn Thị Hạnh 29 sau:
1.Alice chọn x = 3 và tính R1 = 73 mod 23 = 21.
2.Bob chọn y = 6 và tính R2 = 76 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; Nguyễn Thị Hạnh 30 15 ˗ 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. 07/01/2018 Nguyễn Thị Hạnh 31 ˗ Giá trị của R1, R2, và K là: Nguyễn Thị Hạnh 32 16 Ý tưởng của Diffie-Hellman 07/01/2018 Bảo mật của Diffie-Hellman: 1. Discrete Logarithm Attack Nguyễn Thị Hạnh 33 2. Man-in-the-Middle Attack chỉ nên sử dụng một lần Nguyễn Thị Hạnh 34 17 Discrete Logarithm Attack
Eve chặn R1 và R2. Nếu cô ta tìm ra được x từ R1=gx
mod p và y từ R2=gy mod p (cid:2) có thể tính toán được
khóa K=gxy mod p (cid:2) 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 07/01/2018 Nguyễn Thị Hạnh 35 Man-in-the-Middle Attack ˗ Là một giao thức dựa trên Diffie-Hellman
˗ Dùng Digtal signature với Public-key Nguyễn Thị Hạnh 36 18 Certificates để thiết lập nên session key giữa
Alice và Bob 07/01/2018 Nguyễn Thị Hạnh 37 ˗ ˗ Giao thức này ngăn chặn được tấn công (cid:1) 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. Nguyễn Thị Hạnh 38 19 man-in-the-middle.
(cid:1) 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. 07/01/2018 ˗ 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 Nguyễn Thị Hạnh 39 phân bố như thể nào cho hữu dụng Nguyễn Thị Hạnh 40 20 ˗ Đưa Public Key lên Website, tạp chí
˗ Không an toàn, nó có thể bị giả mạo 07/01/2018 ˗ 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 Nguyễn Thị Hạnh 41 Nguyễn Thị Hạnh 42 21 07/01/2018 ˗ Mức độ bảo mật cao hơn có thể đạt được nếu
được them 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 Nguyễn Thị Hạnh 43 người thẩm quyền để ngăn chặn sự nghe lén
(interception) và sự hiểu chỉnh response Nguyễn Thị Hạnh 44 22 ˗ 07/01/2018 ˗ 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 Nguyễn Thị Hạnh 45 ˗ (cid:2) đế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) ˗ 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 Nguyễn Thị Hạnh 46 23 07/01/2018 Nguyễn Thị Hạnh 47 ˗ (cid:1) (cid:2) 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ả ˗ 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.
(cid:1) Mỗi Certificate có thể có một định dạng khác nhau,
điều này gây khó khan 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 Nguyễn Thị Hạnh 48 24 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) 07/01/2018 Nguyễn Thị Hạnh 49 X.509 Certificate Format (cid:1) 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 ˗ Thay mới (Certificate Renewal) (cid:1) Private key ứng với Public Key có thể bị thỏa hiệp
(cid:1) CA không muốn chứng nận người dùng nữa
(cid:1) Private Key của CA mà có thể dùng thẩm tra Certificate, có thể đã bị thỏa hiệp (cid:1) (cid:2) CA phát hành danh sách các thu hồi (Certificate Revocation List - CRL) Nguyễn Thị Hạnh 50 25 ˗ Thu hồi (Delta Revocation) 07/01/2018 ˗ 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 Nguyễn Thị Hạnh 51 ˗ ˗ 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 Nguyễn Thị Hạnh 52 26 ˗ Trách nhiệm của PKI: 07/01/2018 Nguyễn Thị Hạnh 53 ˗ Mô hình phân cấp PKI Nguyễn Thị Hạnh 54 27 ˗ Ví dụ: Mô hình phân cấp PKI 07/01/2018 Ví dụ:
˗ A muốn có được Certificates của B để lấy Public Key của B
X< ˗ B muốn có Public Key của A Nguyễn Thị Hạnh 55 Z< 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. Nguyễn Thị Hạnh 56 28 6. Thế nào là tấn công Man-in-the-middle 07/01/2018 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 Nguyễn Thị Hạnh 57 29 khóa công khaiR2 = gy mod p
1.Alice gửi R1 cho Bob (lưu ý là không gửi x).
2.Bob gửi R2 cho Alice (lưu ý là không gửi y).
3.Alice tính Symmetric Key K = (R2)x mod p
4.Bob tính Symmetric key K= (R1)y mod p
5.Giá trị của K giống nhau giữa Alice và Bob:
K=(gx mod p)y mod p=(gy)mod p)x mod p =gxy mod p
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
3.1 Diffie-Hellman Key Agreement
3.2 Station-to-Station Key Agreement
3.2 Station-to-Station Key Agreement
3.2 Station-to-Station Key Agreement
4. PUBLIC-KEY DISTRIBUTION
4.1 Public Announcement
4.2 Trusted Center
4.2 Trusted Center
4.3 Controlled Trusted Center
4.3 Controlled Trusted Center
4.4 Certification Authority
4.4 Certification Authority
4.4 Certification Authority
4.5 X.509
4.5 X.509
4.5 X.509
4.6 Public-Key Infrastructures (PKI)
4.6 Public-Key Infrastructures (PKI)
4.6 Public-Key Infrastructures (PKI)
4.6 Public-Key Infrastructures (PKI)
4.6 Public-Key Infrastructures (PKI)
Câu hỏi và bài tập
Câu hỏi và bài tập