揭秘安全元件和可信区的隐藏弱点:全面分析

360影视 2025-01-13 17:59 2

摘要:安卓系统的安全元件(SE)和iOS系统的安全区(Secure Enclave)已经成为保护敏感信息,如加密密钥的硬件级可信解决方案。它们通常被誉为具有抗篡改性、隔离性和高度安全性(例如,根据通用准则获得AVA_VAN.5最高安全等级认证)。然而,尽管硬件本身坚

安卓系统的安全元件(SE)和iOS系统的安全区(Secure Enclave)已经成为保护敏感信息,如加密密钥的硬件级可信解决方案。它们通常被誉为具有抗篡改性、隔离性和高度安全性(例如,根据通用准则获得AVA_VAN.5最高安全等级认证)。然而,尽管硬件本身坚固可靠,但其上的软件层却引入了显著的安全漏洞。

本文将重点介绍仅依赖SE或安全区所带来的风险,包括潜在的挂钩攻击、仿真攻击以及越狱/获取根权限设备的含义。我们还将探讨软件级别的弱点如何削弱硬件级的安全保护。

什么是安全元件(SE)和安全区?

本部分将介绍基本术语以及安全元件和安全区的流程,帮助读者建立对它们在安卓和iOS生态系统中的整合的基础理解。这种理解对于掌握下一部分讨论的攻击方法至关重要。

安卓系统中的安全元件(SE): SE是一种抗篡改的硬件模块,用于存储加密密钥、支付凭证和敏感数据。其保护使用基于硬件的加密操作。

通信通过操作系统以及以下API进行:Keymaster、Keystore和OMAPI

安卓系统中的安全元件(SE)可以采取不同的形式,每种形式都服务于不同的目的。总的来说,这些包括嵌入移动设备中的SE(通过Keymaster和Keystore等API使用)以及与小程序或支付系统相关的SE(通过OMAPI等API管理)。

安卓安全元件使用案例:Keystore、Keymaster和OMAPI

安卓系统中的安全元件(SE)为不同的交互层次提供独特的API,满足特定的使用场景。

iOS系统中的安全区: iOS系统中的安全区是一个专用的基于硬件的协处理器,与主CPU隔离,用于密钥生成、加密和生物识别数据存储。私钥在安全区内生成(不可导出)。

通信通过操作系统以及以下API进行:Keychain Services或CryptoKit APIs。

图表:SE/安全区如何与软件集成

与安卓和iOS的关系: 编程SE或安全区通常在本地库或上层API层进行。开发者与安卓的Keystore或OMAPI以及iOS的Keychain Services等高级抽象进行交互。 硬件抽象层(HAL)接口对开发者不可直接访问。它作为硬件和内核之间的桥梁,确保与硬件层的安全和标准化通信。访问HAL需要深层系统权限,并且紧密集成到操作系统内核中。

软件风险:挂钩和仿真 本部分解释了尽管硬件支持的机制具有强大的保护措施,但仍然可以通过仿真和挂钩来妥协。它介绍了攻击者用来绕过SE和安全区保护的工具和方法,为理解现实世界风险奠定了基础。

仿真涉及创建安全环境,如安全元件或安全区的基于软件的复制品,以绕过硬件保护。与物理SE不同,仿真环境不执行抗篡改,使其容易受到拦截和操纵。

安卓:安全元件漏洞

挂钩SE通信: 工具如Frida和Xposed Framework使攻击者能够拦截和操纵应用程序与SE之间的通信:

为什么应不惜一切代价避免使用仿真器: 如果你开发了一个应用程序,并且它在仿真器上运行,你不能信任该环境。仿真器缺乏物理安全元件中固有的硬件级保护,导致存在诸如信息泄露和篡改的漏洞。应不惜一切代价避免在仿真器上运行应用程序,以减轻这些风险。

仿真器检测:应用程序在任何情况下都不应运行在仿真器上,因为仿真器缺乏物理SE的硬件保护。在仿真器上运行应用程序会面临信息泄露和篡改的风险。 可拦截:仿真器上的所有通信都可以被拦截,任何基于硬件保护假设创建的密钥都容易受到篡改和信息泄露。

iOS:安全区风险 尽管安全区是硬件隔离的,但漏洞出现在:

高级API(例如Keychain Services): 在越狱设备上通过Frida或类似工具拦截API调用。 越狱: iOS安全依赖于系统完整性。越狱会禁用代码签名,使高级API调用暴露于挂钩。

问题的根源:信任操作系统 即使SE/安全区硬件获得了AVA_VAN.5(最高安全等级)的认证,其上的操作系统仍然引入了弱点:

获取根权限的安卓设备:允许完全控制系统,使挂钩和篡改加密操作成为可能。 越狱的iOS设备:绕过代码签名和沙盒,使API暴露于挂钩工具。 引入的风险:

信息泄露:挂钩API以拦截敏感数据(例如APDU命令、加密密钥)。 数据篡改:操纵APDU响应或加密功能。 环境仿真:仿真SE环境以绕过硬件级保护

来源:几维安全

相关推荐