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