服務方 s 向第三方機構ca提交公鑰、組織資訊、個人資訊(網域名稱)等資訊並申請認證;
ca 通過線上、線下等多種手段驗證申請者提供資訊的真實性,如組織是否存在、企業是否合法,是否擁有網域名稱的所有權等;
如資訊審核通過,ca 會向申請者簽發認證檔案-證書。
證書包含以下資訊:申請者公鑰、申請者的組織資訊和個人資訊、簽發機構 ca 的資訊、有效時間、證書序列號等資訊的明文,同時包含乙個簽名;客戶端 c 向伺服器 s 發出請求時,s 返回證書檔案;簽名的產生演算法:首先,使用雜湊函式計算公開的明文資訊的資訊摘要,然後,採用 ca 的私鑰對資訊摘要進行加密,密文即簽名;
客戶端 c 讀取證書中的相關的明文資訊,採用相同的雜湊函式計算得到資訊摘要,然後,利用對應 ca 的公鑰解密簽名資料,對比證書的資訊摘要,如果一致,則可以確認證書的合法性,即公鑰合法;
客戶端然後驗證證書相關的網域名稱資訊、有效時間等資訊;
客戶端會內建信任 ca 的證書資訊(包含公鑰),如果ca不被信任,則找不到對應 ca 的證書,證書也會被判定非法。
在這個過程注意幾點:客戶端向乙個需要https訪問的**發起請求。申請證書不需要提供私鑰,確保私鑰永遠只能伺服器掌握;
證書的合法性仍然依賴於非對稱加密演算法,證書主要是增加了伺服器資訊以及簽名;
內建 ca 對應的證書稱為根證書,頒發者和使用者相同,自己為自己簽名,即自簽名證書;
證書=公鑰+申請者與頒發者資訊+簽名;
伺服器將證書傳送給客戶端進行校驗。證書裡面包含了其公鑰。這裡要特別說一下客戶端到底 如何來校驗對方發過來的數字證書是否有效。
首先在本地電腦尋找是否有這個伺服器證書上的ca機構的根證書。如果有繼續下一步,如果沒有彈出警告。校驗成功之後,客戶端會生成乙個隨機串然後使用伺服器證書的公鑰進行加密之後傳送給伺服器。使用ca機構根證書的公鑰對伺服器證書的指紋和指紋演算法進行解密。 得到指紋演算法之後,拿著這個指紋演算法對伺服器證書的摘要進行計算得到指紋。
將計算出的指紋和從伺服器證書中解密出的指紋對比看是否一樣如果一樣則通過認證。
伺服器通過使用自己的私鑰解密得到這個隨機值。
伺服器從此開始使用這個隨機值進行對稱加密開始和客戶端進行通訊。
客戶端拿到值用對稱加密方式 使用隨機值進行解密。
為什麼不一直使用非對稱進行加密,而是在類似握手之後開始使用對稱加密演算法進行https通訊:特點:非對稱加密的消耗和所需的計算以及時間遠比對稱加密消耗要大,所以在握手和認證之後,伺服器和客戶端就開始按照約定的隨機串,對後續的資料傳輸進行加密。
非對稱加密相比對稱加密更加安全非對稱加密演算法對加密內容的長度有限制
ca數字證書作用之一是公鑰分發
數字簽名的簽發過程是私鑰加密,公鑰解密
瀏覽器CA認證流程
服務方 s 向第三方機構ca提交公鑰 組織資訊 個人資訊 網域名稱 等資訊並申請認證 ca 通過線上 線下等多種手段驗證申請者提供資訊的真實性,如組織是否存在 企業是否合法,是否擁有網域名稱的所有權等 如資訊審核通過,ca 會向申請者簽發認證檔案 證書。證書包含以下資訊 申請者公鑰 申請者的組織資訊...
瀏覽器執行流程
具體可檢視 程序與執行緒的乙個簡單解釋 阮一峰的網路日誌 以chrome為例。瀏覽器包含執行緒 js引擎執行緒 事件觸發執行緒 定時觸發器執行緒 當計時完成被觸發,事件會被新增到事件佇列,等待js引擎空閒了執行 注意 w3c的html標準中規定,settimeout中低與4ms的時間間隔算為4ms ...
瀏覽器 HTTP SSL HTTPS執行流程
當在瀏覽器中輸入url後,頁面載入完成的過程中都發生了什麼事情 1 解析url 檢查這些請求是https還是http,如果是https的話則使用https協議進行訪問,否則使用http協議傳送。有些情況下,第乙個請求不是https的,但是當瀏覽器向 發出第乙個http請求之後,會返回瀏覽器乙個響應,...