GitHub新规:Git操作的身份验证将放弃密码,改用令牌或SSH密钥

万佳、核子可乐
上周,Github发布了2020年度开发者报告。报告显示,自2008年推出以来,GitHub已经成为互联网上最大的项目管理和开源协作平台,到今年为止,社区已经拥有5600万开发者,去年这个数据是4000万。假设保持这样的增长速率,GitHub用户预计将在2025年达到一个亿。2020年,开发人员共创建了6000万个新repo库,相比去年增加了35%。

1_看图王.png11.png

12月15日,GitHub在官方博客宣布:

从2021年8月13日开始,在GitHub.com上执行Git操作时,不再接受以账户密码的形式完成身份验证。

换言之,如果此后,开发者再使用密码去完成身份验证,那将无法通过,也就不能进一步执行Git操作。

据悉,在今年7月,GitHub宣布将在所有需要身份验证的Git操作中使用基于令牌的验证机制,比如个人访问、OAuth或者GitHub App安装令牌。如果您目前正在使用密码通过GitHub.com对Git操作进行身份验证,则将很快收到一封电子邮件,敦促您更新身份验证方法或第三方客户端。

1

哪些工作流受到影响?

命令行Git访问

使用Git的桌面应用程序(GitHub Desktop不受影响)

使用您的密码直接访问GitHub.com上各Git repo的一切应用程序/服务

以下客户不受此项变更的影响:

如果您为账户启用了双因素身份验证(2FA),则代表已经在使用基于令牌或SSH的方式进行身份验证。

如果您使用GitHub Enterprise Server,此本地产品尚未就身份验证做出更改。

如果您已经拥有GitHub App,其之前就已经不支持密码验证方式。

https://docs.github.com/en/developers/apps/about-apps#about-github-apps

2

变更背景

上周,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使用,可按使用次数或按设备生成。

可撤销——令牌可以随时被单独撤销,且无需更新未受影响的其他凭证。

受限——令牌的使用范围可以得到严重控制,例如仅允许执行用例中需要的访问活动。

随机——令牌的复杂度远高于您需要硬性记忆并定期输入的简单密码,因此不受字典或暴力破解等行为的影响。

3

开发者当下需要做些什么?

对于开发者们,如果您正在使用密码以通过GitHub.com验证Git操作,则必须在2021年8月13日之前开始通过HTTPS(推荐)或SSH密钥使用个人访问令牌,以避免业务受到影响。如果收到警告,则代表您正在使用已经过时的第三方集成,请尽快将客户端更新为最新版本。

对于集成商,您必须在2021年8月13日之前使用Web或设备授权流程对集成方案进行身份验证,以避免业务受到影响。关于更多详细信息,请参阅授权OAuth应用以及开发者博客上的相关公告。

https://docs.github.com/en/developers/apps/authorizing-oauth-apps

https://developer.github.com/changes/2020-02-14-deprecating-password-auth/

启用双因素身份验证

要确保您的账户不允许基于密码的身份验证,请立即为账户启用双因素身份验证机制。具体来讲,您需要通过Git及第三方集成将个人访问令牌应用于一切经过身份验证的操作。

4

两轮预演

为了确保所有受到影响的客户都明确知晓本次验证机制变更,GitHub计划通过两轮预演暂停对密码认证的支持,届时用户将无法使用密码执行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/

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论