1 移动终端硬件架构
上图图展示了典型移动终端硬件架构,包括应用处理器(AP)、基带处理器(BP)以及各类共享组件和外设,所有组件通过AXI总线(和APB桥)连接在一起。以下分别介绍基于整个硬件架构采取的核心安全技术。
2 安全可信根SE
详细介绍可参考笔者之前文章:[终端安全]-2 移动终端之硬件安全(SE)
安全元件(Secure Element, SE)是移动设备中高度安全的硬件模块,用于存储和处理敏感信息,如支付信息、加密密钥和身份认证数据;SE被认为是移动设备的安全可信根。
- 独立的处理能力:SE具有独立的处理器和存储器,能够执行加密运算和安全协议。
- 硬件隔离:SE与主处理器(AP)和基带处理器(BP)隔离,提供强大的物理安全保护。
- 安全启动:SE内置安全启动机制,确保其自身代码的完整性和真实性。
- 防篡改设计:SE设计中包含多种防篡改技术,如物理防护、检测传感器和自毁机制,以防止物理攻击。
基于SE的应用,主要围绕手机钱包服务场景展开:
- 移动支付:通过NFC(近场通信)技术,SE可以安全地进行支付交易。
- 公交卡:通过NFC,SE可以安全地提供公交或地铁刷卡支付服务。
- 数字钥匙:通过NFC/BLE/UWB,SE可以安全地与汽车、智能门锁安全认证提供控制服务。
- 加密密钥管理:SE安全存储加密密钥,用于加密和解密敏感数据。
3 AP和BP的TEE
详细介绍可参考笔者之前文章:[终端安全]-3 移动终端之硬件安全(TEE)
可信执行环境(Trusted Execution Environment, TEE)是一个独立的执行环境,提供比普通操作系统更高的安全性,通过硬件和软件相结合的方式保护敏感数据和代码。常见的实现方式包括Arm TrustZone技术,AP和BP一般都具备TEE:AP应用处理器使用TEE来保护应用层的敏感数据和代码,如支付应用和生物特征认证;BP基带处理器使用TEE来保护通信相关的敏感信息,如加密密钥和网络认证数据。
1)安全隔离
Arm TrustZone通过硬件机制(如MMU和页表等)创建安全和非安全两个世界来实现隔离。
- 安全世界:用于执行敏感操作和处理机密数据。
- 非安全世界:用于运行普通应用程序和操作系统。
2)安全启动
TEE从设备启动时就开始执行,确保启动过程的完整性和真实性。
3)安全服务
TEE提供安全服务,如加密运算、密钥管理和安全存储。备注:移动支付、生物信息鉴权(指纹、虹膜、人脸)等服务可能依托于TEE或者SE实现,取决于各家设备厂商不同的安全机制和策略。
4 安全启动技术
安全启动(Secure Boot)是一种防止恶意软件在设备启动时加载的技术,通过一系列验证步骤确保启动代码的完整性和真实性。
1)工作流程
- ROM代码启动:设备上电后首先执行ROM中引导代码,该代码是预先烧录且不可更改的。
- 验证引导加载程序:ROM代码验证引导加载程序Bootloader数字签名,确保其未被篡改。
- 加载和验证操作系统:引导加载程序加载操作系统,并验证其完整性。
- 启动操作系统:如果所有验证步骤都通过,操作系统开始启动并执行。
2)关键技术
- 数字签名:使用公钥加密技术对启动代码进行签名和验证,目前多用ECDSA算法。
- 硬件根密钥:设备中存储的不可更改的硬件密钥,用于验证启动代码的签名。
- 防篡改机制:保护引导加载程序和操作系统免受物理和软件攻击。
5 SIM卡安全联网
SIM卡(Subscriber Identity Module)是移动设备中用于身份认证和网络接入的安全模块,在网络接入和通信过程中使用多种安全技术来保护用户数据和通信内容。
1)安全功能
- 身份认证:SIM卡存储用户的身份信息(如IMSI)和认证密钥(如Ki),用于与移动网络的身份认证。
- 加密通信:SIM卡支持语音和数据通信的加密,使用加密算法(如A5/1、A5/2)保护通信内容。
- 密钥管理:SIM卡内置密钥生成和管理功能,用于生成和存储加密密钥。
2)安全技术
- 加密算法:SIM卡使用多种加密算法(如3DES、AES)保护存储和传输的数据。
- 防克隆技术:采用SE通过物理防护和防篡改设计,SIM卡能够抵御克隆和复制攻击。
- 认证协议:SIM卡与移动网络之间使用安全认证协议(如AKA协议)进行身份认证和密钥协商。
6 无线接口安全
1)蓝牙接口安全
- 配对和认证:使用安全配对机制,如PIN码或安全简单配对(Secure Simple Pairing, SSP),确保设备间连接的合法性。
- 加密通信:使用AES加密算法对蓝牙通信进行加密,保护数据传输的安全。
2)WiFi接口安全
- 加密协议:使用WPA2或WPA3协议进行通信加密,确保无线数据传输的安全性。
- 认证机制:使用802.1X认证机制,通过RADIUS服务器进行用户身份验证,确保只有合法用户能接入网络。
7 安全存储
安全存储是指加密存储在移动终端设备上的数据,以保护数据不被未经授权访问。此外,在移动终端硬件中,有许多种密钥和唯一ID需要安全存储,这些数据的存储方式和机制依赖于设备厂商的安全机制和策略可以各有不同。
1)硬件唯一密钥(Hardware Unique Key, HUK)
HUK用于设备唯一标识和加密密钥生成,通常存储在SE中,或在AP芯片的TEE中,或通过OTP熔丝机制实现。
2)设备根密钥(Device Root Key, DRK)
DRK用于设备管理和安全操作的根密钥,通常存储在SE中,以确保其高安全性。
3)身份验证密钥(Authentication Keys)
用于用户身份验证,如PIN码、指纹、面部识别等,一般存储在SE中,以确保身份验证过程的安全性。
4)加密密钥
用于数据加密和解密,保护存储数据和传输数据的安全,可以存储在AP芯片的TEE中或SE中。
5)签名密钥
用于数字签名和数据完整性验证,通常存储在SE中。
6)无线接口密钥(Wireless Interface Keys)
用于蓝牙、WiFi等无线通信的加密和认证,通常存储在AP芯片的TEE中或SE中。
7)SIM卡密钥
用于网络认证和加密通信,存储在SIM卡的SE中。
8)唯一设备标识(Unique Device Identifier, UDID)
UDID用于唯一标识设备,可以通过OTP熔丝机制实现,或存储在SE中。
小结如下:
SE:存储高度敏感的密钥和数据,如HUK、DRK、身份验证密钥和签名密钥。
AP芯片的TEE:存储需要高安全性但不如SE敏感的数据,如某些加密密钥和无线接口密钥。
OTP熔丝机制:存储不可变的设备标识和密钥,如UDID和HUK。