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 , không cần bí mật (được công khai).

˗ 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

R2 = 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

Nguyễn Thị Hạnh

28

14

07/01/2018

3.1 Diffie-Hellman Key Agreement

˗ 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;

3.1 Diffie-Hellman Key Agreement

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

3.1 Diffie-Hellman Key Agreement

Nguyễn Thị Hạnh

31

˗ Giá trị của R1, R2, và K là:

3.1 Diffie-Hellman Key Agreement

Nguyễn Thị Hạnh

32

16

Ý tưởng của Diffie-Hellman

07/01/2018

3.1 Diffie-Hellman Key Agreement

Bảo mật của Diffie-Hellman:

1. Discrete Logarithm Attack

Nguyễn Thị Hạnh

33

2. Man-in-the-Middle Attack

3.1 Diffie-Hellman Key Agreement

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 ˗ Bob và Alice phải hũy x và y sau khi tính K; x và y

07/01/2018

3.1 Diffie-Hellman Key Agreement

Nguyễn Thị Hạnh

35

Man-in-the-Middle Attack

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

Nguyễn Thị Hạnh

36

18

Certificates để thiết lập nên session key giữa Alice và Bob

07/01/2018

3.2 Station-to-Station Key Agreement

Nguyễn Thị Hạnh

37

˗

3.2 Station-to-Station Key Agreement

˗ 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

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

Nguyễn Thị Hạnh

39

phân bố như thể nào cho hữu dụng

4.1 Public Announcement

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

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

Nguyễn Thị Hạnh

41

4.2 Trusted Center

Nguyễn Thị Hạnh

42

21

07/01/2018

4.3 Controlled Trusted Center

˗ 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

4.3 Controlled Trusted Center

Nguyễn Thị Hạnh

44

22

˗

07/01/2018

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

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)

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

Nguyễn Thị Hạnh

46

23

07/01/2018

4.4 Certification Authority

Nguyễn Thị Hạnh

47

˗

4.5 X.509

(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

4.5 X.509

Nguyễn Thị Hạnh

49

X.509 Certificate Format

4.5 X.509

(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

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

Nguyễn Thị Hạnh

51

˗

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

Nguyễn Thị Hạnh

52

26

˗ Trách nhiệm của PKI:

07/01/2018

4.6 Public-Key Infrastructures (PKI)

Nguyễn Thị Hạnh

53

˗ Mô hình phân cấp PKI

4.6 Public-Key Infrastructures (PKI)

Nguyễn Thị Hạnh

54

27

˗ Ví dụ: Mô hình phân cấp PKI

07/01/2018

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

Nguyễn Thị Hạnh

55

Z<> Y<> V<>W<>X<>

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.

Nguyễn Thị Hạnh

56

28

6. Thế nào là tấn công Man-in-the-middle

07/01/2018

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

Nguyễn Thị Hạnh

57

29

khóa công khai