OpenSSL
Descripción
Es la libreria/aplicativos existente en todas las distribuciones que hace todas las tareas de ciframiento necesarias
Prerequistos
Tenerlo instalado .. yum install openssl o apt-get install openssl .. inclusive existe para windows y mac
Ciframiento Simétrico
Esto usa una unica llave que se comparte por ambas partes
# provide password on command line
> openssl enc -aes-256-cbc -salt -in file.txt -out file.enc -pass pass:mySillyPassword
# provide password in a file
> openssl enc -aes-256-cbc -salt -in file.txt -out file.enc -pass file:/path/to/secret/password.txt
Y si quiere usar base64
# provide password on command line
> openssl enc -a -aes-256-cbc -salt -in file.txt -out file.enc -pass pass:mySillyPassword
Y para descifrar solo use “dec” y da igual
Ciframiento Asimétrico
1. Generacion del par de llaves
El default son llaves de 512
> openssl genrsa -out private.pem
si quiere llaves de 1024 o mas
> openssl genrsa -out private.pem 1024
y a partir de ahi se puede generar la llave publica en formato PEM
> openssl rsa -in private.pem -out public.pem -outform PEM -pubout
2. Ciframiento con la llave publica y descifrando con la privada
Cifranto el archivo file.txt
> openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Y descifrando
> openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
Y si lo quiere pasando por base64
Cifranto el archivo file.txt
> openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt | openssl enc -base64 > file.ssl
Y descifrando
> cat file.ssl | openssl dec -base64 | openssl rsautl -decrypt -inkey private.pem -out decrypted.txt
3. Ciframiento con la llave privada y descifrando con la publica
Cifranto el archivo file.txt
> openssl rsautl -sign -inkey private.pem -in file.txt -out file.ssl
Y descifrando
> openssl rsautl -verify -inkey public.pem -pubin -in file.ssl -out decrypted.txt
Y si lo quiere pasando por base64
Cifranto el archivo file.txt
> openssl rsautl -sign -inkey private.pem -in file.txt | openssl enc -base64 > file.ssl
Y descifrando
> cat file.ssl | openssl dec -base64 | openssl rsautl -verify -inkey public.pem -pubin -out decrypted.txt
Trucos
Problemas
1. Si el instale_mrtg.sh no le funciona
-
Referencias
- http://www.openssl.org/docs/
- http://www.dcc.uchile.cl/~pcamacho/tutorial/crypto/openssl/openssl_intro.html
- http://www.devco.net/archives/2006/02/13/public_-_private_key_encryption_using_openssl.php
- http://www.madboa.com/geek/openssl/
- OpenSSL Cookbook https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html
- Como convertir formatos de certificados https://www.digicert.com/kb/ssl-support/openssl-quick-reference-guide.htm
Como ejecutar tareas
- Un pasao mas para cifrar https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-using_openssl
- Una buena introduccion a SSL Certificates https://phoenixnap.com/kb/openssl-tutorial-ssl-certificates-private-keys-csrs
- Como firmar codigo usando openssl
- Las funciones en PHP
FIN
Advertencia
Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.
15-Marzo-2006 J.E.Gomez v1.0 Primera version