Estas aquiContenido / PGP, "casi inexpugnable" para la Guardia Civil

PGP, "casi inexpugnable" para la Guardia Civil


Poradmin- Publicado el22 Enero 2009

Otro artículo más (y van unos cuantos en pocas semanas) sobre lo peligroso que resulta que un sistema de cifrado "casi inexpugnable" para la Guardia Civil pueda descargarse libremente desde Internet.

Pensé que esa polémica quedó finiquitada en 1996 (cuando se desestimó la investigación puesta en marcha contra su autor por difundirlo), pero ya veo que me equivoqué.

En medio de la habitual confusión periodística entre claves y contraseñas (joer, tiene su mérito que un etarra sea capaz de retener su "clave privada" en la cabeza), puede sacarse del artículo algún detalle (cierto o no, pero al menos curioso) sobre el tipo de contraseñas que presuntamente utilizan los terroristas.

Etiquetas

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).
anónimo's picture

Puedes tener tu clave guardada en algún pendrive por ejemplo con un ext3 encriptado, y el archivo encriptado también con una contraseña relativamente potente.

Sería muy difícil que encontrasen el pendrive.

Por poner un ejemplo sencillo.

Además ese archivo, incluso en un windows podría estar camuflado dentro de alguna dll aparentemente del sistema, como hacen algunos virus.

Vamos, que se me ocurren muchas maneras de no memorizar la clave y que sea difícilísimo encontrarla.

bledEX's picture

Acabas de describir la combinación de estos dos programas, tal vez sin saberlo, por eso lo digo. El otro día lo estuve probando, no es cómodo (comodidad!=seguridad), pero tiene sentido y se puede enrevesar mucho el acceso a los llaveros.

Aunque creo que tú hablas de tener guardada la clave en el ordenador, aunque espero que no te refieras a la contraseña, porque eso de por sí es bastante arriesgado. En la cabecita está a buen recaudo. Tengo varias llaves y a veces alguna contraseña se resiste, pero mejor tenerlas en la cabeza a en ningún otro sitio.

Una cosa, me ha parecido curioso, aparte de la mezcla de conceptos tan ilógica que han plasmado, que en el artículo pongan un link a pgpi.org en vez de pgp.com. Si nos vamos a hacer "bien" el artículo, es raro que no hayan mencionado a quien está desarrollando PGP, que van ya por la versión 9 y pico y en pgpi no han actualizado desde la 8.0.

anónimo's picture

Te refieres a desarrollos distintos del mismo paradigma: mientras pgpi es una versión libre que proviene del código liberado por Zimmermann hace años, el PGPDesktop de PGP Corp. (pgp.com) es una versión de pago de la cual solamente puedes descargarte una versión de prueba.

anónimo's picture

Nadie sabe exactamente cómo trabaja el Windows (es de código cerrado), por lo que no creo que sirva para propósitos de alta seguridad: Nunca podrías llegar a tener la certeza de que una copia de tu clave privada no ha quedado en el archivo de paginación.

Creo que para esos propósitos es más seguro Linux, alguna versión modificada, por ejemplo.

anónimo's picture

Pues aquí uno que acaba liado con tanta llave y tanta leche. No me queda claro cual es la relación entre llave pública, llave privada y contraseña o clave. ¿A partir de la contraseña se obtiene la pareja de claves, o cómo?

Por ejemplo, si tuviesen acceso a la llave pública y la llave privada, pero no tuviesen la contraseña, ¿se podrían acceder los datos, o al menos, facilitar el acceso más rápido mediante fuerza bruta?

Llaves públicas he visto por todos lados, pero... ¿la llave privada la guarda el programa en el propio disco duro y sin protección alguna? Porque si es así, y suponiendo que teniendo la clave privada tuviésemos acceso a la información, hablaríamos de que tener acceso físico al disco sería tener acceso a la información.

Por otro lado... ¿realmente es público el código fuente completo de todas las aplicaciones de PGP? Porque una cosa es que haya partes para ser estudiadas libremente, y otra cosa es que el código fuente al completo esté liberado y puedas compilarlo tú mismo. ¿Se puede compilar?

Y por último y para ver la confianza de la gente en PGP... ¿confiaríais vuestra vida en PGP, o preferirías utilizar GPG para asimétrico y TrueCrypt u otros para cifrado simétrico?

anónimo's picture

El sistema de criptografía asimétrica, resumido, funciona de la siguiente manera:

Para cada extremo de la comunicación necesitamos una "identidad". Para cada "identidad" necesitaremos un par de claves: una pública y una privada. Las claves pública y privada están relacionadas entre sí (por el algoritmo que se use) y se crean a la hora de crear la "identidad".

La clave pública se utiliza para cifrar los mensajes y para verificar las firmas digitales.

La clave privada se utiliza para descifrar los mensajes y para realizar firmas.

Dado que el descifrado y la firma (operaciones que implican integridad del mensaje y por tanto son sensibles) dependen de la clave privada, esta es la que es personal e intransferible, no debe enviarse nunca por ningún medio.

