英特尔® 基于硬件的安全技术为生物识别应用带来独特优势第 1 部分

下载 PDF [PDF 1 MB]

目录

生物识别为何更好
生物识别工作原理
攻击模式
基于英特尔® 硬件的安全技术如何提高生物识别的安全性

  1. 采用英特尔® Software Guard Extensions 技术的可信执行环境
  2. 内存保护方案与虚拟机扩展
  3. 采用英特尔® 身份保护技术与一次性密码的多重因素身份认证

参考资料

生物识别为何更好

“用户名/密码”安全模式多年来一直用于用户身份验证。 人们需要验证他们是否为某项服务的授权用户时(常见的流程是登录进计算机或在线服务,比如社交媒体或在线银行),输入用户名和密码即可。 这种安全模式具有比较明显的缺点,原因如下:

  1. “123456”、“hello” 等简单密码容易被蛮力攻击或字典攻击破解。
  2. 复杂密码不便记忆。
  3. 许多人可能使用同一密码登录多个网站。
  4. 如果忘记密码,提供其他身份验证信息后可重新设置密码。

图 1. 密码登录方案

图 1. 密码登录方案

为了提升密码安全性及用户体验,越来越多的服务提供商开始使用生物识别技术。 借助这项技术,人们再也无需记住密码。 而是使用语音、面部、指纹或虹膜进行身份识别。 生物识别因素与传统用户名/密码安全模式有所不同:

  • 生物测定技术可用来衍生复杂的长密码,从而提高安全性,抵御蛮力攻击。
  • 生物测定技术要求生物识别应用开发人员提供更强大的安全保护,因为生物信息是人体的一部分,无法轻易改变。 如果生物信息被盗,用户难以撤销其生物密码。 攻击者可以使用盗取的生物特征复制假体,以在将来登录用户注册的其他账户时,将其用于生物验证。
  • 部分生物特征,比如面部和语音,有着较高的错误接受率。 因此,生物识别系统通常使用多生物因素验证,以提高识别准确率。
  • 有些生物特征可被复制,比如录制的语音、打印的面部照片,或明胶制作的指纹。 因此必须将生命检测模块添加至生物识别系统,以确定生物信息是来源于真实人体,还是副本。

生物识别工作原理

生物识别应用的基本流程包含五个步骤:

  1. 通过 I/O 端口连接的感应器收集生物信息。
  2. 特定设备驱动程序控制输出数据的格式和速度。 数据通过驱动程序进行处理,以满足 Ring-0 层的操作系统要求,然后发送至在 Ring-3 运行的生物验证应用。
  3. 应用获取数据后,进行一些预处理工作,并提取数据的特征点。
  4. 接下来,提取的特征点发送至模式匹配程序,并与数据库中已注册的生物模式进行对比。
  5. 如果与注册模式匹配,匹配程序发送 MATCH 消息,UI 流程将显示用户准确登录,并向用户显示相应的关键内容。

图 2. 生物识别程序流程图

图 2. 生物识别程序流程图

攻击模式

在生物验证系统中,攻击者最看重的数据是用户的生物模式。 该模式可能是从传感器收集的原始数据,从内存提取的特征点集,也可能是数据库中所保存的已注册生物模式。

一般来说,如果生物识别应用没有设计适当的安全保护,攻击者可能通过 rootkit 或恶意软件展开进行时攻击,进而从内存中检索原始数据或特征点集。 如果注册模板保存在设备的本地存储,攻击者还可能发动离线攻击,获取已注册的生物模式。 此外,攻击者还会从处理器与感应器之间的数据总线寻找数据流,或使用用户附近的摄像头或麦克风获取面部照片或语音样本等生物数据,以在将来重演攻击。

图 3. 生物识别应用可能遭致的攻击。

图 3. 生物识别应用可能遭致的攻击。

在生物识别服务开发人员看来,应用设计原则应提供端到端保护,以确保用户隐私的安全。 具体包括:

  • 提供可信运行环境,确保应用代码段的完整性。
  • 防止包含生物模式的内存区被其他应用访问。
  • 如果敏感数据位于内存/本地存储(或在其他应用或网络服务器之间交换机密数据),通过强有力的加密方法保护这些数据。

基于英特尔® 硬件的安全技术如何提高生物识别的安全性

英特尔平台提供各种基于硬件的安全技术,以满足生物验证应用的安全要求。

1. 采用英特尔® Software Guard Extensions 技术的可信执行环境

由于其出色的安全性,生物识别技术的应用领域越来越广泛。 因为该技术基于每个人的独有特征 — 面部、语音、指纹、虹膜,所以个人的身份不容易被盗。 生物识别技术取代了传统密码验证,还可提供良好的用户体验。

不过,由于生物识别技术广泛应用于各种消费类设备,平台的多样性和开放性也带来了潜在的安全威胁。 开发人员需要认真考虑的一种威胁是,如何确保生物识别功能在不同终端设备上的运行安全。 尤其需要考虑:

  • 如何在终端设备上安全地运行生物取样/建模/匹配算法
  • 如何在终端设备上安全地保存生物数据模板
  • 如何创建终端设备与生物特征云数据库之间的安全通道链路,以完成云验证和其他操作

开发人员可依靠可信执行环境 (TEE) 技术构建有效的增强型解决方案。

什么是 TEE?

TEE 是与富执行环境 (REE) 完全隔离的单独可信执行环境。

根据全球平台 TEE 系统架构规范1,在最高层级,TEE 是具有以下特征的一种环境:

  • TEE 中的所有代码执行都具备可信的真实性和完整性。
  • 其他资产也作为机密受到保护。
    • TEE 应阻挡一切已知的远程和软件攻击,以及各种外部硬件攻击。
  • 防止资产和代码通过调试和测试特性受到未授权追踪和控制。

英特尔® Software Guard Extensions 技术简介

英特尔® Software Guard Extensions(英特尔® SGX)支持软件开发人员在 PC 开放平台上开发和部署安全应用。 它是一套添加至英特尔® 架构的新指令和内存访问变化。

英特尔® SGX 的运行方法是,分配代码和数据驻留、受硬件保护的内存。 受保护的内存区称为安全区 (enclave)。 安全区内存中的数据只能被同样位于该安全区内存空间中的代码访问。 安全区代码可通过特殊指令调用。 安全区能够以 Windows* DLL 的形式构建和加载。

图 4. 嵌入至进程的受保护执行环境。

图 4. 嵌入至进程的受保护执行环境。

支持英特尔® SGX 技术的应用作为不可信部分以及遵循英特尔® SGX 设计框架2的可信部分来构建。 运行时,该应用调用英特尔® SGX 特殊指令来创建可放入可信内存中的安全区。 调用可信函数时,代码在安全区内运行,而且相关数据仅在该安全区内以清晰文本的形式展示。 任何针对该数据的外部访问都会被拒绝。 可信函数返回后,安全区数据仍然位于可信内存中。

图 5. 支持英特尔® Software Guard Extensions 技术的应用执行流程。

图 5. 支持英特尔® Software Guard Extensions 技术的应用执行流程。

这项英特尔® 技术旨在为机密信息提供高级保护。 得益于英特尔® SGX 技术,应用可以保障机密信息的安全。 在应用中,敏感数据获得了可靠的保护。 攻击面或 TCB(可信计算基)降至最低,只剩下应用本身和处理器。 即使是破坏操作系统/VMM、BIOS、驱动程序的恶意软件,也无法盗取应用机密。

图 6. 借助英特尔® Software Guard Extensions 技术降低攻击面。

图 6. 借助英特尔® Software Guard Extensions 技术降低攻击面。

英特尔® Software Guard Extensions 技术如何增强生物识别功能?

探讨生物识别安全解决方案建议之前,我们应了解该流程中的哪些因素应加以保护:

  • 在应用中,无论是静态还是动态,用户的私有生物特征数据都应仔细处理。
  • 生物操作算法(包括抽样、建模和匹配)应防止遭到病毒和恶意软件的攻击。 输出结果数据不应被篡改。

我们建议使用图 7 中所列出的架构。

图 7. 英特尔® Software Guard Extensions 技术助力增强生物识别功能

图 7. 英特尔® Software Guard Extensions 技术助力增强生物识别功能

