Java安全体系中的安全策略与执行对策研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:jimiwison
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:应用程序安全是一个综合性的课题,它需要在权衡各方面的因素之后,再作出安全策略。因此,本文研究了 Java 应用程序安全,分析了 Java 平台自身的安全体系结构,并且还说明了安全策略的具体实施办法。通过本文的分析,使我们不但从总体上对 Java 应用程序的安全体系有比较清晰的认识,而且对安全思想也有比较深入的分析和理解。
  关键词:JAVA;安全体系;安全策略
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)27-1943-01
  
  1 JAVA 安全体系结构
  
  Java 的安全模型是由安全策略、访问许可、保护域、访问控制检查、权限操作以及类加载和解析等部分组成。安全策略和访问许可定义了哪些动作是允许的,而保护域和访问控制检查则提供了执行的功能,权限操作、类加载和解析则对整个保护机制是很有帮助的。
  因此,Java2 安全体系结构的优势体现在以下几方面:
  1) 安全策略的内容和安全机制的实现彻底分开,也和安全接口分离开来,这为以后的升级和发展提供了最大的空间。它让策略配置和运行时环境完全分离开来,从而减少系统管理的复杂性。
  2) 访问控制算法和其检查许可语义清晰地分离开来。与此同时,访问控制许可既能静态表示也能动态表示,并且每个许可权限类可以定义它自己的语义。
  3) 安全类加载机制和委托机制扩展了 Java 应用程序安全覆盖,这就使得对于所有 Java 代码,不管它们来自哪里以及状态如何,都采用了统一的安全体系结构和策略。
  
  2 安全策略
  
  Java 运行时环境的安全行为由安全策略来指定,安全策略是一个典型的访问控制矩阵,即什么样的系统资源、用哪种形式、在哪些环境下可以被访问。一个安全策略是从描述运行代码的一系列特征到代码允许的访问许可权限之间的映射。
  2.1 许可权限
  许可权限(Permissions)描述了系统资源和系统资源所支持的操作,每个许可权限有一个名字,也有一个操作列表,如:名字为“/resourec/temp.txt”,操作为“read”,表明文件/resourec/temp.txt的读权限。许可权限被用于指定一个策略所允许的访问资源,同时又表明在运行时进行安全敏感操作前需要什么样的许可权限。如果安全策略中有权限,就可以说授予了权限,如果没有权限则意味着权限的拒绝。
  许可权限类(Permission)的根类是java.security.Permission,这是一个抽象类,它的子类用来代表特定的访问控制。新的许可权限或者是 Permission 类的子类,或者是它的子类的子类。
  常见的许可权限类有:BasicPermission类、AllPermission类以及UnresolvedPermission 类。BasicPermission类也是一个抽象类,它的操作只能由它的子类来实现。AllPermission 类用来描述所有的许可权限,它隐含所有的许可权限,而且,任意两个 AllPermission 对象总是被认为相等的。另外UnresolvedPermission 类用来控制“未决的(unresolved)”许可权限,但系统从不认为一个 UnresolvedPermission 隐含有另一个许可权限。最后,为了能一次处理多个许可权限,定义了特定类型许可权限集合(PermissionCollection),从而,对同类型的多个 Permission 对象一次处理。
  2.2 保护域
  保护域(ProtectionDomain)是当前 Java 安全模型的核心概念,它提供了更加细粒度的安全控制。这里的域指的是操作环境中要保护的部分,是用来对组件分组或对被保护资源分组的一个抽象概念,它将具有同样权限的类归在一个组里面。在安全策略中定义了保护域,但它实际上是将各种技术、API和基本的Java体系结构组合在一起保护应用程序的集合。
  在 Java 的安全体系结构中将保护域分为系统保护域与应用保护域。前者对文件系统或网络套接字(socket)等系统资源的访问加以控制。而后者对各种组件或应用程序某部分的访问进行控制,它是针对具体应用程序的。应用保护域涉及到商业逻辑的执行,允许应用程序代码中敏感部分的执行,从而常常与商业应用的安全规则密切相关。应用保护域使用应用安全(例如,使用 AS 包或 J2EE 的容器管理安全机制)增强了当前的安全策略。然而,应用安全通常使用定制的权限来限制对特权代码的访问。通过 BasicPermission 的子类可以创建这些定制权限,这些权限和对这些权限进行检查的代码一起用于建立应用保护域。
  2.3 策略配置
  可以为 Java 应用程序配置三种类型的安全策略文件:系统安全策略文件、放有用户根目录下的用户策略文件,以及应用程序选择加载的应用安全策略文件。
  (下转第1949页)
  (上接第1943页)
  安全策略文件指定了允许从特定代码来源和所有人的代码访问许可权限,这些许可权限主要指系统资源访问的类型。为了能让一个程序获得安全运行的许可权,比如读写一个文件,它必须被授予这个特定动作的权限。当采用默认的Policy实现时,必须在许可文件中通过许可条目来授予其权限。由默认 Policy 实现读取的策略配置文件的语法包括一个条目表。
  
  3 执行安全策略
  
  安全策略执行环境由SecurityManager、AccessControlContext、DomainCombiner和AccessController四个类构成。
  3.1 SecurityManager类
  Java.lang.SecurityManager 从 JDK1.0 中引入,它是访问控制的关键。当需要决定是否授予或者拒绝安全敏感资源的访问时,都要调用安全管理器(SecurityManager)。Sun.applet.AppletSecurity 类是 SecurityManager 类的一个例子,也是 SecurityManager 类的子例,它实现了 JDK1.0 版本中的砂盒安全模型。根据这一模型,本地文件系统上的应用程序类具有所有的系统访问权,而 applets(即通过网络加载的远程类)除了具有特殊授予权限之外全部会被拒绝。
  3.2 AccessControlContext 类
  AccessControlContext 依据其所封装的上下文来决定对系统资源的访问,它封装了一个上下文及一个与 AccessController 类中的 checkPermission 方法等价的 checkPermission 方 法。不同之处在于,AccessController 类 中 的checkPermission 方法根据自身所封装的上下文而不是当前执行线程的上下文来作出访问决策。因此,AccessControlContext 是专门针对那些应该给定上下文内进行安全检查,却需要从其它上下文中执行的情况,例如在工作者线程内。
  3.3 DomainCombiner 类
  java.Security.DomainCombiner 接口使得外来执行类可以增加并动态升级与当前 AccessControlContext有关的ProtectionDomain,它还增加了对AccessControlContext和AccessController的更改,以支持基于身份(principal)的访问控制。
  3.4 AccessController 类
  java.security.AccessController作为访问控制算法的一个完整默认实现,具有足够的通用性,可以为大多数应用程序所使用。开发者可以自由地使用它的实现方式,而且用户也可以获得跨不同应用程序和平台的相互兼容的行为。AccessController 中定义的默认 checkPermission 方法调用 SecurityManager 的checkPermission 方法,然后 SecurityManager 委托 AccessController 进行安全决策。
  
  4 结束语
  
  人们从很多安全事件和专家的警告中,渐渐地认识到应用程序安全性的重要性。现在,它也成为信息安全中的一个重要课题,成为大家关注的一个焦点。本文对 Java 应用程序安全性进行了深入的研究和探讨,介绍了Java自身的安全机制,对Java应用程序安全性进行了分析和研讨。Java 通过安全策略保证应用程序在自身的平台上安全运行。
  
  参考文献:
  [1] Marc Fleury, Scott Stark, Norman Richards. JBoss 4.0 The Office Guide[M]. 刘凡,贾顺林,邓一凡,译. 北京:电子工业出版社,2006.
  [2] Art Taylor, Randy Layman, Brian Buege. Haking Exposed J2EE
