3

В стандартной установке Linux с OpenSSH, каково ограничение по умолчанию для попыток входа в SSH с использованием аутентификации по паролю?

Сколько паролей может угадать злоумышленник в час?

2 ответа2

3

На каждом соединении есть определенный предел запросов пароля. Это определяется параметром MaxAuthTries (по умолчанию 6). Но вы не можете сделать все попытки одновременно. После каждого неудачного вы получите некоторое время (~ 3 секунды, чтобы пройти через стек PAM с задержкой).

Атакующий может выдавать соединения с частотой, ограниченной параметром MaxStartups (по умолчанию 10:30:100, который начнет отклонять соединение, если открыто 10 неаутентифицированных соединений).

Параметр LoginGraceTime не относится к злоумышленнику, поскольку он определяет только максимальное время до закрытия соединения сервером, если злоумышленнику не удается пройти проверку подлинности.

Ограничивающим фактором здесь является главным образом обмен ключами, который требует времени, потому что:

  • Шифрование требует времени процессора - зависит от сервера и клиентских процессоров или ускорителей
  • время поездки туда и обратно - зависит от географического расстояния

Мой быстрый тест показал, что установление соединения с Raspberry Pi в другой комнате занимает примерно 1 секунду. Но это может пойти быстрее, и SSHD может обрабатывать больше параллельных запросов. Запрос пароля от localhost почти мгновенный.

Допустим, злоумышленник может просто выполнить 10 параллельных подключений, ждать 1 секунду для запроса, записывает один пароль, ждать 3 секунды для второго запроса (или подтверждения того, что пароль действительно был верным) (... повторяется 6 раз, пока он не выйдет из строя) , Это занимает 1 + 3 * 6 секунд (19 секунд) для 6 попыток ввода пароля в одном потоке, 60 попыток ввода пароля в 10 потоках. В этом оптимистичном случае округление до 180 за минуту и 10 000 за час.

Обратите внимание, что злоумышленник может увеличить количество потоков до 20 или более с довольно низкой вероятностью отклонения, но получая в два раза больше попыток (или даже больше, но не может превышать 100). Вот почему существует fail2ban .

0

man sshd_config:

 MaxStartups
         Specifies the maximum number of concurrent unauthenticated con‐
         nections to the SSH daemon.  Additional connections will be
         dropped until authentication succeeds or the LoginGraceTime
         expires for a connection.  The default is 10:30:100.

         Alternatively, random early drop can be enabled by specifying the
         three colon separated values “start:rate:full” (e.g. "10:30:60").
         sshd(8) will refuse connection attempts with a probability of
         “rate/100” (30%) if there are currently “start” (10) unauthenti‐
         cated connections.  The probability increases linearly and all
         connection attempts are refused if the number of unauthenticated
         connections reaches “full” (60).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .