Неиспользование SSH Pubkey Authentication - серьезный недостаток безопасности по сравнению с обычной аутентификацией по паролю.

Как использование PubkeyAuthentication будет более безопасным, чем использование PasswordAuthentication, учитывая следующие факты:

  1. Порт SSH по умолчанию перенесен со своего порта по умолчанию
  2. Брандмауэр заносит в черный список IP после нескольких неудачных попыток
  3. Пароль выглядит довольно сложным (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, создайте список одноразовых паролей
Другие вопросы по тегам