Github 宣布在2023年底前必须使用双重验证

简介: 2FA(双因素身份验证)是一种增强在线账户安全性的方法,要求用户提供两种不同类型的验证信息才能登录。常见的验证因素包括密码、手机验证码、指纹等。启用2FA能显著提升账户安全性,防止因密码泄露导致的账户被盗。对于开发者而言,尤其是在使用如GitHub这样的平台时,启用2FA尤为重要,可有效抵御恶意攻击,保护代码和个人信息的安全。设置2FA通常通过安装TOTP应用(如Microsoft Authenticator)并按照平台指引完成相关配置。即使手机App被卸载,用户也可通过保存的恢复码登录账户。

什么是 2FA?

首先我们要知道什么是 2FA。

2FA 代表双因素身份验证(Two-Factor Authentication)。它是一种安全措施,用于保护用户的在线账户和信息。传统的身份验证通常只涉及输入用户名和密码,但这种方法可能存在安全风险,因为密码可能被猜测、盗取或者破解。

通过使用双因素身份验证,用户需要提供两个不同类型的身份验证因素才能成功登录。这些因素通常分为以下几种类型:

  1. 知识因素:如密码、PIN码或者答案问题。
  2. 所有权因素:如硬件令牌、手机验证应用程序生成的一次性密码(OTP)或短信验证码。
  3. 生物特征因素:如指纹识别、虹膜扫描或面部识别。

当用户进行登录时,除了输入用户名和密码之外,还需要提供另外一个因素进行验证。这使得攻击者更难以入侵用户账户,因为他们需要获取并使用第二个因素才能成功登录。

2FA 提供了额外的安全层,帮助用户保护其账号免受恶意活动和未经授权的访问。

现在,越来越多的在线服务和应用程序支持 2FA,推荐用户启用 2FA 以增强账户安全性。

为什么要使用 2FA?

Github 首席安全官 Mike Hanley 在博客中提到:

2021年11月,一些未启用 2FA 的开发者账户遭到入侵,导致很多 npm 包被入侵者接管,为此 Github 承诺在 npm 账户安全性方面会投入更多的资源。我们会继续改进 npm 账户安全性,同时也会投入相同程度的努力来保护 Github 开发者的账户。

大多数安全漏洞并非少见的零日攻击的产物,而是来源于很多低成本的攻击手段,如社会工程、凭证盗窃或者泄漏,以及为攻击者提供对受害者账户及其所有资源的广泛访问权限的途径。被入侵的账户可用于窃取私有代码,或者将恶意更改推送到这些代码上。这不仅会将与受感染账户相关的个人和组织置于危险之中,而且会让所有使用受影响代码的用户都暴露在风险环境下。因此,这种攻击可能会对更广泛的软件生态系统和供应链下游产生巨大的影响。

这表示对于传统的单因素认证(即使用密码)来说它更容易受到密码泄漏、弱密码攻击、社会工程攻击等方式的威胁。对于一些每周下载次数高达成百上千次的 npm 包来说,它们更容易被黑客团伙攻击投毒,比如安装一些密码窃取器等。

❓什么是社会工程攻击?

它是指利用心理学和社会工程学原理,通过欺骗、诱导或操纵人员来获取信息或者实施非法行为的攻击手段。这类攻击往往不直接涉及技术上的漏洞,而是针对人类的社会和心理特征进行操作,从而获得所需的信息或者访问权限。

它的形式大概包括:

  1. 钓鱼攻击(Phishing):通过伪装成合法机构或者个人,发送虚假的电子邮件、短信或者网站链接,诱导受害人输入个人账户信息、密码或者敏感信息。
  2. 预文本信息攻击(Pretexting):攻击者伪装成他人,通过编造虚假的理由或者身份来诱使受害者透露信息或者执行特定操作。
  3. 人员招聘或渗透测试:攻击者伪装成潜在雇主或者客户,以获取内部信息或者物理访问权限。
  4. 垃圾邮件攻击:发送包含恶意软件或者链接的垃圾邮件,通过诱导受害者点击链接或者下载附件,以便攻击者获取系统访问权限或者窃取信息。

社会工程攻击通常需要攻击者对目标受害者进行深入的调查和分析,以便制定相应的欺骗方案。为了防范社会工程攻击,个人和组织需要加强对安全意识的培训,对于未知来源的信息和请求,我们要谨慎对待,保护自己的个人信息。

如何设置 2FA?

我们这里介绍一下国内可以使用的方式:使用 TOTP 应用。

那什么是 TOTP 应用呢?

TOTP 应用指的是基于事件的一次性密码(Time-based One-Time Password)应用,它是一种用于实现双因素认证的安全技术。TOTP 应用通常以移动应用的形式存在,用户在手机上安装相应的身份验证应用程序,如 Google Authenticator、Authy 等。

TOTP 应用的工作原理是,基于当前的时间戳生成一次性密码,该密码在一定时间内有效,然后过期。用户在登录时除了输入常规的用户名和密码外,还需要提供由 TOTP 应用生成的动态验证码,这样即使黑客获得了用户的账号密码,也无法直接登录用户的账户。

TOTP 应用依赖于一个共享的密钥(secret key),该密钥由服务提供商在用户启用双因素认证时生成,并通过二维码或者其他方式提供给用户。用户将该密钥输入到 TOTP 应用中后,应用根据当前的时间戳和密钥算法生成一串动态的验证码,用户在登录时需要输入该验证码方可完成登录。

但是在国内由于一些原因,安装不了 Google Authenticator,但是我们可以安装微软的 Authenticator,不过安装渠道是有限制的,对于安卓手机来说,目前只支持四个应用商城:

  • Samsung
  • Oppo
  • 百度
  • Lenovo

以 Oppo 的应用商城为例,我们在 App 中搜索 Authenticator 之后点击进行安装即可。

安装好之后,我们可以进行 Github 2FA 的认证操作。

  • 首先打开你的 Github,并进入到设置页面中。

  • 在左侧的菜单中找到 Password and authentication

  • 在右侧的主内容区找到 Two-factor authentication,没有开通 2FA 的用户会看到以下内容,我们点击「Enable two-factor authentication」进行开通(如果已经是强制要使用 2FA 了,那会直接看到下图)

  • 然后会弹出来一个对话框,默认方式是 「Setup authenticator app」也就是使用 TOTP 应用,这里会提供一个二维码

  • 此时我们就可以通过刚刚安装的 app 来扫描这个二维码添加这个 Github 账号,选中「已验证 ID」-「扫码 QR 码」即可进行账户添加(这里截不了图,大家可以根据描述来进行操作)。
  • 添加好 Github 账户之后,在 App 的首页就可以看到你 Github 的账户已经被展示出来了,我们点击这条记录然后就可以看到一个展示一次性密码的页面,将这个 6 位数验证码输入到浏览器中 「Verify the code from the app」的输入框中之后,Github 会自动进行验证。
  • 完成上述步骤之后,Github 会返回给我们一个 Recovery Codes,这个 Codes 需要我们点击 「Download」 保存在本地。

  • 最后点击「I have saved my recovery codes」完成设置

后续要登录 Github 除了输入密码之外,还需要通过输入 TOTP 应用提供的 code 来进行登录。

我们也可以进行编辑操作:

点击 「edit」之后,会重复上述展示二维码的步骤,按照之前说的进行操作即可。

如果设置了 2FA,但是在登录时手机 App 被卸载怎么办?

这种场景比较少见,我们在登录时,如果没有 Authentication code,可以使用保存在本地的 Recovery code 进行验证登录:

然后将我们保存在本地的 Recovery code 中的任意一个 code 输入进去即可完成登录。

相关文章
|
11月前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
11月前
|
人工智能 大数据
书海畅谈:云端读书会第1期,与你共同探索AI的无限可能
为帮助大家更好地学习和交流,特推出「书海畅谈|云端读书会第1期」。首期活动时间为2023年10月10日至10月30日,参与者可通过完成阅读任务赢取精美礼品。本次活动精选《10分钟打造专属AI助手》,无论您是技术小白还是行业专家,都能从中受益。点击链接参与活动,与志同道合的朋友一起探索新知,激发灵感,建立联系。欢迎加入钉群:71215028694,与更多小伙伴互动。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
AI 大模型助力客户对话分析
《AI大模型助力客户对话分析》解决方案利用先进AI技术,实现高效客服对话分析。方案详细阐述了NLP和机器学习的应用,涵盖数据准备、模型训练、部署等步骤。然而,在技术细节、案例研究和定制化指导方面仍有改进空间,建议增强技术文档、增加案例研究并提供更多定制化支持。
155 3
|
10月前
|
数据可视化 项目管理 Android开发
从计划到完成:最佳Todolist任务管理软件全指南
在快节奏的工作环境中,高效的任务管理软件成为提升生产力的关键。本文深入评测了几款高人气的Todolist工具,包括板栗看板、Todoist、TickTick、Microsoft To-Do和Trello,从功能、易用性、优缺点等方面进行全面对比,帮助用户根据实际需求选择最适合的任务管理工具。
838 3
|
11月前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
2588 44
|
11月前
单细胞 | 转录因子足迹分析
单细胞 | 转录因子足迹分析
133 20
单细胞 | 转录因子足迹分析
|
11月前
|
存储 数据安全/隐私保护
基于51单片机的6位密码锁设计
【10月更文挑战第11天】多功能电子密码锁系统由AT89C52单片机最小系统、4×4矩阵键盘、LCD1602显示、AT24C02存储模块以及报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能。
325 23
|
11月前
|
存储 JavaScript 前端开发
vue2知识点:箭头函数和普通函数的this指向问题
vue2知识点:箭头函数和普通函数的this指向问题
176 18
|
11月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
134 9
|
11月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的64QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的64QAM调制解调通信系统的设计与实现,包括信号生成、调制、解调和误码率测试。系统在Vivado 2019.2中进行了仿真,通过设置不同SNR值(15、20、25)验证了系统的性能,并展示了相应的星座图。核心程序使用Verilog语言编写,加入了信道噪声模块和误码率统计功能,提升了仿真效率。
199 4