Главная

 / 

...

 / 

Поддержка

 / 

Часто задаваемые вопросы

 / 

Двухфакторная аутентификация

На серверах, работающих на основе облачной инфраструктуры, нами была реализована возможность двухфакторной (или двухшаговой) аутентификации. Это позволит повысить безопасность авторизованных пользователей использующих протокол SSH, так как необходимо будет ввести не только пароль для входа в аккаунт, но и сгенерированный одноразовый пароль, действующий 30 секунд. Таким образом, если злоумышленник узнает ваш пароль, этого окажется недостаточным для успешной авторизации..

Для генерации одноразовых "кодов подтверждения" мы используем приложения Google Authenticator.

Для того чтобы активировать данную возможность, необходимо зайти на хостинг, используя SSH клиент (для Windows, например, PuTTY) и запустить утилиту google-authenticator.

Результатом станет созданный в домашней директории файл конфигурации .google_authenticator. Все последующие входы будут осуществляться с обязательным вводом одноразовых "кодов подтверждения".

Рассмотрим использование утилиты Google Authenticator более подробно.

  1. Запуск двухфакторной аутентификации на сервере
  2. Установка приложения на мобильный телефон.
  3. Что делать, если секретный ключ утерян.

Запуск двухфакторной аутентификации на сервере.

Запуск утилиты:

$ google-authenticator

(символ $ - приглашение командного интерпретатора, вводить его не надо)

Для запуска системы двухфакторной аутентификации, нажмите клавишу "y" и "enter":

Do you want authentication tokens to be time-based (y/n) y 

Будут выданы следующие данные:

  1. ссылка на персональный QR-код, сфотографировав который с экрана монитора можно получить все конфигурационные данные для мобильного приложения Google Authenticator, например:
    https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/user@server%3Fsecret%3DEI6ZWI5OEIUL6XJ5
  2. секретный ключ вида:
    Your new secret key is: ZZ9Z9ZZ9ZZZ9ZZ9Z
  3. код для верификации первого входа по SSH по новой схеме:
    Your verification code is 00000000
  4. и коды чрезвычайного доступа, которые используются при утере секретного ключа для его восстановления:
    Your emergency scratch codes are:
    11111111
    22222222
    33333333
    44444444
    55555555

Далее необходимо подтвердить создание/изменение файла с кодами доступа .google_authenticator:

Do you want me to update your "/home/user/.google_authenticator" file (y/n) y 

Подтверждаем запрет на многократное использование одного и того же кода аутентификации:

Do you want to disallow multiple uses of the same authentication 
token? This restricts you to one login about every 30s, but it increases 
your chances to notice or even prevent man-in-the-middle attacks (y/n) y 

Подтверждаем увеличение времени приема сервером введенного кода верификации, в случае плохой синхронизации времени на устройстве генерации кода и сервере это позволит избежать проблем:

By default, tokens are good for 30 seconds and in order to compensate for 
possible time-skew between the client and the server, we allow an extra 
token before and after the current time. If you experience problems with poor 
time synchronization, you can increase the window from its default 
size of 1:30min to about 4min. Do you want to do so (y/n) y 

А также необходимо подтвердить установку ограничения на 3 попытки входа за 30 секунд, чтобы защититься от «грубого» взлома через подбор пароля:

If the computer that you are logging into isn't hardened against brute-force 
login attempts, you can enable rate-limiting for the authentication module. 
By default, this limits attackers to no more than 3 login attempts every 30s. 
Do you want to enable rate-limiting (y/n) y 

На этом этап конфигурации на стороне сервера завершен. Рассмотрим механизм генерации одноразовых паролей.

Установка приложения на мобильный телефон.

Одноразовый «код подтверждения» генерируется в мобильном приложении Google Authenticator для устройств Android, BlackBerry, и работающих под управлением iOS (iPhone, iPod Touch, iPad)

Для системы Android:

Для систем под управлением iOS:

Для того чтобы осуществить генерацию одноразового пароля, необходимо установить Google Authenticator (скачать его можно по приведенным выше ссылкам или через соответствующее ПО на самом телефоне). Установили? Теперь добавляем secret key. Проще всего это сделать через персональный QR-код, ссылка на который была получена при настройке Google Authenticator на сервере.

При первом входе на сервер по SSH при включенной двухфакторной аутентификации потребуется вести свой логин:

login as: user

Затем, по запросу сервера, ввести сгенерированный код верификации и пароль:

Verification code: ххххх 
Password: xxxxx 

Все последующие входы будут осуществляться с запросом одноразового «кода подтверждения» из мобильного приложения Google Authenticator.

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

Что делать, если секретный ключ утерян.

При утере секретного ключа пройдите аутентификацию используйте код чрезвычайного доступа. Получив доступ к файлам на хостинге, просмотрите содержимое файла .google_authenticator. Первая строка содержит секретный ключ.

Повторный запуск утилиты google_authenticator приведет к обнулению текущих кодов и генерации новых.