Asegurar la huella digital del documento de texto

3

El propósito es el mismo que con el hashing: dado un conjunto de documentos confidenciales, quiero procesarlos y almacenar algo seguro como hashes / bcrypt salados. Más adelante, cuando se proporcione un nuevo documento, quiero comprobar si ya existe en la base de datos.

Algo así como monitoreo de fugas.

El problema es que si este nuevo documento es una versión ligeramente modificada del original, el sistema también debería decir que son muy similares.

Tratando de resolver esta tarea, consideré primero normalizar el texto (eliminar la puntuación, el caso de las letras, el truncamiento, etc.) y luego hacer una búsqueda por duplicado (casi duplicados y shingling).

De todos modos, no estoy seguro de que sea seguro: por ejemplo, si la ventana de tejas es bastante pequeña, entonces es posible la fuerza bruta. Para longitud de ventana = 3 y 50 letras, obtenemos 125k combinaciones y pocas colisiones. Salting tampoco ayudaría: el atacante conoce el algoritmo y puede organizar la fuerza bruta no como 'xyz', sino como 'xyzsalt' y probar todas las combinaciones de 125k 'xyz'. ¿Quién sabe qué más puede estar mal con la seguridad de este enfoque?

Por lo tanto, es por eso que quiero preguntar: ¿hay algunos algoritmos seguros para la comparación aproximada / búsqueda casi duplicada?

    
pregunta Mixo123 29.06.2015 - 14:16
fuente

1 respuesta

2

Hashing es, de hecho, lo opuesto a lo que estás buscando (cualquier cambio en la entrada lleva a un hash completamente diferente). Puedes probar un hash perceptual en su lugar.

Como nota al margen sobre tus intentos de hash / sal:

  • ¿Por qué necesitarías salado? No es como si alguien pudiera reconstruir el documento original (de manera similar a reconstruir una contraseña y compararla con un hash - > por lo tanto, la necesidad de usar sal).
  • ¿Por qué bcrypt ? Este es un algoritmo lento (perfecto para las contraseñas) pero en su caso desea velocidad, no necesita ralentizar a un atacante potencial (una vez más, nadie reconstruirá un documento para modificarlo y compararlo con sus hashes)
respondido por el WoJ 29.06.2015 - 16:49
fuente

Lea otras preguntas en las etiquetas