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