北京网站托管维护,外贸网站建设推广公司,家具设计师,上海中风险地区地图Kerberos一词来源于古希腊神话中的Cerberus——守护地狱之门的三头犬#xff0c;Kerberos是为TCP/IP 网络设计的可信第三方鉴别协议#xff0c;最初是在麻省理工学院(MIT)为Athena 项目而开发的。Kerberos服务起着可信仲裁者的作用#xff0c;可提供安全的网络鉴别#xff…Kerberos一词来源于古希腊神话中的Cerberus——守护地狱之门的三头犬Kerberos是为TCP/IP 网络设计的可信第三方鉴别协议最初是在麻省理工学院(MIT)为Athena 项目而开发的。Kerberos服务起着可信仲裁者的作用可提供安全的网络鉴别允许个人访问网络中不同的机器。
1. Kerberos 模型
Kerberos模型基于Needham-Schroeder的可信第三方协议采用DES加密也可用其他算法替代)它与网络上的每个实体分别共享一个不同的秘密密钥知道该秘密密钥就是身份的证明。
Kerberos有一个所有客户和秘密密钥的数据库由于Kerberos知道每个人的秘密密钥所以它能产生一个实体证实另一个实体身份的消息。Kerberos还能产生会话密钥只供一个客户机和一个服务器(或两个客户机)使用。会话密钥用来加密双方间的通信消息通信完毕即销毁会话密钥。
Kerberos 协议如下 客户从Kerberos 请求一张票据许可票据TGTTicket Granting Ticket作为票据许可服务(TGSTicket-Granting Service该票据用用户的秘密密钥加密后发送给用户 为了使用特定的服务器客户需要从TGS中请求一张票据TGS 将票据发回给客户 客户将此票据提交给服务器和鉴别器如果客户的身份没有问题服务器就会让客户访问该服务。 (1) 请求票据许可票据
客户到Kerberosccctgs。
2票据许可票据
Kerberos到客户{Kc,tgs}Kc\{K_{c,tgs}\}K_c{Kc,tgs}Kc{Tc,tgs}Ktgs\{T_{c,tgs}\}K_{tgs}{Tc,tgs}Ktgs
3请求服务器票据
客户到TGS{Ac,s}Kc,tgs\{A_{c,s}\}K_{c,tgs}{Ac,s}Kc,tgs{Tc,tgs}Ktgs\{T_{c,tgs}\}K_{tgs}{Tc,tgs}Ktgs
4服务器票据
TGS到客户{Kc,s}Kc,tgs\{K_{c,s}\}K_{c,tgs}{Kc,s}Kc,tgs{Tc,s}Ks\{T_{c,s}\}K_s{Tc,s}Ks
5请求服务
客户到服务器{Ac,s}Kc,s\{A_{c,s}\}K_{c,s}{Ac,s}Kc,s{Tc,s}Ks\{T_{c,s}\}K_s{Tc,s}Ks,
相关缩写表示如下
ccc客户(机)sss服务器aaa客户的网络地址vvv票据的有效起止时间ttt时间标记KxK_xKxxxx的秘密密钥Kx,yK_{x,y}Kx,yxxx与yyy的会话密钥{m}Kx\{m\}K_x{m}Kx以xxx的秘密密钥加密的mmmTx,yT_{x,y}Tx,y使用yyy的xxx的票据Ax,yA_{x,y}Ax,y从xxx到yyy的鉴别码
以吃饭为例Kerbros、TGS和Server的关系如下
2. 凭证
Kerberos使用两类凭证票据(ticket)和鉴别码(authenticator)。
1票据
票据用于秘密地向服务器发送持有票据用户的身份识别票据中还包括有一些信息服务器能够用这些信息来确认使用票据的客户与发给票据的客户是同一个客户。
Kerberos票据的格式如下: Tc,ss,{c,a,v,Kc,s}KsT_{c,s} s,\{c,a,v,K_{c,s}\} K_sTc,ss,{c,a,v,Kc,s}Ks对单个的服务器和客户而言票据很有用。它包括客户名、服务器名、网络地址、时间标记和会话密钥。这些信息用服务器的秘密密钥加密。
客户一旦获得该票据他便可以多次使用它来访问服务器直到票据过期。客户无法解密票据(她不知道服务器的秘密密钥)但她可以以其加密的形式呈递给服务器。票据在网络上传送时任何在网上窃听的人都无法阅读或修改它。
2鉴别码
Kerberos鉴别码的格式如下Ac,s{c,t,key}Kc,sA_{c,s}\{c,t,key\}K_{c,s}Ac,s{c,t,key}Kc,s客户在每次需要使用服务器上的服务时都要产生一个鉴别码。该鉴别码包括用户名、时间际记和一个可选的附加会话密钥它们用服务器与客户共享的会话密钥加密。与票据不同的是鉴别码只能使用一次。客户可以根据需要产生鉴别码(它知道共享的秘密密钥)。
鉴别码可达到两个目的:
首先它包括一些以会话密钥加密的明文这表明鉴别码的发送者也知道密钥。更重要的是加封的明文包括时间标记即使记录票据和鉴别码的窃听者无法重放它们。
3. 协议
1最初票据的获取
客户给Kerberos 鉴别服务器发送一个消息该消息包括客户名ccc及其TGS服务器名。实际中客户一般只是将其名字输人系统注册程序发送该请求。Kerberos鉴别服务器在其数据库中查找客户。如果客户在数据库中Kerberos便产生一个在客户和TGS之间使用的会话密钥{Kc,tgs}\{K_{c,tgs}\}{Kc,tgs}这叫做票据许可票据。Kerberos 利用客户的秘密密钥加密会话密钥{Kc,tgs}Kc\{K_{c,tgs}\}K_c{Kc,tgs}Kc。然后为客户产生一个TGT向TGS证她的身份并用TGS的秘密密钥对其加密{Tc,tgs}Ktgs\{T_{c,tgs}\}K_{tgs}{Tc,tgs}Ktgs。鉴别服务器将这两种加密的消息发送给客户。客户解密第一个消息并恢复会话密钥。客户现在可在TGT的有效期内向TGS证实她的身份。
2服务器票据的获取
客户必须为他想使用的每一项业务获得不同的票据TGS给每个服务器分配票据。客户向TGS发送一个请求。TGS接收到请求后用自己的秘密密钥解密此TGT然后再用TGT中的会话密钥解密密鉴别码。TGS比较鉴别码中的信息与票据中的信息、客户的网络地址与发送的求地址以及时间标记与当前时间。如果每一项都匹配便允许处理该请求。TGS通过将客户有效的票据返回给服务器的方式来响应一个有效请求{Tc,s}Ks\{T_{c,s}\}K_s{Tc,s}Ks。TGS 还为客户和服务器产生一个新的会话密钥{Kc,s}\{K_{c,s}\}{Kc,s}此密钥由客户和TGS共享的会话密钥加密{Kc,s}Kc,tgs\{K_{c,s}\}K_{c,tgs}{Kc,s}Kc,tgs。然后将这两种消息返回给客户。客户解密消息同时得到会话密钥{Kc,s}\{K_{c,s}\}{Kc,s}。
3服务请求
客户向服务器鉴别自己的身份。客户产生一个鉴别码鉴别码由客户名、客户网络地址和时间标记组成用TGS为客户和服务器产生的会话密钥加密得到{Ac,s}Kc,s\{A_{c,s}\}K_{c,s}{Ac,s}Kc,s。客户的服务请求由从Kerberos接收到的票据{Tc,s}Ks\{T_{c,s}\}K_s{Tc,s}Ks和加密的鉴别码{Ac,s}Kc,s\{A_{c,s}\}K_{c,s}{Ac,s}Kc,s组成。服务器解密并检查票据和鉴别码以及客户地址和时间标记。需要相互鉴别的应用中服务器给客户返回一个包含时间标记的消息该消息由会话密钥加密。这证明服务器知道客户的秘密密钥而且能解密票据和鉴别码。客户和服务器可以用共享的密钥加密信息。