Отражает ли сообщение «подлинность хоста не может быть установлено» в 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-серверу?

Или это просто для того, чтобы убедиться, что сервер, к которому вы подключаетесь, не был взломан?

Чарльз Даффи
источник
Вы используете пароль или ключ для входа?
Касперд
1
Существует несколько лучших способов распространения ключей хоста, чем доверять при первом использовании; это относительно небезопасный рабочий процесс. Ключи хоста могут распространяться через LDAP; через подписанные записи DNS; может быть подписан с центрами сертификации SSH; и т.д. Что сказать - то , что вы видите здесь , указывает на то, что ваш сайт настроен «ленивый путь» (который почти все!), который является менее безопасным , чем идти на дальнейшие длины , чтобы сделать все правильно.
Чарльз Даффи

Ответы:

29

Он спрашивает вас, потому что он никогда не был связан с этим хостом раньше.

Если вы находитесь в защищенной среде, то вы узнаете отпечаток удаленного хоста и сравните его при первом подключении - если отпечаток совпадает с тем, который, как вы знаете, должен быть, то отлично. Если вы находитесь в менее защищенной среде, вы можете просто принять ее при первом подключении.

Как только вы сказали « Да, я доверяю этому ключу хоста и хочу, чтобы он был связан с этим именем хоста / IP », SSH-клиент запомнит это для вас ... Если по какой-либо причине (переустановите / новые ключи хоста / new машина / человек посередине) ключ не совпадает при последующем соединении, вы увидите предупреждение, как показано ниже:

$ 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.

В этой ситуации, если вы знаете, что удаленный хост действительно был изменен, вы можете продолжить ... возможно, проверка правильности отпечатка пальца.

Если вы не уверены или знаете, что удаленный хост не должен был измениться, он подскажет вам потенциальную атаку.

Attie
источник
4
Это принцип TOFU: доверие при первом использовании
Патрик Мевзек
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.

В общем, если вы находитесь в сети, в которой вы уверены, что атака «Человек в середине» не происходит, и вы подключаетесь к компьютеру впервые, тогда вы должны принять ключ. (хотя, если вы работаете в какой-то сверхсекретной правительственной миссии, возможно, попросите системного администратора проверить отпечаток пальца перед подключением)

KNejad
источник