Sab 24 may 2008
Cifrado fácil de ficheros con OpenSSL
Posteado por Abraham en criptografÃa , linux , Mac1 Comentario
Si eres de los que te gusta más abrir una ventana de terminal que a un niño un caramelo, te voy a explicar un método sencillito para tener tus secretos a salvo. Vamos a usar OpenSSL para cifrar (encriptar) un fichero. SÃ, sà ya sé que existen muchas formas de hacerlo: PGP, Truecrypt, ZIP, RAR, cifrando desde ficheros Office, etc. pero aquà lo voy a explicar con OpenSSL y por lÃnea de comandos.
Si has visto OpenSSL y se te han puesto los ojos como platos porque últimamente has leÃdo algo de una vulnerabilidad relacionada con él, no te preocupes, no afecta a lo que vamos a hacer ahora porque vamos a usar criptografÃa simétrica, no asimétrica (de clave pública). Además, a dÃa de hoy, la vulnerabilidad está subsanada, pero te recomiendo revisar todas tus claves generadas en los dos últimos años, por si acaso.Bien, vamos al tema. Ejemplo facilón, tenemos un ficherito con secretos, por ejemplo, las tropecientas contraseñas que utilizas para distintas cuestiones y que deberás proteger con un cifrado si no quieres ver comprometida tu existencia digital (y algo más que la digital). Supongamos que ese fichero se llama passwords.txt. Vamos a cifrarlo con un par:
openssl enc -aes-256-cbc -a -in passwords.txt -out passwords.enc
Evidentemente, nos pedirá una clave, que será nuestra contraseña maestra, es decir, la que protege nuestro fichero que contiene todas nuestras contraseñas. Te puedes permitir olvidar todas, menos la maestra, y ni lo pienses, borra esa idea de la cabeza, no se te ocurra escribirla en ninguna parte. Hemos usado AES de 256 bits en modo CBC, la opción -a es para que la salida no sea un binario, sino que lo encodee a Base64 (usease texto imprimible para poder pegarlo en un email, por ejemplo). El fichero de salida contiene el contenido encriptado de nuestro fichero de contraseñas, passwords.txt. No debemos olvidar que no se ha borrado el fichero original, se ha generado uno nuevo, asà que habrá que borrarlo para que nadie lo encuentre
¿y alo has borrado? bien, y ¿por qué lo has hecho si todavÃa no sabes cómo desencriptar el fichero que acabamos de cifrar?  Bueno vamos a ver como se hace eso:Â
openssl enc -aes-256-cbc -a -d -in passwords.enc -out passwords.txt
La diferencia es la opción ‘d’, evidentemente indica a OpenSSL que queremos desencriptar el fichero. El resultado lo deja de nuevo en passwords.txt, pero si sólo deseamos consultar el contenido del fichero cifrado, podemos obviar el -out passwords.txt y nos mostrarÃa el contenido por la pantalla. Vale pero teclear todo eso es un poco palo cada vez que queramos hacer la operación. Cierto, pero para eso están los scripts, por ejemplo.
enc-dec.sh:
  openssl enc -aes-256-cbc -a -d -in passwords.enc -out passwords.txt
enc-enc.sh:
  openssl enc -aes-256-cbc -a -d -in passwords.enc -out passwords.txt
  rm passwords.txt
  echo "Fichero cifrado de pwds con AES 256 CBC encodeado en Base64" | mutt -a ./pwds.enc -s “EnvÃo copia fichero pwdsâ€? cuenta decorreo(arroba)gmail.com
Mediante estos sencillos scripts puedes cifrar y descifrar con facilidad y además, cada vez he añadido una última lÃnea, de modo que cada vez que se ejecuta el cifrado, envÃa un email adjuntando el fichero de contraseñas cifrado passwords.enc.A modo de copia de seguridad, esa lÃnea la puedes poner antes del cifrado y asà te enviará la última versión del fichero, antes de proceder a cifrar y borrar el fichero de testo plano, por lo que pueda pasar.Â
marzo 30th, 2009 at 10:34
Hola es interesante estos paso, muchas gracias me ha servido