Come memorizzare / crittografare l'impronta digitale?

11

La memorizzazione della password è un gioco da ragazzi: utilizzare una password hasher. Ma ..

Come procedete a memorizzare le impronte digitali in modo sicuro sul vostro server? Questo significa che anche se il vostro server e tutti i suoi dati vengono rubati, qualcuno non può recuperare le impronte digitali.

Da quanto ho capito, l'immagine dell'impronta digitale che lo scanner acquisisce è sempre diversa da una volta all'altra e per verificare che tu sia il proprietario, semplicemente verifica che l'impronta digitale corrisponda a una percentuale sufficientemente buona. Pertanto, non è possibile eseguire un hash della password diretta dell'immagine che lo scanner fornisce e confrontarlo con quello presente nel database.

Esiste una sorta di pre-elaborazione per estrarre dati che "non cambiano" mai anche se l'intera scansione cambia leggermente ogni volta che si scansiona il dito?

Link correlati: link

    
posta Gudradain 11.08.2015 - 14:39
fonte

2 risposte

6

Non è possibile memorizzare in modo sicuro un modello di impronta digitale su un server. I modelli sono soggetti ad attacco. I tentativi di affrontare quegli attacchi non hanno trovato un equilibrio simile a quelli per le password. Il principale laboratorio di ricerca che cerca di cambiare è Michigan State, link

Inoltre, se stai leggendo le impronte digitali in remoto, sei soggetto ad attacchi sull'hardware, attacchi di gommosi, ecc. Quindi non ottieni la sicurezza che desideri e la persona che si autentica non può usare un autenticatore diverso per sistema.

    
risposta data 15.09.2015 - 17:19
fonte
5

In effetti, ci sono alcune ricerche che affrontano il problema. Dovremmo riconoscere il fatto che l'archiviazione delle informazioni di impronte digitali dal lato del cliente (come suggerito da altri) potrebbe non essere una soluzione praticabile in casi specifici. Potrebbe essere ok per un telefono cellulare, ma insufficiente per un'azienda o un servizio distribuito.

Ci sono funzioni di hash (non crittografiche) che possono creare lo stesso hash per un input simile. Si chiama Locality-Sensitive Hash (LSH) e ampiamente utilizzato negli algoritmi di ricerca. Queste funzioni possono "ridurre le differenze che si verificano tra dati simili con alta probabilità, mentre i dati distanti dovrebbero rimanere significativamente remoti." Quindi si può provare a crittografare l'LSH per un risultato più tollerante agli errori. Puoi combinarlo con il filtro Bloom come descritto in questo articolo del 2009 che consiglio vivamente di leggere se sei interessato all'argomento . Sfortunatamente non sono a conoscenza di alcuna implementazione esistente del metodo qui descritto.

In sintesi, la risposta è che puoi farlo con metodi di crittografia fault-tolerant (come sopra), ma se sei in poco tempo potresti stare meglio con un provider sicuro dedicato separato per la conversione UID fingerprint (con un mitragliere seduto sopra).

    
risposta data 15.09.2015 - 14:59
fonte

Leggi altre domande sui tag