j2ee系统项目中的安全性技术及应用实例

上传人:繁星 文档编号:88250585 上传时间:2019-04-22 格式:PPT 页数:24 大小:473KB
返回 下载 相关 举报
j2ee系统项目中的安全性技术及应用实例_第1页
第1页 / 共24页
j2ee系统项目中的安全性技术及应用实例_第2页
第2页 / 共24页
j2ee系统项目中的安全性技术及应用实例_第3页
第3页 / 共24页
j2ee系统项目中的安全性技术及应用实例_第4页
第4页 / 共24页
j2ee系统项目中的安全性技术及应用实例_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《j2ee系统项目中的安全性技术及应用实例》由会员分享,可在线阅读,更多相关《j2ee系统项目中的安全性技术及应用实例(24页珍藏版)》请在金锄头文库上搜索。

1、,J2EE系统项目中的安全性 技术及应用实例,安全性技术及应用实例,在本讲您能了解如下内容 J2EE平台中的的安全术语 安全性设计及规划 安全性设计的示例,1、验证、授权、安全传输 (1)验证(Authenticate) 也就是判断当前用户是否是系统中的合法用户(是否就是他或者她所宣称的那个人) 这可以通过验证口令、数字证书来完成(在Java平台中可以采用 JAAS 进行认证)。 (2)授权(Authorization) 指的是判断用户是否拥有访问某一资源的权限(保证允许他或者她访问所要求的资源) 例如判断某一用户是否有权利调用一个EJB组件中的方法(用 JAAS 进行授权)。,一、J2EE平

2、台中的的安全术语,(3)安全传输 因为我们需要保证数据在传输过程中不会被未授权的人访问,因此我们还需要保证数据在到达之前,没有在传输过程中被修改过,不管这种修改是有意的还是无意的 这可以采用JSSE 。,2、用户和用户组 (1)用户 物理存在的访问者 对用户通常使用用户名和密码对进行身份验证。 (2)用户组 它是多个用户组成的集合,通常把具有类似访问系统资源权限的一组用户定义到一个用户组里面去。 例如,建立一个财务人员用户组,可以把所有财务科的人员用户放入这个组里面去,便于统一管理。,3、角色(Role) (1)角色是一个抽象化的逻辑概念 角色是一个抽象化的逻辑概念,与用户组类似,是应用程序开

3、发人员自己定义的。,(2)如何将角色与用户关联,例如,在开发一个Web应用程序的时候, 首先定义出一个角色, 然后定义该角色所对应的访问权限, 最后,把此角色与WebLogic Server中的实际用户或用户组对应起来。,从而该用户或用户组就具有该角色所对应的权限。,(3)示例图,(4)角色的应用示例一,(5)角色的应用示例二 某综合信息处理系统角色权限对照表,(6)为什么要应用角色 引入角色的概念的主要目的是为了能够分离“具体用户”和“访问权限”的直接联系。 因为某个具体的用户与某个特定的访问权限的直接组合可能是短暂的,而我们在系统中所定义的角色则可以相对稳定-因为角色是与应用系统所对应的业

4、务领域相关的名词,同时一个系统中和角色相关的权限变化是有限的并且也是相对稳定的。 另外,J2EE容器的用户安全框架是基于RBAC(Roled-Based Access Control)设计模型建立的 因为它是一个基于角色的访问权限控制模型。,4、主体(Principal) (1)什么是主体 主体是被在企业安全服务中验证了的实体。 主体一般用主体名作为它的标识,并且是一个惟一的实体-比如个人或者组的名字、帐号、社会安全号或者类似的惟一标识。 (2)如何标识主体 通常情况下主体名就是用户的登陆名,验证数据(Credentials-凭证)就是登陆的密码。 J2EE规范中并没有限定J2EE 产品提供商

5、使用怎样的认证方法,因此主体名和验证数据的内容和格式依不同的认证协议而不同。,5、访问控制 (1)作用 访问控制可以确保安全角色只能访问已授予它安全权限的授权目标对象。 授权目标对象可以包括EJB组件中的某个远程方法、Web资源(如HTML网页、JSP/Servlet和多媒体或二进制文件)等。 (2)如何实现访问控制 在J2EE中访问控制一般可以在应用程序描述文件中(如web.xml)进行描述,并最和与某个特定的安全角色相互关联起来。,6、映射 应用程序的系统管理员通过映射将实际系统环境中的用户和角色与安全角色联系起来,从而使实际的用户拥有对企业资源访问的适当授权。,7、安全策略域(Secur

6、ity Policy Domain) 也称安全域(Security domain)或 realm,它是一个逻辑范围或区域,在这一范围或区域中安全服务的管理员定义和实施通用的安全策略。 它是从安全策略的角度划分的区域。比如可以将企业应用系统划分为企业员工、供应商、合作伙伴等不同的安全域,对这些安全区域采用不同的安全策略-我们在应用系统中采用group和roles来实现。 8、安全技术域(Security Technology Domain) 它是从安全技术的角度划分的区域,在一个安全技术域中使用同样的安全机制来执行安全策略。 一个安全技术域可以包括多个安全策略域。,9、安全属性(Security

7、 Attributes) 每个主体(Principal)都有一系列与之相关的安全属性- 一系列安全要求的项目。安全属性可用来访问被保护的资源,检查用户的身份和完成其他一些安全相关的用途。 J2EE产品提供商或具体的验证服务的实现来决定怎样将安全属性与一个主体联系起来。 但J2EE规范并没有限定什么样的安全属性将与主体相联系。 10、凭证(Credential) 凭证包含或引用为J2EE 系统验证一个主体的验证信息(安全属性)。如果成功的通过了验证,主体将获得一个包括安全属性的凭证。 如果被允许的话,一个主体也可能获取另一个主体的凭证。在这种情况下两个主体在同一安全域中具有相同的安全属性。,二、

8、安全性设计及规划,1、Web系统信息安全问题的背景 (1)TCP/IP协议的广泛应用 (2)TCP/IP 协议本身没有考虑安全问题的解决 (3)网络应用系统的所面临的安全问题 能否保证信息安全、可靠的传输,为用户提供信心保证,成为决定电子商务成败的关键。 因此,解决Web 应用中的信息传输的安全问题,意义重大。,请见文档中的说明,(4)对系统攻击的主要形式 被动攻击:包括在网络上监听浏览器和Web 服务器之间的通信,获取机密信息。 主动攻击:包括冒充其他用户,改变客户机和服务器中的传输信息,改变在Web 站点上的信息。,2、安全性设计的主要内容 (1)安全性设计中涉及的主要内容,(2)设计的基

9、本要求 应该从“系统安全性、应用安全性、系统的监控以及安全管理”这几个方面全面地进行安全性设计 因为Internet是一个开放的公共网络,在这样一个开放的网络上拓展传统业务,安全性是要考虑的首要因素。,(3)安全性设计中的系统安全性设计 作为整个应用系统运行基础的系统首先必须是安全的。主要应该考虑下面的几个方面: IP路由过滤器 所有信息都必须经过路由器的过滤才能进入到服务器网段。 网络防火墙 由于防火墙所处的物理通道位置以及它的安全功能,因此既有物理隔离作用,又具有访问控制能力,这就决定了它是在网络整体规划布局与网间访问控制中的最基础、最重要的地方。,(4)安全性设计中的应用服务器平台(如T

10、omcat/WebLogic等)的安全性设计,(5)安全性设计中的应用系统本身的安全性设计 为了保证整个系统安全地运行,仅仅从系统方面考虑是不够的,还必须从实际应用系统本身的角度加以考虑。 我们一般可以在自己的应用系统中采用认证机制来保护系统自身,因为认证机制是应用系统安全的一个重要保证,它主要包括身份认证、数据加密、数字签名等。,3、安全性设计的基本目标 所有安全技术的设计目的都是为了实现三个基本目标-验证、授权和安全传输。 (1)参与者的身份验证(验证) (2)保证允许他或者她访问所要求的资源-授权 (3)秘密通信和传输数据的完整性-安全传输,4、身份认证的主要方式 (1)用户名/密码方式

