探索SSL密碼學的幕後

wuzhengxiansheng發表於2019-04-10

   一、背景

  SSL(安全套接字層)是一種標準的安全技術,用於在伺服器和客戶端之間建立加密連結,通常作用於Web伺服器(網站)和瀏覽器,或郵件伺服器和郵件客戶端的資訊加密。 網站透過安裝SSL證書可以安全地傳輸身份證號,手機號等敏感資訊。

  因此要建立安全連線,瀏覽器和伺服器需要SSL證書。那麼,SSL是如何實現資料加密的呢?以至於沒有人可以破解它?接下來讓我們一起去探索SSL加密幕後工作的技術。

  SSL涵蓋了非對稱金鑰和對稱金鑰以及它們如何協同工作建立SSL加密連線。SSL透過不同型別的演算法,使它們形成幾乎不可能破解的數學方程式。

   二、非對稱加密

  非對稱加密演算法需要兩個金鑰:公開金鑰和私有金鑰。公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,那麼只有用對應的公鑰才能解密。加密和解密使用的是不同非對稱加密(或公鑰加密)單獨進行加密和解密。任何人都可以使用加密金鑰(公鑰)來加密訊息,但是,解密金鑰(私鑰)是機密的。這樣,只有預期的接收者才能解密該訊息,最常見的非對稱加密演算法是RSA。什麼是RSA?後面會有解釋。

  非對稱金鑰通常為1024或2048位。但是,小於2048位的金鑰不再被認為是安全的。2048位金鑰是唯一足夠的加密程式碼,雖然可以建立更大的金鑰,但是會增加計算的負擔,因此很少使用大於2048位的金鑰。從破解的角度來看,普通計算機破解2048位SSL證書需要超過140億年。

   三、對稱加密

  對稱加密(或預共享金鑰加密)使用單個金鑰來加密和解密資料。傳送方和接收方都需要相同的金鑰才能進行通訊。

  對稱金鑰大小通常為128或256位(金鑰大小越大,金鑰越難破解)。 例如,128位金鑰具有340,282,366,920,938,463,463,374,607,431,768,211,456加密程式碼的可能性。 正如您可以想象的那樣,“暴力攻擊”(攻擊者嘗試每個可能的金鑰,直到找到正確的金鑰)將花費相當多的時間來破解。

  是使用128位還是256位金鑰取決於伺服器和客戶端軟體的加密功能。 SSL證書不指定使用的金鑰大小。

  非對稱金鑰與對稱金鑰哪個更強?

  由於非對稱金鑰大於對稱金鑰,因此非對稱加密的資料比對稱加密的資料更難破解。但是,這並不意味著非對稱金鑰更好。這些金鑰不應透過它們的大小進行比較,而應透過“計算負擔”和“易於分發”屬性進行比較。

  對稱金鑰小於非對稱金鑰,因此它們只需較少的計算負擔。但是,對稱金鑰也有一個主要缺點,特別是使用它們來保護資料傳輸的時候。由於相同的金鑰用於對稱加密和解密,因此您和收件人都需要金鑰。如果您告訴收件人鑰匙,該問題就不存在。但是,如果您將金鑰傳送給世界各地的使用者,這時候資料安全將不會得到保障。

  而非對稱加密沒有這個問題,只要您保密私鑰,任何人都無法解密您的郵件。您可以分發相應的公鑰,而無需擔心誰獲得它。擁有公鑰的任何人都可以加密資料,但只有擁有私鑰的人才能對其進行解密。

   SSL證書是如何使用非對稱和對稱加密?

  公鑰基礎結構(PKI)是建立、管理、分發、使用、儲存和撤銷數字證書所需的一組硬體。SSL證書頒發機構(CA)透過PKI將金鑰與使用者身份繫結, PKI使用混合密碼系統,並且可以使用這兩種型別的加密。例如,伺服器的SSL證書包含非對稱公鑰和對稱私鑰,伺服器和瀏覽器在SSL握手期間建立的會話金鑰是對稱的。如圖:

  1. 伺服器傳送其非對稱公鑰的副本。

  2. 瀏覽器建立對稱會話金鑰,並使用伺服器的非對稱公鑰對其進行加密。然後將其傳送到伺服器。

  3. 伺服器使用其非對稱私鑰解密加密的會話金鑰以獲得對稱會話金鑰。

  4. 伺服器和瀏覽器使用對稱會話金鑰加密和解密所有傳輸的資料。這是被允許的安全通道,因為只有瀏覽器和伺服器知道對稱會話金鑰,並且會話金鑰僅用於該會話。 如果瀏覽器第二天要連線到同一伺服器,則會建立一個新的會話金鑰。

   四、公鑰加密演算法

  公鑰加密(非對稱)使用RSA和橢圓曲線加密(ECC)等加密演算法來建立公鑰和私鑰。

  透過非對稱加密,可以輕鬆地生成公鑰和私鑰,使用公鑰加密訊息,以及使用私鑰解密訊息。但是,任何人都很難(或不可能)僅基於公鑰匯出私鑰。

  RSA

  RSA基於假定的大於整數因子分解(整數分解)。在假設不存在用於整數分解的有效演算法的情況下,認為RSA密文的完全解密是不可行的。

  RSA的使用者建立併發布兩個大於質數的乘積以及輔助值作為其公鑰。任何人都可以使用公鑰來加密訊息,但只有瞭解主要因素的人才能解碼。

  RSA代表Ron Rivest,Adi Shamir和Leonard Adleman-- 1977年首次公開描述該演算法的人。

  ECC

  橢圓曲線密碼學(ECC)依賴於有限域上橢圓曲線的代數結構。1985年,Neal Koblitz和Victor S. Miller獨立地提出了在密碼學中使用橢圓曲線; ECC演算法於2004年投入使用。

  ECC演算法優於RSA的優點是金鑰可以更小,從而提高了速度和安全性。 缺點在於並非所有服務和應用程式都可使用基於ECC的SSL證書。

   五、預共享金鑰加密演算法

  預共享金鑰加密(對稱)使用Twofish,AES或Blowfish等演算法來建立目前最受歡迎的金鑰-AES。 所有這些加密演算法分為兩種型別:流密碼和分組密碼。流密碼將加密金鑰和演算法應用於資料流中的每個二進位制數字,一次一位。 分組密碼將加密金鑰和演算法作為一組應用於資料塊(例如,64個連續位),分組密碼是目前最常用的對稱加密演算法。

  透過探索SSL密碼學的幕後基本上可以看出SSL證書的加密系統是多麼的強大,為網站安裝SSL證書將成為未來網際網路的一種趨勢。

文章來源:安信SSL證書()


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900059/viewspace-2640918/,如需轉載,請註明出處,否則將追究法律責任。

相關文章