這幾天閒暇的時候沒什麼事情做,突然對 https 的加密演算法有了很濃厚的興趣,學著學著就把一些知識都學了一下,那這篇文章主要講了以下幾個方面,首先說了一下 http 存在的不足,然後說一下我們 http 中用到的加密演算法,最後說一下乙個請求在我們的 https 中執行的流程,好了話不多說我們趕緊進入我們的正題。
我們都知道 https 比 http 要安全,那到底 http 差在哪,我總結了以下幾個原因:
1、http 沒有對資料進行加密,我們是可以通過抓包抓取到資料的,這樣資料可能被別人利用
2、客戶端和服務端沒有進行身份驗證,導致我們的請求可能會被劫持。
3、對傳遞的資訊完整性沒有校驗,這樣就有可能有人在傳遞過程中篡改我們的資訊
那安全的 http 應該具備什麼功能呢
1、服務端驗證
2、客戶端驗證
3、資訊的完整性(客戶端和服務端收發的資訊是相同的)
4、客戶端和服務端的傳輸資料時加密的
5、效率,要掌握傳輸的速度
6、要適應大部分的場景
就是因為這樣的場景我們的 https 就誕生了,https 協議主要是依賴 tsl/ssl 協議,提供了身份驗證,資訊加密,和完整性校驗的功能,解決了 http 中的問題,我用乙個公式來表示 https
那下面我們就看一下我們的 https 是如何進行加密的
說到加密我們首先說一下加密演算法,一般加密演算法分為兩種,第一種是對稱加密,第二種是非對稱加密演算法
對稱加密:我們加密的金鑰和解密的金鑰是相同,例如 des 加密
對稱加密強度很高,但是存在乙個很大的問題就是無法安全生成和保管金鑰,如果每次請求都用相同的金鑰,那會存在非常大的風險。
非對稱加密:加密的金鑰和解密的金鑰是不同的,加密的金鑰我們稱之為公鑰,解密的金鑰我們稱之為私鑰。例如 rsa 演算法。
當我們用非對稱加密演算法對我們的對稱金鑰進行加密的時候使我們的對稱加密就變得安全了,就是因為這個加密使我們的 https 速度慢了很多。
那我們的 https 中首先是在我握手的時候用非對稱加密獲取我們的對稱加密的金鑰,然後在傳遞資料的時候使用對稱加密。
可能這麼說有點籠統,那下面我說一下我們的乙個完整的 https 請求,你可能就會明白許多
我們先來看乙個
我們一步一步說啊
1、客戶端進行請求,傳遞 ssl 協議版本,支援的加密演算法和 hash 的演算法。
2、服務端選擇客戶端傳遞過來的最優的加密演算法和 hash 演算法,還有協議版本
3、服務端傳送報文,報文中包括認證證書(包括非對稱加密的公鑰,過期時間,伺服器位址,頒發機構)
4、服務端傳送握手完成
5、客戶端對傳遞過來的證書進行解密,然後通過根證書進行驗證,主要驗證證書是否過期,頒發的機構和伺服器位址,驗證通過的話,根據之前約定的 hash 演算法生成乙個隨機數,然後通過公鑰進行加密這個隨機數,傳遞給服務端,那這個隨機數就是我們對稱加密的金鑰。
6、客戶端傳送 finish 表示握手完成
7、客戶端和服務端可以通過生成的隨機數進行對稱加密傳遞資料了
今天的內容基本到這裡就結束了,這裡面還有乙個比較重要的加密演算法筆者還沒有研究透徹,那就是 rsa 加密演算法,等筆者研究透著了在給大家分享,最後附上我們 http 的返回碼對應的是什麼情況:
http/https 訪問返回的 conde:2xx成功、3xx重定向、4xx客戶端/請求錯誤、5xx伺服器錯誤等
201建立 202 接受 203 非授權資訊 204無內容 205重置內容 206部分內容
301url被更新 302臨時重定向
400錯誤請求 401未經授權 。 402需要支付 。 403禁止 。 405不可請求的方法 406 不接受
407需要** 。 408超時 。 413請求實體太大了 。
503服務不可用 。 505不支援 http協議
我所知道的EC Preface
我所知道的ec preface knowledge sharing is the best reusej 所以打算寫一篇 我所知道的ec 系列。取名為 我所知道的ec 是緣於網路上有一篇講述system bios的好文章叫做 我所知道的 bios 另外該系列文章是小弟的一家之言,希望各位前輩多多指教...
我所知道的EC PowerSequence
我所知道的ec powersequence what s power sequence power sequence 是指hw device 上電的順序 它的大致順序如下 1 always 2 sus on 3 dimm on 4 run on 5 vr on 這 基本上是 nb工作需要的所有pow...
我所知道的(1)
我所知道的之序言 最近總有朋友詢問我的事情,問得多了,也就回憶的多了,興奮的時候,就想乾脆整理成文字吧,也算對自己自06年以來給做諮詢的乙個總結。從06年以來我給的3個事業群做過了cmmi的諮詢,2次2級,3次3級,累計現場諮詢天數超過150天吧,所以日積月累,對有所了解。為了避免不必要的麻煩,我認...