网络夺命连环问1--说一下HTTPS咋保证通信安全的
目錄
- 說一下HTTPS咋保證通信安全的?
- 談談對稱加密與非對稱加密的區別
- 談談機密性怎么實現的?
- 談談完整性怎么實現的?
- 怎么實現身份認證和不可否認呢?
- 公鑰的信任問題怎么解決?怎么判斷公鑰真假?
- 總結
- 加餐部分!!!!!!!!!!!!!
- 說一下HTTP 和 HTTPS 的區別?
- 什么是數字簽名?
- 什么是數字證書?
說一下HTTPS咋保證通信安全的?
談談對稱加密與非對稱加密的區別
對稱密鑰加密是指加密和解密使用同一個密鑰的方式,這種方式存在的最大問題就是密鑰發送問題,即如何安全地將密鑰發給對方。
而非對稱加密是指使用一對非對稱密鑰,即公鑰和私鑰,公鑰可以隨意發布,但私鑰只有自己知道。發送密文的一方使用對方的公鑰進行加密處理,對方接收到加密信息后,使用自己的私鑰進行解密。
由于非對稱加密的方式不需要發送用來解密的私鑰,所以可以保證安全性;但是和對稱加密比起來,它非常的慢,所以我們還是要用對稱加密來傳送消息,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發送出去。
談談機密性怎么實現的?
- 對稱加密:加密和解密時使用的密鑰都是同一個,只要保證了密鑰的安全,那整個通信過程就可以說具有了機密性。
TLS提供的最常用的兩個:AES。意思是“高級加密標準”。還有ChaCha20。
加密分組模式:讓算法用固定長度的密鑰加密任意長度的明文,把小秘密(即密鑰)轉化為大秘密(即密文)。
(注:明文的長度不固定,而密鑰一次只能處理特定長度的一塊數據,這就需要進行迭代,以便將一段很長的明文全部加密,而迭代的方法就是分組模式)
- 非對稱加密:為解決密鑰交換安全問題,有兩個密鑰,一個叫“公鑰”,一個叫“私鑰”。兩個密鑰是不同的,“不對稱”,公鑰可以公開給任何人使用,而私鑰必須嚴格保密。
公鑰和私鑰有個特別的“單向”性,雖然都可以用來加密解密,但公鑰加密后只能用私鑰解密,反過來,私鑰加密后也只能用公鑰解密。
RSA最著名,基于整數分解。
ECC后起之秀,基于橢圓曲線離散對數。
非對稱加密為什么慢,非對稱加密除了慢外還有什么缺點?
非對稱加密基于大數運算,比如大素數或者橢圓曲線,是復雜的數學難題,所以消耗計算量,運算速度慢。
除了慢,可能還有一個缺點就是需要更多的位數,相同強度的對稱密鑰要比非對稱密鑰短。
對稱密鑰一般都128位、256位,而rsa一般要2048位,不過橢圓曲線的會短一點。
在混合加密中用到了公鑰加密,因為只能由私鑰解密。那么反過來,私鑰加密后任何人都可以用公鑰解密,這有什么用呢?
私鑰加密用公鑰解是為了做身份認證,不可抵賴,因為默認私鑰只有持有人知道
- 混合加密:
目的:為了達到既能高效地加密解密,又能安全地密鑰交換。
TLS 里使用混合加密:
在通信剛開始的時候使用非對稱算法,比如 RSA、ECDHE,首先解決密鑰交換的問題。
然后用隨機數產生對稱算法使用的“會話密鑰”,再用公鑰加密。
對方拿到密文后用私鑰解密,取出會話密鑰。這樣,雙方就實現了對稱密鑰的安全交換,后續就不再使用非對稱加密,全都使用對稱加密。
SSL 就是通信雙方通過非對稱加密協商出一個用于對稱加密的密鑰。
談談完整性怎么實現的?
摘要算法:把任意長度的數據“壓縮”成固定長度、而且獨一無二的“摘要”字符串,就好像是給這段數據生成了一個數字“指紋”。“單向”加密算法,它只有算法,沒有密鑰,加密后的數據無法解密,不能從摘要逆推出原文。
MD5、SHA-1安全性低被TLS禁用,TLS 推薦使用的是 SHA-1 的后繼者:SHA-2。
保證完整性:在原文后附上它的摘要,就能夠保證數據的完整性。建立在機密性之上,摘要和計算消息出的摘要比對就行。
怎么實現身份認證和不可否認呢?
- 數字簽名:
把公鑰私鑰的用法反過來,之前是公鑰加密、私鑰解密,現在是私鑰加密、公鑰解密。
(注:因為非對稱加密效率太低,所以私鑰只加密原文的摘要,這樣運算量就小的多,而且得到的數字簽名也很小,方便保管和傳輸。)
只要你和網站互相交換公鑰,就可以用“簽名”和“驗簽”來確認消息的真實性,因為私鑰保密,黑客不能偽造簽名,就能夠保證通信雙方的身份。
比如,你用自己的私鑰簽名一個消息“我是小明”。網站收到后用你的公鑰驗簽,確認身份沒問題,于是也用它的私鑰簽名消息“我是某寶”。你收到后再用它的公鑰驗一下,也沒問題,這樣你和網站就都知道對方不是假冒的,后面就可以用混合加密進行安全通信了。
公鑰的信任問題怎么解決?怎么判斷公鑰真假?
- 數字證書和 CA
公鑰的分發需要使用數字證書,必須由 CA 的信任鏈來驗證,否則就是不可信的;
作為信任鏈的源頭 CA 有時也會不可信,解決辦法有 CRL(證書吊銷列表)、OCSP(在線證書狀態協議)來廢止有問題證書,還有終止信任。
總結
保密性:靠混合加密解決,非對稱加密實現對稱加密秘鑰傳遞,對稱加密實現內容加密。
完整性:靠摘要算法解決。
身份認證:靠數字證書解決,數字證書因為CA機構的信任變成一個完整信任鏈條,從而實現通過數字證書證明了對方真實身份,但注意身份真實也可能是掛羊頭賣狗肉,是一個壞人,所以,有了CRL、OCSP,還有終止信任。
不可否認:靠數字簽名解決,內容摘要算法得到摘要,私鑰加密摘要,對方使用對應公鑰解密,得到摘要,再和自己得到的服務器提供的原文摘要對比,一致說明這個內容就是原服務器提供的,由證書說明了服務器的身份。
關于證書驗證:
服務器返回的是證書鏈(不包括根證書,根證書預置在瀏覽器中),然后瀏覽器就可以使用信任的根證書(根公鑰)解析證書鏈的根證書得到一級證書的公鑰+摘要驗簽,然后拿一級證書的公鑰解密一級證書拿到二級證書的公鑰和摘要驗簽,再然后拿二級證書的公鑰解密二級證書得到服務器的公鑰和摘要驗簽,驗證過程就結束了。
加餐部分!!!!!!!!!!!!!
- 因為 HTTP 是明文傳輸,所以不安全,容易被黑客竊聽或篡改;
- 通信安全必須同時具備機密性、完整性、身份認證和不可否認這四個特性;
- HTTPS 的語法、語義仍然是 HTTP,但把下層的協議由 TCP/IP 換成了 SSL/TLS;
- SSL/TLS 是信息安全領域中的權威標準,采用多種先進的加密技術保證通信安全;
- OpenSSL 是著名的開源密碼學工具包,是 SSL/TLS 的具體實現。
說一下HTTP 和 HTTPS 的區別?
-
開銷:HTTPS 協議需要到 CA 申請證書,一般免費證書很少,需要交費;
-
資源消耗:HTTP 是超文本傳輸協議,信息是明文傳輸,HTTPS 則是具有安全性的 ssl 加密傳輸協議,需要消耗更多的 CPU 和內存資源;
-
端口不同:HTTP 和 HTTPS 使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,后者是 443;
-
安全性:HTTP 的連接很簡單,是無狀態的;HTTPS 協議是由 TSL+HTTP 協議構建的可進行加密傳輸、身份認證的網絡協議,比 HTTP 協議安全
什么是數字簽名?
為了避免數據在傳輸過程中被替換,比如黑客修改了你的報文內容,但是你并不知道,所以我們讓發送端做一個數字簽名,把數據的摘要消息進行一個加密,比如 MD5,得到一個簽名,和數據一起發送。然后接收端把數據摘要進行 MD5 加密,如果和簽名一樣,則說明數據確實是真的。
什么是數字證書?
對稱加密中,雙方使用公鑰進行解密。雖然數字簽名可以保證數據不被替換,但是數據是由公鑰加密的,如果公鑰也被替換,則仍然可以偽造數據,因為用戶不知道對方提供的公鑰其實是假的。所以為了保證發送方的公鑰是真的,CA 證書機構會負責頒發一個證書,里面的公鑰保證是真的,用戶請求服務器時,服務器將證書發給用戶,這個證書是經由系統內置證書的備案的。
總結
以上是生活随笔為你收集整理的网络夺命连环问1--说一下HTTPS咋保证通信安全的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链工作流程
- 下一篇: 恋与制作人 6 服务器,恋与制作人6-6