Come conservare la chiave segreta usata per l'hashing?

2

Sto cercando di trovare un modo sicuro per archiviare le chiavi segrete utilizzate nell'assegnazione dei numeri di previdenza sociale.

L'idea è di de-identificazione degli oggetti di ricerca, ma consente comunque di seguire nel tempo l'hashing di una chiave segreta concatenata con il SSN e di usarla come identificativo univoco.

I passaggi che ho ideato sono i seguenti:

  1. All'istante 0, quando i dati sul soggetto A sono raccolti, generano casualmente una chiave segreta e la concatenano con il SSN prima di eseguirne l'hashing.
  2. Sostituisci SSN con il valore hash. Questo record de-identificato verrà utilizzato per scopi di ricerca.
  3. Archivia l'SSN e genera la chiave segreta in qualche modo.

  4. All'istante 1, quando vengono raccolti ulteriori dati del soggetto A, vogliamo aggiungere questi nuovi dati ai dati raccolti in precedenza. Cerca la chiave segreta usando SSN e poi esegui di nuovo l'hashing per ottenere il valore hash richiesto.

Sto facendo fatica nel passaggio 3 e sto cercando le migliori pratiche in questo scenario. Sembra che se dovessi archiviare l'SSN insieme alla chiave segreta in un file di testo, il rischio di reidentificazione è elevato una volta che l'intruso ha avuto accesso al file.

Qualsiasi aiuto è molto apprezzato!

    
posta GAN 06.06.2018 - 09:37
fonte

1 risposta

1

Tutto ciò a cui riesco a pensare è ....

1) Utilizzare una tabella di ricerca per mappare SSN a sali (o identificatori casuali per i dati persistenti anonimi) ma tenerlo lontano dai dati persistenti e anonimi. Entrambi i set di dati devono essere compromessi per risolvere i dati.

2) come da 1, ma digita il valore casuale / salt casuale di un hash dell'SSN (e mantieni la tabella di ricerca separata). Questo aggiunge qualche valore di sicurezza su 1, ma non molto. Entrambi i set di dati devono essere compromessi per i dati da risolvere.

3) come per 2, ma ha cancellato la chiave SSN usando un salt statico (ad esempio, memorizzando hash ($ ssn, "staticsalt") - > secret). Mantenere il sale statico in un luogo diverso dai 2 archivi dati esistenti. Ancora una volta questo aggiunge solo un piccolo valore di sicurezza

4) utilizzare altre informazioni sull'argomento (se disponibili) per aumentare la quantità di entropia nei dati utilizzati per creare l'hash. Ciò renderebbe più difficile la deanonimizzazione dei dati, ma non influisce sulla possibilità di trovare un individuo nel set di dati se i loro dettagli sono noti.

    
risposta data 06.06.2018 - 18:02
fonte

Leggi altre domande sui tag