这是信息系统安全实验系列的第七篇~
1. 背景知识
(1)概述
Kerberos又指麻省理工学院为这个协议开发的一套计算机网络安全系统。系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务端均可对对方进行身份认证。
(2)概念
① 密钥分发中心(KDC)
Kerberos使用了一个由两个独立的逻辑部分:认证服务器(同身份认证服务器)和票据授权服务器(同服务审批服务器)组成的“可信赖的第三方”,称为密钥分发中心(KDC)。Kerberos工作在用于证明用户身份的“票据”的基础上。
② Kerberos域
Kerberos域(realm)是一组受管节点,它们共享同一 Kerberos 数据库。Kerberos数据库驻留在Kerberos主控计算机系统上,对数据库的所有更改都必须在主控计算机系统进行。更改或访问 Kerberos 数据库要求有 Kerberos 主控密码。
③ Kerberos 主体
Kerberos 主体(principal)是 Kerberos 系统知道的服务或用户。每个 Kerberos 主体通过主体名称进行标识。主体名称由三部分组成:服务或用户名称、实例名称以及域名,其中实例部分是可选的。
例如,主体名称可以描述用户主体在特殊域中的用户所拥有的授权角色,例如,joe.user@realm1。主体名称还可以描述服务主体的计算机系统上的服务的位置,例如,ftp.host1@realm2。Kerberos将不同计算机系统上的同一服务视为不同的服务主体。
每个主体有主体密码,Kerberos在其认证过程中使用该密码对服务和用户进行相互鉴别。使用 Kerberos,网络中一台计算机系统上的主体可以很有把握地与网络中另一台计算机系统上的主体进行对话,了解服务或用户是什么或谁在说话。
当用户作为 Kerberos 主体登录时,Kerberos 给用户分配一张票券。每张票券都有生命期,它决定票券有效的时间长度。当票券过期时,该主体不再是可信的,无法执行额外工作,直到获得一张新的票券。
2. 实验目的
学习Kerberos的安装和配置方法,掌握和了解Kerberos的工作原理和实现原理,使用Kerberos实现网络身份认证。
3. 实验环境
两台安装了Ubuntu 12.04的主机,Kerberos等软件。
4. 实验过程记录
图1(身份认证流程图)
(1)Kerberos服务端配置
① NTP安装及配置
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
图2(安装ntp)
- 输入命令sudo gedit /etc/ntp.conf,将内容替换为如下内容:
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# You do need to talk to an NTP server or two (or three).
server 127.127.1.0
fudge 127.127.1.0 stratum 8
server ntp.time.ac.cn prefer
server cn.pool.ntp.org prefer
server hk.pool.ntp.org prefer
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery
restrict 192.168.80.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1
如图3所示:
图3(修改配置文件)
- 输入sudo service ntp restart和watch ntpq -p,如图4所示: