U2F认证浅谈以及TOTP二次认证!

如果用过阿里云RAM版本或者说大伙有用过GitHub,最近的U2F是让我大开眼界了,今天我们来浅浅的聊一下U2F叭!
起因也是因为之前用阿里云RAM的时候没有出现过U2F密钥认证,当时就用连了数据线的手机扫了一下阿里云的验证码通过,当时不知道是啥,结果第二次使用的时候,一直让我用密钥插上去,给我搞得一脸,二脸,三脸懵逼!结果只能让CTO帮我给账户U2F认证消除了重新认证了,这里先给大家来一个预防针,如果碰到了需要U2F认证的网站或者账户,可以先准备U盘,如果没有U盘的话,用手机下一个Google Authenticator或者Microsoft Authenticator,具体操作就是用他们的软件去扫描需要认证的二维码,然后将你的密码权限交给软件去控制就ok了!

那么首先什么是U2F呢?先给一个GPT的回答:

U2F,全称为Universal 2nd Factor,是一种开放标准,用于强化多因素身份验证(Multi-Factor Authentication,MFA)的安全性。U2F由FIDO联盟(Fast Identity Online Alliance)制定,该联盟的目标是提高互联网身份验证的安全性。

U2F的原理:

  1. 硬件令牌: U2F 使用硬件令牌作为第二因素。这通常是一个物理设备,如USB密钥或NFC(近场通信)设备。

  2. 公开/私有密钥对: U2F 令牌包含一个密钥对,分别是公开密钥和私有密钥。公开密钥存储在服务器上,而私有密钥则安全地存储在硬件令牌中。

  3. 注册过程: 用户在注册时,将令牌插入计算机,然后通过与服务器通信,将公开密钥注册到用户账户上。此过程确保服务器知道该特定硬件令牌与特定用户关联。

  4. 验证过程: 在登录时,用户再次插入硬件令牌。服务器向令牌发送挑战(challenge),令牌使用存储的私有密钥对挑战进行签名,并将签名发送回服务器。服务器使用事先注册的公开密钥验证签名,从而确认用户的身份。

U2F的优点:

  • 强安全性: 由于私有密钥存储在硬件令牌中,即使用户的计算机被恶意软件感染,攻击者也无法获取私有密钥。

  • 免受网络钓鱼攻击: U2F 在注册和验证时使用的挑战-响应机制,有助于防止网络钓鱼攻击。

  • 简便性: 用户只需插入硬件令牌并按照简单的步骤执行操作,无需记忆复杂的密码。

  • 标准化: 作为一个开放标准,U2F获得了广泛支持,许多在线服务和网站已经集成了这一标准。

U2F的一个常见应用是在双因素身份验证(2FA)中,与传统的用户名和密码组合一起提供更强大的安全性。

TOTP是啥:

时间基础的一次性密码(Time-based One-Time Password,TOTP)是一种用于实现两步验证(Two-Factor Authentication,2FA)的技术。TOTP的选择通常是基于其一些特性和优势:

  1. 动态性: TOTP生成的验证码是动态变化的,通常每30秒变化一次。这使得即使恶意用户截获了一次性密码,也仅对短时间内有效,减小了安全风险。

  2. 无需网络连接: 生成TOTP的过程是在设备本地完成的,无需与服务器进行实时通信。这意味着即使用户的设备没有网络连接,仍然能够生成有效的验证码,提高了灵活性。

  3. 基于共享密钥: TOTP的生成依赖于共享密钥(secret key)。服务器和用户的设备都知道这个密钥,但它并不会直接传输。这增加了系统的安全性,因为即使截获了一次性密码,没有共享密钥,攻击者无法生成有效的验证码。

  4. 开放标准: TOTP是开放标准,由IETF(Internet Engineering Task Force)定义在RFC 6238中。这种标准化有助于不同厂商和服务提供商之间的兼容性,使得用户可以使用同一身份验证应用在不同的服务上启用两步验证。

  5. 方便性: TOTP的实施通常非常方便,用户只需在设备上安装一个支持TOTP的身份验证应用(如Google Authenticator、Microsoft Authenticator等),然后将设备与服务关联。

  6. 广泛支持: 许多在线服务和应用都支持TOTP,使其成为一种广泛应用的两步验证机制。

官方解释其实感觉也是能够看懂的,但是这里我浅浅谈一下我的理解bua!

U2F的强行解释!

举个例子,比如说你拿着银行卡去银行柜台取钱,你将银行卡和密码都输入正确了,但是为了证明这个钱是你的,你需要拿着你的身份证给柜员并且经过人脸识别,通过后你们就正式建立连接了!

欧克,现在对了U2F有了一个大概认知了,那么我们来结合一下我上述所提到的google或是微软的软件是怎么将我们的手机变为U盘远程认证的吧!

软件是如何实现二次验证的

首先你第一次进行登录认证的时候,你已经成功登录了网站,此时其实你已经处于登录状态了,只是还没有与你的硬件进行一个绑定,在你扫描二维码时,你会获取到你网站的账号密码,并且与你的硬件进行绑定,硬件与你的网站账号密码进行绑定,然而你以为这是U2F吗?并不!通过上下文你应该明白了,U2F必须用硬件去进行绑定,然而实际上我们还是通过扫描二维码进行绑定的,通过网络传输的,所以咱们这是TOTP,并且我们能够看到在软件上会生成30秒的临时code,需要填入到GitHub里,在你扫描完成后,软件会生成一个6位数的随机code,你填入code后,为了避免软件卸载问题,GitHub还友好的给你提供了一份备份代码,你可以复制或者进行下载,以备不时之需。从此以后GitHub的两步验证就会成功启用。每次登录时,除了用户名和密码外,您还需要提供Authenticator应用中当前生成的TOTP验证码。

那么为什么没有U2F的认证呢?因为!他贵啊!为什么要二次验证呢?你说安全吧?其实你密码都被人知道了你要是没开启二次验证效果是一样的,感觉还不如邮箱电话验证来的快!

参考:【官方双语】USB令牌登录是啥?(U2F原理解释) #电子速谈_哔哩哔哩_bilibili

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值