Spec-Zone.ru › AWS CLI v2

[ aws . kms ]

verify

Описание

Проверяет цифровую подпись, сгенерированную операцией Sign.

Проверка подтверждает, что авторизованный пользователь подписал сообщение с указанным ключом KMS и алгоритмом подписи, и сообщение не изменилось с момента его подписи. Если подпись проверена успешно, значение поля SignatureValid в ответе равно True . Если проверка подписи завершается неудачно, операция Verify завершается с исключением KMSInvalidSignatureException.

Цифровая подпись генерируется с помощью закрытого ключа в асимметричном ключе KMS. Подпись проверяется с использованием открытого ключа в том же асимметричном ключе KMS. Сведения об асимметричных ключах KMS см. в разделе Асимметричные ключи KMS в Руководстве разработчика службы управления ключами.

Чтобы использовать операцию Verify, укажите тот же асимметричный ключ KMS, сообщение и алгоритм подписи, которые использовались для создания подписи. Тип сообщения не обязательно должен быть таким же, как и тот, который использовался для подписи, но он должен указывать, следует ли хешировать значение параметра Message в процессе проверки.

Вы также можете проверить цифровую подпись, используя открытый ключ ключа KMS вне KMS. Используйте операцию GetPublicKey для скачивания открытого ключа в асимметричном ключе KMS, а затем используйте открытый ключ для проверки подписи вне KMS. Преимущество использования операции Verify заключается в том, что она выполняется внутри KMS. В результате она легко вызывается, выполняется в пределах FIPS, регистрируется в CloudTrail, и вы можете использовать политику ключа и политику IAM, чтобы определить, кто имеет право использовать ключ KMS для проверки подписей.

Чтобы проверить подпись вне KMS с помощью открытого ключа SM2 (только регионы Китая), необходимо указать идентификатор отличия. По умолчанию KMS использует 1234567812345678 в качестве идентификатора отличия. Дополнительные сведения см. в разделе Внештатная проверка с помощью пар ключей SM2.

Ключ KMS, который вы используете для этой операции, должен находиться в совместимом состоянии. Подробности см. в разделе Состояния ключей ключей KMS в Руководстве разработчика службы управления ключами.

Использование между учетными записями : Да. Чтобы выполнить эту операцию с ключом KMS в другой учетной записи Amazon Web Services, укажите ARN ключа или ARN псевдонима в значении параметра KeyId.

Требуемые разрешения : kms:Verify (политика ключа)

Связанные операции : Sign

Эвентуальная согласованность : API KMS использует модель эвентуальной согласованности. Дополнительные сведения см. в разделе Эвентуальная согласованность KMS.

См. также: Документация API AWS

Синопсис

  verify
--key-id <value>
--message <value>
[--message-type <value>]
--signature <value>
--signing-algorithm <value>
[--grant-tokens <value>]
[--dry-run | --no-dry-run]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--key-id (строка)

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

Для указания ключа KMS используйте его идентификатор ключа, ARN ключа, имя псевдонима или ARN псевдонима. При использовании имени псевдонима добавьте префикс "alias/" . Для указания ключа KMS в другой учетной записи Amazon Web Services необходимо использовать ARN ключа или ARN псевдонима.

Например:

  • Идентификатор ключа: 1234abcd-12ab-34cd-56ef-1234567890ab
  • ARN ключа: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  • Имя псевдонима: alias/ExampleAlias
  • ARN псевдонима: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

Чтобы получить идентификатор ключа и ARN ключа для ключа KMS, используйте ListKeys или DescribeKey . Чтобы получить имя псевдонима и ARN псевдонима, используйте ListAliases .

--message (байтовый массив)

Указывает сообщение, которое было подписано. Вы можете отправить исходное сообщение длиной до 4096 байтов или хеш-дайджест сообщения. Если вы отправляете дайджест, используйте параметр MessageType со значением DIGEST .

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

--message-type (строка)

Указывает KMS, следует ли хешировать значение параметра Message в рамках алгоритма подписи. Используйте RAW для сообщений без хеширования; используйте DIGEST для дайджестов сообщений, которые уже хешированы.

Когда значение MessageType равно RAW , KMS использует стандартный алгоритм подписи, который начинается с хеш-функции. Когда значение равно DIGEST , KMS пропускает шаг хеширования в алгоритме подписи.

Предупреждение

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

Когда значение MessageType равно DIGEST , длина значения Message должна соответствовать длине хешированных сообщений для указанного алгоритма подписи.

Вы можете отправить дайджест сообщения и опустить MessageType или указать RAW, чтобы дайджест был повторно хеширован во время подписи. Однако, если подписанное сообщение хешируется один раз во время подписи, но дважды во время проверки, проверка завершится неудачно, даже если сообщение не изменилось.

Алгоритм хеширования, используемый в этом Verify, основан на значении SigningAlgorithm.

  • Алгоритмы подписи, заканчивающиеся на SHA_256, используют алгоритм хеширования SHA_256.
  • Алгоритмы подписи, заканчивающиеся на SHA_384, используют алгоритм хеширования SHA_384.
  • Алгоритмы подписи, заканчивающиеся на SHA_512, используют алгоритм хеширования SHA_512.
  • SM2DSA использует алгоритм хеширования SM3. Дополнительные сведения см. в разделе Внештатная проверка с помощью пар ключей SM2.

