快速业务通道

用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求

时间:2011-08-05 IBM Faheem Khan

简介: 在本系列的上一篇文章中,您看到了对可以安全地连接到支持 Kerveros 的服务器的 J2ME 应 用程序的描述,还可了解在字节水平上 Kerberos 加密的细节问题。本文则深入到应用程序自身内部。您 将看到如何使用 J2ME 的工具程序以及一些开放源代码库完成异常强大的加密任务。

在本系列的 上一篇文章 中,我介绍了一个使用 Kerberos 与电子银行服务器进行安全通信的移动银 行 MIDlet 应用程序。我还解释了基于 J2ME 的 Kerveros 客户机应用程序与远程服务器交换 Kerberos 票据和密钥时所交换的数据格式和消息序列。

在本文中,我将开始实现生成并处理这些消息的 J2ME 类。我将首先简单描述构成这个基于 J2ME 的 Kerveros 客户机的主要类的作用,然后我将解释并展示这些类如何生成在第一篇文章中讨论过的基本 ASN.1 数据类型。在第三节中,我将展示如何生成一个用于在 Kerveros 通信中进行加密和解密的密钥。 最后一节将展示 J2ME 客户机如何生成对 Kerveros 票据的请求。

基于 J2ME 的 Kerveros 客户机中的类

在本文中,将要讨论三个 J2ME 类的操作:

ASN1DataTypes KerberosClient KerberosKey ASN1DataTypes

类将包装所有一般性的 ASN.1 功能,如发布像 INTEGER 和 STRING 这 样的通用数据类型。 KerberosClient 类扩展 ASN1DataTypes 类,使用它的底层功能,并提供所有特定 于 Kerveros 的功能。因此,可以说我将所需要的功能简单地分为两组:所有一般性的 ASN.1 功能都在 ASN1DataTypes 类中,而所有特定于 Kerveros 的功能都在 KerberosClient 类中。这提高了代码的重用 性。如果您希望构建自己的、使用 ASN.1 功能的非 Kerveros 应用程序,那么您可以使用 ASN1DataTypes 类。

Kerberos 定义了一种利用用户的密码生成密钥的算法。 KerberosKey 类实现了这种算法 。在 Kerveros 通信中您将需要这个密钥。

我将在本文分别展示这些类中的每个方法。我还在一个单独的 源代码下载中加入了这些类。这个包将 所有东西放到一组类中,可以将它们编译为一个 J2ME 项目。这个下载包含以下文件:

ReadMe.txt ,它包含描述如何根据本文的需要练习这些代码的指导。

ASN1DataTypes.java ,它实现了 ASN1DataTypes 类。

KerberosClient.java ,它实现了 KerberosClient 类。

KerberosKey.java ,它实现了 KerberosKey 类。

J2MEClientMIDlet.java ,它提供了可以用来测试这些代码的一个非常简单的 MIDlet 包装器。

现在,我将进一步探讨这些类的细节。

用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求(2)

时间:2011-08-05 IBM Faheem Khan

生成基本 ASN.1 数据类型

清单 1 中显示的 ASN1DataTypes 类处理生成和处理 ASN.1 数据结构所需要的所有底层功能。这个类 包含两种方法: 生成(authoring) 方法负责生成 ASN.1 数据结构,而 处理(processing) 方法负责 处理已生成的或者从远程应用程序收到的消息。我将在本文中解释并实现生成方法,在本系列的下一篇文 章中讨论处理方法。

清单 1 只包含 ASN.1 类中不同方法的声明。我将在后面的几节中用单独的清单展示每一个方法的实 现。

清单 1. ASN1DataTypes 类

public class ASN1DataTypes {    public byte[] getLengthBytes(int length){}    public byte[] getIntegerBytes (int integerContents){}    public byte[] getGeneralStringBytes (String generalStringContent){}    public byte[] getOctetStringBytes (byte[] octetStringContents){}    public byte[] getBitStringBytes (byte[] 

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