為什么 https 比 http 更安全?
作者:站在書脊之上
編輯整理:strongerHuang
來源: https://juejin.im/post/5ebe6870f265da7bce2696b9
一、為什么要有HTTPS
在HTTPS出現(xiàn)之前,所有請求都是以明文方式送出的,那么如果有人在傳輸途中偷聽或者抓包的話,你的所有通信內(nèi)容都會泄漏。比較安全的方法是將通信內(nèi)容加密在發(fā)送給對方。加密方法有兩種,對稱加密和非對稱加密。
二、對稱加密
對稱加密指的是加密和解密用同一個密鑰。但是在通信之前,客戶端和服務(wù)端是不會有這樣同一把密鑰的。需要其中一方將密鑰發(fā)送給對方。在整個傳輸過程沒有任何驗證操作,所以黑客也可以截取到這把密鑰從而破譯出加密的內(nèi)容。所以純對稱加密是不安全的。
三、非對稱加密
非對稱加密指的是加密和解密用不同的密鑰。可以是用私鑰加密,公鑰解密,也可以是用公鑰加密,私鑰解密。但是會有這種情況。服務(wù)端擁有私鑰和公鑰,將公鑰發(fā)給客戶端。既然客戶端可以獲得公鑰,黑客也可以獲得公鑰。那么服務(wù)端發(fā)送給客戶端的所有內(nèi)容黑客也是可以解讀的??蛻舳擞霉€加密發(fā)送給服務(wù)端不受影響,因為黑客手上沒有服務(wù)器的私鑰。所以純非對稱加密也是不安全的。
傳輸密鑰的過程
四、圖解傳輸密鑰的過程
HTTPS采用對稱加密來加密通信內(nèi)容,所用的密鑰稱為A。用非對稱加密來加密密鑰A再發(fā)送給對方(有點繞)。只要密鑰A不落入他人手中,那傳輸?shù)臄?shù)據(jù)就不會被別人破譯。
那么問題來了,要如何安全的將這把密鑰送到對方手上呢?
我們來看密鑰的傳輸過程:
五、為什么HTTPS是可靠的?
HTTPS是可靠的,因為它解決了三個問題。
加密通信,即使別人獲取到了信息也沒法復(fù)原成原來的信息。
防止中間人攻擊。黑客沒法冒充服務(wù)端。因為在第2步,服務(wù)端給了客戶端一個CA證書。
如果客戶端驗證了這個證書,說明這個證書和公鑰是由服務(wù)端發(fā)來的且真實可靠。
如果客戶端驗證不了這個證書,就說明這個證書不可靠,有可能是假的。
CA證書的公信力。CA證書需要由公司或者個人發(fā)出申請,再通過郵箱驗證等方法驗證域名存在。避免了黑客冒充網(wǎng)站獲取證書的可能。
在技術(shù)層面上,CA機構(gòu)的公鑰是寫在操作系統(tǒng)或者瀏覽器里的。只有用CA機構(gòu)的私鑰加密的內(nèi)容才能完成解密。確保了證書的確是CA機構(gòu)發(fā)行的。
六、密鑰的作用
最后讓我們再來回顧一下每一把密鑰的作用:
ps://img.21ic.com/weixin/2020/6/r2iUVz.jpeg">
長按前往圖中包含的公眾號關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!