快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
   (byte)0x12,       (byte)0x1,       (byte)0x2,       (byte)0x2,       (byte)0x1,       (byte)0x0     };     byte[] contextRequest = getTagAndLengthBytes(                   ASN1DataTypes.APPLICATION_TYPE,                   0, concatenateBytes (                    gssHeaderComponents, authenticationHeader                    )                 );     try {       outStream.writeInt(contextRequest.length);       outStream.write(contextRequest );       outStream.flush();       byte[] ebankMessage = new byte[inStream.readInt()];                   inStream.readFully(ebankMessage);       int respTokenNumber = getNumberOfLengthBytes (ebankMessage[1]);       respTokenNumber += 12;       byte KRB_AP_REP = (byte)0x02;       if (ebankMessage[respTokenNumber] == KRB_AP_REP){        return true;       } else        return false;     } catch (Exception io) {       io.printStackTrace();     }     return false;    }//createKerberosSession

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

时间:2011-08-05 IBM Faheem Khan

清单 22. getNoNetworkBindings() 方法

public byte[] getNoNetworkBindings() {     byte[] bindingLength = { (byte)0x10, (byte)0x0, (byte)0x0, (byte) 0x0};     byte[] bindingContent = new byte[16];     byte[] contextFlags_bytes = {       (byte)0x3e,       (byte)0x00,       (byte)0x00,       (byte)0x00     };     byte[] cksumBytes = concatenateBytes (                 concatenateBytes(bindingLength,bindingContent),                 contextFlags_bytes);     byte[] cksumType = {       (byte)0x2,       (byte)0x3,       (byte)0x0,       (byte)0x80,       (byte)0x3     };     byte[] cksum = getChecksumBytes(cksumBytes, cksumType);     return cksum;    }//getNoNetWorkBindings()

向电子银行的业务逻辑服务器发送安全消息

如果 createKerberosSession() 方法返回 true ,就知道成功地与远程 Kerberos 服务器建立了一个 安全会话。就可以开始与 Kerveros 服务器交换消息了。

看一下 清单 23 的 sendSecureMessage() 方法。这个方法取一个纯文本消息、一个加密密钥、一个 序号(它惟一地标识了发送的消息)和与服务器交换数据所用的输入输出流对象作为参数。 endSecureMessage() 方法生成一个安全消息、通过输出流将这个消息发送给服务器、监听服务器的响应 ,并返回服务器的响应。

发送给服务器的消息是用子会话密钥保护的。这意味着只有特定的接收者(拥有子会话密钥的电子银 行业务逻辑服务器)可以解密并理解这个消息。而且,安全消息包含消息完整性数据,所以电子银行的服 务器可以验证来自客户机的消息的完整性。

让我们看一下 sendSecureMessage() 方法是如何用一个纯文本消息生成一个安全 GSS 消息的。

一个 GSS 安全消息采用 token(token 格式的字节数组)的形式。token 格式由以下部分组成:

一个 GSS 头,类似于我在讨论 createK

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