Artículos

Por qué la criptografía es más difícil de lo que parece

Este articulo es muy viejo, es interesante revisitarlo

Desde el correo electrónico hasta las comunicaciones móviles, desde el acceso seguro a la web hasta el dinero digital, la criptografía es una parte esencial de los sistemas de información actuales. La criptografía ayuda a proporcionar responsabilidad, equidad, precisión y confidencialidad. Puede evitar el fraude en el comercio electrónico y garantizar la validez de las transacciones financieras. Puede probar su identidad o proteger su anonimato. Puede evitar que los vándalos alteren su página web e impedir que los competidores industriales lean sus documentos confidenciales. Y en el futuro, a medida que el comercio y las comunicaciones sigan trasladándose a las redes informáticas, la criptografía será cada vez más vital.

Pero la criptografía que hay ahora en el mercado no ofrece el nivel de seguridad que anuncia. La mayoría de los sistemas no se diseñan e implementan de forma concertada con criptógrafos, sino por ingenieros que piensan en la criptografía como un componente más. No es así. No se puede hacer que los sistemas sean seguros añadiendo criptografía a posteriori. Hay que saber lo que se hace en cada momento, desde la concepción hasta la instalación.

Se gastan miles de millones de dólares en seguridad informática, y la mayor parte se desperdicia en productos inseguros. Al fin y al cabo, la criptografía débil tiene el mismo aspecto en la estantería que la fuerte. Dos productos de encriptación de correo electrónico pueden tener casi la misma interfaz de usuario y, sin embargo, uno es seguro mientras que el otro permite las escuchas. Una tabla comparativa puede sugerir que dos programas tienen características similares, aunque uno tenga agujeros de seguridad que el otro no tiene. Un criptógrafo experimentado puede notar la diferencia. También lo puede hacer un ladrón.

La seguridad informática actual es un castillo de naipes; puede mantenerse en pie por ahora, pero no puede durar. Muchos productos inseguros aún no se han roto porque todavía están en su infancia. Pero cuando estos productos se utilicen ampliamente, se convertirán en objetivos tentadores para los delincuentes. La prensa dará a conocer los ataques, minando la confianza del público en estos sistemas. En última instancia, los productos ganarán o perderán en el mercado en función de la solidez de su seguridad.

Amenazas para los sistemas informáticos

Todas las formas de comercio que se han inventado han sido objeto de fraude, desde las balanzas amañadas en un mercado de agricultores hasta la falsificación de moneda o las facturas falsas. Los sistemas de comercio electrónico también se enfrentarán al fraude, mediante la falsificación, la tergiversación, la denegación de servicio y el engaño. De hecho, la informatización hace que los riesgos sean aún mayores, al permitir ataques que son imposibles contra sistemas no automatizados. Un ladrón puede ganarse la vida robando un céntimo a cada titular de una tarjeta Visa. No se puede andar por la calle con una máscara de la cara de otra persona, pero en el mundo digital es fácil suplantar a otros. Sólo una fuerte criptografía puede proteger contra estos ataques.

Las violaciones de la privacidad son otra amenaza. Algunos ataques a la privacidad son selectivos: un miembro de la prensa intenta leer el correo electrónico de un personaje público, o una empresa intenta interceptar las comunicaciones de un competidor. Otros son ataques de recolección de datos amplios, que buscan en un mar de datos información interesante: una lista de viudas ricas, usuarios de AZT o personas que ven una página web concreta.

Los ataques criminales suelen ser oportunistas, y a menudo todo lo que tiene que ser un sistema es más seguro que el siguiente. Pero hay otras amenazas. Algunos atacantes están motivados por la publicidad; suelen disponer de importantes recursos a través de su institución de investigación o corporación y grandes cantidades de tiempo, pero pocos recursos financieros. Los abogados a veces necesitan que se ataque un sistema para demostrar la inocencia de su cliente. Los abogados pueden recopilar detalles sobre el sistema a través del proceso de descubrimiento, y luego utilizar considerables recursos financieros para contratar expertos y comprar equipos. Y no tienen que anular la seguridad de un sistema por completo, sólo lo suficiente para convencer a un jurado de que la seguridad es defectuosa.

El vandalismo electrónico es un problema cada vez más grave. Los vándalos informáticos ya han hecho grafitis en la página web de la CIA, han bombardeado a los proveedores de Internet y han cancelado miles de mensajes de grupos de noticias. Y, por supuesto, los vándalos y ladrones irrumpen habitualmente en los sistemas informáticos en red. Cuando las protecciones de seguridad no son adecuadas, los intrusos corren poco riesgo de ser atrapados.

