"用户增加"--快速身份认证明现用户增加的技术和产品方案

"用户增加"--快速身份认证明现用户增加的技术和产品方案

1   引言

做为一个互联网产品,用户量的增加是一个很是重要的衡量指标。 这是一个集合了销售,市场,运营,技术的综合能力。 本文将以非技术部分为引子,而后落地为技术方案,来针对 用户增加 的目标来进行产品设计。git

2   身份认证技术

互联网产品实现用户增加,最开始部分就是来自于市场和运营人员的工做。github

用户增加的 非技术 工做有:算法

  1. 销售地推带来早期标杆用户
  2. 运营人员活动推广带来网络用户
  3. 市场人员PR和其它市场活动的企业宣传带来用户

这部分非技术的工做落实到技术部分,就须要以下几大系统作好支撑:浏览器

  1. 用户自助注册系统
  2. 用户互相邀请系统
  3. 渠道推广邀请系统

不管是哪一种技术方式,最后都会回归到一个很朴实地技术问题上面:“用户的身份认证”安全

目前对用户的身份认证最基本的方法分为以下三种:服务器

  1. 基于信息秘密

    根据你所知道的信息来证实你的身份(what you know,你知道什么), 好比:本身的人生经历相关问答,还有帐号名和密码微信

  2. 基于信任物体

    根据你所拥有的东西来证实你的身份(what you have,你拥有什么), 好比:手机和U盾网络

  3. 基于生物特征

    根据独一无二的身体特征来证实你的身份(what you are,你是谁), 好比:指纹,虹膜,面部特征架构

以上三种方法中, 基于 信息秘密 和基于 生物特征 分别因为使用成本和认证成本的关系, 没有成为当今的主流,因此本文在内容安排上将重点讲目前使用最普遍的 基于信任物体 的认证方式。app

3   基于信息秘密

基于信息秘密是传统身份认证主要实现方法有两种:

  1. 基于帐号和密码
  2. 基于用户常见问题的问答

其中第1条,是在传统的用户注册时身份认证最经常使用的方式,具备低成本和低平台依赖性的特色。

在一些安全要求更严格的场景,则会启用 “常见问题的问答”,好比:

  1. 你高中班主任的名字是?
  2. 你毕业后的第一份工做是?
  3. 你爸爸的名字是?

最后的效果是:

  • 这些问题越隐私,安全级别越高
  • 这些问题的答案越出乎意料,安全级别越高

可是这样的反作用也特别明显: 可能最后用户本身也不记得本身设置的是什么回答了, 其实这些问题本质上仍是设置的密码。

  • 问题 对应 用户名
  • 答案 对应 密码

此方法的特色:

  1. 具备较高隐秘性
  2. 单次认证使用门槛高

4   基于生物特征

目前普通网络用户能接触到的常见的基于生物特征的认证有:

  • 智能手机对用户的指纹认证
  • 互联网银行进行面部识别认证

在一些军工或者金融系统里面,更高级的生物特征认证有:

  • 基于眼球虹膜的认证
  • 基于掌纹的特征提取
  • 基于脉搏的特征提取

这些都会涉及到更高级的传感器或者更高级的软件算法,基于成本的问题,通常级别的信息系统都没有采用。

5   基于信任物体

目前的一些广义的 auth2.0 的方案基本上均可以概括为此类。

此方法的特色是:认证方式能够彻底抛弃密码了

关于 基于信任的物体 能够借用去年热播的电视剧 《琅琊榜》 里面的一个桥段来解释:

“朝堂上要争论 ‘有罪的太子母亲’ 是否有资格参加皇室大型祭祀活动的问题, 隐居山里的 周玄清 先生是这个学术领域的泰斗, 可是通常人都没法请他出山, 可是梅长苏则经过他已故的师傅黎崇先生(和周先生是旧时挚友)的信物--玉蝉, 将周老先生请出山,在朝堂辩论中取得胜利”

转化为当下信息系统的身份认证的语言就是:

  1. 梅长苏想要拥有使用周玄清先生技能的权限

    但愿利用周玄清先生的能力去取得辩论的胜利。

  2. 周玄清先生根本就不认识梅长苏

    梅长苏面貌已经彻底变了,通常的旧人彻底认不出来。 固然像蒙大统领和霓凰郡主这样可以深度学习, 从多个维度提取特征,并最终认出易容后的男主,这个设定有点BUG。

  3. 周玄清信任旧时挚友黎崇

  4. 梅长苏拥有黎崇的贴身信物--玉蝉

    拥有玉蝉,基本上就等于和黎崇先生有非同寻常的关系

  5. 虽然黎崇已仙逝,但周玄清见到信物后就马上答应出山帮忙

    周玄清能够在不须要黎崇亲自出面的状况下,见信物就“受权”给梅长苏

  6. 周先生在朝堂上帮助取得辩论胜利

    梅长苏在取得受权的状况下,享受到了周先生的服务

