我打开了一个叫“PasswordMonster”的网站,想测试一下地球人最常用的密码有多(不)安全。



输入“123456”,网站显示这个密码被暴力破解的时间是 0 秒。“88888888”则是 0.01 秒。

现在,你很容易就能找到类似“如何设置一个无法破解的密码”的教程,多花心思就可以创建一个密码,一个需要 60 亿年才能被暴力破解的密码。

但问题是,你很有可能记不住。不然为什么很多人只要没被系统提示密码过于简单,就一定会把自己的生日用作密码。因为其他的,记不住。然后,你陷入“忘记密码 - 重置密码 - 忘记密码”的循环。



哪怕我记得住 60 亿年才能被破解的密码,也抵挡不住数据库泄露。比如,在“超星学习通”这样的大规模数据泄漏事件中,用户的账号、密码等个人信息,都可能被不法分子窃取、售卖甚至诈骗。

这种情况下,我创建再复杂的密码也无济于事,唯一能做的,也只有事后立马修改密码。

那如果互联网干脆不用密码呢?我们是不是就可以不记密码,也不怕数据泄漏?

  密码这个“老东西”,有不少问题  

20 世纪 60 年代,“口令”(Password)这一概念伴随初代互联网诞生,最初的理念是通过用户定制化的密码设计,让使用者本身,成为这个安全系统中一道重要防线。

这套系统在之后四十多年间一直行之有效,甚至可以说:正是基于这套口令验证系统,互联网才得以有了用户登录的入口,才得以繁荣发展。

理论上,密码对于抵御常见的黑客破译(通常是通过计算哈希值的方式)仍然行之有效。当你设置了一个非常复杂的密码,即使黑客用的破译设备是超级计算机,也要花上万亿世纪才能破解。



比如上图中典型的随机密码,即使使用每秒 100 万亿次浮点运算能力的超级计算机,也需要 8.47 万亿世纪才能暴力破解

但进入 21 世纪,移动互联网时代高速发展,大多数人都会拥有数百个需要设置密码的互联网账户,在多个平台使用相同的密码几乎变成无法避免的事。

更让人害怕的是,存放这些账户信息的数据库也有泄露风险,比如平台内部操作不当,或者是相关人员因一己私利,导致数据库泄漏。接着数亿用户的真实信息在暗网被公开售卖。这类事情频繁发生。

对信息已被泄漏的用户来说,更致命的是,暴露一个平台的账号密码等信息,等同于暴露多个平台的信息,因为很多用户在不同平台上使用的是同一密码。

如今规模庞大的黑客组织,通常会用各种渠道收集已经泄漏的数据库,并通过整合,描绘出一个人在互联网中的各种足迹,然后归档到一起,搭建“社工库”。你可能就在这个过程中,被大致推断出你在其他平台的密码。

举例来讲,如今绝大部分账号都只需要一个邮箱 / 手机号码,以及一个密码(不少人会重复使用同一密码)即可登录,但如果这些信息已从数据库中泄漏,黑客便可以按图索骥,拼凑出你在其他平台的账号密码信息。如今,以上操作已经完全可以通过自动化操作(俗称“撞库”)来完成。

还有成本更低的骗局。不法分子会利用现有的泄漏信息,通过网络钓鱼,直接向真人骗取更多信息,最常见的是山寨登录网站以及诈骗电话。即使你设置了由各种随机数字、字母、符号组成的超高强度密码,但在几乎 1:1 复刻官方登录页面的诈骗网站面前,也很容易掉坑里。

由此可见,现行的这套口令机制,很多时候反而成了信息泄漏的帮凶。

但我们却很难将其完全归咎于密码系统。毕竟这是一个从 20 世纪 80 年代之后原理就基本定型的系统,当时的设计者大概料想不到 40 年后的今天,每个人都会有上百个互联网账号的“盛况”。

现有的密码系统就像是一个早已不堪重负的老式蒸汽轮机,问题频发,却不得不继续驱动着整个互联网继续航行。但业内也开始意识到这些历史遗留问题,他们打算直接另起炉灶,打造一套可以完全取代密码的验证机制。

  FIDO,“无密码”的关键  

苹果在今年的 WWDC 大会上,介绍了一个无需用户手打繁琐密码的新功能——“通行密钥”(Passkeys)。有了它,用户不用再输入密码,直接使用 Face ID / Touch ID(面部识别 / 指纹识别)等方式,授权使用“通行密钥”,这时候用户在本地就生成了一个私钥。与此同时,平台服务器端也保留着一个用于验证的公钥,一旦这两者匹配,就能实现无密码登录。用户在这个过程中,只需要通过生物特征识别。

苹果向开发者介绍“通行密钥”丨Apple

无独有偶,谷歌在今年的 Google I/O 大会上,也介绍了无密码登录技术:用户在 Chrome 浏览器中登入网站时,可以在就近的手机端上收到用于登录的验证。同样的技术未来也会被整合进电视、智能手表,甚至汽车等智能平台。

谷歌也在推广无密码登录技术丨Google

支持以上这些体验的底层技术,都来自一个致力于推动“无密码”进程的组织——FIDO 联盟。FIDO 制定了相关的技术标准,并推广到了各大互联网巨头那里。现在,FIDO 的成员不仅包括苹果、谷歌、微软这些主流的操作系统厂商,也包括高通、博通这些芯片硬件供应商,以及 Paypal 这样的支付应用巨头。

