快速业务通道

用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
给 KDC 服务器以请求 TGT 的 TGT 请求(一个 AS-REQ 结构)中 实际的字节序列。表 2 中显示的字节序列是我们要分析的 AS-REQ 编码过程的最终结果。

因为它比较长,所以我用一个 单独的文件来提供表 2。在阅读进行下面的讨论时您应该在一个单独的 浏览器窗口中打开它。

看一下表 2 中的第一个字节 ( 01101010 )。这是消息的第一个字节,表示清单 1 的 AS-REQ 结构的 开始(图 2 中的外围框)。位 8 和位 7 ( 01 ) 表明这是一个应用程序级标签。位 6 ( 1 ) 表明这是 一个构建的结构。位 5 到位 1 ( 01010 ) 表示 AS-REQ 的标签号(我在前面的讨论中说过 AS-REQ 结构 的应用级标签号为 10,其二进制表示为 01010 )。

可以将标签字节分为三部分:

位 8 和位 7 指定标签的 类型或者类。对于应用程序级标签,位 8 和位 7 应该是 01 ,对于上下文 特定的标签,它们应该是 10 ,对于通用标签,它们是 00 。

位 6 指定标签是基本的 ( 0 ) 还是构建的 ( 1 )。

位 5 到位 1 编码标签号。

因为用于表示标签号的位数限制了可以您可以拥有的标签的个数,所以您可能奇怪为什么只有 5 位用 于标签号。ASN.1 定义了编码标签号的一个完整机制,与标签号的大小无关。不过,Kerberos 没有定义 任何不能用 5 位表达的标签号。因此,为了将讨论集中于 Kerberos,我在这里将不讨论如何处理大的标 签号。

现在,看一下表 2 中的第二个字节 ( 10000001 )。在标签字节后,有一个或者多个 长度字节。这些 长度字节指定了构成完整标签的总字节数。

有两种定义长度字节的方法。第一种是 单字节长度表示,第二种是 多字节长度表示。对于单字节长 度表示,要使第一个长度字节的位 8 为 0 ,并用其余的位指定长度字节的个数。例如,如果您想说这个 结构中有 65 个字节,可以将长度值编码为 01000001 (位 8 设置为 0 ,位 7 到位 1――1000001 ― ―表示 65)。在这种方法中,总是有一个长度字节,下一个字节标记结构内容的开始。用这种方法可编 码的最大值是 127。

对于多字节表示法,设置第一个长度字节的位 8 为 1 ,并用位 7 到位 1 指定随后的长度字节的个 数。例如,如果要编码值 210,第一个长度字节将是 10000001 (位 8 设置为 1 ,位 7 到位 1 设置为 1 ,即 0000001 表明还有一个长度字节),后面再跟一个字节,其值为 11010010 (表示十进制的 210 )。

看一下表 2 中的字节 2 和字节 3 ,它们分别是 10000001 和 11010010 。这意味着我用多字节长度 表示法来指定 AS-REQ 结构的长度,即 210 。

注意在表 2 中共有 213 字节,其中 210 是在第 3 个字节后。在字节 3 后的所有 210 个字节都属 于 AS-REQ 结构。因此,第 4 个字节和后面的所有字节构成了 AS-REQ 结构的内容。

注意,清单 1 中 AS-REQ 结构后面是 KDC-REQ 结构的定义,这个结构是一个 SEQUENCE 。回想一下 ,在表 1 中 SEQUENCE 是 通用标签,它是 构建的数据类型,并且其标签号为 16。这就是为什么表 2 中字节 4 的值为 00110000 。位 8 和位 7 ( 00 ) 指定这是一个通用标签。位 6 ( 1 ) 表明这个结构 是构建的。位 5 到位 1 指定标签号,对于 SEQUENCE 来说这是 16(二进制为 10000 )。

字节 5 和字节 6 指定 KDC-REQ 结构中的字节数。字节 5 ( 10000001 ) 指定有一个长度字节。字节 6 ( 11001111 ) 指定 KDC-REQ 序列的实际长度 (207)。我已经解释过长度字节的工作方式。

清单 1 中 KDC-REQ 序列的第一个字段是 pvno ,它是一个 上下文特定的,构建 的字段,其标签号 为 1 。表 2 中的字节 7 ( 10100001 ) 表示这个字段。位 8 和位 7 ( 10 ) 表示这是一个上下文特定 的标签。位 6 ( 1 ) 表示这是一个构建的字段,位 5 到位 1 ( 00001 ) 指定 pvno 字段的标签号。

字节 8 ( 00000011

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号