證書介紹
什么是證書
- 先來(lái)回顧一下數(shù)字簽名技術(shù)审洞。
數(shù)字簽名就是將消息的散列值用自己的私鑰進(jìn)行加密莱睁,然后接收端用對(duì)應(yīng)的公鑰進(jìn)行解密得出散列值,再和接收端自己計(jì)算的散列值做比對(duì)芒澜。
整個(gè)過(guò)程中最為關(guān)鍵的是公鑰的正確性仰剿,如果公鑰是中間人的,則可以形成中間人攻擊痴晦。 -
證書
證書就是為了解決上面的公鑰問(wèn)題的南吮。
證書就是由認(rèn)證機(jī)構(gòu)對(duì)某個(gè)公鑰施加數(shù)字簽名,并附上此公鑰所屬人的姓名誊酌、組織部凑、郵箱形成的文件。又稱為公鑰證書术辐。
證書應(yīng)用場(chǎng)景流程
- 接收者生成密鑰對(duì)
- 接收者在認(rèn)證機(jī)構(gòu)注冊(cè)自己的公鑰
- 認(rèn)證機(jī)構(gòu)用自己的私鑰對(duì)接收者的公鑰施加數(shù)字簽名并生成證書
- 發(fā)送者得到認(rèn)證機(jī)構(gòu)發(fā)布的證書
- 發(fā)送者使用認(rèn)證機(jī)構(gòu)的公鑰解密證書砚尽,得到接收者的公鑰
- 發(fā)送者使用接收者的公鑰對(duì)消息進(jìn)行加密,發(fā)送給接收者
- 接收者接收到消息后辉词,用自己的私鑰解密獲得明文消息
X.509證書內(nèi)容
- 簽名前的證書
- 規(guī)范版本: 現(xiàn)在一般要求版本是3
- 證書序列號(hào)
- 數(shù)字簽名算法: 一般都是SHA1WithRSA必孤,意思是用RSA對(duì)SHA1散列值進(jìn)行簽名
- 證書頒發(fā)者
- 有效期起始時(shí)間
- 有效期結(jié)束時(shí)間
- 公鑰所有人
- 公鑰算法:現(xiàn)在一般都是RSA
- 公鑰內(nèi)容
- 數(shù)字簽名算法:一般都是SHA1WithRSA,意思是用RSA對(duì)SHA1散列值進(jìn)行簽名
- 數(shù)字簽名內(nèi)容
公鑰基礎(chǔ)設(shè)施(PKI)
什么是公鑰基礎(chǔ)設(shè)施
- 英文全稱是Public-Key Infrastructure
- 簡(jiǎn)單的說(shuō)就是證書各種規(guī)格、規(guī)范的總稱
- 涉及到的角色包括
- 用戶:使用證書的實(shí)體
- 認(rèn)證機(jī)構(gòu):頒發(fā)證書的實(shí)體
- 倉(cāng)庫(kù):保存證書的數(shù)據(jù)庫(kù)
認(rèn)證機(jī)構(gòu)的工作
-
生成密鑰對(duì)
這個(gè)工作可以有用戶自己完成敷搪。 -
注冊(cè)證書
就是用自己的私鑰完成對(duì)注冊(cè)人公鑰的數(shù)字簽名兴想,并附上其他信息。 -
作廢證書和CRL
證書在某些情況下是需要作廢的赡勘,例如私鑰已經(jīng)泄露嫂便。
CRL就是一張作廢的證書序列號(hào)的清單,并附上認(rèn)證機(jī)構(gòu)的數(shù)字簽名闸与。
不過(guò)僅憑CRL來(lái)判斷證書是否有效毙替,還需要查詢最新的CRL。
證書的層級(jí)結(jié)構(gòu)
- 簡(jiǎn)單的說(shuō)就是逐級(jí)分層的簽名認(rèn)證践樱,最上面一層是CA認(rèn)證厂画,根認(rèn)證。
- 根證書是認(rèn)證機(jī)構(gòu)的自簽名拷邢,下一級(jí)證書是下一級(jí)的公鑰被根證書的私鑰簽名袱院。
- 這樣看的話,基本至少應(yīng)該有兩級(jí)證書
- 至于為什么會(huì)有這樣的需求瞭稼,書本里并沒(méi)有描述忽洛。
對(duì)證書的攻擊
- 在公鑰注冊(cè)之前發(fā)動(dòng)攻擊
- 在準(zhǔn)備注冊(cè)人發(fā)送給認(rèn)證機(jī)構(gòu)的公鑰替換掉
- 破解的辦法是認(rèn)證機(jī)構(gòu)在頒布證書之前,發(fā)給注冊(cè)人確認(rèn)
- 注冊(cè)相似人名進(jìn)行攻擊
- 攻擊很好理解环肘,類似于周黑鴨和鄒黑鴨的商標(biāo)欲虚。
- 破解的辦法是認(rèn)證機(jī)構(gòu)確認(rèn)個(gè)人信息的身份
- 竊取認(rèn)證機(jī)構(gòu)的私鑰進(jìn)行攻擊
- 攻擊者偽裝成認(rèn)證機(jī)構(gòu)進(jìn)行攻擊
- 鉆CRL的空子進(jìn)行攻擊(1)
利用CRL發(fā)布的時(shí)間差來(lái)發(fā)動(dòng)攻擊 - 鉆CRL的空子進(jìn)行攻擊(2)
簡(jiǎn)單的說(shuō)是注冊(cè)一方,在發(fā)送消息后悔雹,申請(qǐng)證書注銷苍在。利用時(shí)間差來(lái)晚成攻擊,而且可以否認(rèn)是自己發(fā)送荠商。