Si u2

Page 1

2º SMR - Seguridad Informática Unidad 2: Criptografía

Unidad 2: Criptografía La criptografía es el arte o ciencia de cifrar y descifrar información mediante técnicas específicas y se emplea frecuentemente para transformar mensajes de manera que sólo puedan ser leídos por personas o procesos a los que van dirigidos y que posean los medios necesarios para descifrarlos. Contenidos de la unidad 1. Basic concepts.........................................................................................................................1 2. Criptografía simétrica y asimétrica..........................................................................................2 3. Hash function...........................................................................................................................5 4. Firma digital.............................................................................................................................6 5. Digital certificate......................................................................................................................7

1. Basic concepts 

Plaintext or cleartext is the original information to be protected.

Ciphertext or cryptogram is the information expressed in an unintelligible way.

Encryption Algorithm is a method for transforming plaintext to obtain the ciphertext. The encryption algorithm can have an associated decryption algorithm, which obtains the plaintext from the ciphertext. The encryption and decryption algorithms are standard and keeping them secret is not required.

Key is an additional piece of input data for the encryption or decryption process. May be necessary to keep it secret, and its knowledge is necessary for the proper execution of the encryption or decryption process.

Encryption algorithms are classified into two types:

o

Block, dividing the origin text into fixed size blocks for being encrypted or decrypted independently.

o

Flow, encrypting or decrypting as the reading of the source text is made.

The two simplest encryption techniques in classical cryptography are: o

Replacement, based on the change of meaning of the basic elements of the message (letters, digits or other symbols)

o

Transposition, based on the rearrangement of the basic elements of the message (letters, digits or other symbols)

-1-


2º SMR - Seguridad Informática Unidad 2: Criptografía Activities 1. Identify the algorithm and the key in each of the following classical methods. Indicate whether it is a transposition or a replacement system. a. b. c. d.

Scytale Polybios Caesar Vigenère

2. Research what are the current applications are Steganografy. Give some examples of steganographic techniques in images, audio, video or text. 3. Oculta un texto dentro de una imagen. Ayuda: http://www.taringa.net/posts/info/15371860/Como-ocultar-archivos-adentro-de-imagenes-audio-o-videos.html a. Crea un archivo que contenga un texto sencillo. b. Comprime el fichero de texto. c. Busca una imagen de un tamaño medio. d. Oculta el archivo comprimido en la imagen. Llama a la nueva imagen tunombre.jpeg e. Comprueba cómo el tamaño de tunombre.jpeg es mayor que la imagen inicial (siempre que el fichero de texto tenga un tamaño considerable). f. Comparte tunombre.jpeg en el servidor del aula. g. Descarga la imagen de un par de compañeros y visualiza las imágenes ¿Qué información ocultan sus imágenes?

2. Criptografía simétrica y asimétrica La criptografía de clave simétrica o criptografía de clave privada, es un método en el cual se usa una misma clave para cifrar y descifrar mensajes. Las dos partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar y mantenerla en secreto. 

Ejemplos: DES, 3DES, Blowfish, IDEA, RC5, AES

Ventaja: algoritmos eficientes

Desventajas: o

¿Qué canal seguro se emplea para compartir la clave?

o

Se requieren muchas claves para establecer comunicación segura entre cada par de elementos de un grupo.

La criptografía de clave asimétrica o criptografía de clave pública emplea una pareja de claves por cada participante: la clave privada, que se mantiene en secreto y la clave pública, que se da a conocer a todos los participantes. Lo que cifra una solo lo puede descifrar la otra y viceversa. La confidencialidad de una comunicación puede conseguirse cifrando el mensaje con

-2-


2º SMR - Seguridad Informática Unidad 2: Criptografía la clave pública del destinatario, que será el único que podrá utilizar su clave privada para descifrar el mensaje. 

Ejemplos: DH, ElGamal, RSA

Ventajas:

o

No requiere compartir una clave privada

o

Se requieren pocas claves para establecer comunicación segura entre cada par de elementos de un grupo.

Desventaja: los algoritmos no son eficientes, sino que requieren gran cantidad de recursos computacionales.

