30 jun 2008

Problemas criptográficos en Firefox 3

Si algo trae un nueva versión de un programa, son fallos de
programación. A despecho de todos los meses de betatesters, de pruebas
intensivas y de mirar cada línea de código con atención, la complejidad
del software actual hace casi inevitable la aparición de bichos. Esto es
lo que ha sucedido con Firefox, que recientemente lanzó su versión 3. A
los usuarios habituales de Firefox, no tengo que contaros nada, y a los
de Internet Explorer os sugiero que penséis en cambiaros al zorro rojo.
Hecha esta sugerencia, tenemos que centrarnos en algunos problemas de
seguridad que se han conocido recientemente.

Uno de los primeros errores concierne el modo en que Firefox3
maneja los fallos de seguridad en las conexiones seguras. Ya hemos
hablado más de una vez de lo que es un certificado digital, y de cómo a
veces hay mucha diferencia entre teoría y práctica. Cuando intentamos
una conexión cifrada SSL, hay muchas cosas que pueden fallar. Las más
habituales son que el certificado digital que nos envían esté caducado o
que haya sido firmado por una autoridad de certificación (AC) que el
navegador no reconozca. O puede haber fallos aparentes en el nombre del
dominio. Supongamos, por ejemplo, que usted quiera conectarse con
webmail.micuenta.es. A lo mejor, resulta que el certificado está firmado
para esa web, pero luego acabamos en webmail3.micuenta.es. ¿Nos han
desviado a una web falsa, o es que micuenta.es tiene varias entradas
legítimas? En muchos casos, fallos de este tipo no significa que los
malos hayan interferido nuestras comunicaciones.

Para poder calibrar mejor estos problemas, Firefox3 (o FF3, como
escribiré a partir de ahora) utiliza un sistema de verificación
reigurosa llamado Extended Validation Certificate, EVC. El resultado se
muestra como un icono con varios posibles colores: gris (no hay datos de
identificación de la web), azul (web con identificación básica), verde
(web con identificación EVC completa), amarillo (algún problema con el
certificado, como que está caducado) y rojo (entre usted aquí si quieren
que le roben hasta los pelillos de la nariz). Puede usted, si le
interesa, visitar http://www.dria.org/wordpress/archives/2008/05/06/635/
para ampliar esta información.

El primer problema que trataremos aquí no es exactamente
criptográfico, sino social. Verán ustedes. Hay veces en que es útil
generar un certificado y firmarlo uno mismo. Se denomina "self-signed
certificate" (certificado autofirmado), y tiene en principio la misma
validez de cara al exterior que la que tendría un pasaporte que usted se
hiciese en casa con lápiz y bolígrafo. También puede usted obtener uno
en www.cacert.org, que viene a ser lo mismo. Hay aplicaciones legítimas
para estos certificados hechos en casa (una tienda online pequeña, una
web privada con acceso login, una intranet). El problema es que F3 da el
aviso amarillo. Realmente lo que está diciendo es "no consigo comprobar
si este certificado es válido o no", pero el sistema de aviso lo
equipara a un certificado caducado.

Es decir, el programa pone en el mismo saco certificados que
realmente son inválidos con certificados que no sabemos si son válidos.
Sería como decir que mi tarjeta de crédito no es válida porque el
supermercado no tiene conexión con el banco. FF3 permite hacer
excepciones y admitir como válida una conexión amarilla, en el supuesto
de que el usuario sabe lo que está haciendo. Pero el usuario medio, que
no entiende de tecnicismos y lo único que quiere es que las cosas
funcionen, se encuentra con un mensaje de "conexión no válida, cuidado
con esto" y se enfrenta a la alternativa de seguir adelante y que sea lo
que Dios quiera, o bien abandonar esa web. Como ven, se trata de un caso
en el que la cripto no falla, pero sí la interpretación que se hace de
sus resultados. Y es que una cosa es la encriptación, y otra la
autenticación.

