12 月 15 日,GitHub 在官方博客宣布:从 2021 年 8 月 13 日开始,在 GitHub.com 上执行 Git 操作时,不再接受以账户密码的形式完成身份验证。
换言之,如果此后,开发者再使用密码去完成身份验证,那将无法通过,也就不能进一步执行 Git 操作。
据悉,在今年 7 月,GitHub 宣布将在所有需要身份验证的 Git 操作中使用基于令牌的验证机制,比如个人访问、OAuth 或者 GitHub App 安装令牌。
哪些工作流受到影响?
命令行 Git 访问
使用 Git 的桌面应用程序(GitHub Desktop 不受影响)
使用您的密码直接访问 GitHub.com 上各 Git repo 的一切应用程序/服务
以下客户不受此项变更的影响:
如果您为账户启用了双因素身份验证(2FA),则代表已经在使用基于令牌或 SSH 的方式进行身份验证。
如果您使用 GitHub Enterprise Server,此本地产品尚未就身份验证做出更改。
如果您已经拥有GitHub App,其之前就已经不支持密码验证方式。
变更背景
上周,Github 发布了 2020 年度开发者报告。报告显示,自 2008 年推出以来,GitHub 已经成为互联网上最大的项目管理和开源协作平台,到今年为止,社区已经拥有 5600 万开发者,去年这个数据是 4000 万。假设保持这样的增长速率,GitHub 用户预计将在 2025 年达到一个亿。2020 年,开发人员共创建了 6000 万个新 repo 库,相比去年增加了 35%。
毫无疑问,随着 GitHub 规模和社区影响力的不断变大,安全变得越来越重要。为此,GitHub 推出了一系列安全增强功能,来帮助用户提升安全水平,比如双因素身份验证、登录警报、认证设备、防止使用已泄露的密码以及支持 WebAuth 等等。在这些功能的支持下,攻击者将更难于获得已经被用于多个网站的重复密码,无法单纯借此完成密码撞库。
但是,出于一些历史原因,未启用双因素身份验证的客户仍能够单纯使用 GitHub 用户名及密码以验证 Git 及 API 操作。
在 2021 年 8 月 13 日之后,当针对 Git 操作进行身份验证时,GitHub 将不再接受纯账户加密码形式,即强制要求您使用基于令牌的认证机制。
GitHub 表示:
您可以使用个人访问令牌(对于开发人员)、OAuth 或者 GitHub App 安装令牌(对于集成商)在 GitHub.com 上完成一切需要身份验证的 Git 操作。当然,您也可以继续使用 SSH 密钥。
据悉,与基于密码的传统身份验证机制相比,令牌保护具有以下安全优势:
唯一——令牌将权限于 GitHub 使用,可按使用次数或按设备生成。
可撤销——令牌可以随时被单独撤销,且无需更新未受影响的其他凭证。
受限——令牌的使用范围可以得到严重控制,例如仅允许执行用例中需要的访问活动。
随机——令牌的复杂度远高于您需要硬性记忆并定期输入的简单密码,因此不受字典或暴力破解等行为的影响。
开发者当下需要做些什么?
对于开发者们,如果您正在使用密码以通过 GitHub.com 验证 Git 操作,则必须在 2021 年 8 月 13 日之前开始通过 HTTPS(推荐)或 SSH 密钥使用个人访问令牌,以避免业务受到影响。如果收到警告,则代表您正在使用已经过时的第三方集成,请尽快将客户端更新为最新版本。
对于集成商,您必须在 2021 年 8 月 13 日之前使用 Web 或设备授权流程对集成方案进行身份验证,以避免业务受到影响。关于更多详细信息,请参阅授权OAuth应用以及开发者博客上的相关公告。
启用双因素身份验证
要确保您的账户不允许基于密码的身份验证,请立即为账户启用双因素身份验证机制。具体来讲,您需要通过 Git 及第三方集成将个人访问令牌应用于一切经过身份验证的操作。
两轮预演
为了确保所有受到影响的客户都明确知晓本次验证机制变更,我们计划通过两轮预演暂停对密码认证的支持,届时用户将无法使用密码执行 Git 操作。预演活动计划于以下日期及时段内进行:
2021 年 6 月 30 日
7:00 AM UTC – 10:00 AM UTC
4:00 PM UTC – 7:00 PM UTC
2021 年 7 月 28 日
7:00 AM UTC – 10:00 AM UTC
4:00 PM UTC – 7:00 PM UTC
时间表
今天——如果您目前正在使用密码通过 GitHub.com 对 Git 操作进行身份验证,则将很快收到一封电子邮件,敦促您更新身份验证方法或第三方客户端。
2021 年 6 月 30 日及 7 月 28 日——所有 Git 操作都将暂时性要求使用令牌(或 SSH 密钥)验证,以鼓励受到影响的客户及时更新其身份验证方法。
2021 年 8 月 13 日——全部 Git 操作都需要使用令牌(或 SSH 密钥)完成身份验证。
参考文章:
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论