El poner a disposición universal nuestra clave pública no nos compromete, puesto que con ella lo único que puedes hacer es cifrar mensajes para su clave privada relacionada y verificar firmas. No se puede descifrar o firmar los mensajes con esta clave.

Como muy bien reseñas uno de los problemas es que, si se consigue la clave privada, es posible descifrar los mensajes y firmar como si fueses el propietario legítimo de la "identidad". Así, si alguien tuviese acceso al sistema en el que reside la clave privada, podría descifrar/firmar el contenido sin problemas. Para solucionar el problema la clave privada se cifra con un sistema de cifrado simétrico, de manera que lo que hay en el sistema no es tu clave privada, para obtener tu clave privada real antes debes eliminar ese cifrado simétrico, que es lo que sucede cuando introduces esa "passphrase" que te pide la aplicación.

Así, lo que está sucediendo realmente es que la Guardia Civil sí tiene acceso a las claves privadas cifradas de los etarras, pero éstas están cifradas y deben aplicar fuerza bruta sobre ellas para obtener la clave privada real y así poder descifrar el contenido.

Espero que esto te haya ayudado un poco más a comprender el sistema de funcionamiento.

Supongo que ahora surgirán las dudas de cúal es la relación entre la clave pública y privada y si es posible utilizar la clave pública para intentar averiguar cual es la privada. En principio, si el diseño del algoritmo utilizado es decente, esto no es posible, en cualquier caso depende del algoritmo específico que se haya utilizado.

anónimo's picture

El mundo de la criptografía de clave pública es ya de por si un poco enrevesado para la mayoría de los usuarios, si a eso sumas la desinformación, y el circo que es PGP ( ahora explicaré por qué ) lo más normal es que te encuentres totalmente perdido.

El modelo de funcionamiento básico de un sistema de clave pública/privada ( asimétrica ) es el siguiente: Existen 2 claves, una pública ( que es la que se coloca visible a "todo el que quiera comunicarse contigo" ) y otra privada ( que es la que guardas tú ) y tiene dos propósitos: DESCIFRAR lo que te envíen y FIRMAR lo que envías ( con el propósito de autentificar cualquier documento ). Como apunte: todo lo que a tí te envían, va cifrado haciendo uso de tu clave pública, y la única forma de descifrarlo es mediante el uso de tu clave privada. La inversa es que cuando tú mandas algo, lo cifras con la clave pública del destinatario ( que evidentemente "sólo" puede ser descifrado con su clave privada ).

A poco que lo pienses, este modelo tiene una "debilidad" inherente: "la clave privada". Debido a que la criptografía asimétrica necesita una longitud de clave mucho mayor ( para ofrecer una robustez similar ) las claves no pueden ser memorizadas, puesto que están formadas por una ristra muy considerable de bytes, de tal forma que se almacenan como ficheros.

¿Qué se hace para que en caso de que la clave privada sea interceptada ( robo del pc, o similar ) no puedan ser descifrados los mensajes? Pues cifrar la clave privada con un algoritmo simétrico, como por ejemplo AES, con una contraseña "memorizable", como por ejemplo "3st4@@3s@@m1@@cl4v3@@d3@@pgp".

Como ves aquí el problema pasa por "adivinar" la passphrase con la que se ha cifrado la clave privada. El ataque en estos casos es "la fuerza bruta", o un subconjunto de este mediante diccionario. ¿Dónde radica entonces la debilidad?. En que el usuario haya usado en vez de una contraseña como la descrita anteriormente otra como "12345". En ese caso, el ataque por fuerza bruta surtirá efecto ( en muy poco tiempo ), y la clave privada será recuperable.

La segunda parte de tu pregunta, tiene que ver con la historia de PGP, que para tener un poco más de 15 años, ha dado para muchos capítulos.

¿Realmente es público el código fuente de todas las aplicaciones PGP? La respuesta directa es NO.

Te cuento muy resumidamente la historia de PGP para que más o menos te hagas una idea. Originalmente, en los albores del tiempo hubo un PGP, el 2.3 ( si mal no recuerdo ) que fue GPL ( aka. lo libre de lo libre ). Después PGP dejó de ser GPL y pasó a ser freeware para uso "no comercial". El código fuente estaba disponible para consulta, y podías usarlo "sin modificación" con fines no comerciales.

Cuando esto pasó, multitud de gente optó por coger el código fuente de PGP 2.3, y hacer sus propias versiones, así aparecieron "u version" de PGP, basadas en PGP 2.3, y con features muy chulas, como las versiones "uig" con soporte hasta 8192 bits de clave asimétrica.

Por otra parte, PGP siguió haciendo negocio, las versiones 2.x ( feas y en modo texto ) dieron paso a nuevas versiones (5,6 7 y 8), que mantuvieron el criterio de "hacer negocio" de forma moderada. Estas versiones se han caracterizado por mantener el modelo "freeware" para uso no comercial, y "de pago" con fines comerciales. El código fuente de las mismas ha estado disponible para "revisión" en algunas versiones, y en otras no. Es decir, expertos podían consultar el código "para buscar fallos", de eso a que el binario que tú descargas sea el mismo código, va un abismo.

