数据API 产品矩阵 案例 关于
掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

Android系统是如何保护用户指纹的

随着智能手机的不断推陈出新,指纹识别功能逐渐成为许多中高端Android手机的标配,google也从android6.0开始对指纹识别进行了官方支持,提供了统一的Android Fingerprint api。但众所周知,Android是一个开放性的系统,其安全性一直以来都受到不少质疑,android app又是可以随意下载安装的。

曾经有开发者提出疑问:现在有了官方的API,如果我在我的app里,在不通知用户的情况下偷偷调用系统API读取指纹模块的数据,不是就能拿到用户的指纹图像吗?回顾前几年的新闻,也能看到类似《某android机指纹识别被破解》的消息。

那么有没有那么容易呢,Android系统是如何保护用户指纹这一极度私密的信息的呢?

其实早在十余年前,ARM就提供了一项名为TrustZone的硬件级的安全解决方案,它将每个芯片内核内的硬件资源和软件资源进行了划分,并将其隔离成两个执行环境: Trust Execution Environment(可信执行环境,简称TEE))和Rich Execution Environment(暂且译为富指令执行环境,简称REE),这两个环境具有独立的运算和存储资源。有高度安全需要的程序被称为Trusted App,运行在TEE中,其他普通程序运行在REE中,并且TEE中的任意资源都不能被REE的组件所访问,从而从硬件上建立了一个强大的隔离机制。下图展示了这两个环境的关系:

由于android 6.0之前,系统没有统一的指纹识别处理流程,当时提供指纹功能的各手机厂商的方案都是自行实现的,实现方式各异,其安全性也得不到保障,因此屡屡爆出被破解的新闻。Google在统一了Fingerprint API之后,紧接着对所有支持指纹识别的手机厂商提出了要求:

必须有一个硬件支持的密钥库实现,并在可信执行环境(TEE)或带有安全通道的芯片上执行指纹匹配。

必须将所有可识别的指纹数据加密并进行加密认证,使其不能在可信执行环境(TEE)之外获得,读取或更改。

熟悉Android的用户都听过root这个词,它是指利用操作系统的漏洞获得系统内的最高权限,从而掌控整个设备,进行任意操作。普通的android应用,以及这些应用所基于的linux内核,都是运行在REE环境之上的,而TEE上运行的Trusted App是出厂时经过厂商签名和发布的。Root行为所针对的是linux系统,因此即使设备遭到root,运行在REE内的app也没法访问存放在TEE里面的受保护的程序和数据,从而从硬件上确保了数据安全。

那么指纹识别的整个过程中数据是如何运转的,有没有可能被中途拦截呢?在使用了TrustZone以后,指纹传感器采集的原始图像不会被发送到REE,所有采集到的数据都通过独立的硬件通道,直接送到TEE中。而指纹数据的处理也发生在TEE中,由厂商遵循TEE通信协议所实现的Trusted app来完成。因此,指纹采集、注册和识别的过程都是完全处于TEE中,不会被手机操作系统中的程序所干扰,即便手机经过Root,仍旧无法获取TEE区内的数据资料。

下图是Google统一接口后的指纹识别流程:

除此之外,google还有以下要求:

只有加密形式的指纹数据可以存储在文件系统中(即使文件系统本身已加密)

指纹模板必须已通过设备专用私钥(例如 AES 密钥)签名,并且必须至少包含绝对文件系统路径、群组和指纹 ID,这样一来,相应模板文件便无法在其他设备上使用,并且无法用于在同一设备上注册的任何其他用户。

在指纹录入以后,指纹图像还需要在TEE中被处理成数字信息,经过提取和加密,最终保存在TEE环境中。在验证指纹时,所有的数据传递、解密及指纹匹配等操作同样发生在TEE中,执行完所有的操作后,才将匹配结果返回给系统的中间层FingerPrintService,也就是REE。正是通过这一系列措施,强化了指纹录入和识别的安全性。

除了指纹识别之外,TrustZone还可以应用在更多的场景,例如 DRM(数字版权管理),移动支付等。不过,特立独行的iPhone虽然使用的也是ARM架构的处理器,但他们的指纹安全方案可没有采用TrustZone。

点融.gif

原文来自:点融黑帮

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务
Android系统是如何保护用户指纹的
发布:2017-11-15 15:21:00

随着智能手机的不断推陈出新,指纹识别功能逐渐成为许多中高端Android手机的标配,google也从android6.0开始对指纹识别进行了官方支持,提供了统一的Android Fingerprint api。但众所周知,Android是一个开放性的系统,其安全性一直以来都受到不少质疑,android app又是可以随意下载安装的。

