Esiste un modo per crittografare l'hash di un'identificazione personale?

5

C'è un modo per crittografare l'hash di una impronta umana in una forma che può essere riprodotta in modo coerente dai lettori di identificazione digitale?

Supponendo che sarebbe possibile creare un database di thumbprint-hashes, il mio intento è quello di eliminare quell'hash con un "qualcosa che conosci", impedendo l'uso del database di identificazione personale per qualsiasi altra cosa diversa dall'autenticazione.

Domanda

  • È ragionevole "salare" un hash (impronta digitale umana) e usarlo per l'autenticazione?

  • Esistono requisiti tecnici (risoluzione, punti dati per dito, ecc.) che garantiscano l'accuratezza tra i dispositivi?

posta random65537 13.09.2013 - 20:04
fonte

3 risposte

11

Come @Xander sottolinea, una domanda molto simile è stata posta ieri . Infatti:

  • Se riesci a ricavare una chiave da un'impronta digitale, puoi cancellarla e ottenere un valore hash.
  • Se è possibile eseguire l'hash di un'impronta digitale, è possibile utilizzare il valore hash come chiave.

Quindi sono davvero la stessa domanda. E la risposta è: le persone ci stanno lavorando, non funziona ancora bene, ma potrebbe migliorare nel corso degli anni.

Vorrei però sottolineare qualcosa di importante: un "qualcosa che conosci" ha un valore per l'autenticazione solo perché è anche "qualcosa che l'attaccante non sa". È il segreto che conferisce il potere.

Un'impronta digitale, come altre misure biometriche, in realtà non funziona sulla segretezza (anche se molti sistemi cercano di usarla in quel modo). L'importante caratteristica di un'impronta digitale è che è collegata a un essere umano: quando un essere umano usa il proprio dito su un lettore, non può fare a meno di usare la propria impronta digitale. In effetti, è lì che l'innovazione si trova nei moderni lettori di impronte digitali: nei sistemi che cercano di garantire che ciò che stanno rilevando sia in realtà un dito umano ancora attaccato al corpo del suo proprietario nominale.

La segretezza non è una grande parte delle impronte digitali per la sicurezza. Le tue impronte digitali non sono segrete: le lasci ovunque , sulla tua auto, su ogni maniglia della porta che attraversi, sui pulsanti dell'ascensore, su ogni vetro che usi in un bar ... Se un l'impronta digitale può essere trasformata in una chiave (o valore hash, indipendentemente da come la si vuole vedere), quindi la chiave può essere ricostruita offline, da qualsiasi copia di una di queste stampe. C'è un piccolo segreto qui.

Per riassumere: anche se potresti trasformare in modo affidabile un'impronta digitale in una chiave, non sarebbe una buona idea utilizzarla come chiave segreto . Sarebbe utile come una chiave indicizzazione , tuttavia: non per sicurezza, ma per prestazioni.

    
risposta data 13.09.2013 - 20:21
fonte
2

Considera che un algoritmo di hash crittografico eccelle nel produrre valori digest diversi anche per le più piccole differenze di input. Anche una modifica di 1 bit nell'input causa una cascata di modifiche che produce un valore hash completamente diverso. La resistenza pre-immagine è una caratteristica necessaria per un algoritmo hash crittografico.

Ora guarda le impronte digitali. Un problema con le impronte digitali è che le relazioni tra i segni di identificazione non sono garantite come costanti tra le letture. Il tuo dito potrebbe essere leggermente gonfio a causa di diversi livelli di liquidi nel tuo corpo, o allineato in modo leggermente diverso tra gli elementi del sensore, o persino avere un pezzo di sporco su di esso, e quella potrebbe essere una differenza sufficiente a causare un valore di un elemento di differenza tra letture. Ricorda, anche un solo bit di cambiamento significherà che viene emesso un hash completamente diverso. Pertanto, non è possibile eseguire direttamente l'hash di una precisa lettura o istantanea di un'immagine di una stampa.

