Share via


Tipi di chiave, algoritmi e operazioni

Key Vault supporta due tipi di risorse: insiemi di credenziali e moduli di protezione hardware gestiti. Entrambi i tipi di risorse supportano diverse chiavi di crittografia. Per un riepilogo dei tipi di chiave supportati, i tipi di protezione per ogni tipo di risorsa, vedere Informazioni sulle chiavi.

La tabella seguente mostra un riepilogo dei tipi di chiave e degli algoritmi supportati.

Tipi di chiave/dimensioni/curve Crittografa/Decrittografa
(Wrapping/Annullamento del wrapping)
Firma/Verifica
EC-P256, EC-P256K, EC-P384, EC-P521 N/D ES256
ES256K
ES384
ES512
RSA 2K, 3K, 4K RSA1_5
RSA-OAEP
RSA-OAEP-256
PS256
PS384
PS512
RS256
RS384
RS512
RSNULL
AES a 128 bit, a 256 bit
(solo modulo di protezione hardware gestito)
AES-KW
AES-GCM
AES-CBC
N/D

Algoritmi EC

Gli identificatori di algoritmo seguenti sono supportati con le chiavi EC-HSM

Tipi di curva

SIGN//VERIFY

  • ES256 - ECDSA per digest e chiavi SHA-256 creati con la curva P-256. Questo algoritmo è descritto in RFC7518.
  • ES256K - ECDSA per digest e chiavi SHA-256 creati con la curva P-256K. Questo algoritmo è in attesa di standardizzazione.
  • ES384 - ECDSA per digest e chiavi SHA-384 creati con la curva P-384. Questo algoritmo è descritto in RFC7518.
  • ES512 - ECDSA per digest e chiavi SHA-512 creati con la curva P-521. Questo algoritmo è descritto in RFC7518.

Algoritmi RSA

Gli identificatori di algoritmo seguenti sono supportati con le chiavi RSA e RSA-HSM

ESEGUI/NON ESEGUIRE IL WRAPPING DELLA CHIAVE, CRITTOGRAFA/DECRITTOGRAFA

  • RSA1_5: crittografia della chiave RSAES-PKCS1-V1_5 [RFC3447]
  • RSA-OAEP: RSAES con OAEP (Optimal Asymmetric Encryption Padding) [RFC3447] con i parametri predefiniti specificati da RFC 3447 nella sezione A.2.1. Tali parametri predefiniti usano una funzione hash di SHA-1 e una funzione di generazione della maschera MGF1 con SHA-1.
  • RSA-OAEP-256: RSAES con OAEP (Optimal Asymmetric Encryption Padding) con una funzione hash SHA-256 e una funzione di generazione della maschera di MGF1 con SHA-256

SIGN//VERIFY

  • PS256 - RSASSA-PSS tramite SHA-256 e MGF1 con SHA-256, come descritto in RFC7518.
  • PS384 - RSASSA-PSS tramite SHA-384 e MGF1 con SHA-384, come descritto in RFC7518.
  • PS512 - RSASSA-PSS tramite SHA-512 e MGF1 con SHA-512, come descritto in RFC7518.
  • RS256: RSASSA-PKCS-v1_5 tramite SHA-256. Il valore di digest dell'applicazione fornito deve essere calcolato tramite SHA-256 e deve avere una lunghezza di 32 byte.
  • RS384: RSASSA-PKCS-v1_5 tramite SHA-384. Il valore di digest dell'applicazione fornito deve essere calcolato tramite SHA-384 e deve avere una lunghezza di 48 byte.
  • RS512: RSASSA-PKCS-v1_5 tramite SHA-512. Il valore di digest dell'applicazione fornito deve essere calcolato tramite SHA-512 e deve avere una lunghezza di 64 byte.
  • RSNULL: vedere RFC2437, un caso di utilizzo specializzato per abilitare determinati scenari TLS.

Nota

DigestInfo viene costruito sul lato server per le operazioni di firma generate dagli algoritmi RS256, RS384 e RS512.

Algoritmi di chiave simmetrica (solo HSM gestito)

  • AES-KW: wrapping delle chiavi AES (RFC3394).
  • AES-GCM - Crittografia AES in modalità contatore Galois (NIST SP 800-38d)
  • AES-CBC - Crittografia AES in modalità concatenamento a blocchi crittografati (NIST SP 800-38a)

Nota

Gli algoritmi di firma e verifica delle operazioni devono corrispondere al tipo di chiave. In caso contrario, il servizio restituirà le dimensioni della chiave non è corretto.

