1. 程式人生 > >HTTPS請求步驟詳解

HTTPS請求步驟詳解

概念

HTTPS可以簡單的理解為HTTP + TLS(SSL),在傳輸層之上多了一層加密層。


HTTPS加密請求過程

HTTPS協議請求時序圖


  • CA:Digital Certificate,數字證書
  • random key:對稱加密的祕鑰
  • 由於非對陣加密效率低下,不適合用於加密操作頻繁且資料量較大的請求內容
  • 生成的random key需要用證書提供的公鑰加密,再傳送給Server端,Server端再解密random key用於加密content

數字證書

作用

數字證書與公鑰密碼體制緊密相關。在公鑰密碼體制中,每個實體都有一對互相匹配的金鑰:公開金鑰(Pubic Key公鑰)和私有金鑰(Private Key私鑰)。公開金鑰為一組使用者所共享,用於加密或驗證簽名,私有金鑰僅為證書擁有者本人所知,用於解密或簽名。

當傳送一份祕密檔案時,傳送方使用接收方的公鑰對該檔案加密,而接收方則使用自己的私鑰解密。因為接收方的私鑰僅為本人所有,其他人無法解密該檔案,所以能保證檔案安全到達目的地。
使用者也可以用自己的私鑰對資訊進行處理,由於私鑰僅為本人所有,所以能生成別人無法仿造的檔案,也就形成了數字簽名。同時,由於數字簽名與資訊的內容相關,因此,一份經過簽名的檔案如有改動,就會導致數字簽名的驗證過程失敗,這樣就保證了檔案的完整性。
以數字證書為核心的加密傳輸、數字簽名、數字信封等安全技術,使得在Internet上可以實現資料的真實性、完整性、保密性及交易的不可抵賴性。

內容

◆Issuer (證書的釋出機構)

指出是什麼機構釋出的這個證書,也就是指明這個證書是哪個公司建立的(只是建立證書,不是指證書的使用者)。對於上面的這個證書來說,就是指"SecureTrust CA"這個機構。

◆Valid from , Valid to (證書的有效期)

也就是證書的有效時間,或者說證書的使用期限。 過了有效期限,證書就會作廢,不能使用了。

◆Public key (公鑰)

這個我們在前面介紹公鑰密碼體制時介紹過,公鑰是用來對訊息進行加密的,第2章的例子中經常用到的。這個數字證書的公鑰是2048位的,它的值可以在圖的中間的那個對話方塊中看得到,是很長的一串數字。

◆Subject (主題)

這個證書是釋出給誰的,或者說證書的所有者,一般是某個人或者某個公司名稱、機構的名稱、公司網站的網址等。 對於這裡的證書來說,證書的所有者是Trustwave這個公司。

◆Signature algorithm (簽名所使用的演算法)

就是指的這個數字證書的數字簽名所使用的加密演算法,這樣就可以使用證書釋出機構的證書裡面的公鑰,根據這個演算法對指紋進行解密。指紋的加密結果就是數字簽名(第1.5節中解釋過數字簽名)。

◆Thumbprint, Thumbprint algorithm (指紋以及指紋演算法)

這個是用來保證證書的完整性的,也就是說確保證書沒有被修改過,這東西的作用和2.7中說到的第3個問題類似。 其原理就是在釋出證書時,釋出者根據指紋演算法(一個hash演算法)計算整個證書的hash值(指紋)並和證書放在一起,使用者在開啟證書時,自己也根據指紋演算法計算一下證書的hash值(指紋),如果和剛開始的值對得上,就說明證書沒有被修改過,因為證書的內容被修改後,根據證書的內容計算的出的hash值(指紋)是會變化的。 注意,這個指紋會使用"SecureTrust CA"這個證書機構的私鑰用簽名演算法(Signature algorithm)加密後和證書放在一起。

數字簽名

用於驗證內容是否被修改