網路程式設計 HTTPS非對稱性加密傳輸

2021-09-26 20:03:58 字數 1091 閱讀 6642

http 有著乙個致命的缺陷,那就是內容是明文傳輸的,沒有經過任何加密,而這些明文資料會經過wifi、路由器、運營商、機房等多個物理裝置節點,如果在這中間任意乙個節點被監聽,傳輸的內容就會完全暴露,,這一攻擊手法叫做mitm(man in the middle)中間人攻擊。

https其實就是將http的資料報再通過ssl/tls加密後傳輸

使用者在瀏覽器發起https請求(如 預設使用服務端的443埠進行連線;

https需要使用一套ca數字證書,證書內會附帶乙個公鑰pub,而與之對應的私鑰private保留在服務端不公開;

服務端收到請求,返回配置好的包含公鑰pub的證書給客戶端;

客戶端收到證書,校驗合法性,主要包括是否在有效期內、證書的網域名稱與請求的網域名稱是否匹配,上一級證書是否有效(遞迴判斷,直到判斷到系統內建或瀏覽器配置好的根證書),如果不通過,則顯示https警告資訊,如果通過則繼續;

客戶端生成乙個用於對稱加密的隨機key,並用證書內的公鑰pub進行加密,傳送給服務端;

服務端收到隨機key的密文,使用與公鑰pub配對的私鑰private進行解密,得到客戶端真正想傳送的隨機key;

服務端使用客戶端傳送過來的隨機key對要傳輸的http資料進行對稱加密,將密文返回客戶端;

客戶端使用隨機key對稱解密密文,得到http資料明文;

後續https請求使用之前交換好的隨機key進行對稱加解密。

通俗地說:

伺服器的公鑰類似於乙個只有伺服器能開啟帶鎖的盒子,用於加密;

伺服器把開啟的盒子傳給客戶端

客戶端把內容和加密方式放入盒子並鎖住傳給伺服器;

中間即使經過別人的手,因為只有伺服器有盒子的鑰匙,所以不會被別人開啟;

伺服器收到盒子後,開啟獲得盒子中的內容及加密方式;

以後就可以直接用盒子中約定的加密方式交流,因為盒中的加密方式只有客戶端和伺服器兩端知道,別人聽不懂也看不懂。

對稱性和非非對稱性加密

加密分為兩種方式一種是對稱加密,一種是非對稱加密。在對稱加密演算法中,加密和解密使用的金鑰是相同的。也就是說,加密和解密使用的是同乙個金鑰。因此,對稱加密演算法要保證安全性的話,金鑰要做好保密。只能讓使用的人知道,不能對外公開。在非對稱加密演算法中,加密使用的金鑰和解密使用的金鑰是不相同的。一把是作...

HTTPS之非對稱加密

對稱加密即加密和解密金鑰是同乙個。比如我發給 good給你,然後我的金鑰是1,演算法是每個字母 1,我發給你的資訊變成hppe。你收到資訊後金鑰也是1,演算法就是字母 1,解密後變成good。問題是我們要怎麼溝通金鑰和加密解密演算法呢,可以當面給你比較安全,但是麻煩,如果直接網上發訊息很可能被其他人...

關於sql的對稱性金鑰和非對稱性金鑰(基礎)

首先談一下自己的理解,金鑰我們都知道是對我們所知道的某乙個事物進行加密。先講一下對稱性金鑰,如果我們對乙個資料庫中的乙個表的某些元素進行加密的時候,所用的加密密碼和解密的密碼是一致的,而非對稱性金鑰則剛好是相反的。我們具體看下怎樣對乙個我們想要加密的表資料進行加密和解密。1 加密乙個資料庫中的表的資...