圖片來源: 

photo by Mark Chan on unsplash

來自以色列臺拉維夫大學(Tel Aviv University)的3名研究人員,在本周公布了一篇研究報告《於黑暗中死亡的信任:揭露三星的TrustZone金鑰管理設計》(Trust Dies in Darkness: Shedding Light on Samsung's TrustZone Keymaster Design),指出三星於Android手機導入的加密功能含有設計漏洞,讓駭客得以汲取由硬體保護的金鑰材料,波及Galaxy S8/S9/S10/S20/S21等三星旗艦手機,估計有1億支三星裝置受到影響。不過,三星在去年已在接到通報之後修補了相關漏洞。

三星手機使用的是Android系統,而Android多半仰賴Arm處理器,Arm處理器中除了有一個被視為正常世界的的Android執行環境(Rich Execution Environments,REE)之外,也有一個標榜安全、採用TrustZone作業系統的(Trusted Execution Environments,TEE)執行環境,雙方使用不同的資源,彼此隔離,後者提供更高級的安全性,僅供可靠程式存取,手機製造商則可自行於TEE中部署加密功能。

三星透過可靠應用程式Keymaster TA與硬體抽象層(Hardware Abstraction Layer)於TEE中實踐Android Keystore系統,允許金鑰產生器、金鑰儲存應用或金鑰使用程式藉由API與Keystore互動,而Keymaster則負責加密Keystore中所存放的金鑰,再將已加密的Key Blob傳送給REE中需要的程式。

每個加密過的Key Blob都含有一個加密部分,內含金鑰材料與不同的參數,另有一個明文部分則提供解密所需資訊,例如加密時所使用的初始化向量(Initialization Vector,IV)與額外認證資料(Additional Authentication Data,AAD)等,理論上每次的IV值都是不同的,以確保同樣明文被加密時會產生不同的結果,但三星卻允許應用程式能夠選擇加密時的IV值。

因此,當駭客重覆使用IV來加密同一個金鑰時,所得到的金鑰流就是相同的,因此,當知道一個金鑰的明文時,立即就能揭露另一個,而這種可預測性便是加密的禍根。

研究人員發現v15及v20-s9版本的Blob格式皆含有上述的CVE-2021-25444漏洞,它們被應用在Galaxy S8及Galaxy S9上,儘管應用在Galaxy S10/S20/S21的Blob v20-s10不存在CVE-2021-25444漏洞,但它卻有另一個可將Blob版本降級至v15的CVE-2021-25490漏洞,在接獲研究人員的報告之後,三星已分別於去年8月及10月修補了這兩個安全漏洞。

研究人員指出,上述的攻擊行動是在假設手機上的REE區域已被全面攻陷所進行的,此外,TrustZone部署較不受關注的主因,是因為大多數的裝置製造商並未提交相關的文件,而且對於如何保護機密資料幾乎守口如瓶,使得他們決定以最受歡迎的Android手機品牌進行測試。

熱門新聞

Advertisement