Bài giảng An ninh mạng - Chương 4.1: Phân phối khóa - Trần Trung Dũng

pdf 17 trang hoanguyen 2911
Bạn đang xem tài liệu "Bài giảng An ninh mạng - Chương 4.1: Phân phối khóa - Trần Trung Dũng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_an_ninh_mang_chuong_4_phan_phoi_khoa_tran_trung_du.pdf

Nội dung text: Bài giảng An ninh mạng - Chương 4.1: Phân phối khóa - Trần Trung Dũng

  1. Phân phối khóa
  2. • Tại sao cần trung tâm phân phối khóa ? • Master keys vs Session keys. • Phân phối phân cấp và phân phối không tập trung
  3. Sự cần thiết của trung tâm phân phối khóa (KDC) • Giả sử có một nhóm người/ tiến trình muốn giao tiếp với nhau một cách an toàn. Và các thành phần tham gia này có thể gia nhập hoặc rời nhóm bất kì thời điểm nào. • Giải pháp nhìn thấy ngay là mỗi thành phần tham gia phải giữ khóa bí mật để trao đổi với tất cả các thành phần còn lại. Như vậy hai thành phần nào đó dễ dàng thiết lập kênh truyền bảo mật. • Cách tiếp cận này không khả thi, nhất là khi số lượng tham gia lớn và thường xuyên thay đổi. • Giải pháp hiệu quả hơn là cung cấp cho mỗi thành viên một khóa để giao tiếp với KDC. Khóa này là Master key
  4. • Khi A muốn thiết lập kết nối bảo mật với B thì A yêu cầu một sesion key từ KDC • Các vấn đề phát sinh: – Giả sử A yêu cầu session key từ KDC, khi A nhận đc khóa từ thì làm sao A xác định khóa đó chính là từ KDC – Khi A tạo kết nối với B, thì làm sao B biết đó chính là A – Khi A nhận trả lời từ B thì làm sao A biết đó chính xác là từ B – Thời hạn sử dụng của session key nên là bao lâu?
  5. Giao thức phân phối khóa Needham- Schroeder • Giả thiết A muốn tạo kết nối an toàn với B. • KA, KB là master key của A và B để giao tiếp với KDC • A thực hiện theo giao thức sau: – A sử dụng KA để mã hóa yêu cầu session key giao tiếp với B – Thông điệp gửi từ A gồm có: địa chỉ A (IDA), địa chỉ B (IDB), và một session indentifier (còn gọi là nonce – number used once, kí hiệu N1). – Giá trị nonce phải khác nhau ở các yêu cầu khác nhau được gửi từ A
  6. • A KDC: E(KA, [IDA, IDB, N1]) • KDC A: E(KA, [KS, IDA, IDB ,N1, E(KB, [KS, IDA]) ]) • Chỉ có A và KDC biết session key KA msg là nhận từ KDC • A gửi cho B gói mới nhận và gửi cho B đã giải mã: E(KB, [KS, IDA]) • B giải mã gói tin nhận được và so sánh IDA với địa chỉ người gửi khẳng định chính A chứ không phải người khác.
  7. • B A: E(KS, [N2]) N2: nonce 2 • A B: E(KS, [N2] + 1)
  8. Các tiếp cận của trung tâm phân phối khóa • Không thực tế nếu một mạng lớn chỉ có 1 trung tâm phân phối khóa • Phân cấp: – Cùng domain thì sử dụng KDC nội bộ – Khi khác domain thì có thể sử dụng KDC cấp độ cao hơn • Không tập trung – Chia thành nhiều nhóm, mỗi node sẽ phải giữ master keys của tất cả các nhóm.
  9. Kerberos • Kerberos là giao thức xác thực (authentication protocol) cho ứng dụng client-server. • Kerberos cũng sử dụng KDC như Needham- Schroeder. • Kerberos chi tiết hơn trong việc sử dụng KDC • Kerberos giúp user sử dụng đa dịch vụ trong mạng dễ dàng hơn.
  10. • FTP server: phương thức đăng nhập trực tiếp có thể vẫn chưa đủ an toàn. • Kerberos cung cấp giải pháp an toàn hơn
  11. Giao thức Kerberos • Client: nơi muốn tạo kênh giao tiếp an toàn với Service Provider • Service Provider: server cung cấp dịch vụ • Authentication Server (AS): server lưu khóa bí mật của tất cả user • Ticket Granting Server (TGS): server cung cấp session key giúp client và Service Provider xác thực lẫn nhau • Key Distribution Center (KDC): AS + TGS = KDC
  12. • KClient: khóa bí mật lưu bởi AS và client • KTGS: khóa bí mật lưu bởi AS và TGS • KSP: khóa bị mật lưu bởi AS và Service Provider • KClient-TGS: session key mà AS sẽ gửi để client giao tiếp với TGS • KClient-SP: session key mà TGS sẽ gửi để client giao tiếp với Service Provider
  13. • 1. gửi yêu cầu dịch vụ •  2. E(KClient, [KClient−TGS]) •  3. E(KClient, [KClient−TGS,E(KTGS, [C_ID, C_IP, ValidPeriod, KClient−TGS])]) • 4. E(KTGS, [C_ID, C_IP, ValidPeriod, KClient−TGS]) • 5. E(KClient-TGS, Client Authenticator: C_ID + timestamp) •  6. E(KSP, [C_ID, C_IP, ValidPeriod, KClient-SP]) • 7. E(KClient-TGS, KClient-SP) • 8. E(KSP, [C_ID, C_IP, ValidPeriod, KClient-SP]) • 9. E(KClient-SP, Authenticator : C_ID + timestamp)