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.
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
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:
- bai_giang_an_toan_he_thong_thong_tin_chuong_5_quan_ly_va_pha.pdf