是否应该在服务帐户上启用 2FA?

信息安全 多因素
2021-08-29 20:14:31

见标题。我现在正在参与安全审计,我想知道是否应该在不仅是人类登录帐户而且在服务帐户(非人类帐户)上启用 2FA?如果是这样,这通常是如何管理的?肯定还有人在另一端确认 2FA 对吧?这主要是设置时的一次性事情,还是他们需要定期重新确认 2FA 请求?

4个回答

要求对服务帐户进行 MFA 的问题在于,它必须完全自动化。例如,基于时间的 OTP

但由于此 OTP 基于秘密种子,因此它实际上只是存储在服务帐户可用配置中的另一个密码。因此,除了密码等单一因素之外,它没有提供真正的额外安全性。

无需人工干预,多因素身份验证当然是可能的。

但是,它需要帧挑战。

与人打交道时,验证的三个典型因素是您知道的东西(密码)、您拥有的东西(TOTP 设备/程序、带有 SMS 的电话、访问电子邮件帐户等)和您的身份(生物识别)。您不能将来自同一因素的不同事物组合起来并称之为多因素身份验证。即指纹和视网膜扫描不是2FA,但指纹和密码是2FA。

生物识别技术无法在网络上运行,无论您是在扫描人的指纹还是在给计算机“指纹”,因为除非您有一个值得信赖的代理,否则您无法验证客户端是否在撒谎。“客户掌握在敌人手中。” -- Raph Koster(游戏设计师,不是安全专家,但建议得到了很好的应用。)如果没有那个受信任的代理,生物识别技术只能用于识别,不能用于身份验证(*)。

下一个身份验证因素,即您拥有的东西,通常与您在计算机时所知道的东西没有区别。TOTP 种子、密码、会话令牌、RSA 私钥等只是计算机的字节,并且在某些时候将驻留在 RAM 中。人类可以摆脱 TOTP 种子、会话令牌、加密密钥等作为第二个因素,因为人类不太可能记住这些,所以他们需要访问单独的硬件(或至少是写下来的东西)。

但是,有些事情是计算机无法提前“知道”的。如果您有一个硬件设备执行加密操作并以无法复制的方式将私钥存储在其中(没有明显的篡改证据),例如 U2F 加密狗,那么这就是计算机拥有但没有的东西'不知道。同样,带外发送的信息也可以被认为是计算机拥有的东西,而不是它知道的东西。例如,可以通过电子邮件、FTPd 或 SMS 发送令牌。根据您的威胁模型,简单地在不同的端口上打开连接可能足以欺骗自动监视工具,尽管我不相信它会对抗活跃的窃听者。

说到威胁模型,当前针对使用密码的用户的威胁模型不仅仅是一个因素。威胁模型是大多数用户重复使用密码,使用低熵密码,并且几乎每个人的数据都包含在多个数据泄露中,包括许多从未检测到或报告的数据泄露。由于计算机在记住非常长且真正随机的密码时没有任何问题,并且可以记住给它们的每个密码,因此为每个服务帐户设置一个唯一的高熵密码是微不足道的。

脚注:

(*) 鉴定不同于鉴定,我可以鉴定自己是火星女王,但不能鉴定为火星女王。用户名是标识,但用户名和密码是身份验证。指纹是身份识别,但由监督该过程的受信任代理获取的指纹是身份验证。

网络位置作为“你是什么”

提高需要自动连接到特定帐户的服务的安全性的一种方法是通过严格的网络限制来增强安全身份验证(例如 tls/ssh 客户端证书) - 如果自动化服务需要每天从系统 A 连接两次到系统 B ,那么系统 B 不仅应该对请求进行身份验证,而且应该拒绝该服务/端口/帐户的任何不是来自系统 A 的 IP 地址的连接。

不可复制的凭据

处理自动化服务秘密的另一种方法是让它们不可复制,即运行业务逻辑的软件不能完全访问这些凭证,而只能链接到 HSM 上的“签名系统”或“软件” -HSM”,通常不允许提取秘密,而只能以受限的方式使用它们。在这种情况下,如果主系统被攻破,它仍然无法随意复制机密以供以后使用,它们只能实时访问它们,而无法绕过日志记录、速率限制和其他限制。

不需要服务帐户的 2FA,如果您实际设置它会很痛苦。

想象一下,您可能有大约 100 个服务帐户,每次系统关闭并且您必须重新进行身份验证时,您都必须每次都自己确认 2FA,如果您不这样做,则 2FA 将是无意义。

保护服务帐户的方法:

我真的不确定审计员提出这个要求的目的是什么,但是如果您向他们提供足够的证据证明您的服务帐户是安全的,那么您应该没问题。