今天我們來介紹 Android 的Security Features。
Android SDK 會將原始碼、資源(Resources)以及 Assets 打包成 APK 檔案。
這個 APK 包含應用程式安裝所需的所有元件,包括:
Manifest Metadata
Native Library
Bytecode(.dex 檔案)
Resources
Android 強制每個應用程式在執行時運行於一個隔離的沙箱環境,這是基於 Linux 架構的安全機制。
每個 Android 應用程式會被分配一個唯一的 UID(Unique Linux User ID),用於檔案權限控制。
,每個應用程式運行在獨立的 Process 中,並由各自的 ART(Android Runtime)實例執行,來實現記憶體隔離。
無論是安裝應用程式還是將APP上傳至 Google Play 商店,都需進行簽名。
簽名可確保應用程式未被竄改,避免攻擊者可能在 .dex 檔案注入惡意程式碼。
數位簽章的基本原理
在 Android 簽名機制中,系統會檢查應用程式的簽名區塊是否包含有效簽名,並驗證應用程式的 Hash 值是否與簽名一致。
簽名驗證的簡單流程如下:
建議使用較新的 V2 或 V3 簽名方案,因為舊版 V1 簽名存在 CVE 漏洞,允許攻擊者在不影響簽名的情況下注入惡意程式碼 明天我們將介紹如何自行修改應用程式並進行自我簽名