sábado, 20 de febrero de 2010

Cifrando ficheros mediante OpenSSL

Otra de seguridad informatica.

Si queremos cifrar datos con un sistema seguro en GNU/Linux, disponemos de la herramienta que viene con todas las instalaciones; OPENSSL. Vamos allà:

Definición
OpenSSL es un implementación criptografica muy pontente que implementa, entre otras cosas, Secure Sockets Layer (SSL) y Transport Layer Security (TLS v1). Estos dos protocols son lo que nos permiten navegar de manera segura y mantener nuetros datos de manera privada. Para ello, OpenSSL dispone los mejores algoritmos de encriptación simétrica y asimétrica.

Usos
Se puede usar para:
  • Creación de claves DSA y RSA
  • Creación de certificados x.509
  • Calcular "hash" de ficheros
  • Cifrado y descifrado de datos
  • Pruebas SSL/TLS tanto Cliente como Servidor
  • Sabe manejar signaturas S/MIME y correos cifrados con esta misma tecnología
Algoritmos de hash
  • md2, md5, mdc2, rmd160, sha, sha1, sha224, sha256, sha384, sha512
Algoritmos de cifrado
  • Base 64, Blowfish, CAST5, DES, Triple-DES, IDEA, RC2, RC4, RC5, AES
Ejemplos de cifrado simetrico
Bien, como pequeña practica os mostraré como cifrar un documento de manera segura.
El comando es:
$ openssl
Vamos a usar la opción "enc", que sirve para cifrar los datos que queramos. Para ver los algoritmos soportados podemos hacer un:
$ openssl enc --help
Elegimos uno de los algoritmos de cifrado (recomendado AES, Blowfish, o TripleDes), como por ejemplo -aes256. El comando nos quedará algo así:
$ openssl enc -aes256
Ahora tenemos que poner la acción que vamos a realizar. Podemos cifrar ("-c") o descifrar ("-d"). En nuestro caso queremos cifrar el fichero "ar1.txt", entonces esto nos quedará algo así:
$ openssl enc -aes256 -e
Per claro, no hemos especificado que archivo va a ser cifrado. Para ello utilizaremos "-in" y "-out". Queremos cifrar "ar1.txt" y nos va a quedar como "ar1.cy". Escribiremos lo siguiente:
$ openssl enc -aes256 -e -in ar1.txt -out ar1.cy
Ponemos el password que queramos recordando que debe tener una complejidad acorde con la seguridad que queramos dar a los datos. Bien. Ya tenemos nuestro fichero cifrado. Ahora para descifrarlo podemos usar el comando:
$ openssl enc -d -aes256 -d -in ar1.cy -out ar1_deciphered.txt
Y ya tenemos de nuevo nuestro fichero en cleartext!

Nota: como buena praxis, si queremos cifrar cualquier tipo de datos, es muy recomendado borrar de manera segura los datos en "cleartext" y no borrandolos de manera "normal".

Si quieres cifrar toda una carpeta es mucho mas practico comprimirla toda para luego cifrarla.

Saludos!

[Siguiente post: OpenSSH, hash / digest [II] ]

No hay comentarios:

Publicar un comentario