在当今现实生活中 信任物体 有以下几种表现形式:

  1. 用户拥有查看本身手机短信权限
  2. 用户拥有接听本身手机电话的权限
  3. 用户拥有查看本身电子邮箱的权限
  4. 用户拥有查看本身的app(微信/微博/支付宝)的权限

其实的解释就是:

本系统 信任 某个平台或者设备, 用户若是可以出具你在那个平台上有帐号或者设备使用权限的证实, 那么此用户就能够成为本系统的用户而直接进入本系统。

可以利用好目前已经有的一些可信平台,或者可信设备,能够自然导流并沉淀用户到本身的系统中。

这些平台或者设备要有以下前提条件:

  1. 有本身的帐号体系
  2. 具有信息接收能力

目前符号这样条件的基础帐号有:

  1. 手机通话
  2. 手机短信
  3. 电子邮箱
  4. app(如:微信)

这几种认证方式都是基于 "我拥有" 的原则来进行身份惟一性鉴定的。

传递信息的主流手段有以下几种:

  1. 数字验证码
  2. 带token的url
  3. 二维码

而后和接收帐号进行组合,获得以下的验证矩阵表:


备注: Y 表示存在此方法;N 表示不存在此方法。

接下来的内容将针对此部分的认证方式进行详细分析和展开。

5.1   数字验证码

“数字验证码” 的基本原理是:

服务器生成一串数字串,而后将这个信息发送到能收到用户接收信息的帐号上, 而后根据用户获取此数字串后的输入作对比, 以确认用户所拥有此帐号的信息获取权限,从而完成受权。

一个由 “数字验证码” 做为验证方式的注册系统, 其主要步骤以下:

  1. 服务端生成一个随机数字串(通常是4到6位)

  2. 服务端将信息主动推送到用户信息接收帐号(文字或者音频)

  3. 用户交互
    1. 用户打开应用,经过视觉或者听觉的获取信息
    2. 用户记住此信息串内容
    3. 用户切回服务界面
    4. 用户输入验证码
  4. 用户完成注册,进入信息系统

固然不一样的信息接收方式,也会有以下几个维度的不一样:

  1. 接收信息的 载体的覆盖成本
  2. 用户 认证帐号记忆成本
  3. 服务商的 认证信息生成成本
  4. 用户对 认证信息的获取成本
  5. 用户对 认证信息的使用成本
  6. 用户 关系链成本

对每一个指标进行量化评分(1~5分),咱们能够获得以下的对比表:


收信载体覆盖成本 :

毫无疑问手机号码是覆盖率最高的收集载体了,基本上不须要系统服务商去担忧用户覆盖率的问题; 电子邮箱因为QQ邮箱的功劳,在覆盖率上也没有太逊色;微信做为装机率极高的超级app,覆盖率上也没有太逊色。

认证帐号记忆成本 :

手机号码是最容易被用户记忆住;邮箱地址次之; 微信因为只对第三方开放一个随机长字符串,因此在第三方能得到的认证帐号是彻底没有可记忆性的。

认证信息生成成本 :

  • 验证短信目前市场价: 50元/1000条
  • 验证邮件目前市场价:3元/1000封
  • 验证微信:能够认为是免费的,但有服务号认证费用,300元/年

认证信息获取成本 :

  • 短信直接在手机上打开短信应用就能够看到验证码,比较便捷
  • 考虑到邮件则因为并不是一开始就处于登陆态,绝大多数人也不会使用客户端登陆邮件,获取信息成本要高
  • 微信通常都是登陆态,打开微信消息便可得到验证码,比较便捷

认证信息使用成本 :

这三者都差很少,都是记住验证码,而后输入验证码。

关系链获取成本 :

  • 短信方式。经过用户上传手机号码,获取关系链条,并且质量最高。
  • 邮件方式。经过获取邮件联系人,获取关系链条,但质量没手机号码高。
  • 微信方式。通常的第三方彻底没法获取关系链条。

若是不考虑关系链,又特别在乎成本问题,其实微信方式也是个不错的选择。

使用以下步骤能够实现扬长避短:

  1. 关注本系统的微信服务号
  2. 从微信服务号菜单中打开“注册用户”菜单进入注册页面
  3. 注册页面显示出当前微信在本公众号下的帐号ID(一个很难记忆的长字符串)
  4. 要求用户输入一个容易记忆的用户名A(替代难记忆的微信第三方ID)
  5. 在微信浏览器里面完成受权和简单帐号名的绑定
  6. 后续可使用微信服务号主动给用户微信推送 数字验证码
  7. 用户收到验证码后,经过 用户名A 和 验证码 完成登陆

本质上是:须要预先为信息接收装置绑定一个容易记忆的帐号。

