數字簽名、數字證書、https這三個詞,是我們在購買SSL證書時最經常看到的詞語,他們到底是什么意思?三者之間有什么關系嗎?
小科普
為了理解這三個名詞,我們首先要理解以下幾個概念:明文、密文、密鑰、對稱加密、非對稱加密。
明文、密文和密鑰
明文和密文比較容易理解,明文就是我們可以直接看到的內容,而密文就是需要解密才能被看到的內容。比如“123”是明文,能被直接看到,將123加密,乘以2得到246就是密文,如果另外一個人只看到246這個數字,是無法知道被加密前的數字是多少的。
在這個例子中“2”被用來加密“123”,“2”就是密鑰。
對稱加密和非對稱加密
在上面的例子中,加密數字“123”的密鑰是“2”,解密246的密鑰也是“2”,加密和解密都使用同一把密鑰,這種加密方式被稱為對稱加密。
反之,如果加密和解密使用的密鑰不同,就是非對稱加密。非對稱加密的原理比對稱加密復雜得多,這里我們不再深入。
數字證書
當用戶在瀏覽器地址欄輸入網址,敲下回車鍵以后,會發生一系列連鎖反應。
首先,瀏覽器會與網站建立TCP連接
網站提示瀏覽器安裝數字證書,否則將無法繼續進行。
緊接著,瀏覽器要驗證網站的服務器是否是真實的,而不是其他冒充的。這時服務器會發過來自己的數字證書。
網站的數字證書哪里來的呢?
答案是CA(數字證書頒發機構)發的。CA會給網站發一張證書,證書包含了許多信息:
- 簽發者
- 證書用途
- 網站的公鑰
- 網站的加密算法
- 網站用的HASH算法
- 證書到期時間等等
數字簽名
CA會將數字證書發給網站,但這其中存在一個問題。CA在將數字證書發給網站的過程中,如果被第三人篡改,證書的存在也就沒有意義了,因為第三人可以利用這一點,肆無忌憚的篡改數據。
為了保證這一過程能順利進行,不被篡改。CA把數字證書的內容再進行一次HASH,就得到了數字證書。
最后,CA會將數字證書附在證書的末尾,一起傳輸給網站。這樣一來,任何試圖篡改證書的操作,都會被數字簽名發現。
不嚴謹地說,數字簽名和我們在合同上簽的字、蓋的印章本質上沒什么區別,都是為了驗證真實性。
https
https的出現,是為了解決http明文傳輸不安全的問題,給http協議加上了一層SSL,就變成了https。
https解決明文傳輸的方式涉及到數字證書和數字簽名。數字證書確保瀏覽器與服務器之間數據傳輸的安全。數字簽名則確保數字證書在傳輸過程中不被篡改,一環扣一環,環環相扣。
隨著互聯網的發展,數字證書的應用也越來越廣泛。在近幾年,百度、淘寶、知乎等各大平臺紛紛全站啟用https以確保數據傳輸的安全。除了出于安全需要,數字證書的價格逐年下降,也是https得到普及的主要原因。
原文地址:https://www.toutiao.com/a7010695182945468964/