用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍 - 编程入门网
密的) 部分。TGS 用服务器的密钥(一个用服务器的共享秘密生成的密钥)加密服务票据的密码文本部分,这样 只有那个服务器可以解密这个服务票据的密码文本部分。TGS 在服务票据的密码文本部分中还加入了一个 新的加密密钥。这个密钥称为 子会话密钥。注意现在有两个密钥:会话密钥和子会话密钥。
授予了服务票据之后,TGS 将服务票据包装在一个响应消息中。这个响应消息也包含一个密码文本部 分,它是用会话密钥加密的。响应消息的密码文本部分包含子会话密钥。 TGS 向客户机发送响应消息。 收到 TGS 响应后,客户机用会话密钥解密密码文本部分,从而提取出子会话密钥。客户机还提取服务 票据。 然后客户机向电子银行业务逻辑服务器发出消息,并在消息中包装了服务票据。这个消息请求服务器 与客户机建立新的安全会话。 客户机向电子银行的业务逻辑服务器发送消息。 电子银行的业务逻辑服务器从请求中提取服务票据,解密它的密码文本部分,并提取子会话密钥。这 样客户机和服务器就都掌握这个密钥了。 电子银行的服务器向客户机发送一个肯定应答。 客户机和电子银行服务器现在可以用子会话密钥进行安全通信了。 Kerberos 消息 那么这些加密是如何工作的呢?在本文的其余部分,我将详细探讨图 1 中步骤 3 到步骤 16 中交换 的 Kerberos 消息的结构。 用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍(3)时间:2011-08-05 IBM Faheem KhanTGT 请求 图 2 图示了在图 1 的步骤 3 中讨论的 TGT 请求消息的表示。 图2. TGT 请求消息的结构 Kerberos 协议定义了在 Kerberos 消息传递中使用的所有数据结构和消息的标题 (title)。注意,图 2 中消息的标题是 AS-REQ --这是一个 AS 请求。 图 2 显示了一种嵌套框的结构。每一个框表示一个数据字段。一些字段又包含了不同的字段,从而构 成了一种嵌套的层次结构。 最外面的框标记为 AS-REQ ,包含一个标记为 KDC-REQ 的更小的框。这个 KDC-REQ 框包含四个字段 : pvno :这个数据字段表示 Kerberos 协议版本号。本系列文章的讨论是针对 Kerveros 版本 5 的, 它相当稳定,并且在目前是最新的。 msg-type :可以通过消息类型号来识别不同的 Kerberos 消息。TGS 请求消息的类型号是 10。 padata :这是一个可选的字段,在大多数 TGT 请求消息中都没有它。这个字段的目的是加入身份验 证信息。在本节后面描述服务票据请求时我将描述 padata 字段的结构。 第四个字段标记为 req-body ,它是 TGT 请求的正文。它又进一步分为几个字段: kdc-options : 这个字段表示 KDC 选项。Kerveros 定义了客户机可能希望请求的几个选项。例如, 客户机可能需要一个 forwardable 票据(可以转发给不同 KDC 服务器的票据)。与此类似,客户机可能 会请求一个 renewable 票据(可以在失效后更新的票据)。在本系列文章的后面,我将讨论一些可用的 选项,特别是那些与我的移动银行应用程序有关的选项。 用Kerberos为J2ME应用程序上锁,第1部分 - Kerberos数据格式介绍(4)时间:2011-08-05 IBM Faheem Khancname :客户的用户名。 realm :KDC 领域(realm)。注意,使用 Kerberos 的每一个机构都可以建立自己的领域。领域就像 信任域,比如我们的电子银行。一个领域可能跨越或者不跨越企业边界。这意味着一个领域可能需要或者 不需要与属于其他企业的用户通信。在移动银行应用程序中,我将尽量保持简单,假定所有用户(如 Alice 和 Bob)是在电子银行自己的企业中注册的。 sname :这是一个标识客户机将向其出示所请求的票据的服务器的名称。对于 TGT 请求, sname 字 段指定了 TGS 的名称(因为客户机最终要向 TGS 展示 TGT)。另一方面,对于服务票据请求(您将 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |