técnicas de cifrado - · pdf fileantes de comenzar a encriptar mensajes y archivos,...

18
Tema 2 SAD Vicente Sánchez Patón I.E.S Gregorio Prieto Tema 2 SAD Técnicas de cifrado

Upload: vukiet

Post on 11-Feb-2018

227 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Tema 2 SAD

Vicente Sánchez Patón

I.E.S Gregorio Prieto

Tema 2 SAD

Técnicas de cifrado

Page 2: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

a) Explorando métodos de cifrado:

- CISCO CCNA Security 1. 1. Laboratorio Lab-2-A: Explorando métodos de

cifrado

En proceso

b) Cifrado simétrico: , e) Cifrado asimétrico: - Uso de PGP y GPG. - En GNU/Linux: gpg.

PGP

PGP utiliza un sistema híbrido que combina encriptación simétrica y

asimétrica.

La encriptación asimétrica trabaja siempre con un par de claves. Una de

ellas será tu clave "pública" y la otra tú clave "privada". Como bien lo indica

su nombre, la clave pública se la podéis dar a aquellas personas a las que les

queréis mandar mensajes encriptados y no hay ningún peligro si una persona

ajena la ve, es más, suelen publicarse en servidores públicos para facilitar

su acceso; la clave privada, en cambio, debe ser secreta y no tenéis que

compartirla con nadie.

Gracias a la encriptación asimétrica, si el remitente usa la clave pública del

destinatario para cifrar el mensaje, una vez cifrado, sólo la clave privada

del destinatario podrá descifrar este mensaje, ya que es el único que la

conoce. Por tanto, se logra la confidencialidad del envío del mensaje: nadie

salvo el destinatario puede descifrarlo. Si el propietario del par de claves

usa su clave privada para cifrar el mensaje, cualquiera puede descifrarlo

utilizando su clave pública. En este caso se consigue por tanto la

identificación y autentificación del remitente, ya que se sabe que sólo pudo

haber sido él quien empleó su clave privada (salvo que alguien se la hubiese

podido robar).

Para instalar el programa nos dirigimos al gestor de paquetes synaticb y en

el buscador ponemos pgp y seleccionamos para instalar el paquete pgpgnome,

una vez instalado nos dirigimos a Sistema-Preferencias-Contraseñas y

claves de cifrado.

Page 3: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Antes de comenzar a encriptar mensajes y archivos, como vimos, es

necesario crear primero nuestras claves asimétricas y nuestro

"passphrase". Para ello vamos a Sistema-Preferencias-Contraseñas y claves

de cifrado. Una vez allí vamos a Archivo -Nueva - Clave PGP.

El sistema nos pedirá a continuación que introduzcamos nuestro nombre,

dirección de correo electrónico y un comentario. Éste último es opcional,

mientras que los dos primeros son obligatorios. La dirección de correo

electrónico que se escoja debería ser una válida, ya que ésta será usada

para firmar el identificador de usuario. Si esta dirección se modifica en

algún modo, la firma no corresponderá. Las claves serán generadas en

base a estos datos.

En el apartado Opciones avanzadas de clave, podéis seleccionar un tipo

diferente de cifrado. La recomendada es “DSA Elgamal de 768 bits” pero te

recomiendo que la cambies a "DSA Elgamal de 2048 bits" ya que es

considerada lo suficientemente segura y flexible. La fecha de caducidad es

Page 4: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

la fecha en la que la clave dejará de ser útil para realizar cifrado u

operaciones de firma. 6 meses es un tiempo razonable para ello. Vas a tener

que cambiar la fecha de caducidad o generar una nueva clave o subclave

después de que pase este lapso de tiempo.

El último paso consiste en introducir una contraseña. Nótese la diferencia

entre los términos anglosajones para la palabra «contraseña»: el término

"password" indica una "palabra de paso", mientras que el término

"passphrase" indica una "frase de paso". Por tanto esta contraseña se debe