曾经有开发者提出疑问:现在有了官方的API,如果我在我的app里,在不通知用户的情况下偷偷调用系统API读取指纹模块的数据,不是就能拿到用户的指纹图像吗?回顾前几年的新闻,也能看到类似《某android机指纹识别被破解》的消息。

那么有没有那么容易呢,Android系统是如何保护用户指纹这一极度私密的信息的呢?

其实早在十余年前,ARM就提供了一项名为TrustZone的硬件级的安全解决方案,它将每个芯片内核内的硬件资源和软件资源进行了划分,并将其隔离成两个执行环境: Trust Execution Environment(可信执行环境,简称TEE))和Rich Execution Environment(暂且译为富指令执行环境,简称REE),这两个环境具有独立的运算和存储资源。有高度安全需要的程序被称为Trusted App,运行在TEE中,其他普通程序运行在REE中,并且TEE中的任意资源都不能被REE的组件所访问,从而从硬件上建立了一个强大的隔离机制。下图展示了这两个环境的关系:

由于android 6.0之前,系统没有统一的指纹识别处理流程,当时提供指纹功能的各手机厂商的方案都是自行实现的,实现方式各异,其安全性也得不到保障,因此屡屡爆出被破解的新闻。Google在统一了Fingerprint API之后,紧接着对所有支持指纹识别的手机厂商提出了要求:

必须有一个硬件支持的密钥库实现,并在可信执行环境(TEE)或带有安全通道的芯片上执行指纹匹配。

必须将所有可识别的指纹数据加密并进行加密认证,使其不能在可信执行环境(TEE)之外获得,读取或更改。

熟悉Android的用户都听过root这个词,它是指利用操作系统的漏洞获得系统内的最高权限,从而掌控整个设备,进行任意操作。普通的android应用,以及这些应用所基于的linux内核,都是运行在REE环境之上的,而TEE上运行的Trusted App是出厂时经过厂商签名和发布的。Root行为所针对的是linux系统,因此即使设备遭到root,运行在REE内的app也没法访问存放在TEE里面的受保护的程序和数据,从而从硬件上确保了数据安全。

那么指纹识别的整个过程中数据是如何运转的,有没有可能被中途拦截呢?在使用了TrustZone以后,指纹传感器采集的原始图像不会被发送到REE,所有采集到的数据都通过独立的硬件通道,直接送到TEE中。而指纹数据的处理也发生在TEE中,由厂商遵循TEE通信协议所实现的Trusted app来完成。因此,指纹采集、注册和识别的过程都是完全处于TEE中,不会被手机操作系统中的程序所干扰,即便手机经过Root,仍旧无法获取TEE区内的数据资料。

下图是Google统一接口后的指纹识别流程:

除此之外,google还有以下要求:

只有加密形式的指纹数据可以存储在文件系统中(即使文件系统本身已加密)

指纹模板必须已通过设备专用私钥(例如 AES 密钥)签名,并且必须至少包含绝对文件系统路径、群组和指纹 ID,这样一来,相应模板文件便无法在其他设备上使用,并且无法用于在同一设备上注册的任何其他用户。

在指纹录入以后,指纹图像还需要在TEE中被处理成数字信息,经过提取和加密,最终保存在TEE环境中。在验证指纹时,所有的数据传递、解密及指纹匹配等操作同样发生在TEE中,执行完所有的操作后,才将匹配结果返回给系统的中间层FingerPrintService,也就是REE。正是通过这一系列措施,强化了指纹录入和识别的安全性。

除了指纹识别之外,TrustZone还可以应用在更多的场景,例如 DRM(数字版权管理),移动支付等。不过,特立独行的iPhone虽然使用的也是ARM架构的处理器,但他们的指纹安全方案可没有采用TrustZone。

点融.gif

原文来自:点融黑帮

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

选择想要的接口, 看看能免费获取多少次调用 选择(单选)或填写想要的接口
  • 短信API服务
  • 银行卡四元素检测[简]
  • 身份证实名认证
  • 手机状态查询
  • 三网手机实名制认证[简]
  • 身份证OCR识别
  • 证件识别
  • 企业工商信息
短信API服务
  • 短信API服务
  • 银行卡四元素检测[简]
  • 身份证实名认证
  • 手机状态查询
  • 三网手机实名制认证[简]
  • 身份证OCR识别
  • 证件识别
  • 企业工商信息
  • 确定
选择您的身份
请选择寻找接口的目的
预计每月调用量
请选择预计每月调用量
产品研发的阶段
请选择产品研发的阶段
×

前往领取
电话 0512-88869195
×
企业用户认证,
可获得1000次免费调用
注册登录 > 企业账户认证 > 领取接口包
企业用户认证领取接口包 立即领取
× 企业用户认证,
可获得1000次免费调用,立即领取>
数 据 驱 动 未 来
Data Drives The Future