Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Механизм секретов TOTP

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

Механизм секретов TOTP может выступать как в роли генератора (как Google Authenticator), так и в роли провайдера (как служба входа в систему Google.com).

1. TOTP в роли провайдера

Механизм секретов TOTP может также работать в качестве провайдера TOTP. В этом режиме он может использоваться для генерации новых ключей и проверки паролей, сгенерированных с помощью этих ключей.

1.1. Настройка

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


  1. Включите механизм секретов TOTP:

    $ starvault secrets enable totp
    Success! Enabled the totp secrets engine at: totp/

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

  2. Создайте именованный ключ, используя опцию generate. Это указывает StarVault на роль провайдера:

    $ starvault write totp/keys/my-user \
        generate=true \
        issuer=Vault \
        account_name=user@test.com
    Вывод:

    Key

    Value

    ---

    ----

    barcode

    iVBORw0KGgoAAAANSUhEUgAAAMgAAADIEAAAAADYoy0BA…​

    url

    otpauth://totp/Vault:user@test.com?algorithm=SHA1&digits=6&issuer=Vault&period=30&secret=V7MBSK324I7KF6KVW34NDFH2GYHIF6JY

    Ответ включает в себя штрих-код в кодировке base64 и URL OTP. Оба варианта эквивалентны. Передайте их пользователю, который проходит аутентификацию с помощью TOTP. ---

2. TOTP в роли генератора

Механизм секретов TOTP может работать как генератор TOTP-кодов. В этом режиме он может заменить традиционные генераторы TOTP, такие как Google Authenticator. Это обеспечивает дополнительный уровень безопасности, поскольку возможность генерировать коды защищена политиками, а весь процесс подвергается аудиту.

2.1. Настройка

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


  1. Включите механизмы секретов TOTP

    $ starvault secrets enable totp
    Success! Enabled the totp secrets engine at: totp/

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

  2. Настройте именованный ключ. Имя этого ключа будет являться идентификатором пользователя.

    $ starvault write totp/keys/my-key \
        url="otpauth://totp/Vault:test@test.com?secret=Y64VEVMBTSXCYIWRSHRNDZW62MPGVU2G&issuer=Vault"
    Success! Data written to: totp/keys/my-key

    url соответствует секретному ключу или значению штрих-кода, предоставленного сторонним сервисом.


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

После того как механизм секретов настроен и у пользователя/машины есть токен StarVault с соответствующими правами, он может генерировать учетные данные.

Сгенерируйте новый OTP на основе времени, считав из конечной точки /code имя ключа:

$ starvault read totp/code/my-key
Key     Value
---     -----
code    260610

С помощью ACL можно ограничить использование механизма секретов TOTP таким образом, чтобы доверенные операторы могли управлять определениями ключей, а пользователи и приложения были ограничены в полномочиях, которые им разрешено читать.

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

В качестве пользователя проверьте код TOTP, сгенерированный сторонним приложением:

$ starvault write totp/code/my-user code=886531
Key      Value
---      -----
valid    true

3. API

У механизма секретов TOTP есть полноценный HTTP API. Более подробную информацию можно найти в разделе API движка секретов TOTP.