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[r]
Trang 1Phân phối khóa
Trang 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
Trang 3Sự 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
Trang 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?
Trang 5Giao 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
Trang 6• 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
với TGS
với Service Provider
Trang 7• 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)