Google釋出了Capillary計畫,這計畫包含了一個開源函式庫,要幫助開發者提供伺服器到Android裝置間的端對端加密推送訊息功能,Google表示,要提供端對端加密功能需要一定程度技術,因此他們希望透過Capillary計畫中的範例以及函式庫,可以讓這項功能更加普及。

目前Firebase的雲端訊息(FCM)功能透過HTTPS通訊傳輸,也就是說FCM伺服器與使用者裝置間的通訊採用TCP over SSL加密,這個過程的訊息傳輸是安全的,但是開發者伺服器到使用者裝置間的通訊,除非開發者有特別實作端對端加密功能,否則這段的傳輸通常是明碼傳遞。

站在提高資訊安全的立場,Google建議Android開發者也應該要在使用者裝置上產生加密金鑰,來提供端對端的加密推送訊息功能,為此Google為降低開發者在端對端加密技術應用的門檻,釋出了Capillary開源函式庫,簡化開發者伺服器到使用者Android裝置間的端對端加密開發。

Capillary開源函式庫提供Android KitKat以上所有版本加密以及金鑰管理功能,涵蓋範圍從加密金鑰產生到註冊工作流程,開發者可以利用該函式庫加密伺服器訊息,並在用戶裝置上解密,以防止有心人士竄改訊息,保護訊息的完整性。

Capillary還能用於檔案級加密(File-Based Encryption,FBE)功能,限制加密訊息只有在裝置解鎖才能被解密,加密訊息會被快取在設備加密(Device Encrypted,DE)儲存記憶體中,而解密金鑰則被存在Android金鑰庫中,需要使用者做身分認證才能解鎖。

另外,該函式庫也能良好處理特殊情境,像是在使用者安裝或是重設App儲存後,才新增或是重設裝置鎖等情況。Capillary函式庫還支援使用ECDSA身分驗證以及網頁推送加密的RSA加密方法,開發者要傳送端對端加密推送訊息到基於瀏覽器的客戶端,可以重複使用既存的伺服器端程式碼。

不過,Google提醒開發者,Capillary開源函式庫專為提供開發者伺服器到使用者裝置間的端對端(End-to-End)加密而設計,而非為對等網路(Peer-to-Peer)設計,開發者可以用來加密伺服器對單一或是多個裝置的訊息傳遞,但無法直接使用於裝置間。開發者可以參考範例應用程式,Google隱私團隊使用Capillary開源函式庫,並基於gRPC伺服器的實作。


Advertisement

更多 iThome相關內容