Operazioni relative alle chiavi

Key Vault, incluso il modulo di protezione hardware gestito, supporta le operazioni seguenti sugli oggetti chiave:

  • Create: consente al client di creare una chiave in Key Vault. Il valore della chiave viene generato da Key Vault e archiviato e non viene rilasciato al cliente. In Key Vault è possibile creare chiavi asimmetriche.
  • Import: consente al client di importare una chiave esistente in Key Vault. Le chiavi asimmetriche possono essere importate in Key Vault usando diversi metodi di creazione di pacchetti all'interno di un costrutto JWK.
  • Update: consente a un client con autorizzazioni sufficienti di modificare i metadati (attributi chiave) associati a una chiave archiviata in precedenza in Key Vault.
  • Delete: consente a un client con autorizzazioni sufficienti di eliminare una chiave da Key Vault.
  • List: consente a un client di elencare tutte le chiavi di un determinato insieme di credenziali.
  • List versions: consente a un client di elencare tutte le versioni di una data chiave in un determinato insieme di credenziali.
  • Get: consente a un client di recuperare le parti pubbliche di una determinata chiave in un insieme di credenziali.
  • Backup: esporta una chiave in un formato protetto.
  • Ripristina: importa una chiave precedentemente sottoposta a backup.
  • Versione: rilascia in modo sicuro una chiave per il codice autorizzato in esecuzione all'interno di un ambiente di calcolo riservato. Richiede un'attestazione che l'ambiente di esecuzione attendibile (T edizione Enterprise) soddisfi i requisiti del release_policy della chiave.
  • Ruota: ruotare una chiave esistente generando una nuova versione della chiave (solo Key Vault).

Per altre informazioni, vedere le operazioni relative alle chiavi nell'articolo di riferimento all'API REST di Key Vault.

Dopo aver creato una chiave in Key Vault, sarà possibile eseguire le operazioni crittografiche seguenti usando tale chiave:

  • Firma e verifica: in senso stretto, si tratta di "firmare hash" o "verificare hash", poiché Key Vault non supporta l'hashing del contenuto durante la creazione della firma. Le applicazioni devono eseguire l'hashing dei dati per la firma locale e quindi richiedere a Key Vault la firma dell'hash. La verifica degli hash firmati è supportata come operazione utile per le applicazioni che non possono accedere al materiale delle chiavi [pubblico]. Per ottenere prestazioni ottimali delle applicazioni, è consigliabile eseguire le operazioni VERIFY in locale.
  • Crittografia tramite chiave/Wrapping: una chiave archiviata in Key Vault può essere usata per proteggere un'altra chiave, in genere una chiave CEK (Content Encryption Key) simmetrica. Quando la chiave in Key Vault è asimmetrica, viene usata la crittografia della chiave. Ad esempio, RSA-OAEP e le operazioni WRAPKEY/UNWRAPKEY equivalgono a ENCRYPT/DECRYPT. Quando la chiave in Key Vault è simmetrica, viene usato il wrapping della chiave, ad esempio AES-KW. L'operazione WRAPKEY è supportata come strumento utile per le applicazioni che non possono accedere al materiale delle chiavi [pubblico]. Per ottenere prestazioni ottimali dalle applicazioni, le operazioni WRAPKEY devono essere eseguite in locale.
  • Crittografia e decrittografia: una chiave archiviata in Key Vault può essere usata per crittografare o decrittografare un singolo blocco di dati. Le dimensioni del blocco sono determinate dal tipo di chiave e dall'algoritmo di crittografia selezionato. L'operazione Encrypt viene fornita per comodità per le applicazioni che non possono accedere al materiale delle chiavi [pubblico]. Per prestazioni ottimali delle applicazioni, è consigliabile eseguire le operazioni ENCRYPT in locale.

Anche se WRAPKEY/UNWRAPKEY con chiavi asimmetriche possono sembrare superflue (in quanto equivalenti a ENCRYPT/DECRYPT), l'uso di operazioni distinte è importante. La distinzione assicura la separazione delle operazioni a livello di semantica e autorizzazioni e garantisce coerenza quando sono supportati altri tipi di chiave da parte del servizio.