componer de más de una palabra. Para que una contraseña sea efectiva

(segura), deberá:

-ser larga;

-combinar mayúsculas, minúsculas y números;

-contener caracteres especiales (no alfanuméricos);

-ser difícil de adivinar. Por lo tanto, que no sean nombres, fechas -

significativas, números de teléfono, números de documentos, ...

En general, para crear una contraseña fuerte es aconsejable intercalar

maYúsCUlas con mInúsCulas, números, otros caracteres no

alfanuméricos, etc. Al escoger las palabras y frases debemos evitar

aquellas palabras demasiado obvias, o fechas significativas, y nunca usar

citas de libros o frases famosas. Dicho esto, debemos asegurarnos de que la

contraseña que elijamos sea lo suficientemente difícil para que no pueda ser

traspasada por un «ataque de fuerza bruta», ni siquiera por un «ataque de

diccionario», pero lo suficientemente fácil como para que la recordemos. Si

olvidáramos una contraseña nuestra clave quedaría totalmente inutilizada, y

los criptogramas con ella cifrados, indescifrables. Ante esta posibilidad se

recomienda crear siempre certificados de revocación junto con las claves.

Page 5: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Una vez introducidos todos los datos requeridos, empieza el proceso de

generación de las claves, que tarda un tiempo considerable dependiendo del

tamaño de éstas y la velocidad de tu ordenador. Durante este proceso el

programa recoge datos aleatorios que usará para generar las claves. Una vez

terminado, cierra Seahorse.

Publicar mis claves públicas Los servidores de claves públicas son utilizados para distribuir,

precisamente, las claves públicas. De ese modo, es muy fácil buscar a alguien

(por su nombre o correo electrónico) en la base de datos y encontrar sus

claves públicas para enviarle mensajes encriptados (que sólo él/ella podrá

descifrar).

Para "subir" tus claves públicas a estos servidores, sólo tenéis que abrir

Seahorse, seleccionar tu clave e ir a Remota > Sincronizar y publicar claves.

Aparecerá una alerta avisándonos que esto provocará la publicación de las

claves públicas seleccionadas.

Obtener las claves públicas de mis amigos

Abre Seahorse y ve al menú Remota > Buscar claves remotas. Ingresa el

nombre o el correo electrónico de la persona que buscas. Luego, selecciona

la clave correspondiente. Cuando termines vas a ver que la nueva clave se

agregó a la pestaña "Otras claves".

Page 6: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

(Des)Cifrando archivos y carpetas

Una vez que el par de claves ha sido generado, cifrar y descifrar

archivos es bastante simple. Solo tenéis que seleccionar un

archivo, hacer clic derecho y seleccionar "Cifrar".

En el diálogo que aparece, selecciona la clave que creaste anteriormente, y

clic en OK.

Si seleccionaste una carpeta para cifrar, te va a preguntar si queréis

cifrar cada archivo dentro de la carpeta por separado o si preferís que

se cree un archivo ZIP que luego será cifrado. La segunda opción es la

mejor en la mayoría de los casos.

Si estás cifrando un archivo, una vez que el cifrado esté completo, deberías

crearse un archivo del mismo nombre pero con la extensión .pgp. Una vez

terminado el proceso, podéis borrar el archivo viejo. Si cifraste una

carpeta, deberías encontrar dos nuevos archivos: la versión cifrada con la

extensión .pgp y un archivo .zip con la versión original de la carpeta. Tanto el

ZIP como la carpeta original, pueden ser borrados después del cifrado.

Por razones de seguridad, las versiones no cifradas de los archivos deben

ser eliminados permanentemente, en vez de simplemente enviarlos a la

papelera de reciclaje. Pero antes asegúrate de probar descifrando el

archivo cifrado, para ver que todo va bien.

Para ello, sólo tenéis que hacer doble clic en el archivo .pgp e ingresar la

contraseña cuando te la pida. El archivo original reaparecerá entonces. En

caso de ser una carpeta, el archivo .zip aparecerá, y deberás luego extraer

