DH 與RSA的區別

有一朋友這樣問到「dh是密鑰協商交換用的,爲何只有在服務器上有dh.pem文件,而客戶端裏沒有,我就不明白了,客戶端與服務器都有rsa公私鑰了,能夠傳輸對稱密鑰了,爲何還須要dh算出對稱密鑰呢?」算法

咱們先一下,Open×××的man幫助是如何說dh選項的。
--dh file
File containing Diffie Hellman parameters in .pem format (required for --tls-server only).安全

Set file=none to disable Diffie Hellman key exchange (and use ECDH only). Note that this requires peers to be using an SSL library that supports ECDH TLS cipher suites(e.g. OpenSSL 1.0.1+, or mbed TLS 2.0+).服務器

Use openssl dhparam -out dh2048.pem 2048 to generate 2048-bit DH parameters. Diffie Hellman parameters may be considered public.ide

一、使用階段不一樣:DH用於TLS握手期間,RSA是用於數據通訊階段。ui

二、若是沒有這個選項,啓動Open×××服務器會出錯 Options error: You must define DH file (--dh)this

那麼什麼是Diffie-Hellman參數文件?
迪菲·赫爾曼密鑰交換(Diffie–Hellman key exchange,簡稱「D–H」) 是一種安全協議。它可讓雙方在徹底沒有對方任何預先信息的條件下經過不安全信道建立起一個密鑰。這個密鑰能夠在後續的通信中做爲對稱密鑰來加密通信內容。這個DH參數不是安全敏感的,因此只要在Open×××服務器有一份就能夠了,並且即便被第三方拿到了,也無所謂。加密

若是想深刻一些,能夠這樣來理解:orm

一、RSA和DH都基於非對稱算法。server

二、RSA: 經常使用的示例是Alice向Bob發送消息,並使用Bob的公鑰加密消息。向Bob發送消息。鮑勃用他的私鑰解密。驗證簽名以確保Alice發送簽名。該消息將成爲對稱加密密鑰。這是用於保護鏈接的內容。ip

三、DH Diffie Hellman交換依賴於生成祕密值的兩個單獨實體。經過一些數學算法,他們都可以產生共同的密鑰值。這是一個對稱密鑰。

四、使用RSA,能夠進行加密和簽名的密鑰對。使用DH,只執行加密,沒有簽名機制。

相關文章
相關標籤/搜索