Utilizzo della classe Java KeyStore AWS CloudHSM per Client SDK 3 - AWS CloudHSM

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à.

Utilizzo della classe Java KeyStore AWS CloudHSM per Client SDK 3

La classe AWS CloudHSM KeyStore fornisce un archivio di chiavi PKCS12 per uso speciale che consente l'accesso alle chiavi AWS CloudHSM tramite applicazioni come keytool e jarsigner. Questo archivio chiavi può archiviare i certificati insieme ai dati chiave e correlarli ai dati chiave memorizzati su AWS CloudHSM.

Nota

Poiché i certificati sono informazioni pubbliche e, per massimizzare la capacità di archiviazione per le chiavi di crittografia, AWS CloudHSM non supporta l'archiviazione dei certificati sui moduli HSM.

La classe AWS CloudHSM KeyStore implementa l'Interfaccia del Provider del Servizio (SPI) KeyStore della Java Cryptography Extension (JCE). Per ulteriori informazioni sull'utilizzo di KeyStore, vedi Classe KeyStore.

Scegliere l'archivio chiavi appropriato

Il provider Java Cryptographic Extension (JCE) AWS CloudHSM viene fornito con un pass-through predefinito e di sola lettura che passa tutte le transazioni all'HSM. Questo archivio di chiavi predefinito è diverso da quello AWS CloudHSM per uso speciale. Nella maggior parte delle situazioni, è possibile ottenere prestazioni di runtime e velocità effettiva migliori utilizzando l'impostazione predefinita. È consigliabile utilizzare l'archivio di chiavi AWS CloudHSM solo per le applicazioni in cui è necessario il supporto per certificati e operazioni basate su certificati, oltre a scaricare le operazioni chiave nell'HSM.

Sebbene entrambi gli archivi di chiavi utilizzino il provider JCE per le operazioni, sono entità indipendenti e non scambiano informazioni tra loro.

Carica l'archivio chiavi predefinito per l'applicazione Java come segue:

KeyStore ks = KeyStore.getInstance("Cavium");

Carica il KeyStore CloudHSM per scopi speciali come segue:

KeyStore ks = KeyStore.getInstance("CloudHSM")

Inizializzazione di KeyStore AWS CloudHSM

Accedi all'archivio chiavi AWS CloudHSM nello stesso modo in cui accedi al provider JCE per . È possibile utilizzare le variabili di ambiente o il file delle proprietà di sistema ed è necessario accedere prima di iniziare a utilizzare l'archivio chiavi di CloudHSM. Per un esempio di accesso a un HSM utilizzando JCE, vedi Accedi a un HSM.

Se lo desideri, è possibile specificare una password per crittografare il file PKCS12 locale che contiene i dati dell'archivio chiavi. Quando crei l'archivio chiavi AWS CloudHSM, imposti la password e la fornisci quando usi i metodi di caricamento, impostazione e ottenimento.

Istanziare un nuovo oggetto KeyStore CloudHSM come segue:

ks.load(null, null);

Scrivere i dati del keystore in un file utilizzando il metodo store. Da quel momento in poi, puoi caricare l'archivio chiavi esistente utilizzando il metodo load con il file sorgente e la password come segue:

ks.load(inputStream, password);

Usare KeyStore AWS CloudHSM

Un oggetto KeyStore CloudHSM viene generalmente utilizzato attraverso un'applicazione di terze parti come jarsigner o keytool. Puoi anche accedere direttamente all'oggetto con il codice.