FIDO 联盟成员一览丨FIDO

这些来自不同领域的成员,在同一套技术标准的框架下协力,或许将来能保证无密码登录体验的一致性,甚至是用户在不同设备 / 应用之间的互联互通性。

比如像苹果在 WWDC 期间展示的那样:iPhone 用户可以通过扫码,在一台 Windows PC 上,使用 Chrome 浏览器登录一个支持 FIDO 技术的账户,这样一个类似“微信扫码登录”的简单操作,更像是苹果、微软、谷歌三大互联网巨头在无密码领域努力的缩影 。

有时候,实现一个类似“微信扫码登录”的简单操作也挺费劲的|Apple

  公钥,配合私钥  

从用户体验来看,FIDO 与现在的指纹 / 人脸识别验证登录并无太大区别,甚至与主流的密码自动填写服务也相差无几。

最重要的区别被隐藏在了登录页面之下:FIDO 技术并非是由系统生成一个随机密码,而是借助“公钥 + 私钥”的验证方式,在设备本地生成一个私钥,同时账号服务器端保留公钥。只有私钥搭配公钥进行登录验证时,才能完成。

按个指纹就行了丨Apple

对于那些用户无法轻易辨认的钓鱼网站,已经在注册中使用了 FIDO 技术的账号,检测到本地的私钥无法与正确的网页公钥匹配,也就不会传输任何信息,这样就从根源上避免了各种高仿登录页面的诈骗攻击,以及数据库泄露带来的风险。

当网页检测到设备上已经存储了对应的私钥后,由于已经执行过对应的生物验证,服务器端便无需再次判断是来自真实用户的访问,还是恶意的机器人攻击,当然也就不必再加入重复的验证步骤。比如各种繁杂的验证码输入,以及各种“证明自己不是机器人”的 CAPTCHA 人机验证。



类似这种让人怀疑自己是不是人类的人机验证,应该再也用不上了|网络

此外,当用户切换设备,或想在其他用户的设备上登录自己的账号时,苹果的通行密钥同样可以借助数据备份或二维码等方式,转移本地私钥以及辅助验证。需要强调的是,私钥永远是储存在用户的本地设备上。

  离没有密码的未来,还有最后一步  

仿佛是一夜之间,各大科技巨头都在推进 FIDO 无密码技术,但 FIDO 联盟早在 2012 年就已成立,那时智能手机甚至还尚未普及,这个组织就开始研究更先进的认证方式了。

但消灭密码并不简单。目前我们熟悉的互联网生态,可以说是根治于密码验证机制。密码已经成为互联网 DNA 中的一部分。所以,FIDO 联盟即便拉拢了业内巨头,在过去十年也只能循序渐进,一步步寻求突破。

在过去数年中,FIDO 联盟推行过三种不同的无密码协议。其中,FIDO UAF 于 2014 年被提出:用户通过安装生物验证装置,实现诸如直接识别指纹并完成支付等操作。


FIDO UAF丨FIDO

另一个叫“FIDO U2F”的技术,则是通过两步验证,来提供更多的安全加密方式,包括蓝牙 / NFC 物理密钥、两步验证码等方式实现。如今这同样也已经是非常通用的验证技术,我们日常生活几乎每天都要收到的短信验证码,也属于此类。


FIDO U2F丨FIDO

在上述两个协议之后,真正开始推动完全无密码时代的 FIDO2 协议,于 2015 年诞生。这个协议也历经了八年,直到 2022 年,才让 FIDO 成为取代密码的时刻终于成熟,得以在 WWDC 与 Google I/O 这样全球瞩目的舞台上亮相。


FIDO2|FIDO

在 FIDO 联盟成立了十年之后的今天,互联网历史在无密码领域的“第三阶段”,才算是真正踏出最重要的一步。

苹果已经宣布在今年九月发布的 iOS 16 、iPadOS 16 和 macOS 13 的正式版中,都将支持基于 FIDO 技术而来的“通行密钥”,而谷歌则是在 2022 年底之前,为自家的 Android、Chrome 浏览器等平台加入支持。

微软也已经发布声明,计划在“未来数月内”在 Windows 系统中加入对 FIDO 的支持。距离真正的实用,只有一步之遥了。

虽然 FIDO 所展现出的无密码未来很诱人,但这种新标准仍会有一些现实问题:最重要的仍是需要更多的账号服务支持这一技术,这注定是一个循序渐进,逐渐替换的过程。

此外,在不同的的操作系统 / 设备之间,如何让用户更加方便地同步本地私钥等问题,也会影响到实际的推广过程:包括 iPhone 用户将私钥同步至 Windows PC 或 Android 手机(或者反过来同步),加上 Android 第三方系统林立的现状,用户在实际使用中,可能会遇到远比“在他人电脑上登录自己账号”更加复杂的需求。


取代密码,是一个循序渐进,逐渐替换的过程丨站酷海洛

“消灭密码”对普通的上网冲浪选手来讲,最重要的当然还是:他们再也不用绞尽脑汁设置密码,忘记之后被迫重置了。