Мульти-факторная аутентификация (MFA) в Amazon AWS в Linux

537fc884c1637b198d1a74248d7abbe3.pngНовости про крупную уязвимость в OpenSSL заставила подумать про укрепление безопасности учётных записей на важных ресурсах, в том числе — и в Amazon Web Services.Кроме создания отдельных аккаунтов с ограничеными привилегиями я решил установить ещё и двухфакторную аутентификацию. Нашел пункт, и тут меня, счастливого пользователя звонилки от Nokia со змейкой и фонариком, ждал сюрприз…

Установите приложение на ваш смартфон Методы получения одноразовых паролей бывают разные.Google, например, генерирует пароль самостоятельно и присылает его в SMS.Amazon же использует вычисляемые одноразовые пароли на основе времени.Принцип таков В специальную программу на вашем устройстве один раз передаётся какой-то секретный ключ. Когда вам потом понадобится одноразовый пароль, программа генерирует его на основе секретного ключа и текущего времени.

А что если смартфона нет? Можно использовать утилиту oathtool.Название пакетов в некоторых дистрибутивах Linux Ubuntu: oathtool Arch Linux: oath-toolkit Чтобы получить одноразовый пароль на основе секрета, нам нужно сделать так: oathtool --totp -b «teh_secret» Ключ »--totp» говорит, что нам нужны OTP, основанные на времени, а »-b» указывает на то, что секрет закодирован в base32.Однако, так секретный ключ является частью команды, а значит — остаётся в .bash_history или выводе «w».

Скроем секрет Напишем простую обёртку на bash: read -p «The secret:» -s teh_secret; echo; oathtool --totp -b »${teh_secret}» Сохраним её под именем totp.sh.Теперь мы можем сделать так: $ ./totp.sh The secret: (вводим секретный ключ) <одноразовый ключ> Ключ »-s» переводит read в «секретный» режим, в котором она не отображает вводимые символы. Это полезно, если вы беспокоитесь, что вводимые данные кто-то подсмотрит.Синхронизация с Amazon’ом Для синхронизации с вашим устройством Amazon просит ввести два последовательных ключа.Ключи генерируются на основе времени с точностью до минуты, так что вам понадобится: сделать и ввести первый ключ подождать, пока сменится минута сделать и ввести второй ключ Готово! Q&A Q: Как хранить секрет? Желательно, в зашифрованном виде. Например, использовать gpg или KeePass/KeePassX.Q: Если хранить секрет рядом с паролем (скажем, в KeePassX), то разве это безопасно? Да, тогда получается не «настоящая» двухфакторная аутентификация — если злоумышленник вскроет вашу базу паролей, то он получит и ваш секрет.Однако, это всё равно лучше, чем простая аутентификация по паролю, потому что спасаёт в ситуации, когда злоумышленник каким-то образом перехватил ваш пароль, например — через почту или уязвимость SSL вроде HeartBleed.Q: Windows? На просторах интернета есть заметки про запуск oathtool в Windows с помощью cygwin.Вывод Даже если у вас нет смартфона вы всё равно можете использовать двухфакторную аутентификацию для защиты аккаунта на Amazon.

© Habrahabr.ru