Logo
Section 1 / 12

简介

本课程为学习 Kerberos 奠定了基础。

导入

简介

本课程为学习 Kerberos 奠定了基础。

对于喜欢趣味知识的人来说,Kerberos这个名字源自希腊神话。在这些神话中,凯尔伯罗斯(Kerberos),又称刻耳柏洛斯(Cerberus),是一只拥有三个头的守门犬。它也被称为冥王哈迪斯的猎犬,哈迪斯是掌管死亡与冥界的神。凯尔伯罗斯守卫着冥界的大门,防止亡灵离开。在计算机科学领域,Kerberos是麻省理工学院(MIT)的阿提卡项目的一部分。它被命名为Kerberos,是因为其涉及三个实体,如同三头犬一般,通过相互通信来验证客户端与服务器的身份。一个可信的第三方——密钥分发中心(Key Distribution Center,简称KDC)帮助客户端和服务端彼此证明身份。

非正式地说,我们可以将Kerberos理解为一种权威服务,它向其他方宣告:“是的,你可以信任我,这个人就是他们声称的身份。” 仅此而已。从正式定义来看,Kerberos是一种网络认证系统,用于解决在不可信网络环境中的两个关键问题:

  1. 允许用户仅用一个密码即可访问所有资源(如打印机、服务等)。

  2. 对网络上传输的消息进行加密,并确保消息的完整性。我们将在后续课程中详细学习加密与完整性机制。

Kerberos是一种安全的、单点登录的、基于可信第三方的双向认证服务:

  • 安全:Kerberos是安全的,因为它从不在网络中传输密码。实际上,它采用了一种创新方法,发送具有时间限制的加密消息,这些消息在设定的时间后失效,从而向特定服务器证明用户的身份。

  • 单点登录:Kerberos允许用户只需输入一次密码,即可在指定时间内访问多个已集成Kerberos的服务,而无需重复输入密码。

  • 可信第三方:Kerberos采用一个集中式的认证服务器,即密钥分发中心(KDC),网络中的所有其他实体都信任该服务器。所有的认证请求均需经过此服务器处理。

  • 双向认证:在Kerberos中,通信双方互相验证身份。例如,使用Kerberos的网络用户可以向邮件服务器证明自己的身份,表明“我就是我所声称的人”;同时,邮件服务器也会向用户证明自己确实是邮件服务器,而非伪装成邮件服务器的其他服务。

发展历程

Kerberos最早于20世纪80年代初在MIT作为研究项目启动。在对外公开之前,经历了多个版本的迭代。最初的v1、v2和v3版本仅在MIT内部使用。1989年,v4版本作为首个在美国境内公开发布的版本推出,迅速被多家厂商采纳。然而,由于当时美国对加密技术的出口管制,v4无法出口至美国以外地区。为此,人们开发出一种去除了所有加密功能的简化版本,供美国境外的高校使用。这些海外高校随后自行添加了自定义加密机制,使v4版本得以在全球范围内应用。自2000年起,出口限制解除,如今最新的Kerberos v5版本可自由下载并使用。Kerberos v5的规范文档见于RFC 1510。

实现方案

Kerberos是一种协议,已被多个厂商实现,以下是一些主要实现:

  1. MIT Kerberos:这是Kerberos协议的原始实现,诞生于20世纪90年代初,源于阿提卡项目。

  2. Heimdal:由于加密技术的出口限制,MIT Kerberos无法在美国外使用。因此,瑞典开发了名为Heimdal的替代实现。该版本旨在与MIT Kerberos完全兼容。2000年出口限制解除后,两种实现如今广泛共存。

  3. Active Directory:这是微软开发的一种名称服务,用于将网络资源名称映射到其对应的网络地址。它本身并非完整的Kerberos实现,而是微软目录服务的一部分,包含部分Kerberos功能以及LDAP等其他服务。它与MIT Kerberos和Heimdal不兼容。

  4. Trust Broker:由CyberSafe公司开发的商业版Kerberos实现,支持Windows、Unix、Linux等多种操作系统,并能与包括MIT和微软AD在内的多种现有Kerberos实现互操作。

  5. Shishi:这是GNU项目推出的Kerberos实现。

在下一课中,我们将探讨认证与授权的区别,并学习审计的相关内容。

三个A