el contenido del mismo.

GPG

GNU Privacy Guard o GPG es una herramienta de cifrado y firmas digitales,

que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la

principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza

el estándar del IETF denominado OpenPGP.

GPG cifra los mensajes usando pares de claves individuales asimétricas

generadas por los usuarios. Las claves públicas pueden ser compartidas con

otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en

Page 7: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

los servidores de claves. Siempre deben ser compartidas cuidadosamente

para prevenir falsas identidades por la corrupción de las claves públicas.

También es posible añadir una firma digital criptográfica a un mensaje, de

esta manera la totalidad del mensaje y el remitente pueden ser verificados

en caso de que se desconfíe de una correspondencia en particular.

GnuPG también soporta algoritmos de cifrado simétricos, por ejemplo

CASTS.

GPG no usa algoritmos de software que están restringidos por patentes,

entre estos se encuentra el algoritmo de cifrado IDEA que está presente

en PGP casi desde sus inicios. En su lugar usa una serie de algoritmos no

patentados como ElGamal, CAST5, Triple DES (3DES), AES y Blowfish.

También es posible usar IDEA en GPG descargando un plugin extra, sin

embargo este puede requerir una licencia para usuarios de algunos países en

donde esté patentada IDEA.

GPG es un software de cifrado híbrido que usa una combinación convencional

de criptografía de claves simétricas para la rapidez y criptografía de claves

públicas para el fácil compartimiento de claves seguras, típicamente usando

recipientes de claves públicas para cifrar una clave de sesión que es usada

una vez. Este modo de operación es parte del estándar OpenPGP y ha sido

parte del PGP desde su primera versión.

Lo primero será crear las claves, para ello ejecutamos el siguiente comando:

Nos saltara la siguiente información:

Para la mayoría la opción por defecto (1) es muy válida para la mayoría de

usuarios.

Page 8: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Ésta es la que voy a utilizar yo en este ejemplo.

Una vez escogido el método tendremos esto:

Aquí tenemos que escoger la longitud de nuestra clave, cuanto más larga,

más complicado

será descifrarla.

Yo que siempre tengo el modo paranoide encendido he escogido el máximo.

Una vez escogida la longitud tenemos lo siguiente:

Aquí escogemos para cuánto tiempo queremos que nos sirva la clave, yo

siempre escojo 0

en caso de que no quiera volverla a usar, entonces ya enviaré un certificado

de revocación

para avisar de que esa clave no va a ser utilizada nunca más, y luego

procederé con su

eliminación.

Una vez escogida la duración, procedemos

y nos pedirá confirmación, aceptamos con s, y continuamos

Page 9: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Ahora nos hace una pequeña descripción de cómo va a quedar la clave cuando

sea generada

y nos va a pedir los datos.

Vosotros en función de para qué queráis utilizar esa clave, ponéis vuestro

nombre real

si es para la vida "real" o cualquier otra cosa que os certifique en internet.

Luego nos pedirá una dirección de correo electrónico, y por último un

comentario para

afinar un poco más para que vayamos a usar esa clave o para lo que vosotros

queráis.

Confirmamos introduciendo V y seguimos:

Ahora nos pide una contraseña, esta contraseña es privada y solo deberás

conocerla tú.

Como esto es una cosa seria que certifica tu identidad, yo pondría algo que

sea complicado.

Una vez hecho, terminamos.

Ahora comienza con la generación de la clave, para ello nos pide que

trabajemos con el

ordenador para poder generar información aleatoria, así que dicho y hecho.

Esperamos

Page 10: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

un rato y terminará. En función de lo complicada que sea tu clave tardará

más o menos.

Ya ha terminado y ahora nos muestra un resumen de cómo ha ido el asunto.

Nota importante Para poder identificar nuestra clave vamos a utilizar esta

línea:

pub 2048R/20CEEBFB

Y en concreto estos caracteres: 20CEEBFB

