ADVERTISEMENT
Google在Android 6.0導入全機加密功能,並會在預設情況下自動開啟開功能,雖然這個設計可以強化資安保障,但是會對效能較差的低階智慧型手機、平板電腦造成較大的負擔。近期Google推出針對沒有特化運算單元的裝置設計的Adiantum加密技術,來改善舊有演算法效率偏低的問題。
保護手機中的資料
加密的意思是透過密碼保護資料,將原始的「明文」資料與「金鑰」(密碼)輸入演算法,就可以得到別人無法解讀的「密文」,事後則可以透過金鑰將密文還原成明文,如此一來就能避免其他人窺探資料,可以說是資安中相當重要的環節。
然而加密的副作用,就是在存取資料的過程中,都需經過加密、解密運算,將會消耗大量運算資源,因此會衝擊裝置的效能表現。
在Android推出6.0版之際,Google為了資安的考量,在預設情況會開啟全機加密功能,但是為了避免讓低階裝置的效能過於低落,所以只要裝置的加密效能低於50MB/s,就不會啟用這個功能。
輕量化加密更適合手機
目前Android採用AES演算法為資料加密,大多數的新裝置都能透過ARMv8 Cryptography Extensions運算單元最佳化加密效能,因此比較不會影響使用者體驗。
然而Android裝置具有龐大的多樣性,不但橫跨智慧型手機、平板電腦,智慧型手錶、電視機上盒、IoT裝置也都看得到Android的身影,對於效能較低或是舊型裝置、Android Go裝置而言,可能因採用ARM Cortex-A7等不具有AES特化運算單元的處理器,導致加密、解密的速度非常慢,而影響使用者體驗。
Adiantum是種新的加密技術,它針對沒有加密特化運算單元的行動裝置所設計,能夠以更有效率的方式加密儲存於本機的資料,讓效能較低的低階裝置也能享受加密所帶來的資安保障。
Adiantum使用以Salsa2為基礎的ChaCha串流加密(Stream Cipher)演算法,在加密、解密4096Byte大小的叢集時,每個Byte只需10.6個周期,效率大約比AES-256-XTS演算法高出5倍。
在ChaCha這類的加密演算法中,每增加1輪運算都會增加被破解的難度,但卻需要付出更多運算量作為代價(也就是說速度會變慢),Google考量到安全性與效能的平衡,在Android裝置上選用12輪運算而非更廣泛使用的20輪。以目前的破解進度來說,7輪運算已被破解,而8輪則還沒有已知的破解方式,因此Android採用的12輪運算可以說是相對安全的選擇。
Adiantum的名字源自1種蕨類植物,其花語為真誠與慎重,可以看出Google的自我期許,但需要注意的是,Adiantum並非所有裝置都適合這種技術,它僅適用於不具有AES特化運算單元的裝置。如果裝置搭載ARMv8 Cryptography Extensions這種AES特化運算單元的話,那麼使用AES加密技術反而效率更好。
如果竊取資料的動作是在解密完成之後,或惡意軟體本身具有讀取資料的權限(偽裝成正常的App),
好像也防不了?
> 加密,似乎只能防止資料被「非正常」存取?
> 如果竊取資料的動作是在解密完成之後,或惡意軟體本身具有讀取資料的權限(偽裝成正常的App),
> 好像也防不了?
>
這種資料加密應該比較接近TPM的應用,簡單說是為了防止裝置遺失後,被攻擊者直接存取資料,或是將儲存媒體(eMMC、SD卡)取下讀出資料。
至於惡意程式竊取資料,就要透過其他方式防堵囉。