La criptografía híbrida consiste en emplear criptografía simétrica durante la comunicación, y criptografía asimétrica sólo inicialmente para compartir la clave privada. Actividades 4. El comando gpg (GnuPG en Windows) se utiliza para realizar el cifrado y descifrado simétrico de un documento de prueba. Crea un texto de prueba y cifra y descífralo. Anota los pasos realizados y problemas encontrados. Ayuda: http://www.genbetadev.com/seguridad-informatica/manual-de-gpg-cifra-y-envia-datos-de-forma-segura a. Crea un nuevo archivo llamado simetrico (sin extensión) que contenga el texto Esto es una prueba b. Cifra mediante el comando gpg el fichero simetrico (empleando un algoritmo de cifrado simétrico. Emplea la clave si c. Abre el texto fichero con el texto cifrado (se llama simetrico.gpg) ¿Puedes leer el texto que escribiste? d. Descifra mediente gpg el archivo simetrico.gpg empleando la clave si. Almacena el texto descifrado en un fichero llamada descifrado e. ¿Qué ocurre si introducimos mal la contraseña? f. Comprueba cómo cada vez que se utiliza gpg -c, se genera un archivo cifrado distinto. 5. Utiliza el comando gpg (GnuPG) para realizar las siguientes operaciones, anotando los pasos realizados y problemas encontrados: Ayuda: http://www.genbetadev.com/seguridad-informatica/manual-de-gpg-cifra-y-envia-datos-de-forma-segura a. Genera una clave pública y una privada (utiliza una contraseña sencilla) y lista las claves públicas y privadas que hay en tu anillo de claves local. b. Extrae la clave pública a un fichero llamado tunombre.pub c. Exporta cifrada la clave privada al fichero tunombre.priv (recuerda siempre mantenerla en un lugar seguro) $ gpg --export-secret-keys -a [IDdeLaClavePublica] > tunombre.priv d. Sube al servidor FTP del ordenador de la profesora tu clave pública (tunombre.pub)

-3-


2º SMR - Seguridad Informática Unidad 2: Criptografía e. Descarga del servidor FTP las claves públicas de dos alumnos de tu curso (extensión .pub). f.

Importa las claves públicas que acabas de descargar (extensión .pub).

g. Genera un fichero de prueba llamado paraNombreCompañero y cífralo con la clave pública que antes importaste. Repite el proceso con otro fichero y cífralo con la segunda clave pública que descargaste. Súbelo al ordenador de la profesora. h. Sube al servidor FTP de clase los dos ficheros cifrados (extensión gpg) que creaste en el punto anterior. i.

Recoge del servidor FTP todos aquellos ficheros de los que seas el destinatario. Descífralos empleando tu clave privada.

j.

Publica tu clave pública en un servidor de claves (por ejemplo pgp.rediris.es). (Necesitarás conexión a Internet). Una vez enviada nuestra clave al servidor de claves, esta automáticamente es reenvíada a todos los servidores de claves del mundo y NO ES POSIBLE borrarla de ellos. Comprobad que tenéis bien escrito el nombre, dirección de correo y comentario antes de enviar la clave (es mejor evita los acentos y las ñ). Ayuda: Puedes comprobar si la clave se ha subido correctamente en la siguiente URL http://pgp.rediris.es/. También puedes subir la clave en modo texto mediante esta web [CON PROXY] export http_proxy=http://ipProxy:8080 gpg --honor-http-proxy --send-keys --keyserver pgp.rediris.es [IDdeLaClavePublica]

k. Descarga e importa las claves públicas que se encuentran en el servidor pgp.rediris.es de otros dos de tus compañeros (Necesitarás conexión a Internet) Ayuda: Puedes descargar las claves públicas buscándolas directamente en http://pgp.rediris.es/ o mediante comandos.

[CON PROXY] gpg --honor-http-proxy --keyserver pgp.rediris.es --recv-keys [IDdeLaClavePublica]

l.

Revocación de las claves publicadas. Imagina que la clave pública que has generado deja de ser válida antes de la fecha que estableciste establecida por algún motivo (por ejemplo, al verse comprometida su seguridad). Deberemos entonces revocarla, es decir, dejarla inutilizada. Una clave pública revocada no puede ser empleada para encriptar mensajes pero sí se puede emplear para desencriptar mensajes generados antes de la fecha de revocación.  Genera el certificado de revocación llamado revocartunombre.asc en formato ASCII. gpg -o revocartunombre.asc [IDdeLaClavePublica]

--gen-revoke

-armor

 Importa el fichero de revocación (.asc). De esta forma conseguimos revocar la clave pública en el anillo de claves de tu ordenador. -4-


2º SMR - Seguridad Informática Unidad 2: Criptografía gpg --import revocartunombre.asc  Lista las claves públicas que hay en tu anillo de claves local y comprueba cómo una de ellas está revocada. m. Sube al servidor FTP del aula el fichero de revocación que acabas de generar (revocartunombre.asc) n. Revoca dos de las claves públicas de tus compañeros de entre las que anteriormente importaste. o. ¿Qué ocurre al intentar cifrar un fichero con una clave pública revocada? p. Envía el certificado de revocación al servidor de claves que empleaste anteriormente. Para revocar una clave de un servidor de claves sólo tienes que volver a subirla al servidor. Ayuda: https://www.rediris.es/keyserver/remove.html.es [CON PROXY] gpg --honor-http-proxy --send-keys --keyserver pgp.rediris.es [IDdeLaClavePublica]

q. Comprueba que la clave pública ha sido revocada en el servidor del claves.

6. Calculate how many keys need to be exchanged in a group of five persons who want to send encrypted emails each other, both for the case of using symmetric and asymmetric cryptography. What if there are ten persons in the group? And what if there are one hundred?

