Intel® 基于硬件的安全技术为生物识别应用带来差异化 - 第一部分





0/5 (0投票)
Intel® 基于硬件的安全技术为生物识别应用带来差异化
英特尔® 开发者区 提供跨平台应用开发工具和操作指南、平台和技术信息、代码示例以及同行专业知识,帮助开发人员创新并取得成功。加入我们的社区,了解 Android、物联网、英特尔® 实感™ 技术 和 Windows,下载工具、获取开发套件、与志同道合的开发人员交流想法,并参与黑客马拉松、竞赛、路演和本地活动。
目录
生物识别为何更优越
生物识别如何工作
攻击模型
英特尔® 硬件安全技术如何提高生物识别的安全性
生物识别为何更优越
“用户名/密码”的安全模型多年来一直被用作用户的身份凭证。当人们需要证明他们是某个服务的授权用户时(通常过程是登录计算机或在线服务,如社交媒体或网上银行),他们会输入用户名和密码。由于多种原因,这种安全模型的缺点显而易见,包括:
- 诸如“123456”或“hello”之类的简单密码可以通过暴力破解或字典攻击被破解。
- 复杂的密码难以记住。
- 许多人可能在多个网站上使用相同的密码。
- 如果一个人忘记了密码,在提供其他身份证明后,他/她可以重置密码。
为了提高密码强度和用户体验,越来越多的服务提供商开始使用生物识别技术作为密码。通过这项技术,人们无需记住密码。取而代之的是,他们的声音、面部、指纹或虹膜被用作识别因子。生物识别因子与传统的用户名/密码安全模型因子有所不同。
- 生物识别可用于生成长而复杂的密码,从而提供更高的安全性以抵御暴力破解攻击。
- 生物识别技术需要对生物识别应用程序开发人员进行更多的安全保护,因为生物信息是人体的一部分,不易更改。如果生物信息被盗,用户很难撤销其生物识别密码。攻击者可以通过窃取的生物识别信息复制一个假的人体部位,并在将来用于通过其他用户注册账户的生物识别检查。
- 诸如面部和声音之类的某些生物特征具有很高的误接受率。因此,生物识别系统通常使用多生物识别因子身份验证来提高识别准确性。
- 某些生物特征可以被复制,例如录制的声音、打印的面部照片或指纹制成的明胶手指。将活力检测模块添加到生物识别系统中很重要,以识别生物识别信息是来自真人还是复制品。
生物识别如何工作
生物识别应用程序的基本流程包含五个步骤:
- 生物识别信息通过传感器采集,传感器通过 I/O 端口连接。
- 输出数据格式和速度由特定设备驱动程序控制。数据通过驱动程序进行处理,以满足 Ring-0 级别的操作系统要求,然后发送到运行在 Ring-3 级别的生物识别验证应用程序。
- 一旦应用程序获得数据,它会进行一些预处理工作并从数据中提取特征点。
- 接下来,提取的特征点被发送到模式匹配器,并与数据库中注册的生物识别模式进行比较。
- 一旦模式与注册模式之一匹配,匹配器将发送 MATCH 消息,UI 程序将显示用户已正确登录,并向用户显示相应的首发内容。
攻击模型
在基于生物识别的身份验证系统中,攻击者最看重的数据是用户的生物识别模式。该模式可能是来自传感器的原始数据、内存中提取的特征点集,或存储在数据库中的已注册生物模式。
总的来说,如果生物识别应用程序在没有适当安全保护的情况下设计,攻击者可以通过运行时攻击(使用 rootkit 或恶意软件)从内存中检索原始数据或特征点集。如果注册模板存储在设备的本地存储中,攻击者还可以发起离线攻击以获取注册的生物模式。此外,攻击者可以通过处理器和传感器之间的数据总线嗅探数据流,或使用附近的相机或麦克风捕获一些生物识别数据(如面部图片或语音样本)进行进一步的重放攻击。
从生物识别服务开发者的角度来看,应用程序的设计理念应提供端到端的保护,以确保用户隐私安全。这包括:
- 提供受信任的运行环境,以保持应用程序代码段的完整性。
- 保护包含生物识别模式的内存区域,防止其他应用程序访问。
- 在内存/本地存储中(或在其他应用程序或网络服务器之间交换敏感数据)对敏感数据进行强加密。
英特尔® 硬件安全技术如何提高生物识别的安全性
英特尔的平台提供了各种硬件安全技术,以满足生物识别验证应用程序的安全需求。
1. 基于英特尔® 软件保护扩展的受信任执行环境
由于其安全性,生物识别技术正被越来越广泛地使用。因为该技术基于每个人的独特特征——面部、声音、指纹、虹膜,因此很难窃取一个人的身份。生物识别技术取代了传统的密码身份验证,并提供了良好的用户体验。
然而,随着生物识别技术在各种消费设备中的广泛使用,平台的多元化和开放性带来了一些潜在的安全威胁。开发人员需要仔细考虑的一个威胁是如何在各种终端设备上安全地运行生物识别功能。特别是,他们需要考虑:
- 如何在终端设备上安全地运行生物采样/建模/匹配算法
- 如何在终端设备上安全地存储生物数据模板
- 如何建立终端设备与云端生物特征数据库之间的安全通道,以完成云端身份验证和其他操作
开发人员可以依靠受信任的执行环境(TEE)技术来构建有效的加固解决方案。
TEE 是一个与丰富执行环境(REE)隔离的、受信任的执行环境。
根据 Global Platform TEE 系统架构规范1,在最高级别上,TEE 是一个满足以下条件的执行环境:
- 在 TEE 内执行的任何代码都具有真实性和完整性保证。
- 其他资产也受到机密性保护。
- TEE 应能抵御所有已知的远程和软件攻击,以及一组外部硬件攻击。
- 资产和代码都可以免受通过调试和测试功能进行的未经授权的跟踪和控制。
英特尔® 软件保护扩展(Intel® SGX)使软件开发人员能够在 PC 开放平台上开发和部署安全应用程序。它是一组新的指令和内存访问更改,已添加到英特尔® 架构中。
Intel® SGX 的工作方式是分配硬件保护的内存区域,代码和数据驻留在此区域。受保护的内存区域称为“enclave”(安全区)。Enclave 内存中的数据只能由也驻留在 Enclave 内存空间内的代码访问。可以通过特殊指令调用 Enclave 代码。Enclave 可以构建并作为 Windows* DLL 加载。
一个启用了 Intel® SGX 技术的应用程序根据 Intel® SGX 设计框架2 构建为非信任部分和信任部分。当应用程序运行时,它会调用 Intel® SGX 特殊指令来创建一个 Enclave,该 Enclave 放置在受信任的内存中。当调用受信任函数时,代码在 Enclave 内运行,相关数据只能在 Enclave 内以明文形式可见。任何外部访问此数据的尝试都将被拒绝。受信任函数返回后,Enclave 数据保留在受信任的内存中。
这项英特尔® 技术的目标是实现对秘密的高级别保护。由于 Intel® SGX 技术,应用程序获得了防御自身秘密的能力。敏感数据在应用程序内部得到保护。攻击面(或 TCB - 受信任计算基)被最小化为应用程序本身和处理器。即使是颠覆 OS/VMM、BIOS、驱动程序等的恶意软件也无法窃取应用程序的秘密。
在讨论生物识别安全解决方案之前,我们应该解决在过程中哪些因素需要受到保护:
- 用户的私人生物特征数据应在应用程序中、静态存储和传输过程中得到谨慎处理。
- 生物识别操作算法(包括采样、建模和匹配)应免受病毒和恶意软件的侵害。输出结果数据不应被篡改。
我们提出了如图 7 所示的架构。
生物采样/建模/匹配算法托管在客户端的信任部分——Intel® SGX Enclave 中,负责操作生物特征数据。其运行时机密性和完整性得到保证。这类算法通常是软件实现。正常的软件实现可能会在运行时被病毒和恶意软件篡改。但在这种架构中,运行时,受保护的部分被加载到 Enclave 中,其代码和数据被测量。一旦应用程序的代码和数据被加载到 Enclave 中,它就能防止所有外部软件访问。因此,生物识别操作算法可以被信任。除了安全属性之外,Enclave 环境还提供了与在开放平台上主 CPU 上执行相关的可扩展性和性能。因此,它有助于处理性能敏感的场景,特别是生物识别功能。
Intel® SGX 技术提供了一种加密和完整性保护 Enclave 秘密的功能,以便将它们存储在 Enclave 外部(例如磁盘),并且应用程序可以稍后重用这些数据。数据可以使用硬件生成的 Seal Key(密封密钥)进行密封。Seal Key 对 CPU 和特定的 Enclave 环境是唯一的。结合其他服务,如英特尔® SGX 平台软件提供的 Monotonic Counter(单调计数器)或 Trusted Time(可信时间),该解决方案可用于防御各种攻击技术。Monotonic Counter 可用于实现防重放策略,Trusted Time 可用于强制执行基于时间的策略。两者都以密封数据(Sealed Data)的形式存在。Enclave 负责使用其选择的算法进行加密;换句话说,开发人员可以根据其系统安全要求选择任何加密框架。因此,我们可以确保用户的私人生物特征数据仅在 Enclave 内处理,并确保其原始数据不会暴露给 Enclave 外部的非信任部分。
有时,客户端生物识别功能需要连接到远程后端服务器,以便在云数据库中进行身份验证,而不是在本地进行。利用 Intel® SGX 的证明(attestation)能力,客户端身份验证模块可以通过 CPU3 向远程服务器验证客户端平台和用户的生物特征数据。证明是演示一段软件已正确地在平台上实例化的过程。在 Intel® SGX 中,这是另一方可以确信正确的软件正在启用平台上 Enclave 中安全运行的机制。
首先,该模块生成一份可验证的客户端身份报告,该报告由 CPU3 绑定到平台。该报告还包含有关运行生物识别会话的用户的信息。服务器验证报告,以确保它正在与启用了 Intel® SGX 的设备进行通信。客户端和服务器进行一次性配置协议,该协议使用 Intel® SGX 密封功能将应用程序秘密安全地密封到客户端平台。
这些秘密(只能由密封它们的应用程序解封)用于将来与服务器建立安全会话,而无需不断证明客户端平台的身份。此类秘密可以是盐值、加密密钥、策略、证书等。之后,生物特征数据和身份验证结果可以通过客户端和服务器之间的安全通信通道进行传输。
2. 基于虚拟机扩展的内存保护方案
动态数据攻击是最常见的已知攻击方法之一。Rootkit 和恶意软件可以使用此技术在运行时挂钩指定函数并转储/修改内存中的数据。在生物识别的情况下,恶意代码可以获取从传感器捕获的生物识别数据以及内存中的注册用户生物识别模板。
传统的基于软件的内存保护机制不够可靠。保护代码和恶意代码都以相同的特权(ring-0 或 ring-3)运行。因此,恶意软件可以轻松地破坏保护代码以禁用保护。
虚拟机扩展(VMX)是一组支持处理器硬件虚拟化的指令4。其基本工作原理是:
- 忽略基本的 CPU 操作,如加载/存储、分支和 ALU 操作。
- 监控(捕获)特权指令,如 MMU 操作、I/O 指令或更新 TLB。
- 如果执行了特权指令,则中断执行并将 CPU 置于 VMX 根模式以进行进一步处理。
下图显示了硬件/OS/应用程序与 VMM 模式启用/禁用之间的关系。
通过利用 VMX 的硬件级陷阱功能,基于硬件虚拟化的内存保护机制可以更安全、更快速地保护内存5。基本思路是在操作系统和硬件之间插入一个基于 VMM 的内存监视模块。加载应用程序时,为受信任的代码区域和数据区域构建内存映射表。构建表后,每当发生内存访问时,VMM 都可以捕获它,然后将内存访问指令地址(EIP)和内存地址与预先构建的表进行比较。然后,内存保护模块可以识别这是合法访问还是非法访问,并为相应的进程应用相应的策略。
3. 英特尔® 身份保护技术与一次性密码实现多因素身份验证
身份盗窃是全球范围内个人和企业日益关注的问题。随着黑客不断 devising 新方法获取用户名和密码,需要安全但易于使用的解决方案。黑客从未停止 devising 新方法窃取用户名和密码。如果您是消费者或日常计算机用户,Intel® Identity Protection Technology (Intel® IPT) 通过让您有机会将物理设备链接到您使用的每个启用 Intel® IPT 的在线帐户,提供强大的技术来避免身份盗窃的威胁。
传统上,双因素身份验证使用一次性密码(OTP),它结合了用户知道的内容(用户名和密码)和用户拥有的内容(通常是生成六位数字的令牌或钥匙扣,仅在短时间内有效,并且可按需获取)。
在 Intel® IPT 与 OTP6 的情况下,每 30 秒由一个防篡改的、与 OS 隔离的嵌入式处理器生成一个唯一的、一次性的六位数字。因为凭据受到芯片组内部的保护,所以它不会被恶意软件侵害或从设备中移除。
如果您的企业已经在使用双因素身份验证,那么您对令牌的可用性和后勤方面的各种问题已经很熟悉了。Intel® IPT 与 OTP 是一个内置的硬件令牌(与您选择的安全供应商合作),它消除了对单独物理令牌的需求,从而简化了双因素 VPN 登录过程,实现了几乎无延迟的无缝体验。
借助基于 Intel® 处理器设备的 Intel® IPT 与 OTP,英特尔为网站、金融机构和网络服务提供了一个硬件信任根,证明这是一个独特的 Intel® 处理器设备,并且不是恶意软件在登录帐户。Intel® IPT 与 OTP 启用的系统提供额外的身份保护和交易验证方法,可供多因素身份验证解决方案使用。
关于作者
Jianjun Gu 是英特尔软件与解决方案部门(SSG)、开发人员关系部门、移动企业赋能团队的高级应用程序工程师。他专注于企业应用程序的安全性和可管理性。
Zhihao Yu 是英特尔软件与解决方案部门(SSG)、开发人员关系部门的应用程序工程师,负责基于英特尔® 平台的英特尔® TEE 技术赋能和安全支付解决方案支持。
Liang Zhang 是英特尔软件与解决方案部门(SSG)、开发人员关系部门的应用程序工程师,负责支持基于英特尔® 平台的企业应用和物联网开发者。
链接到第二部分
参考文献
1 TEE 系统架构 v1.0: http://www.globalplatform.org/specificationsdevice.asp
2 英特尔® 软件保护扩展(Intel® SGX),ISCA 2015 针对 Intel® SGX 的教程幻灯片: https://software.intel.com/sites/default/files/332680-002.pdf
3 使用创新的指令创建值得信赖的软件解决方案: https://software.intel.com/en-us/articles/using-innovative-instructions-to-create-trustworthy-software-solutions
4 Intel® 64 and IA-32 Architectures Software Developer Manuals: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
5 Ravi Sahita and Uday Savagaonkar. "Towards a Virtualization-enabled Framework for Information Traceability (VFIT)." In Insider Attack and Cyber Security Volume 39 of the series Advances in Information Security, pp 113-132, Springer, 2008.
6 Intel® Identity Protection Technology (Intel® IPT): http://ipt.intel.com/Home
7 INTEL® AES-NI 和 INTEL® SECURE KEY 指令简介: https://software.intel.com/en-us/node/256280
8 Intel® RealSense™ 技术: http://www.intel.com/content/www/us/en/architecture-and-technology/realsense-overview.html