criptografía: guía introductoria

Guia Rápida

Introducción

Herramientas y protocolos de comunicación cifrado comunes

SSL/TLS

SSL proporciona autenticación y privacidad de la información entre extremos sobre Internet mediante el uso de criptografía. Habitualmente, sólo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar; la autenticación mutua requiere un despliegue de infraestructura de claves públicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor comunicarse de una forma diseñada para prevenir escuchas (eavesdropping), la falsificación de la identidad del remitente(phishing) y mantener la integridad del mensaje.

<snip>

SSL se ejecuta en una capa entre los protocolos de aplicación como HTTP, SMTP, NNTP y sobre el protocolo de transporte TCP, que forma parte de la familia de protocolos TCP/IP. Aunque pueda proporcionar seguridad a cualquier protocolo que use conexiones de confianza (tal como TCP), se usa en la mayoría de los casos junto a HTTP para formar HTTPS. HTTPS es usado para asegurar páginas World Wide Web para aplicaciones de comercio electrónico, utilizando certificados de clave pública para verificar la identidad de los extremos.

SSH

SSH (acrónimo del inglés Secure SHell, cuya traducción sería intérprete de comandos seguro) es un protocolo de comunicación para controlar un ordenador en remoto a través de una CLI (Command Line Interface -Interfaz de Línea de Comandos- también llamada: “shell”). Sirve para conectarnos con un ordenador ante el cual no estamos físicamente, bien porque está en una sala de servidores refrigerada, bien porque no tiene teclado ni pantalla, por ejemplo los que están apilados en un rack (un armario donde se guardan ordenadores como los servidores web, de correo electrónico, firewalls, etc…)

PGP/GNUPG

Pretty Good Privacy o PGP (privacidad bastante buena) es un programa desarrollado por Phil Zimmermann y cuya finalidad es proteger la información distribuida a través de Internet mediante el uso de criptografía de clave pública, así como facilitar la autenticación de documentos gracias a firmas digitales.

El actor más notable en la defensa del cifrado fuerte para uso público fue Phil Zimmermann con la publicación de PGP (Pretty Good Privacy) en 1991. Distribuyó una versión freeware de PGP cuando previó la amenaza de una legislación, por aquel entonces en consideración por el gobierno estadounidense, que requeriría la creación de puertas traseras en todas las soluciones criptográficas desarrolladas dentro de EEUU. Sus esfuerzos para publicar PGP en todo el mundo le granjearon una larga batalla con el Departamento de Justicia por la supuesta violación de las restricciones de exportación. Finalmente, el Departamento de Justicia abandonó el caso contra Zimmermann, y la distribución freeware de PGP se hizo mundial y terminó convirtiéndose en un estándar abierto (RFC2440 u OpenPGP).

GnuPG utiliza criptografía de clave pública para que los usuarios puedan comunicarse de un modo seguro. En un sistema de claves públicas cada usuario posee un par de claves, compuesto por una clave privada y una clave pública. Cada usuario debe mantener su clave privada secreta; no debe ser revelada nunca. La clave pública se puede entregar a cualquier persona con la que el usuario desee comunicarse. GnuPG implementa un esquema algo más sofisticado en el que un usuario tiene un par de claves primario, y ninguno o más de un par de claves adicionales subordinadas. Los pares de claves primarios y subordinados se encuentran agrupados para facilitar la gestión de claves, y el grupo puede ser considerado como un sólo par de claves.

Introducción práctica a GNU Privacy Guard

la guía original (en inglés) se puede encontrar aqui. el manual de GPG no tiene substituto.

Otros fuentes

1. Introducción

Esta guía te mostrará como usar el sistema de criptografía libre, GNU Privacy Guard. Con GPG se puede cifrar y descifrar data y crear y verificar firmas utilizando criptografía de clave publica.

Mientras que GPG esta disponible para muchos plataformas, incluyendo windows, los indicaciones dados son orientados hacia windows donde hay que especificar. Un gran parte de mis compañeros utilizan windows exclusivamente, y ellos que no la utilizan exclusivamente tienen al menos el conocimiento de windows para entender lo que quiero proyectar en los ejemplos.

Asumo que utilizarás GPG sin otros adiciones como el WinPT o GPGShell, un para de interfaces gráficas. Los interfaces gráficas son utiles, y te ahorran el trabajo de memorizar el sintaxis especifico de cada orden, pero de repente no están disponible, y es importante tener un conocimiento básico del sistema de fundo. Usuarios quienes mandan o riciban frecuentemente correo cifrado van a querer encontrar una programa de correo que esta integrado con GPG, o tiene un extinción que acessa a GPG.

En esta guía, te mostraré como utilizar los comandos importantes de GPG. GPG tiene muchos comandos y algunas tienen variaciones. La mayoría de los ordenes GPG tienen abreviaciones de una única letra. En el interés en claridad, no utilizamos estas formas cortas en esta guía. Para información detallado sobre los comandos y opciones disponibles, ver el manual de GPG en la pagina web de GPG o el archivo gpg.man que esta incluido con la programa.

