快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
应用程序数据外, GSS-Kerberos 机制使用一个 Checksum 结构用物理网络地址(即客户机可以用来与服务器进行安全通信 的网络地址)绑定安全上下文。如果使用这种功能,那么只能从它所绑定的网络地址上使用安全上下文。

不过,我不作准备在这个示例移动银行应用程序中使用这种功能。这就是为什么我在 Checksum 结构 中指定安全上下文没有任何绑定的缘故。为此,我编写了一个名为 getNoNetworkBindings() 的方法,如 清单 22 所示。getNoNetworkBindings() 方法非常简单。它只是生成一个硬编码的字节数组,表明不需 要任何网络绑定。然后它调用 getChecksumBytes() 方法以将硬编码的数组包装到 cksum 字段中。

得到了无网络绑定的 Checksum 的字节数组后,可以将这个数组传递给 getAuthenticationHeader() 方法,这个方法返回完整的认证头。

生成了认证头后, 清单 21 的 createKerberosSession() 方法将认证头字节数组与一个名为 gssHeaderComponents 的硬编码的字节数组相链接。gssHeaderComponents 字节数组包含一个 GSS 头的 字节表示,这个 GSS 头在上下文建立请求中将伴随一个认证头。

最后,将串接的 GSS 头和认证头包装到一个应用程序级别的标签号 0 中。GSS 要求所有上下文建立 请求都包装到应用程序级别的标签号 0 中。

现在完成了上下文建立请求。下一项任务就是通过一个输出流( outStream 对象)发送这个请求。发 送了请求后,监听并接收 inStream 对象上的响应。

当 createKerberosSession() 方法收到响应后,它就检查响应是确认创建一个新的上下文还是显示一 个错误消息。要进行这种检查,必须知道消息开始标签字节后面的长度字节的字节数。GSS 头字节(紧接 着长度字节)提供了答案。

喘Kerberos葎J2ME哘喘殻會貧迄?及3何蛍 - 秀羨嚥窮徨咢佩議芦畠宥佚?和?(10)

扮寂:2011-08-05 IBM Faheem Khan

音喘盾裂?哘參序佩販採序匯化議侃尖。峪頁勣岑祇窮徨咢佩議捲暦匂頁幹秀阻匯倖仟氏三珊頁詳蒸 氏三。泌惚窮徨咢佩議捲暦匂鳩範幹秀仟氏三?椎担 createKerberosSession() 圭隈祥卦指 true ?泌 惚音頁?万祥卦指 false。

賠汽 21. createKerberosSession() 圭隈

public boolean createKerberosSession (                   byte[] ticketContent,                   String clientRealm,                   String clientName,                   int sequenceNumber,                   byte[] encryptionKey,                   DataInputStream inStream,                   DataOutputStream outStream                   )    {     byte[] cksum = getNoNetworkBindings();     if (sequenceNumber == 0)       sequenceNumber++;     byte[] authenticationHeader = getAuthenticationHeader(                     ticketContent,                     clientRealm,                     clientName,                     cksum,                     encryptionKey,                     sequenceNumber                     );     byte[] gssHeaderComponents = {       (byte)0x6,       (byte)0x9,       (byte)0x2a,       (byte)0xffffff86,       (byte)0x48,       (byte)0xffffff86,       (byte)0xfffffff7,    

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