基于CLDC+MIDP的无线应用程序具有与生俱来的安全特性,这得益于Java语言和JAVA平台的安全机制。即使是有破坏性的程序也只能伤害到虚拟机层,不会伤害到手机操作系统。本文并不是要专门针对MIDP2.0的安全体系结构进行介绍,而是力图结合Java语言、虚拟机等方面的安全设计谈谈无线应用的安全结构。
Java语言具有安全的特性,这得益于下面三个方面的支持。
java语言是健壮的、安全的
在java中规定了所有原始数据类型的精确尺寸,并且这不依靠于底层的操作系统。java具有非常出色的异常处理机制,对数组越界操作和公指针操作提供检查,一经发现会抛出异常。要知道假如在c语言中由于程序的不健全导致数组越界操作是非常危险的事情。java中采用的是引用机制,没有提供指针运算的操作。以上几点确保了java语言本身的安全性。
java编译器和运行环境
Java的编译器和运行环境通过提供的一些特性来确保安全的实现,这些特性包括:类装载、Class文件验证。总之,这将确保Java程序必须要在一个JVM规范答应的范围内运行。假如读者有爱好可以参考一下《深入Java虚拟机2》
SecurityMananger 以上两个方面可以确保怀有恶意的代码不被执行,这样虚拟机就不会被破坏。但是针对applet或者非信任的网络程序则无能为力,java中定义了SecurityManager类答应用户订制安全政策,什么代码可以被执行,什么不可以被执行。
用过Applet的程序员都知道沙箱这个词,它同样是为了确保安全。Applet的运行需要从网络上下载到本地上来,在你确认它是否安全之前让它访问你的本地资源的话那将是非常危险的事情。因此java采用了沙箱的机制,让applet运行在一个受限的环境内。
由于J2SE中的安全机制需要很大内存的支持,因此在J2ME(CLDC+MIDP)中并没有采取。在J2ME中采用的是两层安全结构,包括底层的KVM安全机制和上层的应用程序安全机制。
在KVM的安全机制中,主要是通过class文件验证来确保安全的,一旦这个class文件是非安全的,比如它含有对危险内存空间的引用,那么KVM将不会运行它的。但是由于class文件在验证上比较消耗时间,因此KVM的设计人员把这部分工作移植到开发阶段了,我们看到源文件在编译后会被验证,你可以仔细看看ktoolbar的控制台输出。而在KVM里面做的验证都是简单的。
在应用程序层进行的限制主要是为了防止应用程序恶意破坏文件系统等设备。由于考虑到性能的问题,他没有采取SecurityManager类的策略。因此与传统的沙箱不同的是,基于CLDC/MIDP的沙箱模型作了如下的限制。
class文件必须是经过验证并有效的 系统只提供了一部分预定义的API给开发人员,为了安全的因素JNI、用户定义的类装载器都不被支持
下载和治理应用程序由KVM完成,用户不能自己实现
开发者不能下载并使用任何包含访问本机方法的类库,只限于CLDC/MIDP和可选包。
分享到:
相关推荐
了解和掌握J2ME中的线程和网络编程,不仅能够提升应用的性能,还能确保其在网络环境下的稳定性和安全性。通过不断实践和学习,开发者可以更好地驾驭这个领域,创造出更多满足用户需求的移动应用。
**J2ME中文版API**是Java Micro Edition(Java ME)平台的重要参考资料,它为开发者提供了详细的编程接口文档,帮助他们理解和使用J2ME进行...熟练掌握J2ME API将有助于开发者创建高效、功能丰富的移动和嵌入式应用。
Java Micro Edition(J2ME)是Java平台的一个子集,主要用于移动设备、嵌入式系统等资源有限的环境。在J2ME应用开发过程中,安全问题尤为重要...了解并熟练掌握混淆器的使用,对于任何J2ME开发者都具有重要的实践价值。
本章介绍了J2ME的基本概念、体系结构及配置与简表等内容,为后续的学习奠定了基础。 #### 用J2ME WTK开发无线应用 **2.1 J2ME WTK的安装配置** J2ME Wireless Toolkit (WTK)是Sun Microsystems提供的免费开发工具...
本篇文章将详细阐述如何配置J2ME的开发环境,以便开发者能够顺利进行应用开发。 **一、J2ME开发环境组件** 1. **Java SDK**: 首先,你需要安装Java SDK,它是J2ME开发的基础。Java SDK提供了编译Java源代码所需的...
**J2ME文件浏览器(LWUIT版)...通过这个LWUIT版的J2ME文件浏览器项目,开发者不仅可以掌握J2ME和LWUIT的基本用法,还可以深入了解移动设备上的文件系统管理和用户界面设计。这对于提升跨平台应用开发技能非常有帮助。
本J2ME开发教程全集涵盖了从环境搭建到应用发布的全过程,旨在帮助开发者全面掌握J2ME开发技能,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过学习和实践,你将能够创造出富有创新的移动应用和游戏,...
在本教程中,我们将深入探讨如何使用Eclipse IDE来开发J2ME(Java 2 Micro Edition)应用程序。...通过这篇教程,初学者将能够了解并掌握使用Eclipse开发J2ME应用程序的基本流程,为后续的移动应用开发打下坚实的基础。
中国移动通信集团公司发布的《百宝箱业务应用程序开发规范-JAVA分册》(ZV1.0.0版),详细规定了基于GPRS的无线数据业务应用中J2ME业务的开发标准。这份文档不仅涵盖了业务类型、系统结构和应用方式的描述,还深入...
#### 三、J2ME应用程序结构 - **MIDlet**:J2ME的核心组件之一,代表了一个完整的应用程序。每个MIDlet都必须有一个main方法,它是应用程序的入口点。 - **界面设计**:使用J2ME提供的API进行界面设计,如Item和...
本教程是针对中文用户设计的,旨在帮助开发者深入理解和掌握J2ME技术,从而能够在各种移动设备上构建功能丰富的应用程序。 **J2ME架构** J2ME架构由两部分组成:KVM(K Virtual Machine)和CLDC(Connected ...
在教程中,介绍了如何在Eclipse中创建Java项目,编写代码,组织文件结构,以及如何运行和调试J2ME应用程序。此外,还可能涉及使用Eclipse插件进行代码编辑和管理,以及如何利用Eclipse的特性,比如代码补全、重构、...
通过本文的研究,我们不仅了解了J2ME平台的相关知识和技术特点,还掌握了如何利用这些技术和工具来开发一款简单的手机游戏。此外,该项目的成功实施也为未来开发更加复杂和有趣的移动游戏奠定了坚实的基础。
通过对"mobile-QQ"源代码的深入学习,开发者不仅可以掌握J2ME的基本用法,还能了解如何在实际项目中应用这些技术,解决实际问题。同时,"www.pudn.com.txt"可能包含了关于该项目的额外信息,例如开发文档、教程或...
通过学习《精通J2ME无线编程》,读者不仅可以掌握J2ME编程的基本技能,还能了解到如何利用这些技能开发出适用于各种移动设备的应用程序,从而在无线编程领域建立起坚实的基础。对于想要从事或正在从事移动开发的...
通过学习这样的教程,开发者可以深入了解如何使用J2ME SDK进行游戏开发,并掌握基本的游戏编程技巧。 “加了陷阱和来回走”这部分描述揭示了游戏的两个新特性。一是陷阱的引入,这要求玩家不仅要避开车辆,还要避免...
这份"j2me_经典资料"包含了对J2ME深入学习的重要资源,对于正在学习J2SE的人来说,理解并掌握J2ME的相关知识将极大地拓展其开发领域。 J2ME由多个配置和框架组成,其中最著名的包括Connected Limited Device ...
- **chap9**:可能介绍J2ME的应用打包和发布流程,以及签名和安全问题。 - **chap10**:可能提供一些综合案例或项目实战,以加深对前面知识点的理解和应用。 2. **关键知识点** - **基础概念**:J2ME架构、配置...
《KJava开发手册——J2ME开发实践指南》 1. 编写目的 本手册旨在为开发者提供一套详尽的KJava(J2ME)开发指南,涵盖环境配置...通过学习和实践,开发者可以熟练掌握J2ME开发,打造功能丰富、用户体验良好的移动应用。
通过学习《Wireless Programming With J2ME》,读者将能够掌握利用J2ME进行无线网络编程的核心技能,并具备开发和部署跨平台移动应用的能力。这本书对于希望进入移动开发领域的Java开发者,尤其是对无线网络有兴趣的...