Come posso memorizzare in modo sicuro una password in un file .class?

0

Ho alcuni file .java contenenti alcune variabili password e queste variabili hanno valori:

String password = "xyz";

Ora dopo l'esecuzione, quando apro il file .class, contiene quelle password. Come posso memorizzare la mia password in un posto sicuro? Non voglio usare DB per la memorizzazione.

    
posta Aarti Jangid 13.12.2016 - 07:28
fonte

2 risposte

6

Non puoi.

Se l'applicazione deve conoscere la password, non è possibile memorizzarla in modo sicuro, a meno che non si chieda a un utente in fase di esecuzione una password master. Perché se l'app è in grado di ottenerlo, un utente malintenzionato potrebbe fare lo stesso direttamente se è stato memorizzato in chiaro o con reverse engeneering se è stato offuscato.

La vera domanda da porsi è perché un'applicazione dovrebbe conoscere una password? Se è interattivo, dovrebbe chiederlo (o una password master utilizzata per decodificare un deposito crittografato) a un utente e, se non lo è (un servizio o un demone), è necessario fare affidamento sull'identificazione della macchina su una rete controllata localmente, o accetta che qualsiasi persona che abbia privilegi sufficienti per vedere i file dell'applicazione possa conoscere la password e proteggere (compresa la protezione fisica) la macchina e l'account che esegue l'app.

    
risposta data 13.12.2016 - 10:05
fonte
-2

Non sono uno sviluppatore Java, naturalmente lavoro con C # ma so che memorizzare le password in testo semplice non è un modo sicuro per memorizzarle.

Per quanto ne so; puoi decompilare java, nel qual caso sarai in grado di leggere le password senza problemi. Se stai eseguendo un progetto open source con codice sorgente in un repository da qualche parte; archiviare questa password in testo semplice sarà un problema molto più grande della memorizzazione nel database.

Personalmente ritengo che qualsiasi password debba essere crittografata utilizzando un algoritmo aggiornato e avanzato che non crei tu stesso, ma utilizza una libreria affidabile e affidabile per farlo per te.

Appena guardandoci attorno sembra che usare char [] sia molto meglio che usare una stringa perché le stringhe sono immutabili.

As a reference I have come across an article which explains some best practises for storing passwords:

link

char[] vs string storing passwords:

link

Non ho esperienza personale nello sviluppo di Java come menzionato; ma sarei molto preoccupato di vedere le password memorizzate in testo semplice.

    
risposta data 13.12.2016 - 10:00
fonte

Leggi altre domande sui tag