分布式架構基礎 HTTPS協議

2021-08-20 10:42:48 字數 2147 閱讀 8477

https簡介

由於http協議通訊的不安全性,所以人們為了防止資訊在傳輸過程中遭到洩漏或者篡改,就想出來對傳輸通道進行加密的方式-https。https是一種加密的超文字傳輸協議,它與http協議的差異在於對資料傳輸的過程中,https對資料做了完全加密。由於http協議或者https協議都是處於tcp傳輸層之上,同時網路協議又是乙個分層的結構,所以在tcp協議層之上增加了一層ssl(secure socket layer,安全層)或者tls(transport layer security) 安全層傳輸協議組合使用用於構造加密通道。

https的實現原理

1、客戶端發起請求(client hello 包,客戶端給伺服器傳送乙個hello訊息)

a) 三次握手,建立tcp連線

b) 支援的協議版本(tls/ssl)

c) 客戶端生成的隨機數client.random,後續用於生成「對話金鑰」

d) 客戶端支援的加密演算法

e) sessionid,用於保持同乙個會話(如果客戶端與伺服器費盡周折建立了乙個https連線,剛建完就斷了,也太可惜)

2、服務端收到請求,然後響應(server hello)

a) 確認加密通道協議版本

b) 服務端生成的隨機數 server.random,後續用於生成「對話金鑰」

c) 確認使用的加密演算法(用於後續的握手訊息進行簽名防止篡改)

d) 伺服器證書(ca 機構頒發給服務端的證書)

3、客戶端收到證書進行驗證

a) 驗證證書是否是上級ca簽發的, 在驗證證書的時候,瀏覽器會呼叫系統的證書管理器介面對證書路徑中的所有證書一級一級的進行驗證,只有路徑中所有的證書都是受信任的,整個驗證的結果才是受信任。

b) 服務端返回的證書中會包含證書的有效期,可以通過失效日期來驗證證書是否過期。

c) 驗證證書是否被吊銷了

d) 前面我們知道ca機構在簽發證書的時候,都會使用自己的私鑰對證書進行簽名,證書裡的簽名演算法欄位sha256rsa表示ca機構使用sha256對證書進行摘要,然後使用rsa演算法對摘要進行私鑰簽名,而我們也知道rsa演算法中,使用私鑰簽名之後,只有公鑰才能進行驗籤。

e) 瀏覽器使用內建在作業系統上的ca機構的公鑰對伺服器的證書進行驗籤,確定這個證書是不是由正規的機構頒發。驗籤之後得知ca機構使用sha256進行證書摘要,然後客戶端再使用sha256對證書內容進行一次摘要,如果得到的值和服務端返回的證書驗籤之後的摘要相同,表示證書沒有被修改過。

f) 驗證通過後,就會顯示綠色的安全字樣

g) 客戶端生成隨機數,驗證通過之後,客戶端生成乙個隨機數pre-master secret,客戶端根據之前的client.random + sever.random + pre-master生成對稱金鑰,然後使用證書中的公鑰進行加密,同時利用前面協商好的加密演算法,將握手訊息取hash值,然後用「隨機數加密「握手訊息+握手訊息hash值(簽名)」傳遞給服務端。(在這裡之所以要取握手訊息的hash值,主要是把握手訊息做乙個簽名,用於驗證握手訊息在傳輸過程中沒有被篡改過。)

4、服務端接收隨機數

a) 服務端收到客戶端的加密資料以後,用自己的私鑰對密文進行解密 。然後得到

client.random/server.random/pre-master secret,再用隨機數密碼解密握手訊息與 hash值,並與傳過來的hash值做對比確認是否一致。

b) 然後用隨機密碼加密一段握手訊息(握手訊息+握手訊息的hash值)給客戶端

5、客戶端接收訊息

a) 客戶端用隨機數解密並計算握手訊息的hash,如果與服務端發來的hash一致,此時握手過程結束。

b) 之後所有的通訊資料將由之前互動過程中生成的pre-master secret和client.random/server.random通過演算法得出session key,作為後續互動過程中的對稱金鑰。

python分布式架構 分布式架構

1.分布式架構 採用centos mongodb windows2012 python redis進行分布式架構搭建,mongodb的框架最核心的設計就是 mongodb和mapreduce。mongodb為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算,windows2012作為...

ElasticSearch基礎分布式架構講解

elasticsearch是一台分布式系統,之所以分布式,是為了應對大資料量,他把整個分布式系統的一些複雜的東西隱藏起來,我們不用去關係他們,直接可以使用es。隱藏的特性或機制 之前我們隨便可以將document資料插入到es集群中,我們有沒有care過資料是如何進行分片的,就是說document存...

分布式基礎 http協議

一 客戶端和服務端的請求原理 客戶端與服務端互動時將會涉及到協議的內容,通常我們使用的是http https協議。注意http協議是基於傳輸層協議 tcp udp等 之上的應用層協議,而https協議是在tcp udp和http協議之間加了一層ssl tls傳輸協議,http協議不保證安全傳輸,而h...