A la vista de todo lo comentado en los puntos anteriores puede darnos la
impresión de que Kerberos es la panacea de los sistemas de
autenticación. Sin embargo, y aunque se trate de un sistema robusto, no está
exento de ciertos problemas, tanto de seguridad como de implementación, que
han hecho que este sistema no esté todo lo extendido que debería.
Uno de los principales problemas de Kerberos es que cualquier programa
que lo utilice ha de ser modificado para poder funcionar correctamente,
siguiendo un proceso denominado `kerberización'. Esto implica obviamente que
se ha de disponer del código fuente de cada aplicación que se desee
kerberizar, y también supone una inversión de tiempo considerable para
algunas aplicaciones más o menos complejas que no todas las organizaciones se
pueden permitir.
El problema anterior es simplemente de implementación; no afecta para nada
a la seguridad - o inseguridad - del protocolo. Un problema que sí está
relacionado con la seguridad de Kerberos es la gran centralización que
presenta el sistema. Para un correcto funcionamiento se ha de disponer en todo
momento del servidor Kerberos, de forma que si la máquina que lo alberga
falla, la red se convierte en inutilizable; obviamente esto es una
contradicción con lo que nos dice la teoría de sistemas distribuidos,
donde se recalca el uso de la distribución para mantener la disponibilidad del
sistema, intentado que si un equipo falla el resto pueda seguir funcionando, si
no a pleno rendimiento, al menos correctamente. Por si esto no fuera suficiente,
otro ejemplo de la centralización de Kerberos reside en el hecho de que
casi toda la seguridad reside en el servidor que mantiene la base de datos de
claves, de forma que si éste se ve comprometido, la red entera está
amenazada.
Otro potencial problema de seguridad es el uso de timestamps como
pruebas de frescura en Kerberos. Esto obliga a que todas las máquinas
que ejecutan servicios autenticados mantengan sus relojes mínimamente
sincronizados (con desfases máximos de pocos minutos), con todo lo que esto
implica. Además ese tiempo global ha de ser accesible a todas las estaciones;
aunque en el diseño no se asume que todas mantengan la hora exacta, sí
que se les obliga a mantenerse dentro de los márgenes si desean solicitar
tickets, para lo que se necesitan servidores de tiempo con los que los
clientes puedan sincronizar periódicamente sus relojes, por ejemplo cada
vez que arrancan.
Todos estos problemas, y algunos más ([BM91]) que se han ido
solucionando en diferentes versiones del sistema, han propiciado que el uso de
Kerberos no esté muy extendido; en la mayoría de redes es
suficiente con un protocolo de comunicación cifrado para mantener una
mínima seguridad, de forma que el complejo modelo de Kerberos se ve
sustituido a ese efecto por programas tan simples y transparentes como SSH.
© 2002 Antonio Villalón Huerta