Práctica

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

Práctica: Herramientas criptográficas

1- Introducción

La seguridad es muy importante dentro del mundo de la información (Internet). En el


intercambio de información personal o comercial, las personas desean saber con quién se
establece la comunicación (autentificación), asegurarse de que la información que envían es la
que se recibe sin haber sido modificada durante su trayecto (integridad) y prevenir que intrusos
intercepten dicha información (privacidad).

El protocolo TCP/IP ha resuelto varios problemas respecto a la comunicación; pero hay que
tener en cuenta que no fue diseñado pensando principalmente en la seguridad. Por lo tanto, es
necesario incorporar tecnologías de seguridad imprescindibles para resolver problemas como los
siguientes:

 ¿Cómo llevar a cabo la autentificación sin la necesidad de enviar un nombre (login) y


contraseña (password) sobre la red?
 ¿Cómo autentificar usuarios para asegurarse de que ellos son realmente los que dicen
ser?
 Cómo proteger la privacidad de la comunicación; ¿es decir, el flujo de datos a través de la
red entre un cliente (ej. “navegador”) y un servidor (ej. “servidor web”)?
 ¿Cómo asegurar que archivos confidenciales sean accedidos solamente por personas
autorizadas?

Existe una tecnología que es la base para la solución de los problemas de seguridad antes
mencionados:
La criptografía.

2- La utilidad OpenSSL

Tenemos instalado en los PCs A, B y C el paquete de software OpenSSL, que es una


implementación open source de SSL que puede descargarse de http://www.openssl.org Además
de una API criptográfica de propósito general para programar aplicaciones SSL, dispone de una
utilidad de línea de comandos llamada openssl que permite realizar todas las tareas
criptográficas que el protocolo conlleva:

 Calcular hashes criptográficos (MD2, MD4, MD5, RIPEMD-160, SHA, SHA-1)


 Cifrar con algoritmos de cifrado en bloque (AES, CAST, DES, Tiple DES, Blowfish, RC2) o
en flujo (RC4), y usar aquéllos en múltiples modos de operación (ECB, CBC, CFB, OFB).
 Generar claves asimétricas para los algoritmos habituales (Diffie-Hellman, DSA, RSA)
 Utilizar los algoritmos para firmar, certificar y revocar claves.
 Manejar el laberinto de formatos de certificados que existen en el universo (X.509, PEM,
PKCS7, PKCS8, PKCS12).

La sintaxis del comando openssl es genérica y por tanto será válida para cualquier SO en el
que esté correctamente instalado el paquete OpenSSL.

Podemos consultar todas las opciones de OpenSSL:

$ openssl help
Comprobación y verificación de código

OpenSSL soporta varios tipos de “huellas digitales” o digest algorithms, como: MD2, MD4,
MD5, SHA, SHA1, MDC2 y RIPEMD-160 tal y como acabamos de comprobar. Cada algoritmo
puede ser invocado directamente o como opción del comando openssl dgst.

Cree un archivo de texto con la cadena “NOMBRE COMPLETO DEL ESTUDIANTE CON
SUS 2 APELLIDOS SEGUIDO DE SU NUMERO DE CEDULA”, y coloque de nombre del
archivo solo el numero de cedula sin puntos ni letras.
saque su digest MD5:

$ openssl dgst –md5 numdecedula

$ openssl md5 numdecedula

1. Colocar la respuesta de salida como respuesta de la (pregunta 1) la salida del MD5 y


responda
 MD5(cadena de texto de salida del comando)

 ¿Le sale distinto que al compañero?

Si, es distinto al del compañero

 ¿Por qué puede ser?

Porque es un hash diferente que depende de la configuración del hash para cada maquina

Cifrando (encriptando) datos

Cifrar es el proceso de convertir datos (generalmente texto plano) a un formato alternativo


(texto cifrado) que sea diferente al original. El proceso de cifrado de datos generalmente requiere
una clave y usa una serie de algoritmos para realizar la transformación de texto plano a texto
cifrado.

Los algoritmos de clave simétrica (algoritmos de clave compartida) usan la misma clave para
cifrar y descifrar datos. Los algoritmos de clave pública (algoritmos de clave asimétrica) usan
diferentes claves para el cifrado y el descifrado. Los algoritmos de clave pública toman su
nombre

por una de las claves que se utilizan, la clave pública, que puede ser distribuida a otras personas,
los datos que son cifrados con una clave pública sólo pueden ser descifrados con la clave
privada asociada.

OpenSSL soporta varios algoritmos de clave simétrica como: DES, DES3, IDEA, Blowfish y
AES. Cada algoritmo de clave simétrica puede ser invocado desde la línea de comandos
pasando el nombre del algoritmo en el comando openssl.

Cifre con DES3 el archivo de texto anteriormente creado:


$ openssl enc -e –des3 -in archivo -out numdecedula.enc.des3
enter des-ede3-cbc emcryption password: (código de la clase)

2. Colocar la respuesta (pregunta 2) del cuestionario el adjunto encriptado, colocando


como contraseña los dígitos de la clase. Y adjuntarlo en la respuesta del cuestionario con
su correspondiente análisis.

