关于本指南
本指南介绍为提高帐户安全性而做出的影响最大的更改。 每个部分都概述了可以对流程进行的更改,以提高安全性。 影响最大的更改列在前面。
风险是什么?
帐户安全性是供应链安全的基础。 如果攻击者能够接管你在 GitHub 上的账户,他们随后就能对你的代码或构建过程进行恶意更改。 因此,你的首要目标应该是让他人难以接管你的账户,以及你所在组织或企业你所在实例中的其他用户的账户。
配置双因素身份验证
注意
自 2023 年 3 月起,GitHub 要求所有在 GitHub.com 上贡献代码的用户启用一种或多种形式的双因素身份验证 (2FA)。 如果你属于符合条件的组,当选择该组进行注册时,将收到一封通知电子邮件,该电子邮件标志着 45 天的 2FA 注册期开始,并且你会看到要求在 GitHub.com 上注册 2FA 的横幅。 如果没有收到通知,则表示你属于需要启用 2FA 的组,但我们强烈建议启用 2FA。
有关 2FA 注册推出的详细信息,请参阅此博客文章。
提高个人帐户或帐户的最佳方式是配置双重身份验证(2FA)。 密码本身可以通过猜测、在另一个遭到入侵的网站上重复使用或社交工程(如网络钓鱼)而泄露。 即使攻击者拥有密码,2FA 也会使帐户更加难以遭到入侵。
为确保安全可靠地访问帐户,最佳做法是始终在帐户上至少注册两个第二因素凭据。 额外的登录凭据可确保即使您无法使用其中一个凭据,也不会无法访问您的账户。
此外,应首选密钥和安全密钥而非身份验证器应用(称为 TOTP 应用),并且避免尽量避免使用短信。 基于短信的 2FA 和 TOTP 应用都容易受到网络钓鱼攻击,也无法提供与密钥和安全密钥相同的保护级别。 根据 NIST 800-63B 数字身份指南,不再建议使用短信。
如果你是组织所有者,则可以要求组织的所有成员启用 2FA。
要了解如何在自己的帐户上启用 2FA,请参阅 配置双重身份验证。 要了解如何在组织中要求 2FA,请参阅 在你的组织中要求进行双因素身份验证。
配置个人帐户
GitHub 支持多个 2FA 选项,尽管其中任何选项都比什么都好,但最安全的选项是 WebAuthn 凭据。 WebAuthn 需要用到身份验证器(例如 FIDO2 硬件安全密钥)、平台身份验证器(如 Windows Hello)、Apple 或 Google 手机 或者密码管理器。 尽管很困难,但有可能对其他形式的 2FA 进行网络钓鱼(例如,有人要求你向他们读取你的 6 位一次性密码)。 但是,WebAuthn 对网络钓鱼的抵抗能力要强得多,因为该协议内置了域作用域限制,这会阻止在冒充登录页面的网站上获取的凭据被用于 GitHub。
设置 2FA 时,应始终下载恢复代码并设置多个 2FA 凭据。 这可确保对帐户的访问不依赖于单个设备。 有关详细信息,请参阅 配置双重身份验证 和 配置双重身份验证恢复方法。
配置组织帐户
如果你是组织所有者,则可以看到哪些用户未启用 2FA,帮助他们进行设置,然后为组织要求 2FA。 要引导你完成此过程,请参阅:
使用 SSH 密钥连接到GitHub
除了登录该网站外,还有其他方式与 GitHub 交互。 许多人使用 SSH 私钥对他们推送到 GitHub 的代码进行身份验证。 有关详细信息,请参阅“关于 SSH”。
与帐户密码一样,如果攻击者能够获取 SSH 私钥,他们可能会模拟你并将恶意代码推送到你拥有写权限的任何存储库。 如果将 SSH 私钥存储在磁盘驱动器上,最好使用通行短语保护它。 有关详细信息,请参阅“使用 SSH 密钥密码”。
另一种方法是在硬件安全密钥上生成 SSH 密钥。 可以使用用于 2FA 的同一密钥。 硬件安全密钥很难远程入侵,因为专用 SSH 密钥保留在硬件上,并且无法直接从软件访问。 有关详细信息,请参阅“生成新的 SSH 密钥并将其添加到 ssh-agent”。