LH 知库 | 密码认证的时代终将过去

关于我们    公司新闻    LH 知库 | 密码认证的时代终将过去

密码技术系列之二

 

上次我们介绍了对称密码、非对称密码、哈希等密码技术的基础知识,这次我们来聊聊和大家日常使用网络息息相关的口令密码。

 

1、密码的问题
说起密码,你会想起什么?
密码太多,记不住?
图省事所有网站、APP以及公司应用登陆都用同一个密码,一个泄露了,手忙脚乱地去改密码?

网站被脱库,数据库信息泄露,密码丢失?

 

 

这一切的根本原因就是:服务器保存了我们的密码(不管是明文的,还是Hash过的),我们需要把自己记忆的密码发给服务器做验证,这就给了攻击者可乘之机。

 

那么能不能不保存密码,换个方式,让服务器保存我们的指纹、人脸、虹膜等生物信息,这样行不行?

 

万万不可,因为这样虽然不用记忆各种密码了,但攻击者一旦获得这些生物信息,那就更加容易假冒我们,真是可以为所欲为了。更严重的问题是,密码泄漏可以重置一个新密码,生物特征码泄漏之后连我们自己都无法换个新的。并且本质上它和保存密码是一样的,都是“和服务器共享了一个秘密”。

 

2 奇特的证书认证

 

那就别和服务器共享秘密了吧!可是如果不共享,服务器怎么做身份验证?服务器怎么知晓“你就是你”呢?

 

上期讲到的非对称加密技术就派上用场了,由麻省理工学院的三个天才教授基于大数的因数分解提出的RSA算法,解决了这个问题。RSA分别是这三位教授名字的首字母,当然这三位教授后来因为RSA公司的商业成功而名利双收。

 

上期提到过,非对称加密有一个独特的气质:用私钥(Private key)加密的内容可以用公钥(Public Key)解密,用公钥加密的内容也可以用私钥解密,而公钥和私钥却分别是两串完全不同的数字。私钥自己保存,公钥发给服务器保存,这样就不用和它共享秘密了。

 

登录的时候,服务器给我们发一段随机消息,我们对它做签名(即对消息做Hash ,然后用本地保存的私钥加密),把签名发给服务器,服务器用对应的公钥来解密验证签名,如果签名没问题,就证明了这的确是一次合法的登录。

 

由此可见,私钥非常重要,不能让任何人知道,不能发给任何系统或个人,最好是保存在本地的一个硬件中,通过指纹、面部识别、声音、PIN等方式来访问。

 

我们经常听到的PKI体系(Public Key Infrastructure)就是基于公私钥技术来提供强身份认证服务的。保存私钥的文件通常叫做证书,用于保存证书的介质以前最常见的就是各种U盾,需要认证的时候才连上电脑,不用的时候锁保险箱,非常安全,在PC互联网时代很流行。

 

但进入移动互联网时代,网络应用很大部转移到了智能手机上,少有人再愿意携带U盾。同时,经过IT行业各大软、硬件厂商多年的探索和准备,基于TEE(可信执行环境)技术终于成熟,可以预见,利用TEE环境的安全空间存放私钥证书将成为保存个人证书的主要方式。

 

3 无密码认证时代正在到来

 

将私钥证书保存在TEE中,同时在生物认证时引入一个新的神器——运行在TEE环境中的一个固件(认证器),让它和服务器打交道,我们只是用指纹、人脸等生物识别手段授权对私钥的访问。

 

用这种方式,登录将会变成这样:

1.输入用户名 → 2.点击登录 → 3.生物识别(启用私钥)→ 4.登录成功。

 

这样,即使网站被脱库,攻击者拿到了公钥,也没法冒充你干坏事,因为公钥本来就是公开的。他想获得私钥的唯一途径就是拿到认证器(保存在手机的TEE环境中,除了手机原厂,任何恶意程序都别想访问到),同时想使用认证器还需要获取个人的指纹等生物信息,这对于茫茫互联网上两个未曾谋面的人来说太难了。在中国,为各大手机厂商开发这个认证器固件的的公司就是国民认证科技(北京)有限公司。

 

这种认证方式其实是一个叫做FIDO(Fast IDentity Online)的联盟提出的,并且为此制定了一系列FIDO协议。FIDO的这个认证概念简单,但为了方便用户,想要真正打通实现其实是很难的。

 

例如:我们用浏览器登录网站的时候,网站系统得改造支持FIDO协议。浏览器也得支持FIDO协议,可以提示用户用FIDO的方式注册或者登录。浏览器还需要和认证器进行交互,由用户提供生物信息授权访问认证器,生物信息的采集就需要硬件和操作系统出马了。如果用户的笔记本和台式机没有指纹识别等设备,还得考虑和手机的联动(例如让手机扫描二维码,然后使用手机端认证器)。这涉及到多方主体的利益,是一个生态系统,不是单独一家公司能搞定的,所以FIDO是一个联盟,包含了全世界的IT大佬(包括中国的联想、阿里等),代表中国区参加FIDO标准制定的机构也是前面提到的国民认证科技(北京)有限公司。

 

 

 

在FIDO联盟中包括的IT大佬中,有三位举足轻重:
Google : Android + Chrome浏览器
Apple :IOS + Safari浏览器

微软: Windows + Edge浏览器

 

这三者几乎统治了硬件操作系统和网络浏览器市场,如果没有这三家的支持,FIDO的无密码认证构想是实现不了的。2022年5月,Google , Apple和微软三大巨头宣布,加大力度推进对FIDO通用无密码登录标准的支持,努力实现无缝、安全的无密码登录:(1)允许用户在多个设备(甚至新设备)上自动访问FIDO登录凭证(私钥),而不需要重复注册。(2)在任何操作系统(Windows、IOS、Android)和任何浏览器(Chrome、Safari、Edge)上,当用户想用FIDO登录网站的时候,都可以利用手机用来做验证。例如,苹果手机可以跨系统帮助验证微软Edge浏览器上的FIDO登录。如果做到前述两点,现在还在使用的登录密码就真的被“消灭”了。

 

当然,新技术的发展永远不会是一帆风顺的。FIDO联盟成立于2012年,2014年发布了FIDO UAF协议和U2F协议。2019年FIDO(2)协议中的WebAuthn被W3C接受为互联网标准,同年Microsoft Hello通过FIDO(2)兼容认证。直到2022年,Google、Apple、微软三巨头宣布要加大对FIDO的支持,并于今年在各个平台上提供无密码认证功能。当然,即便是三大巨头的应用实现了FIDO无密码认证,这也还只是一个开始,还有剩下的巨大数量的企业级应用、个人应用需要做无密码认证改造。但我们相信,使用密码认证的时代正在过去,无密码认证的时代正在到来。

 

END

 

2023年1月28日 15:51
浏览量:0