http https 證書 數字簽名

2022-01-19 09:53:57 字數 1825 閱讀 1818

http是超文字傳輸協議,是用來網路間傳輸資料。底層是tcp協議(傳輸控制協議)。

是一種面向連線的主機對主機層的可靠傳輸,這裡的可靠是指資料丟失極小。tcp建立一次連線需要經過3次握手,然後才開始傳輸資料。就是請求-回應-再確認,保證傳送和接收。

因此傳輸資料的效率不及udp資料報文協議(一種非面向連線的不可靠傳輸協議)。

http協議傳輸資料,資料在網路間是明文傳輸的,因此不是很安全,容易被竊取。

是http協議的安全版,資料傳輸利用了加密技術,在網路傳輸中資料就不是處於裸奔狀態了。

加密有兩種,對稱加密和非對稱加密。

對稱加密,即對資料的加密和解密都是用同乙個秘鑰,這個秘鑰由傳送方和接收方共同維護。但是共同維護這其中成本較高。

非對稱加密,即對資料的加密和解密用不同的秘鑰。一般傳送方用乙個公鑰來對傳送的資料加密,接收方用乙個秘鈅來解密。

https採用的加密技術就是非對稱加密技術,瀏覽器端使用伺服器提供的公鑰進行對資料加密發給伺服器,伺服器用私鑰對資料進行解密。解密後又將要返回的資料用秘鑰加密,瀏覽器又用公鑰解密。

有沒有發現上面的過程還是有不安全的地方,因為公鑰是公開的,在伺服器端對資料用秘鑰加密後,傳輸給請求者,這時候其他人就可以截獲資料利用公鑰解密,這樣就可能會發生資料洩露的危險。

有沒有更好的解決辦法呢。有,就是請求方和伺服器之間協議出乙個秘鑰(具體過程目前不太清楚)。請求方將這個秘鑰夾在資料中公鑰加密後傳輸給伺服器,伺服器用私鑰進行解密,從資料中得到這個私鑰,然後將要返回的資料用這個私鑰加密後傳輸給請求方。請求方用之前的協議出的秘鑰解密。

以上還有乙個問題,就是伺服器怎麼將公鑰送到請求者手中呢?就要講講證書和ca了。

證書顧名思義,能證明其身份證書。而ca就是頒發安全證書的權威機構。

通常是伺服器端會將公鑰發給ca,ca會產生乙個安全證書,證書裡面就包含伺服器的公鑰。

證書頒發的細節這裡先不展開,可以先簡單理解為,**(伺服器)向ca提交了申請,ca審核通過後,將證書頒發給**(伺服器),使用者訪問**(伺服器 )的時候,**(伺服器)將證書給到使用者。

上面說到證書,就要提一提數字簽名和摘要了。

數字簽名和摘要是要來保證證書的合法有效的強力手段。

摘要就是對傳輸的內容用hash演算法對其計算得到乙個固定長度的串,就是摘要了。

然後對摘要用ca的私鑰進行加密就屬於數字簽名了。

必須要用ca的公鑰才能解密。

證書包含了如下內容:

證書包含了頒發證書的機構的名字 -- ca

證書內容本身的數字簽名(用ca私鑰加密)

證書持有者的公鑰

證書簽名用到的hash演算法

ca本身有自己的證書,江湖人稱「根證書」。這個「根證書」是用來證明ca的身份的,本質是乙份普通的數字證書。

瀏覽器通常會內建大多數主流權威ca的根證書。

瀏覽器內建的ca的根證書包含了如下關鍵內容:

ca的公鑰(非常重要!!!)

鑑別證書:

完全偽造的證書

這種情況比較簡單,對證書進行檢查:

證書頒發的機構是偽造的:瀏覽器不認識,直接認為是危險證書

證書頒發的機構是確實存在的,於是根據ca名,找到對應內建的ca根證書、ca的公鑰。

用ca的公鑰,對偽造的證書的摘要進行解密,發現解不了。認為是危險證書

篡改過的證書

假設**通過某種途徑,拿到xx的證書,然後將證書的公鑰偷偷修改成自己的,然後喜滋滋的認為使用者要上鉤了。然而太單純了:

檢查證書,根據ca名,找到對應的ca根證書,以及ca的公鑰。

用ca的公鑰,對證書的數字簽名進行解密,得到對應的證書摘要aa

根據證書簽名使用的hash演算法,計算出當前證書的摘要bb

對比aa跟bb,發現不一致--> 判定是危險證書

CA證書數字簽名

數字簽名是什麼?1.鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。2.鮑勃把公鑰送給他的朋友們 帕蒂 道格 蘇珊 每人一把。3.蘇珊要給鮑勃寫一封保密的信。她寫完後用鮑勃的公鑰加密,就可以達到保密的效果。4.鮑勃收信後,用私鑰解密,就看到了信件內容。這裡要強調的是,只要鮑勃的私鑰不洩露,這封信就是安全的...

數字簽名及證書

一 對稱加密與非對稱加密 1 對稱加密 即雙方資料互動時採用 同一套規則 x 進行加密解密 2 非對稱加密 即雙方資料互動依賴於公鑰和私鑰 公鑰 公開 私鑰 私有 二 公鑰與私鑰作用 綜上圖 a使用b公鑰加密後,僅能使用b私鑰解密,而b私鑰僅b持有,所以確保內容的保密性 但b公鑰是公有的,任何人均傳...

數字簽名與數字證書

數字簽名 將 報文按雙方約定的hash 演算法計算得到乙個固定位數的 報文摘要。在 數學上保證 只要改動報文中任何一位,重新計算出的 報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用傳送者的私人 金鑰加密,然後連同原報文一起傳送給接收者,而產生的報文即稱 數字簽名 數字...