服務公告
為什么 https 比 http 更安全?
發(fā)布時間:2022-12-06 17:32
http 和 https 在許多網站都有用到,但是現(xiàn)在都是極力倡導使用 https ,究其原因就是 http 的安全性不夠高,在數(shù)據(jù)傳輸過程中可能會遭到黑客竊取。
本篇文章會先講解 http 缺點,然后再講解 https 是如何解決這些問題來保證安全的。
一、http 缺點
通信使用明文(不加密),內容可能會被竊聽
http (HyperText Transfer Protocol),即超文本運輸協(xié)議,是實現(xiàn)網絡通信的一種規(guī)范。
http 本身不具備加密的功能,因此其在通信過程是使用明文方式發(fā)送的。這種方式就有可能造成通信過程中信息會被破解獲取。
例如:一群佩奇在路上坐著敞篷大貨車,路過的人直接能看到車里都是佩奇,信息完全暴露。
不驗證通信方的身份,有可能遭遇偽裝
http 協(xié)議在請求和響應中不會對通信方進行確認。這就存在你訪問的服務器有可能不是你真正指定的服務器,拿到返回響應的客戶端可能不是一開始發(fā)起請求的客戶端。
例如:母雞孵蛋,我偷偷把雞蛋換成鴨蛋,母雞照樣在那孵,不會有任何的懷疑。
無法證明報文完整性,有可能信息已遭篡改
http 協(xié)議無法證明通信的報文完整性,在請求和響應發(fā)出后,在傳輸過程中內容如果遭到篡改,也沒有辦法感知到。
例如:你從某個網站下載內容,無法確定你客戶端下載的文件和服務器中存放的文件是否一致,有可能文件在傳輸過程中被篡改為其他的內容。
二、什么是 https ?
http + 加密 + 認證 + 完整性保護 = https
https 實現(xiàn)機密性的做法就是 “加密”,將需要傳遞的消息進行加密,只有擁有“鑰匙”的人才能拿到原始數(shù)據(jù)。
這個鑰匙我們叫做 “密鑰”,加密后的叫做 “密文”。通過密鑰來還原數(shù)據(jù)的過程叫 “解密”,加密解密的整個操作過程就是 “加密算法”。
加密可以分為兩種形式,對稱加密和非對稱性加密。
對稱加密
對稱加密指的是加密和解密用同一個密鑰。但是在通信之前,客戶端和服務端是不會有這樣同一把密鑰的,需要其中一方將密鑰發(fā)送給對方。
在整個傳輸過程沒有任何驗證操作,所以黑客也可以截取到這把密鑰從而破譯出加密的內容。所以純對稱加密是不安全的。
非對稱加密
非對稱加密指的是加密和解密用不同的密鑰。它有兩個密鑰,一個叫 “公鑰”,一個叫“私鑰”。兩個鑰匙是不同的,公鑰可以給任何人使用,但私鑰必須嚴格保密。
公鑰加密的數(shù)據(jù)只能由私鑰解密,反過來,私鑰加密后也只能用公鑰解密。
網站秘密保管私鑰,在網上隨意分發(fā)公鑰,如果你想登錄網站,只要用公鑰來加密即可,密文只能由私鑰持有者才能解密,即使數(shù)據(jù)傳輸過程中被黑客獲取到,他也無法破解。
混合加密
非對稱性加密雖然安全性高,但因為它都是基于復雜的數(shù)學運算,速度就會很慢,雖然保證了安全,但通信速度太慢,實用性也會大打折扣。
混合加密就是在通信剛開始的時候使用非對稱算法,來解決對稱加密密鑰交換安全性問題。
對方拿到密文后用私鑰解密,拿到對稱密鑰,這樣雙方就實現(xiàn)了對稱密鑰的安全交換,后續(xù)就不再使用非對稱加密,全都使用對稱加密。
這樣混合加密就實現(xiàn)了安全和性能兼顧,實現(xiàn)了可靠的機密性。
三、為什么不全部使用 https ?
通過前面的介紹,https 的安全性比 http 強太多,但是依然會有很多網站沒有全部使用 https。
究其原因就是加密通信會消耗更多的CPU及內存資源,如果每次通信都進行加密,會消耗相當多的資源。
因此如果是非敏感信息可以使用 http 通信,包含個人信息等敏感數(shù)據(jù),才利用 https 加密通信。
使用 https 還有一個問題就是需要證書,而證書必須向認證機構(CA)去購買,這也是一筆不小的費用。