11、 (2)IC卡认证 (3)动态口令 (4)生物特征认证 (5)USB Key认证-USB Key是一种USB接口的硬件设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用USB Key内置的密码算法实现对用户身份的认证。,5、访问权限控制系统的实现主要有两种:应用程序实现和J2EE容器实现 (1)应用程序实现 在应用程序中实现安全技术,通常是在具体方法前加一个权限判断语句。该方式的主要缺点: 首先是每个功能类都需要相应的权限检验代码 将程序功能和权限检验混淆在一起,存在紧密的耦合性,扩展修改难度大,(2)J2EE容器实现 J2EE规范已经提供了关于权限控制的容器实现标准 通过容器

12、实现权限控制验证可以大大简化应用程序的设计,分离了应用系统的权限关注,将权限控制变成了对J2EE容器服务器的配置工作。,6、J2EE应用系统中的容器所提供的安全验证 (1)两种形式的安全验证 在J2EE的应用中实现安全验证可以采用Web层的登录验证和业务逻辑层的基于角色的验证逻辑两种形式相互结合。,(2)不建议自己开发安全逻辑 通常,不建议自己开发安全逻辑,因为开发防攻击的安全逻辑本身就不是一个简单的任务。,此外,自定义的安全逻辑可能会导致较低的可重用性。 从Java 1.4和J2EE 1.3开始,Java验证与授权服务JAAS(Java Authentication and Authoriz

13、ation Service)就被引入到核心包中-JAAS实现了验证和授权两类服务。,(3)JAAS、JSSE 和JCE介绍 Java 认证和授权服务(JAAS)-可以应用于J2EE的应用程序客户端的验证(Application Client User Authentication) Java 安全套接字扩展(JSSE)-可以应用于J2EE的Web 客户端的验证 Java 加密扩展(Java Cryptography Extension,JCE)-HTTP、TCP/IP、FTP等在传递安全信息(包括认证信息)时是以明文的形式实现的。,7、基于J2EE容器的安全性实现的形式 (1)说明性的安全性

14、-将安全策略在部署的描述文件中定义 (2)可编程的安全性-要求程序员通过编码来保证J2EE的安全性,请见文档中的说明,8、基于J2EE容器的说明性的安全性而实现的Web层的身份验证 (1)Web层的身份验证的形式-具体的实现请参考后面的“在WebLogic中实现访问权限控制(2)”一文中的内容 HTTP基本验证(HTTP Basic Authentication) 基于表单的验证(Form-Based Authentication) 基于客户端证书的验证(Client-Certificate Authentication),它通过HTTPS(HTTP over SSL)来保证验证的安全性,(2

15、)Web层的身份验证的具体实现步骤 定义验证方法 定义安全角色 定义Web资源集合的安全约束 为单个的资源(如Servlet/JSP)定义安全角色引用-主要采用Filter技术以实现通过Web层的登陆验证来进行身份验证。,10、基于J2EE容器的可编程的安全性的具体实现 (1)相关的API (2)主要的方法的功能说明 (3)在Web层应用可编程的安全性的示例,请见文档中的说明,三、安全性设计的示例,1、问题 下面以某个系统中的“用户安全管理子系统”为例说明如何进行安全性设计。 2、系统安全性设计中的需求分析 3、安全管理框架的架构设计 (1)自行设计安全管理框架 (2)采用J2EE容器的用户安全管理框架 4、安全性设计具体实现中所要考虑的问题,5、基于角色的访问权限控制模型(RBAC-Role-Based Access Control) 6、项目安全性设计中的人员的角色设计 7、项目安全性设计中的用户和用户组的定义 8、项目安全性设计中的用户权限设计 9、项目安全性设计中的数据库表设计,请见文档中的说明,四、利用Filter技术实现安全的客户端缓存,1、客户端缓存技术 2、示例代码 3、在web.xml中添加对上面的Filter的部署的标签,请见文档中的说明,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号