前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯生物认证开放平台——TENCENT SOTER

腾讯生物认证开放平台——TENCENT SOTER

作者头像
微信终端开发团队
发布2018-01-29 16:40:53
9.4K0
发布2018-01-29 16:40:53
举报

什么是SOTER

现如今,生物识别作为一个新兴的认证方式,从好莱坞大片的银幕中正款款走出,进入人们的日常生活。其中,指纹识别是生物识别茫茫类目中的佼佼者,尤其是自从2011年苹果公司推出了iPhone 4s这一款跨时代的智能手机之后,指纹识别模块越来越多得出现在各大智能终端上。尤其是近两年,无论是小清新iOS设备,还是Geek范的Android设备,都越来越重视生物识别在智能手机上的应用。从应用场景上来说,从之前单纯的人脸或者指纹解锁,到如今指纹支付以及授权通过各大app普及开来;而从系统层面,作为一向习惯于将设备接口能力开放出去Google,也在2015年2015年5月的Google I/O大会发布的Android M(正式版为Android 6.0)中提供了官方的指纹接口以及针对指纹的增强版本密钥管理机制。

然而,在这貌似明朗的生物识别的智能设备的天空中,始终漂浮着一朵乌云:目前,并没有一个能被各大手机厂商统一认可的生物识别标准流程。这就意味着虽然无论是iOS还是Android系统中虽然都提供了完备的客户端接口获取单次的指纹验证结果,但是:

1、系统会告诉你这次验证结果正确与否,但是如果手机被破解(例如root或者越狱),结果很容易被破解;

2、数据传输过程中如果遭遇网络劫持,很容易被篡改。

为了解决上述问题,开发者必须根据不同的生物识别方式、不同的厂商进分别实现,效率低下且不现实。

腾讯通过自身强大的影响力,和各大手机、芯片以及TrustZone厂商合作,在自家应用——微信上成功实现了安全的指纹支付认证流程。同时,作为一家有责任感的公司,腾讯在微信指纹支付全流程之上,将流程抽象为一套完备的生物识别标准——SOTER。

SOTER有什么好处

SOTER的本意是希腊神话中的神祗,象征着安全。这也意味着作为一项标准的SOTER,与厂商合作,在系统原有的接口能力之上提供安全加固。SOTER具有以下优点:

1. 第三方应用不需要深入安全域,通过调用业务无关的安全域(TEE,即独立于手机操作系统的安全区域,root或越狱无法访问到)应用程序(TA),降低开发难度和适配成本;

2. 对于Android来说,在指纹方面,适配Android 6.0FingerprintManager以及KeyStore接口以做到接口统一,同时对于Android不安全情况进行加固;

3. 对于第三方应用,给到应用方自由度,可以对验证结果进行二次确认;

4. 即使外部环境不可信,依然可以安全授权。

SOTER改变了厂商与开发者复杂的链式对接关系,通过它的连接,手机厂商的生物识别技术能简单且灵活的被各类APP所运用,开发者能快速且安全地在自家应用上实现各种生物认证能力,为用户打造出快速安全的极致体验。

SOTER为什么可以做到这些

在此之前,需要向大家普及一个概念:TEE。前文说过,TEE(Trusted Execution Environment)是独立于手机操作系统的一块独立运行的安全区域。SOTER标准中,所有的密钥生成、数据签名处理、指纹验证、敏感数据传输等敏感操作均在TEE中进行。不仅如此,SOTER使用的设备根密钥由厂商在产线上烧入,从根本上解决了根密钥不可信的问题,并以此根密钥为信任链根,派生密钥,从而完成。与微信合作的所有手机厂商将均带有硬件TEE,并且通过腾讯安全平台和微信支付安全团队验收,符合SOTER标准。

  • 设备根密钥

