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