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

什么是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的目标是什么

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

本文分享自微信公众号 - WeMobileDev(WeMobileDev)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-01-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

开发到上线仅 16 天,海外党微信小程序全攻略

48850
来自专栏申龙斌的程序人生

搞定GTD - 项目分类

GTD中管理的是一堆Action,比如我的OmniFocus中当前有695个Action,包括已完成的、暂停的和未完成的。为了有效地管理这些Action,在GT...

420110
来自专栏杨建荣的学习笔记

用sql,shell来描述生活中要电话号码的几个场景(r6笔记第99天)

很久之前听过一个小笑话,现在搜不到了,大体的意思如下,是某个朋友问一个大学同学要另一个同学的电话号码 #场景1 A:你知道老王的电话号码吗? 等待了5分钟 B:...

38850
来自专栏AI研习社

FPL 2017最佳论文:如何对FPGA云发动DoS攻击?

第27届现场可编程逻辑与应用国际会议(The International Conference on Field-Programmable Logic and ...

386100
来自专栏数据星河

苹果远端装置管理服务DEP含有验证缺陷

  安全业者DuoSecurity本周披露,苹果的装置注册计划(DeviceEnrollmentProgram,DEP)含有验证缺陷,将允许骇客以暴力破解法取得...

13400
来自专栏Bug生活2048

垃圾短信回复退订,千万别上当

节日将近,又一波短信轰炸来了,互联网时代,网购时代,相信大家对下面的短信一定不陌生,作为程序猿的我提醒您,千万不要回!千万不要回!千万不要回!「重要的事情说三遍...

1.4K20

溢出效应

比特币和其他数字货币构成了非常基本的安全假设。在一个分散网络中,我们需要加强自我保护意识,免受sybil的攻击(有些人接管大部分网络)。为了拥有适当的用户自主权...

31630
来自专栏月牙寂

谈谈分布式多智能体中的显式协调机制

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

47580
来自专栏域名资讯

花落百度?三拼xiongzhanghao.com易主

近日有网友爆料,熊掌号疑似被终端拿下,相关域名xiongzhanghao.com的whois信息发生变更。

14100
来自专栏FreeBuf

「闭塞网络」攻击思路总结

如何从不联网的电脑中盗取1KB名叫《新建文本文档》内容为 test 的txt文件?实际上这个是FreeBuf小酒馆里面的某个问题,当然,回答也很喜感….. ?...

26550

扫码关注云+社区

领取腾讯云代金券