2009-02-17 16 views
9

Nella mia ultima domanda "Database portatile per la memorizzazione dei segreti" the best answer until now indicare di usare sqlite-crypt.Come non inserire le password con hardcode?

Leggere i documenti di sqlite-crypt, il nuovo parametro per aprire il database è la frase del codice. Certo, non voglio la password con hardcode, quindi stavo pensando a quale sia il metodo migliore, semplice e veloce per memorizzare quella password?

risposta

3

È bello che abbia per memorizzarlo in un utente.

altrimenti sei solo sostituendo qualche altro meccanismo di sicurezza per quello che stai chiedendo ...


David's point in the comment on Infamy's answer è preso bene. Uno dovrebbe consentire una certa flessibilità, nel caso in cui l'utente sta gestendo la protezione a un livello inferiore ... Quindi, vai a votare per Infamy.

11

Alcune opzioni.

  1. chiedere all'utente per una chiave di accesso (aka che memorizzano una password per accedere a tutti i loro password) (buona idea)

  2. Creare una chiave al primo avvio dell'app, che viene poi hash nel proprio modo unico (cattiva idea)

  3. utilizzare una miscela di quanto sopra, alias dare agli utenti le opzioni di uno, o due (ricordate la mia casella Password)

+0

+1 per # 3. Alcuni utenti potrebbero disporre di schemi di sicurezza alternativi (ad es. Crittografia del disco intero) che rendono la memorizzazione della password in un file di configurazione un rischio accettabile basso per loro. –

+0

@David: buon punto ... – dmckee

2

Hardcoding è inevitabile a un certo punto, a meno che la password non venga mai utilizzata in modo interattivo.

La cosa migliore che si può fare in una situazione di password in-file è renderlo dannatamente difficile accedervi in ​​primo luogo e quindi limitare ciò che può essere fatto con esso se qualcuno lo trova. Una regola empirica è che non si dovrebbero concedere più privilegi a una password memorizzata in una stringa rispetto a una che è necessario digitare a un prompt.

2

Su Windows è possibile/dovrebbe utilizzare lo DPAPI, lo Data Protection API che fornisce la crittografia di archiviazione.
È solo per questo tipo di problema.

crittografia dello storage si basa su entrambi:

  • l'account utente, in modo che solo l'utente connesso può accedere ai dati. Ciò rende i dati trasferibili su un altro PC con le stesse identiche credenziali utente.
  • la macchina, rendendo i dati accessibili solo su quella particolare configurazione della macchina e non trasferibili su un altro PC.

C'è un dnrTV show with Karl Franklin che mostra esattamente cosa è necessario implementare questo e altre funzioni di crittografia.
Il codice sorgente dallo spettacolo è anche disponibile sulla pagina.

Ci sono, naturalmente, un sacco di other articles su questo argomento.

Problemi correlati