AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Come posso verificare le firme generate dalle chiavi asimmetriche AWS KMS?
Desidero utilizzare AWS Key Management Service (AWS KMS) per firmare un file. Dopodiché desidero condividere il file, la sua firma e la chiave pubblica per verificare che la firma sia valida. Non desidero fornire l'accesso all’API in modo che gli utenti possano accedere alla mia chiave AWS KMS.
Risoluzione
L'esempio seguente utilizza AWS KMS con una coppia di chiavi asimmetriche ECC_NIST_P256 (secp256r1). Quando AWS KMS utilizza questa coppia di chiavi per generare un file di firma, il file viene creato in base a NIST FIPS 168-4. Viene generata una firma digitale ECDSA contenente i valori (r, s) come specificato in ANS X9.62. Poiché lo standard è aperto, è possibile utilizzare OpenSSL per verificare la firma.
Per ottenere il formato di firma per le coppie di chiavi RSA, consulta Specifiche delle chiavi RSA per la firma e la verifica.
Nota: se ricevi errori durante l’esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Firma un file locale
Dopo aver creato la chiave asimmetrica AWS KMS nel tuo account AWS, utilizza l'interfaccia della linea di comando AWS per fare riferimento alla chiave quando firmi un file. La risposta che ricevi dall'API AWS KMS è codificata in base64. L'esempio seguente utilizza il parametro**--query** per ottenere il valore della firma dalla risposta e inserirlo nel file sign.b64:
[ec2-user@ip-172-31-23-22 ~]$ aws kms sign --key-id arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab --message fileb://message.txt --signing-algorithm ECDSA_SHA_256 --query 'Signature' --output text > sign.b64
Nota: puoi inviare messaggi fino a 4.096 B. Per firmare un messaggio più grande, genera un digest hash del messaggio. Quindi inserisci il digest hash nel parametro message. Per mostrare se il messaggio è un messaggio completo o un digest, utilizza il parametro MessageType. Annota l'algoritmo di firma per verificare la firma in un secondo momento.
Poiché la firma è in formato base64, esegui il seguente comando di codifica Linux base64 per convertire il formato in binario:
[ec2-user@ip-172-31-23-22 ~]$ base64 -d sign.b64 > sign.bin
Esegui il seguente comando per decodificare i file base64 per il sistema operativo Windows:
certutil -decode C:\Temp\sign.b64 C:\Temp\sign.bin
Ora puoi condividere il file di firma sign.b64.
Verifica la firma di AWS KMS
Per verificare il file della firma, è necessario disporre della chiave pubblica. Per ottenere la chiave pubblica, esegui il comando AWS CLI get-public-key:
[ec2-user@ip-172-31-23-22 ~]$ aws kms get-public-key --key-id arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab --output text --query 'PublicKey' > KMSPublic.b64
Esegui il seguente comando per convertire il file base64 in un file con codifica DER denominato KMSPublic.key:
[ec2-user@ip-172-31-23-22 ~]$ base64 -d KMSPublic.b64 > KMSPublic.key
Ora hai la chiave pubblica e la firma in formato binario con il file message.txt.
Per verificare la firma, esegui il comando OpenSSL dgst:
[ec2-user@ip-172-31-23-22 ~]$ openssl dgst -sha256 -verify KMSPublic.key -keyform DER -signature sign.bin message.txtVerified OK
La verifica ha esito positivo quando l'output mostra "Verified OK".
Se non ricevi una risposta di verifica, controlla quanto segue:
- L'algoritmo di firma OpenSSL è lo stesso utilizzato per firmare il file.
- I tuoi file non sono codificati in base64.
Informazioni correlate
- Argomenti
- Security, Identity, & Compliance
- Lingua
- Italiano
