Taller de Criptografía - Informe 8

Ya está aquí: PGP 6.0 freeware



 


6 Septiembre 1998
Actualización: PGP 6.0.2i 10 Mayo 1999


Una vez más se demuestra que restringir el movimiento de programas por Internet es como intentar poner puertas al desierto. Antes siquiera de que Network Associates (NA) anunciase oficialmente la existencia de la novísima versión de PGP (6.0), el programa había ya cruzado la frontera en abierto desafío a las restricciones norteamericanas ITAR. El 3 de Septiembre de 1998, Wired News anuncia que una copia del programa se encuentra disponible en la página de Sam Simpson, en el Reino Unido. En dicha página se afirma que el programa fue remitido por correo electrónico de forma anónima. Por supuesto, el Departamento de Comercio de EEUU "no tiene constancia" de tal incidente.

La aparición de PGP 6.0 ha cogido por sorpresa a prácticamente toda la comunidad criptográfica, sobre todo a los que vivimos fuera de EEUU. En las últimas semanas circulaban rumores sobre una nueva versión 6.0 en los grupos de discusión (news) norteamericanos como sci.crypt, especulando sobre si contendrá puertas traseras, o si el código fuente será hecho público para escrutinio general, como en casos anteriores. Y, por supuesto, nadie esperaba que Network Associates se limitase a sentarse en los laureles.

El caso es que ya ha salido a la luz una nueva versión de PGP, la primera desde que PGP Inc. fue absorbida por Network Associates. Se trata de una copia freeware (gratis total), en dos versiones: Windows95 (5.5 MBytes) y Macintosh (6.7 M). Procedamos a destriparlo. He aquí una evaluación general del programa, comparado con la versión 5.5.3i, en su versión para Windows95 (es lógico suponer que habrá poca diferencia para los usuarios de Mac, pero no puedo asegurarlo personalmente).

Esta nueva versión contiene diferencias, algunas de ellas sustanciales, respecto a la 5.5.x, pero básicamente son iguales en un 90%, como se verá a continuación. El hecho de que Network Associates siga formando parte de una asociación que favorece el depósito de claves ("escrow"), y de que en general ahora mande la ley de mercado generará, no hay duda, mil y un debates. Bueno, ya hemos visto esto antes. ¿No sucedió así cuando se dio el paso a Windows95 con la versión 5.0? Pero antes de esto resulta necesario estudiar el programa en sí. ¿Es mejor? ¿Hay muchas diferencias? ¿Son para mejor, o no pasan de un lavado de cara? Abramos la caja de las herramientas, y vamos allá.


Detalles iniciales

La estructura del programa PGP 6.0 es similar a la de su antecesora, PGP 5.5.x. Consta de tres programas principales: PGPkeys, PGPtools y PGPtray, así como de su extensión para el Explorador de Windows, complementos [plug-ins] para programas de correo electrónico como Eudora y Outlook Express 4, y compatibilidad con Outlook 98. Permite cifrar, y ver descifrados, documentos en formato HTML para Eudora 4.0.x (para Exchange/Outlook, traduce los documentos a formato texto antes de cifrar), es compatible con la norma PGP/MIME (Eudora 3.0.x, 4.0.x), y permite cifrar y descifrar archivos adjuntos (excepto en Outlook Express, que no permite el cifrado). PGPkeys incorpora una barra de herramientas, y el menú de PGPtray incorpora una opción de "Usar ventana actual". Esto resulta especialmente útil si deseamos cifrar, digamos, una página de documento escrita en WordPerfect: en lugar de copiar y pegar al portapapeles, se puede usar la ventana mostrada en ese lugar para el cifrado/descifrado/firmado/verificado. Por desgracia, esta opción no funciona en todos los programas. Puede probarse usando WordPad, por ejemplo.

Se puede apreciar un ligero cambio en los iconos. Bueno, puede que quede así más bonito, o simplemente que se pretenda dar una imagen de producto diferente. Por supuesto, el logotipo de Network Associates domina el panorama (lo veréis durante la instalación o la creación de claves). Pero puestos a mejorar... en la versión PGP 5.5.x, por alguna razón, el programa hace una copia de los archivos de claves cada vez que los usa. El problema es que no borra las copias antiguas, lo que hace que uno se encuentre fácilmente con cincuenta archivos tipo secring-bak-1.skr, secring-bak-2-skr, etc. ¿Podéis creeros que ese bobo fallo sigue presente en la nueva versión? Como contrapartida, ahora las claves pueden incluir, no solamente IDs de usuario o firmas de otros, sino también una fotografía (opcional) del dueño de la clave, en formato BMP o JPEG. Por fin podéis ver la cara de Phil Zimmermann.