Key Vault non supporta le operazioni EXPORT. Una volta effettuato il provisioning di una chiave nel sistema, la chiave non può essere estratta e il relativo materiale non può essere modificato. Tuttavia, è possibile che gli utenti di Key Vault richiedano la chiave per altri casi d'uso, ad esempio dopo che è stata eliminata. In casi di questo tipo, è possibile usare le operazioni BACKUP e RESTORE per esportare o importare la chiave in un formato protetto. Le chiavi create dall'operazione BACKUP non possono essere usate all'esterno di Key Vault. In alternativa, l'operazione IMPORT può essere usata a fronte di più istanze di Key Vault.

Gli utenti possono limitare le operazioni crittografiche supportate da Key Vault per ciascuna chiave usando la proprietà key_ops dell'oggetto JWK.

Per ulteriori informazioni sugli oggetti JWK, vedere JSON Web Key (JWK).

Operazioni dei criteri di rotazione delle chiavi

La rotazione automatica delle chiavi dell'insieme di credenziali delle chiavi può essere impostata configurando i criteri di rotazione automatica delle chiavi. È disponibile solo nella risorsa Key Vault.

  • Ottenere i criteri di rotazione: recuperare la configurazione dei criteri di rotazione.
  • Imposta criteri di rotazione: imposta la configurazione dei criteri di rotazione.

Attributi della chiave

Oltre al materiale della chiave,è possibile specificare gli attributi seguenti. In una richiesta JSON la parola chiave attributes e le parentesi graffe, '{' '}', sono obbligatorie anche se non sono stati specificati attributi.

  • enabled boolean, facoltativo, il valore predefinito è true. Specifica se la chiave è abilitata e utilizzabile per le operazioni di crittografia. L'attributo abilitato viene usato con nbf ed exp. Quando si verifica un'operazione tra nbf ed exp, sarà consentita solo se abilitato è impostato su true. Le operazioni esterne alla finestra nbf / exp non sono consentite automaticamente, ad eccezione di decrittografia, rilascio, annullamento del wrapping e verifica.
  • nbf: il valore predefinito IntDate facoltativo è adesso. L'attributo nbf (non prima) identifica l'ora prima della quale la chiave NON DEVE essere usata per le operazioni di crittografia, ad eccezione di decrittografia, rilascio, annullamento del wrapping e verifica. L'elaborazione dell’attributo nbf richiede che la data/ora corrente SIA successiva o uguale a data/ora non precedente elencata nell’attributo nbf. Key Vault PUÒ concedere un minimo margine temporale, in genere non più di qualche minuto, per tenere conto dello sfasamento di orario. Il valore DEVE essere un numero contenente un valore IntDate.
  • nbf: il valore predefinito IntDate facoltativo è "per sempre". L'attributo exp (scadenza) identifica l'ora di scadenza in o dopo la quale la chiave NON DEVE essere usata per l'operazione di crittografia, ad eccezione di decrittografia, rilascio, annullamento del wrapping e verifica. L'elaborazione dell’attributo exp richiede che la data/ora corrente SIA precedente a data/ora di scadenza elencata nell’attributo exp. Key Vault PUÒ concedere un minimo margine temporale, in genere non più di qualche minuto, per tenere conto dello sfasamento di orario. Il valore DEVE essere un numero contenente un valore IntDate.

In qualsiasi risposta sono inclusi altri attributi di sola lettura che includono attributi chiave:

  • created: IntDate, facoltativo. L’attributo creato indica quando è stata creata questa versione della chiave. Il valore è null per le chiavi create prima dell'aggiunta di questo attributo. Il valore DEVE essere un numero contenente un valore IntDate.
  • updated: IntDate, facoltativo. L’attributo aggiornato indica quando è stata aggiornata questa versione della chiave. Il valore è null per le chiavi che sono state aggiornate per l'ultima volta prima dell'aggiunta di questo attributo. Il valore DEVE essere un numero contenente un valore IntDate.
  • hsmPlatform: stringa, facoltativa. Piattaforma HSM sottostante che protegge una chiave.
    • Un valore hsmPlatform pari a 2 indica che la chiave è protetta dalla piattaforma HSM convalidata FIPS 140 Livello 3 più recente.
    • Un valore hsmPlatform pari a 1 indica che la chiave è protetta dalla piattaforma HSM convalidata fips 140 livello 2 precedente.
    • Un valore hsmPlatform pari a 0 indica che la chiave è protetta da un modulo di crittografia software FIPS 140 Livello 1.
    • se questo non è impostato da un pool di moduli di protezione hardware gestiti, è protetto dalla piattaforma HSM convalidata FIPS 140 Livello 3 più recente.

