Удаленные пользователи подключаются к нескольким службам в нашем главном офисе через Интернет с помощью 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»: доверие при первом использовании.
Но ничто из этого не имеет ничего общего с паролями против ключей, за исключением того, что и ключи, и пароли могут быть украдены с помощью этой атаки - в некотором смысле это уязвимость, о которой вы просите.
Есть (как минимум) три причины, по которым пароли хуже ключей:
Кроме того, ключи ssh удобны при использовании с чем-то вроде ssh-agent
- вы получаете беспроблемную операцию подключения без повторной аутентификации каждый раз, сохраняя при этом разумную степень безопасности.
Нет значительного преимущества в том, чтобы запрашивать и то, и другое, поскольку тот, у кого достаточно доступа для кражи закрытого ключа, может довольно легко украсть пароль пользователя. Если вам нужна дополнительная безопасность, подумайте о двухфакторной системе аутентификации, такой как RSA SecurID или WiKID.
вы действительно спрашиваете: «На один фактор лучше, чем на другой», тема - многофакторная аутентификация, и вам действительно рекомендуется изучить эту тему.
Обычно «фактор» - это то, что вы знаете (пароль), что-то, что у вас есть (файл ssh или карта для нажатия клавиш), или что-то, что вы есть (отпечаток пальца).
Один не лучше другого, они дополняют друг друга. Потеря компакт-диска с ключевым файлом так же плохо, как разглашение пароля, если это все, что вам нужно. Для защищенных сред обычно используется двухфакторная аутентификация.