Claves RSA: no hay respeto

Efectivamente: la posibilidad de generar o administrar claves RSA vuelve a desaparecer. Esto era también una característica de la 5.5.5 (freeware). Es posible que se deba al carácter gratuito de la versión, de modo que probablemente PGP 6.0 comercial permitirá usar indistintamente ambos tipos de clave. Irónicamente, el archivo de ayuda dice "RSA está disponible solamente en versiones de PGP que admitan RSA" Toma, y el airbag solamente está disponible en los coches que incorporen airbag. Graciosillo, estos chicos de NA. Por lo pronto, tendremos que esperar a que Schumacher vuelva a importar el código fuente, recompilarlo y añadirle la opción de claves RSA. Lástima. Pero las claves Diffie-Hellman tienen variaciones muy interesantes. Vean.


Claves Diffie-Hellman: pieza a pieza

Las claves conocidas como Diffie-Hellman (DH) tienen en realidad dos partes: la Diffie-Hellman propiamente dicha, para cifrado de datos, y la DSS (Digital Signature Standard) para firmado. Las claves que se generan, tanto para 6.0 como para 5.5.x, tienen una clave de firmado (DSS) de 1024 bits, y una clave de cifrado (DH) de entre 768 y 4096 bits. Hasta ahora, todo venía en un solo paquete; esto es, no podíamos separarlas ni operar con ellas independientemente. Esto encerraba un peligro potencial para la intimidad de las personas. Las claves no solamente permiten confidencialidad sino autentificación. Supongamos, se decía, que un juez me obligase a entregar mi clave para descifrar unos archivos. Al hacerlo, entrego también el privilegio de firmar digitalmente documentos. ¿Y si el secretario del tribunal hace una copia y se hace pasar por mí? Es como si, para que la policía pueda ver mi correo, yo tuviese que entregar mi llavero completo, que además de la llave del buzón contiene la de mi casa, la del coche, la de mi casa de campo, etc.

Quizá con esa idea en mente, las claves DH son ahora más "separables." Siguen funcionando como hasta ahora, pero ahora se considera que una DH consta de dos partes: una "clave maestra" utilizada para la firma digital (DSS) y una o varias sub-claves para el cifrado (DH). Las subclaves de cifrado pueden revocarse independientemente sin que la clave de firma pierda validez. ¿Tengo que cambiar mi clave de cifrado? Bien, no hay problema, puesto que sigo usando la misma clave maestra para firmar. Una posibilidad muy útil consiste en hacer diferentes sub-claves de cifrado con diferentes fechas de caducidad. Cuando la primera sub-clave caduca, la segunda entra en juego, y así sucesivamente. Esto resulta equivalente a cambiar periódicamente de clave de cifrado. Todo ello sin tener que cambiar de clave de firmado. Y, por supuesto, también puede crearse una clave solamente para firmar: basta con eliminar las sub-claves para cifrado.

En cuanto a la clave de firmado, tiene una interesante opción de caducidad. Yo puedo firmar la clave de otra persona, para dar fé de ella. Hasta aquí, todo igual. La novedad consiste en que yo puedo hacer que esa firma caduque tras un cierto período de tiempo. Esto puede ser útil cuando solamente se quiere garantizar la validez de una clave durante un cierto tiempo. Por ejemplo, el jefe de mi empresa puede firmar mi clave de forma que, al terminar mi contrato, la firma quede anulada. De ese modo, evita que yo vaya por ahí el resto de mi vida presumiendo de la confianza otorgada por la empresa. Es una especie de pase temporal.

Parece mentira la de cosas que se pueden hacer con una clave. Pero hay más. Uno de los problemas con los que se encuentran los usuarios es que, si olvidan la contraseña o pierden la clave secreta, no pueden revocarla. La solución de PGP 6.0: designar un "revocador" Esto permite que un revocador B pueda revocar la clave de A, cuando éste ha perdido el control de ella. Por supuesto, esto requiere confianza. Si yo designo a mi primo de Zumosol como revocador, he de confiar en que él va a usar ese poder responsablemente, y que no va a revocarme la clave a las primeras de cambio. Supone, con todo, un concepto interesante. Pero si sigues fiel a la regla Mulder (no confíes en nadie), no permitas que nadie, ni Scully, actúe como revocador.


Compartiendo secretos

Recordemos la filosofía subyacente al concepto de clave corporativa, que ya se introdujo en la versión 5.5.3i. La idea es que, en ocasiones, un empleado puede ser incapaz de descifrar los documentos cifrados por él con anterioridad (sea por fallecimiento, despido, vacaciones, accidentes de tren, etc.). Para evitarlo, los documentos se cifrarían con una Clave de Descifrado Adicional (ADK), en poder del administrador de sistema o persona de confianza. Esta opción no está presente en la opción PGP 6.0 freeware. Pero sí hay algo interesante. Una clave puede "trocearse" o repartirse entre diferentes usuarios, mediante un proceso llamado separación de Blakely-Shamir. Solamente mediante la unión de un número fijado de trozos puede cifrarse o descifrarse un documento. Cada trozo está cifrado con la clave pública del usuario que va a custodiar dicho trozo.

Así, un padre puede dejar un poder notarial cifrado, y repartir los trozos de clave entre sus hijos, para que la usen en caso necesario. Puesto que es necesario el concurso de todos (o, al menos, el número N de hijos que el padre diga), no hay peligro de que el hijo encargado de la custodia del poder lo use para comprarse el Porsche que tanto deseaba, a expensas de la herencia familiar. Solamente podrá hacerse cuando cada uno de los N hijos des-cifre el trozo de clave (con su propia clave secreta). La re-unión de los trozos de clave puede hacerse físicamente (con el usuario presente), o mediante una conexión de red. En este caso se usa una implementación llamada TLS (Transport Layer Security, Seguridad de Transporte en Capas) para comunicaciones seguras. Según NA, es el sucesor del sistema SSL, usado en los navegadores de Internet. Ya veremos.



Comunicaciones seguras con los servidores

Uno de los puntos flacos del sistema de servidores de claves públicas es el de la seguridad. Cuando bajamos una clave, existe la posibilidad de que el maloso de turno nos haya engañado por medio de un "ataque de intermediario" (meet-in-the-middle) y dado una clave falsa. O puede que alguien esté simplemente observando qué claves estamos bajando. Si, pongamos por caso, un ciudadano indonesio se baja una clave perteneciente a la Asociación Timor Oriental Libre, puede tener problemas con sus servicios secretos caso de que éstos se enteren. Esto puede evitarse en un navegador por medio de la implementación SSL, pero ¿y en una comunicación entre nuestro programa PGP y un servidor de claves?

La solución, siempre según Network Associates, están en un análogo al SSL: el protocolo TLS. Mediante este sistema, las comunicaciones con el Servidor de Certificados de PGP estarán cifradas mediante clave simétrica de 128 bits, junto con protocolos de autenticación. Esto impedirá saber qué claves están siendo solicitadas por quién. También permite revocar o borrar las propias claves. Incluso se pueden buscar automáticamente claves para comprobar firmas. A envía un mensaje firmado a B, y éste tiene que bajar la clave pública de A desde el servidor de claves; ahora se puede hacer automáticamente.

Hay que recordar que solamente es válido, de momento, en el servidor ldaps://certserver.pgp.com. También hay que tener en cuenta que el protocolo TLS es reciente y aún tiene que pasar la prueba del tiempo para demostrar su validez. Y finalmente, no es por meter miedo, pero solamente tenemos la palabra de Network Associates sobre que este sistema funciona y es a prueba de fallos. Si aprovechan la ocasión para "escamotear" una copia de nuestras claves privadas y se las regalan al FBI o a la NSA, es algo que no podemos saber. Como en toda novedad criptográfica, esperemos a ver.



Borrado seguro: ahora sí.

Como ya sabréis, la opción Wipe [borrado seguro] de la versión 5.5.x ha resultado no ser segura en absoluto. El programa efectúa una sola sobreescritura sobre el archivo a borrar. Salvo errores de implementación de última hora, parece que esto ha sido resuelto. La opción Wipe de PGP 6.0 permite sobreescribir un archivo hasta 32 veces. Se supone que las pasadas de sobreescritura se deben realizar con patrones de bits "criptográficamente fuertes", esto es, que no tengan propiedades estadísticas sobre las que un atacante se pueda apoyar para extraer información. No se detalla gran cosa en la documentación de PGP, aunque se sugiere que las pasadas son las adecuadas para borrado seguro. En cualquier caso, treinta y dos pasadas son muchas pasadas. Habitualmente se recomiendan unas tres pasadas de borrado para archivos de valor comercial y 8-9 para información de tipo militar.

