互联网

极光开发者大会重点摘录:极光产品总监张希谈一键认证产品

张希,2014年加入极光,极光企业级IT服务领域的资深专家。先后参与了极光开发者产品线中JPush及JAnalytics的开发、技术支持及产品研发等工作,对于如何利用极光的各种开发者产品帮助开发者降低开发难度、完善产品功能、提升运营能力有着深刻理解。 在11月17日的极光开发者大会上,张希携极光开发者服务的全新产品——极光认证正式亮相,并带来了《极光开发者为安全站岗》的主题演讲。 他的演讲主要包含以下四方面内容: 1. 验证码的发展 2. 验证码能解决哪些问题 3. 验证码是否安全 4. 极光认证如何解决这一问题 一、认识一下CAPTCHA ​ 这个英文单词是一个缩写,读出来是CAPTCHA,中间的t不发音,翻译过来是完全的自动化的公开图灵测试。那么图灵测试是做什么的呢?它是用来分别是电脑还是人在操作。目前来看,很多反作弊的领域都用了这个功能。CAPTCHA的发明者路易斯•冯安,是一个企业家和计算机科学家,也是卡内基梅隆大学计算机科学系的副教授。同时他也创立了reCAPTCHA公司,并于2009年将这家公司成功出售给谷歌。 接下来我们看他所做的产品雏形最终衍生出来的所有的产品形态。中间这个图至今还在延用,它在谷歌所有的产品线上做人机验证的测试。虽然说在国内用谷歌是不太合适的一件事情,现在都在反对,但是我估计很多从业者应该都是见过这个东西的。 ​ 第一个图是我们经常收到短信验证码的收件箱的通知图,还有一个最近衍生出来的通过拖动划块完成拼图做的一个人机验证,最终它达到的目的是识别人还是计算机。 二、验证码的发展 ​ 这张图是一个密保卡,我不知道大家有没有接触过这种产品。在2000年-2010年之间,如果有玩过魔兽世界这款网游的,尤其是网易代理的时候,大家应该人手一个密保卡,输入横坐标纵坐标指定的一个位置,然后来验证是不是你这个帐户绑定的那张密宝卡,从而达到你在网络游戏中的资产安全。 当时在网络银行,这种密保卡是最主要的二次验证的一种方式。之后密保卡升级成了u盾。最后一张是名极一时的12306最开始创立的一种验证码形式,是一种图像识别的验证码。 三、验证码主要解决的问题 ​ 首先第一个问题就是计算机安全,也就是CAPTCHA所解决的主要问题。用来辨别人还是计算机从而保护计算机操作上的一些安全,防止自己的api不被恶意盗刷,或者是自己的用户系统不被盗刷,也是现在反作弊领域主要用的一种方式之一。 第二个就是财产安全。像刚才介绍的密保卡,或者是网银的u盾也好,这些本质上是除密码之外,我们所使用网络转帐时候做的二次认证的一个方式,它所解决的问题是财产安全的问题。 第三个就是信息安全。现在大家人均手机上应该有至少20款app,基本上每一款app都有帐户登录的功能。为了安全起见,我们肯定会为每一个app或者邮箱系统设立独立的密码。在这种安全的使用方式之下会导致我们可能经常忘记登录密码,通常找回密码的方式肯定是需要做一个自己的手机号码的验证码发送,给这个app证明是我自己在重置我的用户名和密码,在这种情况下验证码保障的是个人在网络上的信息安全。 四、验证码带来的问题 ​ 咱们来看一下最近经常有一些突发的新闻。总体的过程基本上就是手机收到一堆验证码,收到一堆转帐提醒,提示自己的支付宝帐户被掏空。我们来简单的复盘一下整体的过程,经常看到新闻有报道,但是可能有些人不太明白最终是一个什么事情。首先要引入一个大家可能会听说过的一个概念,也就是GSM短信嗅探。如果攻击者想在你的手机上盗走你的财产的话,首先基本上流程是这样的,首先他要假设一个2G伪基站在你附近,通过信号干扰器将你的手机从现在经常会用的4G或者是3G强制降级至2G,让手机信号连接到自己的伪基站上。 这种情况下其实这个攻击者已经完全掌控了你的手机,掌控的是哪一部分呢?就是你手机上所有的app,他能通过手机号跟验证码执行操作。这个是非常可怕的,因为我们现在对手机号跟手机验证码功能的依赖是非常强的。 那么安全是一个相对的安全吗?我们看一下攻击者的犯罪成本,首先GSM协议漏洞。我认为这本身不是漏洞,因为本身规则上面短信就是明文传输的,它的安全保障是靠协议的安全去保障,基于第一点看第二点,GSM协议其实已经被开源实现,在所有的开源社区上大家应该都能找到相关的代码,这也意味着第一点所谓的协议安全基本上已经不存在了,当然实际上要实现开源的东西还是有一点点困难的。 接下来看一下网络上推荐的保护做法: 第一种说尽可能更换4G手机,提升手机防御等级,增加攻击难度。实际上作案者或者是攻击者可以通过干扰器让你的手机从4G强制降级到2G的。这种方法虽然在日常生活中能有一定的保障,但是实际上效果不是特别的好。 第二种是平时保护好个人信息,包括身份证号、银行卡号等敏感信息。 第三种是关闭手机移动信号,只用家用的办公室等的安全WiFi上网,这一点我认为有其不便利性。 最后一点我认为是最有用的,睡前要关机或者设置飞行模式,让手机无法接收短信,为什么说是最有用的。因为我们回头去看一些新闻,包括我的资金被非法转移的一些新闻收到验证码,它的作案时间都是在晚上,因为夜间攻击者是有一个完整的作案时间。让你在不被发现或者不在中途干扰操作的情况下能够实行所有的犯罪手段,所以说睡前关机或者设置飞行模式是一个非常有用的建议。 当然以上这些建议是针对终端用户来讲。但是对于开发者来讲,我们还能做什么来保障我们的用户的信息安全? 五、极光认证能做什么? 极光认证JVerification整合了三大运营商的数据网络网关认证能力,为开发者提供了检验用户提供的手机号码和本机SIM卡号码是否一致的一个功能,优化用户本机认证体验。极光认证是极光开发者业务产品线的第六个产品。 ​ 我们来简单看一下整体的一个业务流程,也就是大家输入手机号码、发起号码认证、完成登录注册和一些相关的功能。通过极光认证,由用户输入手机号码,由app向SDK发起向运营商取号的请求,拿到取号单,这些完整的过程都是有数据加密的。取号之后再拿结合出来的整体数据包,包括用户的手机号码和从运营商取到的密文运营商去完成认证过程,最终完成注册和登录,或者是一些相关的操作。如果认证失败,开发者也可以选择在自己的app添加一些相关的交互,去转制传统的短信验证,让整体的交互流程变的更顺畅。 ​ 下面我们再来看一些基础的应用场景。极光认证到底能为开发者带来什么?首先它能满足我们所能想到的三个场景,本机号码登录注册和二次认证相关的。理论上现在我们所用的所有的验证码的场景其实都是可以被这个产品所替代的,那它有什么好处?第一点安全性高,第二点用户体验好。 我们来仔细讲一讲为什么说安全性高。首先认证这个产品,运营商为什么要绞尽脑汁想提供这种能力,为什么要给极光这种能力让极光帮助开发者解决这个问题,这是我们刚才所讲到的验证码的安全问题。 第一点就是为什么说安全性高,我们现在所有的数据包括从运营商拿到的数据、给运营商的数据都是通过高强度的加密算法、加密传输的。第二点,它的开发本来就是替代传统的验证码,来避免之前所说的短信带来的一些安全上的威胁,所以最终来看它目前来看是相对安全的一个产品。 ​ 为什么说用户体验好?我们来看两个流程图,第一个是传统的短信验证的流程图。首先我要用短信验证,要在app上输入手机号码,开发者服务器收到这个请求后,会给这个手机号码发一个验证码。当然开发者服务器中间还存在生成验证码的过程,存在存储问题等。之后这个请求会发到短信平台,从短信平台再到运营商,由运营商发验证到用户的手机,用户看自己的手机信箱读到验证码,输入app,再到开发者服务器,再回来,来完成整个的认证流程。 然后来看一下极光认证缩减之后的流程,app只需要经过从自己的开发者服务器,到极光服务器再到运营商的过程。为什么一定要过极光服务器呢?因为运营商目前对于认证的能力,只对极光这种服务提供商开放,这个是必经的路径。最终极光认证系需要经过四个流程,比起传统的短信验证,压缩了很多时间。 我今天的分享就是以上这些。很感谢大家今天来参加极光开发者大会,谢谢。
[!--page.stats—]
希望看到您的想法,请您发表评论x