Назад | Перейти на главную страницу

Является ли обмен ключами SSH более безопасным, чем аутентификация по паролю?

Удаленные пользователи подключаются к нескольким службам в нашем главном офисе через Интернет с помощью SSH. Пароль SSH синхронизируется с их учетной записью LAN A / D.

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

Мой вопрос, вероятно, можно было бы переформулировать следующим образом: есть ли какая-нибудь уязвимость в протоколе аутентификации паролей SSH?

Это сообщение заставляет меня сомневаться:

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

Сообщение, которое вы видите, - это отдельная проблема. Он просит вас подтвердить, что хост, к которому вы подключаетесь, действительно тот, на который вы рассчитываете. С сервера вы можете получить отпечаток пальца, запустив ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub. Затем, когда вы подключаетесь удаленно в первый раз, вы можете убедиться, что отпечатки пальцев совпадают.

Ключи хоста, показанные здесь в действии, решают проблему человек посередине атаки - возможно, DNS был подорван, и вы подключаетесь к машине конкурента, а не к своей собственной. Эта машина собирает ваши учетные данные и прозрачно перенаправляет ваше соединение на настоящий сервер, крадя вашу информацию без вашего ведома. Проверка совпадения ключей хоста предотвращает это, если злоумышленник не украл открытый ключ вашего сервера.

Однако остается проблема - как узнать, какой ключ правильный? После первого подключения открытый ключ сохраняется в вашем ~/.ssh/known_hosts файл, поэтому последующие подключения в порядке. Но в первый раз вам либо нужен какой-то внеполосный способ получения отпечатка пальца, либо вы следуете модели «TOFU»: доверие при первом использовании.

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

Есть (как минимум) три причины, по которым пароли хуже ключей:

  1. Их можно использовать методом грубой силы. Типичный выбираемый пользователем 8-значный пароль имеет около 30 бит энтропии угадывания. Пара открытого / закрытого ключей ssh ​​имеет длину 1024 бит или больше. По сути, невозможно подобрать ключ ssh, но автоматическое угадывание пароля происходит постоянно.
  2. Они могут быть тупыми. Пользователи обычно выбирают ужасные пароли даже с установленными ограничениями и, как правило, используют более сложные пароли в нескольких местах. Это, очевидно, облегчает атаки.
  3. Пароли можно украсть удаленно. Когда вы используете SSH, пароль шифруется по сети, но очень часто ssh-сервер заменяется в скомпрометированных системах на сервер, который регистрирует все пароли. При использовании ключей закрытый ключ остается в локальной системе и никогда не пересылается, поэтому его нельзя украсть, не поставив под угрозу клиентский компьютер.

Кроме того, ключи ssh удобны при использовании с чем-то вроде ssh-agent - вы получаете беспроблемную операцию подключения без повторной аутентификации каждый раз, сохраняя при этом разумную степень безопасности.

Нет значительного преимущества в том, чтобы запрашивать и то, и другое, поскольку тот, у кого достаточно доступа для кражи закрытого ключа, может довольно легко украсть пароль пользователя. Если вам нужна дополнительная безопасность, подумайте о двухфакторной системе аутентификации, такой как RSA SecurID или WiKID.

вы действительно спрашиваете: «На один фактор лучше, чем на другой», тема - многофакторная аутентификация, и вам действительно рекомендуется изучить эту тему.

Обычно «фактор» - это то, что вы знаете (пароль), что-то, что у вас есть (файл ssh или карта для нажатия клавиш), или что-то, что вы есть (отпечаток пальца).

Один не лучше другого, они дополняют друг друга. Потеря компакт-диска с ключевым файлом так же плохо, как разглашение пароля, если это все, что вам нужно. Для защищенных сред обычно используется двухфакторная аутентификация.