Kerberos tiene múltiples implementaciones interoperables y maduras en las principales plataformas con comunidades de usuarios activas y en desarrollo continuo (MIT Kerberos, Heimdal, Microsoft, Java), y mediante capas de abstracción estándar como GSSAPI y SASL, es fácil de usar Kerberos directa o indirectamente para asegurar muchas aplicaciones y protocolos estándar, incluyendo:
- SSH (OpenSSH, ssh.com, VanDyke VShell / SecureCRT)
- IMAP y SMTP (Cyrus, sendmail, postfix, Thunderbird, OS X Mail, Alpine)
- Subversion
- CIFS / SMB (Samba, Windows, Netapp)
- Base de datos (SQL Server, Postgres, jTDS, FreeTDS)
- HTTP (Apache, nginx, todos los principales navegadores web, curl, bibliotecas HTTP de clientes
en Perl / Python / Java / C / ...)
- DNS (autenticación para actualización dinámica, implementada por Windows y BIND)
- NFS
Todos estos protocolos e implementaciones tienen soporte Kerberos incorporado listo para ser utilizado, solo si proporciona la infraestructura y sabe cómo hacerlo. Esto no es sólo teórico; donde trabajo, estoy a cargo de la infraestructura de Kerberos para mi empresa, y tenemos todas estas aplicaciones y más. Todos ellos interoperan sin problemas tanto en Windows como en Unix; nuestros usuarios inician sesión en su escritorio de Windows o Unix, escriben su contraseña una vez, y nunca vuelven a escribirla al acceder a todos estos servicios, directamente y después de usar SSH para iniciar sesión en otros hosts (donde sus credenciales de Kerberos se reenvían y se usan automáticamente). La delegación de credenciales en diferentes versiones está disponible para permitir que los servidores autorizados accedan a otros servicios en nombre de un usuario a través del uso controlado de la identidad del usuario. No tenemos la pesadilla de administrar claves de host SSH en varias plataformas y clientes (archivos de hosts conocidos de OpenSSH, claves de registro PuTTY, etc.); Kerberos autentica nuestros servidores SSH y sus clientes.
Si tiene necesidades limitadas, entonces puede salirse con otros sistemas. Si todo lo que desea es, por ejemplo, un inicio de sesión único para las aplicaciones web desde navegadores web completos, entonces puede usar cualquiera de varios esquemas, pero si también desea acceder a esa aplicación web mediante programación desde un programa simple que no tiene El motor de Javascript y un usuario para escribir una contraseña, estás bastante atascado. Con Kerberos, las mismas credenciales funcionan de la misma manera en ambos escenarios.
Nada de esto quiere decir que Kerberos no tiene sus debilidades, o cosas que deberían mejorarse. El uso de Kerberos en HTTP ("Negociar con HTTP") es un truco con problemas; En realidad, lo que necesitamos es una implementación generalizada de los conjuntos de cifrado Kerberos en TLS. El uso de Kerberos para asegurar el tráfico de datos carece de secreto hacia adelante, lo que es cada vez más importante en estos días; necesitamos un mecanismo GSSAPI que combine la autenticación Kerberos con un intercambio Diffie-Hellman, como lo hacen los intercambios de claves GSSAPI SSH; una vez que existe, puede funcionar de manera transparente con cualquier cliente SASL correctamente escrito que use una capa de seguridad (como lo hacen varios de los casos mencionados anteriormente). Esto evita la combinación de Kerberos y TLS en capas separadas, que tiene demasiados viajes de ida y vuelta y requiere PKI cuando Kerberos por sí solo es suficiente.
Además, gran parte de esta utilidad se debe a la amplia adopción de GSSAPI y SASL en los protocolos a través de los cuales se usa Kerberos, en lugar de las propiedades específicas de Kerberos; otros mecanismos que se pueden utilizar como mecanismos GSSAPI pueden tener una facilidad de uso similar, y hay trabajo actual para hacer esto para OAuth, por ejemplo. Kerberos tiene la ventaja de que todavía permite la autenticación simple basada en contraseña, al tiempo que también permite métodos más sólidos (ambos certificados de clave pública a través de PKINIT y OTP son compatibles), mientras que PKI está vinculado a la necesidad de un segundo factor de algún tipo para mantener la clave privada del usuario y los certificados de CA confiables, lo que ha limitado su adopción para la autenticación del usuario durante bastante tiempo.
En cualquier caso: si desea un inicio de sesión único today , con los sistemas existentes listos para usar, a través de una amplia variedad de aplicaciones y protocolos, particularmente en un entorno de sistemas abiertos, Kerberos es bastante el único juego en la ciudad: nada más coincide con su amplia disponibilidad, facilidad de uso y soporte en productos y protocolos existentes, tanto comerciales como de código abierto.