Configurazione di JCE
Utilizzare le informazioni riportate negli argomenti riportati di seguito per configurare il provider JCE Dedicated Key Management.
Impostazione della variabile di ambiente per il provider JCE
Impostare la variabile di ambiente seguente per utilizzare il provider JCE:
LD_LIBRARY_PATH: questa variabile deve includere il percorso della directory che contiene il file ocidkmsjca.so. L'uso di questa variabile consente a JCE di trovare le librerie java native necessarie per comunicare con l'HSM. Per le installazioni standard, la directory è /opt/oci/hsm/lib.
Aggiungere il provider JCE alla sicurezza Java
È necessario aggiungere il provider JCE alla configurazione di sicurezza Java per il sistema utilizzando uno dei metodi descritti in questa sezione.
Nel file JAVA_HOME, aggiungere il provider di sicurezza KMS dedicato OCI alla fine della lista dei provider di sicurezza. La voce del provider è la seguente:
security.provider.<list-number>=com.oracle.dkms.jce.provider.DedicatedKmsProvider-
Aprire il file java.security in un editor. Ad esempio, eseguire questo comando per aprire il file nell'editor VIM:
$ vim /usr/lib/jvm/java-11-openjdk/conf/security/java.security -
Aggiungere la voce alla fine dell'elenco dei provider di sicurezza nel file. Nell'esempio seguente, la voce viene aggiunta come
security.provider.13:$ vim /usr/lib/jvm/java-11-openjdk/conf/security/java.security security.provider.1=SUN security.provider.2=SunRsaSign security.provider.3=SunEC security.provider.4=SunJSSE security.provider.5=SunJCE security.provider.6=SunJGSS security.provider.7=SunSASL security.provider.8=XMLDSig security.provider.9=SunPCSC security.provider.10=JdkLDAP security.provider.11=JdkSASL security.provider.12=SunPKCS11 security.provider.13=com.oracle.dkms.jce.provider.DedicatedKmsProvider
Utilizzare il metodo addProvider nella classe Java di sicurezza per aggiungere il provider JCE, come indicato di seguito.
DedicatedKmsProvider provider = new DedicatedKmsProvider();
Security.addProvider(provider);
Per ulteriori informazioni, vedere addProvider nella documentazione di Java.
Autenticazione
Gli utenti vengono autenticati per il login a HSM mediante credenziali recuperate da diverse origini in un ordine di priorità specifico. Se vengono trovate credenziali valide in qualsiasi origine, il login viene completato. Se non vengono trovate credenziali valide, il login non riesce.
Origini credenziali e ordine priorità
Le credenziali di login vengono fornite dai meccanismi riportati di seguito.
-
CallbackHandler: se fornita, recupera le credenziali in modo dinamico. Ad esempio:
public class CustomCallbackHandler implements CallbackHandler { private final String username; private final char[] password; public CustomCallbackHandler(String username, char[] password) { this.username = username; this.password = password; } @Override public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (Callback callback : callbacks) { if (callback instanceof NameCallback) { ((NameCallback) callback).setName(username); } else if (callback instanceof PasswordCallback) { ((PasswordCallback) callback).setPassword(password); } else { throw new UnsupportedCallbackException(callback, "Unsupported callback type"); } } } } DedicatedKmsProvider provider = new DedicatedKmsProvider(); Security.addProvider(provider); CustomCallbackHandler handler = new CustomCallbackHandler(crypto_user, cupassword.toCharArray()); provider.login(null, handler); -
File HsmCredentials.properties: l'applicazione verifica la presenza di un file delle proprietà denominato
HsmCredentials.propertiesnel classpath. Se il file esiste e contiene credenziali valide, viene utilizzato per l'autenticazione. Questo file deve contenere:- HSM_USER = crypto_user
- HSM_PASSWORD = password
-
Proprietà del sistema Java: se le credenziali non vengono trovate nel file delle proprietà, vengono controllate le proprietà del sistema Java. I valori
HSM_USEReHSM_PASSWORDdovrebbero essere impostati come proprietà di sistema. È possibile impostarle utilizzando i flag-Ddurante l'esecuzione delle applicazioni java. Esempio-DHSM_USER=crypto_user -DHSM_PASSWORD=cupassword -
Variabili di ambiente del sistema operativo (priorità minima): se le credenziali non vengono trovate nelle proprietà del sistema Java, possono essere recuperate dalle variabili di ambiente, se le variabili di ambiente sono impostate. Impostare i valori
HSM_USEReHSM_PASSWORDcome variabili di ambiente, quindi esportarli come mostrato nell'esempio riportato di seguito.export HSM_USER=crypto_user export HSM_PASSWORD=cupassword