我们正在为客户开发银行应用程序。我们需要在 Apple 的 iOS 中实现 TouchID,在 Android 中实现指纹检查。
首先,与该技术相关的可能的安全风险和考虑因素是什么?其次,我如何才能以安全的方式保护应用程序/使用技术?
我们正在为客户开发银行应用程序。我们需要在 Apple 的 iOS 中实现 TouchID,在 Android 中实现指纹检查。
首先,与该技术相关的可能的安全风险和考虑因素是什么?其次,我如何才能以安全的方式保护应用程序/使用技术?
问题是服务器无法存储指纹的散列,因为指纹可能带有细微的变化,会产生完全不同的散列。如果您的指纹被泄露(通过将其放在您触摸过的对象上或直接从服务器上获取),您几乎无法更改它 - 好吧,您最多可以使用十个手指。
但是指纹可能是解锁私钥的正确方法,因为它接近于 2FA 身份验证:您拥有的东西(私钥)和您的身份(指纹)。如果出现妥协,您可以随时撤销密钥。这意味着要安全地使用指纹进行身份验证,您应该将其与 X509 证书结合使用。
风险在很大程度上取决于您手机/笔记本电脑上指纹读取器的类型,以及任何软件考虑因素。
http://www.androidauthority.com/how-fingerprint-scanners-work-670934/
根据那篇文章,最基本的指纹扫描仪可以被指纹图像所欺骗,最先进的指纹扫描仪需要高精度的 3D 打印指纹。
无论您将在设备上设置什么安全措施,请记住,您的客户将使用的扫描仪类型将极大地影响这种身份验证是否安全。
对于 TouchID,指纹不会离开手机(正如 Apple 在引入 touchID 时所说的那样)。
该 API 称为 LocalAuthentication,相对简单:https : //developer.apple.com/documentation/localauthentication
本教程也很好解释:http : //www.appcoda.com/touch-id-api-ios8/
正如其他人所说,问题在于您无法更改指纹并且验证也不准确。此外,您无法更改指纹这一事实可能是隐私问题。
添加到其他答案:永远不要相信客户。如果在设备上完成了指纹认证,请记住任何人都可以使用植根或自定义设备,该设备模拟了始终匹配所有内容的假指纹读取器。