Domanda

Innanzitutto, la mia domanda non riguarda l'hashing della password, ma la crittografia della password. Sto creando un'applicazione desktop che deve autenticare l'utente a un servizio di terze parti. Per accelerare il processo di accesso, voglio dare all'utente la possibilità di salvare le sue credenziali. Dal momento che ho bisogno della password per autenticarlo al servizio, non può essere l'hash.

Ho pensato di utilizzare il modulo pyCrypto e la sua implementazione Blowfish o AES per crittografare le credenziali. Il problema è dove conservare la chiave. Conosco alcune applicazioni che memorizzano la chiave direttamente nel codice sorgente, ma poiché sto codificando un'applicazione open source, questa non sembra una soluzione molto efficiente.

Quindi mi chiedevo come, su Linux, avresti implementato chiavi specifiche dell'utente o specifiche del sistema per aumentare la sicurezza dell'archiviazione delle password.

Se hai una soluzione migliore a questo problema rispetto all'utilizzo di pyCrypto e chiavi specifiche del sistema / utente, non esitare a condividerlo. Come ho detto prima, l'hash non è una soluzione e so che la crittografia delle password è vulnerabile, ma voglio dare l'opzione all'utente. L'uso di Gnome-Keyring non è un'opzione, dal momento che molte persone (incluso me stesso) non lo usano.

È stato utile?

Soluzione

La crittografia delle password non ti offre in realtà molta più protezione rispetto alla memorizzazione in testo normale. Chiunque sia in grado di accedere al database probabilmente ha anche pieno accesso alle macchine del tuo server web.

Tuttavia, se la perdita di sicurezza è accettabile, e ne hai davvero bisogno, genererei un nuovo file di chiavi (da una buona fonte di dati casuali) come parte del processo di installazione e lo userò. Ovviamente memorizzare questa chiave nel modo più sicuro possibile (autorizzazioni per i file bloccati, ecc.). L'uso di una singola chiave incorporata nel sorgente non è una buona idea: non c'è motivo per cui installazioni separate debbano avere le stesse chiavi.

Altri suggerimenti

Prova a utilizzare PAM . Puoi creare un modulo che automaticamente decodifica la chiave quando l'utente accede. Questo è il modo in cui funziona GNOME-Keyring (se possibile). Puoi persino scrivere moduli PAM in Python con pam_python .

Password Safe è progettato da Bruce Schneier e open source. È per Windows, ma dovresti essere in grado di vedere cosa stanno facendo e possibilmente riutilizzarlo.

http://www.schneier.com/passsafe.html

http://passwordsafe.sourceforge.net/

Leggi questo: Se digiti AES nel tuo codice, lo stai facendo in modo sbagliato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top