投递文章投递文章 投稿指南投稿指南 RSS订阅RSS订阅

Kerberos:面向开放式网络的认证服务(论文)

来源:iT堂整理 发布时间:2007-12-28 收藏 投稿 字体:【

前  言
 在一个开放式网络计算环境中,用工作站来验证网络用户正确的访问网络服务是不可信的.Kerberos通过第三方的验证服务来验证网络用户提供了一个可取的解决方案.本文给出了Kerberos验证模型的概貌.同时本文也描述了数据库管理和复制需求.最后,介绍了一些Kerberos应用程序的使用.


关键字:   Kerberos,TGS,KDBM,认证,时间戳.

第一章 Kerberos简介
第一节  Kerberos的产生背景
伴随着开放式网络系统的飞速发展,比如银行结算系统等关系国计民生的大型网络系统的普遍应用,认证用户身份和保证用户使用时的安全,正日益受到各方面的挑战.
在不与网络连接的个人计算机中,资源和个人信息可以通过物理保护来实现.
在分时计算环境中,操作系统管理所有资源,并保护用户信息不被其他未授权的用户使用.这时操作系统需要认证每一个用户,以保证每个用户的权限,操作系统在用户登录时完成这项工作.

 在网络系统中,用户需要从多台计算机得到服务,这时控制访问的方法有以下三种方法:
a.)服务程序不进行认证工作,而由用户登录的计算机来管理用户的认证来保证正确的访问.在封闭式网络中,网络中的所有计算机以及他们之间的通信都在严格的控制之下,方法a在这时是一个合乎情理的方案.
b.)收到服务请求时,对发来请求的主机进行认证,对每台认证过的主机的用户不进行认证.半开放系统可以采用方法b,每个服务选择自己信任的计算机,在认证时检查主机地址来实现认证,这种方法应用于rlogin和rsh程序中.
c.)对每一个服务请求,都要认证用户的身份.在开放式系统中,主机并不能控制登录它的每一个用户,而且还有来自系统外部的假冒等情况发生,以上两种方法都不能保证用户身份的真实性,只有使用方法c.

 开放式系统的认证有以下几种需求:
1.) 安全性:认证机制必须足够安全,不致成为攻击的薄弱环节.
2.) 可靠性:认证服务是其他服务的基础,它的可靠性决定整个系统的可靠性.
3.) 透明性:用户应该感受不到认证服务的存在.
4.) 可扩展性:当和不支持认证机制的系统通信时,应该保持一切不受影响.
对开放式系统的认证需求导致了 Kerberos的产生.

第二节  什么是Kerberos
Kerberos一种为网络通信提供可信第三方服务的面向开放系统的认证机制.
每当用户(client)申请得到某服务程序(server)的服务时,用户和服务程序会首先向Kerberos要求认证对方的身份,认证建立在用户(client)和服务程序(server)对Kerberos的信任的基础上. 在申请认证时,client和server都可看成是Kerberos认证服务的用户,为了和其它服务的用户区别,Kerberos用户统称为principle,principle既可以是用户也可以是某项服务.认证双方与Kerberos的关系用下图表示:
 

当用户登录到工作站时,Kerberos对用户进行初始认证,通过认证的用户可以在整个登录时间得到相应的服务.Kerberos既不依赖用户登录的终端,也不依赖用户所请求的服务的安全机制,它本身提供了认证服务器来完成用户的认证工作.时间戳(代表时间的大数字)技术被应用于后来的Kerberos中来防止重放攻击.
Kerberos保存principle及其密钥的数据库.私有密钥(private key)只被Kerberos和拥有它的principle知道,在用户或服务登记时和Kerberos协议生成.使用私有密钥,Kerberos可以创建消息使一个principle相信另一个principle的真实性,进行认证工作.Kerberos还产生一种临时密钥,称做对话密钥(session key),通信双方用在具体的通信中.
Kerberos提供三种安全等级.
1) 只在网络开始连接时进行认证,认为连接建立起来后的通信是可靠的.认证式网络文件系统(Authenticated network file system) 使用此种安全等级.
2) 安全消息(sage messages)传递:对每次消息都进行认证工作,但是不保证每条消息不被泄露.
3) 私有消息(private messages)传递:不仅对每条消息进行认证,而且对每条消息进行加密.Kerberos在发送密码时就采用私有消息模式.
 


第二章 Kerberos协议内容和工作原理
第一节 Kerberos的组成

以Athena系统为例,Kerberos由下列模块组成:
 Kerberos应用程序库(Kerberos Applicaton library)
 加密/解密库(encryption/decryption library)
 数据库程序库(database library)
 数据库管理程序(database administration programs)
 KDBM服务器(KDBM server)
 认证服务器(authentication server)
 数据库复制软件(db propagation software)
 用户程序(user programs)
 应用程序(applications)

Kerberos应用程序库给应用程序提供了一系列接口,其中包括创建和读取认证请求,以及创建safe message 和private message的子程序.
Kerberos的加密采用DES(Data Encryption Standard)算法.Kerberos中提供对PCBC(Propagating CBC)的支持,PCBC是对CBC(DES Cypher Block Chaining)的扩展,在CBC中当传输出错时只会影响整个消息中的当前块(current block),
但在PCBC中会将整个消息置为无效,提高了可靠性.
 Kerberos数据库的记录中记载了每个Kerberos用户的名字,私有密钥,截止信息(记录的有效时间,通常为几年)等信息.用户的其他信息,如真实姓名,电话号码等次要信息,放在Hesiod nameserver中.database administration programs 对两个数据库进行管理,database library为它进行支持.

  KDBM服务器,又称为数据库管理服务器(administration server),运行在存放Kerberos数据库的主机上,接受客户端的请求对数据库进行操作.
 认证服务器,又称为Kerberos服务器(Kerberos server),在主机上存放一个Kerberos数据库的只读的副本,用来完成principle的认证,并生成会话密钥.
 数据库复制软件用来管理数据库从主机(master machines),即KDBM服务所在的机器,到从机(slave machines),即认证服务器所在的机器的复制工作.为了保持数据库的一致性,每隔一段时间就需要进行复制工作.
 用户程序用来完成登录Kerberos,改变Kerberos密码,显示和破坏Kerberos标签(ticket)等工作.

第二节  Kerberos工作原理
首先介绍一些常用术语的简写:
 c   -> 用户(client)
 s   -> 服务程序(server)
 addr  -> 用户的网络地址
 ticket  -> 令牌,用于声明用户有效性
 life  -> ticket保持有效的时间
 tgs,TGA  -> ticket-granting server
 Kerberos -> 认证服务程序
 KDBM  -> KDBM服务程序
 Kx   -> x的私有密钥
 Kx,y  -> x和y的会话密钥
 {abc}Kx  -> 用Kx加密abc
 Tx,y  -> x请求使用y的ticket
 Ax   -> x的标识符(authenticator)
 WS   -> 工作站

最新评论:
评论内容:请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名 注册
热门文章
随机推荐
About iTtang - 联系方法  - 专题列表 - 友情链接  -  高级搜索   -  帮助中心  -