***** Preliminares *********** 0. Archivo de prueba man gcc > gcc_man_temp;man gcc >> gcc_man_temp;man gcc >> gcc_man_temp 1. Funciones Hash i. openssl md5 gcc_man_temp ii. openssl sha1 gcc_man_temp 2. Cifrado Simétrico i. Semillas Aleatorias. dd bs=16 count=1 if=/dev/urandom of=bf_key dd bs=16 count=1 if=/dev/urandom of=clave_aes ii. Cifrado/Descifrado openssl aes-128-ecb -e -a -kfile clave_aes -in gcc_man_temp -out gcc_man_temp_aes_enc openssl aes-128-ecb -d -a -kfile clave_aes -in gcc_man_temp_aes_enc -out gcc_man_temp_aes_dec iii. Comprobando diff gcc_man_temp_aes_dec gcc_man_temp *** Generación de llaves de Betito i. Semillas Aleatorias. dd bs=256 count=3 if=/dev/urandom of=random_seed ii. Generación de Llaves openssl genrsa -out beto_privada.pem -rand random_seed 4096 iii. Separación de llave pública y llave privada openssl rsa -in beto_privada.pem -out beto_publica.pem -outform PEM -pubout iv. Detalles de las llaves openssl rsa -text -in beto_privada.pem openssl rsa -text -pubin -in beto_publica.pem v. Cifrando la llave privade Betito v.a generación de la contraseña secreta echo 'maestria de seguridad UDB' > contrasenya.txt v.b transformando la contraseña a una llave que pueda entender AES openssl md5 contrasenya.txt > clave_betito_para_llave_privada cat clave_betito_para_llave_privada v.c Cifrando la llave privada de Betito openssl aes-128-ecb -e -a -kfile cb -in beto_privada.pem -out beto_privada_cifrada.pem ***** Cifrado gpg realizado por Alicia ******************* i. Cifrando el documento a ser enviado a Betito i.a Generación de llave de sesión dd bs=16 count=1 if=/dev/urandom of=clave_sesion i.b cifrado del documento a ser enviado a Betito openssl aes-128-ecb -e -a -kfile clave_sesion -in gcc_man_temp -out gcc_man_enc_Betito ii. Cifrando la llave de sesión con RSA openssl rsautl -encrypt -inkey beto_publica.pem -pubin -in clave_sesion -out clave_sesion_cifrada ************ Descifrado gpg realizado por Betito ********************** i. Descifrando la llave privada de Betito i.a generación de la contraseña secreta echo 'maestria de seguridad UDB' > contrasenya.txt i.b transformando la contraseña a una llave que pueda entender AES openssl md5 contrasenya.txt > clave_betito_para_llave_privada cat clave_betito_para_llave_privada i.c Cifrando la llave privada de Betito openssl aes-128-ecb -d -a -kfile cb -in beto_privada_cifrada.pem -out beto_privada_recuperada.pem ii. Descifrando la llave de sesión con RSA openssl rsautl -decrypt -inkey beto_privada_recuperada.pem -in clave_sesion_cifrada -out clave_sesion_recuperada iii. Recuperación de la información openssl aes-128-ecb -d -a -kfile clave_sesion_recuperada -in gcc_man_enc_Betito -out gcc_man_rec_Betito iv. COmprobando diff gcc_man_rec_Betito gcc_man_temp *** Firma /verificación **** openssl rsautl -sign -in cb -inkey beto_privada.pem -out sig openssl rsautl -verify -in sig -inkey beto_publica.pem 3. Autoridad Certificadora i. Generación de Parámetros DSA openssl dsaparam 2048 -out dsaparams.pem ii. Generación de Llaves openssl gendsa -out dsarootkey.pem dsaparams.pem iii. Generación de certificado raíz auto-firmado openssl req -newkey dsa:dsaparams.pem -keyout dsarootkey.pem -new -x509 -days 365 -out rootcert.pem iv Examinando el certificado a. openssl x509 -text -in rootcert.pem | more b. openssl asn1parse -in rootcert.pem | more v. Generando certificado para el cliente openssl req -newkey dsa:dsaparams.pem -keyout dsakey.pem -new -days 365 -out dsareq.pem vi. Expedición del Certificado openssl x509 -days 180 -CA rootcert.pem -CAkey dsarootkey.pem -req -CAcreateserial -CAserial ca.srl -in dsareq.pem -out newcert.pem vii Examinando el certificado emitido a. openssl x509 -text -in newcert.pem | more b. openssl asn1parse -in newcert.pem | more c. openssl x509 -inform der -in certificate.cer -out certificate.pem [Opcional] viii.Verificación del Certificado openssl verify -CAfile rootcert.pem newcert.pem 4. Protocolo SSL/TLS i. Generando certificado del servidor openssl req -newkey rsa:1024 -x509 -nodes -keyout test_key.pem -new –out test_cert.pem ii. Servidor en estado de escucha openssl s_server -cert test_cert.pem -key test_key.pem -state -debug iii. Conexión desde el cliente openssl s_client -debug -state openssl s_client -debug -state -connect :993