除了通常的密码机制外,开放网络没有提供任何其他方法来确保工作站能够正确识别其用户。 在一般的安装中,用户每次访问网络中的服务时都必须输入密码。 Kerberos 提供了一种认证方法,采用这种方法,用户只要注册一次,就可在整个网络中获得信任以完成会话的剩余操作。 要拥有安全的网络,必须满足以下要求:
使所有用户可以对每个所需服务证明他们自己的身份,并确保任何用户都不能使用其他用户的身份。
确保每个网络服务器也能证明其身份。 否则攻击者就可能冒充服务器并获取传送给服务器的敏感信息。 这种概念被称为相互认证,因为在客户机和服务器之间进行了相互认证。
Kerberos 通过提供严格加密的认证来帮助您满足这些要求。 下面内容说明这是如何实现的。 这里仅讨论 Kerberos 的基本原理。 有关详细的技术说明,请参考随 Kerberos 的实施提供的文档。
以下词汇表定义了一些 Kerberos 术语。
票证是随服务器而不同的身份凭证,客户机使用票证在它请求提供服务的服务器上进行认证。 它包含服务器的名称、客户机的名称、客户机的因特网地址、时戳、使用期限和随机会话密钥。所有这些数据都使用服务器的密钥进行了加密。
与票证相结合,认证器用于证明提交票证的客户机确实与其声称的身份相符。 身份验证器由客户机名称、工作站 IP 地址、当前工作站时间组成。这些内容都使用会话密钥进行了加密,只有客户机和它请求提供服务的服务器才知道此密钥。 与票证不同,身份验证器只能使用一次。 客户机可以自己构建认证器。
Kerberos 主体是可以对其指派票证的独特实体(用户或服务)。 主体包含以下部分:
主部 - 主体的第一部分,如果主体是用户,则主部可以与您的用户名相同。
实例 - 描述主部属性的一些可选信息。 此字符串和主部之间用一个 / 分隔。
Realm - 指定您的 Kerberos 领域。 通常情况下,领域就是您的大写域名。
Kerberos 确保客户机和服务器都可以确定对方的身份。 它们共享一个可用来安全通讯的会话密钥。
会话密钥是由 Kerberos 生成的临时性私用密钥。 客户机知道这些密钥。当客户机向服务器请求并收到票证后,将使用这些密钥来加密客户机和服务器之间的通讯。
几乎所有在网络中发送的消息都能够被窃听、盗取和重发送。 在使用 Kerberos 的情况下,如果攻击者获取了包含您的票证和认证器的服务请求,则会非常危险。 他随后可能会试图重发送此请求(重放)来冒充您。 然而,Kerberos 实施了多种机制来解决此问题。
服务用来指要执行的特定操作。 此操作背后的进程被称为服务器。