基于 数字验证码 认证方法整个过程当中,交互过程以下:

  1. 打开收件箱或者登陆邮箱或者接听电话
  2. 经过视觉或者听觉获取信息并记忆信息
  3. 切换软件使用场景
  4. 键盘输入验证码

评价:

  • 交互步骤:4步
  • 耗时:15s
  • 推荐指数: 3颗星

5.2   带token的url

主要原理:信息系统服务商将带token的url发送到指定的信息接收装置中, 而后用户从信息接收装置中直接点击打开url请求数据,完成受权。

以移动app登陆场景为例子,主要遵循以下步骤:

  1. 用户在app输入用户名
    • 能够是手机号码
    • 能够是邮箱地址
    • 能够是微信用户名的替代名
  2. 服务商向接收载体发送带token的url

  3. app使用token参数进行轮询

  4. 只要轮询检查到url已经被请求过,则app认为用户认证经过

这实际上是对比短信验证码是更优秀的一种认证方式,由于它省去了用户记忆验证码,和输入难码的环节。 整个验证过程,交互动做以下:

  1. 打开收件箱或者登陆邮箱或者微信查看信息
  2. 点击连接

评价:

  • 交互步骤:2步
  • 耗时:6s
  • 推荐指数:4颗星

此方法的缺点是:抛弃了那些使用连浏览器都没法打开的老古董手机的用户。 显然按照目前的形势来看,能够不用考虑这部分稀缺用户的感觉了。

5.3   二维码或app调用

这种方式应该是目前最早进的一种认证方式了,只是开发难度稍微高一些。 可是若是开发能力不是问题,仍是建议尽可能使用此方法。

微信提供了三个途径来开放其用户信息:

  1. 微信app手机扫第三方服务商的二维码
  2. 第三方服务商的app调用微信app
  3. 微信浏览器打开第三方服务商的页面

可是若是不限制第三方服务商的服务在微信浏览器里面使用的话,则认证方法只剩两种:

  1. 微信扫第三方二维码
  2. 第三方app调用微信app

这两种方式都很是值得技术人员去研究理解并学会鉴赏。

其主要门槛在于:

  1. 须要企业资质去申请开发者权限
  2. 每一年会交300元的资格审查费用
  3. 要求开发人员具有必定的架构理解能力和软件开发实现能力

若是以上三条不存在问题,那么建议首选此方法。

这两类认证方法的步骤以下:

  1. 生成二维码或者第三方app发起调用微信app的请求
  2. 微信扫码或者微信被调起后赞成受权

评价:

  • 交互步骤: 2步
  • 耗时: 3s
  • 推荐指数: 5颗星

6   本文总结

本文从“用户快速增加”的 产品及运营目标 出发, 引出了“如何在技术上实现对用户进行快速身份认证以减小用户使用本系统门槛”的问题。 而后针对目前主流的一些认证技术和具体实践中常见的认证明现方式进行了分析, 并针对目前最多见的 基于信任物体 的几种具体认证方法进行了量化分析和评级。

最终的结论是: 微信的扫码和app调用是最值得推荐的认证方式

但愿本文的 分析过程及分析结果 可以对你们在进行产品设计和技术选型时有所启发。

7   本文展望

本文主要解决在“利用现有的基础信息平台设施”的条件下信息系统关于用户的两个问题:

  1. 吸引新用户注册
  2. 用户登陆认证

可是若是有更多的需求,例如,“对用户进行详细的权限角色限定”则须要开发商自行处理了。

开发商本身开发一个属于本身信息体系的身份认证app, 从手机号码/电子邮箱/微信这些帐号体系中完成自身app的 新用户注册和登陆功能 , 而后在app里面进行角色和权限划分。这样能够此app为基础,开发出针对本系统的不少特点的功能出来。

这就有点相似于:微信的注册体系和登陆体系是依赖于手机号码和短信的, 可是进入到微信系统后,它作出了扫码登陆和调用app登陆这样优秀体验的认证方式。

最终若是app的功能足够有特点,也一样是可以把由第三方引入的用户给沉淀下来,最终彻底脱离第三方。

app能够做的功能有不少,例如:

  • 业务方面
    1. 扫码登陆
    2. 扫码审核
    3. 扫码付款
    4. 扫码扣款
    5. 扫码确认
  • 安全方面
    1. 进行安全等级划分
    2. 本系统用户征信调查

等等,更多的功能就靠本身的想像力了。


做者: Harmo哈莫
做者介绍: https://zhengwh.github.io
技术博客: http://www.cnblogs.com/beer
Email: dreamzsm@gmail.com
QQ: 1295351490
时间: 2016-07
版权声明: 欢迎以学习交流为目的读者随意转载,可是请 【注明出处】
支持本文: 若是文章对您有启发,能够点击博客右下角的按钮进行 【推荐】
相关文章
相关标签/搜索