设备根密钥(Attestation Key,以下简称ATTK)是SOTER方案的核心密钥。对于Android设备而言,ATTK由厂商在设备出厂之前在生产线上烧入。ATTK具有以下特点:

  1. RSA-2048格式密钥,目前没有有效破解方法
  2. 在设备内部生成,任何机构或者个人没有办法获取密钥的私钥
  3. Android设备中,私钥存储在设备TEE中安全区域(RPMB),目前没有有效方式进行破解
  4. 对于Android设备而言,公钥在设备出厂之前由厂商通过安全且被认证的双向HTTPS接口发送至SOTER设备密钥管理服务器(以下简称TAM),保证上传数据不会被篡改。
  5. 每一台设备的ATTK均不相同,保证了即使某一台设备发生泄漏,也不会影响到其他设备

设备根密钥的安全性是SOTER安全性的保障,微信团队将会对支持的设备进行充分的安全监控,保证设备安全。

  • 密钥信任链

信任链模型如下图所示:

图1 密钥信任链

图1中,密钥信任关系为:自上而下为信任关系,自下而上为派生关系。派生以及鉴定流程如图2:

图2 密钥派生以及鉴定流程

具体步骤:

1. 根密钥提供商在设备出厂之前请求到设备,要求生成设备根密钥

2. 设备在密钥生成TA内生成根密钥,并将该密钥私钥存储在安全存储区域,公钥导出到根密钥提供商

3. 根密钥提供商将根密钥公钥通过后台可信接口(以微信为例,即微信公众号接口)传输至密钥公提供商,鉴权通过则存储

4. 对于第2-n级密钥,则客户端(设备)主动请求到密钥生成TA,请求生成该级别密钥

5. 密钥生成完毕之后,将私钥存储在安全存储区域

6. 密钥公钥导出至设备,同时从安全区域中导出的有该公钥使用上一级别的密钥的签名。将密钥公钥和签名传输至密钥公钥提供商(或应用程序后台),验签通过,则将该密钥公钥存储

其中,设备根密钥的密钥公钥提供商为TAM,其他级别密钥的密钥提供商为应用程序后台,由应用自行存储。微信团队将提供统一的后台API供应用程序后台获取某台设备的ATTK公钥,获取过程如下图:

除了刚刚介绍的ATTK之外,App Secure Key (ASK)为应用二级密钥,建议在应用启动时即生成,每一个应用生成一个;Authentication Key(Auth Key)是业务密钥,建议应用内每一个业务(如支付业务和登陆业务)均生成一对。同时,Auth Key的使用需要用户通过生物信息(如指纹)进行授权。在此将密钥特性整理如下:

  • 用户使用生物信息授权并签名

密钥准备完毕之后,即可以在合适的时候(如用户支付时),请求用户生物信息授权,对授权信息进行签名。应用后台对签名进行验签,通过之后可以检查其他相关信息(如指纹id等,同样包含在授权信息中),并最终返回授权结果。相关过程如图3所示:

SOTER的应用场景是什么

除了已经在使用的微信支付之外,SOTER有很多其他的应用场景:

  1. 实现生物识别解锁或生物识别登陆,用户不再需要输入繁琐密码,还能实现多账号快速切换;
  2. 替代交易密码,将原本繁琐的在线交易流程简化,间接提高成功率。
  3. 增加了一种认证方式之后,可以作为正常密码鉴权的补充,替代传统的短信验证码,提高了用户体验的同时,减少了大量短信成本。

更多场景,待你发掘。

怎么用SOTER

目前,SOTER支持两种方式进行实现:

  1. 第三方应用通过参考sample代码或者嵌入微信封装好的sdk实现全套SOTER流程;
  2. 公众号应用通过调用提供的jsapi接口直接进行生物识别可信验证。

关注WeCooper——微信终端合作官方公众号,以获取详细接口开发信息。

SOTER的目标是什么

我们希望通过产业链上下游的共同努力,推进生物识别技术发展,完善产业链构建生物认证生态体系,用科技实现“智能化生活”的美好愿景,改变生活。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WeMobileDev 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是SOTER
    • SOTER有什么好处
      • SOTER为什么可以做到这些
        • SOTER的应用场景是什么
          • 怎么用SOTER
            • SOTER的目标是什么
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档