Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Questo argomento fornisce informazioni sugli attributi chiave Java supportati per AWS CloudHSM Client SDK 5. In questo argomento viene descritto come utilizzare un'estensione proprietaria per il provider JCE per impostare attributi chiave. Utilizzare questa estensione per impostare gli attributi della chiave supportati e i relativi valori durante le operazioni seguenti:
Generazione delle chiavi
Importazione delle chiavi
Per esempi di utilizzo degli attributi chiave, vedi Esempi di codice per la libreria AWS CloudHSM software per Java for Client SDK 5.
Comprensione degli attributi
Gli attributi chiave vengono utilizzati per specificare le operazioni consentite su oggetti chiave, incluse le chiavi pubbliche, private o segrete. Gli attributi e i valori della chiave vengono definiti durante le operazioni di creazione degli oggetti chiave.
Tuttavia, la Java Cryptography Extension (JCE) non specifica come impostare i valori sugli attributi chiave, pertanto la maggior parte delle operazioni erano consentite per impostazione predefinita. Al contrario, lo standard PKCS# 11 definisce un set completo di attributi con valori predefiniti più restrittivi. A partire dal provider JCE 3.1, AWS CloudHSM fornisce un'estensione proprietaria che consente di impostare valori più restrittivi per gli attributi di uso comune.
Attributi supportati
Puoi impostare i valori per gli attributi elencati nella tabella sottostante. Come best practice, imposta i valori solo per gli attributi che desideri rendere restrittivi. Se non si specifica un valore, AWS CloudHSM utilizza il valore predefinito specificato nella tabella seguente. Una cella vuota nella colonna Valore predefinito indica che all'attributo non è stato assegnato alcun valore predefinito specifico.
Attributo | Valore predefinito | Note | ||
---|---|---|---|---|
Chiave simmetrica | Chiave pubblica in una coppia di chiavi | Chiave privata in una coppia di chiavi | ||
DECRYPT |
TRUE |
TRUE |
Il valore Vero indica che è possibile utilizzare la chiave per decodificare qualsiasi buffer. Questo attributo è in genere impostato su FALSO per una chiave il cui WRAP è impostato su vero. | |
DERIVE |
Consente di utilizzare una chiave per derivare altre chiavi. | |||
ENCRYPT |
TRUE |
TRUE |
Il valore Vero indica che è possibile utilizzare la chiave per crittografare qualsiasi buffer. | |
EXTRACTABLE |
TRUE |
TRUE |
Il valore Vero indica che è possibile esportare questa chiave dall'HSM. | |
ID |
|
|
Un valore definito dall'utente utilizzato per identificare la chiave. | |
KEY_TYPE |
Utilizzato per identificare il tipo di chiave (AES DESede, segreto generico, EC o RSA). | |||
LABEL |
Una stringa definita dall'utente che consente di identificare comodamente le chiavi sull'HSM. Per seguire le best practice, utilizza un'etichetta univoca per ogni chiave in modo che sia più facile trovarla in seguito. | |||
LOCAL |
Indica una chiave generata dall'HSM. | |||
OBJECT_CLASS |
Utilizzato per identificare la classe dell'oggetto di una chiave (SecretKey, PublicKey o PrivateKey). | |||
PRIVATE |
TRUE |
TRUE |
TRUE |
Il valore Vero indica che un utente potrebbe non poter accedere alla chiave finché l'utente non viene autenticato. Per motivi di chiarezza, gli utenti non possono accedere a nessuna chiave AWS CloudHSM finché non vengono autenticati, anche se questo attributo è impostato su FALSE. |
SIGN |
TRUE |
TRUE |
Il valore Vero indica che è possibile utilizzare la chiave per firmare un messaggio di digest. In genere viene impostato su FALSO per le chiavi pubbliche e per le chiavi private archiviate. | |
SIZE |
Un attributo che definisce la dimensione di una chiave. Per maggiori dettagli sulle dimensioni delle chiavi supportate, vedi Meccanismi supportati per Client SDK 5. | |||
TOKEN |
FALSE |
FALSE |
FALSE |
Una chiave permanente che viene replicata HSMs in tutto il cluster e inclusa nei backup. TOKEN = FALSO implica una chiave effimera, che viene cancellata automaticamente quando la connessione al HSM viene interrotta o ci si disconnette. |
UNWRAP |
TRUE |
TRUE |
Il valore Vero indica che è possibile utilizzare la chiave per annullare il wrapping (importazione) di un'altra chiave. | |
VERIFY |
TRUE |
TRUE |
Il valore Vero indica che è possibile utilizzare la chiave per verificare una firma. In genere è impostato su FALSO per chiavi private. | |
WRAP |
TRUE |
TRUE |
Il valore Vero indica che è possibile utilizzare la chiave per eseguire il wrapping di un'altra chiave. In genere viene impostato su FALSO per chiavi private. | |
WRAP_WITH_TRUSTED |
FALSE |
FALSE |
Il valore Vero indica che una chiave può essere soggetta a wrapping e ad annullamento del wrapping con chiavi con l'attributo TRUSTED impostato su vero. Una volta che una chiave ha il valore WRAP_WITH_TRUSTED impostato su vero, tale attributo è di sola lettura e non può essere impostato su falso. Per saperne di più sul wrapping di fiducia, vedi Utilizzo di chiavi fidate per controllare l'annullamento del wrapping delle chiavi. |
Nota
È possibile ottenere un supporto più ampio per gli attributi nella libreria PKCS #11. Per ulteriori informazioni, vedi Attributi PKCS #11 supportati.
Impostazione attributi per una chiave
KeyAttributesMap
è un oggetto simile a Java Map che puoi utilizzare per impostare i valori degli attributi per gli oggetti chiave. I metodi per la funzione KeyAttributesMap
sono simili a quelli utilizzati per la manipolazione della mappa Java.
Per impostare valori personalizzati sugli attributi, sono disponibili due opzioni:
Utilizzare i metodi elencati nella tabella seguente
Utilizzare i modelli di generatore illustrati più avanti in questo documento
Gli oggetti della mappa attributi supportano i seguenti metodi per impostare gli attributi:
Operazione | Valore restituito | Metodo KeyAttributesMap |
---|---|---|
Ottenere il valore di un attributo chiave per una chiave esistente | Oggetto (contenente il valore) o nulla |
get(keyAttribute) |
Inserire il valore di un attributo chiave | Il valore precedente associato all'attributo chiave o nulla se non esiste alcuna mappatura per un attributo chiave |
put(keyAttribute, value) |
Compilare i valori per più attributi chiave | N/D |
PutAll () keyAttributesMap |
Rimuovere una coppia chiave-valore dalla mappa degli attributi |
Il valore precedente associato all'attributo chiave o nulla se non esiste alcuna mappatura per un attributo chiave |
remove(keyAttribute) |
Nota
Eventuali attributi non specificati in modo esplicito vengono impostati sui valori predefiniti elencati nella tabella precedente in Attributi supportati.
Impostazione di attributi per una coppia di chiavi
Utilizza la classe Java KeyPairAttributesMap
per gestire gli attributi chiave per una coppia di chiavi. KeyPairAttributesMap
incapsula due oggetti KeyAttributesMap
; uno per una chiave pubblica e uno per una chiave privata.
Per impostare singoli attributi per la chiave pubblica e la chiave privata separatamente, puoi utilizzare il metodo put()
sull'oggetto mappa KeyAttributes
corrispondente per tale chiave. Utilizza il metodo getPublic()
per recuperare la mappa degli attributi per la chiave pubblica e utilizza getPrivate()
per recuperare la mappa degli attributi per la chiave privata. Compila il valore di più attributi chiave insieme per coppie di chiavi pubbliche e private utilizzando la putAll()
con una mappa degli attributi della coppia di chiavi come relativo argomento.