Skip to main content

确保帐户安全的最佳做法

关于如何保护可以访问你的软件供应链的帐户的指导。

关于本指南

本指南介绍为提高帐户安全性而做出的影响最大的更改。 每个部分都概述了可以对流程进行的更改,以提高安全性。 影响最大的更改列在前面。

风险是什么?

帐户安全性是供应链安全的基础。 如果攻击者可以在 GitHub 上接管你的帐户,则可以对代码或生成过程进行恶意更改。 因此,第一个目标应该是让某人难以接管你的帐户以及你的组织的其他成员的帐户。

配置双因素身份验证

Note

自 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。 若要引导你完成此过程,请参阅:

  1. 查看组织中的用户是否已启用 2FA
  2. 准备在组织中要求双重身份验证
  3. 在你的组织中要求进行双因素身份验证

使用 SSH 密钥连接到 GitHub

除了登录到该网站之外,还有其他方法可以与 GitHub 进行交互。 许多人使用 SSH 私钥授权推送到 GitHub 的代码。 有关详细信息,请参阅“关于 SSH”。

与帐户密码一样,如果攻击者能够获取 SSH 私钥,他们可能会模拟你并将恶意代码推送到你拥有写权限的任何存储库。 如果将 SSH 私钥存储在磁盘驱动器上,最好使用通行短语保护它。 有关详细信息,请参阅“使用 SSH 密钥密码”。

另一种方法是在硬件安全密钥上生成 SSH 密钥。 可以使用用于 2FA 的同一密钥。 硬件安全密钥很难远程入侵,因为专用 SSH 密钥保留在硬件上,并且无法直接从软件访问。 有关详细信息,请参阅“生成新的 SSH 密钥并将其添加到 ssh-agent”。

后续步骤