双重控制有哪些可能的实现方式?

信息安全 验证 密码管理 密码策略 远程桌面
2021-08-21 03:07:47

组织要求员工在某些情况下使用 2 人身份验证。也就是说,当访问例如服务器时,应该使用来自 2 个人的秘密知识进行身份验证。任何人都不应该单独访问服务器。

问题:此要求的哪些实现是可能的?

这是一个 Windows 设置。

我能想到的唯一实现如下:两个人都连接到机器(比如远程),第一个人输入他知道的密码的第一部分,第二个人输入后半部分。

注意:不要与两因素身份验证相混淆。

3个回答

一种方法是使用临时密码和密码管理应用程序。该过程可以像这样工作:

  1. 管理员在特定时间窗口提交访问服务器的请求
  2. 单独的管理员批准此请求
  3. 请求获得批准后,从时间窗口开始,第一个管理员现在可以访问服务器的临时密码
  4. 管理员使用临时密码正常登录
  5. 在时间窗口结束时,临时密码自动重置为新值

我见过这样的系统,但它们都使用了一些定制的脚本,基于现有的请求管理系统。我不知道在哪里可以下载这样的应用程序。

当然,一旦管理员拥有临时密码,他们就可以单手访问服务器。如果您需要整个过程中的两人规则 - 必须有两个管理员坐在一台计算机上才能执行工作 - 这种方法将行不通。

我看到的一个变体是操作人员持有一个安全的 ID 令牌。当管理员需要登录服务器时,他们会提供一个密码(只有他们知道),并致电操作台以从安全 ID 令牌中获取代码。我不相信这种安排是一个好主意,但它确实被使用了。

从安全角度来看,使用相同密码的两个人(每个人知道一半)不是一个好主意,因为每个人都知道密码。这将使他们用已知攻击(蛮力,字典,..)猜测另一半的机会减少一半。

我建议Shamir 的秘密分享每个人都有一个密码,只有将它们组合起来才能生成一个共享的秘密。每次使用它们时都必须更改两个密码。

除了@rda 提到的Shamir Secret Sharing,或@paj28 的带外授权机制的想法,您还可以考虑一个更简单的解决方案,它不需要大量的编码或设置:

使用 2 因素身份验证,为每个人提供不同的因素。
例如,你给一个硬件令牌,给另一个密码。这种解决方案的优点是它甚至可以非常简单地直接应用于 Windows 访问。当然,弱点与在任何地方使用单一因素相同 - 没有密码的硬件令牌通常很容易被盗。为了解决这个问题,应该还有另一个因素,例如,有些令牌需要 PIN(与操作系统密码分开)。
另一种类似的解决方案是,一个拥有操作系统密码,另一个拥有物理密钥(或生物特征)以进入服务器所在的数据中心。或者一个有密码,另一个被允许通过防火墙。或操作系统用户与应用程序用户(并验证它们是否匹配)。

其中大多数设置起来非常简单,但可能不如 Shamir 强大或严格。这实际上取决于具体场景以及您有什么要求和限制。