1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

为什么密码的验证方式一直没有得到突破?

本帖由 漂亮的石头2016-06-29 发布。版面名称:知乎日报

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    487,766
    赞:
    47
    日报标题:上网上了这么多年,记住密码仍然是老大难

    [​IMG] 余天升,文字编辑工程师,计算机技术研究生

    有点长,这一段算是摘要吧。身份鉴别技术主要通过知识和实物对客体进行身份鉴别,口令是一种低成本并且准确有效的身份鉴别方式,因此广泛使用并且难以有很大的突破。本文还谈了好的身份鉴别方式的三个特点。身份鉴别技术的突破,或者应当说是创新还是有的,下拉看图就知道了。多用户密码管理确实影响互联网的使用体验,因此 OpenID 应运而生。

    身份鉴别是一项远远早于网络技术和计算机技术就已经存在的技术,几千年来人们用于鉴别身份的方法无非就是那么几类,不少信息安全的书籍在介绍这些验证方法表述为三种形式:know something、have something 和 is something / someone。

    能够判断“是某人或某物”当然是我们的最高理想,但是从来就没有出现过一种方法能够准确无误的判定“是某人”。在不同的时代,能够有一些近似的方法,比如说现在我们会把检验 DNA 或者虹膜当作能够直接确认“是某人”的方法,但是实际上这还是属于 have something 的身份认证形式。

    know something 是一种通过知识来鉴别身份的方法。口令,即我们通常所说的密码,就是方式的经典代表,已经使用了几千年,两千年前的“鸡肋”,现代戏曲中的“天王盖地虎,宝塔镇河妖”,大家早已耳熟能详。而 have something 则是通过拥有一种特定的实物来进行身份鉴别的,像古代的虎符、印章,现在的门禁卡都属于这种,实物形式的身份鉴别信息应当具有难以复制和伪造的特点。

    对于我们现在使用的计算机而言,两种形式的身份鉴别措施都有,登录使用的口令属于 know something 这类通过知识进行身份鉴别的,而 U 盾、动态口令卡之类的属于 have something 这类通过实物进行身份鉴别的,另外还有一些通过脸型、指纹这类生物特征进行身份鉴别的技术也是 have something 这一类。

    口令这种方式适合作为身份鉴别信息的特点,除了简单方便,一个很重要的因素就是容易准确输入,或者说输入空间相比于声音、图像之类的数据要小很多。口令只需要判断两段数据是否相等就可以完成身份鉴别;而指纹、声音、面部识别之类的方法,输入的信息是一个不太准确的信息,需要复杂的算法进行校正、识别、提取特征,然后才能判断,因此容易出现误判的情况。一个例子就是微软的 Xbox 面部识别在昏暗光线环境中不能有效识别黑人的面部特征,无法通过面部识别登录而被某位黑人告种族歧视,虽然想想觉得微软挺冤枉的。微软否认 Xbox Kinect 涉嫌种族歧视指责

    使用 have something 方法,判断拥有的事物又可以区分为本身拥有的,以及专门制造发放的信物。上文讨论过声音、面相、指纹这些都属于使用者本身拥有的事物,而 U 盾和动态口令卡之类的实物硬件则是专门制造用于身份鉴别的信物。专门制造的信物成本自然是高,但是安全也比较好,不容易复制和伪造,配合口令使用则具有很高的安全性,所以一般会在像网银这样安全级别比较高的场合使用。而声音、面相和指纹的例子已在上一段中讨论。补充说明中说的戒指也是一种实物方式,感觉和 U 盾之类的东西没有什么太大的区别,只是可以佩戴在身上而已。

    所以,总结上文讨论,一种好的身份鉴别方式应当具有这样的一些因素:

    • 准确可靠鉴别客体,受到外界因素影响较小;
    • 用于鉴别的凭证(知识或实物)不易被复制和伪造,成本也不宜过高;
    • 容易输入,而且能够进行秘密输入;

    而我们现有的身份鉴别方式中,口令这种方式以满足上述所有因素并且成本最低,理所应当的成为我们最常用的身份鉴别方式,而 U 盾、动态口令卡等方式在权衡所保护财产的价值以及自身成本的情况下,也可以算是一种比较合适的通过实物进行身份鉴别方式。声音、面部识别的准确度并没有那么高,常常需要配套一个等同于口令的方式(如安全问题)辅助,在工作不正常的时候使用,但是这些问题如果较长时间不使用是很容易忘记的,更不用说声音相近、相貌相似的人大有人在这样的问题。而秘密输入声音无法具备,阿里巴巴偷听咒语偷取财宝的童话故事大家应该都听过。

    以上说的是口令这种身份鉴别方式为什么会被广泛采用,至于突破,我觉得还是有的,举几个例子。

    验证码也算是一种身份鉴别技术,只不过鉴别的粒度不是一个客体,而是一类客体,通俗的说就是用来区分人和机器,而不是区分人和人。如果要用文章开头的那几种方式归类,我觉得都不算,应该单列一种 can do something,有能力做某事,如果非要把这个等价于 have ability to do something,从而算作 have something 的话,那好吧。

    [​IMG]

    也可以用上面这类验证码区分具体某一类的人,总之验证码能够对一类人的身份进行鉴别,在不少场合还是很有用的。

    [​IMG]

    还有一种我觉得算是突破的身份鉴别方法是 Android 的锁屏,九点圆点用线连起来(图片来自:手机中绘图密码有 9 个点,最多能画出几个交叉点?)。算是近期出现的安全级别相当于口令,并且能够满足上文所述三条特性的一种身份鉴别方法了。

    补充说明还提到了一个问题,多用户密码的管理是否会影响用户体验,这一点显然是会影响。一百个网站记忆一百套用户名和口令,谁也不能保证能够记住,必然会在很多地方重复使用同一个口令。而且大多数都是小型网站,有一些网站访问的频率还是会很低,我们甚至还但是小网站是否会因为技术不过硬或者其他非技术问题泄漏我们的口令。所以 OpenID 这种方法应运而生,通过一个第三方平台的 ID 登录,我只需要向这个第三方平台核对访问者的信息就可以了,过程完全不用用户参与,可以免除记忆口令、方便用户,减少小型网站维护这些数据的负担,在社交行为覆盖整个网络的环境中,还非常有利于信息的分享和传递。

    阅读原文
     
正在加载...