分享

Kerberos:网络认证协议

 jweifeng 2012-03-03
  Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”
  Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。
  认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。证书的构成为: 1) 服务器 “ticket” ; 2) 一个临时加密密钥(又称为会话密钥 “session key”) 。客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。
  上述认证交换过程需要只读方式访问 Kerberos 数据库。但有时,数据库中的记录必须进行修改,如添加新的规则或改变规则密钥时。修改过程通过客户机和第三方 Kerberos 服务器(Kerberos 管理器 KADM)间的协议完成。有关管理协议在此不作介绍。另外也有一种协议用于维护多份 Kerberos 数据库的拷贝,这可以认为是执行过程中的细节问题,并且会不断改变以适应各种不同数据库技术。
  Kerberos又指麻省理工学院为这个协议开发的一套计算机网络安全系统。系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。Kerberos的扩展产品也使用公开密钥加密方法进行认证。

编辑本段协议结构

Kerberos 信息

  * 客户机/服务器认证交换
  <
  信息方向 信息类型
  客户机向 Kerberos KRB_AS_REQ
  Kerberos 向客户机 KRB_AS_REP或KRB_ERROR
  * 客户机/服务器认证交换
  信息方向 信息类型
  客户机向应用服务器 KRB_AP_REQ
  [可选项] 应用服务器向客户机 KRB_AP_REP或 KRB_ERRORR
  * 票证授予服务(TGS)交换
  信息方向 信息类型
  客户机向 Kerberos KRB_TGS_REQ
  Kerberos 向客户机 KRB_TGS_REP或KRB_ERROR
  * KRB_SAFE 交换
  * KRB_PRIV 交换
  * KRB_CRED 交换
  Kerberos的是MIT为雅典娜(Athena)计划开发的认证系统。

Kerberos的组成

  Kerberos应用程序库:应用程序接口,包括创建和读取认证请求,以及创建safe message 和private message的子程序。
  加密/解密库:DES等。
  Kerberos数据库:记载了每个Kerberos 用户的名字,私有密钥,截止信息(记录的有效时间,通常为几年)等信息。
  数据库管理程序:管理Kerberos数据库
  KDBM服务器(数据库管理服务器):接受客户端的请求对数据库进行操作。
  认证服务器(AS):存放一个Kerberos数据库的只读的副本,用来完成principle的认证,并生成会话密钥.
  数据库复制软件:管理数据库从KDBM服务所在的机器,到认证服务器所在的机器的复制工作,为了保持数据库的一致性,每隔一段时间就需要进行复制工作.
  用户程序:登录Kerberos,改变Kerberos密码,显示和破坏Kerberos标签(ticket)等工作。
  Microsoft Windows Server 2003操作系统上实现了Kerberos5身份验证协议。Windows Server2003总是使用扩展公钥身份验证机制。KerBeros身份验证客户端作为SSP(Security Support Provider)通过访问SSPI(Security Support Provider Interface)来实现身份验证。用户身份验证初始化过程被集成在Winlogon这SSO(Single Sign-On)体系中。

编辑本段Kerberos缺陷

  1.失败于单点:它需要中心服务器的持续响应。当Kerberos服务结束前,没有人可以连接到服务器。这个缺陷可以通过使用复合Kerberos服务器和缺陷认证机制弥补。
  2.Kerberos要求参与通信的主机的时钟同步。票据具有一定有效期,因此,如果主机的时钟与Kerberos服务器的时钟不同步,认证会失败。默认设置要求时钟的时间相差不超过10分钟。在实践中,通常用网络时间协议后台程序来保持主机时钟同步。
  3.管理协议并没有标准化,在服务器实现工具中有一些差别。
  4.因为所有用户使用的密钥都存储于中心服务器中,危及服务器的安全的行为将危及所有用户的密钥。
  5.一个危险客户机将危及用户密码。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多