Gera uma assinatura digital usando uma CMK assimétrica.
Descrição da operação
Precauções
-
Para informações sobre as políticas de acesso necessárias para que um usuário RAM ou função RAM chame esta operação, consulte Resource Access Management.
-
Esta operação pode ser chamada por meio de um gateway compartilhado ou um gateway dedicado. Para mais informações, consulte Alibaba Cloud SDK.
-
Gateway compartilhado: Você pode acessar o KMS pela Internet ou por uma VPC. Este método requer que você ative o acesso à Internet. Para mais informações, consulte Acessar chaves em uma instância KMS pela Internet.
-
Gateway dedicado: Você pode acessar o KMS usando o endpoint privado do KMS (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
-
Limites de QPS
-
Gateway compartilhado: Esta operação é limitada a 200 consultas por segundo (QPS) para cada usuário. Se o limite for excedido, as chamadas de API serão limitadas, o que pode afetar seus negócios. Recomendamos que você chame esta operação a uma taxa razoável.
-
Gateway dedicado: O QPS para cada usuário é limitado pelas especificações de desempenho da sua instância KMS. Para mais informações, consulte Métricas de desempenho.
Descrição
Esta operação suporta apenas chaves assimétricas para as quais o parâmetro Usage está definido como SIGN/VERIFY. A tabela a seguir descreve os algoritmos de assinatura suportados.
| KeySpec | Algorithm | Description |
| RSA_2048 | RSA_PSS_SHA_256 | RSASSA-PSS using SHA-256 and MGF1 with SHA-256 |
| RSA_2048 | RSA_PKCS1_SHA_256 | RSASSA-PKCS1-v1_5 using SHA-256 |
| RSA_3072 | RSA_PSS_SHA_256 | RSASSA-PSS using SHA-256 and MGF1 with SHA-256 |
| RSA_3072 | RSA_PKCS1_SHA_256 | RSASSA-PKCS1-v1_5 using SHA-256 |
| EC_P256 | ECDSA_SHA_256 | ECDSA on the P-256 Curve(secp256r1) with a SHA-256 digest |
| EC_P256K | ECDSA_SHA_256 | ECDSA on the P-256K Curve(secp256k1) with a SHA-256 digest |
| EC_SM2 | SM2DSA | SM2 elliptic curve digital signature algorithm |
De acordo com o padrão GB/T 32918.2 "Tecnologia de segurança da informação - Criptografia de chave pública de curva elíptica SM2 - Parte 2: Algoritmo de assinatura digital", ao calcular uma assinatura SM2, o valor do parâmetro Digest não é o valor hash SM3 da mensagem original. Em vez disso, o valor é o hash SM3 do resultado da concatenação de Z(A) e M. M é a mensagem original a ser assinada. Z(A) é o valor hash do usuário A, conforme definido no GB/T 32918.2.
Este tópico fornece um exemplo de como usar uma chave assimétrica com o ID de chave 5c438b18-05be-40ad-b6c2-3be6752c**** e o ID de versão de chave 2ab1a983-7072-4bbc-a582-584b5bd8**** para assinar o digest ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuy****= usando o algoritmo de assinatura RSA_PSS_SHA_256.
Experimente agora
Testar
Autorização RAM
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| KeyId |
string |
Sim |
O identificador globalmente exclusivo (GUID) da chave mestra do cliente (CMK). Nota
Você também pode especificar o alias vinculado à CMK. Para mais informações, consulte Visão geral de aliases. |
5c438b18-05be-40ad-b6c2-3be6752c**** |
| KeyVersionId |
string |
Sim |
O ID da versão da chave. O ID deve ser o GUID da versão da chave. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| Algorithm |
string |
Sim |
O algoritmo de assinatura. |
RSA_PSS_SHA_256 |
| Digest |
string |
Sim |
O digest da mensagem original. O digest é gerado usando o algoritmo de hash que corresponde ao valor do parâmetro Algorithm. Nota
|
ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiu****= |
| DryRun |
string |
Não |
Especifica se o recurso de dry run deve ser ativado.
O recurso de dry run é usado para testar chamadas de API e verificar as permissões nos recursos que você possui e a validade dos parâmetros da solicitação. Se você ativar o recurso de dry run, o KMS sempre retornará uma resposta de falha e um motivo de falha. Os motivos de falha incluem os seguintes:
|
false |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| KeyVersionId |
string |
O ID da versão da chave. O ID é o GUID da versão da chave. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
O GUID da CMK. Nota
Se você usar um alias da CMK na solicitação, o ID da CMK à qual o alias está vinculado será retornado. |
5c438b18-05be-40ad-b6c2-3be6752c**** |
| Value |
string |
A assinatura gerada. Nota
O valor é codificado em Base64. |
M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****== |
| RequestId |
string |
O ID da solicitação, que é um identificador exclusivo gerado pelo Alibaba Cloud para a solicitação. Você pode usar o ID da solicitação para solucionar problemas e localizar falhas. |
475f1620-b9d3-4d35-b5c6-3fbdd941423d |
Exemplos
Resposta de sucesso
JSON formato
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "5c438b18-05be-40ad-b6c2-3be6752c****",
"Value": "M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****==",
"RequestId": "475f1620-b9d3-4d35-b5c6-3fbdd941423d"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | An invalid value is specified for the parameter. |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | The error message returned because the specified CMK does not exist. |
| 404 | Forbidden.AliasNotFound | The specified Alias is not found. | The error message returned because the specified alias does not exist. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.