Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive i principali tipi di chiave, algoritmi, attributi e operazioni di Azure Key Vault (insiemi di credenziali). Per il riferimento equivalente per HSM gestito, vedere Tipi di chiavi, algoritmi e operazioni (HSM gestito). Per un riepilogo dei tipi di chiave supportati per risorsa, vedere Informazioni sulle chiavi.
Nella tabella seguente viene illustrato un riepilogo dei tipi di chiave e degli algoritmi supportati in Key Vault. Per informazioni dettagliate sugli algoritmi simmetrici (oct-HSM/AES) e sul segno/verifica HMAC, vedere Algoritmi di chiave simmetrica.
| Tipologie di chiavi/dimensioni/curve | Encrypt/Decrypt (Wrap/Unwrap) |
Sign/Verify |
|---|---|---|
| EC-P256, EC-P256K, EC-P384, EC-P521 | NA | ES256 ES256K ES384 ES512 |
| RSA 2K, 3K, 4K | RSA-OAEP-256 [Non consigliato] RSA1_5 [Non consigliato] RSA-OAEP |
PS256 PS384 PS512 RS256 RS384 RS512 RSNULL |
| oct-HSM 128, 192, 256 (Premium; anteprima) | AES-KW AES-GCM AES-CBC |
HS256 HS384 HS512 |
Algoritmi EC
Gli identificatori di algoritmo seguenti sono supportati con le chiavi EC-HSM.
Tipi di curva
- P-256 - Curva NIST P-256, definita in DSS FIPS PUB 186-4.
- P-256K : curva SEC SECP256K1, definita in SEC 2: parametri di dominio curva ellittica consigliati.
- P-384 - Curva NIST P-384, definita in DSS FIPS PUB 186-4.
- P-521 - Curva NIST P-521, definita in DSS FIPS PUB 186-4.
SIGN/VERIFY
- ES256 - ECDSA per digest e chiavi SHA-256 creati con la curva P-256. Questo algoritmo viene 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 viene descritto in RFC7518.
- ES512 - ECDSA per digest e chiavi SHA-512 creati con la curva P-521. Questo algoritmo viene descritto in RFC7518.
Algoritmi RSA
Gli identificatori di algoritmo seguenti sono supportati con RSA e chiavi RSA-HSM.
ESEGUI/NON ESEGUIRE IL WRAPPING DELLA CHIAVE, CRITTOGRAFA/DECRITTOGRAFA
- RSA-OAEP-256 - RSAES che utilizza Optimal Asymmetric Encryption Padding con funzione hash SHA-256 e funzione di generazione della maschera MGF1 con SHA-256.
- [Non consigliato] RSA1_5 : crittografia della chiave RSAES-PKCS1-V1_5 [RFC3447].
- [Non consigliato] RSA-OAEP - RSAES con padding 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.
Warning
Microsoft consiglia di usare algoritmi RSA_OAEP_256 o più avanzati per una maggiore sicurezza.
Microsoft non consiglia RSA_1_5 e RSA_OAEP. Questi algoritmi sono inclusi solo per la compatibilità con le versioni precedenti. Gli standard crittografici non considerano più RSA con lo schema di riempimento PKCS#1 v1.5 sicuro per la crittografia. RSA_OAEP usa SHA1, che presenta problemi di collisione noti.
SIGN/VERIFY
- PS256 : RSASSA-PSS usando SHA-256 e MGF1 con SHA-256, come descritto in RFC7518.
- PS384 : RSASSA-PSS usando SHA-384 e MGF1 con SHA-384, come descritto in RFC7518.
- PS512 : RSASSA-PSS usando SHA-512 e MGF1 con SHA-512, come descritto in RFC7518.
- RS256 - RSASSA-PKCS-v1_5 con 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 utilizzando 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 con 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 d'uso specializzato per abilitare determinati scenari TLS.
Note
Per prestazioni migliori, usare la modalità di riempimento RSA-PSS. Il server costruisce digestInfo per le operazioni di firma che algoritmi RS256, RS384 e RS512 generano.
Algoritmi di chiave simmetrica
Importante
Il supporto della chiave simmetrica (oct-HSM/AES) in Azure Key Vault Premium è attualmente disponibile in anteprima pubblica. Le dimensioni delle chiavi supportate sono a 128 bit, a 192 bit e a 256 bit. Le funzionalità di anteprima vengono fornite as-is, senza contratto di servizio e non sono consigliate per i carichi di lavoro di produzione. Per ulteriori informazioni, vedere Condizioni supplementari per l'uso delle versioni di anteprima di Microsoft Azure.
Gli identificatori di algoritmo seguenti sono supportati con chiavi oct-HSM (symmetric/AES) in Azure Key Vault Premium.
ESEGUI/NON ESEGUIRE IL WRAPPING DELLA CHIAVE, CRITTOGRAFA/DECRITTOGRAFA
- AES-KW - Wrapping della chiave AES, come descritto in RFC3394.
- AES-GCM - Crittografia AES in modalità contatore Galois (NIST SP 800-38d).
- AES-CBC - Crittografia AES in modalità concatenamento a blocchi di crittografia (NIST SP 800-38a).
Se usato con chiavi a 256 bit, questi algoritmi sono resistenti al quantum in base alle domande frequenti su Commercial National Security Algorithm Suite 2.0 e Quantum Computing.
FIRMA/VERIFICA (HMAC)
- HS256 - HMAC con SHA-256, come descritto in RFC7518.
- HS384 : HMAC con SHA-384, come descritto in RFC7518.
- HS512 : HMAC con SHA-512, come descritto in RFC7518.
Note
L'algoritmo di firma e verifica deve corrispondere al tipo di chiave e alle dimensioni. In caso contrario, il servizio restituisce una dimensione della chiave non corretta.
Per il supporto dell'algoritmo di chiave simmetrica (oct-HSM) in HSM gestito, vedere Tipi di chiavi, algoritmi e operazioni (HSM gestito).
Operazioni chiave
Per gli oggetti chiave sono supportate le operazioni seguenti:
- Crea: un client crea una chiave nel servizio. Il servizio genera e archivia il valore della chiave e non lo rilascia al client.
- Importazione: un client importa una chiave esistente nel servizio. Le chiavi asimmetriche possono essere importate usando diversi metodi di creazione pacchetti all'interno di un costrutto JWK.
- Aggiornamento: un client con autorizzazioni sufficienti modifica i metadati (attributi chiave) associati a una chiave archiviata in precedenza.
- Elimina: un client con autorizzazioni sufficienti elimina una chiave.
- Elenco: un client elenca tutte le chiavi nel servizio.
- Elenca le versioni: un client elenca tutte le versioni di una determinata chiave.
- Get: un client recupera le parti pubbliche di una determinata chiave. L'operazione get non restituisce la parte privata di una chiave asimmetrica, né il materiale della chiave di una chiave simmetrica.
- Backup: esporta una chiave in un modulo protetto.
- Ripristino: importa una chiave di cui è stato eseguito il backup in precedenza.
- Rilascio: Rilasciare in modo sicuro una chiave per il codice autorizzato in esecuzione all'interno di un ambiente di calcolo confidenziale. Richiede un'attestazione che l'Ambiente di esecuzione attendibile (TEE) soddisfi i requisiti della release_policy della chiave.
Dopo aver creato una chiave, è possibile eseguire le operazioni di crittografia seguenti:
- Firma e verifica: rigorosamente questa operazione è "hash di firma" o "verify hash", perché il servizio non esegue l'hash del contenuto come parte della creazione della firma. Le applicazioni devono eseguire l'hash dei dati da firmare in locale, quindi richiedere al servizio di firmare l'hash. La verifica degli hash firmati è disponibile per comodità per le applicazioni che potrebbero non avere accesso al materiale relativo alla chiave pubblica; per ottenere prestazioni ottimali, le operazioni di verifica devono essere eseguite localmente.
- Crittografia / incapsulamento della chiave: una chiave archiviata nel servizio può proteggere un'altra chiave, in genere una chiave di crittografia simmetrica del contenuto (CEK). Quando la chiave nel servizio è asimmetrica, usare la crittografia della chiave( ad esempio RSA-OAEP; WRAPKEY/UNWRAPKEY sono equivalenti a ENCRYPT/DECRYPT. Quando la chiave nel servizio è simmetrica, utilizzare la cifratura di incapsulamento della chiave, ad esempio AES-KW. WRAPKEY è supportato per praticità per le applicazioni che potrebbero non avere accesso al materiale della chiave pubblica; per ottenere prestazioni ottimali, le operazioni di wrapping devono essere eseguite localmente.
- Crittografa e decrittografia: una chiave archiviata nel servizio può crittografare o decrittografare un singolo blocco di dati. Le dimensioni del blocco sono determinate dal tipo di chiave e dall'algoritmo di crittografia selezionato. La crittografia viene fornita per praticità; per ottenere prestazioni ottimali, le operazioni di crittografia devono essere eseguite localmente.
L'uso di operazioni WRAPKEY/UNWRAPKEY distinte (anziché usare sempre ENCRYPT/DECRYPT) fornisce separazione semantica e autorizzazione e coerenza tra i tipi di chiave.
Il servizio non supporta le operazioni EXPORT. Una volta eseguito il provisioning di una chiave, non è possibile estrarla né modificarne il materiale crittografico. Per spostare una chiave, utilizzare le operazioni BACKUP e RESTORE per esportare o importare la chiave in un modulo protetto. Le chiavi prodotte da BACKUP non possono essere usate all'esterno del servizio.
È possibile limitare qualsiasi operazione crittografica in base alla chiave usando la key_ops proprietà dell'oggetto JWK.
Per altre informazioni sugli oggetti JWK, vedere JSON Web Key (JWK).
Oltre alle operazioni elencate in precedenza, Key Vault (insiemi di credenziali) supporta:
- Ruota: ruota una chiave esistente generando una nuova versione della chiave. Questa operazione è disponibile solo per le risorse Key Vault (non nel modulo di protezione hardware gestito).
Per ulteriori informazioni, vedere Operazioni chiave nella guida di riferimento dell'API REST di Key Vault.
Operazioni dei criteri di rotazione delle chiavi
Impostare la rotazione automatica delle chiavi configurando i criteri di rotazione automatica della chiave. Questa funzionalità è disponibile solo nelle risorse Key Vault.
- Ottenere i criteri di rotazione: recuperare la configurazione dei criteri di rotazione.
- Imposta criteri di rotazione: impostare la configurazione dei criteri di rotazione.
Attributi chiave
Oltre al materiale della chiave, è possibile specificare gli attributi seguenti. In una richiesta JSON. è necessario includere la parola chiave attributes e le parentesi graffe ({}) anche se non si specifica alcun attributo.
- enabled: valore booleano, facoltativo, predefinito è true. Specifica se la chiave è abilitata e utilizzabile per le operazioni di crittografia. Usare l'attributo abilitato con nbf ed exp. Quando si verifica un'operazione tra nbf ed exp, l'operazione è consentita solo se enabled è impostata su true. Le operazioni al di fuori della finestra nbf / exp vengono automaticamente negate, ad eccezione di decrittazione, release, unwrap e verifica.
- nbf: IntDate, facoltativo, il valore predefinito è ora. 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 quella non precedente a quella elencata nell'attributo nbf . Può essere consentito un piccolo margine di tolleranza (normalmente non superiore a pochi minuti) per tenere conto dello sfasamento dell'orologio. Il valore DEVE essere un numero contenente un valore IntDate.
- exp: IntDate, facoltativo, il valore predefinito è "forever". L'attributo exp (scadenza) identifica l'ora di scadenza in o dopo la 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 exp richiede che la data/ora corrente sia prima della data/ora di scadenza elencata nell'attributo exp . Un piccolo margine di tolleranza (in genere non superiore a pochi minuti) può essere concesso per tenere conto dello sfasamento dell'orologio. Il valore DEVE essere un numero contenente un valore IntDate.
Gli attributi di sola lettura seguenti sono inclusi in qualsiasi risposta che include 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 questa versione della chiave è stata aggiornata. Il valore è Null per le chiavi aggiornate prima dell'aggiunta di questo attributo. Il valore DEVE essere un numero contenente un valore IntDate.
Operazioni controllate in base a data e ora
Chiavi non ancora valide e scadute, all'esterno della finestra nbf / exp , funzionano per le operazioni di decrittografia, rilascio, annullamento del wrapping e verifica (non restituiscono 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. È anche possibile disabilitare l'accesso a una chiave aggiornando l'attributo abilitato su false.
Per altre informazioni sugli altri attributi possibili, vedere la specifica JWK (JSON Web Key).
Oltre agli attributi elencati in precedenza, le chiavi di Key Vault espongono:
-
hsmPlatform: string, opzionale. Piattaforma HSM sottostante che protegge una chiave.
- Un valore di
hsmPlatformindica che2significa che la chiave è protetta dalla più recente piattaforma HSM convalidata FIPS 140-3 di livello 3. - Un valore
hsmPlatformdi1significa che la chiave è protetta dalla precedente piattaforma HSM convalidata FIPS 140-2 livello 2. - Un
hsmPlatformvalore di0significa che la chiave è protetta da un modulo di crittografia software FIPS 140-2 livello 1.
- Un valore di
Le chiavi sono legate all'HSM in cui sono state create. Azure Key Vault crea automaticamente nuove chiavi e versioni chiave nella piattaforma HSM più recente. Non è possibile eseguire la migrazione o trasferire chiavi esistenti tra piattaforme. Per indicazioni sullo spostamento di carichi di lavoro in una nuova chiave, vedere Come eseguire la migrazione dei carichi di lavoro chiave.
Per altre informazioni su IntDate e altri tipi di dati, vedere Tipi di dati.
Tag 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.
Note
Se un chiamante dispone dell'elenco o ottiene l'autorizzazione per una chiave, può leggere i tag.
Controllo di accesso per le chiavi
Key Vault fornisce il controllo di accesso per le chiavi a livello di Key Vault, che funge da contenitore per le chiavi. È possibile controllare l'accesso alle chiavi usando il controllo degli accessi in base al ruolo di Azure per Key Vault (scelta consigliata) o il modello di autorizzazione legacy del criterio di accesso del vault. Azure RBAC è il modello di autorizzazione predefinito e consigliato. Ha tre ruoli predefiniti per gestire le chiavi: Key Vault Crypto Officer, Key Vault Crypto User e Key Vault Service Encryption User. È possibile definire l'ambito di questi ruoli a livello di sottoscrizione, gruppo di risorse o insieme di credenziali. Per ulteriori informazioni, vedere Azure RBAC vs. criteri di accesso.
Permessi del modello di autorizzazione dei criteri di accesso al Vault (legacy):
Autorizzazioni per le operazioni di gestione delle chiavi
- get: leggere la parte pubblica di una chiave, oltre ai relativi attributi
- list: elencare le chiavi o le versioni di una chiave archiviata in un vault delle chiavi
- update: aggiornare gli attributi per una chiave
- create: Creare nuove chiavi
- importa: importare una chiave in un insieme di credenziali delle chiavi
- delete: eliminare l'oggetto chiave
- recover: ripristinare una chiave eliminata
- backup: eseguire il backup di una chiave in un archivio delle chiavi
- ripristina: ripristinare una chiave precedentemente sottoposta a backup a un insieme di credenziali delle chiavi
Autorizzazioni per le operazioni di crittografia
- decrypt: usare la chiave per rimuovere la protezione di una sequenza di byte
- encrypt: usare la chiave per proteggere una sequenza arbitraria di byte
- unwrapKey: utilizzare la chiave per sbloccare le chiavi simmetriche incapsulate.
- wrapKey: usare la chiave per proteggere una chiave simmetrica
- verify: usare la chiave per verificare i digest
- sign: usare la chiave per firmare i digest
Autorizzazioni per le operazioni privilegiate
- ripulitura: ripulire (eliminare definitivamente) una chiave eliminata
-
release: Rilascia una chiave in un ambiente di calcolo riservato, che corrisponde alla
release_policychiave
Autorizzazioni per le operazioni dei criteri di rotazione
- ruota: ruotare una chiave esistente generando una nuova versione della chiave (solo Key Vault)
- get rotation policy: recuperare la configurazione dei criteri di rotazione
- set rotation policy: impostare la configurazione dei criteri di rotazione
Per ulteriori informazioni sull'uso delle chiavi, vedere le operazioni chiave del Key Vault nella guida di riferimento all'API REST.