Eso es de forma inequívoca nuestra clave, y es única, no puede haber 2

iguales.

De modo que llegados a este punto, ya tenemos nuestro par de claves

generado.

Ahora vamos a dar a conocer nuestras claves públicas.

Existen varias formas de hacerlo, una de ellas es por ejemplo, publicar

nuestra clave

pública en nuestra página web, o un foro, y que quien quiera, que la coja.

Otra opción es enviar nuestra clave pública a todos nuestros contactos

mediante email.

Veamos cómo se hace.

Lo primero de todo tenemos que exportar nuestra clave pública, eso se

consigue así:

Page 11: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Sin embargo existe una opción mucho más práctica, que consiste en subir

nuestra clave

pública a un anillo público de claves públicas, de modo que cualquiera que

desee

obtener nuestra clave solo necesitará saber la identificación de nuestra

clave para

bajarla del anillo, y nosotros podremos editar nuestra firma de los foros

con algo del estilo

mi clave gpg pública es: E00C9AC6

De este modo cualquiera que quiera tu clave pública solo tendrá que

solicitarla al anillo

por ese nombre, y la bajará de internet, esta es la forma más segura de

hacerlo, y la que yo

recomiendo.

Veamos cómo podemos subir nuestra clave pública a un anillo.

Pues es tan fácil como:

Obtener claves públicas.

Para obtener claves públicas de otras personas existen varios métodos. Uno

de ellos es que

esa persona nos envíe por correo electrónico su clave pública tal y como

vimos en el punto

anterior, otro método es que esa persona tenga su clave pública en algún

sitio de internet y

nosotros lleguemos hasta allí o bien por casualidad (lo que no es

recomendable) o bien porque

el interesado nos haya pasado el enlace. Y por último, y bajo mi punto de

vista el mejor

método, es mediante, una vez, el anillo público de claves.

Conseguir clave desde anillo público.

Page 12: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Para ello únicamente necesitamos conocer el identificador de la clave y

actuaríamos

así:

Tan simple como eso, y gpg se conectará al anillo, y descargará la clave

pública

adecuada.

Una vez que estamos completamente seguros de que las claves ajenas que

hemos importado

pertenecen realmente y de forma legítima a sus dueños deberíamos

proceder a firmarlas para

tener un sistema confiable al 100%

Para firmar las claves ejecutamos lo siguiente:

Esto nos sacará un nuevo prompt en el cual ejecutaremos órdenes de gpg

Para firmar la nueva clave, lo haremos ejecutando:

- sing

Nos pedirá confirmación, se la damos, y entonces firmaremos con nuestra

clave primaria

de la cual nos pedirá la contraseña.

Además de poder firmar una clave, podemos añadir grados de confianza a

las claves.

Por último, para guardar los cambios y salir ejecutamos lo siguiente:

- save

Para firmar un documento tenemos varias opciones.

- Firmar y que el documento firmado sea ilegible

Page 13: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Esta forma hace que el fichero sea ilegible hasta que la firma sea

verificada, pero ojo, no se encripta nada, solo muestra la información y el

contenido una vez que

se ha verificado la firma.

Para generar uno de estos ejecutamos:

Y eso nos generará un fichero-firmado.gpg

Para poder verificar la firma y luego ver el contenido de este tipo de

fichero

tenemos que ejecutar lo siguiente:

- Firmar y que el documento firmado sea legible con la firma

Esta es la mejor forma si lo que pretende es subir documentación a

internet, al

menos bajo mi punto de vista.

Para ello ejecutaremos lo siguiente:

Esto generará un fichero fichero-firmado.asc que tendrá el mismo

contenido que el

original, pero con la firma en su interior.

Page 14: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Firmar y que el documento y la firma vayan por separado

En ese caso necesitaremos ejecutar lo siguiente:

En este caso la firma irá en un fichero a parte por lo que puede ser de

utilidad

a la hora firmar por ejemplo un binario.

c) Cifrado de datos y particiones:

