《Android15安全架构》

文摘   2024-10-28 18:57   陕西  

1. Android安全架构

Android系统为用户提供了一个相对安全的操作环境,保护了用户数据和设备的安全。Android操作系统在安全性方面投入了大量资源,以保护用户数据和设备免受恶意攻击。以下是Android安全架构中的几个关键组件及其功能介绍:

1.1. 应用程序沙盒(Application Sandbox)

应用程序沙盒是Android安全模型的核心。每个应用程序在独立的进程中运行,并且拥有一个唯一的用户ID (UID),使得应用程序之间不能直接访问彼此的数据。这种隔离机制确保了即使一个应用程序被恶意攻击,其他应用程序和系统数据也能保持安全。

1.2. 应用程序签名

Android要求所有应用程序在安装前必须进行签名。签名通过开发者的私钥进行,加密后生成的签名文件被附加到APK(Android应用包)中。系统使用开发者的公钥来验证签名的有效性,确保应用程序没有被篡改。这种机制提供了应用程序的完整性和身份认证。

1.3. fs-verity

fs-verity是一种只读文件系统的完整性验证机制。它使用Merkle树结构对文件内容进行哈希处理,可以有效检测文件的篡改。每次文件读取操作都会验证文件的哈希值,确保其未被修改。fs-verity主要用于保护系统文件和应用数据的完整性。

1.4. AVB(Android Verified Boot)

AVB是Android的验证引导机制,旨在确保设备启动时加载的每一层软件都是可信的。AVB通过链式信任验证,逐层检查引导加载程序、内核、系统分区等的完整性和真实性。如果任何层被篡改,设备将无法启动或进入受限模式。

1.5. dm-verity

dm-verity是用于验证设备启动过程中磁盘分区数据完整性的机制。它使用类似于fs-verity的Merkle树结构,在引导时验证系统分区数据。如果检测到分区数据被篡改,系统将进入只读模式,防止恶意软件进一步损害设备。

1.6. 文件基加密(FBE)

FBE是Android 7.0引入的文件级别加密机制。与全盘加密不同,FBE允许不同的文件使用不同的密钥进行加密,从而支持多用户和工作模式。每个用户的数据只有在成功解锁设备后才能解密,提高了数据的安全性。

1.7. Keystore2(KeyMint、StrongBox)

Keystore2是Android的加密密钥管理系统。KeyMint和StrongBox是其两个关键组件。KeyMint提供了一套API,用于在可信硬件中生成和管理加密密钥。StrongBox则是一个独立的硬件安全模块(HSM),专门存储高价值的加密密钥,如用于支付和生物认证的密钥。

1.8. Gatekeeper/生物认证

Gatekeeper是Android的密码验证框架,负责管理设备锁屏密码的验证。生物认证(如指纹和面部识别)集成在Gatekeeper中,通过硬件安全模块确保生物特征数据的安全存储和处理。生物认证提供了便捷且安全的身份验证方式。

1.9. SELinux

SELinux是Linux内核中的安全模块,Android自4.3版本开始引入SELinux来强化系统安全。SELinux通过强制访问控制(MAC)策略,限制进程和用户对系统资源的访问,防止恶意应用利用系统漏洞进行攻击。

1.10. OEM锁(OEM Lock)

OEM锁是一种防止设备被非授权人员刷写自定义固件的安全机制。启用OEM锁后,只有通过官方渠道并获得用户明确授权,才能解锁设备进行固件更新。这有助于保护设备免受恶意固件的侵害。

1.11. DRM(数字版权管理,Widevine等)

DRM技术用于保护数字内容的版权。Widevine是Google提供的一种DRM解决方案,广泛应用于流媒体服务。它通过加密和密钥管理机制,确保只有授权设备和用户才能访问受保护的内容,防止未经授权的复制和分发。

1.12. OMAPI(Open Mobile API,安全元件)

OMAPI是一种用于与安全元件(SE)通信的标准API。安全元件是一种独立的硬件模块,用于存储和处理敏感数据,如支付卡信息和加密密钥。OMAPI使应用程序能够安全地访问和操作这些数据,确保敏感信息的安全性。

2. Android安全的增强功能?

  • AddressSanitizer

  • Arm内存标记扩展(MTE)

  • 边界排错(BoundSan):Bounds Sanitizer

  • 控制流完整性(CFI):Control Flow Integrity

  • 只能执行的内存:Excute-only Memory

  • 通过libFuzzer进行模糊测试:Fuzzing with libFuzzer

  • GWP ASan 和KFENCE

  • HWAddressSanitizer

  • 整数溢出排错功能

  • kernel CFI

  • LLVM Sanitizers

  • 内存安全

  • HWASan、ASan 和KASAN

  • 安全测试套件

  • Scudo

  • Shadow Call Stack

  • Tagged Pointer

  • 了解HWASan报告

  • 零初始化内存:Zero Initialized Memory

3. Android安全有哪些优秀的课程?

Android15安全架构大课程,最新上架,即将完成。(还有4小节没录)

  • 01-Android安全概述

  • 02-Trusty环境搭建-qemu-android

  • 03-Trusty下新增一个CA/TA

  • 04-1-Gatekeeper

  • 04-2-Gatekeeper代码导读-从Framework到TA全栈流程解读

  • 04-3-Gatekeeper代码导读-TA底层的实现

  • 05-生物认证-概述

  • 06-生物认证-指纹

  • 07-生物认证-人脸

  • 08-Keystore/Keymaster/Keymint

  • 09-Strongbox

  • 10-GoogleKey

  • 11-lD attestation

  • 12-AVB

  • 13-DICE

  • 14-DRM

  • 15-RKP

  • 16-deviceLock

  • 17-secretkeeper

  • 18-FDE/FBE (注:FBE/FDE课程由董老师赞助支持,不一定放到VIP课程中)

  • 19- selinux



Arm精选
ARMv8/ARMv9架构、SOC架构、Trustzone/TEE安全、终端安全、SOC安全、ARM安全、ATF、OPTEE等
 最新文章