https 加密原理

2021-10-24 10:34:58 字數 1774 閱讀 6552

最近因為專案需求,需要將http公升級到https,所以抽空**了下其中的加密原理。

為什麼要使用https

http 明文傳輸,不夠安全。

竊聽風險:黑客可以獲知通訊內容。

篡改風險:黑客可以修改通訊內容。

冒充風險:黑客可以冒充他人身份參與通訊。

為了保障訊息的保密性,後面出現了對稱加密以及非對稱加密

對稱加密

客戶端與伺服器用同乙個金鑰進行傳輸。此金鑰即可以進行加密,也可以進行解密。

這種方式因為加密與解密都是用的同乙個金鑰。假如金鑰洩漏,那傳送的一切資料對於中間人來說都是透明的。

非對稱加密

客戶端與伺服器分別有一組公鑰與私鑰。

公鑰指可以在網路上公開的金鑰

對於客戶端來說:待傳送的資料用服務端公鑰進行加密,接收到的資料用自己的私鑰進行解密。

對於服務端而言:待傳送的資料用客戶端的公鑰進行加密,接受到的資料用自己的私鑰進行解密。

這樣處理的好處是:中間人知道公鑰也無法破解訊息的內容。

但是這種可能仍然有可能發生冒充風險,譬如:

在客戶端與服務端明文交換公鑰的時候,中間人攔截獲取到客戶端的公鑰,將客戶端發給伺服器的公鑰換成自己的公鑰,伺服器返回自己的公鑰,中間人再將自己的公鑰替換服務端的公鑰傳送給客戶端。

整個加密過程就變成了 客戶端用中間人的公鑰加密資料。傳送給中間人,中間人解密(用自己的金鑰解密),用服務端的公鑰加密傳送給服務端。服務端解密,再用中間的金鑰加密傳送給中間人,中間人解密(用自己的金鑰解密),然後用客戶端的金鑰加密傳送給客戶端。中間人在此可以完全不受限的獲取各種資訊。

另外 非對稱加密相比對稱加密的效能會慢幾倍到幾十倍。

https加密

https的加密既用到了對稱加密也用到了非對稱加密。

基於非對稱加密協商金鑰,基於對稱加密傳輸資料,兼顧安全與效能。

整體流程圖如下所示:

在這個流程中階段二對應證書申請以及加密過程,階段三對應證書的驗證過程,階段二與階段三合併起來保障了客戶端對伺服器**的認證,確保了不會被中間人篡改。

證書申請及其使用過程:

第一步:伺服器向ca申請數字證書(對應1,2,3)

第二步:伺服器將證書傳送給客戶端(對應 4)

第三步:客戶端驗證證書,取得公鑰(對應5 ,5後面可以不用看了)

在第一步中,伺服器會將自己的公鑰以及伺服器相關的資訊傳送給ca機構,ca機構會將 伺服器公鑰與伺服器資訊通過hash演算法生成 資訊摘要,資訊摘要通過ca私鑰加密生成 數字簽名,然後將 伺服器公鑰、伺服器資訊、與資料簽名打包生成數字證書。

第三步中,客戶端收到數字證書之後,通過ca公鑰解密數字簽名得到資訊摘要,同時將伺服器公鑰與伺服器資訊通過hash演算法生成資訊摘要,假如這2個資訊摘要相同。

總的來說,數字簽名技術有效規避了篡改風險。而ca認證有效規避了冒充風險。即使中間人獲得了ca公鑰,由於數字簽名的緣故,他也無法篡改裡面的內容。而如果他想冒充,把原有的數字證書換成自己的乙個私人證書,那在客戶端驗證的時候就無法在受信任的根證書中找到對應的證書。

引用:

HTTPS加密原理

字數 2314 閱讀 630 喜歡 90 http https在我們日常開發中是經常會接觸到的。我們也都知道,一般 android 應用開發,在請求 api 網路介面的時候,很多使用的都是 http 協議 使用瀏覽器開啟網頁,也是利用 http 協議。看來 http 真是使用廣泛啊,但是,http ...

HTTPS加密原理

http是超文字傳輸協議,是一種客戶端和伺服器端請求和應答的標準,可以使瀏覽器更加高效。https是以安全為目標的http通道,https是在http基礎上加上ssl層 https協議需要ca證書認證,費用較高 http是超文字傳輸協議,資訊是明文傳輸 https是具有安全性的ssl加密傳輸協議 使...

https 的加密原理

1.http 協議 hypertext transfer protocol,超文字傳輸協議 是客戶端瀏覽器或其他程式與web伺服器之間的應用層通訊協議 https 協議 hypertext transfer protocol over secure socket layer 可以理解為 http s...