姓名:何瑞 ????????? 學(xué)號:17021211237
原文連接:https://blog.csdn.net/u014419512/article/details/26408177
【嵌牛導(dǎo)讀】:數(shù)字簽名、數(shù)字證書等技術(shù)察郁,是現(xiàn)代信息安全的核心技術(shù)受楼,可謂使用面十分廣泛。其基本理論本身并不復(fù)雜网严,本文希望通過深入淺出的介紹识樱,能夠讓大家有一些基本了解。
【嵌牛鼻子】:數(shù)字證書
【嵌牛提問】:什么是數(shù)字證書震束?它有什么用怜庸?
【嵌牛正文】
數(shù)字證書
前兩篇文章,分別介紹了非對稱加密算法和數(shù)字簽名技術(shù)垢村。
基于非對稱密鑰算法割疾,Bob生成了一對公私鑰。Bob將公鑰發(fā)布在公開的密鑰庫中嘉栓。而Alice在向Bob發(fā)送加密文件或者驗(yàn)證Bob簽名的文件時宏榕,均要從公鑰庫取到Bob的公鑰拓诸。我們已經(jīng)知道,一般來說公鑰就是一段固定長度的字符串麻昼,并沒有特定的含義奠支。
為了讓Alice能夠方便的辨別公鑰,我們可以考慮對給公鑰附加一些信息涌献,例如該公鑰使用的算法胚宦,該公鑰的所有者(主題),該公鑰的有效期等一系列屬性燕垃。這樣的數(shù)據(jù)結(jié)構(gòu)我們稱作PKCS10數(shù)據(jù)包
公鑰的主題我們采用唯一標(biāo)示符(或稱DN-distinguished?name)枢劝,以盡量唯一的標(biāo)示公鑰所有者。
我們已經(jīng)有了PKCS10數(shù)據(jù)包卜壕,除了公鑰信息外您旁,還有公鑰的持有者,公鑰的版本號等信息轴捎。然而這樣的數(shù)據(jù)結(jié)構(gòu)其實(shí)并沒有任何權(quán)威性鹤盒。例如有一天一個叫做Richard的人想冒充Bob,也生成一對公私鑰侦副,并且使用了相同的公鑰主題封裝為P10數(shù)據(jù)結(jié)構(gòu)侦锯。Alice其實(shí)并沒有辦法分辨哪個是真實(shí)Bob的公鑰。
為了解決這個問題秦驯,就需要一個權(quán)威的第三方機(jī)構(gòu)尺碰,對P10結(jié)構(gòu)的數(shù)據(jù)進(jìn)行認(rèn)證。就如同對P10文件蓋上一個權(quán)威的章译隘,防止仿照亲桥。這樣的權(quán)威機(jī)構(gòu),我們稱作CA(Certificate?Authority)數(shù)字證書認(rèn)證中心固耘。而CA如何為P10數(shù)據(jù)蓋章呢题篷?非常簡單,就是我們前文已經(jīng)提到的數(shù)字簽名技術(shù):
① 如上圖所示厅目,CA機(jī)構(gòu)其實(shí)也持有一張私鑰番枚。一般來說,CA會對這份私鑰進(jìn)行特別的保護(hù)损敷,嚴(yán)禁泄漏和盜用葫笼。
② Bob將自己的公鑰附加上一系列信息后,形成了P10數(shù)據(jù)包(請求包)嗤锉,并發(fā)送給CA渔欢。
③ CA機(jī)構(gòu)通過其他一些手段,例如查看Bob的身份信息等方式瘟忱,認(rèn)可了Bob的身份奥额。于是使用自己的私鑰對P10請求進(jìn)行簽名苫幢。(也可能會先對數(shù)據(jù)進(jìn)行一些簡單修改,如修改有效期或主題等)
④ 這樣的簽名結(jié)果垫挨,我們就稱作數(shù)字證書韩肝。
數(shù)字證書同樣遵循一個格式標(biāo)準(zhǔn),我們稱作X509標(biāo)準(zhǔn)九榔,我們一般提到的X509證書就是如此哀峻。
基于數(shù)字證書,我們可以再來看看Bob如何給Alice發(fā)送一份不可否認(rèn)哲泊、不可篡改的文件:
第一步:Bob除了對文件進(jìn)行簽名操作外剩蟀,同時附加了自己的數(shù)字證書。一同發(fā)給Alice切威。
第二步:Alice首先使用CA的公鑰育特,對證書進(jìn)行驗(yàn)證。如果驗(yàn)證成功先朦,提取證書中的公鑰缰冤,對Bob發(fā)來的文件進(jìn)行驗(yàn)簽。如果驗(yàn)證成功喳魏,則證明文件的不可否認(rèn)和不可篡改棉浸。
可以看到,基于數(shù)字證書后刺彩,Alice不在需要一個公鑰庫維護(hù)Bob(或其他人)的公鑰證書迷郑,只要持有CA的公鑰即可。數(shù)字證書在電子商務(wù)迂苛,電子認(rèn)證等方面使用非常廣泛三热,就如同計算機(jī)世界的身份證鼓择,可以證明企業(yè)三幻、個人、網(wǎng)站等實(shí)體的身份呐能。同時基于數(shù)字證書念搬,加密算法的技術(shù)也可以支持一些安全交互協(xié)議(如SSL)。