También hay una interesante novedad: una opción de borrado seguro del espacio libre en un disco. Ya sabréis que en el espacio libre del disco puede haber información que creíamos eliminada: archivos temporales borrados, antiguos segmentos del archivo de intercambio, etc. En PGPtools aparece dicha opción. La documentación afirma que borra también las regiones llamadas de "espacio residual" [slack space], zonas al final de un archivo donde puede esconderse información de otros datos anteriormente borrados. Si es así, resulta un interesante añadido a PGPtools. Personalmente, no puedo confirmar que sea así en realidad.



Compatibilidad con PGP 5.5.3i

Con tantas modificaciones, raro sería que PGP 6.0 fuese totalmente compatible con versiones anteriores. En PGPkeys\Preferences\Advances se da la posibilidad de elegir qué formato tendrán los archivos de claves cuando sean exportados. Puede hacerse "completo" (para intercambiar con otros usuarios de PGP 6.0), o "compatible", en cuyo caso algunas de las opciones de la clave desaparecen: por ejemplo, la foto. Esto permite compatibilidad "hacia abajo": las versiones 5.5.x podrán usar las claves de la 6.0

La compatibilidad "hacia arriba" está asegurada para las claves Diffie-Hellman. Esto es, una clave DH generada con PGP 5.5.x podrá ser usada por un usuario de PGP 6.0. Esto no sucede con claves RSA. Probablemente, como dije anteriormente, se deba a que la versión que aquí se comenta es la gratuita. También las versiones 5.0 y 5.5 freeware carecían de esa posibilidad.


Evaluación

Personalmente, me encuentro cómodo con algunas de las nuevas posibilidades de PGP 6.0. Otras, por el contrario, resultan poco útiles en la práctica para un usuario particular.

Me gusta, para empezar, la posibilidad de poder actuar directamente sobre una ventana cualquiera, y no solamente mediante el portapapales. El hecho de que PGP fuese originariamente diseñada para aplicaciones de correo electrónico no elimina su utilidad para el cifrado de cualquier tipo de datos, no solamente los que se escriben en Outlook o Eudora. También resulta invalorable la mejora de la opción de borrado seguro, incluyendo el borrado del espacio libre de disco. La mejora en la seguridad de las comunicaciones programa-servidor es asimismo bienvenida, aunque queda por ver si acabará imponiéndose en el resto de servidores de claves. Y, si no importa introducir una potencial falla de seguridad confiando en alguien que no sea uno mismo, resulta asimismo bueno el concepto de revocador de claves.

Otras opciones, aunque valiosas, no serán tan utilizadas. Queda muy bien el poder separar las opciones de firmado y de cifrado en las claves Diffie-Hellman, pero queda por ver si los usuarios desearán complicarse la vida con ello cuando todo lo que desean hacer es usarla y punto. El sistema de comunicaciones TLS incorpora más seguridad, pero a expensas de tener que atarse a un solo servidor de claves. Y la opción de troceado de claves, aunque muy cómoda para ciertas aplicaciones, no suele usarse tanto en entornos personales, no-empresariales.

De hecho, existen alternativas para la mayoría de estas nuevas opciones. Personalmente, me he acostumbrado a hacer "limpieza" segura de mi disco duro con programas tales como BCwipe o Shredder (y, sin ánimo de ofender a Network Associates, PGP no fue diseñado para seguridad informática integral). No usaría mucho la opción Usar Ventana Actual, ya que normalmente cifro, o bien los archivos desde el Explorador de Windows, o bien el texto que escribo en mi programa de correo electrónico. Y, para no tener que confiar en un revocador, basta con hacer una copia de la clave secreta, revocarla y guardarla bien en un disquete con cifrado simétrico.

En el apartado de lo que no hay, me hubiese gustado ver nuevas opciones para cifrado en clave simétrica. Los algoritmos entre los que se puede ahora elegir (IDEA, CAST, TripleDES) podrían ser complementados con otros. Pienso por ejemplo en el eficaz Blowfish, de Bruce Schneier, o en el ruso GOST. Asimismo, si se puede elegir el tipo de cifrado simétrico, ¿por qué no permitir lo mismo con los algoritmos resumen [hash] usados para formar las firmas digitales? La principal crítica hoy día contra el uso de claves RSA (a saber, el hecho de que su función resumen MD5 tiene ciertas debilidades) desaparecería si se pudiesen utilizar algoritmos de resumen alternativos como SHA-1 o RIPEMD. Seguro que el lector piensa en algún detalle que podría haberse incluido u omitido.

