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

简介: 用户需要确保所使用的无线应用程序不会损害他们的敏感信息。其中一种方法就是使用行业标 准协议如 Kerberos 来提供安全性。在本系列中,Faheem Khan 将创建一个示例 J2ME MIDlet,它使用 Kerberos 来保护财务数据。本文是该系列的第一篇文章,他通过解释为他的应用程序的安全性提供骨架 的 Kerberos 数据格式,介绍了一些基本知识。

许多用户不愿意使用通过无线连接发送敏感数据的应用程序,因为他们不信任无线安全性。但是使传 统有线网络上的电子商务的安全成为可能的这些协议,同样也可以使无线交易成为安全的。在这个由三篇 文章组成的系列中,我将展示 J2ME 客户机和服务器端 Java 应用程序之间使用 Kerberos 协议进行的安 全消息传递。我将开发一个移动银行 MIDlet 应用程序,它可以通过 Internet 安全地发送和接收付款信 息。MIDlet 应用程序将使用一个基于 J2ME 的 Kerberos 客户机来进行实际的安全消息传递。在本文中 ,我首先解释移动银行应用程序的使用模型,然后我将解释 Kerberos 消息交换的顺序,从而为后续的 J2ME 客户机和服务器端 Java 应用程序之间进行的安全消息传递建立安全的上下文。紧接着描述了 Kerberos 消息传递中使用的数据格式。本文的最后一部分简单介绍了 Kerberos 客户机的体系结构,它 最终创建并处理 Kerberos 消息和数据格式。

一个用于移动银行的安全 MIDlet

我将首先考虑这样一个用例场景:其中有两个拥有电子银行帐户的移动电话用户 Alice 和 Bob。

如果 Alice 想要付款给 Bob,那么她就向 MIDlet 应用程序提供 Bob 的手机号码(或者他的银行帐 户号码)并让 MIDlet 向他付款。MIDlet 安全地与电子银行联系并请求电子银行向 Bob 付款。电子银行 完成这笔交易并将确认发送回 Alice。Bob 在他的手机上也安装了 MIDlet,可以用于查看 Alice 的付款 是否到达他的帐户。MIDlet 安全地与电子银行进行通信以验证付款状态。

我在本系列文章中将设计并实现的 MIDlet 处理所有与电子银行进行的特定于应用程序的消息传递。 当然,MIDlet 必须保证通信是安全的。下面的功能构成了 MIDlet 的安全性需求:

电子银行应该可以确认请求付款和更新帐户状态的用户的身份。这种安全性需求通常称为 身份验证, 其中服务器需要验证发出请求的客户的身份。

像 Alice 和 Bob 这样的用户应该可以确保他们是真的与电子银行而不是一些恶意的黑客进行通信。 这也是一种身份验证的情况,在这里客户希望对服务器进行身份验证。客户和服务器彼此验证的情况称为 双向身份验证。

所有通信都应该是加密的以维护消息的机密性。即使黑客可以得到在网络上传送的消息字节,他也不 能理解这些加密的数据字节的意义。

通信的双方(用户和电子银行)都应该能够验证收到的消息的完整性。如果恶意黑客改变了传输中的 消息,那么接收一方应该可以发现这种改变。

我将使用 Kerberos 协议来满足这些安全性需求。我将所有与 Kerberos 相关的功能封装到一个小型 的、适合于 J2ME 设备的客户端 Kerberos 实现中。我们的移动银行 MIDlet 只需要负责特定于应用程序 的消息传递功能,而 Kerberos 客户机将处理所有安全问题。

这种技术对于读者来说有一个好处。Kerberos 客户机包装了安全功能(身份验证、机密性和消息完整 性)。因此,如果要开发自己的 MIDlet,以用于发出和接收付款以外的目的,您也可以使用这里描述的 Kerberos 客户机来使之具有安全功能。

本文的大部分用于讨论 Kerberos 是如何与应用程序一同工作的,以及描述为了建立安全通信而在客 户机与服务器之间交换的不同消息。我将在本系列的后续文章中详细描述客户端应用程序本身。

Kerberos 消息交换

本节我将描述以下三个参与者之间的 Kerberos 消息交换:

支持 J2ME 的无线设备

无线设备用户

电子银行

图 1. 为建立安全通信上下文而进行的 Kerberos 消息交换

图 1 给出了三个参与者之间出现的消息交换的概括视图。本节我将讨论这一视图并解释图中显示的消 息交换的最终结果。下一节解释每一消息的具体细节(即结构和格式)。

注意,图 1 中支持 J2ME 的无线设备包含两个参与者:MIDlet 和 Kerberos 客户机。与此类似,电 子银行系统也包含两个参与者:业务逻辑服务器和 Kerberos 分发中心 (Kerberos Distribution Center ,KDC)。

时间: 2024-10-02 18:35:54

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

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

简介: 在本系列的上一篇文章中,您看到了对可以安全地连接到支持 Kerveros 的服务器的 J2ME 应 用程序的描述,还可了解在字节水平上 Kerberos 加密的细节问题.本文则深入到应用程序自身内部.您 将看到如何使用 J2ME 的工具程序以及一些开放源代码库完成异常强大的加密任务. 在本系列的 上一篇文章 中,我介绍了一个使用 Kerberos 与电子银行服务器进行安全通信的移动银 行 MIDlet 应用程序.我还解释了基于 J2ME 的 Kerveros 客户机应用程序与远程服务器交

用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