Github 2FA验证的解决方法

当前使用GitHub需要启用 2FA 验证,也就是除了账号密码外还有一个实时码,需要额外输入这个正确的实时码才能开启 2FA 验证和后续登陆。

浏览器插件

这是目前我在使用的方法。在浏览器中添加一个叫做Authenticator的插件,传送地址:

开源地址:https://github.com/Authenticator-Extension/Authenticator

Edge扩展:https://microsoftedge.microsoft.com/addons/detail/authenticator-2fa-client/ocglkepbibnalbgmbachknglpdipeoio

Chrome扩展:https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai

只需要在安装好了之后点击扫描二维码,然后用鼠标选取二维码区域,就会出现实时码.以后每次登陆也只要打开插件输入实时码即可

验证APP

官方推荐的密码管理 app 包括 1Password、Authy、Microsoft Authenticator 等,但是1Password是收费的,而Authy、Microsoft Authenticator 都是只有在苹果应用商店和有Google play的安卓手机上才能使用,所以如果是苹果用户或者有Google paly的可以自行搜索安装。

手机号验证

如下是网上找到的另一个方法,但没有试验过,仅供参考。如果选择sms短信认证方式,github现在短信是不支持中国区的手机号,需要把手机号对应下拉框的源码进行更改,在第一行添加
<option value="+86">China +86</option>就可以成功发送验证码

基于时间的一次性密码(time-based one-time password, TOTP)的原理

基于时间的一次性密码(Time-based One-Time Password,TOTP)是一种双因素身份验证(2FA)方法,它根据共享的密钥和当前时间生成唯一的临时密码。TOTP通常用作在线账户的额外安全层,帮助防止未经授权的访问。TOTP是一种在RFC 6238下标准化的算法。

以下是TOTP工作原理的简要概述:

密钥生成:在为帐户设置TOTP时,将生成一个唯一的密钥。该密钥在用户设备(通常是智能手机)和认证服务器之间共享。密钥通常表示为二维码,以便轻松设置。

时间同步:用户设备和认证服务器需要同步到相同的时间源。TOTP算法依赖于当前时间来生成一次性密码。

OTP生成:TOTP算法将密钥和当前时间结合起来,应用加密哈希函数(例如SHA-1、SHA-256或SHA-512)生成一次性密码。此密码通常包含6-8位数字,并具有有限的有效期,例如30或60秒。

OTP验证:当用户尝试登录时,他们输入常规密码以及由TOTP应用程序或设备生成的一次性密码。然后,认证服务器根据共享密钥和当前时间独立生成预期的OTP。如果用户输入的OTP与服务器生成的OTP匹配,则授权访问。

由于一次性密码经常更改(每30或60秒),即使攻击者设法截获有效的OTP,他们也只有非常有限的时间窗口来使用它。这为认证过程增加了额外的安全层,使未经授权的用户更难以访问帐户。

简单来说,TOTP就是在用户和系统之间共享密钥,并同步时间,然后计算一个基于时间的函数,验证双方得到的结果是否一致

参考文章

https://juejin.cn/post/7154286738280546317

https://zhuanlan.zhihu.com/p/615693483

https://www.jianshu.com/p/2075203e88c9

相关推荐
油泼辣子多加9 小时前
2024年11月11日Github流行趋势
github
内核程序员kevin16 小时前
GitHub新手入门 - 从创建仓库到协作管理
git·github
临水逸16 小时前
GitHub 上的开源项目推荐
开源·github
Tfly__1 天前
Ubuntu 20.04 安装 QGC v4.3 开发环境
linux·c++·qt·ubuntu·github·嵌入式·无人机
m0_738820202 天前
SSL/TLS握手过程
https·github·ssl
mortimer2 天前
”反思式三步翻译法” 应用于字幕翻译的尝试
开源·github·aigc
hiddenSharp4293 天前
【Python】使用 爬虫/GitHub Actions 自动更新 CSDN 个人主页浏览量统计
爬虫·python·github
旧故新长3 天前
GitHub 和 Gitee 的区别和选择指南
gitee·github
SaxoZhao3 天前
github.com port 22
github
小牛itbull3 天前
ReactPress系列—NestJS 服务端开发流程简介
开发语言·前端·javascript·react.js·github