Dove conservare un peperone?

2

Supponendo che stai usando un peperone nell'hash della password, dove dovrebbe essere memorizzato? So che non dovresti memorizzarlo nel database poiché può essere facilmente trovato lì durante una discarica e l'idea è di avere qualcosa memorizzato al di fuori del database, ma non puoi fare un caso simile per memorizzarlo nel tuo codice sorgente? Il mio istinto sarebbe di memorizzarlo in un posto diverso da quello in cui si trovano il tuo codice e i tuoi hash, così che un attaccante che compromette entrambi ha meno possibilità di compromettere il pepe.

Le mie prime riflessioni su dove conservarlo:

di Windows

  • Nel registro;
  • Utilizzo di DPAPI;

Linux

  • ??? (Non ho familiarità con i sistemi Linux)

Cross-platform

  • su un server esterno, presumibilmente come un servizio consumabile che riceve una password e restituisce un hash;
  • su hardware speciale come una periferica di sicurezza o un'enclave sicura che funziona come il server esterno.

Probabilmente potresti trovare una ragione per ognuno di questi metodi, oltre a un motivo contro ciascuno di essi. Dove conservi il pepe?

    
posta Nzall 24.03.2016 - 19:52
fonte

2 risposte

6

Se hai un HSM allora il pepe dovrebbe essere in quell'HSM, perché questo è il punto di avere un HSM .

Altrimenti, il pepe è un tasto che dovrebbe essere gestito come tale. Avere una chiave implica la gestione delle chiavi; non dovrebbe (e, davvero, non deve) essere codificato nella sorgente. Il codice sorgente viene copiato in più punti: macchina dello sviluppatore, sistemi di controllo delle versioni, molti backup ... La chiave è in realtà una proprietà del server istanza (server o insieme di server che utilizzano lo stesso set di utenti registrati) mentre la sorgente è, concettualmente, condivisa tra molte istanze del server.

Su Windows, DPAPI è ciò che renderà i revisori più felici, sebbene si possa dire che la protezione extra offerta da DPAPI non è, in effetti, così grande. Se si riavvia il server, viene avviato automaticamente; questo significa che indipendentemente da dove si metta il pepe, la conservazione a freddo del server (contenuto del disco rigido) è sufficiente per recuperare il peperone. Il pepe è destinato a resistere agli accessi di lettura parziali da parte degli autori di attacchi (motivo per cui non li si inserisce nel database), ma se l'utente malintenzionato può leggere il registro, ha molto controllo sul macchina e probabilmente non sarà molto ostacolata anche da DPAPI. Se si utilizza il registro, regolare i diritti di accesso su quella chiave specifica in modo che solo gli utenti pertinenti possano leggerlo (in genere, l'account utente con cui viene eseguito il server).

L'utilizzo di un file comporta il rischio di accesso in lettura tramite uno script PHP mal sviluppato che finisce per scaricare il contenuto dei nomi dei file scelti dagli hacker.

Su Linux non c'è registro né DPAPI, quindi usa un file di configurazione. Si potrebbe fare un caso di esecuzione dell'elaborazione del pepe in un processo distinto a cui si accede tramite un meccanismo di comunicazione tra processi (ad esempio, socket a livello Unix) ed eseguire il codice effettivo del server in un chroot .

In tutti i casi, l'utilizzo di un peperoncino ha i suoi costi: hai una chiave da gestire, cioè generare in modo sicuro e tenere al sicuro. Se perdi quella chiave, perdi la possibilità di verificare le password degli utenti, il che può essere molto sconveniente. In questo senso, il pepe è più critico della chiave privata del server per il suo certificato SSL.

    
risposta data 24.03.2016 - 20:28
fonte
1

Nel mio ordine preferito

  1. In un modulo di sicurezza hardware ( DIY o opzioni a buon mercato)

  2. In una smart card collegata al server web (probabilmente sarà lenta)

  3. In un computer connesso al server web con un'API molto, molto semplice che può calcolare gli HMAC per te ma non rinuncerà alla chiave

  4. In un file sul server web che può essere letto solo dal processo del server Web

risposta data 24.03.2016 - 20:20
fonte

Leggi altre domande sui tag