Sun 企业鉴别机制指南

借助 SEAM,获得对一个服务的访问

一个用户为了能够访问一个具体服务器上的一个具体服务,必须获得两个东西。第一个是一个用于票券授予服务的资格 (即 TGT)。一旦票券授予服务业已为该资格解密,服务就为用户请求访问服务器创建第二个资格。这第二个资格就可以用于请求对服务器上的服务进行访问。服务器成功地为第二个资格解密之后,用户就被给予访问。该步骤在下文有更详细的描述。

为票券授予服务获得一个资格

  1. 为了启动鉴别步骤,客户机为一个具体的用户授权对象发送一个请求到鉴别服务器。该请求未经加密就被发送。请求中没有包含安全信息,因而没有必要使用加密。

  2. 当请求被鉴别服务收到时,就在 KDC 数据库中检索用户的授权对象名称。如果有一个授权对象与之匹配,鉴别服务就为该授权对象获得私有密钥。鉴别服务然后就生成一个对话密钥,为客户机和票券授予服务所用 (称之为对话密钥 1),以及一个用于票券授予服务的票券 (票券 1)。该票券也称作具有票券授予权的票券 (TGT)。对话密钥和票券两者均使用用户的私有密钥进行过加密,而信息被发回到客户机。

  3. 客户机使用该信息来为对话密钥 1 和票券 1 解密,使用的是针对用户授权对象的私有密钥。因为私有密钥应当只为用户和 KDC 数据库所知晓,包中的信息应当是安全的。客户机将信息存储在资格高速缓存中。

通常在这个过程中,用户被提示录入其口令。如果其所录入的口令与用于建立存储在 KDC 数据库中的私有密钥的那个口令相同,则客户机可以成功地为鉴别服务所发送的信息解密。现在客户机拥有一个资格,可以用于票券授予服务。客户机已作好准备,可以为一个服务器请求一个资格了。

图形 7-2 为票券授予服务获得一个资格

Graphic

为一个服务器获得一个资格

  1. 如要请求对一个具体服务器的访问,一个客户机必须首先业已从鉴别服务,为该服务器获得一个资格 (请参见"为票券授予服务获得一个资格")。然后客户机发送一个请求到票券授予服务,其中包括服务授权对象名称,票券 1, 和一个借助对话密钥 1 加密过的鉴别符。票券 1 原来由鉴别服务使用票券授予服务的服务密钥进行过加密。

  2. 因为票券授予服务的服务密钥为票券授予服务所知晓,票券 1 可以得到解密。票券 1 中所包含的信息包括对话密钥 1,因而票券授予服务可以为鉴别符解密。此时此刻,用户授权对象得到票券授予服务的鉴别。

  3. 一旦鉴别成功,票券授予服务就为用户授权对象和服务器生成一个对话密钥 (对话密钥 2),为服务器生成一个票券 (票券 2)。然后使用对话密钥 1,对话密钥 2 和票券 2 进行加密。因为对话密钥 1 只为客户机和票券授予服务所知晓,该信息是安全的,可以跨越网络安全地进行设定。

  4. 当客户机接收到该信息包时,它就使用对话密钥 1 为信息解密,而该密钥是其业已存储在资格高速缓存中的。客户机业已获得一个可以用于服务器的资格。现在,客户机已作好准备,可以请求到该服务器上的一个具体服务的访问了。

图形 7-3 为一个服务器获得一个资格

Graphic

获得到一个具体服务的访问

  1. 如要请求到一个具体服务的访问,客户机必须首先业已从鉴别服务器为票券授予服务获得了一个资格,并从票券授予服务获得了一个服务器资格 (请参见"为票券授予服务获得一个资格""为一个服务器获得一个资格")。客户机可以发送一个请求到服务器,其中包括票券 2 和另一鉴别符。鉴别符是借助对话密钥 2 加密过的。

  2. 票券 2 是由票券授予服务借助服务的服务密钥加密过的。因为服务密钥为服务授权对象所知晓,服务可以为票券 2 解密并获得对话密钥 2。然后对话密钥 2 可以用于为鉴别符解密。如果鉴别符成功地得到解密,客户机就被给予对服务的访问了。

图形 7-4 获得对一个具体服务的访问

Graphic