Questo argomento mostra come verificare le attestazioni per Chiavi Cloud HSM, che sono sempre archiviate in un hardware modulo di sicurezza (HSM).
Panoramica
In crittografia, un'attestazione è un'attestazione leggibile da computer, programmatica un'affermazione dimostrabile che un software produce su se stesso. Le attestazioni sono un componente importante dell'elaborazione affidabile e potrebbe essere richiesto per la conformità motivi.
Per visualizzare e verificare le attestazioni, richiedi un token firmato dichiarazione di attestazione dell'HSM, insieme alle catene di certificati utilizzate per firmarlo. La dichiarazione di attestazione viene prodotta dall'hardware HSM e firmata con certificati di proprietà di Google e del produttore dell'HSM.
Dopo aver scaricato la dichiarazione di attestazione e le catene di certificati, puoi: controlla gli attributi o verificare la validità dell'attestazione utilizzando il metodo catene di certificati.
Lo script di attestazione è open source Script Python sviluppato da Google. Puoi visualizzare il codice sorgente per lo script per saperne di più sul formato dell'attestazione e sul funzionamento della verifica; oppure un modello per una soluzione personalizzata.
Gli esempi in questo argomento sono progettati per gli ambienti Linux, tra cui Cloud Shell. Per seguire le istruzioni sui client macOS o Windows, puoi devono apportare modifiche.
Prima di iniziare
- Se necessario, crea una chiave Cloud HSM in un keyring in una la regione supportata da Cloud HSM.
Scarica e installa script per l'analisi dei valori dell'attestazione. del produttore dell'HSM. Scarica ciascuno di questi script:
verify_pubkey.py
parse_v1.py
parse_v2.py
Consulta la documentazione sull'utilizzo degli script, fornita in ogni località.
Scarica e installa lo script per verificare le attestazioni e i suoi prerequisiti e consultare la documentazione dello script.
Verifica dell'attestazione
La procedura di verifica dell'attestazione può essere eseguita automaticamente tramite la console Google Cloud oppure manualmente scaricando il bundle di attestazione e lo script di verifica dell'attestazione, in locale o in Cloud Shell.
Verifica delle attestazioni tramite la console Google Cloud
Puoi verificare l'attestazione tramite la console Google Cloud, che aprire Cloud Shell e precompilarlo con gli snippet di codice necessari Eseguire l'intero processo di verifica dell'attestazione.
Vai alla pagina Gestione delle chiavi nella console Google Cloud.
Seleziona il keyring che contiene la chiave che vuoi attestare, quindi seleziona la chiave.
Fai clic su Altro more_vert per la versione della chiave che vuoi attestare e seleziona Verifica attestazione.
Nella finestra di dialogo Verifica attestazione, fai clic su Apri Cloud Shell. Questo apre Cloud Shell e lo precompila con lo snippet di codice necessari per l'intera procedura di verifica.
Esamina lo snippet di codice precompilato in Cloud Shell. Lo snippet scarica lo script di verifica dell'attestazione e le relative dipendenze, esegue i comandi gcloud per scaricare l'attestazione e le catene di certificati, quindi esegue lo script per verificare l'attestazione.
Esegui lo snippet di codice per verificare l'attestazione.
Verifica manuale dell'attestazione
L'attestazione, le catene di certificati e lo script di verifica dell'attestazione devono prima di verificare manualmente l'attestazione.
Scarica le catene di attestazioni e certificati.
Console
Vai alla pagina Gestione delle chiavi nella console Google Cloud.
Seleziona il keyring che contiene la chiave che vuoi attestare, quindi seleziona la chiave.
Fai clic su Altro more_vert per la versione della chiave che vuoi attestare e seleziona Verifica attestazione.
Nella finestra di dialogo Verifica attestazione, fai clic su Scarica bundle di attestazione. Verrà scaricato un file ZIP contenente l'attestazione e catene di certificati.
Estrae l'attestazione e le catene di certificati dall'attestazione gruppo.
gcloud
Fai clic su Attiva Cloud Shell nella parte superiore della nella finestra della console.
Una sessione di Cloud Shell si apre all'interno di un nuovo frame nella parte inferiore di la console e visualizza un prompt della riga di comando. Potrebbero essere necessari secondi per l'inizializzazione della sessione di shell.
Nel prompt della riga di comando di Cloud Shell, utilizza il comando
gcloud kms keys versions describe
per recuperare l'attestazione per chiave che si vuole attestare. Il flag--attestation-file
specifica il percorso e la destinazione del nome file per l'attestazione recuperata.gcloud kms keys versions describe key-version \ --key key-name \ --location location \ --keyring keyring-name \ --attestation-file [attestation-file] \
Nel prompt della riga di comando di Cloud Shell, utilizza il comando
gcloud kms keys versions get-certificate-chain
per recuperare le catene di certificati per la chiave che vuoi attestare. La Il flag--output-file
specifica il percorso e la destinazione del nome file per i certificati recuperati.gcloud kms keys versions get-certificate-chain key-version \ --key key-name \ --location location \ --keyring keyring-name \ --output-file [certificates-file] \
Scarica lo script per verificare le attestazioni e i relativi prerequisiti e consultare la documentazione per lo script di verificare l'attestazione nel file di attestazione utilizzando i certificati in del file dei certificati.
Analisi dei valori dell'attestazione
La documentazione del produttore dell'HSM include istruzioni complete per utilizzare i propri script per analizzare l'attestazione e verificare la chiave pubblica per una coppia di chiavi asimmetrica. L'attestazione dovrà essere decompresso con il seguente comando prima di poter analizzato.
Decomprimi l'attestazione compressa.
gzip -d < compressed_attestation.dat > attestation.dat
Questi link rimandano direttamente alle istruzioni specifiche del produttore dell'HSM:
- Verificare la chiave pubblica di una coppia di chiavi asimmetrica
- Analizzare i valori dell'attestazione
Le istruzioni per analizzare il valore dell'attestazione includono un riferimento a campi generali nell'attestazione, non specifici delle chiavi HSM in Cloud HSM.
Le sezioni seguenti illustrano come verificare le informazioni sulle chiavi che è specifico di Cloud HSM.
Verifica l'ID versione della chiave
Puoi verificare se l'hash SHA-256 dell'ID risorsa della versione della chiave è
presente nell'attestazione. Il nome della risorsa della chiave fa parte di 0x0102
o ID chiave nel file di attestazione. L'ID chiave è composto da due
digest di hash SHA-256 concatenati in formato esadecimale. Il secondo dovrebbe corrispondere
il nome della risorsa della chiave.
Recupera l'ID risorsa della versione della chiave. Puoi utilizzare lo nella console Google Cloud per ottenere l'ID risorsa della versione della chiave oppure puoi eseguire questo comando:
gcloud kms keys versions list \ --location location \ --keyring key-ring-name \ --key key-name
Nella riga di comando, assegna
resource_name
all'ID risorsa della versione della chiave appena recuperato.RESOURCE_NAME="projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/cryptoKeyVersions/key-version"
Poiché lo script di analisi scarica tutti i campi di attestazione in formato esadecimale, la chiave L'ID è stato formattato due volte nel formato esadecimale. (una volta durante la creazione del keyID, l'altra durante l'analisi dell'attestazione). per verificare che la risorsa corrisponde all'ID della chiave, converti il nome della risorsa in un digest esadecimale SHA-256 ripristinare una conversione esadecimale dell'ID chiave nel file di attestazione e confrontare i due.
RESOURCE_NAME_HEX="$(echo -n ${RESOURCE_NAME} | openssl dgst -sha256 -hex | awk '{print $2}')"
Lo script di analisi esegue il dump di tutti i campi di attestazione in formato esadecimale e l'ID chiave viene codificato internamente in esadecimale una seconda volta. Imposta l'ambiente
KEYID_HEX
al valore dell'ID chiave con un livello di codifica esadecimale decodificato:KEYID_HEX=$(grep -m 1 0x0102 /path/to/parsed/attestation.dat | awk '{print $2}' | xxd -p -r)
Confronta i valori di
RESOURCE_NAME_HEX
eKEYID_HEX
come stringhe:test ${RESOURCE_NAME_HEX} == ${KEYID_HEX:(-64)} || echo "Values don't match"
Se i valori corrispondono, non viene restituito alcun output e il comando si chiude con codice
0
.
Verifica le altre proprietà della chiave
Puoi visualizzare varie proprietà chiave che corrispondono nello standard PKCS #11. Utilizza quanto segue esempi come guide per verificare altre proprietà della chiave.
L'indicazione Se una chiave è estraibile viene archiviata nel campo
0x0102
della come output. Per determinare se una chiave è estraibile, esamina il campo0x0162
. Il valore\x01
ètrue
, mentre il valore\x00
èfalse
.Le chiavi Cloud HSM non sono estraibili.
grep '0x0162:' /path/to/parsed/attestation.dat
Modalità di entrata della chiave nell'HSM (se è stata creata direttamente o importato) viene archiviato nel campo
0x0163
. Se la chiave è stata creata localmente su HSM, il campo è impostato su\x01
. Un Il campo della chiave importata è impostato su\x00
.Puoi dedurre alcune informazioni da come è nata la chiave HSM. Se la chiave è stata creata in Cloud HSM, significa che è non sono mai state archiviate non criptate all'esterno di un HSM. Se la chiave è stata importata, il meccanismo di importazione garantisce che la chiave sia protetta durante il transito e poi in Cloud HSM in seguito.
grep '0x0163:' /path/to/parsed/attestation.dat
Il tipo di una chiave viene memorizzato nel campo
0x0100
. I tipi di chiavi sono documentati in lo standard PCKS#11 con prefissoCKK_*
. Ad esempio, una chiave AES ha un tipo di\x1f
.grep '0x0100:' /path/to/parsed/attestation.dat
Informazioni aggiuntive
Verifichi un'attestazione per determinare se è stata creata una versione della chiave all'interno di un HSM.