3. Hash function A hash function is an algorithm applied to a dataset of unlimited size (for example, a file), getting a number (sequence of bits) of fixed length, which satisfies the following properties: 

The dataset cannot be computed only from the hash number.

From two different datasets, a different hash number is obtained.

The hash function has several applications, including: 

Checking file integrity

Storing user passwords in a file

-5-


2º SMR - Seguridad Informática Unidad 2: Criptografía

Actividades 7. Use the application WinMD5, that computes the hash value of a file using the MD5 algorithm. a. Create several text documents. b. Compute their hash values. Write down the steps performed. c. Are you getting very similar hash values? d. How much different are the hash values from two documents that differ only in a character?

8. Use the md5sum command of the GNU Core Utilities hash function to generate a test file. Write down the steps taken and problems encountered.

4. Firma digital La firma digital es el resultado de cifrar con la clave privada el resumen de los datos a firmar. Generalmente, la firma digital acompaña a los datos cuyo origen se desea certificar, y pueden aparecer en texto claro. Un documento se puede firmar de tres formas diferentes: 1. Mezclando el mensaje con la clave privada en origen. En destino se verifica la procedencia con la con la clave pública (Ejercicio 9: Puntos c, d y e).

2. Generando un único fichero con el texto en formato ASCII y la firma al final (Ejercicio 9: Punto f).

-6-


2º SMR - Seguridad Informática Unidad 2: Criptografía 3. Manteniendo la firma separada del fichero firmado (Ejercicio 9: Punto g y h). Para verificar la firma son necesarios tanto el documento original como la firma.

Actividades 9. Utiliza GnuPG (comando gpg) para generar la firma digital de un documento de prueba. Utiliza el comando gpg (GnuPG) para realizar las siguientes operaciones, anotando los pasos realizados y problemas encontrados: Ayuda: http://www.genbetadev.com/seguridad-informatica/manual-de-gpg-cifra-y-envia-datos-de-forma-segura https://www.gnupg.org/gph/es/manual/x154.html

a. Crea un documento de texto con un texto cualquiera y llámalo firma. b. Genera una clave pública y una privada c. Firma con la clave privada el archivo firma. Llama al archivo firmado firma.sig d. Comprueba la firma e. Comprueba la firma y recupera el documento original al mismo tiempo. f.

¿Para qué sirve el parámetro --clearsign? ¿Cómo se utiliza?

g. ¿Qué hace el siguiente comando gpg --detach-sign -a firma? ¿Cuándo puede ser útil? h. Verifica la firma del punto anterior

5. Digital certificate A digital certificate is an electronic document that binds a public key to the identity of the owner (person or entity). The identity of the owner can be expressed in several ways: name, ID number (DNI), DNS name or simply an email address. The owner is the one who holds the private key corresponding to the public key in the certificate, the private key is not part of the certificate. -7-


2º SMR - Seguridad Informática Unidad 2: Criptografía In addition to the public key and the data identifying the user, the digital certificate includes other information, such as services for which the public key is valid, the start and end dates of the certificate, etc. The digital certificate is a file that can be used by applications to digitally sign information (documents, messages, etc.) or for confidential communications. Digital certificates and corresponding private keys can be located in the computer file system, or in specific hardware as cryptographic cards or electronic ID cards (eDNI). To ensure that the public key actually belongs to the owner referenced in the certificate, the intervention of a Certification Authority (CA) acting as trusted third party is necessary. It is an organization that verifies the identity of the owners (may require, for example, the physical presence of the user in a particular office) and provides a digital signature that is added to the digital certificate. Therefore, to validate the correctness of a digital certificate, the public key of the certification authority that issued the signature is required. This public key is expressed again by another digital certificate which in turn may be signed by a new certificate authority level. Thus, a hierarchy of authorities is established. The different applications (mainly browsers and mail clients) incorporate factory, digital certificates for some authorities and therefore, they don't need to be signed by additional authorities to be considered valid (they are self-signed certificates). These certificates used by applications without requiring any trusted third company are called root certificates (level 0). Generally, it is always possible to add or remove root certificates in applications. Certificate authorities can delegate the task of verifying the identity of the owner of a digital certificate in so-called registration authorities. Also, they keep the repositories for the issued certificates and also manage a certificate revocation list.

Actividades 10. Have a look the digital certificate used by any secure website. What relevant information is included?

11. Find out the steps to be performed in order to get and install a certificate from the Agencia de Tecnología y Certificación Electrónica? How can be validated whether a certificate has been revoked or not?

12. Descarga el certificado raíz de la Fábrica Nacional de Moneda y Timbre (FNMT). Incorpórala a tu navegador como Autoridad de Certificación Válida. Comprueba que la descarga es correcta (sha1sum fichero) Ayuda: https://www.sede.fnmt.gob.es/descargas/certificados-raiz-de-la-fnmt 13. Obtén un certificado digital dándote de alta en CAcert. ¿Para qué se puede utilizar este certificado?

-8-


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.