21、双因素认证 您所在的位置:网站首页 恒强系统密码忘记了 21、双因素认证

21、双因素认证

2023-03-24 00:54| 来源: 网络整理| 查看: 265

双因素认证背景

所谓认证(authentication)就是确认用户的身份,是网站登录必不可少的步骤。密码是最常见的认证方法,但是不安全,容易泄露和冒充。越来越多的地方,要求启用双因素认证(Two-factor authentication,简称 2FA)。

MFA,多因素身份验证,它是一种安全系统,是为了验证一项交易的合理性而实行多种身份验证。可以使用三种因素来确认身份:

您所拥有的东西—比如银行卡,钥匙或Ukey。

您所知道的东西—比如密码或PIN。

您本身就是生物识别因素—比如指纹,语音,虹膜扫描和其他物理特征。

使用两个或多个因素的任意组合来验证身份并保护重要资产免受欺诈性访问。到目前为止,我们都使用了双因素身份验证(2FA)来进行在线授权登录,如果有一个因素受到影响,系统仍然是安全的。这意味着远程攻击者需要物理访问第二个因素。数据泄露越来越常见,大量用户名和密码被泄露,安全性变得越来越重要。重复使用的密码是一个潜在的安全问题,因为如果密码曾经被泄露,那么如果它被用作另一个站点的登录名,黑客就可以使用它来访问其他帐户。这种习惯很常见,主要示例仍然是“123456”、“qwerty”、“admin”和“password”。

随着等保2.0普及,越来越多的应用需要采用双因素认证或多因素认证,即多种认证方式组合使用来保证用户登录的安全性。目前常见的WEB应用登录身份认证登录方式包括USBkey ID绑定登录,OTP动态口令,USBkey签名验签,CA数字证书,FIDO快速身份认证等。

双因素认证方案

常用的双因素组合是密码 + 某种个人物品,比如网上银行的 U 盾。用户插上 U 盾,再输入密码,才能登录网上银行。

但是,用户不可能随时携带 U 盾,手机才是最好的替代品。密码 + 手机就成了最佳的双因素认证方案。

常见双因素和其使用场景:

终端特征+静态口令

数字证书+静态口令

短信码+静态口令

生物识别+静态口令

国内的很多网站要求,用户输入密码时,还要提供短消息发送的验证码,以证明用户确实拥有该手机。

但是,短消息是不安全的,容易被拦截和伪造,SIM 卡也可以克隆。已经有案例,先伪造身份证,再申请一模一样的手机号码,把钱转走。

因此,安全的双因素认证不是密码 + 短消息,而是下面要介绍的 TOTP。

TOTP

TOTP 的全称是"基于时间的一次性密码"(Time-based One-time Password)。它是公认的可靠解决方案,已经写入国际标准 RFC6238。它的步骤如下:

第一步,用户开启双因素认证后,服务器生成一个密钥。

第二步:服务器提示用户扫描二维码(或者使用其他方式),把密钥保存到用户的手机。也就是说,服务器和用户的手机,现在都有了同一把密钥。

注意,密钥必须跟手机绑定。一旦用户更换手机,就必须生成全新的密钥。

第三步,用户登录时,手机客户端使用这个密钥和当前时间戳,生成一个哈希,有效期默认为30秒。用户在有效期内,把这个哈希提交给服务器。

第四步,服务器也使用密钥和当前时间戳,生成一个哈希,跟用户提交的哈希比对。只要两者不一致,就拒绝登录。

仔细看上面的步骤,你可能会有一个问题:手机客户端和服务器,如何保证30秒期间都得到同一个哈希呢?答案就是下面的公式:

TC = floor((unixtime(now) - unixtime(T0)) / TS)

上面的公式中,TC 表示一个时间计数器,unixtime(now)是当前 Unix 时间戳,unixtime(T0)是约定的起始时间点的时间戳,默认是0,也就是1970年1月1日。TS 则是哈希有效期的时间长度,默认是30秒。因此,上面的公式就变成下面的形式。

TC = floor(unixtime(now) / 30)

所以,只要在 30 秒以内,TC 的值都是一样的。前提是服务器和手机的时间必须同步。

接下来,就可以算出哈希:

TOTP = HASH(SecretKey, TC)

上面代码中,HASH就是约定的哈希函数,默认是 SHA-1。TOTP 有硬件生成器和软件生成器之分,都是采用上面的算法。

双因素认证特点与安全性

双因素认证的优点在于,比单纯的密码登录安全得多。就算密码泄露,只要手机还在,账户就是安全的。各种密码破解方法,都对双因素认证无效。

缺点在于,登录多了一步,费时且麻烦,用户会感到不耐烦。而且,它也不意味着账户的绝对安全,入侵者依然可以通过盗取 cookie 或 token,劫持整个对话(session)。

双因素认证还有一个最大的问题,那就是帐户的恢复。

一旦忘记密码或者遗失手机,想要恢复登录,势必就要绕过双因素认证,这就形成了一个安全漏洞。除非准备两套双因素认证,一套用来登录,另一套用来恢复账户。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有