El hecho de que, como digo, muchas de las nuevas opciones no vayan a ser tan usadas en la práctica; que la versión 6.0 freeware proscribe el uso de las antiguas claves RSA; y que contemos con la ya de por sí excelente versión 5.5.3i de Schumacher, me predispone en contra de recomendar el uso inmediato de PGP 6.0 freeware. Con un poco de tiempo, Schumacher (esperemos) recompilará una versión internacional, con (de nuevo esperemos) compatibilidad con claves RSA. Entretanto, prefiero esperar a que a) los expertos acaben de examinar la nueva versión a fondo (lo que incluye ver si la empresa pondrá a disposición general el código fuente), b) la comunidad de usuarios se pronuncie al respecto y c) a la luz de todo ello veamos si finalmente nos conviente, o si por el contrario no merece la pena. De momento, PGP versión 5.5.3i es lo bastante buena para mí. Por supuesto, es mi opinión. Descarga, instala y opina. Y si encuentras algo mejor... !corre la voz, hombre!




Actualización: PGP 6.0.2i 10 Mayo 1999

Poco tiempo tardó Schumacher en recompilar la nueva versión 6.0. Ya se puede obtener en la Página Internacional de PGP una copia Internacional, denominada PGP 6.0.2i. Tiene, como de costumbre, leves diferencias respecto a la versión gratuita USA. La más notable es la incorporación de PGPdisk, una aplicación diseñada para crear zonas cifradas en el disco duro. Así podremos mantener encriptados nuestros archivos sin tener que cifrarlos de uno en uno. Básicamente, crea una unidad de disco virtual (algo así como una partición cifrada), al estilo de programas como BestCrypt o Scramdisk. Es una opción que aparecía en el paquete PGP for Personal Security (de pago), pero no en la versión gratuita (freeware). No entraré aquí en las ventajas o inconvenientes de PGPdisk respecto a otros programas.

Por desgracia, nuestro noruego favorito ha vuelto a combinar una de cal y una de arena. La nueva versión 6.0.2i no permite crear claves RSA. !Ya estamos como con la vieja versión 5.0i! Recordemos que la recompilación de la versión 5.5.3i permitió activar la opción para la generación de claves RSA. Sin embargo, la novísima versión prohíbe dicha generación, tanto en la versión gratuita USA como en la Internacional. Esto no supondrá inconveniente a los usuarios habituales de claves RSA, pero sí a los que necesiten o deseen crear una nueva clave RSA.

Personalmente, sigo prefiriendo la eficiente versión 5.5.3i. Los motivos técnicos, a favor y en contra, de la 6.0.2i, ya han sido delineados anteriormente. En mi "personalmente" influye, por supuesto, el hecho de que siempre he preferido el uso de software antiguo y bien probado, antes que las aventuras del novísimo programa con muchas opciones nuevas .. y algunos fallos de programación escondidos. En eso suelo seguir aquel proverbio usamericano que dice "si no está roto, no lo arregles"

Con todo, el ciberespacio es lo bastante grande para ambas versiones. ¿Desea utilizar las nuevas opciones de disco cifrado, separación de claves, borrado seguro, comunicaciones seguras con el servidor de claves? Pues use la nueva versión. ¿Es usted de los que no se fían de los nuevos productos de Network Associates, necesita crear claves RSA o simplemente se encuentra cómodo con la vieja versión 5.5.3i? Pues siga usándola, y disfrútela. En ese sentido, soy optimista. La pugna de "PGP 5.5.3i o PGP 6.0.2i" no tiene sentido, toda vez que ambas versiones son buenas y útiles.

Un aviso a los usuarios de la nueva versión, y sin ánimo de meter miedo. Se han detectado errores y fallos de funcionamiento con Outlook Express. Pueden consultarse los detalles, y algunos consejos útiles, en los boletines de Kriptópolis 101 y 107. Tambíen se ha informado de problemas con Eudora 4.1 (boletín 108). Espero que Network Associates no siga la filosofía "no se preocupe, lo arreglaremos para la próxima versión", o no habrá quien me saque de mi vieja versión. Eso por no hablar de los incombustibles usuarios de PGP 2.6.3i... que haberlos haylos.

 


© Arturo Quirantes 2005.  Correo electrónico: aquiran arroba ugr.es


 

Vuelta a la sección Informes del Taller de Criptografía