Autenticidad, integridad, cifrado y disponibilidad de la información

En general, los mecanismos necesarios para soportar autenticidad e integridad de la información a todos los niveles. En el caso de la autenticación será necesario por un lado permitir que usuarios se autentiquen a sí mismos y comprueben la autenticidad de otros, pero también debe permitirse que sistemas informáticos (servidores) se autentiquen entre sí y ante una petición de un usuario. La integridad de la información se podrá entender como la necesidad de que la información no sea modificada en tránsito, para lo que será necesario establecer los mecanismos criptográficos adecuados, o la necesidad de que la información que reside en los sistemas no se degrade o pueda ser manipulada.

Sistemas de autenticación

Los sistemas de autenticación disponibles en los sistemas de software libre son muy variados, partiendo desde la autenticación local original de UNIX basada en ficheros en el servidor local, a implementaciones de servicios de directorios como NIS, RADIUS o LDAP pasando por implementaciones de sistemas de autenticación en dominios con tokens como Kerberos. En este campo, existen implementaciones libres de todos los servidores de autenticación con funcionalidades equivalentes a sus versiones propietarias. En algunos casos las versiones disponibles en software libre soportan funcionalidades más avanzadas que las que se pueden encontrar en el software propietario.

Por ejemplo, los sistemas UNIX ya disponían de implementaciones de Kerberos (un sistema de autenticación desarrollado en el MIT) mucho antes de que éste fuera adaptado y modificado para su uso en Windows 2000 porque consistía un sistema mejor al ya implementado en Windows NT 4.0. Por otro lado, los servidores de RADIUS propietarios como NavisRadius de Lucent o SteelBelted Radius, ofrecen funcionalidades que aún no están disponibles en las versiones de Radius mantenidas por la comunidad del software libre: Cistron y Livingston, pero que sí que lo están en la versión en fase de desarrollo (beta) de FreeRadius, un servidor de Radius mejorado basado en Cistro.

Firma digital

Cuando se habla de firma digital en este contexto nos referimos a la capacidad de aplicar mecanismos criptográficos para asegurar la identidad del autor del documento y, si fuera necesario, asegurar que un documento no pueda ser leído más que por un grupo cerrado de usuarios. Estos mecanismos de firma digital, basados en sistemas de claves públicas y claves privadas, tuvieron su impacto en la comunidad Internet con la distribución del software PGP (Pretty Good Privacy).

Sin embargo, tras la distribución, inicialmente sin restricciones, de este software, la compañía que posteriormente se creo alrededor de este producto ha ido limitando la posibilidad de distribución del mismo hasta el punto de que, hoy por hoy, este producto no se distribuye con código fuente. Aún así, PGP se ha convertido en el abanderado de las comunicaciones cifradas a través de correo electrónico.

¿Existe una alternativa a este software imprescindible en el mundo del software libre? La respuesta es GNU Privacy Guard, también conocido como GNUPG o, simplemente, GPG. Que implementa las mismas características que PGP, aunque no se incluyen algunos algoritmos de generación de hashes y cifrado debido a problemas de patentes (pero es posible cargarlos mediante extensiones). Sí se incluyen, desde sus versiones iniciales, para cifrado: 3DES, Blowfish, Twofish y CAST5, así como distintos algoritmos para hashes como MD5 y SHA1, se han incluido nuevos algoritmos a lo largo del desarrollo de este producto. Igualmente, GPG es compatible con el estándar OpenPGP (RFC2440).

En cuanto a capacidades de integración y usabilidad, GPG está integrado en la mayoría de lectores de correo modernos desarrollados en software libre, y dispone de interfaces gráficos (como GPGP) para facilitar la generación de claves y el tratamiento de los anillos de claves en general.

Autoridades de certificación

El mundo de las autoridades de certificación ha sufrido en los últimos tiempos un cierto auge por la necesidad de desarrollar infraestructuras de clave pública para, sobre estas infraestructuras, desarrollar nuevos servicios: single sign-on, servidores de web seguros, redes privadas virtuales... En este área, fabricantes como Baltimore y Verisign se han posicionado rápidamente ofreciendo soluciones propietarias para el desarrollo de estas infraestructuras de clave pública, y sus soluciones son las usadas, mayoritariamente, para estos despliegues.

El software libre, en estos aspectos está algo menos desarrollado que estas iniciativas propietarias. Existe una alternativa para la generación de certificados digitales, que es OpenSSL. Este software es, de hecho, utilizado por muchos fabricantes de "cajas negras" de red, que utilizan habitualmente una interfaz de administración vía HTTP para la rápida configuración de estos elementos que implementan funciones de aplicación basadas en hardware (típicamente cortafuegos, balanceadores de carga, sistemas de caché). Estas mismas interfaces, para poder ofrecer una conexión segura, generan certificados autofirmados que les permiten cifrar la comunicación con un navegador.

