Si hoy fueran las elecciones en México , ¿por quien votarías?

MVS Radio

miércoles, 18 de abril de 2012

Certificados RSA y DSA en linux usando OpenSSL

Y bien como sabemos openssl es una herramienta opensource que nos ayuda a resolver algunas de nuestras necesidades criptográficas. De que se trata el post, pues de generar certificados x509 de CA y de una entidad que necesite un certificado, llamémoslo un usuario. Las razones por las que llegaron aquí son diversas pero esto les puede servir para su curso de criptografía, o tal vez para un servidor web seguro https, o por los puros lulz. Los algoritmos mas comunes en los certificados son rsa y dsa y dependiendo el nivel de seguridad que deseen pues varia la longitud de la llave. Según recuerdo cuando hice este manualillo que rescate de mis archivos , basta con copiar y pegar en la mayoría de las instrucciones, pero varían en algunos nombres de archivos de entrada y salida, que obviamente pueden ser diferentes. No van a encontrar este manualillo en otro lado, ni en ingles, ya que es 100% mio jeje. No hay problema si lo publican en otro lado, de preferencia ponen una referencia al blog.

***********RSA**************
crear llave privada
sudo openssl genrsa -out millaveprivada 1024

crear llave publica
sudo openssl rsa -in millaveprivada -out millavepublica -pubout

para cifrar con llave publica
sudo openssl rsautl -in prueba -out prueba.cifrado -inkey millavepublica -pubin -encrypt 

para cifrar con llave privada (firmar)
sudo openssl rsautl -in prueba -out prueba.pricifrado -inkey millaveprivada -sign 

para descifrar con llave publica
*****

para decifrar con llave privada
sudo openssl rsautl -in prueba.pucifrado -out prueba.descifrado -inkey millaveprivada -decrypt

*******DIGESTOS**********
para crear digesto
sudo openssl dgst -sha1 -out digestoprueba prueba

para crear digesto firmado
sudo openssl dgst -sha1 -out digestoprueba -sign millaveprivada prueba

********FIRMA DIGITAL RSA***********
1) GENERAR PRIVADA
2) GENERAL PUBLICA
3) sudo openssl dgst -sha1 -out pruebafirmado -sign millaveprivada prueba

********VERIFICAR FIRMA RSA ************
1) sudo openssl dgst -sha1 -verify millavepublica -signature pruebafirmado prueba

******CERTIFICADOS RSA************
Crear el certificado de la autoridad
sudo openssl req -out ca.cer -new -key millaveprivada -config CAconfig.conf -x509 -days 365

* Generar par de claves RSA para un usuario de 1024 bits
1)sudo openssl genrsa -out privadauser1 1024
2)sudo openssl rsa -in privadauser1 -out publicauser1 -pubout

* Generar un requerimiento del certificado para este usuario
1) sudo openssl req -out req_user1 -new -key privadauser1 -config CAconfig.conf
Nota: pide una contraseña al final como desafio

* Firmar el requerimiento y generar el certificado del usuario

1) sudo openssl x509 -inform PEM -outform PEM -keyform PEM -CAform PEM -CAkeyform PEM -in req_user1 -out certificadoUser1 -days 365 -req -CA ca.cer -CAkey millaveprivada -sha1 -CAcreateserial -text

*************Certificado DSA**************
* Generar Parametros DSA
1) sudo openssl dsaparam -out dsaparametros 1024 

* Generar llave privada DSA
sudo openssl gendsa dsaparametros -out dsa_privada

* Generar llave publica DSA
sudo openssl dsa -in dsa_privada -pubout -out dsa_publica

* Crear el certificado de la autoridad
sudo openssl req -out dsa_ca.cer -new -key dsa_privada -config CAconfig.conf -x509 -days 365

* Generar par de claves DSA para un usuario de 1024 bits
1) sudo openssl dsaparam -out dsaparametros_user1 1024 
2) sudo openssl gendsa dsaparametros_user1 -out dsa_privada_user1
3) sudo openssl dsa -in dsa_privada_user1 -pubout -out dsa_publica_user1

* Generar un requerimiento del certificado para este usuario
1) sudo openssl req -out dsa_req_user1 -new -key dsa_privada_user1 -config CAconfig.conf
Nota: pide una contraseña al final como desafio

* Firmar el requerimiento y generar el certificado del usuario

1) sudo openssl x509 -inform PEM -outform PEM -keyform PEM -CAform PEM -CAkeyform PEM -in dsa_req_user1 -out dsa_certificadoUser1 -days 365 -req -CA dsa_ca.cer -CAkey dsa_privada -sha1 -CAcreateserial -text

2 comentarios: