GitHub 废除基于密码的 Git 身份验证
近日,代码托管平台 GitHub 于当地时间 8 月 13 日周五这天正式废除了基于密码的 Git 身份验证。从 09:00 PST (PST是北美太平洋标准时间,北京时间 14 日 0 点)开始,使用 GitHub 开发者将需要切换到基于令牌的身份验证去执行 Git 操作,基于令牌的认证包括个人接入、OAuth、SSH Key 活 GitHub App 安装令牌。
此前在 2020 年 12 月 15日 ,GitHub 就在官方博客上宣布:” 从 2021 年 8 月 13 日开始,在 GitHub.com 上执行 Git 操作时,不再接受以账户密码的形式完成身份验证。”
更换身份验证方式的原因
实际上早在2020年7月30日,GitHub也曾表示:“ 将在所有需要身份验证的 Git 操作中使用基于令牌的验证机制,比如个人访问、OAuth 或者 GitHub App 安装令牌。如果用户目前正在使用密码通过 GitHub.com 对 Git 操作进行身份验证,则将很快收到一封电子邮件,敦促用户更新身份验证方法或第三方客户端。”
同时官方也给出了更换身份验证方式的时间安排:
2020 年 7 月 30 日——如果用户现在使用密码通过 API进行身份验证,可能会收到一封电子邮件,敦促用户更新身份验证方法或第三方客户端。
2020 年9 月 30 日和 10 月 28 日——所有 API 操作都将暂时需要个人访问或 OAuth 令牌,以鼓励用户更新其身份验证方法。
2020 年11 月 13 日——所有通过 REST API进行身份验证的操作都需要个人访问或 OAuth 令牌(使用 GraphQL API 进行身份验证已经需要个人访问令牌)。
2021 年中期–——所有经过身份验证的 Git 操作都需要个人访问权限或 OAuth 令牌。
GitHub 官方认为,近年来受益于 GitHub.com 的许多安全增强功能,例如双重身份验证、登录警报、设备保护、防止使用受损密码和WebAuthn 支持。这些功能使攻击者很难在多个网站上获取重复使用的密码,并使用它来访问用户的 GitHub 帐户。尽管这些安全验证方式有了一些改进,但是由于历史原因,未启用双重身份验证的客户仍能够使用其 GitHub 用户名和密码继续对 Git 和 API 操作进行身份验证,导致这部分用户账户安全受到威胁。
而且GitHub也认为与基于密码的身份验证相比,令牌的使用提供了许多安全优势:
唯一性——令牌特定于 GitHub,可按使用次数或按设备生成。
可撤销——可以随时单独撤销令牌,不需要更新未受影响的凭据
有限性——令牌的使用范围严格控制,仅允许执行用例中需要的访问活动
随机性——令牌的复杂度远高于用户设计的简单密码,因此不受暴力破解等行为的影响。
启动最新身份验证方式的影响
工作流程受影响
命令行 Git 访问。
使用 Git 的桌面应用程序(GitHub Desktop 不受影响)。
使用用户的密码直接访问 GitHub.com 上的 Git 存储库的任何应用程序/服务。
不受更改的影响:
如果用户的帐户启用了双重身份验证,需要使用基于令牌或基于 SSH 的身份验证。
如果用户使用 GitHub Enterprise Server,对此不受影响。
如果用户维护一个GitHub App,GitHub Apps 目前不支持密码认证。
用户需要做什么
对于开发人员,如果用户现在需要使用密码对 GitHub.com 的 Git 操作进行身份验证,则必须在 2021 年 8 月 13 日之前通过HTTPS(推荐)或 SSH 密钥开始使用个人访问令牌,以避免中断。如果用户收到邮件提醒,提示使用的是过时的第三方集成软件,则应将客户端更新到最新版本。
对于集成商,必须在2021 年 8 月 13 日之前使用网络或设备授权流程对集成进行身份验证,以避免中断。有关更多信息,请参阅授OAuth 应用程序和开发者博客上的公告。
可以启用双重身份验证,如果用户想确保自己帐户不允许基于密码的身份验证,可以立即启用双重身份验证。这将要求用户通过 Git 和第三方集成对所有经过身份验证的操作使用个人访问令牌。
参考链接:
https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/