用Kerberos为J2ME应用程序上锁,第3部分 - 建立与电子银行的安全通信(下) - 编程入门网
(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() 方法
向电子银行的业务逻辑服务器发送安全消息 如果 createKerberosSession() 方法返回 true ,就知道成功地与远程 Kerberos 服务器建立了一个 安全会话。就可以开始与 Kerveros 服务器交换消息了。 看一下 清单 23 的 sendSecureMessage() 方法。这个方法取一个纯文本消息、一个加密密钥、一个 序号(它惟一地标识了发送的消息)和与服务器交换数据所用的输入输出流对象作为参数。 endSecureMessage() 方法生成一个安全消息、通过输出流将这个消息发送给服务器、监听服务器的响应 ,并返回服务器的响应。 发送给服务器的消息是用子会话密钥保护的。这意味着只有特定的接收者(拥有子会话密钥的电子银 行业务逻辑服务器)可以解密并理解这个消息。而且,安全消息包含消息完整性数据,所以电子银行的服 务器可以验证来自客户机的消息的完整性。 让我们看一下 sendSecureMessage() 方法是如何用一个纯文本消息生成一个安全 GSS 消息的。 一个 GSS 安全消息采用 token(token 格式的字节数组)的形式。token 格式由以下部分组成: 一个 GSS 头,类似于我在讨论 createK |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |