Utilizzare il tuo OVHcloud Key Management Service (KMS)
Crittografa o firma i tuoi dati con l'API REST regionale del Key Management Service (KMS) OVHcloud
Obiettivo
L'obiettivo di questa guida è presentare le diverse fasi per interagire con il KMS OVHcloud allo scopo di crittografare o firmare i tuoi dati.
Prerequisiti
- Disporre di un account cliente OVHcloud.
- Aver ordinato un KMS OVHcloud.
- Aver configurato un metodo di autenticazione per il piano dati OKMS (token di accesso personale, account di servizio o certificato di accesso).
Procedura
Comunicare con il KMS
La comunicazione con il KMS per le azioni di crittografia e di firma avviene tramite le API.
Poiché il KMS è regionalizzato, l'accesso all'API avviene direttamente nella sua regione: https://my-region.okms.ovh.net.
Ad esempio, per un KMS creato nella regione eu-west-rbx: https://eu-west-rbx.okms.ovh.net
È possibile comunicare con il KMS utilizzando:
- L'interfaccia utente Swagger
- La CLI OKMS: https://github.com/ovh/okms-cli
- L'SDK Golang: https://pkg.go.dev/github.com/ovh/okms-sdk-go
Autenticati tramite un token di accesso personale, un account di servizio o un certificato di accesso. Per l'utilizzo dell'API REST, si consiglia un token di accesso personale (PAT) o un account di servizio. I certificati di accesso sono obbligatori per le integrazioni KMIP.
Per testare le chiamate API in modo interattivo, utilizza l'interfaccia Swagger OKMS all'indirizzo https://<region>.okms.ovh.net/swagger/.
Creare una chiave di crittografia tramite API
La creazione di una chiave può essere effettuata tramite la oppure tramite le API specifiche del KMS OVHcloud. Non c'è alcuna differenza sul risultato in base al metodo di creazione.
Le route seguenti utilizzano l'identificativo del tuo dominio OKMS. Viene restituito dalla seguente chiamata API:
È visibile anche, insieme all'endpoint regionale, nella scheda Informazioni generali del .
Nel caso delle API specifiche del KMS OVHcloud, la creazione di una chiave avviene tramite la seguente API:
L'API prevede i seguenti valori:
Esempio di creazione di una chiave simmetrica:
Esempio di creazione di una chiave asimmetrica:
Esempio di creazione di una chiave EC:
Le dimensioni e le operazioni possibili in base al tipo di chiave sono le seguenti:
- oct:
- dimensione: 128, 192, 256
- operazioni:
- encrypt, decrypt
- wrapKey, unwrapKey
- RSA:
- dimensione: 2048, 3072, 4096
- operazioni:
- sign, verify
- wrapKey, unwrapKey
- EC:
- dimensione: non specificare
- curve: P-256, P-384, P-521
- operazioni: sign, verify
Per le chiavi RSA, wrapKey / unwrapKey sono mutuamente esclusive con sign / verify.
Importare una chiave di crittografia
Al momento della creazione di una chiave, è possibile importare una chiave esistente in chiaro in formato JWK.
L'importazione di materiale di chiave in chiaro non è consigliata per le chiavi che devono rimanere affidabili. Preferisci il BYOK sicuro con incapsulamento RSA asimmetrico.
A tale scopo, puoi aggiungere un campo supplementare keys nel corpo della richiesta:
La chiave deve essere in formato JSON Web Key (JWK). Il valore dei campi contenuti nella tabella segue la documentazione della RFC 7518.
Gestire le chiavi di crittografia
Per gestire le chiavi di crittografia, sono disponibili diverse API:
La disattivazione di una chiave di crittografia implica che questa non sarà più utilizzabile, benché la chiave resti presente nel KMS.
L'eliminazione di una chiave di crittografia è possibile solo su una chiave precedentemente disattivata.
L'eliminazione di una chiave di crittografia è definitiva. Tutti i dati crittografati con essa saranno definitivamente inaccessibili.
Attributi di sensibilità delle chiavi di servizio
Quando crei o recuperi una chiave di servizio, gli indicatori di sensibilità ed estraibilità vengono restituiti nell'oggetto attributes della risposta GET (insieme ad altri metadati come state). Solo extractable è impostabile dall'utente (alla creazione o tramite PATCH). Gli altri indicatori sono impostati dal KMS. Impostare extractable su true fissa definitivamente never_extractable su false.
Esempio di risposta GET (campi abbreviati):
Per estrarre una chiave in modo sicuro, imposta extractable su true solo per l'operazione di esportazione, esportala con incapsulamento RSA, poi riportalo su false. Consulta Esportare una chiave incapsulata.
Crittografare un dato con il KMS
Crittografia sul KMS
Il KMS OVHcloud dispone di un'API di crittografia dedicata per la crittografia di piccoli volumi di dati (meno di 4 kB).
Si tratta del metodo più semplice, ma che non offre le migliori prestazioni.
L'API prevede i seguenti valori:
Esempio di crittografia
L'API restituisce poi il dato crittografato in un campo ciphertext:
La decrittografia del dato avviene in modo inverso tramite l'API:
L'API prevede i seguenti valori:
Il campo context deve avere lo stesso valore di quello indicato durante la crittografia.
Crittografia con una Data Key (DK)
Per ottenere prestazioni migliori, è possibile generare una Data Key (DK) a partire da una chiave simmetrica (AES) per utilizzarla dalla tua applicazione.
La chiave AES utilizzata deve essere stata generata con le operazioni wrapKey e unwrapKey.
La generazione di una DK avviene tramite la seguente API:
L'API prevede i seguenti valori:
Esempio di generazione di una Data Key:
L'API restituirà poi la Data Key:
- key: chiave crittografata codificata in base64. Questa informazione deve essere memorizzata con il dato crittografato e sarà utilizzata per la decrittografia da parte del KMS.
- plaintext: chiave in chiaro codificata in base64. Questa informazione deve essere eliminata una volta effettuata la crittografia e non deve essere salvata.
L'utilizzo della Data Key avviene poi tramite algoritmi di crittografia come AES-GCM, che non è trattato in questa documentazione.
Al contrario, è possibile recuperare la versione decrittografata di una Data Key tramite la seguente API:
L'API prevede i seguenti valori:
E restituisce la Data Key decrittografata in un campo plaintext.
Firmare con il KMS
La firma di un file avviene tramite la chiave privata di una coppia di chiavi asimmetriche.
Algoritmi supportati
Il KMS OVHcloud supporta il seguente elenco di algoritmi di firma:
- RSASSA-PKCS1 v1.5
Secondo la documentazione della RFC 7518.
- ECDSA
Secondo la documentazione della RFC 7518.
- RSASSA-PSS
Secondo la documentazione della RFC 7518.
Firma di un messaggio
Dato che la chiave privata non può essere estratta in chiaro dal KMS, la firma può avvenire solo direttamente presso il KMS.
L'API prevede i seguenti valori:
Esempio di firma:
L'API restituirà poi la firma del file:
Verifica di un file
La verifica di un file può avvenire direttamente presso il KMS oppure utilizzando la chiave pubblica.
Presso il KMS, è possibile utilizzare la seguente API:
L'API prevede i seguenti valori:
Esempio di verifica
L'API restituirà poi il risultato della verifica:
Per saperne di più
Importare ed esportare chiavi su OVHcloud KMS con BYOK
Come connettere un prodotto compatibile utilizzando il protocollo KMIP
Contatta la nostra Community di utenti.