鑽CRL的空子進行攻擊(一)
阿新 • • 發佈:2018-12-14
從公鑰失效到Alice收到證書作廢清單(CRL)需要經過一段時間,主動攻擊者可以利用CRL釋出的時間差來發動攻擊。
某天深夜,攻擊者入侵了Bob的電腦,竊取了Bob的私鑰。接下來,攻擊者偽裝成Bob給Alice寫了一封郵件,郵件中要求Alice把錢轉賬給攻擊者的賬戶。當然,攻擊者使用了剛剛竊取到的私鑰對郵件進行了數字簽名。
第二天早上,Bob發現自己的電腦被入侵,而且私鑰被盜,於是Bob馬上聯絡認證機構Trent,通知自己的公鑰已經失效。
接到這個訊息,Trent將Bob的金鑰失效一事製成CRL併發布出來。
另一方面,Alice收到了Bob(其實是攻擊者偽裝)發來的郵件,於是準備向指定賬號轉賬。不過在此之前,Alice需要驗證數字簽名。她用Bob的公鑰進行驗證,結果成功了,而且Bob的公鑰帶有認證機構Trent頒發的證書。於是Alice相信了郵件的內容,進行了轉賬操作,過了一段時間,Alice收到認證機構Trent釋出的最新版CRL,發現Bob的證書其實已經失效了。
要防禦上述利用CRL釋出的時間差所發動的攻擊是非常困難的。在上面的故事中,Bob察覺到自己的私鑰被盜了,但實際上,大多數情況下都是發現自己沒有簽名的檔案上附帶了簽名時,才發現私鑰被盜的。即使Bob用最短的時間通知Trent,釋出CRL也是需要時間的,在這段時間內,攻擊者完全可以為所欲為。況且,等Alice真的收到CRL又要經過一段時間。
因此,對於這種攻擊的對策是:
- 當公鑰失效時儘快通知認證機構(Bob)
- 儘快釋出CRL(Trent)
- 及時更新CRL(Alice)
- 在使用公鑰前,再次確認公鑰是否已經失效(Alice)