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==" />- La chiave AES utilizzata per la crittografia è in genere memorizzata in un keystore come
aesKey.jceksutilizzato in WebSphere® Application Server tradizionale. Assicurarsi che il keystore sia accessibile al server runtime per la decodifica. - 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.
Per informazioni sulla fornitura della propria chiave AES-256 pregenerata per la crittografia della password, compreso come definirla
wlp.aes.encryption.key, vedere Fornitura della propria AES-256 chiave per la crittografia della password.
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.
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>