Gestione chiavi: memorizzazione della chiave crittografata nel database e chiave decrittografata nella variabile di sessione

3

Modifica: Titolo riprogettato per sperare di ottenere un certo interesse su quello che avrei pensato fosse un problema comune?

Sto sviluppando un sito Web che utilizza php / mySQL per archiviare dati non commerciali e sarà chiaramente etichettato come non per informazioni sensibili. Il sito deve essere ospitato su un server internet condiviso.

Poiché sto utilizzando un server condiviso, ho già accettato che questo sito Web sarà molto limitato in termini di sicurezza assoluta dei dati, ma vorrei almeno offrire l'opzione di una soluzione credibile ai rischi di qualsiasi amministratore del server semplicemente potendo leggere i campi di testo in chiaro nel database direttamente o tramite un backup e allo stesso modo se il server viene violato e il database è accessibile. Non vi è alcuna minaccia percepita da determinati hacker poiché i dati avrebbero poco valore.

Le mie preoccupazioni riguardano principalmente la gestione delle chiavi: l'archiviazione della chiave segreta crittografata nel database e l'archiviazione della chiave segreta decrittografata in una variabile Session. Tutti i commenti sarebbero ben accetti.

La mia proposta è la seguente:

  • usa la crittografia / decrittografia simmetrica con php mcrypt_encrypt (MCRYPT_RIJNDAEL_256)
  • Memorizza la chiave segreta simmetrica crittografata sul database utilizzando un hash di una frase segreta
  • la frase segreta verrebbe data all'organo dove potrebbero esserci fino a 10 persone che hanno bisogno di usarlo
  • Dopo che un utente effettua l'accesso con il proprio nome utente e password univoci, viene richiesta la frase segreta: se viene immessa correttamente, i dati del testo vengono decodificati e visualizzati. Se non inseriscono la frase corretta, non viene inviata al browser web.
  • la chiave segreta è memorizzata in una variabile Session, che viene distrutta quando l'utente si disconnette o dopo un timeout della sessione.
  • anche il sito è protetto usando apache htaccess in quanto non è di uso pubblico
  • il php sta incorporando metodi per difendersi da xss, injection ecc
posta user34252 15.11.2013 - 12:13
fonte

1 risposta

1

Stavo pensando di fare una cosa simile. Ho trovato questa risposta durante la ricerca che sembra implicare che questa è una pratica accettabile, purché non si utilizzino password o hash della password nella chiave. link

    
risposta data 06.02.2014 - 21:25
fonte

Leggi altre domande sui tag