安卓设备安全相关技术
當前安卓設備使用的加密方案是基于Soc中一塊可寫入的rom實現,稱為熔絲,其結果不可逆。
1、secureboot
secureboot是安卓設備安全保障的基礎,在當下絕大部分量產的手機中,其中SOC存在一塊這樣的存儲區域,大小約512bit,其特性為可以寫入,但只能寫入一次,類似與光盤,但使用電來將每個bit的保險絲熔斷,稱為efuse,保存的數據通常為其信任根的公鑰的哈希值,作為設備軟硬件校驗鏈的起點。
2、AVB(Android Verify Boot)
是kernel起來后,開始校驗,通過vbmeta結構對boot、dtbo、recovery等小鏡像進行驗簽,保證Android鏡像的安全,若鏡像校驗不過(損壞或被替換),機器處于開機動畫階段反復重啟,有的廠商也會在界面做出客制化圖片,一般和Android官方的告警類似。
總體來說AVB校驗會產生四種結果,與lock的狀態是強相關的,紅、黃、橙、綠
紅色:lock,鏡像不過
黃色:秘鑰沒換
橙色:unlock,不驗鏡像
綠色:正常開機
3、dm-verity(device mapper)
在AVB基礎上通過對數據進行4k分段算出hash,再對hash做hash,形成一個hash樹的結構,因為校驗開銷大,不可能在開機階段全部驗證完成,所以是在系統起來之后用到那部分驗證哪部分。主要校驗vendor、system等大鏡像。
4、keymaster
key管理器,在tz中負責秘鑰生成、校驗、管理等工作。
5、crypto
tz中的加密解密模塊,部分廠商會對此部分客制化,例如隱私文件系統的加解密。
6、rpmb(replay private memory block)
ufs或emmc中劃分的一塊安全空間,其訪問權限極高且與CPU的序列號進行綁定,主要存著廠商內置的支付類APP的公私鑰和指紋模板,例如alipay、weixin key、fido等。
7、TEE(Trust execute environment)
用于隔離Android、linux系統的環境,負責安全相關,例如鎖屏密碼、指紋識別、移動支付、加密流媒體、秘鑰管理、加解密等高安全性功能,存放運行上述功能的TA(trust application)通過共享內存的方式與Android交換數據,由中斷產生或時間片控制與REE切換并共享核心資源。
目前高通平臺有自研的TEE,名字叫QSEE(qcom security execution environment),現在叫QTEE(qcom trust execution environment),MTK平臺使用其他軟件廠商的方案早期用過豆莢,現在大部分產品使用trustonic,紫光展銳使用基于開源項目optee魔改的tos。
8、SELinux
Linux 內核中提供的強制訪問控制(MAC)系統。使用安全上下文的方式控制文件和資源、程序的權限,使用不太多。
總結
以上是生活随笔為你收集整理的安卓设备安全相关技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt之实现聊天软件
- 下一篇: 关于Docker Toolbox安装的一