安全不是绝对的,不是在真空中拥有和评估的财产。相反,当你问我安全吗?第一个反应是针对什么威胁模型。你写:
我主要只关心那些不知道我们没有什么值得窃取的人的远程攻击。
很公平,这是一个很好的澄清。在这种情况下,让我们检查您的其他问题。
可以肯定,公钥很长,因此暴力攻击几乎是不可能的,但是,使用具有强度强制的长密码(12+ 字符,需要所有类),暴力攻击成功的可能性已经足够遥远了?
你滑过如何强制使用如此复杂的密码的问题;在现代 UNIX 系统上更改密码的方法有很多种,您假设可以拦截所有这些方法。一次失败,一个弱密码,你的系统就被渗透了。但在这种情况下更喜欢密码的主要原因是我们今天在互联网上看到了大量的自动密码猜测器。我不知道当前尝试随机私钥的任何攻击,并且(除非进一步发现系统的弱密钥生成)我不希望看到任何攻击。使用密钥对使您远离攻击者,从而远离攻击;从中可以获得带宽和 CPU 收益,以及安全性收益。
关于可能安装在用户远程计算机上的键盘记录器,为什么这比从硬盘驱动器中取出 pubkey 更危险?
对我来说,键盘记录器的问题主要与第三方机器有关,例如网吧中的机器。使用密码验证,任何用户都可以从任何机器登录,有些人会;迟早,他们会从不值得信赖的机器上执行此操作。也可以使用公钥来做到这一点,但这样做需要一些技巧,这通常伴随着风险意识的提高。此外,我们在野外看到键盘记录器;我认为我们还没有看到很多恶意软件会在临时本地存储上寻找密钥对,然后监视网络流以查看使用密钥对的远程端点。
我听到的另一件事是担心受感染的服务器会窃取用户密码。
这一切都不是孤立发生的。密码盗窃对攻击者很有用,因为人们经常在别处使用相同的密码。如果您的用户确实需要一个 12 字符的密码,并且对选择有严格的要求,那么至少他们中的一些人可能认为这是他们的“超级机密”密码,适用于他们所在的所有需要密码的系统非常强的一个;您的安全性现在仅与该池中所有用户的维护最差的系统一样强大,而且我并不热衷于信任其他所有人(这就是为什么我自己的服务器需要密钥对或硬件令牌+密码用于远程登录)。
还有其他次要问题,例如传递代理模型中使用的密钥对,可以处理从一个远程系统到另一个系统的登录,而无需将私有材料“通过网络”发送到任何一个,但希望上述分析能给您一些思考.