安全性:
具備了機密性、完整性、身份認證、不可夠人四個特性,通信雙方的安全才有保證,才是真正的安全。
HTTPS 協議:
規定了新的協議名“https”,默認埠號 443,其他的什么請求 - 應答模式、報文結構、請求方法、URI、頭欄位、連接管理等等都完全沿用 HTTP,但是埠號不同和去掉明文傳輸。
HTTPS在tcp/ip與http之間增加了TLS/SSL安全協議。從原來的 HTTP over TCP/IP 變成了 HTTP over SSL/TLS,讓 HTTP 運行在 安全的 SSL/TLS 協議上。

SSL 即安全套接層(Secure Sockets Layer)
是一個非常好的安全通信協議。
TLS(傳輸層安全,Transport Layer Security)
TLS 由記錄協議、握手協議、警告協議、變更密碼規范協議、擴展協議等幾個子協議組成,綜合使用了對稱加密、非對稱加密、身份認證等許多密碼學前沿技術。這種組合加密演算法叫密碼套件(cipher suite),套件命名很有規律,
比如“ECDHE-RSA-AES256-GCM-SHA384”。按照 密鑰交換演算法 + 簽名演算法 + 對稱加密演算法 + 摘要演算法”組成的:
這個套件的意思就是:使用 ECDHE 演算法進行密鑰交換,使用 RSA 簽名和身份驗證,握手后使用 AES 對稱加密,密鑰長度 256 位,分組模式 GCM,訊息認證和亂數生成使用摘要演算法 SHA384
對稱加密
加密和解密使用的密鑰都是同一個,是 “對稱的”。雙方只要保證不會有泄露其他人知道這個密鑰,通信就具有機密性。對稱加密演算法常見的有 RC4、DES、3DES、AES、ChaCha20 等,但前三種演算法都被認為是不安全的,通常都禁止使用,目前常用的只有 AES 和 ChaCha20。AES 的意思是“高級加密標準”(Advanced Encryption Standard),密鑰長度可以是 128、192 或 256。它是 DES 演算法的替代者,安全強度很高,性能也很好,而且有的硬體還會做特殊優化,所以非常流行,是應用最廣泛的對稱加密演算法。

非對稱加密
由兩個密鑰組成,分別是 公鑰(public key) 和 “私鑰(private key)”,兩個密鑰是不一樣的,這也就是不對稱的由來,公鑰可以任何人使用,私鑰則自己保密。公鑰和私鑰都可以用來加密解密,公鑰加密的密文只能用私鑰解密,反之亦然。
TLS 中常見的加密演算法有 DH、RSA、ECC、DSA 等。其中的 RSA 最常用,它的安全性基于“整數分解”的數學難題,使用兩個超大素數的乘積作為生成密鑰的材料,想要從公鑰推算出私鑰是非常困難的。
ECC(Elliptic Curve Cryptography)是非對稱加密里的“后起之秀”,它基于“橢圓曲線離散對數”的數學難題,使用特定的曲線方程和基點生成公鑰和私鑰,子演算法 ECDHE 用于密鑰交換,ECDSA 用于數字簽名。

對稱加密和非對稱加密組合模式:
加密流程如下所示:
先創建一個亂數的對稱加密密鑰,會話密鑰(session key);
使用會話密鑰加密需要傳輸的明文訊息,因為對稱加密性能較好,接著再使用非對稱加密的公鑰對會話密鑰加密,因為會話密鑰很短,通常只有 16 位元組或 32 位元組,所以加密也不會太慢。這里主要就是解決了非對稱加密的性能問題,同時實作了會話密鑰的機密交換。
另一方接收到密文后使用非對稱加密的私鑰解密出上一步加密的 會話密鑰,接著使用會話密鑰解密出加密的訊息明文。

摘要演算法
摘要演算法的主要目的就是實作完整性,通過常見的散列函式、哈希函式實作。同時摘要演算法是單向加密演算法,沒有密鑰,加密后的資料也無法解密,也就是不能從“摘要”推匯出明文。比如我們聽過或者用過的 MD5(Message-Digest 5)、SHA-1(Secure Hash Algorithm 1),它們就是最常用的兩個摘要演算法,能夠生成 16 位元組和 20 位元組長度的數字摘要
完整性
完整性還是要建立在機密性上,我們結合之前提到的混合加密使用 ”會話密鑰“ 加密明文訊息 + 摘要,這樣的話黑客也就無法得到明文,無法做修改了。這里有個專業術語叫“哈希訊息認證碼(HMAC)”。

數字簽名
使用非對稱加密的“私鑰”加密原文的摘要,對方則使用非對稱加密的公鑰解密出摘要,再比對解密出的原文通過摘要演算法計算摘要與解密出的摘要比對是否一致。這樣就能像簽署檔案一樣證明訊息確實是你發送的。

CA
CA 對公鑰的簽名認證也是有格式的,不是簡單地把公鑰系結在持有者身份上就完事了,還要包含序列號、用途、頒發者、有效時間等等,把這些打成一個包再簽名,完整地證明公鑰關聯的各種資訊,形成“數字證書”(Certificate)。
OpenSSL
OpenSSL 是著名的開源密碼學工具包,是 SSL/TLS 的具體實作。
總結
HTTPS 主要就是通過 SSL/TLS 實作安全,而安全我們又接觸了什么是對稱加密與非對稱加密,非對稱加密性能較弱,所以我們使用非對稱加密來加密對稱加密的“會話密鑰”,利用會話密鑰加密明文解決了性能問題。
通過混合加密實作了機密性,利用摘要演算法實作了完整性,通過數字簽名使用非對稱加密的“私鑰”加密原文的摘要,對方則使用非對稱加密的公鑰解密出摘要,再比對解密出的原文通過摘要演算法計算摘要與解密出的摘要比對是否一致實作了身份認證與不可否認。
ps:此文純粹筆記形式記錄一些web開發相關技術知識,上述材料參考:https://mp.weixin.qq.com/s/ktVwWoEKq4mNAhGpaABTKA

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/56993.html
標籤:其他
