it-swarm.dev

Pratiche per la memorizzazione di nome utente / password nelle applicazioni Web

Ho letto la seguente domanda: Memorizzazione della password in Java ma non trovo le risposte utili per il mio caso.

Quindi ecco la mia domanda in qualche modo collegata a questo. Ho un Java con un back-end DataBase accesso protetto con nome utente e password.

In questo momento il nome utente/password si trova in un file .properties sul server web. Il server è sicuro, ma averlo così in testo normale mi dà fastidio.

Ho cercato ad un certo punto di utilizzare negozi sicuri per crittografare/decrittografare il nome utente e la password, ma i negozi sono essi stessi protetti da una password, quindi dove posso archiviarlo? Sono tornato al punto di partenza.

Così? Qual è il modo migliore per memorizzare username/password per la connessione ad altri sistemi (database, servizio web ecc.)

18
johnD

Il server deve essere in grado di accedere ad alcune risorse R. Se un utente malintenzionato ha il pieno controllo del server, tale utente malintenzionato può per definizione ora accedere a qualsiasi risorsa a cui il server può accedere. Non c'è assolutamente nulla che tu possa fare al riguardo tranne proteggere il server.

Se l'attaccante non ha il pieno controllo del server ma ha accesso al file system del server, la domanda è se il server deve avviarsi autonomamente (senza alcun aiuto esterno). Se il server deve avviarsi autonomamente, tutti i dati richiesti per accedere alla risorsa R devono risiedere da qualche parte nel file system del server e sono quindi disponibili per l'utente malintenzionato. Il meglio che puoi fare è cercare di offuscare la password, buona fortuna.

Se il server può utilizzare una guida esterna per l'avvio, l'opzione migliore sarebbe quella di richiedere a un amministratore di immettere la password durante l'avvio (e mantenere la password archiviata nella RAM). Se questa non è un'opzione pratica (di solito non lo è), è possibile proteggere la password utilizzando un token USB (ad es. Memorizzare una password crittografata e utilizzare il token USB per decrittografarlo).

TL; DR: Supponendo che non sia possibile inserire manualmente la password ogni volta che si avvia il server, non c'è molto che si possa fare se non proteggere il server stesso.

13