android-fingerprint-security

Android Fingerprint Security

安全性一直是移动开发的关键部分,正确实现它绝非易事。智能手机最初使用4位PIN码进行破解,最多需要10,000次破解。然后是锁定模式,尽管基本的人性极大地降低了这个数字,但锁定模式却将标准提高到了惊人的389112种不同的模式。 与PIN和锁定模式不同,指纹身份验证要提前数年。一个人的指纹确实是独一无二的,无法猜测。这项技术在消费类设备上正变得越来越流行,并且使用棉花糖,比以往任何时候都更容易在您的应用程序中实现它。

多年来的Android安全性,PIN锁定,滑动锁定模式和指纹

然后

除了我们已经写过的 iOS Touch ID之外,Android上指纹扫描的早期实现还不够。每个供应商都有其独特的方法来确保流程的安全性和实施,最重要的是,如何存储用户的私有数据。

现在

随着棉花糖的到来,人们期待已久的通过标准API对指纹认证的本机支持。最终,Android开发人员被允许对解锁设备,Play Store和Android Pay购买的产品实施基于指纹的身份验证,并在移动银行等安全性高的应用程序中提供自定义身份验证。

Google首次在Nexus 5X和Nexus 6P上推出,并推出了快速安全的Nexus Imprint指纹传感器,该技术还带来了Android 6.0棉花糖指纹传感器API的首个实现。可以在不到600毫秒的时间内识别出指纹,从而提供快速舒适的用户体验。

指纹存储安全

Android上的大多数存储策略都是不安全的,尤其是考虑到root用户访问权限的可能性时。但是Google已通过将所有打印数据操作移至可信执行环境 (TEE)并为制造商必须遵循的指纹数据存储提供了严格的指导方针,朝着正确的方向迈出了显着的一步。

三通

TEE是智能手机主处理器的安全区域。它保证了内部加载的代码和数据的机密性和完整性。这种分离可实现安全性和保护,免受黑客,恶意软件和root用户访问。

Android OS上的TEE通信过程

  • 所有指纹数据操作均在TEE中执行
  • 必须将所有指纹数据保护在传感器硬件或受信任的内存中,以便无法访问指纹图像
  • 指纹数据只能以加密形式存储在文件系统上,而不管文件系统本身是否已加密
  • 删除用户必须导致删除用户现有的指纹数据
  • 根访问不得破坏指纹数据

指纹模板

指纹模板是原始指纹数据的已处理版本。为了遵守准则,必须对它们进行密码认证。这意味着必须使用专用于设备的私钥和足够的其他数据(绝对文件系统路径,finger ID和组)对它们进行签名,以明确定义它们的绑定关系。结果,如果将这些模板复制到另一个设备或另一个用户尝试使用它们,则这些模板将变得无用。

最后,指纹数据不会备份到用户的计算机或Google的服务器上。它不会被设备上的任何其他应用程序同步,共享或使用,也不会离开设备。应用程序收到的唯一信息是指纹是否已通过验证。这也意味着用户必须在每个新设备上设置指纹认证。

听起来不错,该如何实施?

指纹认证无非就是数据加密。它涉及一个密钥,一个执行加密的密码以及一个处理整个过程的指纹管理器。从开发人员的角度来看,该过程有些广泛,但它包含相对简单的步骤。

  1. 在项目AndroidManifest文件中请求指纹身份验证权限。

  2. 启用任何锁定屏幕安全机制(PIN,图案或密码)。

  3. 在设备上注册至少一个指纹。

  4. 创建的实例FingerprintManager。

  5. 使用Keystore实例来访问Android Keystore容器。

  6. 使用KeyGenerator该类生成加密密钥,并将其存储在Keystore容器中。

  7. Cipher使用先前生成的加密密钥初始化该类的实例。

  8. 使用Cipher实例创建一个CryptoObject并将其分配给实例化FingerprintManager。

  9. 调用实例的authenticate()方法FingerprintManager。

  10. 成功完成身份验证后处理回调,从而提供对受保护的内容或功能的访问。

Google提供了全面的指纹认证示例,并且在线提供了一些教程,可以助您一臂之力。

Android的指纹认证和支持实现的设计和执行非常好。将其用作任何形式的多因素身份验证的拥有元素,已足以为您提供快速,可靠和安全的身份验证体验。

您可以在科罗拉多州丹佛市举行的360andev会议上听到我们谈论指纹安全性和应用程序安全性最佳实践的信息

那有什么收获呢?

各种物品上的指纹

只有一个,并且其他所有方法都具有相同的缺陷。指纹认证只有一个故障点。就像用手指来解锁设备一样吸引人,您到处都是手指。潜在的攻击者可以毫不费力地举起您的指纹,然后使用它来控制您的设备和应用程序。

不幸的是,与密码不同,您的指纹显然是无法更改的。

传送门

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×