SSH中的“无法建立主机的真实性”消息是否反映出安全风险?


19

每当我从计算机连接到新的SSH服务器时,都会收到以下消息:

The authenticity of host '[censored]:censored ([0.0.0.0]:censored)' can't be established.
RSA key fingerprint is SHA256:censored.
Are you sure you want to continue connecting (yes/no)?

SSH为什么问我这个?

我有连接到随机SSH服务器的风险吗?

还是只是为了确保您要连接的服务器未被黑客入侵?


您是否使用密码或密钥登录?
kasperd

1
有几种比首次使用信任更好的方式来分发主机密钥。这是一个相对不安全的工作流程。主机密钥可以通过LDAP分发;通过签名的DNS条目;可以与SSH证书颁发机构签署;等这就是说-你现在看到的表示您的网站配置的“懒办法”(几乎都是!),这比将进一步长度做正确的事情不太安全。
查尔斯·达菲

Answers:


29

之所以问您,是因为它以前从未连接过该主机。

如果您在安全的环境中,那么您将知道远程主机的指纹,并会在第一个连接上进行比较-如果指纹与您知道的指纹相匹配,那就太好了。如果您处于不太安全的环境中,则可以在首次连接时接受它。

一旦您说出“ 是的,我信任该主机密钥,并希望将其与该主机名/ IP关联 ”,SSH客户端便会为您记住这一点...如果出于任何原因(重新安装/新主机密钥/新中间的机器/人)密钥在后续连接中不匹配,您将看到如下警告:

$ ssh baloo
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Su0uy/4BcRcpmyLfxO9ndlcda52F8uct6yWNp7Sa92M.
Please contact your system administrator.
Add correct host key in /home/attie/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/attie/.ssh/known_hosts:65
  remove with:
  ssh-keygen -f "/home/attie/.ssh/known_hosts" -R baloo
ECDSA host key for baloo has changed and you have requested strict checking.
Host key verification failed.

在这种情况下,如果您知道确实更改了远程主机,则可以继续...可能会验证指纹正确。

如果不确定,或者知道远程主机不应该更改,那么它将提示您潜在的攻击。


4
这就是TOFU原则:首次使用时的信任
Patrick Mevzek,

2
同意,TOFU并不是一个好主意-尤其是如果您需要确定...(您的意见和方法)(应该)取决于您的线程模型。
Attie

1
但是,有关此方法的有效性,请参阅cs.auckland.ac.nz/~pgut001/pubs/defending.pdf,第45-48页。
Joker_vD

有趣的幻灯片,感谢分享@Joker_vD
Attie

1
@PatrickMevzek问题是我们的整个计算机“信任”模型从根本上讲是布尔值,而在现实世界中,实用的信任模型(例如我们在人际关系中直观使用的模型)更像是有条件概率:给定一个实体的债权,我们有一定程度的信心,该实体将追随它,并且我们按比例限制了我们承受的风险。
mtraceur

9

当您收到此消息时,SSH只是说:“我以前从未见过这台计算机,所以我不能确定它是它所说的那个人。您信任它吗?” 此时,您可以说您信任它,并且将来您的计算机会记住并且不再询问您。

理想情况下,要信任它,您应该手动比较服务器上与该密钥一起提供的密钥(因为您可以通过检查您认为它所属的人是否可以实际生成公共密钥来信任GPG密钥)。尽管实际上人们对此并不打扰(至少据我所知)。

真正的好处来自您随后每次连接到服务器的时间。如果SSH抱怨您已经信任的服务器不是同一台服务器,那么您很可能成为MiTM攻击的受害者。

总体而言,如果您确信网络上没有“中间人”攻击,那么这是您第一次连接到计算机,那么您应该放心接受密钥。(尽管如果您正在执行某项最高机密的政府任务,那么在连接之前,可能会要求系统管理员验证指纹)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.