====== 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 \\ \\ - [[https://jumpnowtek.com/security/Code-signing-with-openssl.html|Como firmar codigo usando openssl]]\\ \\ - [[https://www.php.net/manual/es/book.openssl.php|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