Tareas previas de instalación
Tenemos que generar una clave PGP, para ello, necesitaremos instalar el software pgp. Para ello, si no está ya instalado con anterioridad, ejecutaremos las siguientes ordenes:
guallar@debian:~# apt-get install pgp
Los paquetes a instalar dependerán de la versión y pueden venir instalado por defecto
Se puede investigar con apt-cache search pgp
guallar@debian:~# apt-get install seahorse-nautilus
Cuando estamos hablando de cifrado sabemos que existen dos tipos fundamentales, el cifrado simetrico y el asimétrico, el cifrado simétrico es más rapido de procesar y por desgracia es menos seguro que el cifrado asimétrico
El primer ejercicio de cifrado simétrico, seria aplicar a un archivo el comando gpg, con los parametros -c para cifrar y -d para descifar
guallar@debian:~# echo "hola mundo" > hola.txt guallar@debian:~# gpg -c hola.txt
Una vez ejecutado el comando gpg nos solicitará una clave para realizar el cifrado. Podermos observar que nos crea un fichero nuevo con extensión .gpg. Este fichero sería la enciptacion del fichero inicial. Para descifrar utilizaremos el comando gpg -d y nos volverá a solicitar la clave introducida en el cifrado
guallar@debian:~# gpg -d hola.txt.gpg
Para poder cifrar asimétricamente lo primero tenemos que crear la pareja de claves (publica y privada) con el comando gpg –gen-key
guallar@debian:~# gpg --gen-key
Nos pide elegir el tipo de clave que queremos usar, hay opciones que solo permiten firmar y otras que permiten firmar y cifrar, en nuestro caso usaremos DSA y Elgamal
Nos pide el tamaño de la clave, tomamos la que viene por defecto que es de (2048), y nos pide datos del emisor de la clave y por ultimo nos pide la contraseña de la clave privada
con el comando gpg -k nos muestra nuestro “anillo de claves”, lo importante es que veremos la identificación de cada una que es necesaria para poderlas exportar y enviar
guallar@debian:~# gpg -k
El objetivo principal es que cualquiera nos pueda enviar un archivo cifrado y que solo lo podamos ver nosotros, esto se hace difundiendo la clave pública que acabamos de crear, nunca la privada
para exportarla en un archivo escribiremos…
guallar@debian:~# gpg --output c_pub.gpg --export [ID de la clave publica]
Ahora este archivo c_pub.gpg lo podemos difundir por el medio que queramos, el unico problema de seguridad seria enviar la clave privada en vez de la clave publica
El siguiente paso será subir la clave publica a servidores donde tengan acceso publico, hay muchos servidores de claves publicas , MIT (gpg.mit.edu), otro servidor en este caso español seria gpg.rediris.es, podemos utilizar cualquiera de los dos servidores
guallar@debian:~# gpg --send-keys --keyserver pgp.mit.edu [ID de la clave publica] si queremos subirlo al servidor español, seria... guallar@debian:~# gpg --send-keys --keyserver pgp.reiris.es [ID de la clave publica]
Para importar la clave desde archivo lo que tenemos que realizar son dos pasos, el primer paso enviar el archivo con la clave publica al remitente, y el segundo paso es ejecutar el siguiente comando
guallar@debian:~# gpg --import c_pub.gpg
Para importar la clave desde servidor tenemos que usar el comando…
guallar@debian:~# gpg --keyserver pgp.mit.edu --recv-keys [ID de la clave publica]
Si deseamos enviar un documento cifrado, para cifrar dicho documento tenemos que escribir lo siguiente
guallar@debian:~# echo "asir montessori" > documento.txt guallar@debian:~# gpg --encrypt --recipient [ID de la clave publica] documento.txt
Y nos generará un documento hola.txt.gpg, y ya lo tenemos listo para enviarlo de forma segura
Para realizar este ejercicio tenemos que escribir el comando
guallar@debian:~# gpg -d documento.txt.gpg
y nos pedira la contraseña que creamos para guardar la clave privada
Una medida de seguridad basica es asegurarnos que el emisor es quien dice ser, para asegurarnos de esto exite la firma digital, podemos cifrar un mensaje y a su vez firmarlo
guallar@debian:~# echo "este documento lo voy a firmar" > firma.txt guallar@debian:~# gpg -u [clave privada] --output firma.txt.gpg --sign firma.txt
El documento ya estaría firmado por nosotros, ahora faltaria asegurar la confidencialidad cifrarlo con la clave publica