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: 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 | |
| MiguelQuiros | Venga, cuando este todo a punto dais el banderazo de salida |
|---|---|
| --- tar sets mode +m #gcubo | |
| --> Salud (somebody@212.59.212.62) has joined #gcubo | |
| MiguelQuiros | Cuando los técnicos tengáis todo a punto comienzo |
| tar | hoy damos comienzo a una serie de conferencias organizadas por GCubo (http://gcubo.com) |
| tar | la primera de estas charlas es sobre el "Uso de gnupg para la gestión de claves asimétricas y firmas digitales" |
| tar | impartida 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 | |
| tar | el funcionamiento será el siguiente |
| tar | quien quiera hacer una pregunta relacionada con el tema de la charla se dirigirá en privado a bitland |
| tar | esto podrá hacerlo mediante /query bitland y exponiendo allí su pregunta |
| tar | bitland la copiará en el canal MiguelQuiros la contestará |
| tar | así todo el mundo podrá enterarse de las preguntas y las respuestas correspondientes |
| tar | me informan de que mejor q hacer un /query bitland se haga /msg bitland para facilitar el trabajo |
| tar | en el caso de que la pregunta sea demasiado complicada como para copiarla se le dará voz a la pesona correspondiente |
| tar | quien preguntará en el canal |
| tar | y se le quitará la voz una vez sea contestada |
| tar | si alguien tiene alguna otra duda ha de dirigirse a malglam o a mi indistintamente |
| tar | así q si nuestro querido MiguelQuiros y los colaboradores piensan q todo es correcto está preparado puede dar comienzo la charla |
| MiguelQuiros | Muchas gracias |
| MiguelQuiros | Buenas noches a todos |
| MiguelQuiros | Empezamos 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. |
| MiguelQuiros | GNUPG es software libre y por tanto además de ser gratuito, su código fuente es público |
| MiguelQuiros | por 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. |
| MiguelQuiros | El uso de GNUPG está más extendido en el mundo de GNU/Linux pero también existe GNUPG para Windows. |
| MiguelQuiros | Los clientes de correo electrónico para Linux suelen tener prevista la integración con GNUPG. |
| MiguelQuiros | Bajo windows, existen "plugins" que funcionan bajo Eudora y Outlook y utilidades que permiten manipular las claves desde un entorno gráfico. |
| MiguelQuiros | De 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. |
| MiguelQuiros | Quizás más adelante volveremos sobre este asunto si hay tiempo. |
| MiguelQuiros | Quiero empezar la charla hablando fundamentalmente de los conceptos básicos de firmar, encriptar, clave pública, clave privada, etcétera. |
| MiguelQuiros | Creo que lo más importante es que se comprendan muy bien todas estas ideas, |
| MiguelQuiros | los comandos concretos siempre se pueden consultar en los manuales, aunque de todas formas también veremos los más importantes. |
| MiguelQuiros | Firmar 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) |
| MiguelQuiros | y 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ó. |
| MiguelQuiros | Encriptar 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. |
| MiguelQuiros | La firma nos asegura el origen y la integridad y la encriptación nos asegura el destino del material firmado y/o encriptado. |
| MiguelQuiros | Por supuesto, es posible firmar y encriptar simultáneamente. |
| MiguelQuiros | GNUPG es un sistema de firma y cifrado de clave doble asimétrica. |
| bitland | entonces la encriptación sirve sólo para ocultar el contenido del mensaje a todos menos al destinatario? |
| MiguelQuiros | Efectivamente, 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? |
| MiguelQuiros | No solo la procedencia. También la integridad |
| MiguelQuiros | Si 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? |
| MiguelQuiros | Pues sí. Es posible hacerlo |
| MiguelQuiros | Nadie te impide mandar un mensaje anónimo encriptado para que solo lo lea el destinatario |
| MiguelQuiros | Beno, continúo. Como decía, GNUPG es un sistema de firma y cifrado de clave doble asimétrica. |
| MiguelQuiros | Cada 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. |
| MiguelQuiros | Lo que se hace con la clave privada se deshace con la correspondiente clave pública y viceversa |
| MiguelQuiros | Una 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. |
| MiguelQuiros | Mi 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. :-) |
| MiguelQuiros | Debo procurar que este fichero esté lo más fuera del alcance que me sea posible de otras personas |
| MiguelQuiros | Si puedo evitarlo, no debo guardarlo en un ordenador de uso público. |
| MiguelQuiros | En linux, no debe salir de mi directorio personal y debe tener permiso de lectura y escritura solo para mí. |
| MiguelQuiros | De todas formas, por mucho cuidado que ponga, siempre pueden existir canales por los cuales ese fichero pueda ser accedido por personas no autorizadas. |
| MiguelQuiros | Por 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? |
| MiguelQuiros | Nadie, el root de un sistema tiene acceso a todos los archivos de todos los usuarios |
| MiguelQuiros | Si 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? |
| MiguelQuiros | Efectivamente, volveré a ello más adelante |
| MiguelQuiros | Por las razones antes dichas, la clave secreta tiene una protección adicional |
| MiguelQuiros | Se trata de un password que debe ser lo más exótico que seamos capaces |
| MiguelQuiros | Se 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. |
| MiguelQuiros | Todo ello para ponérselo difícil a los "buscapasswords" que hay por ahí |
| MiguelQuiros | La 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? |
| MiguelQuiros | Esta 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. |
| MiguelQuiros | Creo que sí se puede guardar el secret keyring en un diskete |
| MiguelQuiros | Despues de copiar el fichero al disquete habría que borrarlo desde el disco duro |
| MiguelQuiros | Y poner en su lugar un enlace virtual del disco duro al disquete |
| MiguelQuiros | De esa manera, el enlace apuntará a la nada si el disquete no está montado |
| MiguelQuiros | Aunque personalmente nunca lo he probado, no veo razón por la cual esto no deba funcionar |
| MiguelQuiros | Sigo 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. |
| MiguelQuiros | En 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). |
| MiguelQuiros | Así 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. |
| MiguelQuiros | Ahora 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. |
| MiguelQuiros | GNUPG 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). |
| MiguelQuiros | Dicha garantía de autenticidad puedo dársela yo mismo a GNUPG de forma directa o GNUPG puede tratar de obtenerla de forma indirecta (calculada). |
| MiguelQuiros | Para 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. |
| MiguelQuiros | Esa 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. |
| MiguelQuiros | 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: |
| bitland | o sea, ¿yo encripto un mensaje para fulano con la clave pública de fulano, pero lo firmo con mi clave privada? |
| MiguelQuiros | No, lo que firmas con tu clave privada es la clave pública de fulano para que GNUPG dé esa clave pública por buena |
| MiguelQuiros | Si además quieres firmar el mensaje, puedes hacerlo pero es una acción diferente |
| MiguelQuiros | No es lo mismo firmar la clave pública de otra persona para que GNUPG la de por buena que firmar un mensaje |
| bitland | no 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? |
| MiguelQuiros | Claro, para que solamente el destinatario pueda descifrarlo con su propia clave privada |
| MiguelQuiros | Sigo: 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: |
| MiguelQuiros | 1.- 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. |
| MiguelQuiros | 2.- Comprobar de forma directa con esa persona ya identificada que la clave que he obtenido por cualquier método efectivamente es la suya. |
| MiguelQuiros | Por supuesto, me podéis decir con razón que en muchos casos puede ser "pasarse un poco" ponerse tan "en plan notario" para esto |
| MiguelQuiros | pero insisto en que es preferible pasarse de tiquismiquis que quedarse corto |
| MiguelQuiros | y lo suyo es realizar siempre _por sistema_ los dos pasos anteriores incluso en los casos en los que parezca innecesario. |
| MiguelQuiros | Si 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. |
| MiguelQuiros | Ademá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. |
| MiguelQuiros | Bueno, a lo que vamos. El paso número 1 creo que no necesita más explicaciones. |
| MiguelQuiros | El paso número 2 podría realizarse simplemente si la persona implicada me entrega personalmente su clave pública en un diskete |
| MiguelQuiros | aunque resulta mucho más funcional hacer uso de lo que se denominan "huellas dactilares" (fingerprints). |
| MiguelQuiros | Cada 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". |
| MiguelQuiros | Confrontando 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. |
| MiguelQuiros | Para 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). |
| MiguelQuiros | Para 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. |
| MiguelQuiros | Una quedada masiva para identificarse mutuamente e intercambiar fingerprints puede ser una excusa tan buena como otra cualquiera para montar una fiesta. |
| bitland | Tripu: ¿La asignación de los pares de llaves se hace por algún organismo centralizado o es distribuida y aleatoria?". Gracias! |
| MiguelQuiros | La pareja de claves las generas tú mismo en tu propio ordenador. |
| MiguelQuiros | En el sistema GNUPG, no hay ninguna autoridad policial que avale las claves |
| MiguelQuiros | El aval lo hacemos nosotros mismos unos frente a otros. Y podemos avalar a terceras personas según indico a continuación |
| MiguelQuiros | Sigo: una vez que he puesto mi firma sobre la clave de otra persona, puedo exportar esa clave (por ejemplo a un servidor de claves) |
| MiguelQuiros | y cualquier persona que la importe de ahí en adelante, podrá ver que viene avalada por mi firma. |
| MiguelQuiros | Es de buena eduacación, después de firmar la clave pública de alguien, devolvérsela a su propietario con nuestra firma adjunta. |
| MiguelQuiros | Para aumentar la eficacia de GNUPG, es conveniente verificar y firmar las claves de cuantas más personas, mejor. |
| MiguelQuiros | Y también que cuantas más personas mejor firmen nuestra clave. |
| MiguelQuiros | Pero ¿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? |
| MiguelQuiros | Para este caso, GNUPG tiene prevista la autentificación indirecta a la que me referí anteriormente. |
| MiguelQuiros | Aquí entra en juego lo que se denomina la "red de confianza". |
| MiguelQuiros | Lo explico con un ejemplo. Supongamos que tengo en mi anillo público las claves públicas de Genoveva y Honorato. |
| MiguelQuiros | La clave de Genoveva está firmada por mí porque se identificó y me pasó su "fingerprint" en una "fingerprint-party". |
| MiguelQuiros | Sin 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). |
| MiguelQuiros | Si 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) |
| MiguelQuiros | puedo dejar que GNUPG dé por buena la clave de Honorato. Esto sería una "cadena de confianza" de dos eslabones. |
| MiguelQuiros | GNUPG dará por buena la clave de forma indirecta con estos datos. |
| MiguelQuiros | Pero 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. |
| MiguelQuiros | El 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). |
| MiguelQuiros | Por 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í. |
| MiguelQuiros | Yo 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. |
| MiguelQuiros | GNUPG 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. |
| MiguelQuiros | Pero bueno, creo que ya es suficiente de rollo teórico y podemos empezar a ver como se hace todo esto en la práctica. |
| MiguelQuiros | Lo primero es descargar e instalar GNUPG si no lo tenemos ya en el ordenador. |
| MiguelQuiros | Si 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. |
| MiguelQuiros | Si lo preferimos también podemos descargar el código fuente de la última versión desde www.gnupg.org y compilarlo nosotros mismos. |
| MiguelQuiros | Para Windows, podemos descargarnos directamente el programa compilado desde www.gnupg.org |
| MiguelQuiros | y también puede resultar interesante bajarse el plugin para nuestro programa de correo electrónico. |
| MiguelQuiros | Hay enlaces desde www.gnupg.org a las páginas de los plugins. |
| MiguelQuiros | En 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 |
| MiguelQuiros | aunque 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). |
| MiguelQuiros | La 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. |
| MiguelQuiros | El sistema me pregunta mi nombre, mi correo electrónico, si quiero añadir algún comentario (se puede dejar en blanco) |
| MiguelQuiros | y 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). |
| MiguelQuiros | Y lo más importante: la passphrase que va a proteger mi clave secreta. Recuérdese todo lo dicho anteriormente. |
| MiguelQuiros | El sistema tarda un cierto tiempo en generar las claves. |
| MiguelQuiros | Para 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. |
| MiguelQuiros | Al final del proceso se habrán creado "los dos anillos". |
| MiguelQuiros | El 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. |
| MiguelQuiros | Ya puedo comunicar mi clave pública al mundo, para eso primero debo exportarla a un fichero. La orden es: |
| MiguelQuiros | gpg --export -a micorreo@servidor.es > miclave |
| MiguelQuiros | Se crea el fichero ASCII miclave que contiene mi clave pública. Puedo distribuir este fichero en la forma que estime oportuna. |
| MiguelQuiros | Esto lo puedo hacer con cualquier clave contenida en el anillo público, no solamente con la mía: |
| MiguelQuiros | gpg --export -a fulanito@ordenador.com > otraclave. |
| MiguelQuiros | Obsé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. |
| MiguelQuiros | Esta 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. |
| MiguelQuiros | Una clave exportada de esta forma lleva adjuntas de forma automática todas las firmas que tuviera asociadas en mi anillo público. |
| MiguelQuiros | Se puede exportar a un mismo fichero más de una clave e incluso el anillo público completo. |
| MiguelQuiros | Para añadir a mi anillo público la clave o claves que vengan incluidas en un fichero el comando es: |
| MiguelQuiros | gpp --import ficherodeclaves |
| MiguelQuiros | Se añadirán al anillo público todas las claves que vengan en el fichero con todas las firmas que traigan avalándolas. |
| MiguelQuiros | También se pueden añadir por este sistema nuevas firmas que avalen claves que ya estuvieran presentes en el anillo público. |
| MiguelQuiros | Para obtener un listado de todas las claves contenidas en un momento dado en mi anillo público podemos poner gpg --list-keys. |
| MiguelQuiros | Si quiero ver qué firmas avalan la clave pública de alguien podemos poner |
| MiguelQuiros | gpg --list-sigs fulanito@ordenador.com |
| MiguelQuiros | Para ver la huella dactilar correspondiente teclearé |
| MiguelQuiros | gpg --fingerprint fulanito@ordenador.com. |
| MiguelQuiros | Para ver la huella dactilar de mi propia clave y apuntarla para comunicársela a otras personas para que puedan verificarla la orden es |
| MiguelQuiros | gpg --fingerprint micorreo@servidor.es |
| MiguelQuiros | Si quiero sacarla directamente por la impresora, puedo añadir | lpr al final. |
| MiguelQuiros | Si he verificado perfectamente la clave de otra persona de la forma indicada con anterioridad y quiero avalarla con mi firma debo poner |
| MiguelQuiros | gpg --sign-key fulanito@ordenador.com. |
| MiguelQuiros | Dado que voy a hacer uso para ello de mi clave secreta, el programa me pedirá la passphrase que la protege. |
| MiguelQuiros | Hasta 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. |
| MiguelQuiros | Existen diferentes opciones para firmar un fichero con nuestra clave secreta (las podéis consultar en el manual). Personalmente recomiendo las siguientes: |
| MiguelQuiros | Para un fichero de texto: |
| MiguelQuiros | gpg --clearsign archivodetexto |
| MiguelQuiros | Esto crea un nuevo fichero de texto llamado archivodetexto.asc, que es el que debo transmitir al destinatario. |
| MiguelQuiros | La 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. |
| MiguelQuiros | La segunda parte del fichero es la firma, que puede ser verificada por alguien que tenga GNUPG y nuestra clave pública mediante |
| MiguelQuiros | gpg --verify archivodetexto.asc |
| MiguelQuiros | Para un fichero binario, recomiendo usar gpg -b nombrefile. |
| MiguelQuiros | Esto crea un archivo también binario llamado nombrefile.sig que lleva la firma (sin datos) separada del fichero de datos. |
| MiguelQuiros | En este caso, debo transmitir tanto el fichero original nombrefile como la firma nombrefile.sig. |
| MiguelQuiros | El destinatario que ha recibido ambos ficheros puede verificar igual que antes |
| MiguelQuiros | gpg --verify nombrefile.sig |
| MiguelQuiros | (El fichero firma se puede generar también en formato de texto si ponemos -ba en vez de -b). |
| MiguelQuiros | Muchos programas (por ejemplo el kernel de linux) se distribuyen junto con su firma digital creada de esta forma. |
| MiguelQuiros | Quien 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ó. |
| MiguelQuiros | Obsérvese que cada vez que voy a firmar algo, se utiliza mi clave secreta y que por tanto el programa me pide la passphrase. |
| MiguelQuiros | Para encriptar un fichero con la clave pública de Fulanito la orden es |
| MiguelQuiros | gpg -er fulanito@ordenador.com archivo |
| MiguelQuiros | (si queremos el fichero encriptado en ascii -ear en vez de -er) |
| MiguelQuiros | Se crea el fichero encriptado archivo.gpg. |
| MiguelQuiros | Este fichero no puede ser desencriptado por nadie (ni siquera por quien lo creó) excepto por Fulanito mediante su clave secreta. |
| MiguelQuiros | Fulanito debera ejecutar |
| MiguelQuiros | gpg --decrypt archivo.gpg > archivonuevo |
| MiguelQuiros | El programa le pedirá a Fulanito su passphrase y creará el fichero archivonuevo, idénticamente igual a al fichero original archivo. |
| MiguelQuiros | Si 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. |
| MiguelQuiros | No obstante, si lo que quiero firmar/encriptar/verificar/desencriptar son mensajes de correo electrónico |
| MiguelQuiros | y 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 |
| MiguelQuiros | Simplemente 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 |
| MiguelQuiros | Si 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. |
| MiguelQuiros | Los 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. |
| MiguelQuiros | El "estilo Eudora" consiste en firmar los mensajes haciendo uso de gpg --clearsign y encriptarlos como gpg --ear |
| MiguelQuiros | El 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. |
| MiguelQuiros | El "estilo Evolution" consiste en firmar los mensajes haciendo uso de gpg --ba y encriptar como en el caso anterior |
| MiguelQuiros | pero 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. |
| MiguelQuiros | Parece que los programas tipo "Evolution" no son capaces de reconocer automáticamente los mensajes firmados/encriptados estilo "Eudora" y viceversa. |
| MiguelQuiros | Por ejemplo, si mandados un mensaje firmado con Evolution a alguien que tiene Eudora/Outlook, incluso si tiene GNUPG y el correspondiente plugin instalados, |
| MiguelQuiros | solamente 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. |
| MiguelQuiros | Y 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----- |
| MiguelQuiros | o |
| MiguelQuiros | -----BEGIN PGP MESSAGE----- |
| MiguelQuiros | Si queremos verificar/desencriptar el mensaje tendremos que salvarlo a un archivo de texto y ejecutar GNUPG desde la línea de comandos. |
| MiguelQuiros | La 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. |
| MiguelQuiros | O deberían prever que el programa pueda firmar/encriptar con cualquiera de los dos estilos y verificar/desencriptar ambos. |
| MiguelQuiros | En 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: |
| MiguelQuiros | Crear el mensaje a enviar en un fichero (en el formato que sea). |
| MiguelQuiros | Firmar y/o encritpar el fichero en línea de comandos. |
| MiguelQuiros | Mandar el fichero firmado/encriptado como ataché de un mensaje. |
| MiguelQuiros | El 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). |
| MiguelQuiros | El destinatario debería descargar el ataché y verificar/desencriptar en línea de comandos. |
| MiguelQuiros | En resumen: en estos casos, hay que usar GNUPG en línea de comandos y no utilizar las facilidades del cliente de correo electrónico. |
| MiguelQuiros | De 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. |
| MiguelQuiros | Para 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. |
| MiguelQuiros | No 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. |
| MiguelQuiros | En todo caso, un abogado podría opinar sobre este asunto mejor que yo. |
| MiguelQuiros | Pues con esto, se me acaba el rollo. |
| MiguelQuiros | ¿Alguna pregunta para terminar? |
| bitland | tork: ¿Qué algoritmo de encriptación usa GNUPG? Gracias |
| MiguelQuiros | Buena pregunta. La verdad es que no conozco bien las especificaciones técnicas |
| MiguelQuiros | Me 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? |
| MiguelQuiros | Debes añadir tu nueva dirección a tus claves pública y privada |
| bitland | antes 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? |
| bitland | como podéis ver el turno de preguntas está abierto :) |
| MiguelQuiros | Que 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 |
| bitland | dijiste: 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? |
| MiguelQuiros | Los programas de correo electrónico se pueden configurar |
| MiguelQuiros | de forrma que "recuerde" la passphrase durante toda una sesión. |
| bitland | tork: Antes hablaste del nivel de confianza de las claves. Es necesario firmar una clave para cambiar su nivel de confianza? |
| MiguelQuiros | Creo que sí. |
| MiguelQuiros | Aunque no lo he verificado |
| bitland | <tar> No has hablado sobre el uso que Mozilla o Netscape hacen de gnupg ¿como lo tratan? |
| MiguelQuiros | Hay un plugin (creo que sirve el mismo) para los clientes de correo de Mozilla y Netscape |
| MiguelQuiros | Creo 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? |
| MiguelQuiros | En la página principal de GNUPG se dice que no se conoce hasta ahora ningún caso de haber roto una clave GPG |
| MiguelQuiros | Pero claro, si la CIA ha conseguido descifrarlas, no nos lo va a decir |
| MiguelQuiros | En 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 |
| bitland | se 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? |
| MiguelQuiros | Que yo sepa, no. |
| MiguelQuiros | Quizás muchos ordenadores trabajando en paralelo |
| tar | ¿alguna pregunta más? |
| MiguelQuiros | Si no hay más preguntas, muchas gracias a todos por vuestra atención |
| MiguelQuiros | Espero que hayáis aprendido algunas cosas. |
| tar | bueno, 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 |
| bitland | pla plas plas plas :), ya me he enterado de casi todo, lo mismo lo instalo un día de estos :) |
| --- tar sets mode -m #gcubo | |
| enlavin | plas plas plas plas plas plas plas plas plas plas |
| malglam | muy interesante :) |
| tar | de todos modos nos gustaria que se nos respondieran a algunas preguntas |
| tar | para mejorar las charlas |
| somebody_ | Mig, muy didáctico. |
| tar | las 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? |
| tar | Ruegos, sugerencias |
| tork | se pondran en la web de gcubo algun documento con la charla de hoy? |
| MiguelQuiros | Bueno, por mi parte. Muchas gracias de nuevo. Me voy a tomar una cerveza, para refrescarme la garganta :-) |
| tar | si |
| tar | se ha grabado el log |
| malglam | si, |
| enlavin | MiguelQuiros: juas |
| tork | un saludo Miguel |
| Gracias Miguel!, | |
| gracias Jeff. | |





