對稱加密
加密和解密都使用同乙個金鑰
非對稱加密
加密和解密使用不同的金鑰
如:a與b使用非對稱加密方式通訊,a使用b的公鑰對明文加密後傳送給b,b使用自己的私鑰解密得到明文資訊;b用a的公鑰對明文加密然後把密文傳送給a,a接收到後使用自己的私鑰進行解密得到b傳送的資訊
https在協商會話金鑰時使用非對稱加密(更安全),在後面會話雙方實際進行通訊時使用對稱加密(效率更高)
數字簽名——解決資料完整性(防篡改)問題
數字簽名生成方法:明文----雜湊演算法----->訊息摘要-----私鑰加密---->數字簽名
即:先使用雜湊函式對明文生成訊息摘要,然後再對訊息摘要使用私鑰加密生成數字簽名
數字簽名校驗方法:接收方對接收到的明文使用相同的雜湊函式對明文生成訊息摘要a,然後使用傳送方的公鑰解密收到的數字簽名得到訊息摘要b,對比訊息摘要a和b就能驗證數字簽名
ca(證書頒發機構)
為了保證伺服器公鑰的有效性https伺服器運營人員需要向ca(認證機構)申請證書
數字證書認證機構的業務流程:
(1)伺服器的運營人員向第三方ca提交相關的申請材料(伺服器的公鑰、組織資訊和網域名稱等)申請數字證書
(2)ca機構驗證申請材料的真實性
(3)如果審核通過,ca機構會向申請者簽發數字簽名證書,證書裡面包含了以下資訊:申請者公鑰、申請者組織資訊等、ca簽發機構的資訊、ca對明文資訊生成資訊摘要的演算法、ca的數字簽名(ca採用非對稱加密方式用自己的私鑰對資訊摘要加密生成的密文)
https工作流程
(1)client向server傳送請求
(2)server把事先配置好的自己的公鑰證書返回給client
(3)client驗證server的公鑰證書
驗證證書數字簽名方法:client讀取證書裡的明文資訊,然後使用相同的雜湊演算法(證書明文資訊有指定)生成資訊摘要記為c_m,然後client使用ca的公鑰(client事先儲存了ca的公鑰)解密證書裡的數字簽名得到訊息摘要ca_m,對比c_m和ca_m,如果一致,校驗通過,否則校驗不通過
(4)client生成後面雙方使用對稱加密方式進行通訊的會話金鑰m,然後使用非對稱加密方式對會話金鑰m使用server的公鑰(ca證書裡面有server的公鑰)進行加密傳送給server
(5)server接收到後使用自己的私鑰解密得到會話金鑰m,後面client和server就使用對稱加密的方式進行通訊了(對稱加密的金鑰就是m)
(6)server使用對稱加密方式用會話金鑰m加密明文內容a後發生給client
(7)client收到資訊後,使用會話金鑰m解密密文得到明文內容a
(8)client使用會話金鑰m加密明文內容b後傳送給server,server使用會話金鑰m解密得到明文內容b,後續雙方一直使用對稱加密的方式進行通訊
https和http區別
(1)埠不一樣,https標準埠443,http標準埠80
(2)https相當於 http+ssl(tls的前身)
(3)https利於seo,搜尋引擎優先索引https網頁
參考頁面
HTTPS 工作流程梳理
客戶端。通常是瀏覽器 chrome ie firefox等 也可以自己編寫的各種語言的客戶端程式。服務端。一般指支援https的 比如github 支付寶。ca certificate authorities 機構。https證書簽發和管理機構,比如symantec comodo godaddy g...
HTTPS 工作流程梳理
客戶端。通常是瀏覽器 chrome ie firefox等 也可以自己編寫的各種語言的客戶端程式。服務端。一般指支援https的 比如github 支付寶。ca certificate authorities 機構。https證書簽發和管理機構,比如symantec comodo godaddy g...
https的工作流程
1 客戶端向伺服器提出請求,發出ssl握手訊號。2 伺服器發出回應,並出示伺服器證書 公鑰 顯示伺服器站點身份。3 客戶端驗證伺服器證書,並生成乙個隨機的會話金鑰,金鑰長度達到128位。4 客戶端用伺服器的公鑰加密該會話金鑰,產生加密會話金鑰。5 客戶端對該會話金鑰進行簽名,產生客戶端簽名。6 客戶...