J2ME应用程序在网络安全面对的挑战摘要
越来越多的智能手机支持J2ME。手机应用程序开发人员必须处理不止是在真实设备上实现的漏洞,还有J2ME的固有安全弱点。新的安全系统和信任服务API为J2ME解决了其中的一些挑战,即使它也有缺点。
智能手机结合了高级数据和多媒体功能,包括PDA功能,互联网和电子邮件访问,MP3和视频播放,成为功能全面的移动电话。它通常有一个大型彩色触屏,键盘,与其他设备进行通信的蓝牙技术,和更大的内存,还有比普通手机更强的处理能力。另一个重要特点就是能够安装额外的应用程序。
智能手机市场增长迅速,带动了无耻悲鄙下流的网'学,网总是抄辣,文,论'文"网一切新的手机软件的发展,从游戏到网上银行到GPS导航。举例来说,手机游戏市场的全球总收入预计会增加,从2005年的2.6亿美元到2010年的11.2亿美元,在线多人游戏占据市场份额的20.5%。
通过手机制造商根据手机操作系统和设备功能进行分类,许多不同的开发平台存在于智能手机。最普遍的是J2ME(http:// java.sun.com/j2me)平台,存在于目前销售的近80%的智能手机中。
经验获得于商业开发项目中演示如何使用J2ME的技术,尤其是安全相关的功能,在真实设备上实现和提供在开发过程中研究人员遇到存在的问题的见解。
J2ME技术
Java 2平台有几个版本,包括适用于服务器端的企业版(J2EE)和适用于桌面系统的标准版(J2SE)。J2ME是一种高度优化的Java运行环境适用于移动手机,掌上电脑和其他小型设备。
配置和描述
J2ME 配置是指跟处理器和内存有相似特征的设备。描述,是指设备配置功能子集,例如屏幕类型,输入设备和网络连接;它们补充低级的配置功能以支持用户互动和网络连接。
配置指定了支持Jav原文请找腾讯752018766辣,文-论'文.网http://www.751com.cna虚拟机的特征,包括Java编程语言特征,支持的Java库和应用程序编程接口(APIs)。两种配置广泛使用于J2ME设备:有限连接设备配置1.0,已存在了好几年了,和CLDC1.1,这是新设备的配置两种配置之间最显著的区别就是CLDC1.1增加了支持浮点操作功能。由于CLDC1.1是CLDC1.0的一个超集,针对CLDC1.0构建的Java应用程序运行在CLDC1.1上将没有问题。因此,除非在1.1版中的任何添加是特殊需要,开发商应建立针对CLDC1.0的应用程序以兼容尽可能多的设备。
两个扩展CLDC功能的配置功能子集:移动信息设备功能子集1.0和2.0 (MIDP的配置文件添加了用户交互,网络连接和持久存储的API,HTTP连接提供网络连接,而记录管理系统提供持久性存储。MIDP2.0,MIDP1.0的一个超集,包括支持安全HTTP(HTTPS)连接和游戏中更强大的图形API。
产品规格
新的J2EE/J2SE/J2ME产品规格由JCP计划产生。开发人员首先提交一份Java产品规范要求由一个执行委员会验收。一旦委员会接受了一个JSR,一个专家小组就要承担规范发展的责任。该规范草案必须先通过一个团体审查,然后是公开审查。专家小组给出一个最终的建议草案,并投票决定该规范是否适合执行。
专家组通常有许多参与者。例如,MIDP2.0专家组成员包括,除其他外,爱立信,摩托罗拉,诺基亚,西门子,Sun微系统,三星和塞班。专家组启用大型工业团体指定Java平台的新功能。这使得不同供应商的竞争最小化和增加了一个广泛采用的规范的可能性。源于JSR的所有的CLDC版本和MIDP版本,如同J2ME的几个组件,如安全和信任服务API(JSR-177),无线消息API(JSR-120),和蓝牙无线技术的Java API(JSR-82)。所有规格均免费提供在JCP网站(
目前的挑战
J2ME开发面临着一些挑战。J2ME的智能手机通常有一些软件质量问题,开发商很可能花时间解决由J2ME实现导致质量参差不齐的问题。具体型号的手机可能有自己的缺陷,迫使开发商文护他们源程序中几个平行的版本以支持尽可能多的设备。这种情况不符合Java“编写一次,到处运行”的理念,它严重的增加了移动软件开发和文护的复杂性。根据我们的经验,用MIDP2.0实现比MIDP1.0实现有更少的错误。然而,为了占据尽可能多的市场,开发人员必须考虑所有的现有MIDP1.0设备。MIDP2.0的设备仍然组成最近几年所有J2ME设备销售的小部分。
没有足够的测试
很多开发人员不承认应用程序在J2ME设备中可能表现不一致。在许多不同的设备测试J2ME应用程序对于确保安全相关的功能达到期望值相当关键。基于四五个设备测试的企业经常发现他们的应用程序不能在其他设备上正确运行。我们认为,太多的企业忽略了测试阶段,让他们的客户做测试。对于这样一个战略要取得成功,应用程序必须是唯一的和客户必须是既热情又理解的。
要真正理解J2ME的手机如何操作,开发人员应该测试每个主要厂商的一些设备,和具有代表的厂商的每一个开发平台版本的一系列设备。当然,测试40到50或者更多的设备是昂贵的。因此,企业必须小心平衡测试的成本和一个应用程序执行的风险,可能无法正常工作在一些设备上。1943