Esto ha sido así hasta la versión 8, la versión 9, ha traído muchas modificaciones, la aparición de nuevo software, enfoque a servidores, etc, etc. Y el cambio más significativo: sobre esta versión todo lo que hay es comercial y/o TRIAL ( de prueba ), ha desaparecido la versión freeware. El código, de algunos aplicativos de la versión 9 se sigue ofreciendo "para revisión", el de otros no.

Y eso es lo que hay ... en mi opinión, para el usuario final, PGP es un software de los 90, hoy en día PGP no es ni lo suficientemente transparente, ni accesible, como para que GPG/TrueCrypt ofreciendo las mismas funcionalidades al mejor precio ( aka. 0 euros ) no sean usados de forma preferente. Para entornos corporativos, habría que ver exactamente qué valor añadido aportan las versiones Server y si esa funcionalidad no puede ser lograda en tiempo razonable usando otras alternativas.

LlamameX's picture

Teniendo la clave privada deberías ser capaz de decodificar todo lo que se codifica con la pública. La contraseña es sólo el método con el que el ordenador donde se ha instalado PGP protege el acceso a esa clave privada.

Es decir, que las dificultades de las que habla el artículo serían las mismas que si la Guardia Civil no hubiera pillado ningún PC y sólo hubiera interceptado los mensajes. Teniendo acceso a los PCs tiene además la posibilidad de atacar el programa (romper la contraseña) para averiguar la clave privada y con ella descifrar los mensajes.

Como ya han dicho por aquí en el artículo se mezclan churras con merinas. De ahí esos 2048 bits en euskera antiguo.

Aescalera's picture

Hola, a ver si te lo aclaro un poquito.

La clave pública y la clave privada están relacionadas. Este tipo de algoritmos se basa en que es relativamente sencillo el generar una pareja de números muy grandes (por lo tanto bastante improbable de que se pueda encontrar al azar) de tal manera que la operación matemática que se efectúa con uno de esos números solo se puede "deshacer" con la otra.

Imagínate un ejemplo muy malo, la división. Si el encontrar el inverso de un número fuese extremadamente difícil, podría servir un número y su inverso como clave privada/pública. Así el cifrado consistiría en multiplicar "algo" (el mensaje) por la clave pública, y el descifrado multiplicarlo por su inverso (la clave privada).

Por último la contraseña. Como la clave privada es un número muy grande, es bastante difícil que alguien se la pueda saber de memoria (y también un coñazo el tener que teclearla cada vez que la necesites utilizar), por eso es necesario almacenar esta clave privada protegida, y esta protección se realiza (si la clave privada se guarda en un fichero del ordenador), cifrando la clave privada a su vez con algo que se pueda deducir de la contraseña.

Espero haberme explicado bien, saludos

anónimo's picture

Vaya, qué gran cantidad de explicaciones. Gracias a todos =D

La mayoría de los conceptos los tenía claros, pero...

    Para solucionar el problema la clave privada se cifra con un sistema de cifrado simétrico, de manera que lo que hay en el sistema no es tu clave privada, para obtener tu clave privada real antes debes eliminar ese cifrado simétrico, que es lo que sucede cuando introduces esa "passphrase" que te pide la aplicación.

¡...Esto era lo que necesitaba! Entonces la clave privada está protegida mediante cifrado simétrico, de tal forma que no tenemos que aprendernos ese pedazo de clave de chorrocientosmil caracteres.

Yo no acababa de entender la relación entre la clave privada y la contraseña, e incluso había llegado a pensar que la clave privada estaba formada por la "clave + contraseña". Ahora entiendo exactamente qué es lo que pasa.

    Es decir, expertos podían consultar el código "para buscar fallos", de eso a que el binario que tú descargas sea el mismo código, va un abismo.

Entonces supongo que básicamente el código de revisión será un código parcial, así que nadie se puede fiar demasiado. Si el código de revisión fuese completo podrías compilarlo en casita, aunque sea sin autorización, y comprobar que el resultado es el mismo.

Por lo demás, y teniendo ahora las cosas más claras, estoy de acuerdo en dar preferencia a Truecrypt + GPG.

    Imagínate un ejemplo muy malo, la división.

No hace falta, creo que esta parte sí la tengo entendida. ¿Te refieres al hecho de que la criptografía asimétrica se basa en teoría de grandes primos y el enorme costo de cómputo que supone intentar factorizarlos?

Por cierto, ¿alguien conoce y/o usa algún sistema de cifrado de disco completo como truecrypt en Linux? Conocí a un chaval en la universidad que tenía protegido el portátil en el que tenía su proyecto fin de carrera, de tal forma que para encenderlo tenías que meter su llave usb más la contraseña. ¿Alguien sabe cómo funciona eso?

Patrocinadores

Cómo patrocinar

Kriptópolis alojado en:
Zilos-Veloxia Network 

Tu mejor defensa:
Bufet Almeida

Test de Intrusión Online:
Security Guardian