Needham- Schroeder协议

引出:

Needham-Schroeder协议提出就是为了解决对称密钥的密钥分发问题(可扩展性( Scalability)问题)

                    任意通信两方需要共享不同的密钥

                    1.随着通信的参与者数量的增加

                    2.密钥如何分发,如何管理?

思路:

选定某个参与者作为可信第三方,为其他参与者协商对称密钥。

设有n个通信参与者

  没有可信第三方,需要事先共享n(n-1)2个对称密钥

  有可信第三方,只要每个参与者事先与可信第三方共享一个对称密钥即可,只需要n-1个对称密钥

其余对称密钥(称为会话密钥, session key),在需要的时候,由可信第三方为他们协商

 

Needham-Schroeder协议

基于可信第三方实现密钥分发与身份认证的协议

协议中,可信第三方记作 Trent

Trent又被称作是密钥分发中心(KDC, key distribution center)

  Trent可以服务大量用户,他与这些用户事先共享对称密钥,这些密钥是相对长期的密钥。例如, Trent与A的对称密钥KAT, Trent与B的对称密钥KBT,等等

  用户有通信需求时, Trent为他们生成随机的会话密钥,例如,KAB会话密钥:短期密钥(一次一密),仅对当前会话有效

使用 Trente的服务,可以实现任何两个最终用户之间的安全通信,而无需他们进于物理会面;他们可以运行身份认证协议来建立共享的

会话密钥话结束后,最终用户甚至可以互相忘记对方,会话密钥扔掉

 

 

前提

  Alice和Trent有共享的对称密钥KAT

  Bob和Trent有共享的对称密钥KBT

安全服务(协议运行后)

  完成参与者 Alice,Bob,Trent相互之间的身份认证

  Aice和Bob建立新的他们共享的会话密钥K

 

协议过程:

 

 

1 . Alice creates NA, at random and sends to Trent:Alice , Bob , NA

2 . Trent generates K at random and sends to Alice : {NA , K , Bob ,{K , Alice}KBT KAT

3 . Alice decrypts , checks he nonce N , checksBob's ID and sends to Bob : Trent,{K , Alice}KBT

4 . Bob decrypts , checks Allice's ID , creates random N ; and sends to Alice :{I ' m Bob ! NB} K

5 . Alice sends to Bob : {I'm Alice ! NB-1}K

 

对Needham- Schroeder协议的一种攻击:(中间人攻击)

 

 1.and 2.(same as in a normal run)

3. Alice sends to Malice("Bob")...

3'. Malice("Alice") sends to Bob: {K', Alice}KBT;

4. Bob decrypts, checks Alices ID and sends to Malice(Alice ) :{I'm Bob! NB}K'

5. Malice("Alice")sends toBob: {I'm Alice! NB-1}K'

 

对 Needham-Schroeder攻击的分析:

攻击解释:Bob认为他正在与Alice共享一个新的会话密钥,而实际上该密钥是一个旧密钥,而且可能会被Malice知道了。

改进措施: Using Timestamp      (使用时间戳,保证消息的鲜活性)

1.4.5 Same as in the Needham-schroeder

2. Trent sends to Alice: {bob,K,T, (Alice,K,T)KBT}KAT

3. Alice sends to Bob: {alice,K,T}KBT

A,B均检验  |Clock-T1|<△t1+△t2

posted @ 2020-03-26 11:22  SjYu  阅读(5933)  评论(0编辑  收藏  举报