網際網路加密技術應用

說明:本文不會深入探究加密算法,只談應用。下面這些東西,如果你都瞭解其作用,本文你對來說幫助不大,沒必要在這裡浪費時間。(MD5、SHA1、SHA256、DES、3DES、AES、RSA)

互聯網加密技術應用


1. 常見的加密技術

這些加密技術可以分為3類:

  • 哈希算法(談不上加密)

  • 對稱加密

  • 非對稱加密

1.1 哈希算法(MD5/SHA1/SHA256)

哈希算法並不是加密技術,放到這裡只是為了讓讀者更方便理解加密技術的應用案例。Hash是不可逆的,既然不可逆,那麼當然不能用來加密,而是用來做內容摘要,也就是內容簽名。

  • MD5:消息摘要算法第五版(1991年提出的),用於產生128位的消息摘要。

  • SHA1:安全哈希算法,主要用於數字簽名算標準裡面定義的數字簽名算法。對於長度小於2^64位的消息,SHA1會產生一個160位的消息摘要。當接收到消息的時候,這個消息摘要可以驗證數據的完整性,若發生變化,摘要會發生變化。

  • SHA256:算法的哈希值大小為256位,生成256位的消息摘要。

山東大學王小云教授在2004年成功破解了MD5,這裡的破解實際上加快了MD5哈希值的碰撞。

1.2 對稱加密(DES/3DES/AES)

  • DES:Data Encryption Standard即數據加密標準,是一種對稱加密算法。現在使用的已經不多,如果項目中還在使用,請更換成AES或者更強的非對稱RSA加密算法。

  • AES:Advanced Encryption Standard 高級加密標準,這個標準用來替代原先的DES,可以研究下這個加密模式。 有ECB電子密碼本模式、CBC加密塊鏈模式。

特點:

  • 加密解密使用同一個密鑰,加密解密速度快(https建立SSL後使用對稱加密傳輸內容)

  • 適合給大數據進行加密

  • 密鑰安全性非常重要,千萬不能洩密

1.3 非對稱加密(RSA)

RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數據加密標準。

RSA是公開密鑰密碼的,分為公鑰和私鑰,公鑰任何人都可以知道,公鑰私鑰之間互相加解密。例如公鑰加密->私鑰解密,反之亦然。

RSA密鑰長度有兩種:1024位和2048位,私鑰放在服務端,公鑰對外開放。

RSA加解密速度比較慢,不易用於大量數據的加密通信。這也是為什麼HTTPS在建立連接過程中使用非對稱加密技術,建立連接後使用對稱加密的原因了。

2. 加密技術應用場景

HTTPS應用

互聯網加密技術應用

在建立SSL/TLS連接的過程中使用了非對稱加密和對稱加密技術。主要是因為加解密效率問題:對稱加解密快,非對稱加解密慢。

API接口安全調用

比較典型的是支付寶在調用網關,在使用HTTPS的基礎上,也需要對協議內容進行保護,防止惡意修改交易數據。(其他任何API安全都一樣了)

舉例說明一次網關請求過程:

  1. 網關請求需要對協議體進行簽名,首先要獲得協議體內容的摘要。

  2. 對摘要做非對稱加密得出簽名。

  3. 請求協議體和簽名一起發送到支付寶。

  4. 支付寶端存有公鑰,會完成簽名校驗,這樣就完成了一次網關請求。

互聯網加密技術應用

支付寶前面算法

數字證書的應用

例如CA證書、OpenVPN登錄證書等原理類似,都是綜合利用了加密算法的保障。既然是證書,首先我們的客戶端要認可證書,為什麼證書可信呢?因為證書是專業機構或者組織內絕對可信的人頒發的。

  • 數字簽名:簽名主要包含兩個過程,摘要和非對稱加密,首先對需要簽名的數據做摘要(類似於常見的MD5)後得到摘要結果,然後通過簽名者的私鑰對摘要結果進行非對稱加密即可得到簽名結果。

  • 數字證書:是一個經證書授權中心數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的證書包含一個公開密鑰、證書名稱以及證書授權中心的數字簽名。數字證書還有一個重要的特徵:只在特定的時間段內有效。

以SSL建立連接過程舉例說明:

互聯網加密技術應用

證書在https中的應用


若非專業搞攻防的,理解到這裡就可以很好的利用上面提到的加密技術。我本人不研究算法,僅停留在應用上。 另外,量子力學已經取得不少研究成果,一旦應用起來,上面這些加密技術將不堪一擊。

希望本文能夠幫到你。感謝您閱讀,不足望指正。


分享到:


相關文章: