服务时间:8:30-18:00

首页 >linux教程

Kerberos简介

发布时间:2023-02-20 16:32 字数:1361字 阅读:130

Kerberos简介,Kerberos是一种网络身份验证协议,支持联网系统的安全身份验证,最初由麻省理工学院(Massachusetts Institute of Technology, MIT)开发。RHEL 7包含MIT开发的Kerberos 5客户端和软件程序包。

Kerberos简介

Kerberos不是LDAP那样的目录服务。换句话说,要使有效的客户端通过Kerberos服务器的身份验证,它还需要连接到一个网络身份验证数据库,如LDAP、NIS或者/etc/passwd文件中的用户数据库。目录服务包含用户和组标识符、用户的主目录以及默认的shell信息。Kerberos并没有被设计为存储这些信息,而是被设计为提供身份验证服务。

Kerberos网络(也称为领域)中的每个参与者都通过一个主体标识。用户的主体具有如下形式:username/instance@REALM。instance部分是可选的,通常用来限定用户类型。realm指定了Kerberos域的范围,通常通过大写的DNS域名表示。例如,DNS域example.com的Kerberos领域通常为EXAMPLE.COM。

根据这些规则,用户mike、alex和root(实例为admin)的Kerberos主体如下:

        mike@EXAMPLE.COM
        alex@EXAMPLE.COM
        root/admin@EXAMPLE.COM

Kerberos主体不仅限于用户。可以创建主体来标识一个计算机主机或服务。例如,可以用如下格式表示一个主机主体:host/hostname@REALM。例如,server1.example.com的主机主体由以下字符串表示:

        host/server1.example.com@EXAMPLE.COM

类似地,可以用如下格式建立一个Kerberos服务主体:service/hostname@REALM。例如,可以为主机server1.example.com上的NFS和FTP服务建立下面的主体:

        nfs/server1.example.com@EXAMPLE.COM
        ftp/server1.example.com@EXAMPLE.COM

在基于Kerberos的网络中,当用户输入用户名和口令后,登录程序会将用户名转换为一个Kerberos主体,并把此信息发送给KDC, KDC由一个身份验证服务器(AS)和一个票证授予服务器(Ticket-Granting Server, TGS)组成。然后,KDC确认用户的访问权限,并向客户端发送一个特殊消息,称为票证授予票证(Ticket-Granting Ticket, TGT),此消息用属于该用户的主体的口令加密。如果用户向登录程序提供了正确的口令,那么客户端就能解密TGT消息并成功地通过身份验证。

确认身份验证后,Kerberos客户端会获得一个在有限时间(通常为24小时)内有效的票证。除了最大票证生存期,TGT还包含主体名称、加密通信的会话密钥和一个时间戳。

当一个账户有了有效的TGT后,就能够通过提供相同的TGT向其他网络服务进行身份验证,在该TGT的生存期内就不需要重新输入身份验证凭据。这种功能叫做单点登录(Single Sign-On, SSO)。