Hoy hay noticias en blog de Bruce Schneier y ArsTechnica sobre cómo la Ciudad de Nueva York publicó información sobre taxis y taxis conductores, sus viajes, etc.
Básicamente, la información confidencial era simplemente hash MD5. Dado que la entrada era limitada (3 números, 3 letras, como máximo), fue fácil realizar algunos ataques de fuerza bruta: generar todas las combinaciones posibles y luego hacer una revisión.
Teniendo en cuenta la naturaleza de la información (una entrada muy pequeña, para generar fácilmente todas las combinaciones), ¿cómo podrían estos datos ser anonimizados correctamente?
Algunos enfoques que se me han ocurrido ::
-
La seguridad a través de la oscuridad (usar un número "secreto" de iteraciones) es solo seguridad a través de la oscuridad.
-
Agregar una sal general y única, aumentaría la fuerza bruta en un 0%: simplemente agregue la sal y listo.
-
Agregar una sal única por usuario, aumentaría la fuerza bruta, pero no demasiado: tome la sal y calcule los 3 dígitos de 3 letras para cada sal.
¿Qué se podría hacer?