认证篇——证书
在前面提到的數(shù)字簽名和公鑰密碼都需要使用公鑰,如何判斷自己手中的公鑰是否合法?這時(shí)就需要使用對公鑰合法性證明的技術(shù)——證書
目錄
證書介紹:
公鑰證書(PKC):
證書使用場景:
公鑰基礎(chǔ)設(shè)施
PKI組成要素:
認(rèn)證機(jī)構(gòu)的工作:
對證書的攻擊
1)在公鑰注冊前進(jìn)行攻擊
2)注冊相似人名進(jìn)行攻擊
3)竊取認(rèn)證機(jī)構(gòu)的私鑰進(jìn)行攻擊
4)偽裝成認(rèn)證機(jī)構(gòu)進(jìn)行攻擊
5)通過CRL進(jìn)行攻擊
小結(jié)
證書介紹:
公鑰證書(PKC):
簡稱證書,里面記有個(gè)人信息和屬于個(gè)人的公鑰,并由認(rèn)證機(jī)構(gòu)(CA)加以數(shù)字簽名;由此可以得出該公鑰屬于此人,以此來降低中間人攻擊的風(fēng)險(xiǎn)
?
證書使用場景:
1)接收者生成密鑰對:使用公鑰密碼通信,要實(shí)現(xiàn)生成密鑰對(密鑰對可由自行生成也可由認(rèn)證機(jī)構(gòu)生成)
2)在認(rèn)證機(jī)構(gòu)注冊公鑰:認(rèn)證機(jī)構(gòu)在確認(rèn)了公鑰持有人后,對公鑰進(jìn)行數(shù)字簽名
3)認(rèn)證機(jī)構(gòu)使用自己的私鑰對公鑰進(jìn)行數(shù)字簽名并生成證書
4)發(fā)送者得到接受者的帶有數(shù)字簽名的公鑰
5)發(fā)送者通過認(rèn)證機(jī)構(gòu)的公鑰驗(yàn)證數(shù)字簽名,確定公鑰的合法性
6)發(fā)送者使用該公鑰加密消息并發(fā)送消息
7)接收者使用私鑰進(jìn)行解密得到的消息
?
公鑰基礎(chǔ)設(shè)施
公鑰基礎(chǔ)設(shè)施(PKI)是為了能更有效地運(yùn)用公鑰而制定的一系列規(guī)則和規(guī)范的總稱
注:并非指某一個(gè)單獨(dú)的規(guī)范或規(guī)格
其中包括:
1)PKCS(公鑰密碼標(biāo)準(zhǔn))
2)X.509
2)RFC
3)API(應(yīng)用程序編程接口)
PKI組成要素:
1)用戶:用使用PKI的人
2)認(rèn)證機(jī)構(gòu):頒發(fā)證書的機(jī)構(gòu)
3)倉庫(證書目錄):保存證書的數(shù)據(jù)庫
認(rèn)證機(jī)構(gòu)的工作:
1)生成密鑰對
2)注冊證書
3)作廢證書和CRL(作廢證書清單)
?
對證書的攻擊
1)在公鑰注冊前進(jìn)行攻擊
在生成密鑰對后,將其公鑰替換成自己的;使認(rèn)證機(jī)構(gòu)將消息和被替換的公鑰進(jìn)行數(shù)字簽名
防御:
- 在認(rèn)證機(jī)構(gòu)生成密鑰對
- 使用認(rèn)證機(jī)構(gòu)的公鑰對自己的公鑰進(jìn)行加密
2)注冊相似人名進(jìn)行攻擊
alice和a1ice或bob和b0b等使用人們?nèi)菀妆嬲J(rèn)不清的字符對原來的進(jìn)行替換
防御:
認(rèn)證機(jī)構(gòu)必須確認(rèn)證書中包含的信息是否真的是持有者的個(gè)人信息
3)竊取認(rèn)證機(jī)構(gòu)的私鑰進(jìn)行攻擊
一般而言是做不到的,認(rèn)證機(jī)構(gòu)為了使自己的數(shù)字簽名可信,都花費(fèi)了大量的人力物力防止自己的私鑰被盜
而且,認(rèn)證機(jī)構(gòu)記錄了自己頒發(fā)的整數(shù)序列號,能夠判斷該證書是否是自己頒發(fā)的;即使私鑰被竊取,認(rèn)證機(jī)構(gòu)會將該事件通過CRL通知用戶
4)偽裝成認(rèn)證機(jī)構(gòu)進(jìn)行攻擊
如果認(rèn)證機(jī)構(gòu)不可信,即使證書合法,其公鑰也不能使用
防御:需要多加留心URL(網(wǎng)址),注意自己所得的證書是有哪個(gè)機(jī)構(gòu)頒發(fā)的,查看該機(jī)構(gòu)是否可信
5)通過CRL進(jìn)行攻擊
1)公鑰失效時(shí),CRL需要過一段時(shí)間才會更新,因此可以利用CRL時(shí)間差來進(jìn)行攻擊
防御
- 公鑰失效時(shí)盡快通知認(rèn)證機(jī)構(gòu)
- 盡快發(fā)布CRL
- 及時(shí)更新CRL
- 在是用公鑰前,再次確認(rèn)公鑰是否已經(jīng)失效
2)通過這種鉆空子的方法,可以實(shí)現(xiàn)否認(rèn)
為了快速確認(rèn)證書是否已經(jīng)失效,一設(shè)計(jì)出一種OCSP的協(xié)議
小結(jié)
1)如果有可信任的公鑰,就不需要認(rèn)證機(jī)構(gòu)
2)當(dāng)有可信任機(jī)構(gòu)的公鑰時(shí),并相信機(jī)構(gòu)的身份確認(rèn)下;可以使用該機(jī)構(gòu)頒發(fā)的證書和公鑰
3)不要使用”隱蔽式安全”,在現(xiàn)有環(huán)境下,這些公開的技術(shù)是經(jīng)過時(shí)間的考驗(yàn)的,僅靠一家公司是無法開發(fā)出抵御攻擊的安全技術(shù)的
4)無論什么數(shù)字簽名、證書、認(rèn)證機(jī)構(gòu)都需要有已存在的信任下,才能引生出其他信任關(guān)系
?
?
?
?
總結(jié)