En cualquier caso, el despliegue de una infraestructura utilizando OpenSSL es laborioso por cuanto no dispone de todas las capacidades de su equivalentes propietarios. Actualmente, si bien existe el proyecto OpenCA para ofrecer un sistema de desarrollo de infraestructuras de clave pública basado en software libre, estas iniciativas son aún inmaduras y no han llegado aún a un nivel suficiente para ser usadas de forma intensiva.

Comunicaciones cifradas

En el caso de comunicaciones cifradas entre sistemas podemos hablar de implementaciones basadas en software libre diversas para según qué tipo de comunicaciones sean consideradas.

Si se consideran comunicaciones directas entre dos sistemas, con capacidades de cifrado de tráfico, los proyectos OpenSSH y OpenSSL ofrecen las mismas capacidades que sus equivalentes propietarios (SSH de F-Secure y SSH Technologies y las diversas implementaciones de SSL existentes). En este sentido, es posible, con por ejemplo OpenSSL, tunelizar conexiones de servicios determinados (telnet, ftp, pop3) para asegurar que la información intercambiada entre éstos no pueda ser interceptada y descifrada en tránsito.

En implementaciones de creación de túneles para la generación de redes privadas virtuales se puede hablar básicamente de una serie de tecnologías: IPsec y túneles punto a punto (que suponen una extensión a la tecnología IP para establecer circuitos cifrados extremo a extremo). La diferencia del primero, y el hecho de diferenciarlo de los túneles, es que la implementación de éste es obligatoria en IPv6 y tiene unas funcionalidades, a priori, mucho más potentes que las disponibles en la creación de túneles entre sistemas finales. Si bien el software libre tiene herramientas desarrolladas equivalentes a las propietarias (y en algunos casos mejores) para la generación de túneles punto a punto, no existe aún una implementación completamente desarrollada de la tecnología IPsec y parte del problema reside en la necesidad de desarrollar, conjuntamente con la implementación, una infraestructura de clave pública (que es la que utiliza IPsec como base para el establecimiento de las conexiones cifradas).

En esta última área es importante destacar el proyecto FreeSwan, que ofrece una implementación (no totalmente a prueba de fallos) del protocolo IPsec para GNU/Linux. Sin embargo, esta tecnología está por detrás de la tecnología propietaria desarrollada para IPsec por otros fabricantes. Esto se debe en gran medida a que la evolución natural de los sistemas cortafuegos (basados en sistemas propietarios ya asentados) ha ido dirigida a implementar funcionalidades de VPN para facilitar la conexión remota de usuarios corporativos. Así, la mayoría de las soluciones propietarias de cortafuegos de filtrado de paquetes disponen de versiones con soporte de VPNs y clientes específicos.

Sin embargo, FreeSwan sí que ha sido utilizado como implementación de referencia para la elaboración de algunos de los RFCs relacionados con IPsec y participa en los foros de estandarización que los fabricantes están obligados a llevar a cabo.

Sistemas de alta disponibilidad

Una funcionalidad muy apreciada en los sistemas, tanto en sistemas intermedios de comunicaciones como en sistemas finales, es su capacidad de poder mantener una alta disponibilidad basada en una redundancia de equipos. Es decir, que se pueda dimensionar el sistema sin puntos únicos de fallo de forma que, por ejemplo, en caso de fallo de un servidor, sea otro servidor el que ofrezca los servicios que prestaba aquél. Está siendo, cada vez más común, la utilización de sistemas redundantes que podrán estar configurados en modo activo-pasivo (también conocido como failover y hot-standby), es decir, que un sistemas realiza las funciones y, en caso de fallo, un sistema de backup las asume. O que podrán estarlo en activo-activo, en el que una serie de sistemas, por ejemplo A o B, llevan a cabo servicios distintos A' y B' respectivamente pero que, en caso de fallo de un sistema (por ejemplo B), el otro (A) asume todos los servicios del cluster (A' y B').

La implementación de estos mecanismos de alta disponibilidad se viene haciendo de dos maneras: mediante técnicas de rutado virtual (protocolo VRRP) implementados a nivel de sistema operativo o mediante mecanismos software implementados por encima del sistema operativo que detectan los fallos y toman las medidas necesarias.

Desgraciadamente, las implementaciones en la actualidad de mecanismos de alta disponibilidad como el proyecto linux-ha o el software de alta disponibilidad Piranha, están muy por debajo de los mecanismos de alta disponibilidad implementados en productos propietarios. En el área de alta disponibilidad con rutado virtual, los sistemas Nokia basados en IPSO (una versión propietaria basada en FreeBSD) están muy por delante. Igualmente, existe una serie de software propietario para implementar alta disponibilidad de servicios a alto nivel (servicios de correo, bases de datos, correo, cortafuegos, etc.) basados en aplicaciones que monitorizan a los sistemas, como puedan ser Qalix, Legato Full Time Cluster o StoneBeat, que son, hoy por hoy, muy superiores a los proyectos, aún en desarrollo de software libre.