生物抽样/建模/匹配算法托管在英特尔® SGX 安全区内 — 客户端的可信部分,并负责处理生物特征数据。 其运行时的机密性和完整性得到了可靠保障。 这种类型的算法通常属于软件实施。 常见软件实施可能在运行时被病毒和恶意软件所篡改。 但在这种架构下,在运行时,受保护部分加载至安全区,其代码和数据将在该包安全区内进行测算。 应用的代码和数据加载至安全区后,可防止所有外部软件访问。 因此,生物操作算法是可信的。 除安全特性外,安全区环境还提供出色的可扩展性和性能,支持开放平台的主 CPU 上的执行。 因此,这非常有利于性能敏感型场景,尤其是生物识别功能。

英特尔® SGX 技术还提供一项功能,即为安全区的机密信息加密并保护其完整性,使其能够保存在安全区之外,比如磁盘上,以便应用将来重新使用该数据。 使用硬件衍生的密封密钥,可将数据密封起来,与安全区隔离。 该密封密钥是 CPU 和特定安全区环境所独有的。 结合其他服务,比如英特尔® SGX 平台软件提供的 Monotonic Counter 或 Trusted Time,该解决方案可用来抵御病毒攻击技巧。 Monotonic Counter 用于实施回放保护策略,而 Trusted Time 用于执行基于时间的策略。 两种均以密封数据的形式。 安全区负责通过其选择的算法执行加密,换言之,开发人员可以根据其系统安全要求选择任意一种加密框架。 因此我们可以确保用户的私有生物特征数据仅在安全区内处理,并确保其原始数据不会被暴露给安全区外的不可信部分。

有时,客户端生物识别功能需要连接至远程后端服务器,以在云数据库中(而非本地)进行验证。 使用英特尔® SGX 验证功能,客户端验证模块可借助远程服务器验证客户端平台和用户的生物特征数据。 验证是演示某软件已在平台上实现实例化的流程。 在英特尔® SGX 中,借助该机制,其他一方知道相应的软件在支持平台的安全区内安全运行,从而可以安枕无忧。

首先,该模块生成有关客户端身份(通过 CPU 连接至平台)的可验证报告3。 报告还包含有关用户运行生物识别会话的信息。 服务器验证该报告,以确保它正与通过英特尔® SGX 而受支持的设备进行通信。 客户端和服务器达成一次性供应协议,以使用英特尔® SGX 密封功能将应用机密信息安全密封至客户端平台。

这些机密信息只能由密封它的应用来解封,用于将来创建与服务器的安全会话,无需定期验证客户端平台的身份。 这类机密信息可以是 salt、加密密钥、策略、证书等。之后,生物特征数据和验证结果可通过客户端和服务器之间的安全信道进行发送。

2. 内存保护方案与虚拟机扩展

动态数据攻击是最常见的攻击方法之一。 rootkit 和恶意软件使用这种方法连接特定函数,并在运行时收集/修改数据。 如果进行生物识别,恶意代码可获取通过感应器捕获的生物数据和内存中的注册用户生物模板。

传统基于软件的内存保护的缺点

传统基于软件的保护机制并不可靠。 保护代码和恶意代码都有相同的运行特权(ring-0 或 ring-3)。 因此恶意软件可轻易使保护代码失去保护功能。

图 8. 攻击会损坏保护模块,访问敏感数据缓冲区。

图 8. 攻击会损坏保护模块,访问敏感数据缓冲区。

基于虚拟机扩展的内存保护

虚拟机扩展 (VMX) 是一套支持处理器硬件虚拟化的指令4。 其基本工作原理是:

  • 忽略基本的 CPU 操作(比如加载/保存)、分支和 ALU 操作
  • 监控(诱捕)特权指令,比如 MMU 操纵、I/O 指令或更新 TLB。
  • 如果执行特权指令,中断执行并将 CPU 设为 VMX 根模式,以供将来处理。

下表显示了硬件/操作系统/应用与 VMM 模式启用/禁用之间的关系。

图 9. 虚拟机扩展模式开启/关闭时针对系统调用的不同响应。

图 9. 虚拟机扩展模式开启/关闭时针对系统调用的不同响应。