KeyStore AWS CloudHSM è conforme alle specifiche JCE Classe KeyStore e fornisce le seguenti funzioni.

  • load

    Carica l'archivio chiavi dal flusso di input specificato. Se durante il salvataggio dell'archivio chiavi è stata impostata una password, è necessario fornire questa stessa password affinché il caricamento abbia esito positivo. Impostare entrambi i parametri su nulla per inizializzare un nuovo archivio di chiavi vuoto.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); ks.load(inputStream, password);
  • aliases

    Restituisce un'enumerazione dei nomi alias di tutte le voci nell'istanza dell'archivio chiavi considerato. I risultati includono gli oggetti archiviati localmente nel file PKCS12 e gli oggetti residenti in HSM.

    Esempio di codice:

    KeyStore ks = KeyStore.getInstance("CloudHSM"); for(Enumeration<String> entry = ks.aliases(); entry.hasMoreElements();) { String label = entry.nextElement(); System.out.println(label); }
  • ContainsAlias

    Restituisce vero se l'archivio chiavi ha accesso ad almeno un oggetto con l'alias specificato. L'archivio chiavi controlla gli oggetti archiviati localmente nel file PKCS12 e gli oggetti residenti nell'HSM.

  • DeleteEntry

    Elimina una voce di certificato dal file PKCS12 locale. L'eliminazione dei dati chiave archiviati in un HSM non è supportata utilizzando il KeyStore AWS CloudHSM. È possibile eliminare le chiavi con lo strumento key_mgmt_util di CloudHSM.

  • GetCertificate

    Restituisce il certificato associato a un alias, se disponibile. Se l'alias non esiste o fa riferimento a un oggetto che non è un certificato, la funzione restituisce NULLA.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); Certificate cert = ks.getCertificate(alias)
  • GetCertificateAlias

    Restituisce il nome (alias) della prima voce dell'archivio chiavi i cui dati corrispondono al certificato specificato.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); String alias = ks.getCertificateAlias(cert)
  • GetCertificateChain

    Restituisce la catena di certificati associata all'alias specificato. Se l'alias non esiste o fa riferimento a un oggetto che non è un certificato, la funzione restituisce NULLA.

  • GetCreationDate

    Restituisce la data di creazione della voce identificata dall'alias specificato. Se una data di creazione non è disponibile, la funzione restituisce la data in cui il certificato è diventato valido.

  • GetKey

    GetKey viene passato all'HSM e restituisce un oggetto chiave corrispondente all'etichetta specificata. Poiché getKey interroga direttamente l'HSM, può essere utilizzato per qualsiasi chiave sull'HSM indipendentemente dal fatto che sia stata generata dall'archivio chiavi.

    Key key = ks.getKey(keyLabel, null);
  • IsCertificateEntry

    Controlla se la voce con l'alias specificato rappresenta una voce di certificato.

  • IsKeyEntry

    Controlla se la voce con l'alias specificato rappresenta una voce chiave. L'azione cerca l'alias sia nel file PKCS12 che nell'HSM.

  • SetCertificateEntry

    Assegna il certificato dato all'alias specificato. Se l'alias specificato è già in uso per identificare una chiave o un certificato, viene generata una KeyStoreException. È possibile utilizzare il codice JCE per ottenere l'oggetto chiave e quindi utilizzare il metodo KeyStore SetKeyEntry per associare il certificato alla chiave.

  • SetKeyEntry con chiave byte[]

    Questa API non è attualmente supportata con Client SDK 3.

  • SetKeyEntry con oggetto Key

    Assegna la chiave considerata all'alias specificato e la memorizza all'interno dell'HSM. Se l'oggetto Key non è di tipo CaviumKey, la chiave viene importata nell'HSM come chiave di sessione estraibile.

    Se l'oggetto Key è di tipo PrivateKey, deve essere accompagnato da una catena di certificati corrispondente.

    Se l'alias esiste già, la chiamata SetKeyEntry genera un KeyStoreException e impedisce la sovrascrittura della chiave. Se la chiave deve essere sovrascritta, utilizza KMU o JCE a tale scopo.

  • EngineSize

    Restituisce il numero di voci nell'archivio chiavi.

  • Store

    Memorizza l'archivio delle chiavi nel flusso di output specificato come file PKCS12 e lo protegge con la password indicata. Inoltre, persiste tutte le chiavi caricate (che sono impostate usando le chiamate setKey).