Archivo de configuración cifrado

El archivo de configuración de CoyIM contiene una gran cantidad de datos confidenciales, incluidas las contraseñas de tus cuentas XMPP, si decides guardarlas. También contiene todas tus claves privadas de OTR y los fingerprints de todos tus contactos. Si alguien pudiera leer este archivo o modificarlo, podría comprometer la seguridad de CoyIM. Los desarrolladores de CoyIM siempre recomendamos que utilices un disco duro cifrado para protegerte contra este tipo de amenazas, pero en ocasiones podrías no tener esa posibilidad, y a veces puede que no sea suficiente. Por esta razón, CoyIM da la opción de almacenar el archivo de configuración en forma encriptada, protegido por una contraseña.

Si eliges almacenar el archivo de configuración encriptado, debes tener en cuenta que la contraseña no se puede recuperar si la pierdes. CoyIM genera las claves de cifrado para el archivo de configuración directamente a partir de la contraseña, lo que significa que si se pierde la contraseña, también se perderá la clave de cifrado.

Desde un punto de vista técnico, CoyIM utiliza el algoritmo scrypt algorithm para convertir la contraseña en las claves de cifrado del archivo de configuración. Los parámetros se eligen de modo que cada intento de descifrar el archivo de configuración tardará entre 0,5 y 3 segundos. El factor de costo (N) se establece en 2 ** 18, el parámetro del tamaño de bloque (r) se establece en 8 y el factor de paralelización (p) se establece en 1. Sin embargo, es posible sintonizar todos estos parámetros fácilmente, y el código obviamente no depende de ellos. También usamos una sal para la generación de la clave utilizando scrypt.

Una vez que tenemos el resultado de scrypt, lo dividimos en una clave de cifrado y una clave MAC. También usamos un nonce, es decir, un número que se usa una sola vez, que no es privado. Con estos parámetros, ciframos y desciframos los datos del archivo de configuración utilizando AES-256 y el modo de cifrado GCM, para permitir la autenticación integrada del texto cifrado.

Por ello, si el archivo de configuración está encriptado, está bastante bien protegido, tanto de ataques criptoanalíticos, así como también contra ataques de fuerza bruta contra la contraseña.