企業(yè)應該如何防范HTTPS偽造證書?
Michael Cobb是認證信息系統(tǒng)安全架構專家(CISSP-ISSAP),知名的安全作家,具有十多年豐富的IT行業(yè)經(jīng)驗,并且還從事過十六年的金融行業(yè)。他是Cobweb Applications公司的創(chuàng)始人兼常務董事,該公司主要提供IT培訓,以及數(shù)據(jù)安全和分析的支持。Michael還合著過IIS Security一書,并為領先的IT出版物撰寫過無數(shù)科技文章。此外,Michael還是微軟認證數(shù)據(jù)庫系統(tǒng)管理員和微軟認證專家。
最近未經(jīng)授權的HTTPS證書成為熱門新聞話題,其中有些證書還是來自已熟知/理應可信的供應商的根存儲。那么,企業(yè)應該如何防范這些偽造證書?
Michael Cobb:互聯(lián)網(wǎng)的安全性在很大程度上依賴于對證書頒發(fā)機構(CA)的信任,CA頒發(fā)數(shù)字證書以供Web服務器用于識別自己和加密服務器及用戶之間的流量。這些證書可以防止攻擊者偽造網(wǎng)站或者竊聽發(fā)送到和發(fā)送自網(wǎng)站的通信。
不幸的是,這種信任正在被破壞,因為一系列針對CA(例如DigiNotar和Comodo)的攻擊以及ANSSI情況中的糟糕做法—這導致頒發(fā)欺詐性或未經(jīng)授權數(shù)字證書。偽造證書允許攻擊者窺視Web服務器和瀏覽器之間發(fā)送的信息,即使這種連接似乎很安全。他們還可以用來欺騙內(nèi)容以及執(zhí)行網(wǎng)絡釣魚或中間人攻擊。在最近的事件中,在CA印度國家信息中心(NIC)的證書發(fā)布過程受到攻擊后,對很多谷歌的域名發(fā)出了未經(jīng)授權數(shù)字證書。
NIC持有幾個中間CA證書受印度政府的核準控制局(India CCA)信任。這些India CCA證書包含在微軟Root Store中,因此Windows中運行的很多應用程序都信任該證書,包括IE瀏覽器和谷歌的Chrome瀏覽器。Mac OS X、iOS和Android操作系統(tǒng)中的根存儲并不包含印度CCA的證書,所以并沒有受到影響。Firefox也沒有受到影響,因為它使用的是自己的根存儲,其中不包含這些證書。
谷歌通過發(fā)布CRLSet迅速阻止了Chrome中的未經(jīng)授權的證書。印度CCA隨后撤銷了所有NIC中間證書,并且進行了又一次CRLSet更新來包含這個撤銷。同時,由于谷歌網(wǎng)站利用公共密鑰pinning機制,Windows中的Chrome不會讓谷歌網(wǎng)站接受這些偽造證書。pinning是一種HTTP協(xié)議,允許Web管理員指示瀏覽器在給定的時間內(nèi)記住或者“pin”到Web服務器的數(shù)字證書,從而減少了在這個pin時間內(nèi)可以驗證該域名的機構數(shù)量。
目前有幾個舉措正試圖改進對CA及其頒發(fā)證書的信任。這些包括谷歌的Certificate Transparency計劃和DNS-based Authentication of Named Entities(DANE)。然而,到目前為止這些項目并沒有廣泛的部署。
瀏覽器的信任決策是基于根存儲中信任根,因此企業(yè)保護其用戶免受惡意證書的危害的最好辦法是,確保瀏覽器保持更新了最新的證書信任列表。打開瀏覽器中的證書吊銷檢查并不能夠很有效地確定證書是否仍然有效,并會顯著減慢頁面加載時間。更好的選擇是使用防火墻來深層掃描SSL加密流量,以嗅出假證書或惡意代碼。安全團隊還應該監(jiān)控安全新聞feeds,并且在還沒有可用更新而對網(wǎng)絡的風險被認為不可接受時,應該從根存儲手動刪除不受信任證書。在整個企業(yè)網(wǎng)絡撤銷根和清除本地緩存CTL的指令可以通過組策略來發(fā)布。