¿Qué puedo hacer con estos vectores? ¿Es un hallazgo si encontré en un archivo de preferencias compartido de una aplicación móvil de Android?
¿Qué puedo hacer con estos vectores? ¿Es un hallazgo si encontré en un archivo de preferencias compartido de una aplicación móvil de Android?
Un vector de inicialización es un dato aleatorio que se pasa a la función de cifrado, por lo general ayuda a garantizar que el mismo dato cifrado dos veces produzca un resultado diferente. A menudo, se incluye en el texto cifrado y su método de descifrado sabrá que los primeros x bytes son los IV para usar para el descifrado. En un sistema correctamente diseñado, no hay razón para que el IV se mantenga en secreto. Hay una buena discusión sobre eso en Crypto Exchange aquí
Se utiliza sal en las operaciones de hash, son datos aleatorios anexados a un texto sin formato antes del hashing, por lo que el mismo hash de datos dos veces no dará el mismo resultado.
¿Qué puedes hacer con estos? Probablemente no mucho. Dado el texto cifrado, la sal y la IV, es poco probable que determine el texto sin formato si se implementa correctamente un método de cifrado sólido. Para descifrar todavía necesitas la clave que falta aquí.
Es probable que no pueda hacer mucho con solo estos bits de información. Para explotar la IV o la sal, necesita saber qué texto cifrado ha resultado del cifrado con estos valores, y aún tendría que averiguar la clave correspondiente.
Sin embargo, el hecho de que los haya encontrado dentro del binario de la aplicación podría sugerir que los autores están haciendo algo un poco imprudente. Estos valores podrían usarse repetidamente en, respectivamente, las funciones de cifrado y hashing (un análisis más detallado del binario probablemente proporcionaría información sobre si este es el caso o no).
Como se mencionó en respuesta de iainpb , el IV está ahí para evitar que los ejemplares idénticos tengan idénticos cyphertexts correspondientes. Por lo tanto, existe un requisito subyacente que el IV debe cambiar para cada cifrado de cada texto sin formato, incluso si decide hacerlo o tiene que comunicarlo públicamente después. La reutilización de un IV para múltiples encriptaciones da lugar a que los colores de imagen idénticos tengan textos de cifrado idénticos, por lo que se anula el propósito por completo. ¿Para qué se usaría un IV almacenado estáticamente en un binario? Si pudiera identificar la naturaleza de los datos cifrados con este IV, podría montar un ataque de texto sin formato elegido para recuperar la clave.
Respecto a la sal, se puede decir mucho de lo mismo. Nuevamente, como lo menciona iainpb, el uso de sales no tendría puntos de vista idénticos con hashes correspondientes idénticos, pero con el requisito de que se use una sal diferente para cada hashing. Si las sales se reutilizan, hay inútiles para prevenir los ataques de texto sin formato elegido.
Dicho esto, si los autores se molestan en almacenar "IV" y "sal" en el binario, existe una posibilidad no nula de que la "clave" pueda estar allí también de alguna forma ... o simplemente podría sea una pista falsa y estos valores de IV y sal no se utilizan para nada y son solo remanentes de código.
Una vez que tenga Clave y IV, puede usarla para descifrar el texto cifrado .
Si la aplicación móvil lo está utilizando para cifrar datos confidenciales, como el almacenamiento de datos locales, el parámetro de entrada a las solicitudes HTTP, etc., puede usarlo para descifrar lo mismo usando el mismo algoritmo y configuración que se usó para el cifrado.
Lea otras preguntas en las etiquetas android