Encryption
使用ECC時pre-master secret如何加密?
https://de.wikipedia.org/wiki/Authenticated_Encryption中使用的證書 有
- 公鑰ECC
- 公鑰參數 ECDSA
- 密鑰使用數字簽名
它用於設置安全的 TLS 連接。
到目前為止,我知道,所謂的 pre-master-secret 是由客戶端 ant 生成的,它使用其證書加密發送到伺服器。
但是在這種情況下使用什麼加密原語進行加密呢?公鑰用於數字簽名 ECDSA,但簽名不是加密。
那麼預主密鑰是如何加密的呢?
那麼預主密鑰是如何加密的呢?
它不是。
您正在查看的是
ECDHE
TLS 的密鑰交換。簡短的描述是伺服器和客戶端執行經典的Diffie-Hellman 密鑰交換(在橢圓曲線上),並將生成的共享密鑰用作預主密鑰。這與 RSA 密鑰傳輸的情況不同,在這種情況下,客戶端選擇預主密鑰並將公鑰加密的副本發送到伺服器。
現在了解技術細節(來自RFC 5246:“傳輸層安全性 (TLS) 協議版本 1.2”):
客戶端發送其支持的密碼套件列表
ClientHello
(TLS_ECDHE_ECDSA_CHACHA20_POLY1305
在案例(發生在ServerHello
)。在同一執行中,伺服器發送其公共的、臨時的 ECDH 密鑰(inServerKeyExchange
),這很可能是 Curve25519 的一個點。客戶端收到這個並用他的公鑰(又是一個點)進行響應,客戶端還計算共享點,然後使用完整的 x 座標作為預主密鑰. 一旦伺服器接收到客戶端的公鑰,它也會計算預主密鑰(即共享點的 x 座標)。現在雙方共享相同的預主密鑰,使用 ECDHE 交換。