數(shù)字簽名是什么?
1.
鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。
2.
鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。
3.
蘇珊要給鮑勃寫(xiě)一封保密的信。她寫(xiě)完后用鮑勃的公鑰加密,就可以達(dá)到保密的效果。
4.
鮑勃收信后,用私鑰解密,就看到了信件內(nèi)容。這里要強(qiáng)調(diào)的是,只要鮑勃的私鑰不泄露,這封信就是安全的,即使落在別人手里,也無(wú)法解密。
5.
鮑勃給蘇珊回信,決定采用"數(shù)字簽名"。他寫(xiě)完后先用Hash函數(shù),生成信件的摘要(digest)。#p#
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)行解密。#p#
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)求。#p#
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ù)器交換加密信息。
【編輯推薦】