- En Windows: Uso de TrueCrypt.

TrueCrypt es una aplicación para cifrar y ocultar en el ordenador datos que

el usuario considere reservados empleando para ello diferentes algoritmos

de cifrado como AES, Serpent y Twofish o una combinación de los mismos.

Permite crear un volumen virtual cifrado en un archivo de forma rápida y

transparente.

Una vez descargado lo instalamos:

La consola del programa una vez instalado es la siguiente:

Page 15: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Una vez en la consola le damos a la opción system y luego a la primera

opción, que es para encriptar el disco duro, nos parecerá un asistente de

encriptación, le daremos a siguiente:

Después de pasar unas pantallas, sin importancia, llegamos a una que si lo

tiene, en ella elegiremos el método de encriptación que queremos y el

algoritmo hash:

En la siguiente pantalla nos pide que introduzcamos la clave que se utilizara

para descifrar:

Page 16: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

En la siguiente nos saldrá una tabla con números que irán cambiado

aleatoriamente, se usan para sacar la contraseña master y header, para ello

le damos a siguiente:

En la siguiente pantalla nos pide la ubicación del fichero encriptado, y por

ultimo finalizamos.

d) Funciones HASH

- En Window: md5sum.

- En GNU/Linux: md5sum.

md5sum es un programa originario de los sistemas Unix que tiene versiones

para otras plataformas, realiza un hash MD5 de un archivo. La función de

hash devuelve un valor que es prácticamente único para cada archivo, con la

particularidad que una pequeña variación en el archivo provoca una salida

totalmente distinta, lo que ayuda a detectar si el archivo sufrió alguna

variación. Es una herramienta de seguridad que sirve para verificar la

integridad de los datos.

Page 17: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

Es muy utilizado en la actualidad y en el mundo Linux es muy habitual

encontrar las sumas de control MD5 de todos los paquetes que componen

una distribución. También hay algunas aplicaciones que utilizan su algoritmo

para encontrar archivos duplicados.

Supongamos que tenemos el fichero xdibu-0.1.tgz y queremos distribuirlo

en Internet, como es un archivo bastante grande y queremos facilitar que

cualquiera lo pueda descargar (usando programas de descargas como

GetRigth, Download Accelerator Plus, NetVampire, Downloader2X, wget,

GetLeft, etc.).

Añadiremos un pequeño fichero con el resultado de la ejecución del comando

md5sum (o en algunos sistemas simplemente md5) sobre el archivo en

cuestión:

# md5sum xdibu-0.1.tgz

350766b7cf78e9401068b623d47bbf73 xdibu-0.1.tgz

# md5sum xdibu-0.1.tgz > xdibu-0.1.tgz.asc

# cat xdibu-0.1.tgz.asc

750726b7df78e9401068b623d47bbf73 xdibu-0.1.tgz

De forma que una vez descargado, para verificar la integridad del fichero

simplemente tendremos que ejecutar la misma instrucción, comprobando

carácter por carácter, la suma de control obtenida.

Si deseamos hacer la comprobación de forma automática solamente

tenemos que ejecutar:

# md5sum -c xdibu-0.1.tgz.asc

Existen versiones de md5sum, prácticamente para la totalidad de los

sistemas operativos, y en caso de necesitarse, se puede recurrir a Perl.

Independientemente del sistema operativo utilizado, en cualquiera de ellos,

la suma de control debe coincidir exactamente. Para comprobar que una

ISO se haya bajado correctamente antes de grabarla a Cd tenemos que

hacer:

#md5sum LihuenV1.0Final.iso

Page 18: Técnicas de cifrado - · PDF fileAntes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para

2687ea907f1f8c6cdf60681de4e09e72 LihuenV1.0Final.iso

Y ese valor alfanumérico que retorna compararlo con el archivo .md5 que

esta puesto en la sección de descargas que corresponde a esa imagen.

Si todos los caracteres son iguales, se ha bajado bien la iso y se puede

grabar el CD sin problemas.