Перейти к содержимому

Одноразовые пароли (OTP)

Одноразовый пароль (OTP) — это временный код, используемый для двухфакторной аутентификации (2FA). KeePassium может хранить и генерировать одноразовые пароли на основе времени — наиболее распространённую схему в современном интернете.

Хранение OTP в базе паролей — это безопасный, переносимый и не зависящий от поставщика способ.

Как работают OTP

Этот раздел — краткий обзор того, как работают одноразовые пароли на основе времени.

Во время первоначальной настройки онлайн-сервис и клиентское приложение (например, KeePassium) обмениваются секретом. Это короткая последовательность символов, случайно сгенерированная сервером и переданная клиенту через QR-код. И сервер, и клиент сохраняют секрет — и на этом первоначальная настройка завершается.

При повседневном использовании, когда вам нужно войти на сервер, обе стороны — и сервер, и KeePassium — выполняют следующие шаги:

  • Подсчитывают, сколько времени прошло с 1 января 1970 года. Только каждой секунды учитываются более длительные интервалы, например 30 секунд. Иными словами, вычисляется количество полуминут, прошедших с опорной даты (счётчик).
  • Количество полуминут обрабатывается криптографическим алгоритмом, поведение которого зависит от секрета.
  • Результат сокращается до 6–8 цифр для удобства ввода.

INFO

Интервал времени, криптографический алгоритм и длина кода — это настраиваемые параметры, входящие в конфигурацию OTP. Полный стандарт доступен в RFC6238.

Наконец, когда вы вводите сгенерированный OTP в форму входа, сервер сравнивает ваш код со своим, сгенерированным локально. Если они совпадают, у сервера есть надёжное доказательство того, что клиент знает секрет — при этом сам секрет во время проверки не передавался.

Настройка OTP

Настроить OTP в KeePassium можно двумя способами: отсканировав QR-код или введя секрет вручную.

С помощью QR-кода

Это самый простой и быстрый способ:

  • Откройте редактор записи
  • Нажмите + вверху, затем Одноразовый парольСканировать QR-код
  • Наведите камеру на QR-код, показанный целевым сайтом.
    • Также можно импортировать QR-код из фотографии.

Конфигурация будет сохранена в дополнительном поле с именем otp в виде otpauth URI (фактический стандарт для QR-кодов 2FA).

Пример QR-кода
Пример QR-кода с конфигурацией OTP

Если конфигурация OTP предоставлена в виде ссылки, начинающейся с otpauth://, KeePassium сможет обработать и её.

  • Откройте настройки устройства → ОсновныеАвтозаполнение и пароли
  • Измените поле Настраивать коды в: на KeePassium

Теперь KeePassium будет открываться автоматически, когда вы нажмёте на ссылку с конфигурацией OTP или отсканируете OTP QR-код приложением «Камера». Затем приложение поможет вам импортировать конфигурацию OTP в нужную запись.

С помощью секретного ключа

Ручная настройка с секретным ключом пригодится, когда вы не можете отсканировать QR-код.

Скриншот: Не удаётся отсканировать код?
  • Выберите на сайте вариант ввода секретного ключа вручную
  • Скопируйте секретный ключ в буфер обмена
  • В KeePassium откройте редактор записи, нажмите + вверху → Одноразовый парольВвести вручную
  • Вставьте секретный ключ и нажмите Готово

TIP

Пробелы и регистр не имеют значения. Abc и a B C — это один и тот же код.

Для Steam OTP

Сервис Steam компании Valve использует собственный формат TOTP. KeePassium умеет генерировать и коды TOTP для Steam.

Откройте запись Steam в базе паролей и создайте два дополнительных поля:

  • TOTP Settings со значением 30;S (30 — интервал обновления, а S означает, что коды TOTP должны иметь особый формат Steam)
  • TOTP Seed с секретным ключом (в формате Base32)

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

Использование OTP

После настройки коды OTP отображаются как в списке записей, так и в просмотре записи.

Скриншот
OTP в списке записей

В списке записей коды OTP обычно скрыты за кнопками часы. Нажмите кнопку, чтобы показать OTP и скопировать его в буфер обмена.

Когда срок действия OTP подходит к концу, он начинает пульсировать цветом. Иногда лучше дождаться следующего кода, чтобы сервер точно его принял.

В просмотре записи коды OTP показаны сразу. Небольшая линия под кодом показывает время, оставшееся до обновления кода. Поле с конфигурацией OTP в просмотре записи скрыто. Чтобы получить к нему доступ, начните изменять запись.

Скриншот
OTP в просмотре записи

Совместимость

Коды OTP, настроенные в KeePassium, совместимы с KeePassXC и большинством мобильных приложений. Работает это и в обратную сторону: коды, настроенные в других приложениях, будут работать и в KeePassium.

Исключение — KeePass, которому нужен плагин KeePassOTP, чтобы понимать OTP, настроенные другими приложениями.

Устранение неполадок

Отсутствует кнопка настройки OTP

Ваш файл базы паролей использует устаревший формат, который не поддерживает дополнительные поля записей. Решение: обновите базу до формата KDBX.

Сгенерированные коды OTP не принимаются

  • Убедитесь, что системное время на устройстве установлено правильно. Даже отклонение в 30 секунд может сделать сгенерированные коды недействительными.
  • Проверьте введённый секретный ключ на возможные опечатки. Пробелы и регистр не имеют значения.