綜述
數(shù)字證書(shū)浸间,就是一個(gè)證書(shū)太雨,是由專(zhuān)業(yè)的證書(shū)頒發(fā)機(jī)構(gòu)來(lái)頒發(fā)的,用于確認(rèn)一個(gè)數(shù)字簽名的合法性
相當(dāng)于每個(gè)人都去社保局備案魁蒜,申請(qǐng)一張社蹦野猓卡一樣,這張社倍悼矗卡中帶有你的身份信息锥咸,可以標(biāo)明你的身份
定義
A :張三? ? A1:A的公鑰? A2:A的私鑰
B:李四 ? ?B1:B的公鑰 ?B2:B的私鑰
sign數(shù)字簽名 ?FS文件摘要
場(chǎng)景
場(chǎng)景:A向B發(fā)送一個(gè)100M的文件
1.A將F通過(guò)單向散列算法,輸出文件摘要(FS)
2.A用A1對(duì)FS進(jìn)行加密细移,輸出(sign1)--------數(shù)字簽名
3.A將F搏予、A1、sign1打包葫哗,一并交給B
4.B得到F缔刹、A1、sign1
5.B將F通過(guò)但單向散列算法劣针,輸出文件摘要(FS2)
6.B用A1和sign1解析出文件摘要(FS3)
7.如果FS3和FS2相同校镐,標(biāo)明文件沒(méi)有被篡改
問(wèn)題:B怎么能確定這個(gè)文件是由A發(fā)的,而不是C盜竊了A的私鑰來(lái)發(fā)的呢捺典?
這時(shí)候需要一個(gè)第三方機(jī)構(gòu)(CA)來(lái)做認(rèn)證鸟廓,相當(dāng)于A向公安局備案
插入以下流程
1.1:A向CA提交A的信息,如A公鑰襟己、A用戶名引谜、A郵箱、A公司信息等擎浴,CA驗(yàn)證A的合法性员咽,如果合法,CA用自己的私鑰將A公鑰贮预、A用戶名贝室、A郵箱契讲、A公司等信息進(jìn)行加密,生成一個(gè)數(shù)字證書(shū)(Cer1)滑频,發(fā)給A
3.A將F捡偏、A1、sign1峡迷、Cer1打包银伟,一并交給B
4.B得到F、A1绘搞、sign1彤避、Cer1
4.1 ?B用CA的公鑰解析Cer1,解析出A1看杭、用戶名忠藤、郵箱、公司信息等楼雹;判斷用戶信息和公鑰是否正確模孩,如果不正確,拋出異常
CA頒發(fā)證書(shū)是收費(fèi)的贮缅,類(lèi)似域名一樣榨咐,按月收費(fèi)
有效性如何確定呢
證書(shū)是有有效期的,去CA可以驗(yàn)證證書(shū)是否還有效谴供,如果證書(shū)丟失块茁,可以去CA掛失證書(shū)
就好比社保卡丟失之后桂肌,可以去社保中心掛失
應(yīng)用場(chǎng)景
數(shù)字簽名数焊,比如一個(gè)應(yīng)用程序的可執(zhí)行文件歧匈,用以保證安裝包沒(méi)有被篡改
HTTPS撩炊,用以保證數(shù)據(jù)傳輸過(guò)程中不會(huì)被黑客攔截
比如(一個(gè)HTTPS驗(yàn)證過(guò)程):
1.客戶端向服務(wù)器發(fā)送HTTPS請(qǐng)求
2.服務(wù)器用自己的私鑰將網(wǎng)頁(yè)信息加密,連同數(shù)字證書(shū)一并發(fā)送到客戶端
3.客戶端瀏覽器查看本地的“受信任的證書(shū)列表”
4.查看服務(wù)器發(fā)過(guò)來(lái)的數(shù)字證書(shū)是否在受信任的證書(shū)列表中真椿,如果不在谭跨,提示用戶:“此網(wǎng)站是為其他網(wǎng)址服務(wù)的干厚,建議關(guān)閉”
5.如果數(shù)字證書(shū)存在于受信任的證書(shū)列表中,但是數(shù)字證書(shū)中記載的域名地址和當(dāng)前用戶正在訪問(wèn)的域名地址不同螃宙,說(shuō)明這個(gè)證書(shū)可能被冒用蛮瞄,網(wǎng)站會(huì)發(fā)出警告
未完待續(xù)。谆扎。挂捅。