密鑰協商機制


密鑰協商機制,主要來得到通信雙方的臨時會話密鑰。

主要的方式有:

1)依靠非對稱加密算法;   RSA,ECC等。

    防偷窺,防篡改。

  拿到對方公鑰的一方隨機產生會話密鑰,利用公鑰加密,通信使用加密后的信息,通信另一方用私鑰進行解密,

    這樣通信雙方都拿到會話密鑰。

2)專用的密鑰交換算法;     DH,ECDH等。

             DHE,ECDHE等。

    防偷窺,不防篡改。

  只交換產生密鑰的部分數據,各自保證可以產生相同的數據。

3)依靠共享的secret;  PSK,SRP等。

   雙方依靠共享的信息,直接通過相同的kdf function來產生同一密鑰。

 

篡改,中間人攻擊,---Man In The middle attack,MIMT。

 

基於RSA的密鑰協商的過程:

  1)客戶端連上服務器;

  2)服務器發送CA證書給客戶端;

  3)客戶端驗證該證書的可靠性;

  4)客戶端從CA證書中拿到公鑰;

  5)客戶端生成一個隨機密鑰K,用公鑰加密得到K'

  6)客戶端將K'發送給服務器;

  7)服務器得到K'之后,用自己的私鑰解密得到K;

早期的SSLv2使用的一種密鑰協商機制;

 

基於ECC的密鑰協商過程:

  整體流程相同,但是ECC並不是直接對msg進行加解密,而是將公鑰經過hash算法,之后與msg做異或運算。

 

基於DH算法的密鑰協商:

  DH本身是基於離散對數分解問題的,算法過程與進行兩次的RSA類似,

  

  最原始的DH算法並不能對抗MIMT,所以一般需要配合簽名技術,不配合簽名技術的DH稱為,DH-ANON;

    配合RSA簽名的稱為,DH-RSA;

    配合DSA簽名的稱為,DH-DSA;

    配合ECDSA簽名的稱為,DH-ECDSA;

  流程:

  1)客戶端連接上服務器;

  2)服務器端生成一個隨機數S作為自己的私鑰,做模冪運算之后,得到公鑰;

  3)服務器,選擇RSA,ECDSA,DSA的一種,對模冪運算的參數,以及公鑰進行簽名,並發送給客戶端;   //防止服務器被篡改

  4)客戶端驗證簽名是否有效;   //客戶端並不會對簽名進行解密,DH的特性,雙方只交換公鑰,只做加密操作;

  5)客戶端也產生一個隨機數C,加密之后,將公鑰傳給服務器;

  6)客戶和服務器,根據得到的公鑰產生同一個會話密鑰;

 

  DH算法的變種,ECDH算法,數學原理,變為橢圓曲線上的離散對數的分解問題;

  ECDH算法與DH算法類似,但是基礎運算由模冪運算,變為點乘運算,同樣不能防止MIMT;

    需要和其他的簽名算法RSA,DSA,ECDSA配合;

 

前向保密,forward security,最初用來定義會話密鑰交換協議的一種安全性:即使長期密鑰已經泄露,也不會影響之前的會話密鑰的泄露;

  也就不會暴露之前的會話內容

  DH和ECDH算法為了實現前向安全,變種加入了另一個隨機變量,ephemeral key,得到新的算法,DHE,ECDHE,

 

RSA和DH,DSA都是基於整數有限域離散對數來實現;

ECC和ECDH,都是基於橢圓曲線的離散對數難題來實現的;

 

DSA相比較與RSA,DSA只能用作簽名,並且p,q公開,簽名輸出r和s,兩個字符串。

 

SSL/TLS對各個算法的支持;

  


免責聲明!

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



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