用Kerberos为J2ME应用程序上锁,第2部分

简介: 在本系列的上一篇文章中,您看到了对可以安全地连接到支持 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 包装器。

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

时间: 2024-08-02 18:41:00

用Kerberos为J2ME应用程序上锁,第2部分的相关文章

用Kerberos为J2ME应用程序上锁,第1部分

简介: 用户需要确保所使用的无线应用程序不会损害他们的敏感信息.其中一种方法就是使用行业标 准协议如 Kerberos 来提供安全性.在本系列中,Faheem Khan 将创建一个示例 J2ME MIDlet,它使用 Kerberos 来保护财务数据.本文是该系列的第一篇文章,他通过解释为他的应用程序的安全性提供骨架 的 Kerberos 数据格式,介绍了一些基本知识. 许多用户不愿意使用通过无线连接发送敏感数据的应用程序,因为他们不信任无线安全性.但是使传 统有线网络上的电子商务的安全成为可能

用Kerberos为J2ME应用程序上锁,第3部分

得到一个服务票据 已经处理了 TGT 响应并提取了 TGT 和会话密钥.现在可以使用这个 TGT 和会话密钥向 KDC 服务器 请求一个服务票据.对服务票据的请求类似于对我在清单 1 中生成的对 TGT 的请求.我在 TGT 请求中 省略的可选 padata 字段在服务票据请求中不再是可选的了.因此,需要在服务票据请求中加上 padata 字段. padata 字段是包含两个字段 ―― padata-type 和 padata-value ―― 的 SEQUENCE.padata-value 字

基于MVC模式的J2ME应用程序框架设计

1 J2ME应用程序框架的现状 Sun公司在1999年6月推出了J2ME(Java 2 MicroEdition,Java 2袖珍版).J2ME是专门为那些使用有限电源.有限网络连接以及有限图形用户界面能力的设备开发的,满足了消费电子和嵌入式设备开发的需要. 而7年后的今天,消费电子和嵌入式设备发展迅速.硬件设备速度越来越快,存储容量也越来越大,这也就自然带动了软件的发展.MIDP 2.0和CLDC 1.1也相继问世,各种各样的JSR也层出不穷. 硬件平台和软件平台的飞速发展自然带动了人们需求的

J2ME手机程序开发中的九大注意要点

程序 一.J2ME中需要的Java基础知识 现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明. J2ME中使用到的Java基础知识: 1.Java语法基础:包括基本数据类型.关键字.运算符等等 2.面向对象的思想:类和对象的概念,继承和多态等等. 3.异常处理 4.多线程 J2ME中没有用到的Java基础

在J2ME手机程序开发中使用颜色

程序 在J2ME手机开发过程中,需要经常用到颜色来进行绘制,增强程序的表现效果,下面就介绍一下如何使用颜色.       由于J2ME技术比较简单,所以没有实现专门的颜色类,而只是使用RGB的概念来代表颜色.这里简单介绍一下RGB的概念,颜色是由红(Red).绿(Green).蓝(Blue)三原色组成的,所以可以使用这三个颜色的组合来代表一种具体的颜色,其中R.G.B的每个数值都位于0-255之间.在表达颜色的时候,即可以使用三个数字来表达,也可以使用一个格式如0X00RRGGBB这样格式的十六

J2ME中程序优化的十个小方法

j2me程序由于其特殊的运行环境限制,所以优化就显得比较重要,以下是在学习j2me编程所收集的一些技巧和自己的心得. 本文主要是说明j2me平台上的特殊优化方法,与j2se重复的一些技巧就不再赘述了. 1.显示图象时确定好你的fps,最好先做几次小实验,这样能让你在显示效果和运行速度上有比较好的平衡. 2.GamaCanvas.getGraphics()每次都会产生一个全新的对象,但是对这些对象的操作都是对同一个graphics,所以还是只取一次供后面使用. 3.让多个对象使用同样的监听器,比如

j2me网络程序中移动资费页面的处理

自中国移动启动上网资费页面提醒后,导致了很多的J2ME联网出现了联不上服务器的问题.即在j2me程序中启动联网后,在有些地区,有些时候,移动网关会把我们的请求截下,返还一个资费提醒的页面给我们,这样我们的服务器将不会收到我们的请求,导致程序出现联网失败的错误. 因此我们在处理网络连接时要加入对移动资费页面的处理,我们可以在发送网络请求后,对返回的response进行http头的检测,如果我们检测到返回的content-type是text/vnd.wap.wml,我们可以扔掉这个response,

j2me 实习程序员

问题描述 苏州有没有手机游戏公司招人,我可以免费给他们做联系qq:961195870 解决方案 解决方案二:这个办法不错,,,,,,,,,,,,,解决方案三:www.51job.comshenghuo.g.cn解决方案四:祝福解决方案五:祝福..解决方案六:祝愿找到个好单位....解决方案七:祝福你....解决方案八:呵呵~~解决方案九:找到了工作,我免费为你做!

教您如何使用EclipseME开发J2ME程序(3)

2 开发 J2ME项目 要创建一个 J2ME 应用程序,回到"File"菜单,选择"New"项,并在子菜单中选择"Other".然后执行以下步骤: (1). 进入"J2ME"选项,选择"J2ME Midlet"并单击"Next"(参见图9). (2). 填上应用程序名,其他设置采用默认设置,并单击"Finish"(参见图10),完成应用程序创建. 图 9. 创建 J2