Возможные значения:

  • RAW
  • DIGEST

--signature (байтовый массив)

Подпись, сгенерированная операцией Sign.

--signing-algorithm (строка)

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

Возможные значения:

  • RSASSA_PSS_SHA_256
  • RSASSA_PSS_SHA_384
  • RSASSA_PSS_SHA_512
  • RSASSA_PKCS1_V1_5_SHA_256
  • RSASSA_PKCS1_V1_5_SHA_384
  • RSASSA_PKCS1_V1_5_SHA_512
  • ECDSA_SHA_256
  • ECDSA_SHA_384
  • ECDSA_SHA_512
  • SM2DSA

--grant-tokens (список)

Список маркеров разрешений.

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

(строка)

Синтаксис:

"string" "string" ...

--dry-run | --no-dry-run (логическое значение)

Проверяет, успешно ли выполнится ваш запрос. DryRun — необязательный параметр.

Дополнительные сведения о том, как использовать этот параметр, см. в разделе Тестирование вызовов API KMS в Руководстве разработчика службы управления ключами.

--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения переопределят значения, предоставленные JSON. Невозможно передать произвольные двоичные значения с помощью значения, предоставленного JSON, поскольку строка будет взята буквально. Это может не быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если предоставлено значение без значения или со значением input, выводит JSON-входной образец, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, выводит пример YAML-входа, который можно использовать с --cli-input-yaml. Если предоставлено значение output, оно проверяет входные данные команды и возвращает пример JSON-вывода для этой команды. Сгенерированный JSON-скелет не стабилен между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.

Глобальные параметры

--debug (boolean)

Включить отладочную запись журналов.

--endpoint-url (string)

Переопределить URL по умолчанию команды указанным URL.

--no-verify-ssl (boolean)

По умолчанию AWS CLI использует SSL при общении с сервисами AWS. Для каждого SSL-соединения AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет поведение по умолчанию проверки SSL-сертификатов.

--no-paginate (boolean)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.

--output (string)

Стиль форматирования вывода команд.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (string)

Запрос JMESPath для фильтрации данных ответа.

--profile (string)

Использовать определенный профиль из файла учетных данных.

--region (string)

Регион для использования. Переопределяет настройки конфигурации/среды.

--version (string)

Отобразить версию этого инструмента.

--color (string)

Включить/выключить цветной вывод.

  • on
  • off
  • auto

--no-sign-request (boolean)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.

--ca-bundle (string)

Файл сертификатов CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.

--cli-read-timeout (int)

Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаут. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (int)

Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь таймаут. Значение по умолчанию — 60 секунд.

--cli-binary-format (string)

Стиль форматирования, используемый для бинарных блоков. По умолчанию используется формат base64. Формат base64 ожидает, что бинарные блоки будут предоставлены в виде закодированной строки base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и бинарные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое отображается как бинарный блок, fileb:// всегда будет обрабатываться как бинарный и будет использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть правильно отформатировано для конфигурированного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (boolean)

Отключить пейджер CLI для вывода.

--cli-auto-prompt (boolean)

Автоматически запрашивать параметры ввода CLI.

--no-cli-auto-prompt (boolean)

Отключить автоматическую запрос параметров ввода CLI.

Примеры

Примечание

Чтобы использовать следующие примеры, вы должны иметь AWS CLI, установленный и настроенный. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.

Если не указано иное, все примеры используют правила цитирования похожие на Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в Руководстве пользователя AWS CLI.

Для проверки цифровой подписи

Следующий verify пример проверяет криптографическую подпись для короткого сообщения, закодированного в Base64. Идентификатор ключа, сообщение, тип сообщения и алгоритм подписи должны быть такими же, что использовались для подписи сообщения. Подпись, которую вы указываете, не может быть закодирована в base64. Для получения помощи в декодировании подписи, которую возвращает команда sign, см. примеры команд sign.

Вывод команды включает булевое поле SignatureValid, которое указывает, была ли подпись проверена. Если проверка подписи завершится неудачей, команда verify также завершится неудачей.

Перед запуском этой команды замените пример идентификатора ключа на действительный идентификатор ключа из вашей учетной записи AWS.

aws kms verify \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \
    --signature fileb://ExampleSignature

Вывод:

{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "SignatureValid": true,
    "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256"
}

Дополнительную информацию об использовании асимметричных ключей KMS в AWS KMS см. в разделе Использование асимметричных ключей в Руководстве разработчика AWS Key Management Service.

Вывод

KeyId -> (строка)

Amazon Resource Name (ARN ключа) асимметричного ключа KMS, который использовался для проверки подписи.

SignatureValid -> (boolean)

Булевое значение, указывающее, была ли подпись проверена. Значение True указывает, что Signature была создана путем подписи Message с указанным KeyID и SigningAlgorithm.. Если подпись не проверена, операция Verify завершится ошибкой KMSInvalidSignatureException.

SigningAlgorithm -> (строка)

Алгоритм подписи, используемый для проверки подписи.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API