passphrase del testo trasparente per il keystore

1

Come viene memorizzata la passphrase per un keystore? abbiamo tutte le password crittografate e la chiave per crittografare è memorizzata nel keystore, quindi come viene memorizzata la passphrase per il keystore? in chiaro? se criptato, dove dovremmo memorizzare la chiave per crittografare? vale a dire sembra un problema ricorsivo, come risolvere senza usare il prodotto di sicurezza hardware HCM o qualunque acroynm è per quel tipo di cose. qual è la migliore pratica in termini di memorizzazione delle chiavi per la crittografia?

    
posta bliss 28.04.2014 - 12:04
fonte

3 risposte

2

La best practice non è crittografare le password, ma cancellarle, proprio per questo motivo: se si cripta, è necessario che la chiave sia disponibile per il server.

Se il tuo sistema è tale che DEVE assolutamente memorizzare le password effettive - ad esempio, il tuo server si connette ad un altro servizio che impersona l'utente - allora ci sono alcune cose che puoi fare, come usare un HCM, o memorizzare la chiave su un server diverso nella speranza che non venga rubato insieme a quello principale, o utilizzando qualcosa come OAuth in modo che le credenziali memorizzate siano utilizzabili solo dal server e quindi meno utilizzate da un utente malintenzionato.

Ma queste sono solo mitigazioni parziali. Se memorizzi le password sul server, il server le conosce e, se qualcuno compromette il server, può impararle anche tu.

    
risposta data 28.04.2014 - 12:35
fonte
0

Il modo migliore per farlo, a mio avviso, è di cancellare le password e non crittografarle. Sì hashing è un metodo a senso unico, ma non è necessario recuperare le password in ogni caso, quindi essere un modo è più o meno quello che vuoi.

Immagina che un utente ti invii il suo nome utente e la sua password per l'autenticazione. In questo scenario hai solo bisogno di cancellare la password in entrata e confrontarla con quella che hai memorizzato, anche con hash, associata a quel nome utente. Se hai una corrispondenza puoi autenticare l'utente.

    
risposta data 28.04.2014 - 16:54
fonte
0

Dovrebbero essere memorizzati in testo in chiaro o codificati in base64. Puoi fare riferimento a come è configurato Tomcat

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="${user.home}/.keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>

Se il testo crittografato si trova nel database, questo metodo può proteggerti solo se l'utente malintenzionato ottiene il database ma non ha accesso al file system per scoprire la passphrase. Se l'utente malintenzionato è in grado di accedere al filesystem, allora non sarai fortunato.

L'unico altro metodo consiste nel far sì che l'utente lo digiti ogni volta che viene eseguita l'applicazione, che è ingombrante e non molto comune.

    
risposta data 06.03.2015 - 08:27
fonte