Skip to content
yexuan-henryye edited this page Aug 1, 2017 · 27 revisions

什么是TENCENT SOTER

TENCENT SOTER是一种生物认证标准,同时也是腾讯生物认证平台。TENCENT SOTER主要着眼于如何安全、高效并简单得使用你设备上的传感器进行鉴权——最重要,也是目前用到最多的就是指纹传感器。

为什么要用TENCENT SOTER

安全

这是一个好问题:既然已经有数亿Android设备已经拥有了指纹传感器,甚至Google在Android 6.0中添加了标准的指纹授权接口,为什么我们不能在安全敏感的场景中直接用这个接口呢?

此处对比下TENCENT SOTER与Android 6.0系统接口:

  • 直接使用系统的指纹接口并不足够安全,恶意应用在设备被root的情况下可以轻易劫持并篡改指纹认证结果——不要幻想通过判断设备是否root来规避该风险,毕竟这个判断也是可以被篡改的。
  • 即使你用Crypto接口配合FingerprintManager一起使用(可以参考 googlesample看下如何实现),整个授权过程依然不够安全。恶意应用可以轻易替换请求生成的密钥,所有努力都是徒劳无功。
  • 在Android 7.0中,Google要求手机厂商在设备中植入根密钥以避免上述风险。但是,这仍然是有漏洞的:根密钥并非一机一密,也就是说,其他手机可能拥有和你一模一样的密钥。那么,万一其中一台机器的密钥被破解(黑客破解自己的手机即可),那么将影响成千上万的其他机器。另外,这个根密钥同样要求你的手机出厂即是Android 7.0系统或以上,并且在在手机上有可用的Google Service。目前Android 7.0的市占率并不高,更别说大部分手机都是后期升级到7.0的了。
  • 最重要的一点,如果使用系统指纹接口,你在授权的时候不知道用户使用了哪根手指进行授权。那么,你将永远不知道是不是你所希望的用户——一般而言,是注册这项服务的用户——授权了这个请求。知晓授权者为谁,这对于高安全性场景(如登录、支付等)非常重要。

因此为什么要用TENCENT SOTER的原因就很明显了:他能解决上述所有问题。

  • 如果你的应用实现了全套的客户端、后台接口和逻辑,那么TENCENT SOTER非常安全,即使你的设备被root了也是如此。
  • 如果该设备支持TENCENT SOTER,那么腾讯将会保证这部设备出厂即有一机一密的根密钥。所有的验证服务都由腾讯开放平台提供,该平台已经被时间验证了是稳定且可信的。
  • 目前,已经有超过2.3亿部Android设备支持了TENCENT SOTER。并且最重要的是,在几乎所有支持TENCENT SOTER的设备上进行微信指纹支付时,都使用了TENCENT SOTER标准相当长一段时间。这也证明了TENCENT SOTER本身是具备支付级别安全能力的标准和平台
  • 每次授权之后,你可以知道用户使用了设备上哪根手指进行支付。这对于敏感的业务场景而言非常重要。
  • 如果你对于Android系统中的FingerprintManager和Crypto相关接口很熟悉的话,你会发现对TENCENT SOTER非常熟悉:我们所有的实现都是使用的Android Framework中的接口,并且,我们没有增加一个公开接口来做这件事情。我们只是针对这些接口和厂商进行合作,进行了很强的安全加固。
  • 你并不需要每次指纹认证都接入腾讯的后台。你的数据安全与隐私将会得到充分保证。
  • 腾讯已经针对所有支持TENCENT SOTER的手机进行了严格的测试,也就意味着你不必担心手头这台支持TENCENT SOTER的设备的安全性是否可靠。

除了安全

作为应用开发者,并不是所有场景都要求极高安全性。对于这种情况,应用可以更加快速接入TENCENT SOTER,同时,对比与原生接口,也有两个明显优势:

  • 支持部分Android L(Android 5.0、5.1)机型指纹认证
  • 可以提供本次认证在本机上的指纹索引以区分手指

当然,我们做到这些的前提是不会以任何方式获取任何形式用户指纹图案或模板信息,这也减少了用户使用TENCENT SOTER的疑虑。

有多少设备已经支持TENCENT SOTER

截止2017年6月2日,已经有超过2.3亿设备支持了TENCENT SOTER。通过这个网址可以了解目前哪些厂商的哪些机型已经支持了TENCENT SOTER。