提升待機與鎖定的防護能力
Keystore的一個特色是能將加密基元(Cryptographic Primitives)從Android作業系統下的軟體函數庫移動到資安相關硬體元件,不但能夠以硬體方式保障金鑰,也讓金鑰僅能在硬體元件中使用,提高面對攻擊的抵抗力。
另一方面,在行動裝置待機時如果接收到E-mail或即時通訊等資訊,往往不需馬上進行處理,這時候可能包含機密資料的資訊就會在螢幕鎖定的狀態下傳送至對應的App,並且必需確保在使用者解鎖螢幕前都處於安全狀態。
Android 9的Keystore導入稱為Keyguard-Bound的加密機制,來解決這個問題,它可以在螢幕鎖定時進行加密與驗證工作,但是無法進行解密或數位簽署,如果裝置在鎖定時受到PIN、密碼保護的話,Keyguard-Bound則會讓任何嘗試使用金鑰的操作無效化,如此一來就能在裝置待機或鎖定時保護使用者的機密資料,並只在使用者需要時提供資料存取權限,大幅提升安全性。
雖然Keyguard-Bound與傳統的身份驗證機制相當類似,但兩者卻有個決定性的差異,那就是傳統身份驗證則會鎖定設備的一段時間之後才鎖定金鑰,而Keyguard-Bound則會立刻鎖定金鑰,需要解鎖後才能再次使用金鑰。
由於Keyguard-Bound屬於作業系統層級功能,所以相容於任何執行Android 9的裝置,但是它仍可搭配硬體加密機制,以進一步提高安全性。
透過硬體方式保護金鑰
Secure Key Import(安全金鑰匯入)是Android 9 Keystore的另一個新功能,讓App可以將現有金鑰更安全地匯入Keystore。
金鑰的根源(Origin of Key,可能儲存於伺服器)可以透過使用者裝置上的公鑰進行非對稱式加密,以利進行金鑰交換。伺服器會在金鑰的加密過程中一併寫入描述,讓回傳的金鑰資料僅能在配對的Keystore硬體元件上解密,並僅能在該裝置上使用。
另一方面,金鑰在傳輸的過程中對App、作業系統而言是不透明的,意為著只能在配對的硬體元件中運作,也能發揮提高安全性的效果。
Secure Key Import能在App與裝置間進行金鑰溝通時發揮保護作用,避免金鑰被攔截、竊取,或是傳輸到裝置外部,比方Google Pixel 3智慧型手機就透過Secure Key Import確保Google Pay的安全,以免金鑰從系統的主記憶體中被竊取出來。
需要注意的是,Secure Key Import需搭配專屬的硬體,因此只能在特定Android裝置發揮作用,與Keyguard-Bound一體通用的支援性有所不同。
如果讀者想要進一步瞭解Keystore,可以至Android資源中心閱讀相關資料。
加入電腦王Facebook粉絲團