Tuttavia, l'immagine può essere elaborata. Ogni stampa ha una serie di "punti di riferimento", che sono punti specificamente identificabili. Le biforcazioni sono dove due creste si uniscono, una canna è dove termina una cresta, un'isola è una piccola cresta, e così via. Questi punti di riferimento possono essere identificati e possono essere misurati in relazione l'uno con l'altro. Ad esempio, se dovessi posizionare una miniatura su una griglia, potresti identificare ciascuna cella con i punti di riferimento che contiene.

Il problema diventa quindi l'allineamento della griglia. Se la griglia non è identificata in modo identico ogni volta che viene letta una stampa, non si genera lo stesso hash.

Le stampe hanno solo tre forme base: archi, loop e spirali. Sembra che sia possibile utilizzare le caratteristiche di definizione di tutte le stampe di tipo arco (ad esempio) per produrre tre punti di riferimento necessari e quindi allineare la griglia. Quindi lo elabora e identifica tutti i possibili punti di riferimento. Ma allora cosa? Che assicurazione hai che ogni punto di riferimento è atterrato nella stessa cella ogni volta? Se provi a stabilire una zona sfocata intorno alle linee della griglia, come fai a sapere quali punti di riferimento sono appena a malapena in (o fuori) la zona fuzzy?

(La stessa preoccupazione è vera se si tenta di utilizzare i radiali dal centro dei punti di riferimento: quanta tolleranza si costruisce nei vettori?

La linea di fondo è che sarà probabilmente difficile ottenere lo stesso esatto valore dell'hash ogni volta, perché le stampe non sono mai allineate precisamente in modo ripetibile.

Quindi, come è possibile utilizzare gli hash per mantenere le stampe al sicuro? Quando l'utente registra inizialmente la propria stampa, si utilizza lo stesso schema basato sulla griglia per analizzarlo e produrre un hash. Quindi si analizzano i punti di riferimento che cadono nelle zone potenzialmente sfocate e si calcola un hash distinto per ogni permutazione possibile. Creerai rapidamente un ampio set di hash che rappresentano tutti i valori potenziali della stampa di un utente. Successivamente, quando la stampa di un utente viene letta e sottoposta a hash, la cerchi nel set completo di hash su file e identifica l'utente.

    
risposta data 13.09.2013 - 22:42
fonte
0

La risposta di John Deters coincide in gran parte con la mia comprensione dei problemi.

L'unica differenza potrebbe essere che l'osservazione finale (uno schema di forza bruta intelligente per creare un intero array alla registrazione di "zone fuzzy" nel modello derivato per "ogni possibile permutazione") non sembra coerente con le difficoltà identificate in il resto del post: la più piccola variazione in un singolo bit dell'immagine originale grezza crea un hash non correlato, e mentre la codifica in un modello dall'analisi del pattern ridurrà l'impatto di questo (poiché le informazioni della griglia di forma biometrica avranno molti meno bit di dati rispetto all'immagine bitmap mappata ad alta risoluzione sottostante), si sta ancora cercando una precisa seconda lettura identica bit-for-bit per generare l'hash matchable. Anche dove ne hai molti piuttosto che uno solo, questo non può evitare la difficoltà.

Poiché il numero di "tutte le possibili permutazioni" nell'immagine di partenza e della famiglia di potenziali immagini future aumenta, e anche se questo è molto più piccolo dell'insieme completo di tutti i valori nello spazio di risposta di una determinata risoluzione, lì sembrano essere almeno due problemi:

1) il potenziale di falsi positivi aumenta in quanto il set completo di possibili corrispondenze per un'altra persona si sovrappone al nostro set molto grande, e quindi

2) il valore di trattare questo come un problema di "hashing" recede - è probabilmente meno completamente intrattabile delle immagini di hashing della stessa persona, ma sembra non essere nella classe di problemi in cui le versioni hash degli identificatori sono praticamente utile e affidabile.

    
risposta data 13.10.2016 - 02:57
fonte

Leggi altre domande sui tag