Los atacantes no siguen las reglas; hacen trampa. Pueden atacar un sistema utilizando técnicas en las que los diseñadores nunca pensaron. Los ladrones de arte han robado casas cortando las paredes con una sierra de cadena. Los sistemas de seguridad domésticos, por muy caros y sofisticados que sean, no tendrán ninguna posibilidad de resistir este ataque. Los ladrones de ordenadores también atraviesan las paredes. Roban datos técnicos, sobornan a personas de dentro, modifican el software y se confabulan. Se aprovechan de tecnologías más recientes que el sistema, e incluso inventan nuevas matemáticas con las que atacar el sistema.

Las probabilidades favorecen al atacante. Los malos tienen más que ganar examinando un sistema que los buenos. Los defensores tienen que protegerse contra todas las vulnerabilidades posibles, pero un atacante sólo tiene que encontrar un fallo de seguridad para comprometer todo el sistema.

Modelos de amenaza

Un buen diseño comienza con un modelo de amenazas: lo que el sistema está diseñado para proteger, de quién y durante cuánto tiempo. El modelo de amenazas debe tener en cuenta todo el sistema, no sólo los datos que hay que proteger, sino las personas que utilizarán el sistema y cómo lo harán. ¿Qué motiva a los atacantes? ¿Hay que prevenir los ataques o sólo se pueden detectar? Si ocurre lo peor y se rompe uno de los supuestos fundamentales de seguridad de un sistema, ¿qué tipo de recuperación del desastre es posible? Las respuestas a estas preguntas no pueden estandarizarse; son diferentes para cada sistema. Con demasiada frecuencia, los diseñadores no se toman el tiempo necesario para construir modelos de amenazas precisos o analizar los riesgos reales.

Los modelos de amenazas permiten tanto a los diseñadores de productos como a los consumidores determinar qué medidas de seguridad necesitan. ¿Tiene sentido cifrar el disco duro si no se guardan los archivos en una caja fuerte? ¿Cómo puede alguien de dentro de la empresa defraudar el sistema de comercio? ¿Son los registros de auditoría lo suficientemente buenos como para convencer a un tribunal de justicia? No se puede diseñar un sistema seguro si no se entiende contra qué tiene que ser seguro.

Diseño del sistema

El trabajo de diseño es el pilar de la ciencia de la criptografía, y es muy especializado. La criptografía combina varias áreas de las matemáticas: teoría de los números, teoría de la complejidad, teoría de la información, teoría de la probabilidad, álgebra abstracta y análisis formal, entre otras. Pocos pueden hacer la ciencia correctamente, y un poco de conocimiento es algo peligroso: los criptógrafos inexpertos casi siempre diseñan sistemas defectuosos. Los buenos criptógrafos saben que nada sustituye a una extensa revisión por pares y a años de análisis. Los sistemas de calidad utilizan algoritmos y protocolos publicados y bien comprendidos; utilizar elementos no publicados o no probados en un diseño es, en el mejor de los casos, arriesgado.

El diseño de sistemas criptográficos también es un arte. Un diseñador debe encontrar un equilibrio entre seguridad y accesibilidad, anonimato y responsabilidad, privacidad y disponibilidad. La ciencia por sí sola no puede demostrar la seguridad; sólo la experiencia, y la intuición nacida de la experiencia, pueden ayudar al criptógrafo a diseñar sistemas seguros y a encontrar fallos en los diseños existentes.

Implementación

Hay una enorme diferencia entre un algoritmo matemático y su implementación concreta en hardware o software. Los diseños de sistemas criptográficos son frágiles. El hecho de que un protocolo sea seguro desde el punto de vista lógico no significa que vaya a seguir siendo seguro cuando el diseñador empiece a definir estructuras de mensajes y a pasar bits. Estar cerca no es suficiente; estos sistemas deben ser implementados exactamente, perfectamente, o fallarán. Una interfaz de usuario mal diseñada puede hacer que un programa de encriptación de discos duros sea completamente inseguro. Una falsa confianza en un hardware resistente a las manipulaciones puede hacer que un sistema de comercio electrónico sea prácticamente inútil. Como estos errores no son evidentes en las pruebas, acaban en los productos acabados. Muchos fallos de implementación no pueden estudiarse en la literatura científica porque no son técnicamente interesantes. Por eso aparecen en un producto tras otro. Bajo la presión de los presupuestos y los plazos, los implementadores utilizan malos generadores de números aleatorios, no comprueban adecuadamente las condiciones de error y dejan información secreta en los archivos de intercambio. La única forma de aprender a evitar estos fallos es crear y romper sistemas, una y otra vez.

