快速业务通道

用Kerberos为J2ME应用程序上锁,第3部分 - 建立与电子银行的安全通信(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
完成这项任务。

再次调用 getTagAndLengthBytes() 方法生成对应于第 2 步生成的 padata-value 的 padata-type 字段。

现在,链接 padata-type 和 padata-value 字段。

将第 4 步链接的字节数组放入一个 SEQUENCE 中。这个 SEQUENCE 表示一个 PADATA 结构(如 第一 篇文章的图 5 和清单 3所示)。

第一篇文章的图 5 和清单 3 中显示的 padata 字段是 PADATA 结构的一个 SEQUENCE 。这意味着一 个 padata 字段可以包含几个 PADATA 结构。不过,只有一个 PADATA 结构要包装到 padata 字段中,这 意味着只要将第 5 步得到的 SEQUENCE 包装到另一个外部或者更高层的 SEQUENCE 中。

第 6 步的更高层 SEQUENCE 表示 PADATA 结构的 SEQUENCE ,现在可以将它包装到 padata 字段中( 一个特定于上下文的标签号 3)。

在 清单 20 的结尾处的 if (kerberosTicket!=null) 块中可以找到 getTicketResponse() 方法中增 加的所有新代码。

到此就结束了对于修改现有的 getTicketResponse() 方法以使它可同时用于 TGT 和服务票据请求的 讨论。getTicketResponse() 方法生成一个服务票据请求、将这个请求发送给 KDC 、接收服务票据响应 、并将响应返回给调用应用程序。

从服务票据响应中提取服务票据和子会话密钥

服务票据响应类似于 TGT 响应。在 清单 13 中的 getTicketAndKey() 方法解析一个 TGT 响应以提 取 TGT 和会话密钥。同一个方法也解析服务票据响应以从服务票据响应中提取服务票据和子会话密钥。 所以,不必编写任何提取服务票据和子会话密钥的代码。

用Kerberos为J2ME应用程序上锁,第3部分 - 建立与电子银行的安全通信(下)(9)

时间:2011-08-05 IBM Faheem Khan

创建一个安全通信上下文

现在有了与电子银行的业务逻辑服务器建立安全通信上下文所需要的两项内容:子会话密钥和服务票 据。这时 Kerberos 客户机必须生成针对电子银行的业务逻辑服务器的上下文建立请求。

参见 第一篇文章的图 7 和清单 5,它们描述了客户机为建立安全上下文而发送给电子银行服务器的 消息。清单 21 中显示的 createKerberosSession() 方法处理与电子银行的业务逻辑服务器建立安全通 信上下文的所有方面(包括生成上下文建立请求、向服务器发送请求、从服务器中获得响应、解析响应以 检查远程服务器是否同意上下文建立请求,并将这些工作的结果返回给调用应用程序)。

看一下 清单 21 中的 createKerberosSession() 方法,它有以下参数:

ticketContent 字节数组带有准备用于建立安全上下文的服务票据。

clientRealm 字符串包装了请求客户机所属的域 realm 的名字。

clientName 字符串指定了请求客户机的名字。

sequenceNumber 参数是一个表示这个消息序号(sequence number)的 integer。

encryptionKey:子会话密钥。

inStream 和 outStream 是 createKerberosSession() 方法用来与电子银行的服务器通信的输入输出 流。

正如在第一篇文章中介绍的,要使用 Java-GSS 实现电子银行的服务器端逻辑。GSS-Kerberos 机制规 定服务票据包装在一个认证头中,而这个认证头本身又包装在 第一篇文章的图 7 和清单 5 中显示的 InitialContextToken 包装器中。

可以使用 清单 19 的 getAuthenticationHeader() 方法包装服务票据。回想一下在 清单 20 的 getTicketResponse() 方法中我使用了 getAuthenticationHeader() 方法包装一个 TGT。

为了生成认证头,需要一个 Checksum 。回想在讨论 清单 19 的 getAuthenticationHeader() 方法 时说过, Checksum 的目的是加密绑定认证头与一些应用程序数据。但是,与票据请求认证头不一样,上 下文建立认证头不带有应用程序数据。

GSS-Kerberos 机制出于不同的目的使用 Checksum 结构。除了将认证头绑定到一些

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号