Крипто-ключ


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

  • Тип: object. Обязательны: name. Наличие дополнительных свойств: Недопустимо.
    • name: Тип: string. Дополнительно: Имя экземпляра плагина. Имя хранилища. Имя используется для того, чтобы в дальнейшем ссылаться на данный ключ. Минимальная длина: 1.

    Допустим один из вариантов конфига

    Конфигурация jwk крипто-ключа.

    • Тип: object. Конфигурация jwk крипто-ключа. Служит для задания свойств крипто-ключа. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: jwk. Тип крипто-ключа. Необходим, чтобы дать Aureole понять, какой из крипто-ключей использовать.
      • config: Тип: object. Конфигурация крипто-ключа. Описывает все свойства данного крипто-ключа. Наличие дополнительных свойств: Недопустимо.

        Допустим один из вариантов конфига

        • Обязательны: storage.
          • storage: Тип: string. Дополнительно: Ссылка на экземпляр плагина хранилища ключей. Имя хранилища. Хранилище для чтения и записи ключей. Минимальная длина: 1.
          • refresh_interval: Тип: number. Дополнительно: Единицы измерения: s. Значение по-умолчанию: 86400. Интервал обновления ключей. Время в секундах, по прошествии которого Aureole будет обновлять ключи. Минимальное значение: 0.
          • retries_num: Тип: integer. Количество повторений запроса. Максимальное количество повторений запроса, которое будет совершать плагин в случае возникновения ошибки при рефреше ключа. Минимальное значение: 1.
          • retry_interval: Тип: number. Интервал между запросами. Время, которое будет ждать плагин, перед тем, как совершить очередную попытку сделать запрос на рефреш ключа. Минимальное значение: 0.1.
        • Обязательны: storage, kty, alg, size, kid.
          • storage: Тип: string. Дополнительно: Ссылка на экземпляр плагина хранилища ключей. Имя хранилища. Хранилище для чтения и записи ключей. Минимальная длина: 1.
          • refresh_interval: Тип: number. Дополнительно: Единицы измерения: s. Значение по-умолчанию: 86400. Интервал обновления ключей. Время в секундах, по прошествии которого Aureole будет обновлять ключи. Минимальное значение: 0.
          • retries_num: Тип: integer. Количество повторений запроса. Максимальное количество повторений запроса, которое будет совершать плагин в случае возникновения ошибки при рефреше ключа. Минимальное значение: 1.
          • retry_interval: Тип: number. Интервал между запросами. Время, которое будет ждать плагин, перед тем, как совершить очередную попытку сделать запрос на рефреш ключа. Минимальное значение: 0.1.
          • kty: Допускаются следующие значения: RSA, oct. Тип ключа. Тип семейства криптографических алгоритмов использованных для ключа.
          • use: Допускаются следующие значения: enc, sig. Предназначение ключа. Определяет, для чего должен использовать ключ':' подписи или шифрования.
          • alg: Допускаются следующие значения: RS256, RS384, RS512, RSA-OAEP, RSA-OAEP-256, PS256, PS384, PS512, HS256, HS384, HS512. Алгоритм ключа. Определяет алгоритм, предназначенный для использования с ключом.
          • size: Тип: integer. Размер ключа. Размер генерируемого ключа. Минимальное значение: 512.
          • kid: Идентификатор ключа. Метод генерации идентификатора ключа или сам идентификатор.

            Допустим любой из вариантов конфига

            • Допускаются следующие значения: SHA-256, SHA-1.
            • Тип: string. Минимальная длина: 1.
        • Обязательны: storage, kty, alg, curve, kid.
          • storage: Тип: string. Дополнительно: Ссылка на экземпляр плагина хранилища ключей. Имя хранилища. Хранилище для чтения и записи ключей. Минимальная длина: 1.
          • refresh_interval: Тип: integer. Дополнительно: Единицы измерения: ms. Значение по-умолчанию: 3600000. Интервал обновления ключей. Время в секундах, по прошествии которого Aureole будет обновлять ключи. Минимальное значение: 0.
          • retries_num: Тип: integer. Количество повторений запроса. Максимальное количество повторений запроса, которое будет совершать плагин в случае возникновения ошибки при рефреше ключа. Минимальное значение: 1.
          • retry_interval: Тип: integer. Дополнительно: Единицы измерения: ms. Интервал между запросами. Время, которое будет ждать плагин, перед тем, как совершить очередную попытку сделать запрос на рефреш ключа. Минимальное значение: 1.
          • kty: Допускаются следующие значения: EC, OKP. Тип ключа. Тип семейства криптографических алгоритмов использованных для ключа.
          • use: Допускаются следующие значения: enc, sig. Предназначение ключа. Определяет, для чего должен использовать ключ':' подписи или шифрования.
          • alg: Допускаются следующие значения: ES256, ES384, ES512, ES256K, EdDSA. Алгоритм ключа. Определяет алгоритм, предназначенный для использования с ключом.
          • curve: Допускаются следующие значения: P-256, P-384, P-512, Ed25519, Ed448, X25519, X448. Тип кривой. Тип кривой, используемой для генерации ключа.
          • kid: Идентификатор ключа. Метод генерации идентификатора ключа или сам идентификатор.

            Допустим любой из вариантов конфига

            • Допускаются следующие значения: SHA-256, SHA-1.
            • Тип: string. Минимальная длина: 1.

      Пример конфига

      crypto_keys:
        # load keys from file
        - type: "jwk"
          name: jwk_file
          config:
            refresh_interval: 3600
            storage: jwk_keys_store
      
        # load keys from url
        - type: "jwk"
          name: jwk_url
          config:
            refresh_interval: 3600
            storage: google_keys_store
      
        # generate keys and save to vault
        - type: "jwk"
          name: jwk_gen_vault
          config:
            kty: RSA
            alg: RS256
            size: 2048
            kid: SHA-256
            refresh_interval: 3600
            storage: vault_keys_store
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25

    Конфигурация pem крипто-ключа.

    • Тип: object. Конфигурация pem крипто-ключа. Служит для задания свойств крипто-ключа. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: pem. Тип крипто-ключа. Необходим, чтобы дать Aureole понять, какой из крипто-ключей использовать.
      • config: Тип: object. Конфигурация крипто-ключа. Описывает все свойства данного крипто-ключа. Обязательны: alg, storage. Наличие дополнительных свойств: Недопустимо.
        • alg: Тип: string. Алгоритм ключа. Описывает алгоритм ключа, хранящегося по данному пути. Минимальная длина: 1.
        • storage: Тип: string. Дополнительно: Ссылка на экземпляр плагина хранилища ключей. Имя хранилища. Хранилище для чтения и записи ключей. Минимальная длина: 1.
        • refresh_interval: Тип: integer. Дополнительно: Единицы измерения: ms. Значение по-умолчанию: 3600000. Интервал обновления ключей. Время в секундах, по прошествии которого Aureole будет обновлять ключи. Минимальное значение: 0.
        • retries_num: Тип: integer. Количество повторений запроса. Максимальное количество повторений запроса, которое будет совершать плагин в случае возникновения ошибки при рефреше ключа. Минимальное значение: 1.
        • retry_interval: Тип: integer. Дополнительно: Единицы измерения: ms. Интервал между запросами. Время, которое будет ждать плагин, перед тем, как совершить очередную попытку сделать запрос на рефреш ключа. Минимальное значение: 1.

      Пример конфига

      crypto_keys:
        - type: "pem"
          name: pem_key
          config:
            alg: ES256
            refresh_interval: 3600
            storage: pem_keys_store
      
      1
      2
      3
      4
      5
      6
      7
Contributors: Semen Asaevich, asaevich