Criptografía para las personas

Al final, muchos sistemas de seguridad los rompen las personas que los utilizan. La mayoría de los fraudes contra los sistemas de comercio son perpetrados por personas con información privilegiada. Los usuarios honestos causan problemas porque normalmente no se preocupan por la seguridad. Quieren simplicidad, comodidad y compatibilidad con los sistemas existentes (inseguros). Eligen malas contraseñas, las escriben, dan a amigos y familiares sus claves privadas, dejan los ordenadores conectados, etc. Es difícil vender cerraduras de puertas a personas que no quieren ser molestadas con llaves. Un sistema bien diseñado debe tener en cuenta a las personas.

A menudo, la parte más difícil de la criptografía es conseguir que la gente la utilice. Es difícil convencer a los consumidores de que su privacidad financiera es importante cuando están dispuestos a dejar un registro de compras detallado a cambio de una milésima parte de un viaje gratis a Hawai. Es difícil construir un sistema que proporcione una autentificación fuerte sobre sistemas que pueden ser penetrados conociendo el nombre de soltera de la madre de alguien. La seguridad es eludida habitualmente por los dependientes de las tiendas, los altos ejecutivos y cualquier otra persona que necesite hacer su trabajo. Sólo cuando la criptografía se diseña teniendo en cuenta las necesidades de los usuarios y se integra sin problemas, puede proteger sus sistemas, recursos y datos.

El estado de la seguridad

En la actualidad, los usuarios no tienen una buena forma de comparar los sistemas de seguridad. Las revistas de informática comparan los productos de seguridad enumerando sus características, no evaluando su seguridad. La literatura de marketing hace afirmaciones que simplemente no son ciertas; un producto de la competencia que es más seguro y más caro sólo tendrá peores resultados en el mercado. La gente confía en el gobierno para que vele por su seguridad en áreas en las que carece de conocimientos para hacer evaluaciones: envasado de alimentos, aviación, medicina. Pero en el caso de la criptografía, el gobierno estadounidense hace justo lo contrario.

Cuando un avión se estrella, hay investigaciones, análisis e informes. La información se difunde ampliamente, y todo el mundo aprende del fracaso. Se puede leer un registro completo de los accidentes aéreos desde el comienzo de la aviación comercial. Cuando el sistema de comercio electrónico de un banco es violado y defraudado, normalmente se encubre. Si llega a los periódicos, se omiten los detalles. Nadie analiza el ataque; nadie aprende del error. El banco trata de arreglar las cosas en secreto, esperando que el público no pierda la confianza en un sistema que no merece ninguna confianza. A la larga, el secreto allana el camino para que se produzcan infracciones más graves.

Las leyes no sustituyen a la ingeniería. La industria de la telefonía móvil de Estados Unidos ha presionado para que se promulguen leyes de protección, en lugar de gastar el dinero en arreglar lo que debería haberse diseñado correctamente desde el principio. Ya no basta con instalar parches de seguridad en respuesta a los ataques. Los sistemas informáticos se mueven con demasiada rapidez; un fallo de seguridad puede ser descrito en Internet y explotado por miles de personas. Los sistemas actuales deben anticiparse a futuros ataques. Cualquier sistema completo -ya sea para las comunicaciones autenticadas, el almacenamiento seguro de datos o el comercio electrónico- es probable que permanezca en uso durante cinco años o más. Debe ser capaz de resistir el futuro: atacantes más inteligentes, más potencia de cálculo y mayores incentivos para subvertir un sistema generalizado. No habrá tiempo para actualizarlos sobre el terreno.

La historia nos ha enseñado: nunca subestimes la cantidad de dinero, tiempo y esfuerzo que alguien gastará para frustrar un sistema de seguridad. Siempre es mejor suponer lo peor. Suponga que sus adversarios son los mejores. Asuma que la ciencia y la tecnología pronto serán capaces de hacer cosas que aún no puede. Dése un margen de error. Dése más seguridad de la que necesita hoy. Cuando ocurra lo inesperado, se alegrará de haberlo hecho.

Bruce Schneier