关于本指南
本指南介绍了您可以为提高帐户安全而做出的影响最大的更改。每个部分都概述了您可以对流程进行的更改以提高安全性。影响最大的更改将首先列出。
风险是什么?
帐户安全是供应链安全的基础。如果攻击者可以接管您在 GitHub 上的帐户,他们就可以对您的代码或构建流程进行恶意更改。因此,您的首要目标应该是使他人难以接管您的帐户以及您组织中其他成员的帐户。
配置双因素身份验证
注意
截至 2023 年 3 月,GitHub 要求所有在 GitHub.com 上贡献代码的用户启用一种或多种形式的双因素身份验证 (2FA)。如果您属于符合条件的群体,则在选择该群体进行注册时,您会收到一封通知电子邮件,这标志着 45 天 2FA 注册期的开始,并且您会在 GitHub.com 上看到要求您注册 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 代理”。