J2ME中文教程 8 MIDP 2 安全体系[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

作者:mingjava  文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=271

本章将主要介绍MIDP的安全体系模型,并将结合一个具体的实例来讲述MIDP2.0安全模型的主要概念。

 

8.1    引入全新安全体系的原因

J2ME平台的主要优势之一是平台的开放性,这使得任何人都能够编写可以运行在MIDP设备上的软件。可以从网络上匿名下载MIDlet套件,正因为如此,用户可能关心一些安全和保密问题:MIDlet能否读取保密数据并将其发送给未知服务器?它能否进行未许可呼叫而让用户付费?欺诈程序能否在设备上运行并带来潜在问题?

 

除了具有碎片收集和数组边界检查等Java语言的安全功能之外,MIDP1.0 规范还增加了一些安全措施。在MIDP 1.0中,安全性限制分为低级设备安全和应用级设备安全。低级安全与MIDlet套件的类文件验证有关。该验证部分是由开发人员在预验证步骤中完成,部分是在设备上完成。之所以没有完全像JVM那样完全在设备中进行验证,主要是考虑到MIDP设备的中央处理器和内存都比较有限。

 

为了进一步增强安全性,MIDP1.0 规范还规定MIDlet套件运行在“沙箱”中,此“沙箱”能够将可用API限制在一个有限集合中。这其中有一些附加限制,例如不允许用户自定义类加载器以及禁止加入新的native函数。这些限制是应用级设备安全的一部分。

 

由于MIDP2.0以后陆续引入了很多的可选包,其中一部分涉及到敏感API的访问。原有的沙箱模型不能够满足用户的需要。为了在用户的使用方便与安全性方面取得平衡, MIDP2.0引入了全新的安全模型。

8.2    实例展示MIDP2安全模型

MIDP版本2.0中,安全模型得到改善,允许MIDlet访问敏感的API。例如,创建HTTP连接就是敏感操作之一,因为它可能涉及用户付费。MIDP 2.0引入了信任和非信任MIDlet的概念。非信任MIDlet套件对受限API的访问受到限制,它需要用户根据设备安全策略进行许可。另一方面,信任MIDlet套件可以根据安全策略自动获得一些许可。

 

为了更加形象的把MIDP2.0的安全模型展示给读者,我们首先来看一个通过HTTP连接读取数据的例子,最终把读取的数据长度显示出来。我们使用的运行环境是WTK,首先我们使用Ktoolbar新建一个项目命名为http,创建一个MIDletcom.j2medev.security.HttpMIDlet。源代码如下:

本文关键:J2ME中文教程 8 MIDP 2 安全体系
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top