Impronta digitale del documento di testo protetto

3

Lo scopo è lo stesso dell'hashing: dato un insieme di documenti riservati, voglio elaborarli e archiviare qualcosa di sicuro come hash salato / bcrypt. Successivamente, quando viene fornito un nuovo documento, voglio verificare se esiste già nel database.

Qualcosa come il monitoraggio delle perdite.

Il problema è che se questo nuovo documento è leggermente modificato rispetto a quello originale, il sistema dovrebbe anche dire che sono molto simili.

Cercando di risolvere questo compito, ho preso in considerazione la prima normalizzazione del testo (eliminazione di punteggiatura, lettere maiuscole, troncamenti, ecc.) e quindi la ricerca di duplicati fuzzy (quasi duplicati e shingling).

Ad ogni modo, non sono sicuro che sia sicuro: per esempio, se la finestra di scandole è piuttosto piccola, allora la forza bruta è possibile. Per lunghezza della finestra = 3 e 50 lettere, otteniamo 125 k combinazioni e poche collisioni. Salting non è d'aiuto: l'attacker conosce l'algoritmo e può organizzare il brute forcing non come 'xyz', ma come 'xyzsalt' e prova tutte le combinazioni 125k 'xyz'. Chissà che altro può esserci di sbagliato nella sicurezza di questo approccio?

Quindi, è per questo che voglio chiedere: ci sono alcuni algoritmi sicuri per la ricerca fuzzy matching / near-duplicate?

    
posta Mixo123 29.06.2015 - 14:16
fonte

1 risposta

2

L'hashing è in effetti l'opposto di quello che stai cercando (qualsiasi modifica nell'input porta a un hash completamente diverso). Puoi provare invece un hash percettivo .

Come nota a margine sui tentativi di hash / sale:

  • perché avresti bisogno di salatura? Non è come se qualcuno potesse ricostruire il documento originale (simile a ricostruire una password e confrontarla con un hash - > quindi la necessità di salatura).
  • perché bcrypt ? Questo è un algoritmo lento (perfetto per le password) ma nel tuo caso vuoi velocità, non devi rallentare un potenziale aggressore (ancora, nessuno ricostruirà un documento per cancellarlo e confrontarlo con gli hash)
risposta data 29.06.2015 - 16:49
fonte

Leggi altre domande sui tag