A operação AsymmetricVerify verifica uma assinatura com uma chave assimétrica.
Observações de uso
Chame esta operação por meio de um Shared Gateway ou de um gateway dedicado. Para mais informações, consulte Alibaba Cloud SDK.
Shared Gateway: acesse o KMS pela rede pública ou por um nome de domínio de VPC. Esse método exige a ativação do acesso à rede pública. Para mais informações, consulte Chaves de acesso em uma instância do KMS pela rede pública.
Gateway Dedicado: acesse o KMS por um endpoint privado (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
Limites de QPS
Chamadas via Shared Gateway: o limite de consultas por segundo (QPS) para um único usuário é 200. Se esse limite for excedido, a chamada da API sofrerá limitação de taxa, o que pode afetar seus negócios. Planeje suas chamadas adequadamente.
Chamadas via gateway dedicado: o limite de QPS por usuário depende das especificações de desempenho da sua instância do KMS. Para mais detalhes, consulte Métricas de desempenho.
Descrição
Esta operação aceita apenas chaves assimétricas cujo parâmetro Usage esteja definido como SIGN/VERIFY. A tabela a seguir descreve os algoritmos de assinatura compatíveis.
|
KeySpec |
Algorithm |
Description |
|
RSA_2048 |
RSA_PSS_SHA_256 |
RSASSA-PSS usando SHA-256 e MGF1 com SHA-256 |
|
RSA_2048 |
RSA_PKCS1_SHA_256 |
RSASSA-PKCS1-v1_5 usando SHA-256 |
|
RSA_3072 |
RSA_PSS_SHA_256 |
RSASSA-PSS usando SHA-256 e MGF1 com SHA-256 |
|
RSA_3072 |
RSA_PKCS1_SHA_256 |
RSASSA-PKCS1-v1_5 usando SHA-256 |
|
EC_P256 |
ECDSA_SHA_256 |
ECDSA na curva P-256 (secp256r1) com resumo SHA-256 |
|
EC_P256K |
ECDSA_SHA_256 |
ECDSA na curva P-256K (secp256k1) com resumo SHA-256 |
|
EC_SM2 |
SM2DSA |
Algoritmo de assinatura digital de curva elíptica SM2 |
De acordo com o padrão GB/T 32918, ao calcular uma assinatura SM2, o parâmetro
Digest
não corresponde ao resumo SM3 da mensagem original. Trata-se, na verdade, do resumo dos valores combinados Z(A) e M. M representa a mensagem original a ser assinada, enquanto Z(A) é o valor de hash do Usuário A conforme definido no GB/T 32918.
Este tópico apresenta um exemplo de verificação da assinatura M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq**== para o resumo ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuyjfzw=. A verificação utiliza uma chave assimétrica com ID de chave 5c438b18-05be-40ad-b6c2-3be6752c, ID de versão da chave 2ab1a983-7072-4bbc-a582-584b5bd8** e o algoritmo RSA_PSS_SHA_256.
Depuração
Parâmetros da solicitação
|
Name |
Type |
Required |
Example |
Description |
| Action | String | Yes | AsymmetricVerify | Operação a executar. Defina o valor como AsymmetricVerify. |
| KeyId | String | Yes | 5c438b18-05be-40ad-b6c2-3be6752c**** | Identificador globalmente exclusivo (GUID) da chave mestra do cliente (CMK). Nota Também é possível especificar um alias vinculado à CMK. Para mais informações, consulte Uso de aliases. |
| KeyVersionId | String | Yes | 2ab1a983-7072-4bbc-a582-584b5bd8**** | ID da versão da chave. O ID da versão da chave é um GUID. |
| Algorithm | String | Yes | RSA_PSS_SHA_256 | Algoritmo de assinatura. |
| Digest | String | Yes | ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuy****= | Resumo da mensagem original. O resumo é gerado pelo algoritmo de hash correspondente ao valor do parâmetro Algorithm. Nota O valor deve estar codificado em Base64. |
| Value | String | Yes | M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****== | Valor da assinatura a verificar. Nota O valor deve estar codificado em Base64. |
| DryRun | String | No | false | Especifique se o modo de simulação deve ser ativado.
O modo de simulação serve para testar a chamada da API. Ele verifica se você possui as permissões necessárias e se os parâmetros da solicitação são válidos. Nesse modo, o KMS sempre retorna uma resposta de falha com o respectivo motivo. Os motivos incluem:
|
Parâmetros de resposta
Name |
Type |
Example value |
Description |
| KeyVersionId | String | 2ab1a983-7072-4bbc-a582-584b5bd8**** | Número da versão da chave mestra usada para criptografar o texto simples. |
| KeyId | String | 5c438b18-05be-40ad-b6c2-3be6752c**** | Identificador globalmente exclusivo (GUID) da chave mestra. Nota Se o parâmetro KeyId na solicitação for um alias de uma chave mestra, a resposta retornará o ID da chave mestra correspondente a esse alias. |
| Value | Boolean | true | Indica se a assinatura passou na verificação. |
| RequestId | String | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | ID da solicitação. A Alibaba Cloud gera este identificador exclusivo para a solicitação. Utilize este ID para solucionar problemas. |
Exemplos
Exemplo de solicitação
http(s)://[Endpoint]/?Action=AsymmetricVerify
&KeyId=5c438b18-05be-40ad-b6c2-3be6752c****
&KeyVersionId=2ab1a983-7072-4bbc-a582-584b5bd8****
&Algorithm=RSA_PSS_SHA_256
&Digest=ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuy****=
&Value=M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****==
&DryRun=false
&<Common request parameters>
Exemplo de resposta
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<AsymmetricVerifyResponse>
<KeyVersionId>2ab1a983-7072-4bbc-a582-584b5bd8****</KeyVersionId>
<KeyId>5c438b18-05be-40ad-b6c2-3be6752c****</KeyId>
<Value>true</Value>
<RequestId>475f1620-b9d3-4d35-b5c6-3fbdd941423d</RequestId>
</AsymmetricVerifyResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"KeyVersionId" : "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId" : "5c438b18-05be-40ad-b6c2-3be6752c****",
"Value" : true,
"RequestId" : "475f1620-b9d3-4d35-b5c6-3fbdd941423d"
}
Códigos de erro
|
HTTP status code |
Error code |
Error message |
Description |
|
400 |
InvalidParameter |
The specified parameter is not valid. |
O parâmetro especificado é inválido. |
|
404 |
Forbidden.AliasNotFound |
The specified Alias is not found. |
O alias especificado não foi encontrado. |
|
404 |
Forbidden.KeyNotFound |
The specified Key is not found. |
A chave especificada não existe. |
Para obter uma lista de outros códigos de erro, consulte o API Error Center.