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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM