今天,我讀到一篇好文章。 它用圖片通俗易懂地解釋了,"數(shù)字簽名"(digital signature)和"數(shù)字證書(shū)"(digital certificate)到底是什么。 我對(duì)這些問(wèn)題的理解,一直是模模糊糊的,很多細(xì)節(jié)搞不清楚。讀完這篇文章后,發(fā)現(xiàn)思路一下子就理清了。為了加深記憶,我把文字和圖片都翻譯出來(lái)了。 文中涉及的密碼學(xué)基本知識(shí),可以參見(jiàn)我以前的筆記。 ==================================================== 數(shù)字簽名是什么? 作者:David Youd 翻譯:阮一峰 原文網(wǎng)址:http://www./signature.html 1. 鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。 2. 鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。 3. 蘇珊要給鮑勃寫(xiě)一封保密的信。她寫(xiě)完后用鮑勃的公鑰加密,就可以達(dá)到保密的效果。 4. 鮑勃收信后,用私鑰解密,就看到了信件內(nèi)容。這里要強(qiáng)調(diào)的是,只要鮑勃的私鑰不泄露,這封信就是安全的,即使落在別人手里,也無(wú)法解密。 5. 鮑勃給蘇珊回信,決定采用"數(shù)字簽名"。他寫(xiě)完后先用Hash函數(shù),生成信件的摘要(digest)。 6. 然后,鮑勃使用私鑰,對(duì)這個(gè)摘要加密,生成"數(shù)字簽名"(signature)。 7. 鮑勃將這個(gè)簽名,附在信件下面,一起發(fā)給蘇珊。 8. 蘇珊收信后,取下數(shù)字簽名,用鮑勃的公鑰解密,得到信件的摘要。由此證明,這封信確實(shí)是鮑勃發(fā)出的。 9. 蘇珊再對(duì)信件本身使用Hash函數(shù),將得到的結(jié)果,與上一步得到的摘要進(jìn)行對(duì)比。如果兩者一致,就證明這封信未被修改過(guò)。 10. 復(fù)雜的情況出現(xiàn)了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。此時(shí),蘇珊實(shí)際擁有的是道格的公鑰,但是還以為這是鮑勃的公鑰。因此,道格就可以冒充鮑勃,用自己的私鑰做成"數(shù)字簽名",寫(xiě)信給蘇珊,讓蘇珊用假的鮑勃公鑰進(jìn)行解密。 11. 后來(lái),蘇珊感覺(jué)不對(duì)勁,發(fā)現(xiàn)自己無(wú)法確定公鑰是否真的屬于鮑勃。她想到了一個(gè)辦法,要求鮑勃去找"證書(shū)中心"(certificate authority,簡(jiǎn)稱CA),為公鑰做認(rèn)證。證書(shū)中心用自己的私鑰,對(duì)鮑勃的公鑰和一些相關(guān)信息一起加密,生成"數(shù)字證書(shū)"(Digital Certificate)。 12. 鮑勃拿到數(shù)字證書(shū)以后,就可以放心了。以后再給蘇珊寫(xiě)信,只要在簽名的同時(shí),再附上數(shù)字證書(shū)就行了。 13. 蘇珊收信后,用CA的公鑰解開(kāi)數(shù)字證書(shū),就可以拿到鮑勃真實(shí)的公鑰了,然后就能證明"數(shù)字簽名"是否真的是鮑勃簽的。 14. 下面,我們看一個(gè)應(yīng)用"數(shù)字證書(shū)"的實(shí)例:https協(xié)議。這個(gè)協(xié)議主要用于網(wǎng)頁(yè)加密。 15. 首先,客戶端向服務(wù)器發(fā)出加密請(qǐng)求。 16. 服務(wù)器用自己的私鑰加密網(wǎng)頁(yè)以后,連同本身的數(shù)字證書(shū),一起發(fā)送給客戶端。 17. 客戶端(瀏覽器)的"證書(shū)管理器",有"受信任的根證書(shū)頒發(fā)機(jī)構(gòu)"列表??蛻舳藭?huì)根據(jù)這張列表,查看解開(kāi)數(shù)字證書(shū)的公鑰是否在列表之內(nèi)。 18. 如果數(shù)字證書(shū)記載的網(wǎng)址,與你正在瀏覽的網(wǎng)址不一致,就說(shuō)明這張證書(shū)可能被冒用,瀏覽器會(huì)發(fā)出警告。 19. 如果這張數(shù)字證書(shū)不是由受信任的機(jī)構(gòu)頒發(fā)的,瀏覽器會(huì)發(fā)出另一種警告。 20. 如果數(shù)字證書(shū)是可靠的,客戶端就可以使用證書(shū)中的服務(wù)器公鑰,對(duì)信息進(jìn)行加密,然后與服務(wù)器交換加密信息。 (完) |
|
來(lái)自: 飛鳥(niǎo)的天空zwp > 《區(qū)塊鏈》