http://www.coolapk.com/feed/1420238
" 你好,我是微信指纹支付的开发。目前 Android 6.0 的本地指纹接口与密钥管理系统并不完善,因此我们和厂商合作新方案 SOTER 进行指纹支付的安全加固。现在 vivo x6 等新出机型已经支持微信指纹支付。另外提一句,本方案即将开放给更多第三方厂商使用。"
"跟墙没关系。没有一个有说服力的密钥信任链。"
"我用的就是 5x ,虽然我很想在我的 5x 上用上指纹支付,奈何系统这套指纹太弱了,支付毕竟是一套容不得半点闪失的业务。我们的方案能保证 root 了也能安全鉴权, Google 的不能。"
"这个我已经在之前的回答中说过了, 6.0 的指纹体系并不安全,因此我们出了新标准。目前很多厂商已经适配了。"
1
sevenfxx 2016-04-18 22:19:22 +08:00
招行的掌上生活 APP 已经支持 6.0 的指纹了。
|
2
kirisetsz 2016-04-18 22:52:58 +08:00
今天刚刚翻了指纹的文档, 6.0 的指纹认证是这样运行的:
1. 客户端调用 KeyStore API 生成公私玥 2. 客户端把公玥发送给服务器 3. 客户端要对信息进行签名 /加密的时候从 KeyStore 服务获取私玥对象 (不是私玥) 4. 客户端创建 CryptoObject 对象 (包装一下 Signature/Cipher/MAC 对象) 5. 把 CryptoObject 对象传给 FingerprintManager 访问指纹设备 6. 成功后通过 CryptoObject.getXXX 把对应的对象取回来 ( http://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.CryptoObject.html) 7. 使用取回来的对象进行信息摘要或者加密 (输入的信息会发送到内核进程或者硬件安全,文档是这么说的) 8. 把密文或者明文+签名发送到服务器 9. 服务器使用步骤 1 上传的公玥验证客户身份 KeyStore 服务支持对称非对称加密和签名算法 (基本都是 API 23 加的 API 18 开始有 KeyStore 但是只有几个可怜的 RSA 算法) 流程上是没有什么不安全,实现上就不知道了。和信任链是没有任何关系的,如果信任链说的是不信任 SSL 证书…… 那我选择死亡。(也许微信只有 PIN ,没考虑 Client Certificate 这种事情?也基本不可能啦) |
4
oott123 2016-04-19 07:54:55 +08:00 via Android
@kirisetsz 这么说来,指纹是授权访问第一步生成的私钥?
那如果有 root 权限是不是可以直接拿到私钥了_(:з」∠)_ |
5
zhang21507 2016-04-19 10:09:01 +08:00
我怎么感觉安卓不 root 更危险,会被木马利用漏洞获取 root 权限,还不如自己 root 了,装上 root 权限管理。
|
7
br00k 2016-04-19 12:25:24 +08:00
谷歌,三星的貌似 root 后都不行。
|
8
Bown 2016-04-19 13:52:17 +08:00
可以参考一下这篇文章 http://tech.qq.com/a/20160111/050255.htm
|
9
Dennypalace 2016-04-20 14:01:04 +08:00
root 了也能保证安全,我总感觉这后面有什么问题。。
|
10
loading 2016-04-21 17:23:43 +08:00
也就是说老机器没有那个安全芯片?
如果纯软件能完成,我对 root 信仰就要没了。(此处指广义的 root ) |