È importante notare che le chiavi sono associate al modulo di protezione hardware in cui sono state create. Le nuove chiavi vengono create e archiviate senza problemi nei nuovi moduli di protezione hardware. Anche se non è possibile eseguire la migrazione o il trasferimento delle chiavi, le nuove versioni delle chiavi si trovano automaticamente nei nuovi moduli di protezione hardware. Per altre informazioni su come eseguire la migrazione a una nuova chiave, vedere Come eseguire la migrazione dei carichi di lavoro chiave.

Per altre informazioni su IntDate e altri tipi di dati, vedere [Informazioni su chiavi, segreti e certificati: tipi di dati.

Operazioni controllate in base a data e ora

Le chiavi non ancora valide e scadute, all'esterno della finestra nbf / exp , funzioneranno per le operazioni di decrittografia, rilascio, annullamento del wrapping e verifica (non restituirà 403, Accesso negato). La logica per l'utilizzo di stato non ancora valido consiste nel consentire a una chiave di essere sottoposta a test prima dell'uso di produzione. La logica per l'utilizzo di stato scaduto consiste nel consentire operazioni di ripristino sui dati creati quando la chiave risultava valida. Inoltre, è possibile disabilitare l'accesso a una chiave usando i criteri di Key Vault, o aggiornando l’attributo chiave abilitato per falso.

Per altre informazioni sui tipi di dati, vedere Tipi di dati.

Per altre informazioni su altri possibili attributi, vedere JSON Web Key (JWK).

Tag della chiave

È possibile specificare metadati aggiuntivi specifici dell'applicazione sotto forma di tag. Key Vault supporta fino a 15 tag, ognuno dei quali può avere un nome di 256 caratteri e un valore di 256 caratteri.

Nota

Un chiamante può leggere i tag se ha l'autorizzazione list o get per la chiave.

Controllo di accesso per le chiavi

Controllo di accesso per le chiavi gestite da Key Vault fornito a livello di un Key Vault che funge da contenitore delle chiavi. È possibile controllare l'accesso alle chiavi usando il controllo degli accessi in base al ruolo di Key Vault (scelta consigliata) o il modello di autorizzazione dei criteri di accesso dell'insieme di credenziali precedente. Il modello di autorizzazione basato sui ruoli ha tre ruoli predefiniti per gestire le chiavi: 'Key Vault Crypto Officer', 'Key Vault Crypto User', 'Key Vault Service Encryption User' e può essere limitato a livello di sottoscrizione, gruppo di risorse o insieme di credenziali.

Autorizzazioni del modello di autorizzazione dei criteri di accesso dell'insieme di credenziali:

  • Autorizzazioni per le operazioni di gestione delle chiavi

    • ottieni: leggere la parte pubblica di una chiave e i relativi attributi
    • elenca: elencare le chiavi o le versioni di una chiave archiviata in un insieme di credenziali delle chiavi
    • aggiorna: aggiornare gli attributi per una chiave
    • crea: creare nuove chiavi
    • importa: importare una chiave in un insieme di credenziali delle chiavi
    • elimina: eliminare l'oggetto chiave
    • recover: consente di recuperare una chiave eliminata
    • backup: consente di eseguire il backup di una chiave in un insieme di credenziali delle chiavi
    • ripristina: ripristinare una chiave precedentemente sottoposta a backup a un insieme di credenziali delle chiavi
  • Autorizzazioni per le operazioni di crittografia

    • decrittografa: usare la chiave per non custodire una sequenza arbitraria di byte
    • crittografa: usare la chiave per proteggere una sequenza arbitraria di byte
    • non eseguire il wrapping della chiave: usare la chiave per custodire una chiave simmetrica
    • esegui il wrapping della chiave: usare la chiave per custodire una chiave simmetrica
    • verifica: usare la chiave per firmare digest
    • firma: usare la chiave per firmare digest
  • Autorizzazioni per le operazioni con privilegi

    • purge: consente di ripulire (eliminare definitivamente) una chiave eliminata
    • release: rilasciare una chiave in un ambiente di confidential compute, che corrisponde al release_policy della chiave
  • Autorizzazioni per le operazioni dei criteri di rotazione

    • ruota: ruotare una chiave esistente generando una nuova versione della chiave (solo Key Vault)
    • ottenere i criteri di rotazione: recuperare la configurazione dei criteri di rotazione
    • impostare i criteri di rotazione: impostare la configurazione dei criteri di rotazione

Per altre informazioni sull'uso delle chiavi, vedere le operazioni relative alle chiavi in Key Vault REST API reference (Riferimenti sull'API REST di Key Vault).

Passaggi successivi