通过使用 VMX 的基于硬件的陷阱功能,基于硬件虚拟化的内存保护机制能够以更安全、快速的方法保护内存5。其基本原理是在操作系统和硬件之间插入一块基于 VMM 的内存监控模块。 加载应用时,为可信代码区和数据区构建内存映射表。 映射表构建完成后,只要有内存访问,VMM 就可以诱捕它,然后通过预构建的表对比内存访问指令地址 (EIP) 和内存访问。 然后内存保护模块确认其是否为合法访问,并申请相应的进程。

3. 采用英特尔® 身份保护技术与一次性密码的多重因素身份认证

身份盗窃是当前全球个人和企业越来越关注的问题。 随着黑客不断发明新方法来获取用户名和密码,急需部署安全且简单易用的解决方案。 黑客不断发明新方法来获取用户名和密码。 如果您是一名消费者或日常计算机用户,英特尔® 身份保护技术(英特尔® IPT)可提供功能强大的技巧,帮助您将物理设备链接至您所使用的支持英特尔® IPT 的在线账户,从而避免身份被盗的威胁。

双因素身份验证通常采用一次性密码 (OTP),将用户了解的某些信息(用户名和密码)和用户拥有的某些设备(通常是能按需生成仅短期有效的六位数令牌或密钥卡)相结合。

如果英特尔® IPT 采用 OTP 6,将通过嵌入式处理器,每隔 30 秒生成一个唯一的一次性六位数,它能够防止篡改,并独立于操作系统运行。 由于证书在芯片组内部受到可靠保护,因此不会被恶意软件破坏,也不会从设备中删除。

图 10. 基于一次性密码验证的英特尔® 身份保护技术在客户端与服务器之间的工作流程。

图 10. 基于一次性密码验证的英特尔® 身份保护技术在客户端与服务器之间的工作流程。

如果您的企业已在使用双因素身份验证,那么您对令牌可用性和物流的相关问题就不会感到陌生。 采用 OTP 的英特尔® IPT 是一款内置硬件令牌(安全厂商的选择),无需单独的物理令牌,从而简化了双因素 VPN 登录流程,实现了几乎无延迟的无缝体验。

借助基于英特尔® 处理器的设备上的英特尔® IPT(采用 OTP),英特尔可为网站、金融机构和网络服务提供一个可信硬件根(基于英特尔处理器的独有设备的证明),从而使恶意软件无法登录帐号。 采用 OTP 的英特尔® IPT 支持系统提供其他身份保护和交易验证方法,供多因素身份验证解决方案使用。

关于作者

Jianjun Gu 是英特尔软件和解决方案事业部 (SSG) 开发人员关系部门移动支持团队的一名资深应用工程师。 他专注于企业应用的安全性和可管理性。

Zhihao Yu 在英特尔软件和解决方案事业部 (SSG) 开发人员关系部门担任应用工程师,致力于为基于英特尔® 平台的安全支付解决方案提供支持的英特尔® TEE 技术。

Liang Zhang 现任英特尔软件和解决方案事业部 (SSG) 开发人员关系部门的应用工程师,负责为基于英特尔® 平台的企业应用和物联网开发人员提供支持。

第 2 部分链接

参考资料

1 TEE 系统架构 v1.0: http://www.globalplatform.org/specificationsdevice.asp
2 英特尔® Software Guard Extensions(英特尔® SGX),ISCA 2015 英特尔® SGX 教程幻灯片https://software.intel.com/sites/default/files/332680-002.pdf
3 使用创新指令创建可信软件解决方案:https://software.intel.com/zh-cn/articles/using-innovative-instructions-to-create-trustworthy-software-solutions
4英特尔® 64 和 IA-32 架构软件开发人员手册: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 英特尔® 身份保护技术(英特尔® IPT): http://ipt.intel.com/Home
7 英特尔® AES-NI 和英特尔® 安全密钥指令简介:https://software.intel.com/zh-cn/node/256280
8 英特尔® 实感™ 技术:http://www.intel.com/content/www/us/en/architecture-and-technology/realsense-overview.html

Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.
Возможность комментирования русскоязычного контента была отключена. Узнать подробнее.