Неиспользование SSH Pubkey Authentication - серьезный недостаток безопасности по сравнению с обычной аутентификацией по паролю.
Как использование PubkeyAuthentication будет более безопасным, чем использование PasswordAuthentication, учитывая следующие факты:
- Порт SSH по умолчанию перенесен со своего порта по умолчанию
- Брандмауэр заносит в черный список IP после нескольких неудачных попыток
- Пароль выглядит довольно сложным (14-20 бессмысленных символов)
3 ответа
- Ваш пароль имеет 12 символов, что при 6 битах на символ составляет 72 бита случайности. Ключ SSH имеет длину не менее 2048 бит, что гораздо больше, чтобы попытаться угадать.
- Ключ SSH хранится на вашем клиенте, доступен только клиенту SSH и даже не известен вам. Пароль часто используется для других целей (повышенная вероятность утечки) и вводится в ненадежных средах.
- При атаке MITM попытка аутентификации с использованием ключа SSH не приводит к утечке личного ключа, тогда как попытка аутентификации по паролю приводит к утечке пароля.
Предположим, кто-то получил ваш пароль от вас, удалив Post-it Note из-под вашей клавиатуры? Или с помощью резинового шланга. Это было бы бесполезно, если аутентификация по паролю отключена.
Аутентификация с использованием Pubkey сильнее, потому что AAA зависит от пары ключей, в сущности, от математической идентичности, а не от строки символов (пароля). Нужно обладать публичной частью, чтобы преуспеть в аутентификации, и вы не можете просто наклониться через плечо или получить его с помощью резинового шланга. Что касается комментария о MITM... ну, ssh не передает пароли в открытом виде.
Конечно, вы можете сделать больше, чем пабы:
- Ограничьте исходные IP-адреса, которые могут подключаться к этой системе
- брандмауэр хоста
- TCP Wrappers
- Обратный прокси
- Используйте 'AllowUsers' и 'Allowgroups' в sshd_config
- Используйте PAM, есть различные модули, которые применяют более безопасную фильтрацию
- Требовать аутентификацию pubkey, а также пароль,
- Установите 'PermitRootLogin No' в sshd_config
- Установите значение "ServerKeyBits" на 2048 в sshd_config
- Создайте свои публичные ключи как 2048-битные или больше
Альтернативы pubkey auth?
- Используйте S/MIME, создайте список одноразовых паролей