Está en la página 1de 17

PRACTICAS

Introducción
En esta práctica encriptarás y desencriptarás archivos con algoritmos de cifrado
simétrico que son usados en la actualidad, a través de la herramienta OPENSSL.

Actividad 1) cifrado de un archivo utilizando los algoritmos DES y AES


Crea un archivo de texto c.txt, al que denominaremos archivo de texto en claro,
utilizando el comando echo o un editor de texto como nedit y/o notepad (echo "Esto es
un texto de prueba" >c.txt).

Para encriptar el archivo, entra al entorno de openssl usando el comandoopenssl


desde una ventana de shell en Linux o Windows.
Te aparecerá el prompt: openssl>.
Para encriptar el archivo c.txt con DES y AES, teclea los siguientes comandos desde el
prompt (substituye ‘contraseña’ por la clave que desees para que se utilice como base
en la generación de la llave de cifrado):

[NOTA1: Deberás ejecutar openssl desde el mismo directorio donde se encuentra


c.txt, de lo contrario openssl no encontrará el archivo; alternativamente proporciona
las rutas completas de los archivos.]

[NOTA2: AES tiene 3 modos de cifrado distinto utilizando los parámetros –aes128, -
aes192 o –aes256, que se refieren a longitudes de llaves de 128, 192 y 256 bits
respectivamente.]
Abre otra ventana de shell y observa el contenido de los archivos encriptados con el
comando cat y/o notepad en windows (observa como el texto es ilegible y la longitud
cambia también).

Actividad 2) Desencriptar los archivos cifrados con algoritmos simétricos DES y AES
Utiliza los siguientes comandos desde el prompt de openssl para desencriptar los
archivos d1.txt y d2.txt (recuerda utilizar la misma contraseña que ocupaste para
encriptarlos):
En otra ventana de shell observa el contenido de los archivos que acabas de
desencriptar(c1.txt y c2.txt) y compáralos con el contenido y longitud del archivo c.txt
(los 3 deberán ser idénticos).

Practica 2
En esta práctica aplicarás encriptamiento y desencriptamiento con el algoritmo
asimétrico RSA.

Actividad 1) Generación de llaves con algoritmo asimétrico RSA

Genera una llave privada de 1024 bits de longitud, priv.key, con el algoritmo de RSA
utilizando el siguiente comando, dentro del entorno openssl:
Genera una segunda llave privada, priv2.key, pero esta vez encríptala con el algoritmo
simétrico DES (puedes cambiar la ‘contraseña’ por la clave que desees; ésta se te
pedirá para poder usar la llave):

[NOTA: La llave privada de una algoritmo asimétrico es un simple archivo, binario o


de texto (como en este caso, que las llaves se generan en formato PEM).

Por esto, comúnmente se encripta la llave privada con un algoritmo simétrico para
evitar un uso ilegal de la misma.]
Observa el contenido de las llaves con el comando cat (cat priv.key) y/o el notepad en
Windows.
Genera ahora llaves públicas derivadas de las llaves privadas que creaste, con los
comandos:

En el Segundo caso que usamos contraseña, en vez de esperar a que openssl te pida
la contraseña, la puedes pasar directamente como parámetro con el comando:
Observa también el contenido de los archivos pub.key y pub2.key con el comando cat
y/o notepad (notarás que son más pequeños que aquellos que contienen las llaves
privadas).

[NOTA: En la teoría de cifrado asimétrico, comúnmente se maneja que las llaves son
intercambiables; en la práctica una de las 2 llaves (la que definimos como privada)
debe almacenar los datos que la relacionan matemáticamente con el otro par (permiten
derivar la llave pública). Debido a esto es que los archivos de llave privada son más
grandes y no pueden ser intercambiados indistintamente con los de llave pública.]
Actividad 2) (Des) encriptamiento de archivos con algoritmo asimétrico RSA
Genera un archivo de texto “pequeño” (3 o 4 palabras) llamado c.txt. Con este archivo
y la llave pública que generaste en la actividad anterior, crea el archivo encriptado d.txt
usando el siguiente comando en OpenSSL:

Puedes ver que el contenido es ilegible con el comando cat y/o notepad d.txt; ahora
desencripta el archivo con el siguiente comando:

Se te pedirá que proporciones la contraseña de la llave privada. Si comparas c.txt y


c1.txt notarás que son idénticos.
Conclusiones

Se pidio un texto pequeño c.txt porque algoritmos asimétricos como RSA tienen que
cifrar todo el texto sin segmentarlo; por su base matemática no pueden encriptar un
texto cuyo tamaño sea mayor que el de la llave misma. Intenta encriptar un texto
grande (por ejemplo de 4kb o más) y obtendrás un error. Si se segmenta el texto y se
cifran los segmentos individuales se vulnera la seguridad del algoritmo (esto da
elementos a los criptoanalistas para romper el cifrado).

Este hecho (además de que los algoritmos asimétricos son más lentos), provoca que
los algoritmos asimétricos sean utilizados principalmente para el intercambio de llaves
(de algoritmos simétricos)y firmas digitales;
Los algoritmos simétricos son los que se usan para encriptar grandes volúmenes de
datos
Practica – Firma Digital

En esta práctica aplicarás el concepto de firma digital, utilizando la herramienta openssl


y los algoritmos RSA y MD5.

Actividad 1) Creación y verificación de firma digital


Genera un par de llaves (priv.key y pub.key) con el algoritmo asimétrico RSA (revisa la
práctica que hicimos anterioremente”).
Crea un archivo de texto c.txt, al que denominaremos archivo de texto en claro, "Esto
es un texto de prueba" > c.txt

Firma digitalmente el archivo c.txt usando el siguiente comando dentro del entorno de
openssl:
El archivo s.sig contendrá la firma digital en formato binario. Para verificar la firma
utiliza el siguiente comando (ahora usando la llave pública):

Deberás obtener como resultado Verified OK por parte de openssl. Prueba modificando
c.txt y volviendo a verificar la firma digital. Observarás que ahora openssl reporta
Verification Failure.
Actividad Previa – Practica Certificados
A través de esta investigacion conocerás las diferentes extensiones de certificados
digitales que existen.

Actividad 1) Investigación de parámetros comunes en certificados digitales

Investiga los siguientes parámetros (para qué sirven):


o CN
oO
o OU
oC
o ST
oL

Investiga también que otros parámetros de certificados digitales existen y qué


estándares documentan estos parámetros
Actividad 2) Diferencias entre certificados digitales para personas y sitios Web
Investiga qué diferencias hay entre un certificado digital personal y el de un sitio Web
indicando las
diferencias en el contenido de los parámetros; contesta también las siguientes
preguntas:
¿Qué son las “Basic constraints”?
¿Qué es el estándar x509?
¿Cuáles son las diferencias entre certificados personales y certificados de sitios
Web?

Revisar Formato de Entrega de Actividad y enviarlo al Docente.


Practica – Certificados Digitales
En esta práctica crearás certificados digitales y una autoridad certificadora, utilizando
la herramienta OPENSSL.

Actividad 1) Crear certificado y archivo de configuración de Autoridad Certificadora


(“CA”)

Genera un par de llaves, CApriv.key y CApub.key (privada y pública), con el algoritmo


asimétrico RSA en openssl (revisa la práctica: “Cifrado asimétrico con OPENSSL”).

Crea un archivo de texto llamado CAconf1.cfg con el siguiente contenido (este


archivo contiene los parámetros que se usarán para crear certificados digitales):
Contenido archivo
CAconf1.cfg
Crea otro archivo CAconf2.cfg utilizando el siguiente contenido (puedes cambiar los
datos que están a la derecha del símbolo de igualdad en el apartado
[req_distinguished_name] por datos que tus datos personales o los que desees):
[NOTA: Recuerda colocar todos los archivos (llaves y archivos de configuración) en el
mismo directorio); también deberás ejecutar el entorno de openssl desde este mismo
directorio para que la herramienta pueda encontrar los archivos.]

Crea un certificado de la autoridad con el siguiente comando en el entorno


openssl:

[NOTA: Este certificado digital con duración de 10 años está autofirmado, por ser el
de una autoridad certificadora; el parámetro –x509 logra esto.]

También podría gustarte