Cifrar y descrifrar con OpenSSL
OpenSSL permite cifrar y descrifrar un fichero usando su linea de comandos. Vamos a ver un ejemplo:
Primero de todo deberemos escoger un algoritmo de cifrado, con list-cipher-commands podremos ver la lista completa:
$ openssl list-cipher-commands aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb rc4 rc4-40
A continuación podemos usar uno, por ejemplo AES, para cifrar un fichero:
$ openssl aes-128-cbc -salt -in ejemplo -out ejemplo.aes128 enter aes-128-cbc encryption password: Verifying - enter aes-128-cbc encryption password:
Podemos ver el resultado del cifrado de un fichero con el texto “ejemplo“:
$ hexdump -C ejemplo.aes128 00000000 53 61 6c 74 65 64 5f 5f 6d 0e d3 d7 f2 d4 ff c6 |Salted__m.Ó×òÔÿÆ| 00000010 ae 4d 05 59 6b d9 3a 80 c0 12 18 8b da d7 13 6e |®M.YkÙ:.À...Ú×.n| 00000020
Para su descrifrado se puede hacer mediante la opción -d (decrypt):
$ openssl aes-128-cbc -d -salt -in ejemplo.aes128 -out ejemplo.out enter aes-128-cbc decryption password:
Para evitar que se pida interactivamente la contraseña se puede hacer uso del parámetro -k para indicarla a continuación en la línea del comando. Para una mayor seguridad, evitando que se vea la contraseña usada en la lista de procesos, se puede usar -kfile que indicamos el fichero donde se encuentra la contraseña en su lugar.
Relacionados
Imprimir
4. December 2009 at 8:02 pm :
A que te refieres? A que no se muestre en el history del bash o si haces un ps ? No lo veo claro.
Gràcies
6. December 2009 at 7:47 pm :
Me refería al ps, un usuario en el mismo sistema podría ver el proceso con los parámetros con un simple
Mediante grsecurity se puede limitar la visibilidad de procesos a los del propio usuario.
Por otro lado, el history acaba siendo un fichero con unos determinados permisos, por lo que es equivalente al kfile.