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 (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…)
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.
la guía original (en inglés) se puede encontrar aqui. el manual de GPG no tiene substituto.
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.
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.
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
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
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.
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).
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.
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)
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