Un segundo fallo, o al menos algunos lo identifican como tal, es
que FF3 no reconoce muchos emisores de certificados SSL. Dicho en otras
palabras, no tiene las claves públicas de las AC. Los usuarios de FF2
pueden verlos en Herramientas\Opciones\Avanzado\Ver certificados\
Autoridades. A mí me salen unas cincuenta. Según un post en barrapunto
(http://preguntas.barrapunto.com/preguntas/08/06/28/1933249.shtml), FF3
incorpora los de Thawte, Verisign y poco más. Esto, más que un fallo, es
un olvido. Por supuesto, hay lugares donde se pueden descargar (p. ej.
http://www.cert.fnmt.es/content/pages_std/certificados/FNMTClase2CA.cer
para los de la FNMT), pero ciertamente, vendría muy bien que FF3
incorporase más claves públicas.

Más preocupante es lo que nos cuenta Fernando Acero, cuyos
conocimientos criptográficos hacen honor a su apellido. Fernando nos ha
hecho partícipes a todos de su preocupación en un post en Kriptópolis
(http://www.kriptopolis.org/problema-firefox-3-certificados-digitales).
Vamos a ver si consigo explicarlo bien, porque Fernando es del tipo de
personas que se compra un coche, lo destripa y luego le envía al
fabricante una lista con sus quejas. En su caso, descubrió que no podía
ni importar ni exportar certificados. Ya vimos en el boletín del mes
pasado otro problema con la exportación de certificados. Pero entonces
el problema era hacerlo con seguridad, en tanto que ahora el problema es
hacerlo y punto. Al intentarlo, le aparecen estos mensajes:

"a) Fallo en la recuperación del archivo PKCS #12 por motivos
desconocidos. b) Se produjo un fallo por motivos desconocidos al guardar
la copia de seguridad del archivo PKCS #12."

(PKCS #12 es un estándar de criptografía de clave pública que define un
formato de archivo para guardar claves privadas, junto con sus claves
públicas asociadas, todo protegido por una contraseña simétrica)

Fernando echó mano del web oficial sobre Firma Digital del
gobierno argentino (bien por ellos), que ofrecía una solución para estos
casos. Bueno, más que solución es un apaño, porque consiste en borrar el
certificado de la AC que emitió el certificado de la clave, exportar
nuestro certificado y luego reinstalar el certificado que habíamos
borrado antes. Como la terminología es algo confusa, recordaré que
"certificado de la AC" es la clave pública de dicha AC, y "nuestro
certificado" es nuestra propia clave. En cualquier caso, es como decir
"¿que el guardia de seguridad no nos deja entrar a nuestro propio
edificio? pues despedimos al guardia, entramos y luego lo volvemos a
contratar" Lo dicho, un apaño.

El problema es que a Fernando eso tampoco le funcionó, así que se
fue con su problema directamente a bugzilla. La respuesta es
sorprendente. Firefox utiliza un conjunto de librerías criptográficas
que reciben el nombre colectivo de "Network Security Services" (NSS).
Esas librerías, si lo he entendido correctamente, son administradas en
SSL mediante algo llamado "Personal Security Manager" (PSM). Cuando hay
un error, NSS lo detecta y da los códigos específicos de error, muy
útiles para saber exactamente qué ha fallado. Seguro que usted los ha
visto cuando un programa falla, o cuando aparece el famoso "pantallazo
azul" de Microsoft: usted no entenderá toda esa retahíla de números y
letras, pero los expertos sí.

Pero por algún motivo, NSS toma los mensajes de error de PSM y
los transforma en "error por motivo desconocido", fastidiando así a los
desarrolladores, que se ven impotentes ante un fallo cuyos detalles
desconocen. Peor aún, los usuarios, al no saber en qué consiste el
fallo, informan de los "bugs" a los desarrolladores, los cuales están
tan hartos que ni siquiera les prestan atención. No es que no quieran
arreglarlo, es que no saben cómo hacerlo.

¿Por qué PSM se empeña en borrar los detalles de los fallos y
convertirlos en "error desconocido"? Por lo visto, el desarrollador
responsable de su interfaz con el usuario "no estaba a la altura", y el
detallito de mostrar los códigos de error se dejó para el final. El
administrador del proyecto, presionado por las fechas de entrega,
decidió coger todos los códigos de error que faltaban y los metió en el
saco de "fallos desconocidos". Eso fue hace ocho años. Desde entonces,
nadie pensó ponerse a arreglar ese detalle.

Es una verdadera lástima que un proyecto tan exitoso como
Firefox no repare en estos pequeños detalles, sobre todo cuando presumen
de ser más seguros que sus competidores de Redmond. Seguiremos el tema
con atención.

Fuente: Boletin Enigma

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!