第七章密码协议:73密钥建立认证协议 7.31NS密钥分配协议 基于单钥加密体制设计 需要有一个称为鉴别服务器的可信权威机构(密钥分发中心 KDc),网络中每一用户都与KDc有一共享密钥,称为主密钥 ●KDc为通信双方建立一个短期内使用的密钥,称为会话密钥, 并用主密钥加密会话密钥后分配给两个用户 这种分配密钥的方式在实际应用中较为普遍采用,如 Kerberos 系统采用的就是这种方式 Needham-Schroeder协议 1978年, Needham和 Schroeder设计的著名的采用KDc的密 钥分配过程 若用户A欲与用户B通信,则用户A向鉴别服务器申请会话密钥。 在会话密钥的分配过程中,双方身份得以鉴别 历忠毛孑技*字
7.3.1 NS密钥分配协议 基于单钥加密体制设计 ⚫ 需要有一个称为鉴别服务器的可信权威机构(密钥分发中心 KDC),网络中每一用户都与KDC有一共享密钥,称为主密钥 ⚫ KDC为通信双方建立一个短期内使用的密钥,称为会话密钥, 并用主密钥加密会话密钥后分配给两个用户 ⚫ 这种分配密钥的方式在实际应用中较为普遍采用,如Kerberos 系统采用的就是这种方式 Needham-Schroeder协议 ⚫ 1978年,Needham和Schroeder设计的著名的采用KDC的密 钥分配过程 ⚫ 若用户A欲与用户B通信,则用户A向鉴别服务器申请会话密钥。 在会话密钥的分配过程中,双方身份得以鉴别 22/ 第七章 密码协议:7.3 密钥建立认证协议
第七章密码协议:73密钥建立认证协议 7.31NS密钥分配协议 假定两个用户A、B别与密钥分配中心KDC有一个共享的主密钥K和 KB,A希望与B建立一个共享的一次性会话密钥 ①A→KDC: DID,IN1/A向KDC发出会话密钥请求 ②KDC→A: EKALKSIDBINEKBKSIDAII ③A→B:EKsⅠDA ④B→A:EKsN2 KDC 防重放,防篡改 ⑤A→B:EUN)lm∥DN ② EKLkSIlDa‖ D,leka(k,D川 ●N为一次性随机数,可以 是时戳、计数器或随机数 ③EkK,ID) ●每次的N都应不同,且为 防止假冒,应使敌手对N B ④EN 难以猜测。因此用随机数 作为这个识别符最为合适。 ⑤EN 密钥分配实例 历忠毛孑技*字
7.3.1 NS密钥分配协议 假定两个用户A、B分别与密钥分配中心KDC有一个共享的主密钥KA和 KB,A希望与B建立一个共享的一次性会话密钥 23/ 第七章 密码协议:7.3 密钥建立认证协议 KDC A ① IDA||IDB||N1 ② EKA[Ks||IDA||IDB||N1||EKB(Ks,IDA)] B ③ EKB(Ks,IDA) ④ EKs[N2] ⑤ EKs[f(N2)] 密钥分配实例 ⚫ ① A→KDC:IDA‖IDB‖N1 // A向KDC发出会话密钥请求 ⚫ ② KDC→A:EKA[KS ‖IDB‖N1 ‖EKB[KS ‖IDA]] ⚫ ③ A→B: EKB[KS ‖IDA] ⚫ ④ B→A: EKS[N2 ] ⚫ ⑤ A→B: EKS[f(N2 )] N1为一次性随机数,可以 是时戳、计数器或随机数 每次的N1都应不同,且为 防止假冒,应使敌手对N1 难以猜测。因此用随机数 作为这个识别符最为合适。 防重放,防篡改
第七章密码协议:73密钥建立认证协议 7.31NS密钥分配协议 ●协议的目的是由KDC为A、B安全地分配会话密钥Ks A在第②步安全地获得了Ks 第③步的消息仅能被B解读,因此B在第③步安全地获得了Ks 第④步中B向A示意自己已掌握K,N2用于向A询问自己在第③步收 到的K是否为一新会话密钥, 第⑤步A对B的询问作出应答,一方面表示自己已掌握Ks,另一方面 由N2)答了Ks的新鲜性。 第④、⑤两步用于防止对第③步的重放攻击 ●以上协议易遭受另一种重放攻击 假定敌手能获取旧会话密钥,则冒充A向B重放第③步的消息后,就 可欺骗B使用旧会话密钥 敌手进一步截获第④步B发出的询问后,可假冒A作出第⑤步的应答 敌手就可冒充A使用经认证过的会话密钥向B发送假消息 历蟓毛孑拌技大字 24/
7.3.1 NS密钥分配协议 协议的目的是由KDC为A、B安全地分配会话密钥KS ⚫ A在第②步安全地获得了KS ⚫ 第③步的消息仅能被B解读,因此B在第③步安全地获得了KS ⚫ 第④步中B向A示意自己已掌握KS,N2用于向A询问自己在第③步收 到的KS是否为一新会话密钥, ⚫ 第⑤步A对B的询问作出应答,一方面表示自己已掌握KS,另一方面 由f(N2 )回答了KS的新鲜性。 ⚫ 第④、⑤两步用于防止对第③步的重放攻击 以上协议易遭受另一种重放攻击 ⚫ 假定敌手能获取旧会话密钥,则冒充A向B重放第③步的消息后,就 可欺骗B使用旧会话密钥 ⚫ 敌手进一步截获第④步B发出的询问后,可假冒A作出第⑤步的应答 ⚫ 敌手就可冒充A使用经认证过的会话密钥向B发送假消息 24/ 第七章 密码协议:7.3 密钥建立认证协议
第七章密码协议:73密钥建立认证协议 7.31NS密钥分配协议 (2) Needham-Schroeder协议的改进方案之 ●在第②步和第③步加上一时戳,改进后的协议如下: ①A→KDC:mADB ②KDC→A: ExALKsⅠ DBIITIEK区sDT ③A→B: EKBIKSIID4 ④B→A:EKSN1 ●⑤A→B: EKSI(N 其中T是时戳,用以向A、B双方保证K的新鲜性。A和B可通过下式检 查T的实时性: ● Clock-7<t1+2 Clock为用户(A或B)本地的时钟 ●At1是用户本地时钟和KDC时钟误差的估计值 A2是网络的延迟时间 历忠毛孑技*字
7.3.1 NS密钥分配协议 (2) Needham-Schroeder协议的改进方案之一 在第②步和第③步加上一时戳,改进后的协议如下: ⚫ ① A→KDC:IDA‖IDB ⚫ ② KDC→A:EKA[KS ‖IDB‖T‖EKB[KS ‖IDA‖T]] ⚫ ③ A→B:EKB[KS ‖IDA‖T] ⚫ ④ B→A:EKS[N1 ] ⚫ ⑤ A→B:EKS[f(N1 )] 其中T是时戳,用以向A、B双方保证KS的新鲜性。A和B可通过下式检 查T的实时性: ⚫ |Clock-T|<Δt1+Δt2 ⚫ Clock为用户(A或B)本地的时钟 ⚫ Δt1是用户本地时钟和KDC时钟误差的估计值 ⚫ Δt2是网络的延迟时间 25/ 第七章 密码协议:7.3 密钥建立认证协议
第七章密码协议:73密钥建立认证协议 7.31NS密钥分配协议 T是经主密钥加密的,所以敌手即使知道旧会话密钥,并 在协议的过去执行期间截获第③步的结果,也无法成功 地重放给B 因B对收到的消息可通过时戳检查其是否为新的 ≥以上改进还存在以下问题: 方案主要依赖网络中各方时钟的同步,这种同步可能会 由于系统故障或计时误差而被破坏 等待重放攻击:如果发送方的时钟超前于接收方的时钟 敌手就可截获发送方发出的消息,等待消息中时戳接近 于接收方的时钟时,再重发这个消息 这种重放可造成重复接收等问题 历忠毛孑技*字
7.3.1 NS密钥分配协议 ⚫ T是经主密钥加密的,所以敌手即使知道旧会话密钥,并 在协议的过去执行期间截获第③步的结果,也无法成功 地重放给B ⚫ 因B对收到的消息可通过时戳检查其是否为新的 以上改进还存在以下问题: ⚫ 方案主要依赖网络中各方时钟的同步,这种同步可能会 由于系统故障或计时误差而被破坏 ⚫ 等待重放攻击:如果发送方的时钟超前于接收方的时钟, 敌手就可截获发送方发出的消息,等待消息中时戳接近 于接收方的时钟时,再重发这个消息 ⚫ 这种重放可造成重复接收等问题 26/ 第七章 密码协议:7.3 密钥建立认证协议