baron · 2月11日

《Android15安全架构课程》

在这里插入图片描述

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安全架构大课程,最新上架,即将完成。
  • 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-lDattestation
  • 12-AVB
  • 13-DICE
  • 14-DRM
  • 15-RKP
  • 16-deviceLock
  • 17-secretkeeper
  • 18-FDE/FBE
  • 19- selinux

在这里插入图片描述
欢迎添加客服微信咨询:sami01_2023
屏幕截图 2025-02-09 131838.png

推荐阅读
关注数
9473
内容数
221
以易懂、渐进、有序的方式,深入探讨ARMv8/ARMv9架构的核心概念。我们将从基础知识开始,逐步深入,覆盖最新的架构,不再纠缠于过时技术。本系列内容包含但不限于ARM基础、SOC芯片基础、Trustzone、gic、异常和中断、AMBA、Cache、MMU等内容,并将持续更新。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息