實施更強健的加密 防止“后門”泄密
在安全領域,加密永遠是無休止的話題。特別是在斯諾登揭露美國安局的監(jiān)控丑聞后,許多人對加密產(chǎn)品產(chǎn)生了很多懷疑,企業(yè)對如何保護數(shù)據(jù)安全的渴望更是與日俱增。
我們不知道為了訪問加密數(shù)據(jù),美國國安局如何在加密系統(tǒng)中建立后門,但是在加密過程中,隨機數(shù)生成器非常重要,因為其在創(chuàng)建數(shù)字證書時扮演著重要角色。如果隨機數(shù)生成器產(chǎn)生的數(shù)字是可預測的,或并不是真正的隨機,那么攻擊者就可以更容易地預測企業(yè)的私鑰,而且可以讀取使用這些密鑰加密的任何消息。
更糟的是,由此,兩個企業(yè)更有可能生成同樣的私鑰。這里的問題是,每個私鑰都有一個唯一匹配的公鑰,所以在理論上黑客有可能查閱公鑰數(shù)據(jù)庫,如果發(fā)現(xiàn)與黑客的公鑰相匹配,那么他們就會知道私鑰也同樣匹配。
當然,這是不太可能的一種情況,但卻表明:加密并不像我們認為的那樣強健。幸運的是,我們?nèi)杂幸恍┓椒梢詼p少與加密有關的已知漏洞。下面的技巧可強化加密的安全性:
1.不要使用老的加密算法
企業(yè)應當停止使用DES等老的加密算法,也不要使用其親戚3DES(三重數(shù)據(jù)加密標準)。
2.使用企業(yè)支持的最長的加密密鑰
建議企業(yè)盡可能使用最大長度的密鑰,這可以使那些無法訪問后門的企業(yè)難以破解企業(yè)的加密。當今,AES 128可謂強健,但如果可能,不妨使用AES 512 或更長的密鑰。
3.多層加密
建議企業(yè)盡可能地利用多層加密,這可以增加攻擊者的困難。如果有可能,不妨對數(shù)據(jù)庫的每個字段、每個表以及整個數(shù)據(jù)庫都進行加密。
4.安全存儲加密密鑰
企業(yè)面臨的最大問題可能并不是加密算法被美國的國安局留下后門,而是密碼本身僅僅是加密方案的一部分。對于基礎架構的其它要素,如密鑰管理系統(tǒng),企業(yè)也必須保證其安全。攻擊者都愿意對付安全系統(tǒng)的最薄弱環(huán)節(jié)。如果攻擊者很容易就可以竊取密鑰,為什么還會費力破解加密算法呢?
有的企業(yè)將保護其數(shù)據(jù)的密鑰給第三方,尤其是在企業(yè)將數(shù)據(jù)存儲在公共云中并由云供應商加密和保護時。這里的問題是,企業(yè)無法控制密鑰,而是必須相信云供應商的雇員會安全地保存密鑰。
如果企業(yè)可以實施一種可以將密鑰控制在云中的加密系統(tǒng),就會安全得多。自動處理加密的云加密網(wǎng)關可以幫助公司實現(xiàn)這種安全。
5.確保正確實施加密
事實上,實施加密系統(tǒng)并非易事,因為它有許多動態(tài)部件,任何一個部件都有可能成為一個薄弱環(huán)節(jié)。你必須進行大量調(diào)查,確保正確實施加密。
在實施加密過程中,哪些方面容易出錯?除了密鑰容易遭受攻擊,還有CBC(密碼分組鏈接)的實施方式。使用CBC,可以用同樣長度的隨機文本塊(也稱為初始化向量)對純文本進行異或運算,然后對其進行加密,產(chǎn)生一個加密文本塊。然后,將前面產(chǎn)生的密文塊作為一個初始化向量對下一個純文本塊進行異或運算。
CBC的正確實施要求在開始每個過程時都有一個新的初始化向量。一個常見的錯誤是用一個不加改變的靜態(tài)初始化向量來實施CBC。如果正確實施了CBC,那么,如果我們在兩個不同的場合加密了文本塊,所生產(chǎn)的密文塊就不會相同。
6.不要忽視外部因素
公司幾乎無法控制的外部因素有可能破壞加密系統(tǒng)的安全性。例如,SSL依賴于數(shù)字證書,而且這些因素依賴于嵌入在瀏覽器(如IE、火狐、Chrome等)中的根證書頒發(fā)機構的完整性。但是,我們?nèi)绾沃榔涫欠窨尚牛蛘哌@些證書頒發(fā)機構不是某外國情報機構的幌子?你是否覺得這聽起來牽強附會,但卻有可能是事實。
此外,DNS也是不得不重視的弱點。只要DNS被攻克,攻擊者就可以使用釣魚技術繞過加密。
當然,這里強調(diào)的是加密問題的各種可能性。一個正確實施的加密系統(tǒng)只能在一種情況下被攻克,即測中密鑰,在短時間內(nèi)猜對密鑰并非不可能,但其可能性微乎其微。
但是,如果不正確實施加密,選擇了不恰當?shù)拿艽a和密鑰長度,再加上其它因素(如隨機數(shù)生成器中的漏洞)就可能意味著加密未必是可靠的。
所以,企業(yè)必須重視從多方面強化加密系統(tǒng),絕不可以偏概全。