viernes, 30 de enero de 2009

GNUPG

Según la Wikipedia 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 licenciado bajo la GPL. GPG utiliza el estándar del IETF denominado OpenPGP.
GNUPG EN LINUX.

Por defecto, Linux trae el paquete GnuPG instalado.

GNUPG EN WINDOWS.


Al contrario que Linux, Windows no trae ésta utilidad por defecto. Sin embargo aquí podemos descargar ésta aplicación.

COMANDOS GNUPG.

Los camandos de GPG tanto en Linux como en Windows son los mismos; con la condición que en Windows nos debemos establecer con la consola cmd en la ruta C:\Archivos de Programas\GPG\GnuPG\ para que el comando gpg se pueda ejecutar.

La dirección de nuestro servidor de llaves públicas.
www.rediris.es/keyserver/

Generar el par de llaves.
#gpg --gen-key

Exportar la llave a un archivo .asc local (Archivo que queda en la máquina local).
#gpg -a -o mi_llave.asc --export correo@dominio.com

Enviar la llave a un servidor de llaves públicas.
#gpg -keyserver pgp.rediris.es --send-key ID

Exportar llave privada a un archivo local.
#gpg -a -o mi_llave_privada.asc --export-secret-key Correo.

Importar la llave pública de otro usuario teniendo el archivo .asc de la llave pública de ese otro usuario.
#gpg --import ruta_de_la_llave_pública

Importar la llave pública de otro usuario desde el servidor de llaves públicas.
#gpg --keyserver pgp.rediris.es --recv-key ID

Firmar la llave pública de otros usuarios.
#gpg --sing-key correo@dominio.com

Cifrar un archivo a formato .asc (ASCII).
#gpg -e -a ruta_del_archivo

Desencriptar un archivo (Aplica para archivos de texto plano).
#gpg -d ruta del archivo

Para desencriptar archivos con extenciones de procesamiento (.jpg, .doc, .ppt, etc).
#gpg -d ruta_del_archivo > archivo.extención.

Crear una frirma digital en un texto claro.
#gpg --clearsign -a prueba.txt

Crear una firma digital en un archivo aparte con el fin de no dañar el archivo original.
#gpg -b -a archivo_a_cifrar.

Verificar la firma digital.
#gpg --verify firma.asc

Crear y enviar certificado de revoke.
#gpg -l certificado.asc --gen-revoke Correo.
#gpg --import certificado.asc
#gpg --keyserver pgp.rediris.es --send-keys ID


Descargar los cambios de nuestra llave pública.
#gpg --keyserver pgp.rediris.es --refresh-keys

Visualizar llaves firmadas.
#gpg --check-sigs

Eliminar llave privada.
#gpg --delete-secret-keys ID

Eliminar llave pública.
#gpg --delete-keys ID

Visualizar nuestra llave privada.
#gpg -K

Visualizar nuestra llave pública.
#gpg -k

Cifra los datos de forma simétrica.
#gpg --symmetric archivo_a_cifrar.

Listo. Ya hemos creado nuestras llaves asimétricas.
HASH

Según la WikiPedia Hash se refiere a una función o método para generar claves o llaves que representen de manera casi unívoca a un documentos, registro, archivo, etc., resumir o identificar un dato a través de la probabilidad, utilizando una función hash o algoritmo hash. Un hash es el resultado de dicha función o algoritmo.

MD5SUM.

Es un programa originario de los sistemas Unix que tiene versiones para otras plataformas, realiza un Hash MD5 de un archivo.

En los Sistema Operativos Unix ya víene éste paquete instalado. Sin embargo, en los Sistemas Operativos Windows no lo traen instalado, por lo tanto se debe descargar un ejecutable de MD5SUM para Windows. Aquí podras descargar dicho ejecutable.

MD5SUM EN LINUX.

Para entender un poco mas el funcionamiento, relizarémos una prueba sobre Linux.

Crear un archivo .txt el cual será llamado prueba.txt El contenido de éste archivo será el siguiente: "Realizando pruebas de Hash con MD5SUM".

#pico prueba.txt

Se le aplicará el Hash a éste archivo.

#md5sum prueba.txt

Aparecerá el ID Hash (Longitud de 128 bits) de éste archivo.

162819d9d418858c84d9a311fc562d61 prueba.txt

Si se modifica éste archivo, de inmediato cambiará el ID de Hash.

Por seguridad, en nuestro servidor se deben tener en cuenta algunos binarios de importacia (su, passwd, who, last, finger, cat, rm, etc), ya que otra persona podría modificarlos y no nos daríamos cuenta que dicho binario fué modificado.

Para ésto, ser realizará una prueba, aplicando el Hash del binario "su".

Para localizar la ruta del binario "su".

#whereis -b su

Aparecerá la ruta del binario "su".

su: /bin/su

Se aplica el Hash para éste binario.

#md5sum /bin/su > hash2.md5

Si se rebisa el archivo hash2.md5 aparecerá el ID del Hash para el binario "su".

Para comprobar si el binario "su" fué modificado.

#md5sum -c hash2.md5

Si el binario "su" no fué modificado, arrojará el siguiente resultado.

/bin/su: La suma coincide

Si el binario "su" fué modificado, arrojará el siguiente resultado.

md5sum: ADVERTENCIA: 1 de 1 suma de comprobación NO coincide

MD5SUM EN WINDOWS.

Se le aplicará el Hash al binario "explorer.exe", para ésto debemos alojar el ejecutable md5sum.exe en el directorio WINDOWS, ya que en éste se encuentran los binarios de Windows.

Abrir una consola cmd y establecerce en la siguiente ruta.

C:\WINDOWS>

Aplicar el Hash al binario "explorer.exe" y redireccionar el resultado al archivo prueba2.txt.

>md5sum.exe explorer.exe > prueba2.txt

Se debe realizar la comprobación de éste binario.

>md5sum.exe -c prueba2.txt

Si el binario "explorer.exe" no fué modificado, arrojará el siguiente resultado.

explorer.exe: OK

Si el binario "explorer.exe" fué modificado, arrojará el siguiente resultado.

md5sum.exe: ADVERTENCIA: 1 de 1 suma de comprobación NO coincide

TRABAJO EN CLASES.

Para éste trabajo, se debieron aplicar el Hast a los binarios su, passwd, who, last, finger, cat, rm para luego ser comprobado en los siguientes días.

Los resultados que se obtuvieron de ésta actividad fueron.

c80fc747e24fa8bfa099cbef0bfb926f /bin/su
c8ac6697d277834b595999c7e07accfa /usr/bin/passwd
0d8407e9d81be4e9584d33fa199c34c3 /usr/bin/who
1c05a01c68de5254a9a1d0c96395b503 /usr/bin/last
3e00cf1db98ce4556f384a40337d7fd8 /usr/bin/finger
02243884855697c23aa0489cad07b631 /bin/cat
866de31e7c3668a67e490f9538547def /bin/rm

Listo. Ya se ha entendido del funcionamiento del Hash utilizando la herramienta MD5SUM.