Вы находитесь на странице: 1из 7

Felipe Lourenço

Práctica 5 - Práctica de cifrado y firma con openSSL

PARTE I
1. Cifrar un texto en claro empleando el algoritmo DES y luego descifrarlo

Cifrar – Texto plano:


Felipe Lourenco de Souza
Practica de cifrado y descifrado
Practica de numero cinco

Cifrar – Comando y resultado:


openssl enc -des -in ejemplo.txt -out ejemploD.txt -e -k felipe -p
salt=323F1C7C21AC3788
key=FBE12FC8C5F4625A
iv =85106E0732F752E3

Decifrar – Texto cifrado:


Salted__2?|!¬7ˆØê!ÚSÂȉ*•â`î[ÅŒÎóΊ—MDŽ¯1)! þ×
[›è>&Ž'{•°äaˆšñ‚®;CîÒUŒæ@ŒT¯9@Þï·IoŠ4••G

Decifrar – Comando:
openssl enc -des -in ejemploD.txt -out ejemploC.txt -d -k felipe -p
salt=323F1C7C21AC3788
key=FBE12FC8C5F4625A
iv =85106E0732F752E3

2. Comparar el cifrado resultante con otros algoritmos simétricos (3des, idea, aes, ...)

Algoritmo: AES128

Comando:
openssl enc -aes128 -in ejemplo.txt -out ejemploDaes128.txt -e -k felipe -p
salt=E68A6AA53F8E1C72
key=696BBD51029BEC0E7153F39D1E96FD1F
iv =DE72D1E4E35871E088E5351FB0DCAA26

Texto Cifrado:
No se pudo ver el contenido del fichero resultante en el editor de texto.

Algoritmo: RC4
Comando:
openssl enc -rc4 -in ejemplo.txt -out ejemploDrc4.txt -e -k felipe -p
salt=ED7FACA28C29505B
key=13D4389B86B22C3E1B0C0C96D6410FA5

Texto Cifrado:
Salted__í• ¬¢Œ)P[ÕŸd·RX‡~²SÏÓe”²5u#–<¢Ì…÷ʲ—5ʇÁË°‡,˜³bro9îzUúÞŒ‰
óœþ\S•2\@N•9¹'÷
°"9}{ûAïÜ?Ú8C•

3. Calcular el extracto digital (resumen) de ese mismo texto empleando los algoritmos MD5 y SHA1

Comando – MD5:
openssl dgst -md5 -out extracto_texto.txt ejemplo.txt

Extracto Digital:
MD5(ejemplo.txt)= fea014614a4ad0e6e7219692dfcd7249

Comando – SHA1:
openssl dgst -sha1 -out extracto_texto2.txt ejemplo.txt

Extracto Digital:
SHA1(ejemplo.txt)= 8463d3bdcdc2c79db9e449092fd0602d379fcae0

4. Modificar un único carácter del texto original y realizar de nuevo el resumen. Comprobar qué
sucede.

Resultados:
MD5(ejemplo.txt)= 53794b97cdc1f77148b89e121370d5b5
SHA1(ejemplo.txt)= 25669a03299a566158498d9ce27731e62a1bc495

Comentário:
El extracto fue completamente modificado solo por se tener cambiado un carácter del texto.

5. Aplicar un método de cifrado simétrico a otro tipo de ficheros (por ejemplo, una imagen).

Imagen Utilizada:

Comando:
openssl enc -des -in campusvirtual.png -out campus.png -e -k felipe -p
salt=0475EBC8A6458C7B
key=B3014878829667F4
iv =FE1804670B2352DE
Comentário:
No es posible abrir la imagen generada con el cifrado.

6. Crear un par de claves RSA (privada/pública). Nota: se debe generar en primer lugar la parte
privada (ver manual).

Comando – Clave Privada:


openssl genrsa -out claveprivada.pem 1024

Clave Privada:
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCu6HasfvFhQMrrZRoe11/csftwhK2UumDuQ17cPidJzdUzwU9w
07xO7Ys3ShGAWESrC481xZwb60UohxNaW1g5OlxYxe70nHDRNUFVSLrofyatroaJ
6K/ig0uFZl+ydqZ5i/vaip2K6PPWQ83hfssPZq18CIi/v2kdfjfyU+C1HQIDAQAB
AoGANGBGUUc+LvpBCZZf6QZjnWnqunnwpM3fAtpHyLoP98jcZEAp8sZk6Fm3y5mx
ffZwsaunedmv8qhUMFuqju81jobRJYt13vOJrGEcRxaPbWLCgnYkkP7KCFDDcren
UG1Qg0LXggdyBpMWbGJhlKAilwnbgx5IWPgafg48GkS+670CQQDTq8ZkprtLoDRJ
cAm2AFOJQC4bE942kn3bMKbukXdSWoJ9ggEbdu6eAu2YpSUu/jfkVrFryaGDoOVJ
HM2JWN97AkEA04m7vIlgUExKLqLrSw4ev4F9wRcv7JE29tGuv+O6Ohuqn6pMcuuE
rjkyIA1XhRj3v+BOy7bK2L3Y14+tb2YORwJAGAeYLjT/bkZxqSSe9Zpz4VD36vsG
bwuSXh/X052P/jloNvdbSNLno+iRMJMO9ZbGoZV17talD1xkqzgp3T3JoQJBAKtM
J3h/Dj036gJl739xybhuVbUc37QDy6yHE6lT8aPIb5ynvQx6Z5DlxA9sfmjLVSRN
scEJHq3w3j2AnYNN81UCQFOHBNztg47h1o/Hv8uFyfvCcHSRpeRH8z98Rk53YNa8
bBhMujGoKVOU7c1dlPAnnZF1L1gUIF8DiUr669P463c=
-----END RSA PRIVATE KEY-----

Comando – Clave Pública:


openssl rsa -in claveprivada.pem Ŕpubout

Clave Pública:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu6HasfvFhQMrrZRoe11/csftw
hK2UumDuQ17cPidJzdUzwU9w07xO7Ys3ShGAWESrC481xZwb60UohxNaW1g5OlxY
xe70nHDRNUFVSLrofyatroaJ6K/ig0uFZl+ydqZ5i/vaip2K6PPWQ83hfssPZq18
CIi/v2kdfjfyU+C1HQIDAQAB
-----END PUBLIC KEY-----

Comentário:
Para la resolución de este Ejercicio (nº 6), fue utilizado el contenido del siguiente sitio:
http://www.madboa.com/geek/openssl/#key-rsapublic

7. Cifrar un texto usando una clave pública (la vuestra en este caso).

Comando:
openssl rsautl -in ejemplo.txt -out ejemploRSA2.txt -inkey clavepublica.txt -
pubin -encrypt
Texto Cifrado:
?
IZ;æ-Öu=ùŒØi¿>“íù|ß߇òS2±«35Nå?]OâfÂØ8Œ6šà)ó<r7|•£‘ ု¬çòv«âŒ²=
Šê·÷
xz•©šmŒ ¶ Š•[Ø£{=<Kû4N#ÓŸc»™4œ€àÏæáµ—(…QŽ

8. Firmar el texto anterior empleando la clave privada y luego verificar esa firma empleando la clave
pública. ¿Hay limitaciones en el tamaño del texto? ¿Cómo puede solucionarse?

Comando:
openssl rsautl -in ejemploRSA2.txt -inkey claveprivada.pem -out
ejemploFirmado.txt Ŕsign

Resultado:
RSA operation error
1980:error:0406C06E:rsa routines:RSA_padding_add_PKCS1_type_1:data too large
for key size:rsa_pk1.c:73:

Comentário:
Después de verificar el resultado, se puede decir que hay limitaciones en el tamaño del texto. Lo que se
puede hacer es utilizar claves más grandes.

PARTE II
0. El objetivo de la segunda parte de la práctica es probar el funcionamiento del correo electrónico
cifrado. Los alumnos establecerán parejas en las que unos actuarán como emisores y otros como
receptores del mensaje. Antes de empezar tanto el emisor como el receptor deberían disponer de un
par de claves RSA.

Comando – Clave Privada 1:


openssl genrsa -out claveprivada1.txt 1024
Generating RSA private key, 1024 bit long modulus
.......................++++++
..............++++++
e is 65537 (0x10001)

Clave Privada 1:
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDwLBwi/2wG+f1DdWs2UlkHphXsJdo+X5ehpzuuYi4/v6tvccn6
Xi9blLmEvrZGB2mjTDxvm0mCSJpUlnbzgc3gjM7wDhoq3byRRY54NA3FgQ1fJkue
4pbGYihB4IYYyZQf1NFX9orEMQJklsk+um2uXC9az7B/jCKSiwxcKiU5swIDAQAB
AoGAC4SiCM+lF6SPj9emv6EtYd+GN6ANGmatN/R0OUW+IBKKHzsey6IOtV6pkwMu
bKdYWpuCXnvdB6GBvULGC6GTBPUTM05DYb2G8uZbJf27pybQtzGb1zETgukr3EAC
26svBAk+5YIZGlp1Kkugu2Yl76A/u/WljWUj4Rzv+RSZWbkCQQD4jA1QR0+KFVqu
20pvhF9Sja+E1vIvi0IvrEgCA7DhU91gb/dJj++mT6Y9UoqMM/r6j8J3lI6WETDW
jlepJ6GPAkEA91/FDj24T3FrwFE/IFxdwQom2SpThHqypmhP5EiaE9pYwDdzVBEx
RMVqeNHtNLbT3XsWj9x81lx1blsnuboLnQJANGGv3J9qz/s4JWnqAh6vyEI8H479
c6+xv0Jb2rDUcmiuW0i9oS9InpBixMHEmU/LMUti/Li+ZDozRMSzDN9hWQJAEb9/
RdxLwvdiQbQSkWHPIDB4RRByWYjsFGBbiwdidpYt0+ymi5uIK2T2lKCLIkMTxEo2
fi/VjROpITfNC9g7SQJBAJYBHOc+HBUEM47zJiig4hWPohYFuH+6AUaF5CwCt+7g
fOztbYEuAmzJRJ/899O7WiJuNkCf+8PtRqEH0dfct+w=
-----END RSA PRIVATE KEY-----

Comando – Clave Privada 2:


openssl genrsa -out claveprivada2.txt 1024
Generating RSA private key, 1024 bit long modulus
........++++++
...................................................................++++++
e is 65537 (0x10001)

Clave Privada 2:
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC42TfFLtd3RtQSeRYo7TzHB8kvJGTYhUIlNoJ+FNs0ArChYDZb
8FMILfdfrQEGsH/eq4IR7Owy3rj4R2QzmKOVUDIB0NKPBRpiJoWbM6FBM8r338zv
1g4z0KdBcRw+VS/ZS7MZ8MB516zdXHhe4iMM3n8BgGpB3rVQx9BsFS/r7QIDAQAB
AoGAMwPH74SA9Ks4hiyi4AKxXmCYtoj9x//nBGwp0XAiGxWO98qc1fzafYxqFB6k
BNubPrHowNe5TETJmcPiNJcwteENjmM3SZgZihNFkIx3BoHzrl2mKWbNRu+xIq4n
DO++p/sUiU3EZJipGq3wf0X6zh0xidCrU8PibQ+eCBSA/GUCQQDuOKiGRiHkIijG
++O5TtJCOkknW+c+JED53qqyUi5tuJdsojvs+HSvJeBB3NLowQh6M9imYeVDlkvG
u61di+cLAkEAxqTYJBGlB+a93qTv4V4nMsFEnmtbb6o7WXNVzbJzyl8ShDSLJ3Bn
JPb7pT3fs4v+/Cs+G5dSwHwKBzj0aMnz5wJBAOpHBlWnO0Vk4r1uk7J2dglz0OXI
WE6g0NXryeu9LrPxSdooYs7WOcrWcQnU5gbJcFDeFD7tH8+sS7GSeRj6sakCQDBi
WI84iQUKq/a+H/u57jxLnQYlSilBwqEAGcc3j0Kcs6rmDXr2wvja++J81q8qC1qq
wb8AtdRSojKuKcIYZsMCQAKcJjZrPa5d2h42+97hxmF/X++m1ycNTKZ5teXjMv20
b5owDfr/TtrMLlyc2JVDXYa7ZaFvceMGvmguFMeqPgM=
-----END RSA PRIVATE KEY-----

El procedimiento será el siguiente:


1. En primer lugar el emisor le envía un correo sin firmar al receptor pidiéndole su clave pública.
Este le devuelve un correo adjuntando dicha clave.

Comando – Clave Pública 2:


openssl rsa -in claveprivada2.txt -pubout

Clave Pública 2:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC42TfFLtd3RtQSeRYo7TzHB8kv
JGTYhUIlNoJ+FNs0ArChYDZb8FMILfdfrQEGsH/eq4IR7Owy3rj4R2QzmKOVUDIB
0NKPBRpiJoWbM6FBM8r338zv1g4z0KdBcRw+VS/ZS7MZ8MB516zdXHhe4iMM3n8B
gGpB3rVQx9BsFS/r7QIDAQAB
-----END PUBLIC KEY-----

2. El emisor cifra el mensaje a transmitir con una método de cifrado simétrico y luego cifra la clave
simétrica utilizada con la clave pública del receptor. A continuación le envía un correo al receptor
adjuntando el texto cifrado y esta última clave cifrada. Debéis indicar también el algoritmo de
cifrado simétrico utilizado.
Mensaje:
openSSL es una implementación libre del protocolo SSL que incluye un conjunto de funciones para la
realización de actividades criptográficas.

Comando – Cifrado Simétrico:


openssl enc -blowfish -in mensaje.txt -out mensajeCifrado.txt -e -k
practicaseguridad -p
salt=ADBA9663B3B96194
key=45FF31D04A5ABC76E0280D0F2A170C5A
iv =0FCA74C7F805DDC2

Algoritmo de Cifrado Utilizado:


Blowfish

Clave Simétrica Elegida:


practicaseguridad

Comando – Cifrar con la Clave Pública:


openssl rsautl -in clavesimetrica.txt -out claveCifrada.txt -inkey clavepublica2.txt -pubin -encrypt

Clave Simétrica Cifrada:


뜥䮍≛᰻邪栜褆臙㣾篬戺拓媛쏄⼉౪᰻〤᰻ᑝ桽䚬ක콩椻᰻᰻괒흞빌뇇䑧᰻릸빓䀺벿篻晠䶩싘壵‫ړ‬ㄇ뭧⽈ꄓ 챆䂺懴
⌝蛬涣㢒垽㯋荟欂

3. El receptor descifra la clave simétrica empleando su clave privada y emplea dicha clave simétrica
para descifrar el mensaje.

Comando – Decifrar con la Clave Privada:


openssl rsautl -in claveCifrada.txt -out claveDECifrada.txt -inkey
claveprivada2.txt -decrypt

Clave Descifrada:
practicaseguridad

Comando – Descifrar el mensaje con la clave descifrada:


openssl enc -blowfish -in mensajeCifrado.txt -out mensajeDECifrado.txt -d -k
practicaseguridad -p
salt=ADBA9663B3B96194
key=45FF31D04A5ABC76E0280D0F2A170C5A
iv =0FCA74C7F805DDC2

Texto Descifrado:
openSSL es una implementación libre del protocolo SSL que incluye un conjunto de funciones para la
realización de actividades criptográficas.
4. Propuesta de mejora: ¿seríais capaces de mejorar el protocolo para que el mensaje también fuese
firmado por el emisor de forma que el receptor pudiese verificar la autenticidad del mensaje?
Describid los pasos.

Comentario:
Para que se pudiera verificar la autenticidad, el emisor podría cifrar el mensaje con su clave privada. Ya
que cualquiera puede tener acceso a su clave pública, se garantiza que la identidad sea confirmada.

Вам также может понравиться