I limiti alla protezione tramite la crittografia delle password
Liberty supporta la crittografia Advanced Encryption Standard (AES) per le password memorizzate nel file " server.xml. Quando si utilizza la crittografia AES (Advanced Encryption Standard) per la protezione delle password di sistema nella configurazione Liberty , è necessario comprendere i limiti alla protezione che fornisce.
La documentazione più recente sulle limitazioni di crittografia della parola d'ordine per Libertà è disponibile su Sito web Open Liberty.
Il comando Liberty- securityUtility encode utilizza la crittografia " AES-256 " quando l'opzione "
--encoding " è impostata su " aes". Il valore predefinito per questa opzione è " xor". Per la decrittazione AES, Liberty supporta sia l'algoritmo AES ( AES-128 ) che l'algoritmo AES-GCM ( AES-256 ).
Liberty supporta la crittografia AES-256 per le password memorizzate nel file di configurazione server.xml . AES-256 fornisce una crittografia più forte, rendendo le password crittografate più sicure.
securityUtility encode con l'opzione --encoding=aes :securityUtility encode --encoding=aes superAES256password{aes}ARAmkTCr3of9G0gvieyx7NtHFbeX5fiueD6yGTvnYzyFMxyg7Cd5V6Ew34uxunYb0pYixwDiR6V2qCx2Yxm9io4KBZiW8T9GJLCut1ClauY7GNBM6lFM+PMZfCaScPzUgSE07PJYI37WQ8lSzjaeWGCA+K5dlA==server.xml, ad esempio nella definizione di un keystore:<keyStore id="MyKeyStore" password="{aes}ARAmkTCr3of9G0gvieyx7NtHFbeX5fiueD6yGTvnYzyFMxyg7Cd5V6Ew34uxunYb0pYixwDiR6V2qCx2Yxm9io4KBZiW8T9GJLCut1ClauY7GNBM6lFM+PMZfCaScPzUgSE07PJYI37WQ8lSzjaeWGCA+K5dlA==" />- A differenza di un WebSphere® Application Server tradizionale, Liberty non utilizza un archivio chiavi come
aesKey.jceksper memorizzare la chiave per la crittografia delle password. Invece, la chiave o la passphrase utilizzata per derivare la chiave viene fornita al runtime tramite variabili di configurazione qualiwlp.password.encryption.keyowlp.aes.encryption.key. Assicurarsi che i file di configurazione o le variabili di ambiente contenenti queste chiavi siano protetti con autorizzazioni appropriate del file system, poiché il server richiede l'accesso a queste chiavi per la decrittografia. - Il comando Liberty securityUtility encode utilizza la crittografia AES-256 quando l'opzione
--encodingè impostata suaes. Il valore predefinito per questa opzione èxor. Per la decodifica AES, Liberty supporta AES-128 e AES-256.--encoding=aes-128può essere usato per criptare con AES-128 per compatibilità con le versioni del server precedenti a 25.0.0.2.
Crittografare una password nella configurazione Liberty non significa che la password sia sicura o protetta; significa solo che qualcuno che può vedere la password crittografata, ma non conosce la chiave di codifica, non può facilmente recuperare la password. Il processo del server delle applicazioni richiede l'accesso sia alla password crittografata che alla chiave di decodifica, pertanto entrambi questi elementi di dati devono essere memorizzati sul file system accessibile all'ambiente di runtime del server. La chiave di codifica è richiesta anche da chiunque codifica una password inserita nella configurazione del server. Per un utente malintenzionato che ha accesso esattamente allo stesso insieme di file dell'istanza del server Liberty, l'applicazione della crittografia AES alla password non fornisce quindi alcuna sicurezza aggiuntiva oltre alla codifica esclusiva o
(XOR).
- Le password non sono sensibili, quindi codificarle fornisce poco valore.
- Le password sono sensibili, quindi o i file di configurazione contenenti la password sono sensibili alla sicurezza e l'accesso deve essere controllato, oppure le password sono crittografate e la chiave di codifica viene poi protetta come sensibile alla sicurezza.
La chiave di codifica utilizzata per la decodifica può essere sovrascritta dal default impostando la proprietà wlp.password.encryption.key . Per assicurarsi che il file contenente la chiave non sia incluso quando si esegue il comando dump del server o package, non impostare questa proprietà nel file server.xml che memorizza la password, ma in un file di configurazione separato incluso dal file server.xml . Questo file di configurazione separato deve contenere solo una singola dichiarazione di proprietà e deve essere memorizzato al di fuori della normale directory di configurazione per il server. La proprietà chiave di cifratura può anche essere specificata come una proprietà bootstrap. Se si sceglie questa opzione, inserire la chiave di crittografia in un file delle proprietà separato incluso nel file bootstrap.properties del server.
Per informazioni sulla fornitura della propria chiave AES-256 pregenerata per la crittografia delle password, compreso come definirla
wlp.aes.encryption.key, vedere Fornitura della propria chiave AES-256 per la crittografia delle password.
Uso
wlp.password.encryption.key .- Come definire la proprietà nel file server.xml .
<server> ... <variable name="wlp.password.encryption.key" value="yourKey" /> </server> - Come includere la proprietà come file separato nel file server.xml .
<server> ... <include location="${shared.config.dir}/key.xml" /> </server>