Al parecer, para el KeyChain de Android se almacena una clave maestra cifrada a lo largo del hash MD5 de la clave cifrada un . ¿Qué tan seguro es eso? Se sabe que MD5 tiene colisiones, pero supongo que podemos asumir que con un espacio de entrada limitado a valores de 128 bits, ¿no aparecen colisiones? Pero aún así, dado que no hay sal involucrada, ¿no es posible que un atacante poderoso calcule tablas de arco iris y luego rompa instantáneamente cada KeyChain y cualquier dispositivo Android que tenga en sus manos?
¿Por qué se utiliza el hash MD5 simple de la clave secreta para verificar si el código PIN es válido?