Usando GPG en Gnome y Windows

Seguridad No Comments

¿Qué es GPG? Según wikipedia [wikipedia.org]:

GPG o GNU Privacy Guard es una herramienta para 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 estandar del IETF denominado OpenPGP.

¿Para qué nos sirve GPG? GPG como bien dice wikipedia, nos sirve para cifrar (hacer ilegible la información mediante algún algoritmo matemático) y firmar (dejar una marca de autenticidad sobre el autor de la información) digital-mente.

Conceptos básicos para el manejo de gpg:

Al crear una nueva clave se dispone de dos llaves: una pública y la otra privada.

Funciones de la llave privada:

- Nos permite firmar información.
- Nos permite des-cifrar información que han cifrado con nuestra llave pública.

Funciones de la llave pública (lo inverso de la llave privada y es la que se entrega a las personas con la que estaremos en contacto):

- Nos sirve para que las personas puedan verificar la información que hemos firmado.
- Cifrar información que será enviado a nosotros.

Usando GNOME para crear nuestra clave OpenPGP

Gnome cuenta con una herramienta que se integra muy bien con el entorno del mismo, se llama seahorse [gnome.org]. Seahorse se encuentra en el menú Aplicaciones > Accesorios > Contraseñas y claves de cifrado.

Para crear una nueva clave, dentro de la aplicación vamos a Clave > Crear nueva clave. Empezará un asistente que nos llevara de la mano hasta tener nuestra clave:

En opciones avanzadas podemos elegir el algoritmo para generar las llaves, el número de bits correspondiente (entre más grande, más seguro, pero tardará más en generar-las) y la fecha de caducidad de la misma.

Después tenemos que escribir la frase de paso, que es como tener una contraseña para poder firmar y des-cifrar la información.

Listo. Ya tenemos nuestra clave OpenPGP creada.

Cifrando/Firmando información con nuestra clave PGP

Ahora vamos a trabajar con ella, desde nautilus (el administrador de archivos de GNOME), al dar clic derecho sobre un archivo/directorio, tenemos la posibilidad de firmar o cifrar/firmar.

Si escogimos cifrar, nos aparece una ventana como la anterior, donde podemos elegir a las personas que enviaremos el archivo/directorio (con lo cual, damos por hecho que anteriormente agregamos su llave pública en seahorse). Además, nos permite firmar el archivo con nuestra llave privada (nos pedirá nuestra frase de paso).

Les muestro la imagen de un archivo cifrado como ejemplo (que es ilegible), de hecho, es un backup del blog xD:

Para des-cifrar la información..

      Gnome.

En mi caso he cifrado un archivo para mi xD, entonces en gnome (en la misma pc donde creé la clave), basta con ir a nautilus, localizar el archivo, dar clic derecho sobre él, seleccionar “Abrir con <<Descifrar fichero>>” y pasar a escribir mi frase de paso correspondiente.

      Windows.

Antes de empezar a trabajar sobre windows, en necesario exportar nuestras llaves públicas y privada. En seahorse, en nuestra lista de llaves públicas, basta con dar clic derecho en la llave pública que vamos a exportar y seleccionar Exportar clave pública. Para la llave privada, hay que usar la consola (ya que actualmente, seahorse no permite exportar llaves privadas), ejecutamos de la siguiente forma:

soullost@UnderHouse ~ $ gpg --list-secret-keys
/home/soullost/.gnupg/secring.gpg
---------------------------------
sec   0000D/[ID] 2008-05-16
uid                  Jorge Esteban Aguero Alvarez (PGP) < @gmail.com>

soullost@UnderHouse ~ $ gpg --armor --export-secret-keys [ID] > jorge.gpg

Nos guardará un archivo jorge.gpg en mi caso, con nuestra llave privada que ocuparemos posteriormente. Nota: Poner el número correspondiente en [ID] que te muestre el comando gpg –list-secret-keys.

He investigado sobre dos programas que se pueden llevar en una unidad de almacenamiento portátil, en mi caso, memoria USB. Esto porque en dado caso que tengamos que trabajar fuera de nuestra pc donde originalmente fue creada nuestra clave PGP.

Como les decía, para des-cifrar un archivo que nos han enviado, es necesario tener nuestra llave privada (que ya obtuvimos anteriormente). Con los programas que les muestro a continuación, sólo es cuestión de importar nuestra llave privada y pasar a des-cifrar el archivo correspondiente. Claro, si deseamos enviar información cifrada ó verificar el emisor de alguna información, también importamos las llaves públicas correspondientes.

Los programa que comentaba son:

- MagonGPG (GUI para gpg).



- GPG2Go (GnuPG portátil).



Por último, decir que nuestra clave PGP no sólo sirve para firmar archivos, se usan comúnmente para firmar emails (evolution de GNOME se integra perfectamente | Thunderbird de Mozilla | etc), Pdf’s, artículos en internet, etc.

[BONUS] Mejorar la seguridad de nuestra llave privada

Ustedes ya se habrán imaginado que es tonto andar llevado nuestra llave privada por el USB, para mejorar este punto podemos cifrar nuestra llave privada mediante un cifrado simétrico, es decir, una misma contraseña para cifrar/descifrar. Procedemos a hacerlo en la consola:

soullost@UnderHouse /media/JORGE/gpg $ gpg -ac jorge.gpg

Donde: jorge.gpg es nuestra llave privada sin cifrar. Lo que nos pide una contraseña y crea un archivo llamado jorge.gpg.asc.

Para cuando vamos a importar nuestra llave privada, basta con des-cifrar nuestra llave de la siguiente forma:


soullost@UnderHouse /media/JORGE/gpg $ gpg -d jorge.gpg.asc

En windows, se ejecuta el mismo comando pero con GPG2GO.

Referencia, apartado “Consejos Finales”: http://www.alcancelibre.org/staticpages/index.php/manual-pgp-seahorse

Suite de GPG en Windows.

Si usan windows y quieres un entorno similar al de GNOME, con un administrador de llaves, poder cifrar con el menu contextual de los archivos, integración con Microsoft Outlook, etc. Existe un Suite de un conjunto de programas que se llama GPG4WIN: http://www.gpg4win.org/. La descripción de los programas que contiene:

Gpg4win is a installer package for Windows (2000/XP/2003/Vista) with computer programs and handbooks for EMail and file encryption. Both relevant cryptography standards are supported, OpenPGP and S/MIME (the latter is in progress and currently works with GnuPG2 and Claws Mail). Gpg4win and the software included with Gpg4win are Free Software.

You can choose all or some of the following modules during installation:
GnuPG: The core; this is the actual encryption tool
WinPT: A key manager and helper for various encryption matters
GPA: Another key manager, tasts are simply different
GPGol: A plugin for Microsoft Outlook 2003 (email encryption)
GPGee: A plugin for Microsoft Explorer (file encryption)
Claws Mail: A complete email program including the plugin for GnuPG

Documentation:
Gpg4win for Novices: A handbook specifically for newbies
Gpg4win für Durchblicker: A (German!) handbook about some background, for beginners

Sugerencias/comentarios/dudas son bienvenidas.
Nos vemos.

Califica el tema:
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Usando RSA en SSHD y Putty

GNU/Linux, Seguridad 2 Comments

Actualmente muchos son las personas que usan SSH para conectarse remotamente a otros ordenadores (especialmente servidores) generalmente para tareas de administración.

Les aseguro que hay ya bastante información sobre el protocolo SSH y su uso con RSA, pero al estar investigando e implementando dicha técnica se me han presentado problemas (lo más seguro es que sea neófito XD) y bueno, hagamos más largo el historial del blog :D y de paso, ayudarlos para que no se les presenten algunos problemas (o al menos lo que me sucedieron a mi) ;) .

Si ya leyeron algo en la wikipedia sobre RSA, hay que crear dos llaves para lograr la autenticación, una que es la privada que se nos quedará a nosotros y la otra, la pública para que la tenga el servidor ssh y disponer de ella para establecer la conexión. Para tal caso, he usado puttygen.exe:

Bajar el cliente Putty y sus herramientas - Clic

rsa.PNG

Hay que especificar que se utilizará SSH-2 RSA, pulsamos en generate y pasamos el mouse por donde se nos indica para generar bits aleatorios que nos servirán para crear las claves. Al terminar, nos mostrará la siguiente ventana:

rsa_generate.PNG

Ahora copiamos donde dice “Public Key….” (que es la llave pública) a un archivo (yo le he puesto id_rsa.pub) y lo mandamos usando SCP al servidor:

putty04.PNG

Ahora nos logueamos por ssh (aún sin implementar la clave RSA) y pasamos esa llave a ~/.ssh/authorized_keys

h4x012@UnderHouse ~ $ ls -lh

total 4,0K

-rw-r--r-- 1 h4x012 users 464 ago 27 23:15 id_rsa.pub

h4x012@UnderHouse ~ $ mkdir .ssh

h4x012@UnderHouse ~ $ cat id_rsa.pub >> ~/.ssh/authorized_keys

Ahora ya casi estamos listos :)

Hay que configurar el servidor SSH (en mi casi OpenSSH):

Archivo: /etc/ssh/sshd_config

# Usando RSA

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

# To disable tunneled clear text passwords, change to no here!

PasswordAuthentication no

# Autizaciones

AllowUsers h4x012

PermitRootLogin no

Lo que hemos especificado es:

1) Activar el uso de RSA
2) Deshabilitar el ingresar una contraseña
3) Permite el acceso solo al usuario h4×012 y denegarlo a root

Probamos el acceso restringido a cualquier usuario menos h4×012:

putty02.PNG

putty03.PNG

Ahora solo nos falta especificar en el putty que hay que usar una clave RSA privada para conectar con el servidor, para eso: Vamos a Connection > SSH > Auth y en el campo “Private key file for authentication” especificamos el archivo *.ppk que guardamos desde puttygen :D

rsa_add.PNG

Reiniciamos sshd, conectamos desde putty y veremos los resultados :) (debemos acceder sin ingresar ninguna contraseña más que usando la nuestra clave RSA) ;)

putty05.PNG

Más información en este PDF: ssh-documento.pdf

Califica el tema:
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...