我在多因素身份验证(例如维基百科或这里)上看到的大部分内容似乎都是以人为中心的。即它是与机器交互的人,并且这些因素与向机器验证人的身份相关联。这些因素与一个人有关:
- 你知道的东西(pin、密码等)
- 你有的东西(代币、手机等)
- 你是什么(语音识别,指纹等
- 你在的某个地方(位置 - 你在你应该在的地方,或者你在某个“不合适”或“不那么受信任”的地方)
如果所有这些,“你”就是一个人。单因素身份验证通常是“您知道的事情”,并且由于键盘记录器、恶意软件、字典攻击以及针对持有密码的服务器的所有漏洞的普遍存在,现在被认为不太安全。因此,安全社区提出了这些其他因素来降低风险。
机器对机器通信是否存在多种因素?我们的大多数机器通过 ssh 进行通信并且是“单一因素”(机器“知道”的东西)。因为它是一台机器,所以使用“强”键(即长键)。由于它们的长度,它们不太容易受到字典攻击。然而,它仍然是“单一因素”——一旦您知道密码,系统就可能受到威胁。
iptables 和防火墙规则可以被视为类似于“您所在的地方”的第二个因素。适当的限制有助于限制攻击面。
@tom-leek 指出“对人的威胁是模仿”和“对机器的威胁是颠覆”之间的区别。一旦电脑被颠覆,“电脑能做什么,它就能做什么”。我对那台被颠覆的原始计算机之外的涟漪感兴趣。即使我破坏了被破坏的计算机(在云应用程序中很容易做到),攻击者仍然知道 ssh 密钥并且可以从其他机器使用它们(即,这是一种模拟威胁)。我相信减轻这种情况的标准方法是拒绝该公共 ssh 密钥。这会影响到许多其他机器,我想知道是否还有其他因素可以帮助解决“冒充”威胁。
机器对机器身份验证中还有哪些其他“因素”?