Memorizzazione della password nell'applicazione Java

9

Qual è il modo migliore sicuro per memorizzare le password nell'applicazione web Java?

Non sto parlando di password per il DB, quindi deve essere memorizzato in modo decriptabile. È un ambiente cloud e devo proteggere le credenziali del DB anche se la mia VM con l'applicazione web viene compromessa.

Quali sono le mie opzioni? Se memorizzarlo crittografato, dove / come devo memorizzare le chiavi di crittografia?

    
posta AaronS 10.09.2012 - 08:47
fonte

2 risposte

7

Il modo migliore per archiviare le password nelle applicazioni Java, se lo si esegue su sistemi basati su Windows è utilizzare DPAPI da Microsoft, che utilizza i credenziali di windows dell'utente per crittografare le password. link .

C'è anche un wrapper Java per la tua comodità link

Dato che Windows gestirà le tue chiavi, non dovrai gestire tu stesso le chiavi. In Java, non pensare mai a scrivere il tuo meccanismo per gestire le chiavi e memorizzare le password. Semplicemente non è sicuro perché, chiunque abbia accesso al tuo file .jar può facilmente decodificare i file del codice sorgente e ottenere il tuo meccanismo. CryptProtectData() è la strada da percorrere

    
risposta data 12.09.2012 - 16:06
fonte
5

Dividi la tua applicazione Java in due parti. Front-end, gestione delle richieste HTTP e back-end, gestione del database. Comunicano tra loro tramite una semplice API (IPC). Pertanto, le credenziali del database rimangono nell'applicazione back-end e restano sicure anche se l'applicazione front-end viene compromessa. Assicurati che ogni applicazione venga eseguita con il proprio utente e che non possano accedere ai file degli altri. Se stai usando Linux, ti consiglio di usare MAC come SELinux, TOMOYO, AppArmor per isolare le applicazioni. In alternativa, è possibile eseguire ciascuna applicazione all'interno della propria VM o persino della macchina fisica, ma sarebbe uno spreco di risorse.

link

link

    
risposta data 10.09.2012 - 09:00
fonte

Leggi altre domande sui tag