Asumo que conoces a windows y su Command Prompt (terminal). Se necesitas ayuda con ello, ver el Appendix A antes de continuar.

Toma en cuenta que cuando indico el hacer de un operación en el command prompt, asumo que has cambiado a la carpeta donde están ubicados los archivos relevantes.

2. Instalar GPG

GNU Privacy Guard esta disponible de www.gnupg.org para un variedad de sistemas operativas entre ellos, windows, linux, y otras sabores de unix y mac OS X.

2.1 Instalar en windows

Ojo, que se tienes Cygwin (un seria de programas que da una maquina de windows mucho de la funcionalidad de linux) podría ser que ya tienes GPG instalado. intenta el siguiente orden.

gpg --version

Se el sistema dice “Bad command or file name”, entonces no tienes GPG y tienes que instalar a ello.

Para instalar GPG en tu computadora, primer entra al sitio web de GPG y descarga el paquete para windows de la pagina de descargas. Busca al “version compiled for MS-Windows” bajo “Binaries”. El archivo que descargas auto-extrae. Corre ello y sigue sus indicaciones.

Finalmente, edita su variable PATH para que windows sabe donde encontrar la programa. En Windows NT/2000/XP la encontraras en el Panel de Control → System Properties → the Advanced tab → Environment Variables → System variables. En Windows 95/98/ME, esta en el archivo c:\autoexec.bat. Valores de esta variable son separados por dos puntos, entonces agrega el path de GPG al final del variable. Por ejemplo, se tu variable de PATH es así 1):

c:\windows;c:\utils

cambia ello a:

c:\windows;c:\utils;c:\Program Files\GNU\GnuPG

(Ojo: ”c:\Program Files\GNU\GnuPG” es donde el instalador ubica GPG por predeterminado. Se escojas instalar ello en un ubicación alterna, estar seguro indicarlo correctamente en el variable PATH)

Ahora es únicamente hacer efectivo el cambio en el PATH. Se estas utilizando Windows 95/98/ME, reinicia el computadora; se usas Windows NT/2000/XP, simplemente abre un nuevo terminal, y cerrar los demás terminales que tenias abierto. Ahora intenta:

gpg --version

y deberías ver algo como el siguiente en el terminal:

gpg (GnuPG) 1.4.2
Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
Home: C:/Documents and Settings/KidwellB/Application Data/gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
Compression: Uncompressed, ZIP, ZLIB, BZIP2

2.2 Instalar en otras Sistemas Operativas

Instalación en sistemas operativos simulares a unix esta bien documentado en el sitio web de GPG, de hecho el mayor parte de los distribuciones de linux vienen con GPG pre-paqueteado, para que no tienes que preocupar por instalarlo. En debian, por ejemplo, es bastante sencillo:

apt-get install gnupg

2.3 Verificar el descarga de GPG

3. Creando tus claves personales

GPG utiliza criptografía de clave publica para cifrar y firmar mensajes. Criptografía de clave publica requiere de tu clave publica que se distribuye al publico y que se utiliza para cifrar mensajes para ser entregado a ti y para descifrar firmas que has creado. Tu clave privado (o secreto) que complementa u clave publico que te permite descifrar mensajes que recibas y cifrar firmas. Juntos, referimos a ellos como el key pair o par de claves.

3.1 Sobre el Seguridad de las Claves

Cuando generas el par de claves, tanto el publico y el privado deben estar almacenados en tu computadora. esto crea un riesgo de seguridad, porque cualquier que tiene acceso a tu clave privado puede descifrar mensajes y hacer como que se fuera tu. No puedes memorizar el clave publico, y luego borrarla de la maquina, es demasiado larga (generalmente al menos 1024 bits - es como memorizar un numero de teléfono de 300 dígitos.) Además, antes de que puedes memorizarlo, llevaría demasiado tiempo entrar a la maquina cada ves que quieres utilizarla.

El solución práctica a la problema es cifrar tu clave privado, utilizando un breve contraseña con clave por el clave privada. eso es lo que hace GPG. Cada ves que utilizas tu clave publica, GPG lea la clave cifrado del disco, pide la contraseña, descifra la clave en memoria RAM, y finalmente la utiliza. Para que esto funciona necesitas una contraseña fuerte, algo que no puede ser adivinado fácilmente o crackeado por un ataque brute-force. Por ejemplo, “naranja” es tal breve que un ataque de diccionario la encontrará en segundos, y el nombre de tu novia es una mala idea por que cualquier que te conoce puede adivinar tu contraseña.