其他文献
摘要:随着互联网的发展,电子商务己经逐渐成为人们进行商务活动的新模式。同时,电子商务的安全问题也变得越来越突出。公开密钥基础设施(Public Key Infrastructure,PKI)是实现电子商务安全的关键基础技术,是解决电子商务发展中安全问题的最可行、有效的措施。对基于PKI技术的电子商务身份认证系统进行了研究,并提出了具体的实施方案。  关键词:电子商务;身份认证;PKI;实施方案  
摘要:互联网是一把双刃剑,它给人们的生活、工作带来便利的同时也造成了诸多不安全因素,如黑客攻击、病毒肆掠、木马入侵等等。校园网作为学校重要的基础设施,肩负着教学、科研、管理和对外交流等多重角色,如何确保校园网络信息的安全,是校园网建设中的首要问题,必须花大力气解决此问题。  关键词:校园网;信息;安全  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2012)34-8122
摘要:网络课程设计思想日趋成熟和完善,在教学实践中得到广泛利用。但网络课程的设计仍存在一些问题。本文从网络课程各个模块的可更新性和各个模块的具体设计分析,提出网络课程存在的一些问题及解决策略。  关键词:网络课程;教学设计;协作学习  中图分类号:G434文献标识码:A文章编号:1009-3044(2008)20-30386-02    The Problems and Solutions in
搞要:VFP是Microsoft公司推出的可视化数据库信息管理系统的开发工具。以数据库中表的基本操作为基础,创建视图、查询、报单、报表等,其功能强大,操作快捷方便。该文通过四个方面探讨了VFP数据库是理论与实际中的应用。  关键词:VFP;数据库;表;理论  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)22-615-02  数据库因为具有强大的功能和灵活性,是计算
透视Pointpower教学公开课  李雪  (江苏徐州高等师范学校 现代教育系,江苏 徐州 221116)  摘要:该文是针对一堂Pointpower公开课的设计和教学体会所写,信息技术课是实践性强,信息量大的特点,结合计算机课堂教学方法的研究和实践,对一堂教学课进行剖析,从设计项目任务、创设教学情境、总结评价及反思等方面,透视“任务驱动教学法”教学的基本要点。  关键词:课件;情境;任务;学生
摘要:ERP系统是一项先进的管理工具,实质上是以业务流程为主线,对企业资源进行全面整合的高度集成和标准化的企业管理系统。其目的是在企业资源最优化配置的前提下,用来固化和优化企业的业务流程,整合企业的实时信息,加强企业管理,提升企业竞争力,以达到效率化经营的目标。本文就ERP系统应用的风险意识进行了分析和论述,并对企业应用ERP系统过程中容易产生的风险提出了相应防范和规避策略。  关键词:ERP;风
摘要:对汉诺塔游戏问题进行了研究,发现了对汉诺塔游戏用递归算法实现符合问题逻辑结构。设计了基于JSSE的递归算法实现了手动移盘和自动移盘的游戏功能。  关键词:汉诺塔;盘子问题;游戏设计  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)08-10ppp-0c    1 引言    相传在古印度的布拉玛婆罗门圣庙的僧侣在进行一种被称为汉诺塔的游戏,其装置是一块铜板,上面
摘要:结构化方法与面向对象方法是软件开发程序设计中的2个核心思想。这两种程序设计方法不仅表现为在程序语言、分析与设计上的差异,更表现在开发思想和开发视角上的差异。  关键词:软件工程;结构化;面向对象;程序设计  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)21-30451-02    In Programming Structurized Method and O
摘要:介绍了在Flash8中使用ActionScript2.0制作交互型课件时,如何实现进度控制、临时板书、绘图的几点技巧。  关键词:Flash; ActionScript2.0; 课件; 绘图  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)08-11ppp-0c    1 引言    Flash是最广泛使用的多媒体课件制作软件之一。利用Flash课件能将抽象的知
摘要:《一句顶一万句》在文坛上引起强烈的震撼。本文以人文关怀为切入视角,试从生存世相演绎、人物形象刻画和精神孤独描摹等三个方面来剖析刘震云对故乡乡民真实生存状态的极大关注,从而探究作家对人物的深情悲悯与期待,解读隐藏在低调叙事表象下的浓郁乡土情怀。  关键词:刘震云 《一句顶一万句》乡土情怀人文关怀   引言  在《一句顶一万句》中,刘震云用冲淡平和的语言叙述在华北平原辐散开去,回避了历史元叙事的