動态密鑰白(bái)盒:讓密鑰“消失”的新一代技術(shù)
發布時間:
2017-12-27
來(lái)源:
筆者昨天在網上看(kàn)到一條消息,說(shuō) iPhone 5s的Secure Enclave遭遇黑(hēi)客入侵,密鑰被披露,在新加坡的黑(hēi)客大(dà)會上還(hái)有人(rén)爲iPhone 5s的Secure Enclave固件(jiàn)提供了提取工(gōng)具。如(rú)果消息屬實,意味着iPhone 5s将成爲繼iPhone 6之後第二個Secure Enclave被破解的蘋果手機(jī)。
看(kàn)完這條新聞筆者内心極爲震驚,曾經屬于蘋果的安全神話(huà)屢被攻破,甚至連蘋果Touch ID最好的安全“保險箱”Secure Enclave也不再是黑(hēi)客“禁區”,相(xiàng)繼淪陷。
在這裡(lǐ)筆者不想猜測Secure Enclave被攻破後密鑰洩露所可(kě)能帶來(lái)的危害,而是希望通過分(fēn)析該事(shì)件(jiàn)背後的本質原因,讓安全從(cóng)業者更爲深入地認知密鑰安全。正所謂“鑒于往事(shì),有資于治道”,安全也是如(rú)此,曆史是最好的老師(shī)。
蘋果Secure Enclave安全區爲什麽不再安全
在iPhone 5S上市後,蘋果公司發表了一份有關iOS安全的白(bái)皮書(shū),根據白(bái)皮書(shū)的描述,蘋果公司在A7芯片中集成了一個Secure Enclave協處理(lǐ)器,用來(lái)管理(lǐ)、核對和存儲用戶的指紋信息。Secure Enclave協處理(lǐ)器是一個獨立的系統,有獨立的安全啓動順序和軟件(jiàn)升級機(jī)制,如(rú)下圖所示:
安全區硬件(jiàn)架構
蘋果正是通過Secure Enclave構建了一個芯片級安全區,這是一個獨立的安全空間,它與手機(jī)系統其它部分(fēn)完全隔離(lí),是一個外部無法訪問(wèn)的黑(hēi)盒。在這裡(lǐ),指紋傳感器和Secure Enclave内建一個共享密鑰A,然後系統根據這個共享密鑰A随機(jī)生(shēng)成一個唯一的密鑰B,來(lái)加密保護Touch ID數據。如(rú)果使用中要調用指紋數據,整個過程都(dōu)會有AES密鑰随機(jī)加密保護。在這個過程中,指紋傳感器與Secure Enclave共享唯一密鑰A,使得(de)每一台設備的指紋傳感器與手機(jī)A7處理(lǐ)器是一對一的綁定關系。
蘋果這種芯片級安全方案,幾乎可(kě)以讓任何Touch ID用戶産生(shēng)“高枕無憂”的錯誤安全感,因爲他(tā)們相(xiàng)信指紋加密信息和密鑰都(dōu)被完整放(fàng)進了一個絕對安全的黑(hēi)色“保險箱”。但(dàn)是這真的安全嗎(ma)?黑(hēi)客再次用事(shì)實證明,實際情況并非如(rú)此。
正所謂“不怕賊偷,就(jiù)怕賊惦記”,而密鑰正是黑(hēi)客所惦記的東西。世界上沒有絕對的安全,一旦那個黑(hēi)色“保險箱”被人(rén)打開,其将徹底成爲“白(bái)盒”,那把唯一能打開你(nǐ)加密信息的密鑰也就(jiù)赤裸裸擺在黑(hēi)客眼前了。
保護一滴水,最好辦法是把它放(fàng)進大(dà)海裡(lǐ)
如(rú)果想進入一個銅牆鐵壁的房(fáng)子,最明智的辦法是“偷取”房(fáng)門(mén)鑰匙。對于黑(hēi)客而言偷密鑰肯定比攻破加密算法容易得(de)多。因此密鑰一定會被黑(hēi)客盯上,其安全問(wèn)題時刻面臨巨大(dà)挑戰。
曾幾何時,人(rén)們認爲把密鑰鎖進“保險櫃”已經很安全了,可(kě)蘋果Secure Enclave芯片級安全區被攻破事(shì)件(jiàn)卻打破了人(rén)們的美夢,更何況市場上大(dà)多數應用系統采用密鑰保護方式。
黑(hēi)客可(kě)以通過簡單的調試工(gōng)具,對運行在終端設備上的應用程序進行反編譯,于反編譯後的程序中找到加密算法,在運行的内存中輕松找到完整密鑰。這時所有加密信息都(dōu)猶如(rú)明文般赤裸裸擺在了黑(hēi)客面前。
那密鑰安全防護到底應該怎麽才安全?筆者認爲既然防不住黑(hēi)客對密鑰的竊取,那就(jiù)讓密鑰“消失”。正如(rú)保護一滴水那樣,最好的辦法就(jiù)是把它放(fàng)進大(dà)海裡(lǐ)。
動态密鑰白(bái)盒:讓密鑰“消失”的新一代防護體(tǐ)系
密鑰白(bái)盒是将密碼算法白(bái)盒化的過程,從(cóng)本質上說(shuō)是提高加解密程序的複雜度,緻使逆向人(rén)員(yuán)無法分(fēn)析還(hái)原出密鑰。密鑰白(bái)盒可(kě)分(fēn)爲靜(jìng)态密鑰白(bái)盒和動态密鑰白(bái)盒。前者是将密鑰和加密算法綁定混淆,生(shēng)成密鑰白(bái)盒,一個密鑰對應一個密鑰白(bái)盒,以庫文件(jiàn)形式存在,需要在開發應用程序時集成到工(gōng)程裡(lǐ)。因此在進行密鑰更新時非常麻煩,隻能引用一些熱(rè)更新技術(shù)解決,且類似技術(shù)會長期伴随着兼容性、個别機(jī)型閃退等問(wèn)題。
爲解決靜(jìng)态密鑰白(bái)盒更新密鑰時的局限性,國(guó)内移動安全領導廠(chǎng)商梆梆安全設計(jì)出了動态密鑰白(bái)盒,它包括白(bái)盒庫和白(bái)盒密鑰。在密碼程序運行的任何階段,原始密鑰信息完全融入到加解密算法之中,原始密鑰信息已經不存在。即隻能輸入明文得(de)到密文,或者相(xiàng)反操作(zuò)得(de)到明文。同時還(hái)可(kě)以在保持白(bái)盒庫不變的情況下更換密鑰。這極大(dà)提升了白(bái)盒密碼産品的靈活性。
動态密鑰白(bái)盒的重要意義就(jiù)是保護終端密鑰安全,所以凡是有需要保護密鑰的應用場景,都(dōu)可(kě)以利用安全密鑰白(bái)盒系統生(shēng)成的白(bái)盒庫和白(bái)盒密鑰進行有效保護。下面介紹幾個典型的應用場景:
三種密鑰保護方式
1. 設備身(shēn)份認證
白(bái)盒密鑰支持“一人(rén)一密”、“一機(jī)一密”,并且白(bái)盒庫可(kě)以與設備指紋相(xiàng)綁定,從(cóng)而達到身(shēn)份識别的用途。
2. 通訊協議(yì)保護
在移動互聯網、物聯網等應用場景中,應用開發商都(dōu)有一些私有的通訊協議(yì)需要保護,尤其是物聯網應用CPU計(jì)算能力都(dōu)有限,而梆梆安全可(kě)以提供輕量級白(bái)盒庫,在性能、體(tǐ)積、資源消耗等方面都(dōu)滿足物聯網的苛刻條件(jiàn)。
3. 本地數據保護
軟件(jiàn)開發者可(kě)以将白(bái)盒加密算法用于本地資源文件(jiàn)的加密保護,防止重要的本地資源文件(jiàn)被竊取、被篡改。
寫在最後
這個世上沒有絕對的安全,因此再堅固的“黑(hēi)盒”也會被人(rén)攻破變成“白(bái)盒”,千萬不要認爲将密鑰放(fàng)到一個自(zì)認爲堅不可(kě)摧的“保險箱”中就(jiù)安全了。保護密鑰最安全辦法就(jiù)是讓密鑰消失,這樣就(jiù)可(kě)以讓黑(hēi)客失去(qù)攻擊目标,再強大(dà)的攻擊也會變得(de)毫無意義了。
|
相(xiàng)關資訊