Descifrando datos

Para descifrar numdecedula.enc.des3 usaremos la opción –d tras el algoritmo de cifrado en


el comando openssl.

$ openssl enc -e -d -des3 -in numdecedula.enc.des3


Consulte la ayuda online:
 http://www.openssl.org
 http://dns.bdat.net/documentos/certificados_digitales/x249.html

Para la siguiente pregunta se requiere que se descargue el archivo adjunto “cadena.enc” y


sabiendo las características de encriptados utilice CAST5 en modo CFB con contraseña “telemat”
en el equipo Linux y se realice la desencriptación y se envié al profesor en la respuesta los
caracteres que salieron como resultados de la descripción.

[Text Wrapping Break]

3. Colocar la respuesta del cuestionario (pregunta 3) la salida del proceso de


desencriptación e identifique el texto entregado en la cadena. Realice explicación del paso
realizado y el texto que se obtuvo con la salida.

Certificados digitales (claves públicas/privada)

Para llegar a tener un certificado, primero tenemos que tener un par de claves
pública/privada. OpenSSL trabaja con los algoritmos de clave pública RSA (de Rivest, Shamir y
Adelman), DSA (Digital Signature Algorithm) y DH (Diffie-Hellman). Vamos a trabajar con RSA,
puesto que es el más sencillo de los tres para esta tarea.

Genera una clave privada RSA de 2048 bits usando el subcomando genrsa (empieza con
openssl genrsa -help para ver las opciones disponibles). La clave debe tener 2048 bits, y
tendrás que guardarla en un fichero que llamaremos privkey.pem

$ openssl genrsa -des3 -out privkey.pem 2048


(de contraseña asignar el número de cedula)
$ more priv.pem
Observa el encabezamiento de la clave privada obtenida el cual se debe entregar en la
respuesta de la pregunta 4.

Extrae de la clave privada que acabas de crear, la clave pública (consulta la ayuda del
subcomando rsa, dispone de una opción para ello). Guarda el resultado en key.pub. ¿Qué
diferencias aprecias respecto a la clave privada?
$ openssl rsa -in privkey.pem -pubout > key.pub

Comando que genera la información de la llave privada


$ openssl rsa -noout -text -in privkey.pem
Comando que genera la información de la llave publica
$ openssl rsa -noout -text -inform PEM -in key.pub -pubin
4. Colocar la respuesta del cuestionario (pregunta 4) privkey.pem
 Proc-Type: 4, ENCRYPTED
 DEK-Info:
Colocar la respuesta del cuestionario (pregunta 4) key.pub
 Coloque en la respuesta la primera fila de caracteres del archivo (64 caracteres)

 Entregue la respuesta de la pregunta indicada ¿Qué diferencias consideras respecto


a la clave privada? La cantidad de bits, la clave privada también se encuentra seccionada en
varios módulos como exponent1, exponent2 y coefficient los cuales son producto del proceso de
encriptación des3.

Creación de un certificado autofirmado

En el mundo real, solicitaríamos de una Autoridad de Certificación (por ejemplo, Verisign)


que firmase nuestra clave pública vinculándola con nuestros datos identificativos. Esa solicitud es
un documento digital que se denomina Certificate Signing Request (CSR). Una solicitud así se
crea con el comando:

$ openssl req -new -key privkey.pem -out solicitud.csr


Dicho comando nos va a pedir una serie de datos, que serán los que nos identifiquen en el
certificado. Se trata de campos de un nombre X.509. Como ves, tenemos que dar como
argumento la clave privada, porque la solicitud va firmada por nosotros, y eso requiere el uso de
dicha parte privada. La pública se deduce de ella.

Crear una CSR para la clave pública/privada generada en la sección anterior. Échele un
vistazo y comprueba qué dice la cabecera.

Este documento se enviaría, e.g., a Verisign, y tras la verificación oportuna de quiénes


somos (y el pago de una buena cantidad) Verisign nos extendería un certificado. Para evitar esto,
vamos a firmar nosotros mismos la solicitud. El comando sería:

$ openssl req -x509 -key privkey.pem -in solicitud.csr

y el resultado debe ser un certificado.


Genera un certificado autofirmado de acuerdo con la instrucción anterior y valide la
información con el comando de verificación:

$ openssl req -text -noout -verify -in solicitud.csr

5. Colocar la respuesta del cuestionario (pregunta 5) la información solicitada:


Public Key Algorithm:

RSA Public-Key:
Modulus:

Attributes:
 unstructuredName:
 challengePassword:

Signature Algorithm:
Entregue un análisis de lo realizado en este numeral: Se creo inicialmente un certificado
autofirmado luego a través del comando openssl req -x509 -key privkey.pem -in
solicitud.csr firmamos el certificado ingresando la información solicitada luego se genera el
certificado autofirmado de acuerdo con la instrucción y se valida la información con el
comando de verificación, aquí podemos observar que para la firma se debe ingresar la
información solicitada y un passphrase de verificación, posteriormente a esto se crearon
llaves de seguridad tal como las instrucciones del laboratorio, dándonos nuevas enseñanzas y
aprendizajes.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy