以上就是APP中的指纹认证原理 , 指纹登录和指纹登录的过程差不多 , 只不过支付需要更高的安全等级 , 指纹认证可以满足这个安全要求 。
客户端身份认证的问题在上文APP的指纹注册阶段 , 客户端生成了一对非对称密钥 , 用于后续服务端认证客户端的身份 , 这个密钥在当前的手机中已经有了成熟的安全存储和使用方法 , 这就是TEE(可信执行环境):
客户端私钥被TEE安全密钥加密存储在手机中 , 目前没有破解之法;同时还可以指定只有通过了本机指纹认证才能使用私钥对数据进行签名和加密;再者如果手机中加入了新的指纹或者删除了指纹 , 存储的私钥就会失效;所以密钥的存储和使用是可以保证安全的 。
但是还存在其它的安全隐患:
1、服务端无法确认上传的客户端公钥能否代表客户端身份 , 任何程序都可以生成一对非对称密钥 , 然后对数据进行签名 , 再把公钥一起发到服务端 , 服务端仅能验证签名的正确性 , 但是无法验证公钥的来源 , 也就无法验证客户端的身份 。某些解决方案中会在客户端集成一个认证器SDK , 这个SDK生成的认证信息中会携带一些特殊识别信息 , 而且每个应用每个机器不同 , 很难破解 , 后端可以据此判断是在集成了认证器SDK的应用中发起的 。但是也有一些难题 , 识别信息的生成方法可能会被破解 , 还有怎么确认是用户发起的还是恶意程序发起的?
2、密钥生成过程中可能被黑客替换 , 存储和使用再怎么安全也无济于事了 。这个在微信的技术资料中提到过 , Android的密钥生成有被拦截的可能 , 不确定当前是不是解决了 。这也说明底层框架和操作系统也可能是不可信的 , 在某些场景下必须慎重考虑 。

文章插图
3、以上两个问题在Root或者越狱之后的手机中更严重 , APP、SDK和操作系统都无法信任了 , 所以很多金融类APP不支持在Root或者越狱的手机上使用指纹认证 , 不过道高一尺魔高一丈 , 还是有一些方法来欺骗APP , 这也不乏部分用户的支持(自作X啊) 。
这个问题有好的办法解决吗?有 , 设备出厂前就把私钥保存到TEE中 。
Android中的密钥安全大家应该知道Android系统是开源的 , 很多手机厂商都在生产Android手机 , 市面上有多个厂商在竞争 , 谁也不服谁 , 所以要想推广上文提到的出厂前内置私钥的方法 , 就必须统一标准 。在国内腾讯和阿里具备这样的影响力 , 腾讯搞了SOTER , 阿里搞了IFAA , 两者都要求手机厂商在产线上生成一对非对称密钥 , 私钥写入手机TEE , 即使拿到了手机当前也没有破解之法 , 私钥也就不会被泄漏 , 除非手机厂商搞事情 , 不过如果手机厂商真的这样做了 , 就离倒闭不远了;公钥上传到认证服务器 , 认证的时候用于验证手机APP上传的数据签名 , 验证通过了就能代表是在对应的手机发起的认证 。
同时为了推广这个技术 , 这种协议还支持别的厂商APP接入进来 。但是这样就很容易泄漏APP的商业隐私 , 比如SOTER每次支付都要去腾讯的认证服务器认证一下 , 据此就可以推断你的业务行为和交易量 , 所以SOTER又搞了应用密钥和业务密钥 , 来尽量消除这个商业风险;同时针对Android密钥生成可能被拦截的问题 , 让手机厂商装个补丁包就解决了 , 比如替换掉不安全的中间环节 。下面来看下应用密钥和业务密钥的产生过程 。
- 企业怎样有效利用抖音进行营销?
- 速卖通灵犀推荐使用技巧,怎样容易出单?
- 一日三餐要有“讲究”,怎样安排高考“食谱”?
- 50亿年后太阳毁灭世界!地球命运将会怎样?有些行星消失,人类将何去何从?
- 雀巢妈妈孕妇奶粉怎样
- 钢铁是怎样炼成有哪些好句子 钢铁是怎样炼成的好句赏析大全
- 如何致富赚钱怎样才能致富 赚钱如何致富
- 九价疫苗怎么辨别真伪 支付宝九价疫苗预约是真的吗
- 扁担实木 扁担房子风水怎样
- 冬天的红色大衣要怎样穿搭?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
