Use o cliente SDK da instância KMS para chamar as APIs Sign e Verify e realizar assinaturas assimétricas e a respectiva verificação. Este tópico apresenta um exemplo completo em PHP e detalha cada função passo a passo.
Pré-requisitos
Antes de começar, certifique-se de ter:
Um cliente SDK da instância KMS inicializado. Para obter detalhes sobre a configuração, consulte Inicializar o cliente (PHP)
Uma CMK assimétrica criada no KMS. Anote o ID da chave
Um arquivo ClientKey e sua senha, obtidos no gerenciamento de aplicativos do KMS
O endereço VPC (endpoint) da sua instância KMS
Como funciona
O fluxo de assinatura e verificação consiste em três etapas:
Crie um objeto
SignRequestcom o ID da chave, a mensagem, o tipo de mensagem e o algoritmo de assinatura e chamesignWithOptions(). A resposta retorna a assinatura e o algoritmo usado.Passe a mensagem original e os campos da resposta de assinatura para um
VerifyRequeste chameverifyWithOptions(). A resposta retorna um valor booleano que indica se a assinatura é válida.Verifique o resultado booleano para confirmar o sucesso ou tratar a falha.
Todos os exemplos usam o pacote AlibabaCloud\Dkms\Gcs\Sdk.
Explicação passo a passo
As seções a seguir detalham cada uma das três funções apresentadas no exemplo completo acima.
Inicializar o cliente
Consulte Inicializar o cliente (PHP) para ver a implementação completa de getDkmsGcsSdkClient(). Os principais campos de configuração são:
|
Campo |
Descrição |
|
|
Sempre |
|
|
Conteúdo do arquivo ClientKey proveniente do gerenciamento de aplicativos do KMS. |
|
|
Senha definida durante a criação do ClientKey. |
|
|
Endereço VPC no formato |
|
|
Caminho local para o certificado CA da sua instância KMS. |
Chamar a API Sign
Crie um SignRequest, chame signWithOptions() e armazene os campos da resposta em um SignatureContext. A função retorna null caso a assinatura falhe.
Campos da solicitação:
|
Campo |
Descrição |
|
|
ID da CMK assimétrica. |
|
|
Algoritmo de assinatura. Deve corresponder à especificação da chave. Por exemplo, |
|
|
Dados a serem assinados, fornecidos como um array de bytes. |
|
|
Use |
Chamar a API Verify
Crie um VerifyRequest com os campos do SignatureContext e chame verifyWithOptions(). A função retorna true se a assinatura for válida.
Nota: Use o mesmo valor de message definido durante a assinatura. O uso de uma mensagem diferente causa falha na verificação.
Campos da solicitação:
|
Campo |
Descrição |
|
|
ID da CMK assimétrica (obtido do |
|
|
Bytes brutos da assinatura retornados pela API Sign (obtidos do |
|
|
Mensagem original — deve ser idêntica àquela passada para |
|
|
Deve corresponder ao valor usado na assinatura (obtido do |
|
|
Deve corresponder ao valor usado na assinatura (obtido do |