用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍 - 编程入门网
) 指定 pvno 字段的长度。这个长度字节的位 8 是 0 ,这表明我使用单字节长 度表示法。位 7 到位 1 ( 0000011 ) 指定长度为 3。这里要注意,正如前面所解释的,当结构的长度小 于 127 时,我就使用单字节长度表示法。
pvno 字段的内容从表 2 中的第 9 个字节开始。pvno 字段是用 INTEGER 基本数据类型构建的,所以 我可以期望 pvno 的内容为一个整数值。 字节 9 ( 00000010 ) 表示 INTEGER 标签。位 8 和位 7 ( 00 ) 标识这是一个通用标签,位 6 (0) 说明它是基本类型,位 5 到位 1 ( 00010 ) 表明标签号为 2(见表 1)。 位 10 ( 00000001 ) 提供了这个 INTEGER 数据类型在单字节长度表示法中的长度。INTEGER 值只由 一个字节组成,即下一个字节(第 11 个字节)。 您将注意到字节编码过程遵循一个清晰的模式。我以对应于清单 1 中一个字段的标签值开始。标签值 后面是长度字节,长度字节后面是标签的内容。我不断使用嵌套的、分层次的构建结构,直到达到一个基 本数据类型。 您可以根据这种模式完成表 2。表 2 的说明栏可以帮助您理解每一字节的作用。对于本文中的要讨论 的其他消息,我不会提供逐字节的分析,不过对这个消息的分析可以使您了解它们的工作方式。 用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍(8)时间:2011-08-05 IBM Faheem Khan包装 TGT 的响应 图 3 是一个 AS 发出的、包装了 TGT 的响应消息的图形表示。图 3 同样使用了图 2 中展示的嵌套 框结构。 图 3. AS 的 TGT 响应的结构 图 3 中的主框(外围框)标记为 AS-REP ,它包含一个标记为 KDC-REP 的更小的框。KDC-REP 是由 几个字段组成的一个序列。 pvno :在讨论图 2 时我解释了这个字段。 msg-type :消息的类型。它是一个整数,对于 TGT 响应消息它的值应该为 11。 padata :在讨论图 2 时我对这个字段做过说明。这是一个可选字段,在大多数 TGT 响应消息中没使 用它。 crealm 和 cname :在讨论图 2 时对这些字段做过说明。 ticket :实际的 TGT。我将在本文的后面一节中讨论 Kerberos 票据自身的格式。 enc-part :这是一个加密数据的包装器。Kerveros 消息中所有加密的部分都包含三个字段: etype :指定用于进行密码加密的加密算法的标识符。 kvno :用于加密的加密密钥的版本。AS 使用客户机的密钥进行加密。这个字段指定用于进行加密的 密钥的版本。 cipher :一系列字节。这是实际的加密数据。数据解密后,我就有了另一个结构,如图 4 所示。 图 4. TGT 响应消息的加密部分的结构 用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍(9)时间:2011-08-05 IBM Faheem Khan图 4 显示了对 TGT 响应消息中加密部分进行解密后得到的结构。它包含以下字段: key :这是会话密钥。当前会话的后续通信将使用这个密钥而不是密码密钥。 last-req :这个字段指定客户机的最后一次票据请求的时间。这个字段有助于通知客户机,它的请求 已经收到了。 nonce :在讨论图 2 时我对这个字段做过说明。AS 将包含它在请求中收到的随机数的一个副本。这 有助于检测回复攻击。如果黑客取得了 TGT 响应并想反复回复它,那么客户机就可以将响应的 nonce 字 段与其请求进行比较以检测回复。 key-expiration :这是一个可选字段,它指定客户机的密钥失效的时间。 flags :这个字段对应于图 2 的 TGT 请求的 kdc-options 字段。这些 flags 表示 Kerberos 客户 机可能请求的不同可选功能。AS 将标志发送回客户机,从而允许客户机比较 AS 是否可以提供所请求的 可选功能。 authtime :AS 发出票据的时间。 starttime :票据生效的时间。 endtime :票据失效的时间。 renew-till :可更新的票据的最终失效时 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |