密鑰協商機制

密鑰協商機制

https://www.cnblogs.com/-9-8/p/7985989.html

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

 

一、依靠非對稱加密(公鑰)算法;   RSA,ECC等。
    防偷窺,防篡改。
  拿到對方公鑰的一方隨機產生會話密鑰,利用公鑰加密,通信使用加密後的信息,通信另一方用私鑰進行解密,
    這樣通信雙方都拿到會話密鑰。

二、專用的密鑰交換算法;     DH,ECDH等。
             DHE,ECDHE等。
    防偷窺,不防篡改。
  只交換產生密鑰的部分數據,各自保證可以產生相同的數據。

三、依靠共享的secret;  PSK,SRP等。
   雙方依靠共享的信息,直接通過相同的kdf function來產生同一密鑰。

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

一、依靠RSA或ECC公鑰算法

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

 

  1)客戶端連上服務器;
  2)服務器發送CA證書給客戶端;
  3)客戶端驗證該證書的可靠性;
  4)客戶端從CA證書中拿到公鑰;
  5)客戶端生成一個隨機密鑰K,用公鑰加密得到K'
  6)客戶端將K'發送給服務器;
  7)服務器得到K'之後,用自己的私鑰解密得到K;

(基於RSA的密鑰協商的過程是早期的SSLv2使用的一種密鑰協商機制;)

1.2 基於ECC的密鑰協商過程:

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

二、基於DH/ECDH/DHE/ECDHE算法的密鑰協商:

2.1 DH

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

最原始的DH算法並不能對抗MIMT(中間人攻擊),所以一般需要配合簽名技術:

  • 不配合簽名技術的DH稱爲DH-ANON
  • 配合RSA簽名的稱爲DH-RSA
  • 配合DSA簽名的稱爲DH-DSA
  • 配合ECDSA簽名的稱爲DH-ECDSA

DH協商流程:

  1. 客戶端連接上服務器;
  2. 服務器端生成一個隨機數S作爲自己的私鑰,做模冪運算之後,得到公鑰;
  3. 服務器,選擇RSA,ECDSA,DSA的一種,對模冪運算的參數,以及公鑰進行簽名,併發送給客戶端; 防止服務器被篡改
  4. 客戶端驗證簽名是否有效; 客戶端並不會對簽名進行解密,DH的特性,雙方只交換公鑰,只做加密操作;
  5. 客戶端也產生一個隨機數C,加密之後,將公鑰傳給服務器;
  6. 客戶和服務器,根據得到的公鑰產生同一個會話密鑰;

2.2 ECDH

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

ECDH算法與DH算法類似,但是基礎運算由模冪運算,變爲點乘運算,同樣不能防止MIMT(中間人攻擊);

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

2.3 DHE和ECDH

 

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

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

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

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

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

三、給予PSK預共享密鑰協商通訊密鑰

  • PSK
  • PSK-RSA
  • PSK-ECDSA?

3.2 PSK相關的RFC文檔

  • RFC 4279: "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)".
  • RFC 4785: "Pre-Shared Key (PSK) Ciphersuites with NULL Encryption for Transport Layer Security (TLS)".
  • RFC 5487: "Pre-Shared Key Cipher Suites for TLS with SHA-256/384 and AES Galois Counter Mode".
  • RFC 5489: "ECDHE_PSK Cipher Suites for Transport Layer Security (TLS)".

四、附錄: SSL/TLS對各個算法的支持;

SSL/TLS對各個算法的支持


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章