Cifrado fácil de ficheros con OpenSSL

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. 

Mejorar la apariencia de Leopard

Leo en Applesfera este post, que explica lo sencillo que es mejorar el aspecto de Leopard eliminando los rastros de la la interfaz Aqua, que la verdad no pegan demasiado con el nuevo estilo de Leopard. Por ejemplo, las barras de desplazamiento azules de muchas ventanas. Con este sencillo truco, que además es reversible, podemos mejorar dicha apariencia. La cosa es tan sencilla como copiar el fichero Extras.rsc (PPC) o Extras2.rsc (Intel) contenidos en este  enlace en: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/(hacedlo con un sudo porque se necesitan permisos de administración)Basta con reiniciar la sesión del usuario y voilà, adiós a las barras que no hacen juego con el sistema :) 

Comando ‘tree’ en el MAC

El comando tree, es un comando que va muy bien para sacar por pantalla un listado ‘desplegado’ de todos los ficheros que cuelgan de un determinado directorio, incluidos los de los subdirectorios. Va muy bien para pegarlo en cualquier tipo de documentación. Pongo aquí un ejemplo del comando tree:

.
|____directorio1
| |____fichero1
| |____fichero2
|____directorio2
| |____fichero1
| |____fichero2
| |____subdirectorio1
| | |____fichero1
| | |____fichero2
|____directorio3
| |____fichero1
| |____fichero2
| |____fichero3
| |____fichero4  
  En MAC no está está disponible de forma nativa este comando, pero he buscado un poco y he encontrado un gran sustituto, ahí va: find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

¿Por qué un MAC?

Siempre suelo hacer de comercial de la marca de la manzanita, a pesar de que Steve no me pasa comisiones (tendré que llamarle porque esto no puede seguir así), pero hoy, en un de esos discursos en los que me estaba elogiando de las miles de cualidades del MAC me han preguntado que cuál es la diferencia fundamental que encontrado en el uso de los tres sistemas (WindowsLinuxMac). Difícil responder y sintetizar en un solo concepto, pero he respondido lanzándome a la piscina: “todo funciona de maravilla, de una forma sencilla, intuitiva y en un entorno muy elegante”.

cambiar el tiempo de las copias de Time Machine

En la revista Macworld he visto un truco muy útil para los que usen Time Machine (el sistema de backup automático de Leopard). El truco consiste en modificar el tiempo de 3600 segundos (1 hora) que hay preestablecido. Para variarlo solo hay que editar el fichero de texto com.apple.backupd-auto.plist que se encuentra bajo el directorio /System/Library/LaunchDaemons/