首页 > 范文大全 > 正文

Java平台及应用Java技术的安全问题研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇Java平台及应用Java技术的安全问题研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】人们从很多安全事件和专家的警告中,渐渐地认识到应用程序安全性的重要性。现在,它也成为信息安全中的一个重要课题,成为大家关注的一个焦点。本文对java平台应用java技术的安全问题做出了研究。Java 通过安全策略保证应用程序在自身的平台上安全运行。

【关键词】Java平台 安全问题 研究

中图分类号:TP311.5 文献标识码:A

随着互联网技术的不断发展和普及,互联网的使用用户量也成指数的逐年增长,大量的用户接入加上网络环境的不断复杂化,使得网络系统管理更加复杂,一些计算机网络病毒和“黑客”也随着网络覆盖面的扩大而快速增长,使得网络系统的安全问题愈加突出。因此,如何提高网络安全管理水平,为人们营造更为安全的网络环境,成为网络服务商亟待解决的问题。Java 语言是在网络时代下诞生的,并随着网络技术的发展不断壮大,当前已成为网络编程中的主流语言。

Java概述

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。

二、Java软件开发误区

当前,Java软件开发过于重视软件的功能,忽视软件架构的重要性。这种开发误区主要来源于老的开发思维,一般人都认为软件的生命力主要在于其使用周期的长短, 而不是它的架构是否合理和良好。因此,软件开发人员在开发软件的时候,就会在这种错误思维的指导之下进行系统开发,非常重视其功能的实现,而不是重视其基础结构是否灵活、扩展性是否强、维护起来是否方便等。殊不知,软件的架构如果灵活性好,祸合度低,可扩展性强,将使得软件开发工作变得事半功倍,还有利于软件的升级等。但是,当前很多人对软件的开发与使用仍然仅满足于功能的使用,井没有充分考虑到今后的发展,使得软件的生命力不强。我们应该尽快扭转这种开发误区,首先重视软件架构的搭建,然后再实现其完整的功能方面下功夫。

三、语言特性

1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

3、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

四、Java 安全关系

网络安全随着互联网和电子商务的发展地位也越来越重要,网络安全确切上来说是与效和有关、与危险共存的,在实施安全管理时,须从整个系统的角度全面统筹地考虑,采用的措施须要简单,且其实现的性价比要合理。

Java 安全体系结构。Java 平台的安全体系结构,容易使用、容易配置,安全性较早期版本有了明显提高。Java 安全体系结构的标准组件中包括:Java 安全体系结构的核心和Java 加密体系结构JCA (JavaCryptography Architecture )。两者构成了Java 平台所带的Java安全平台, 独立于Java 平台又与Java 平台的不同方面相关的Java 安全扩展在Java 安全平台上。

因此, Java安全体系结构的优势体现在以下几方面(1)安全策略的内容和安全机制的实现彻底分开, 也和安全接口分离开来, 这为以后的升级和发展提供了最大的空间。它让策略配置和运行时环境完全分离开来, 从而减少系统管理的复杂性。(2)访问控制算法和其检查许可语义清晰地分离开来。与此同时, 访问控制许可既能静态表示也能动态表示, 并且每个许可权限类可以定义它自己的语义。(3)安全类加载机制和委托机制扩展了Java 应用程序安全覆盖, 这就使得对于所有Java 代码,不管它们来自哪里以及状态如何, 都采用了统一的安全体系结构和策略。

语言级别。Java 语言最初的设计目标定位于嵌入式电子产品, 如手持式设备和机顶盒, 这就要求语言本身简单。众所周知, Java 参照C 和C+ + 设计而来, 但是, Jav a 有今天的成就, 它又与C 和C+ +有区别。Java 语言本身没有像C 和C+ + 这样具有如此大的自由度, 而是很严格。它从语言设计初就考虑到了安全性, 没有任何不安全的结构, 例如没有索引核查的数组访问, 因为这类结构往往会导致不确定、不可预测的程序操作。近来的研究表明, CERT 的警告大约有50%是由缓冲区溢出造成的。Java 提供了一种主要由垃圾收集器实现的自动存储管理机制, 取消了指针概念, 并进一步避免了那些由内存重新分配命令( 如C 的“free”或C+ + 的“d elete”)所带来的问题。在为编程人员带来方便的同时, 杜绝了大部分涉及到内存管理方面的安全问题。

类装载器体系结构的应用。Java 虚拟机的类装载器有系统中只有一个的启动类装载器和系统中可以有多个的用户定义类装载器,它能决定一个Java Applet(即小应用程序,采用Java 创建的基于HTML 的程序)在加入正在运行的Java 环境中的时间和方式,保证这个应用程序不会取代系统级别的内容。Java 虚拟机的类装载器主要是用来阻止来自网络的不安全的代码访问,或者防止网络中的不安全因素破坏安全代码,对网络可信任类库的边界进行保护,在Java 体系的网络安全性中有着十分重要的作用。

在系统运行时,类装载器所载入类的类名的集合又成为命名空间,一个类装载器对应一个属于自己的命名空间,不同命名空间内的类在通常情况下是不能互相访问的,因而在实际的应用过程中,可以通过对不同的类提供不同的命名空间,并对命名空间之间的代码进行限制或者阻止互相访问,就能很好地阻止网络不安全代码对命名空间内的代码进行访问,从而阻止不安全代码,保护命名空间内的安全代码。

4、Java 认证与授权服务(JAAS)。Sun 在Java 平台中提供了JAAS (Java Authentication andAuthorization Service)认证与授权服务来管理访问控制。JAAS 通过在应用程序和各种不同的认证机制之间加上一个中间层以达到简化应用程序在安全性方面的开发。JAAS 在标准Java 安全模型之上补充了验证主题的功能, 使应用程序可以独立于所采用的基础验证机制。JAAS 还提供了基于验证标识授权主题的功能。

JAAS 提供了根据验证用户标识来限制资源访问的标准方法。JAAS 登录与退出API 还提供了验证用户的标准方法。即使在JAAS 服务提供者接口模型中插入不同的基础验证和授权模型,JAAS API 用户也可以利用稳定和标准的接口建立应用程序。JAAS 的授权组件将Java 安全微调访问控制扩展成支持基于标准(即主题)的访问控制,而Java 安全访问控制是基于代码签名者和代码库的。

最后, Jav a 技术的热点不再仅仅是平台和基本设施问题。越来越多进入市场的应用程序带来安全设计的新问题, 包括安全的用户界面和策略管理。而基于Jav a 安全技术实现应用系统的安全问题还有很多, 仍有大量的工作需要完成, 我们仍将面对更多的机遇和挑战。

参考文献:

[1] 李红艳.科技情报系统安全体系结构研究[D]. 西安电子科技大学 2010

[2] 张自然.基于JAVA/CORBA的WWW分布式电子商务系统研究[D]. 华中师范大学 2002

[3] 陈俊.基于SNMP和JAVA的网络流量检测系统[D]. 武汉理工大学 2005

[4] 黄华毅.基于Java移动系统的主机安全问题解决方案[D]. 暨南大学 2003

[5] 任力伟.基于CORBA的Web SCADA系统架构[D]. 南京理工大学 2004