Lo que necesitas es un buen fuente para una cadena de palabras al alzar. Un frase de un libre que te gusta es buen candidato, mientras que se unos cuantos palabras. También es recomendable intercalar letras con otros signos y números (!,#,*,%, etc).

3.2 Diceware

3.3 Usando el Orden //Gen-key//

Ahora que tienes tu contraseña, estamos listos para generar tu par de claves personales. En el terminal, tecla

gpg --gen-key

GPG responde con un menú preguntando que tipo de claves que quieres generar. Escoja el predeterminado, “DSA and ElGamal.”

En seguida, te pregunta el tamaño de la clave. Otra ves escoja el predeterminado de “1024.”. Se tu clave es demasiado pequeño, es más fácil crakear, se es demasiado grande, que ves que lo ejecutas tardará mucho.

En seguida te pregunta cuando (se) la clave debe de expirar. Dejando que la clave expira después de un determinado tiempo aumenta un poco nuestra seguridad por que documentos cifrados después de esta tiempo ya no esta conectados con la clave. El cambio, claro esta, es que cada persona con que correspondas tendrá que importar tu nuevo clave cuando el viejo expira. En el terminal escoja un plazo razonable para el tiempo de vida de tu clave, o seleccionar “key does not expire.”

Ahora entra el Nombre Real (Real Name) y correo electrónica (Email Address) que será utilizado para identificar la clave en los colecciones de todos, no solo la tuya. Se no quieres poner tu nombre verdadero en tu clave, estar seguro escocer algo único para que tu clave no se confunde con uno de alguien más.

Por ultimo, entrar la contraseña. GPG no te dará ningún respuesta mientras que teclas la contraseña, no verás asteriscos (como cuando entres en tu correo electrónica) ni nada. Eso también es una medida de seguridad. 2). Después de que entras tu contraseña, GPG empecé generar al alzar los bits que precisa en tu par de clave. utiliza un variedad de funciones en el computador para simular entropía, incluyendo la entrada del terminal, entonces se quieres terminar el proceso empieza teclear en el teclado.

3.4 Publicando Tu clave Publica

3.5 Respaldando tu claves

4. Cifrando y Decifrando Archivos

4.1 Usando el Orden //Encrypt//

4.2 Usando el Orden Decrypt-Files

4.3 Mandar Achivo Cifrado por Correo

4.3.1 Importando la clave
4.3.2 Encryptando el Mensaje

4.4 Decifrando Archivos enviados por Correo

Appendix A. GPG Cheat Sheet

A.1 Ordenes de GPG

El numero del capitulo relevante sigue a el explanación del orden

gpg --version

Saber que version de GPG tienes instalado (2)

gpg --gen-key

Crear un nuevo par de claves (3)

gpg --armor --output "CLAVE.txt" --export "YOUR-NAME"

Exportar tu clave publica a un archivo de texto “CLAVE.txt” (3)

gpg --import "KEY.txt"

Importar las claves encontrado en “CLAVE.txt” (4)

gpg --edit-key "NOMBRE"

Editar la clave para NOMBRE. En el modo de edición, usa el orden “trust” para selecionar el nivel de confianca (4)

gpg --recipient "RECIPIENT" --output "FILENAME.gpg" --encrypt "FILENAME"

Cifrar FILENAME utilizando el clave publico de RECIPIENT (4)

gpg --amror --recipient "RECIPIENT" --output "FILENAME.gpg" --encrypt "FILENAME"

Cifrar el archivo “FILENAME” con salido listo para mandar por correo (4)

gpg --decrypt-files "FILENAME.asc"

or

gpg --decrypt-files "FILENAME.gpg"

Decifrar FILENAME.asc o FILENAME.gpg, verificando la firma digital se es prestente (4)

gpg --local-user "YOUR-NAME" --clearsign "FILENAME"

Crear una firma digital y crear un arcivo de texto claro más la firma a FILENAME.asc (5)

gpg --local-user "YOUR-NAME" --output "FILENAME.sig" --detach-sign "FILENAME"

Crear una firma digital aparte para FILENAME (5)

gpg --verify "FILENAME.asc"

Verificar la firma digital encontrado en FILENAME.asc (5)

gpg --verify "FILENAME.sig"

Verificar la firma digital para FILENAME contenido en FILENAME.sig (5)

gpg --armor --local-user "YOUR-NAME" --recipient "RECIPIENT" --sign --output "FILENAME.asc" --encrypt "FILENAME"

Cifrar y firmar FILENAME, con texto de saldo a FILENAME.asc (5)

gpg --homedir . SOME-COMMAND

Utilizar la carpeta actual como carpeta de inicio, util para llamar GPG desde un aplicación (6)

A.2 Terminal (command prompt) de windows

X:
Cambiar a disponitovo de almanacamiento letra X (C:, D:, etc)
cd MI-CARPETA

Cambiar a la carpeta “MI-CARPETA”

 cd \

Cambiar a la carpeta raiz del disponitivo actual

cd ..

Cambiar a la carpeta padre de la carpeta actual

dir

Lista los contenidos de la carpeta actual

exit

Cerrar el terminal

Fuentes

2) Se GPG daba una salida con asteriscos, por ejemplo, alguien más podría dar cuenta de que tantos caracteres contiene tu contraseña
 
criptografia.txt · Última modificación: 2010/04/06 12:35 por ashitaka
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki