Configurazione delle variabili cifrate

All’interno del file <directory-lavoro>/govway.secrets.properties è possibile razionalizzare una serie di variabili Java tramite la seguente sintassi:

# Consente di definire proprietà java tramite la sintassi:
java.<nome>=<valore>

Il valore fornito dovrà essere decifrabile tramite uno dei security engine o KMS di “unwrap” disponibili all’interno della configurazione <directory-lavoro>/byok.properties, descritti rispettivamente nelle sezioni Security Engine e Key Management Service.

La modalità di decifratura di default è definibile tramite la proprietà “unwrap.default.mode”, che può assumere i seguenti valori:

  • security: viene utilizzato il security engine riferito dall’identificativo riportato nella proprietà “unwrap.default.id”.

  • ksm: viene utilizzato il Key Management Service riferito dall’identificativo riportato nella proprietà “unwrap.default.id”.

Se la proprietà “unwrap.default.mode” non viene definita, viene utilizzata la modalità security engine.

# Indica la modalità di default utilizzata per decifrare i valori forniti rispetto alle configurazioni presenti nel file 'byok.properties'.
# security: viene utilizzato il security engine indicato nella proprietà 'unwrap.default.id' (per default viene utilizzato il security engine caricato da GovWay)
# ksm: viene utilizzato il key management service definito tramite la proprietà 'unwrap.default.id'
unwrap.default.mode=
unwrap.default.id=

È possibile verificare che le variabili Java siano state caricate tramite due modalità:

  • tutte le variabili java vengono registrate da GovWay nel file di log <directory-log>/govway_configurazioneSistema.log;

  • lo stesso file è inoltre generabile dinamicamente accedendo alla sezione “Strumenti > Runtime” (Runtime), tramite la voce Download.

I valori delle variabili, poiché contengono secrets, non vengono registrati nei log sopra indicati ma viene attuato un offuscamento definito dal valore della proprietà “obfuscated.mode”:

  • digest (default): viene calcolato il digest del valore rispetto all’algoritmo indicato nella proprietà “obfuscated.digest” (default: SHA-256)

  • static: viene utilizzato staticamente il valore indicato nella proprietà “obfuscated.static” (default: **)

  • none: non viene attuato alcun offuscamento

Di seguito, la sintassi da utilizzare nel file govway.secrets.properties:

# Modalità utilizzata per offuscare
obfuscated.mode=digest
#obfuscated.digest=SHA-256
#obfuscated.static=******

È inoltre possibile definire una modalità di decifratura differente da quella di default specificando la modalità da utilizzare per la singola variabile tramite il prefisso “java.security.” o il prefisso “java.ksm.”, a seconda che si voglia utilizzare rispettivamente un security engine o un KSM per la decodifica.

Di seguito un esempio di utilizzo di un security engine differente:

java.<nomeVariabile>=<valoreCifratoTramiteSecurityEngineIdX>
java.security.<nomeVariabile>=<identificativoSecurityEngineIdX>

Di seguito un esempio di utilizzo di un ksm:

java.<nomeVariabile>=<valoreCifratoTramiteKSMIdX>
java.ksm.<nomeVariabile>=<identificativoKSMIdX>

Come descritto nella sezione Parametri di un KSM ogni KSM può richiedere dei parametri di input. Tali parametri possono essere forniti nel file govway.secrets.properties tramite la seguente sintassi:

# Per un ksm è possibile configurare i parametri richiesti tramite la seguente sintassi:
ksm.<identificativoKSM>.param.<nomeParametro>=<valoreParametro>

È infine possibile definire all’interno del file govway.secrets.properties delle variabili i cui valori non sono cifrati, registrandole con la seguente modalità:

java.<nomeVariabile>=<valoreInChiaro>
java.wrapped.<nomeVariabile>=false