Archivia in modo sicuro la password per Java Keystore

2

Sfondo

Sto implementando un set di servizi Micro utilizzando Java spring MVC e ospitato in contenitori Undertow usando Gradle. Sto utilizzando un keystore Java per proteggere le mie chiavi che vengono utilizzate dal servizio per eseguire la crittografia e la firma.

Quando un utente genera un servizio Micro, l'utente inserisce la password in Gradle come segue.

gradlew bootRun -Dpassword=thePassword

Questo è ok per un uso normale perché l'utente è colui che inserisce la password.

problema

Esiste la necessità di attivare automaticamente i servizi Micro in base alla domanda (per le ore di punta) e di spegnersi quando il carico diminuisce. Posso automatizzare questo, ma ho bisogno di inserire in modo univoco le mie password nei miei script di shell che sono / sono responsabili per i servizi di spin up automaticamente.

Domanda

Come posso proteggere la mia password (s) e fare questa automazione?

    
posta user3496510 07.01.2017 - 10:49
fonte

1 risposta

0

Questo è un problema ricorrente nella sicurezza delle app : anche se archivi i tuoi segreti in un archivio dati protetto, devi autenticare per che , il che significa che hai un altro segreto da gestire, che ti rimanda al problema originale. Sfortunatamente, non esiste una soluzione canonica pronta per l'uso.

Il meglio che puoi fare è cercare di minimizzare il rischio introducendo diversi tipi di sistemi che sono un po 'più difficili da falsificare. Stai usando server fisici (presumibilmente con una sorta di strato di virtualizzazione in cima)? È possibile archiviare la chiave di crittografia su una smart card o dispositivo fisico simile collegato alle macchine e bloccare l'accesso del software ad esso solo all'utente responsabile della ridimensionamento dell'app. Stai usando AWS? Puoi sfruttare i ruoli basati su macchine di Amazon e bloccare gli utenti IAM autorizzati a lanciare macchine con tali ruoli. Forse hai un passaggio manuale durante la distribuzione di un nuovo codice che aggiunge una chiave privata e poi cuoce un'immagine della macchina virtuale e limiti strongmente gli utenti che possono accedere a quelle immagini cotte. Nessuna di queste soluzioni è perfetta, ma aiuta a limitare i punti di ingresso nei dati protetti.

    
risposta data 07.01.2017 - 18:03
fonte

Leggi altre domande sui tag