比如說bob有乙個**bob.cn,bob生成了一對公私鑰,其把個人身份及公鑰傳送給ca登記機構,ca登記機構驗證bob的身份,比如是個dv證書,就看證書所對應的網域名稱是不是你的,網域名稱是不是指向你的伺服器。登記機構驗證通過之後,就會把證書簽名申請傳送給ca機構,ca機構用其私鑰簽名之後,頒發證書給bob.cn**。bob就可以在其web伺服器上部署證書。
在機構證書中,使用到了非對稱加密的驗籤,比如我們伺服器的nginx中會配置ssl.cert,以及ssl.key(private key)(私鑰中包含了公鑰)。
client傳送hello,client會告訴server,我支援哪些安全套件
server傳送hello,server告訴client,我選擇哪個安全套件,比如選定了某個橢圓曲線
tls安全密碼套件:
金鑰交換演算法:ecdhe
身份驗證演算法:rsa
對稱加密演算法:aes_128_gcm
簽名hash演算法:sha_256
server傳送證書,用於認證伺服器的身份
當client拿到這個證書之後,其如何進行驗籤呢?
其首先提取成兩部分,第一部分就是**身份資料,通過證書提供的乙個hash演算法,生成乙個hash值。
第二部分是我們用ca證書私鑰簽名後的密文,用ca機構的公鑰驗籤,如果驗籤成功,就說明這塊內容確實是ca結構所加密的,也就是驗證了ca機構的合法性。
再檢查兩段hash值,匹配則驗籤成功。
server傳送伺服器所生成的clientkey(這個是dh金鑰交換所使用的)
server 傳送 hello done
2到5步可以認為是同時傳送的
也就是1到5步 只消耗了乙個rtt
client也生成乙個clientkey,傳送給伺服器端(這個是dh金鑰交換所使用的)
這裡就完成了dh秘鑰交換協議,dh金鑰交換原理,參考:從數學角度講解dh金鑰交換演算法、非對稱加密、數字簽名
兩端同時生成對稱加密金鑰
後面就可以基於這個加密金鑰進行加密通訊了
6到8步,也是乙個rtt,所以握手是兩個rtt
參考:**charles抓取https原理
TLS握手過程
客戶端與伺服器商議通訊金鑰的過程稱為tls握手,在握手階段,通訊內容雖然都是明文,但要保證最終商量的金鑰只有客戶端和伺服器知道,其他中間節點無從得知。rsa握手過程說明 生成master secret 以及從master secret中得到session key mastersecret gener...
TLS握手秘鑰套件分析
1 為了弄清楚tls1.3的內部結構,覺得有必要將tls的整個結構從新整理一遍,方便後續在做握手協議的形式化分析的時候能夠不遺漏每個加密和認證的的環節。tls1.3不 在協議內容上還是效能上都較之前的tls1.2版本有較大的改變,這裡首先概括性的表徵一下存在的差異 更換了新的密碼套件,舊的密碼套件不...
HTTPS協議 TLS協議 證書認證過程解析
非對稱加解密 非對稱加密包含乙個金鑰對 公鑰和私鑰。公鑰可以公開,私鑰必須安全儲存。https建立連線時時非對稱加密,建立連線後是對稱加密 android官網https詳細 如上圖所示,資料可以被公鑰加密,加密後的資料只有持有私鑰才能進行解密。同理私鑰加密的資料,也只有對應的公鑰才能解密。建立htt...