Personal tools
You are here: Home Documentación Charlas en el Chat GNUPG, claves asimétricas y firmas digitales
Document Actions

GNUPG, claves asimétricas y firmas digitales

by Lorenzo Gil Sanchez last modified 23-10-2004 11:16 PM

Imparte: Prof.D.Miguel Quirós (Dpto. Química Inorgánica de la Facultad de Ciencias de Granada). Fecha: 19 de Diciembre de 2002

GNUPG, claves asimétricas y firmas digitales.
Imparte: Prof.D.Miguel Quirós (Dpto. Química Inorgánica de la Facultad de Ciencias de Granada)
Fecha: jueves, 18 de Diciembre del 2002
Hora: 20:00 GMT +1
Lugar: canal #gcubo en irc.freenode.net
Más información en: http://www.gcubo.org
MiguelQuirosVenga, cuando este todo a punto dais el banderazo de salida
--- tar sets mode +m #gcubo
--> Salud (somebody@212.59.212.62) has joined #gcubo
MiguelQuirosCuando los técnicos tengáis todo a punto comienzo
tarhoy damos comienzo a una serie de conferencias organizadas por GCubo (http://gcubo.com)
tarla primera de estas charlas es sobre el "Uso de gnupg para la gestión de claves asimétricas y firmas digitales"
tarimpartida por el profesor D. Miguel Quirós del departamento de Química Inorgánica de la Universidad de Granada
--- bitland removes voice from ff0000
--- bitland removes voice from Guest5917
tarel funcionamiento será el siguiente
tarquien quiera hacer una pregunta relacionada con el tema de la charla se dirigirá en privado a bitland
taresto podrá hacerlo mediante /query bitland y exponiendo allí su pregunta
tarbitland la copiará en el canal MiguelQuiros la contestará
tarasí todo el mundo podrá enterarse de las preguntas y las respuestas correspondientes
tarme informan de que mejor q hacer un /query bitland se haga /msg bitland para facilitar el trabajo
taren el caso de que la pregunta sea demasiado complicada como para copiarla se le dará voz a la pesona correspondiente
tarquien preguntará en el canal
tary se le quitará la voz una vez sea contestada
tarsi alguien tiene alguna otra duda ha de dirigirse a malglam o a mi indistintamente
tarasí q si nuestro querido MiguelQuiros y los colaboradores piensan q todo es correcto está preparado puede dar comienzo la charla
MiguelQuirosMuchas gracias
MiguelQuirosBuenas noches a todos
MiguelQuirosEmpezamos con la definición: GNUPG (GNU Privacy Guard) es un programa que permite firmar y/o encriptar ficheros o mensajes, pudiendo garantizar su procedencia, integridad y privacidad.
MiguelQuirosGNUPG es software libre y por tanto además de ser gratuito, su código fuente es público
MiguelQuirospor lo que tenemos la garantía de que el programa no va a hacer con nuestros datos privados ninguna operación oculta (tratamiento, transmisión) diferente a las funciones que debe realizar.
MiguelQuirosEl uso de GNUPG está más extendido en el mundo de GNU/Linux pero también existe GNUPG para Windows.
MiguelQuirosLos clientes de correo electrónico para Linux suelen tener prevista la integración con GNUPG.
MiguelQuirosBajo windows, existen "plugins" que funcionan bajo Eudora y Outlook y utilidades que permiten manipular las claves desde un entorno gráfico.
MiguelQuirosDe todas formas, para usar GNUPG no es necesario (aunque sí más cómodo) que nuestro programa de correo electrónico esté integrado con GNUPG.
MiguelQuirosQuizás más adelante volveremos sobre este asunto si hay tiempo.
MiguelQuirosQuiero empezar la charla hablando fundamentalmente de los conceptos básicos de firmar, encriptar, clave pública, clave privada, etcétera.
MiguelQuirosCreo que lo más importante es que se comprendan muy bien todas estas ideas,
MiguelQuiroslos comandos concretos siempre se pueden consultar en los manuales, aunque de todas formas también veremos los más importantes.
MiguelQuirosFirmar digitalmente un fichero o un mensaje sirve para que el destinatario pueda estar razonablemente seguro de quién lo ha mandado (o lo ha puesto en la red)
MiguelQuirosy de que lo que se ha descargado o recibido no ha sufrido ningún tipo de modificación (accidental o intencionada) desde el momento en que se firmó.
MiguelQuirosEncriptar un fichero o mensaje sirve para que el remitente esté seguro de que solamente el destinatario del mismo va a ser capaz de leerlo o de utilizarlo.
MiguelQuirosLa firma nos asegura el origen y la integridad y la encriptación nos asegura el destino del material firmado y/o encriptado.
MiguelQuirosPor supuesto, es posible firmar y encriptar simultáneamente.
MiguelQuirosGNUPG es un sistema de firma y cifrado de clave doble asimétrica.
bitlandentonces la encriptación sirve sólo para ocultar el contenido del mensaje a todos menos al destinatario?
MiguelQuirosEfectivamente, nadie excepto el destinatario puede recuperar el contenido de un mensaje o fichero encriptado
bitland¿y la firma es sólo para verificar la procedencia?
MiguelQuirosNo solo la procedencia. También la integridad
MiguelQuirosSi el fichero ha sufrido algún tipo de cambio desde que se firmó, la verificación de la firma fallará
bitland¿y se puede encriptar un mensaje sin firmarlo?
MiguelQuirosPues sí. Es posible hacerlo
MiguelQuirosNadie te impide mandar un mensaje anónimo encriptado para que solo lo lea el destinatario
MiguelQuirosBeno, continúo. Como decía, GNUPG es un sistema de firma y cifrado de clave doble asimétrica.
MiguelQuirosCada persona que utilice el sistema debe poseer una pareja de claves complentarias.
MiguelQuiros Uno de los componentes de la pareja se denominan clave privada y el otro clave pública.
MiguelQuirosLo que se hace con la clave privada se deshace con la correspondiente clave pública y viceversa
MiguelQuirosUna firma realizada con la clave privada se verifica con la pública y un cifrado realizado con la clave pública se descifra con la privada.
MiguelQuirosMi clave privada debe permanecer guardada en mi ordenador, almacenada en un fichero que en linux se llama $HOME/.gnupg/secring.gpg, (en Windows, supongo que algo parecido).
MiguelQuiros Este fichero se conoce como el "anillo de claves secreto" (secret keyring): el nombre parece sacado de un relato de Tolkien. :-)
MiguelQuirosDebo procurar que este fichero esté lo más fuera del alcance que me sea posible de otras personas
MiguelQuirosSi puedo evitarlo, no debo guardarlo en un ordenador de uso público.
MiguelQuirosEn linux, no debe salir de mi directorio personal y debe tener permiso de lectura y escritura solo para mí.
MiguelQuirosDe todas formas, por mucho cuidado que ponga, siempre pueden existir canales por los cuales ese fichero pueda ser accedido por personas no autorizadas.
MiguelQuirosPor eso, la clave secreta tiene una protección adicional: un password que debe ser lo menos sencillo que se me ocurra.
bitland <tar> y quien me asegura q el administrador de mi sistema no ve mi clave?
MiguelQuirosNadie, el root de un sistema tiene acceso a todos los archivos de todos los usuarios
MiguelQuirosSi puedes, debes almacenar el anillo secreto en una máquina en la que tú seas el root
bitland¿se firma con la privada y se encripta con la pública?
MiguelQuirosEfectivamente, volveré a ello más adelante
MiguelQuirosPor las razones antes dichas, la clave secreta tiene una protección adicional
MiguelQuirosSe trata de un password que debe ser lo más exótico que seamos capaces
MiguelQuirosSe aconseja que sea una frase (en vez de una sola palabra) que tenga sentido solo para mí, que mezcle mayúsculas y minúsculas, símbolos de puntuación, números, palabras inventadas, etc.
MiguelQuirosTodo ello para ponérselo difícil a los "buscapasswords" que hay por ahí
MiguelQuirosLa documentación de GNUPG indica que este password (o passphrase) es el punto más débil del sistema,
MiguelQuiros así que debo elegir la cosa más estrafalaria que sea capaz de recordar y de teclear sin tardar demasiado.
bitland¿se puede tener la clave privada en un disquete y configurar el programa para que lo lea de él?
MiguelQuirosEsta passphrase no se debe teclear nunca a través de la red. No se debe usar una clave secreta guardada en un ordenador al que se esté accediendo de forma remota.
MiguelQuirosCreo que sí se puede guardar el secret keyring en un diskete
MiguelQuirosDespues de copiar el fichero al disquete habría que borrarlo desde el disco duro
MiguelQuirosY poner en su lugar un enlace virtual del disco duro al disquete
MiguelQuirosDe esa manera, el enlace apuntará a la nada si el disquete no está montado
MiguelQuirosAunque personalmente nunca lo he probado, no veo razón por la cual esto no deba funcionar
MiguelQuirosSigo con la charla: La clave pública, como su nombre indica, puedo y debo distribuirla a todas las personas con las cuales quiera comunicarme haciendo uso de GNUPG.
MiguelQuiros Mi clave pública puede estar en mi página web, la puedo distribuir por correo electrónico y la puedo depositar en un servidor de claves para que se la descargue cualquiera que lo desee.
MiguelQuirosEn mi ordenador las claves públicas (incluida la mía) se almacenan en el fichero $HOME/.gnupg/pubring.gpg, el "anillo de claves público" (public keyring).
MiguelQuirosAsí como el anillo secreto secring.gpg es un fichero pequeño que contiene solamente mi clave secreta, el anillo público es un fichero que irá creciendo más y más conforme más claves públicas de otras personas vaya acumulando.
MiguelQuirosAhora bien, para que una clave pública de otra persona obtenida por cualquier medio sea útil, es necesario estar seguro de que esa clave realmente pertenece a la persona a quien creo que pertenece.
MiguelQuirosGNUPG me dará un mensaje de aviso si intento utilizar una clave pública para la que no tenga alguna garantía de autenticidad (incluso rehusará usarla para encriptar un fichero o mensaje).
MiguelQuirosDicha garantía de autenticidad puedo dársela yo mismo a GNUPG de forma directa o GNUPG puede tratar de obtenerla de forma indirecta (calculada).
MiguelQuirosPara que GNUPG dé por buena una clave pública de otra persona de forma directa, es necesario que esa clave pública esté avalada por mi.
MiguelQuiros Uso mi clave secreta para firmar la clave pública de otra persona de cuya autenticidad estoy seguro.
MiguelQuirosEsa firma mía sobre la clave publica de otra persona es el aval que necesita GNUPG para dar por buena esa clave pública de forma directa.
MiguelQuiros En mi "anillo público" queda grabada mi firma asociada con dicha clave pública.
MiguelQuirosPara avalar una clave pública con mi firma, si quiero ser serio (y la filosofía del programa es que seamos muy serios, porque si no, ¿para qué lo queremos?) hacen falta dos cosas:
bitlando sea, ¿yo encripto un mensaje para fulano con la clave pública de fulano, pero lo firmo con mi clave privada?
MiguelQuirosNo, lo que firmas con tu clave privada es la clave pública de fulano para que GNUPG dé esa clave pública por buena
MiguelQuirosSi además quieres firmar el mensaje, puedes hacerlo pero es una acción diferente
MiguelQuirosNo es lo mismo firmar la clave pública de otra persona para que GNUPG la de por buena que firmar un mensaje
bitlandno era eso, que lo había entendido, es si para encriptar un mensaje para mandarlo a un cierto destinatario, es necesario hacerlo con la clave publica del destinatario?
MiguelQuirosClaro, para que solamente el destinatario pueda descifrarlo con su propia clave privada
MiguelQuirosSigo: decía que para avalar una clave pública con mi firma, si quiero ser serio (y la filosofía del programa es que seamos muy serios, porque si no, ¿para qué lo queremos?) hacen falta dos cosas:
MiguelQuiros1.- Conocer a la persona dueña de la clave pública o que se identifique ante mí. La forma "ortodoxa" de hacerlo es mediante la exhibición de un documento de identificación, típicamente el DNI.
MiguelQuiros2.- Comprobar de forma directa con esa persona ya identificada que la clave que he obtenido por cualquier método efectivamente es la suya.
MiguelQuirosPor supuesto, me podéis decir con razón que en muchos casos puede ser "pasarse un poco" ponerse tan "en plan notario" para esto
MiguelQuirospero insisto en que es preferible pasarse de tiquismiquis que quedarse corto
MiguelQuirosy lo suyo es realizar siempre _por sistema_ los dos pasos anteriores incluso en los casos en los que parezca innecesario.
MiguelQuirosSi nos parece que podemos ser un poco más confiados y ser flexibles en la aplicación de las dos condiciones anteriores, a lo mejor no tiene sentido usar GNUPG después de todo.
MiguelQuirosAdemás está el tema de la imagen: si pretendemos convencer a los demás, sobre todo a los poderes públicos, de que este es un sistema adecuado de identificación y transmisión segura de datos, debemos predicar con el ejemplo y ser muy muy muy serios.
MiguelQuirosBueno, a lo que vamos. El paso número 1 creo que no necesita más explicaciones.
MiguelQuirosEl paso número 2 podría realizarse simplemente si la persona implicada me entrega personalmente su clave pública en un diskete
MiguelQuirosaunque resulta mucho más funcional hacer uso de lo que se denominan "huellas dactilares" (fingerprints).
MiguelQuirosCada pareja de claves pública/privada tiene asociada una serie de 40 dígitos hexadecimales (números del 0 al 9 y las letras ABCDEF) que es lo que llamamos su "huella dactilar".
MiguelQuirosConfrontando la huella dactilar de la clave que tengo almacenada en mi anillo público con la que me comunique la persona implicada de forma fehaciente, puedo dar por buena y firmar esa clave pública.
MiguelQuirosPara una persona que yo conozca de antemano, esa "forma fehaciente" puede ser simplemente una llamada telefónica o incluso una carta manuscrita (este último método tiene más glamour).
MiguelQuirosPara alguien que no conozca tanto, lo más adecuado es que, una vez identificado, me dicte o copie el fingerprint en vivo y en directo.
MiguelQuirosUna quedada masiva para identificarse mutuamente e intercambiar fingerprints puede ser una excusa tan buena como otra cualquiera para montar una fiesta.
bitlandTripu: ¿La asignación de los pares de llaves se hace por algún organismo centralizado o es distribuida y aleatoria?". Gracias!
MiguelQuirosLa pareja de claves las generas tú mismo en tu propio ordenador.
MiguelQuirosEn el sistema GNUPG, no hay ninguna autoridad policial que avale las claves
MiguelQuirosEl aval lo hacemos nosotros mismos unos frente a otros. Y podemos avalar a terceras personas según indico a continuación
MiguelQuirosSigo: una vez que he puesto mi firma sobre la clave de otra persona, puedo exportar esa clave (por ejemplo a un servidor de claves)
MiguelQuirosy cualquier persona que la importe de ahí en adelante, podrá ver que viene avalada por mi firma.
MiguelQuirosEs de buena eduacación, después de firmar la clave pública de alguien, devolvérsela a su propietario con nuestra firma adjunta.
MiguelQuirosPara aumentar la eficacia de GNUPG, es conveniente verificar y firmar las claves de cuantas más personas, mejor.
MiguelQuirosY también que cuantas más personas mejor firmen nuestra clave.
MiguelQuirosPero ¿qué ocurre si resulta difícil o incluso imposible realizar los dos pasos anteriores y por tanto no podemos ni debemos avalar una clave pública con nuestra firma?
MiguelQuirosPara este caso, GNUPG tiene prevista la autentificación indirecta a la que me referí anteriormente.
MiguelQuirosAquí entra en juego lo que se denomina la "red de confianza".
MiguelQuirosLo explico con un ejemplo. Supongamos que tengo en mi anillo público las claves públicas de Genoveva y Honorato.
MiguelQuirosLa clave de Genoveva está firmada por mí porque se identificó y me pasó su "fingerprint" en una "fingerprint-party".
MiguelQuirosSin embargo a Honorato no le conozco personalmente, pero resulta que cuando importé su clave, esta venía avalada por la firma de Genoveva (quizás se vieron en otra figerprint-party anterior).
MiguelQuirosSi confío lo suficiente en Genoveva (confiar no solamente en que no me está engañando, sino también en que ha sido lo suficientemente "seria" al dar por buena la clave de Honorato)
MiguelQuirospuedo dejar que GNUPG dé por buena la clave de Honorato. Esto sería una "cadena de confianza" de dos eslabones.
MiguelQuirosGNUPG dará por buena la clave de forma indirecta con estos datos.
MiguelQuirosPero no por eso debo poner mi firma sobre la clave de Honorato, dado que no he realizado los pasos anteriores 1 y 2 yo mismo.
MiguelQuirosEl grado de confianza que tengo en las firmas de terceras personas es una información subjetiva que puedo suministrar a GNUPG y que se almacena en un fichero denominado la "base de datos de confianza" ($HOME/.gnupg/trustdb.gpg).
MiguelQuirosPor defecto, GNUPG asigna un valor calculado de confianza 4 (fully trust) en una escala 1-5 a las personas cuya clave pública este firmada por mí.
MiguelQuirosYo puedo asignar otro valor (1=no sé, 2=no me fío, 3=me fío un poco, 4=me fío del todo, 5=como si fuera yo mismo) que crea conveniente.
MiguelQuirosGNUPG puede dar por buena (o no) una clave pública de forma indirecta según el número de eslabones de la "cadena de confianza" que lleve desde mi clave hasta esa clave pública y del grado de confianza otorgado a cada eslabón de la cadena.
MiguelQuirosPero bueno, creo que ya es suficiente de rollo teórico y podemos empezar a ver como se hace todo esto en la práctica.
MiguelQuirosLo primero es descargar e instalar GNUPG si no lo tenemos ya en el ordenador.
MiguelQuirosSi usamos linux, casi seguro que el paquete gnupg viene con nuestra distribución favorita y es hasta probable que se instalara "por defecto" al instalar la distribución.
MiguelQuirosSi lo preferimos también podemos descargar el código fuente de la última versión desde www.gnupg.org y compilarlo nosotros mismos.
MiguelQuirosPara Windows, podemos descargarnos directamente el programa compilado desde www.gnupg.org
MiguelQuirosy también puede resultar interesante bajarse el plugin para nuestro programa de correo electrónico.
MiguelQuirosHay enlaces desde www.gnupg.org a las páginas de los plugins.
MiguelQuirosEn principio, la mayor parte de las órdenes a GNUPG se deben dar a través de la línea de comandos
MiguelQuiros(en Windows, abriendo una ventana MS-DOS y cambiando al directorio donde se instaló GNUPG
MiguelQuirosaunque también se pueden dar a través de alguna de las interfases gráficas que creo que existen (aunque yo no he usado ninguna).
MiguelQuirosLa primera orden que debo ejecutar para empezar a usar GNUPG es la creación de mi pareja de claves secreta/pública. La orden es: gpg --gen-key.
MiguelQuirosEl sistema me pregunta mi nombre, mi correo electrónico, si quiero añadir algún comentario (se puede dejar en blanco)
MiguelQuirosy si quiero darle una fecha de caducidad a la clave (salvo que haya alguna razón que aconseje lo contrario, se puede dejar el valor por defecto, sin fecha de caducidad).
MiguelQuirosY lo más importante: la passphrase que va a proteger mi clave secreta. Recuérdese todo lo dicho anteriormente.
MiguelQuirosEl sistema tarda un cierto tiempo en generar las claves.
MiguelQuirosPara que sean lo más aleatorias posible, debe "recoger entropía": puedo ayudarle moviendo el ratón, cambiando de consola, tocando teclas, abriendo y cerrando ficheros sin ton ni son, etc.
MiguelQuirosAl final del proceso se habrán creado "los dos anillos".
MiguelQuirosEl anillo público, que en principio contendrá solamente mi clave pública, se irá ampliando posteriormente con las claves públicas de más personas.
MiguelQuirosYa puedo comunicar mi clave pública al mundo, para eso primero debo exportarla a un fichero. La orden es:
MiguelQuirosgpg --export -a micorreo@servidor.es > miclave
MiguelQuirosSe crea el fichero ASCII miclave que contiene mi clave pública. Puedo distribuir este fichero en la forma que estime oportuna.
MiguelQuirosEsto lo puedo hacer con cualquier clave contenida en el anillo público, no solamente con la mía:
MiguelQuirosgpg --export -a fulanito@ordenador.com > otraclave.
MiguelQuirosObsérvese que para referirme a una clave pública determinada (la mía o la de otra persona) utilizo la correspondiente dirección de correo electrónico.
MiguelQuirosEsta no es la única manera de referirse a una clave (en la ayuda de GNUPG podéis ver otras) pero para no liar más la cosa, con esta nos basta.
MiguelQuirosUna clave exportada de esta forma lleva adjuntas de forma automática todas las firmas que tuviera asociadas en mi anillo público.
MiguelQuirosSe puede exportar a un mismo fichero más de una clave e incluso el anillo público completo.
MiguelQuirosPara añadir a mi anillo público la clave o claves que vengan incluidas en un fichero el comando es:
MiguelQuirosgpp --import ficherodeclaves
MiguelQuirosSe añadirán al anillo público todas las claves que vengan en el fichero con todas las firmas que traigan avalándolas.
MiguelQuirosTambién se pueden añadir por este sistema nuevas firmas que avalen claves que ya estuvieran presentes en el anillo público.
MiguelQuirosPara obtener un listado de todas las claves contenidas en un momento dado en mi anillo público podemos poner gpg --list-keys.
MiguelQuirosSi quiero ver qué firmas avalan la clave pública de alguien podemos poner
MiguelQuirosgpg --list-sigs fulanito@ordenador.com
MiguelQuirosPara ver la huella dactilar correspondiente teclearé
MiguelQuirosgpg --fingerprint fulanito@ordenador.com.
MiguelQuirosPara ver la huella dactilar de mi propia clave y apuntarla para comunicársela a otras personas para que puedan verificarla la orden es
MiguelQuirosgpg --fingerprint micorreo@servidor.es
MiguelQuirosSi quiero sacarla directamente por la impresora, puedo añadir | lpr al final.
MiguelQuirosSi he verificado perfectamente la clave de otra persona de la forma indicada con anterioridad y quiero avalarla con mi firma debo poner
MiguelQuirosgpg --sign-key fulanito@ordenador.com.
MiguelQuirosDado que voy a hacer uso para ello de mi clave secreta, el programa me pedirá la passphrase que la protege.
MiguelQuirosHasta ahora, me he referido a la gestión de las claves. A partir de ahora me voy a referir a su uso en firmar y encriptar ficheros.
MiguelQuirosExisten diferentes opciones para firmar un fichero con nuestra clave secreta (las podéis consultar en el manual). Personalmente recomiendo las siguientes:
MiguelQuirosPara un fichero de texto:
MiguelQuirosgpg --clearsign archivodetexto
MiguelQuirosEsto crea un nuevo fichero de texto llamado archivodetexto.asc, que es el que debo transmitir al destinatario.
MiguelQuirosLa primera parte de archivodetexto.asc contiene el archivo original, de forma que puede ser leído por alguien que no tenga GNUPG o que no tenga nuestra clave pública.
MiguelQuirosLa segunda parte del fichero es la firma, que puede ser verificada por alguien que tenga GNUPG y nuestra clave pública mediante
MiguelQuirosgpg --verify archivodetexto.asc
MiguelQuirosPara un fichero binario, recomiendo usar gpg -b nombrefile.
MiguelQuirosEsto crea un archivo también binario llamado nombrefile.sig que lleva la firma (sin datos) separada del fichero de datos.
MiguelQuirosEn este caso, debo transmitir tanto el fichero original nombrefile como la firma nombrefile.sig.
MiguelQuirosEl destinatario que ha recibido ambos ficheros puede verificar igual que antes
MiguelQuirosgpg --verify nombrefile.sig
MiguelQuiros(El fichero firma se puede generar también en formato de texto si ponemos -ba en vez de -b).
MiguelQuirosMuchos programas (por ejemplo el kernel de linux) se distribuyen junto con su firma digital creada de esta forma.
MiguelQuirosQuien los descargue puede comprobar que lo que ha descargado es genuino y no ha sufrido alteraciones accidentales o malintencionadas desde el momento en que se firmó.
MiguelQuirosObsérvese que cada vez que voy a firmar algo, se utiliza mi clave secreta y que por tanto el programa me pide la passphrase.
MiguelQuirosPara encriptar un fichero con la clave pública de Fulanito la orden es
MiguelQuirosgpg -er fulanito@ordenador.com archivo
MiguelQuiros(si queremos el fichero encriptado en ascii -ear en vez de -er)
MiguelQuirosSe crea el fichero encriptado archivo.gpg.
MiguelQuirosEste fichero no puede ser desencriptado por nadie (ni siquera por quien lo creó) excepto por Fulanito mediante su clave secreta.
MiguelQuirosFulanito debera ejecutar
MiguelQuirosgpg --decrypt archivo.gpg > archivonuevo
MiguelQuirosEl programa le pedirá a Fulanito su passphrase y creará el fichero archivonuevo, idénticamente igual a al fichero original archivo.
MiguelQuirosSi no se pone "> archivonuevo" al final del comando anterior, el resultado de la decriptación aparecerá en pantalla, lo cual puede ser un gran galimatías sobre todo si el fichero original era binario.
MiguelQuirosNo obstante, si lo que quiero firmar/encriptar/verificar/desencriptar son mensajes de correo electrónico
MiguelQuirosy mi cliente de correo electrónico es capaz de actuar como interfase con GNUPG (bien por sus propios medios o bien mediante un plugin), puedo ahorrarme teclear todas estas órdenes
MiguelQuirosSimplemente tengo que activar las opciones adecuadas del programa o del plugin (la forma conceta de funcionar cambiará de un programa o plugin a otro) y este se encargará de interactuar con GNUPG
MiguelQuirosSi el destinatario de mi correo y yo usamos el mismo cliente o plugin, la cosa seguro que funciona de forma fluida, fácil y automática.
MiguelQuirosLos problemas pueden aparecer si los programas son diferentes, con la cual la comunicación puede no ser tan fluida, ya que existen estilos diferentes para firmar/encriptar mensajes.
MiguelQuirosEl "estilo Eudora" consiste en firmar los mensajes haciendo uso de gpg --clearsign y encriptarlos como gpg --ear
MiguelQuirosEl resultado en ambos casos es un archivo de texto que constituye el cuerpo del mensaje que se va a enviar. Este estilo es usado por los plugins de Eudora y Outlook.
MiguelQuirosEl "estilo Evolution" consiste en firmar los mensajes haciendo uso de gpg --ba y encriptar como en el caso anterior
MiguelQuirospero el resultado no se incluye en el cuerpo del mensaje sino en ficheros adjuntos mientras que el cuerpo del mensaje principal se deja en blanco.
MiguelQuirosParece que los programas tipo "Evolution" no son capaces de reconocer automáticamente los mensajes firmados/encriptados estilo "Eudora" y viceversa.
MiguelQuirosPor ejemplo, si mandados un mensaje firmado con Evolution a alguien que tiene Eudora/Outlook, incluso si tiene GNUPG y el correspondiente plugin instalados,
MiguelQuirossolamente verá un mensaje en blanco con dos atachés (el mensaje original y la firma) y hasta puede sospechar que se trata de un virus.
MiguelQuirosY viceversa, si mandamos un mensaje firmado o encriptado "estilo Eudora" a alguien que tiene Evolution, lo que verá es un mensaje de texto que empieza por las líneas:
MiguelQuiros-----BEGIN PGP SIGNED MESSAGE-----
MiguelQuiroso
MiguelQuiros-----BEGIN PGP MESSAGE-----
MiguelQuirosSi queremos verificar/desencriptar el mensaje tendremos que salvarlo a un archivo de texto y ejecutar GNUPG desde la línea de comandos.
MiguelQuirosLa verdad es que los que diseñan las interfases entre GNUPG y los clientes de correo electrónico se deberían poner un poco más de acuerdo.
MiguelQuirosO deberían prever que el programa pueda firmar/encriptar con cualquiera de los dos estilos y verificar/desencriptar ambos.
MiguelQuirosEn fin, de momento, para comunicarnos de forma segura entre personas con clientes de correo electrónico que usen estilos diferentes y asegurarnos de que no va a haber problemas habría que seguir un camino intrincado e incómodo:
MiguelQuirosCrear el mensaje a enviar en un fichero (en el formato que sea).
MiguelQuirosFirmar y/o encritpar el fichero en línea de comandos.
MiguelQuirosMandar el fichero firmado/encriptado como ataché de un mensaje.
MiguelQuirosEl cuerpo del mensaje simplemente debería decir algo así como "adjunto mensaje firmado" (y nada más, porque lo que va firmado/encriptado es el ataché, no el mensaje).
MiguelQuirosEl destinatario debería descargar el ataché y verificar/desencriptar en línea de comandos.
MiguelQuirosEn resumen: en estos casos, hay que usar GNUPG en línea de comandos y no utilizar las facilidades del cliente de correo electrónico.
MiguelQuirosDe esta forma, también se mueden mandar cosas firmadas/encriptadas a alguien que tenga instalado GNUPG pero cuyo cliente de correo electrónico no esté capacitado para interactuar directamente con GNUPG.
MiguelQuirosPara finalizar, un aspecto legal importante: la comunicación cifrada a través de Internet es legal en España ya que está permitida por la Ley General de Telecomunicaciones.
MiguelQuirosNo obstante, también parece ser que estaríamos obligados a desvelar nuestras claves a la Autoridad competente (o a los jueces, no sé) en caso de que así nos lo requiriesen.
MiguelQuirosEn todo caso, un abogado podría opinar sobre este asunto mejor que yo.
MiguelQuirosPues con esto, se me acaba el rollo.
MiguelQuiros¿Alguna pregunta para terminar?
bitlandtork: ¿Qué algoritmo de encriptación usa GNUPG? Gracias
MiguelQuirosBuena pregunta. La verdad es que no conozco bien las especificaciones técnicas
MiguelQuirosMe imagino que eso se podrá encontrar sin dificultad en la página oficial de GNUPG
bitland<tar> gnupg usa mi direccion de correo electronico para referirse a mi clave ¿q pasa si cambio de direccion?
MiguelQuirosDebes añadir tu nueva dirección a tus claves pública y privada
bitlandantes dijiste algo de convencer a las autoridades de las bondades del sistema, ¿hay algún movimiento al respecto para que ésto sirva como algo útil entre la administración y el ciudadano?
bitlandcomo podéis ver el turno de preguntas está abierto :)
MiguelQuirosQue yo sepa, no. Hacienda usa un sistema de este tipo para presentar la declaración a través de Internet, pero usa un sistema no libre
bitlanddijiste: cada vez que voy a firmar algo, se utiliza mi clave secreta y que por tanto el programa me pide la passphrase. ¿Si tengo que mandar muchos correos, para cada uno que quiera firmar, me pedirá la passphrase? ¿no es algo engorroso?
MiguelQuirosLos programas de correo electrónico se pueden configurar
MiguelQuirosde forrma que "recuerde" la passphrase durante toda una sesión.
bitlandtork: Antes hablaste del nivel de confianza de las claves. Es necesario firmar una clave para cambiar su nivel de confianza?
MiguelQuirosCreo que sí.
MiguelQuirosAunque no lo he verificado
bitland<tar> No has hablado sobre el uso que Mozilla o Netscape hacen de gnupg ¿como lo tratan?
MiguelQuirosHay un plugin (creo que sirve el mismo) para los clientes de correo de Mozilla y Netscape
MiguelQuirosCreo que firman "estilo Eudora"
bitland¿qué nivel de seguridad ofrece la encriptación?, es decir, ¿qué máquina se supone necesaria para desencriptar una passphrase y sacar a relucir el archivo encriptado?
MiguelQuirosEn la página principal de GNUPG se dice que no se conoce hasta ahora ningún caso de haber roto una clave GPG
MiguelQuirosPero claro, si la CIA ha conseguido descifrarlas, no nos lo va a decir
MiguelQuirosEn principio, parece ser que el tiempo necesario para romper una clave de 1024 bits con un ordenador actual sería demasiado largo para que sea una opción práctica
bitlandse supone que un ordenador "normal" tardaría unos 100 años en desencriptar algo así, según he leído por algún lado, y claro, eso no es viable, ¿hay conocimiento de algún algoritmo o máquina capaz de eso en menos tiempo?
MiguelQuirosQue yo sepa, no.
MiguelQuirosQuizás muchos ordenadores trabajando en paralelo
tar¿alguna pregunta más?
MiguelQuirosSi no hay más preguntas, muchas gracias a todos por vuestra atención
MiguelQuirosEspero que hayáis aprendido algunas cosas.
tarbueno, pues si no hay nada más, dar las gracias a Miguel por hacernos participes a todos de sus conocimientos e invitarle a que lo haga cuando quiera
bitlandpla plas plas plas :), ya me he enterado de casi todo, lo mismo lo instalo un día de estos :)
--- tar sets mode -m #gcubo
enlavinplas plas plas plas plas plas plas plas plas plas
malglammuy interesante :)
tarde todos modos nos gustaria que se nos respondieran a algunas preguntas
tarpara mejorar las charlas
somebody_Mig, muy didáctico.
tarlas podeis responder a malglam, bitland o a mi
tar¿que te ha parecido la velocidad en la que se ha dado la charla=
tar¿has encontrado dificul el acceso a la charla?
tar¿sobre que otros temas te gustaría que se hiciesen charlas?
tar¿como darías a conocer estas charlas?
tar¿estarias dispuesto a dar una charla sobre algún tema en concreto? ¿cual?
tarRuegos, sugerencias
torkse pondran en la web de gcubo algun documento con la charla de hoy?
MiguelQuirosBueno, por mi parte. Muchas gracias de nuevo. Me voy a tomar una cerveza, para refrescarme la garganta :-)
tarsi
tarse ha grabado el log
malglamsi,
enlavinMiguelQuiros: juas
torkun saludo Miguel
Gracias Miguel!,
gracias Jeff.

Powered by Plone CMS, the Open Source Content Management System Powered by GCubo Powered by Cicode

This site conforms to the following standards: