关于本指南
本指南描述了您可以采取的最高影响力的更改,以提升账户安全性。每个章节概述了您可以在流程中进行的改进安全性的更改。影响最大的改进会首先列出。
风险是什么?
账户安全是您供应链安全的基石。如果攻击者能够接管您在 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-agent。