[ 关闭 ]
首页

新闻资讯

[ 分类 ]

分类:

电力市场运营系统中的安全访问控制

引言

电力市场运营系统的安全访问控制目标就是保障合法用户能够访问授权范围内的业务应用和市场信息,同时拒绝非法用户进入系统,保障数据在传输过程中不被窃取和篡改。

电力市场覆盖范围广,市场成员分散,市场中用户类型众多,访问权限各不相同。例如:各市场成员的交易人员能够查询市场信息,代表所属市场成员申报授权范围内的交易数据;市场成员的管理人员则能够对下属的交易人员和竞价单元进行管理;电力市场交易中心的交易人员能够对授权范围内的某一类或者几类交易进行撮合和干预;结算人员则根据各类交易结果和执行结果进行考核结算。市场成员与交易中心之间交互的数据可以分为公共信息和私有信息2类。公共信息对所有市场成员开放;而私有信息只对相应的市场成员开放;例如市场成员的交易申报信息、中标信息和结算信息等。市场私有信息属于商业机密,必须确认访问者具有合法身份,并保证数据传输过程中不被窃取。

此外,用户访问权限不仅与业务功能相关,还与数据相关,同样是数据申报人员,但能够申报的竞价单元不同。各类用户的权限设置与市场规则有关,规则变化也会导致用户权限的调整。电力市场中用户的多样性和市场信息的保密性,要求电力市场运营系统具有灵活而严格的安全访问控制机制。本文以实际运行的基于Java2平台企业版(J2EE)架构的区域电力市场运营系统为例,探讨安全访问控制的设计和实施。

一、安全访问控制的整体结构

电力市场运营系统的安全性可以分为硬件设备安全性、系统软件安全性和应用软件安全性3个方面。安全防护犹如木桶,任一方面的安全漏洞都会导致系统安全访司控制的失败。硬件设备安全性主要是指采用的通信网络、交换机、路由器、防火墙、IP认证加密装置、安全隔离装置、数据库服务器、应用服务器和各类工作站符合相应安全标准;系统软件安全性是指采用的操作系统软件、数据库管理软件、中间件支撑软件符合相应安全标准;应用软件安全性是指应用软件具有严格的用户授权和身份验证机制,能够对交换的重要数据进行加密传输。电力市场运营系统安全访问控制的整体结构如图1所示。

采用安全的通信网络设备和主机设备是系统安全控制的重要基础,高安全性的通信网络设备能够消除大量的安全隐患。通过专网和虚拟专网技术使电力市场运营系统与其他业务系统物理隔离或逻辑隔离,通过防火墙、IP认证加密、物理隔离设备限制系统的接人设备和通信端口。在系统内部和接人网关部署入侵检测探头,检测系统存在的安全隐患,有助于不断提高系统的安全防护性能[3"5]。

操作系统、数据库管理系统和中间件等应用支撑系统的安全漏洞是电力市场运营系统的另一个安全隐患。由于系统软件集成了大量的服务,对外开放的通信端口和缺省用户等信息相对公开,易受攻击。系统重要应用尽可能采用安全性能较高的操作系统,更改数据库系统和中间件系统的缺省用户设置,关闭不需要的底层服务和侦听端口。定时升级系统软件的安全补丁,修补安全漏洞,并部署防病毒软件。

硬件层和系统软件层的安全防护可以通过采用符合安全标准的第三方产品及合理部署来实现,其安全防护一旦被攻破,应用层的权限管理和加密传输则成为zui后一道安全屏障。即使硬件层和系统软件层是安全的,也需要应用层的权限管理来控制各用户进行授权范围内的业务操作和管理,访问授权范围内的各类市场保密信息。应用层的安全防护是电力市场运营系统的重要组成部分,本文将重点探讨J2EE架构的应用层安全访问控制方案及实施。

二、应用层安全访问控制方案

电力市场运营系统采用RSA(Rivest-shamir-adleman)加密算法和数据加密标准(DES)算法对系统中的私有市场信息进行加密传输,通过通信服务、与应用服务和客户端集成的通信终端,屏蔽传输数据的加密、解密过程,加密算法的变更与应用无关。

电力市场中权限划分多样,并受市场规则影响,因此,要求系统的权限管理模块充分灵活,能够适应系统权限和角色的变更需求。传统的权限管理模块大多以客户端控制用户登录、身份校验和授权访问,权限管理和业务逻辑捆绑在一起。系统应用功能的增加、用户类型和访问权限的变更都会导致客户端应用程序的改动,应用开发人员必须熟悉系统权限管理逻辑。为了满足权限灵活配置,适应电力市场业务频繁变更,减少权限配置变化带来的工作量,要求业务逻揖与权限管理分离,这样,应用服务开发人员只需要关心应用服务的业务逻辑实现。针对上述需求,本文提出了J2EE内嵌权限管理、动态代理和控制中心3种应用层安全访问控制方案。

2.1基于J2EE内嵌的权限管理

在J2EE架构中,每个应用模块都以组件的形式存在,运行在相应的容器之中。容器作为组件的运行环境,能够管理组件的生命周期,截获外部应用对组件的访问请求,识别访问者的身份信息。

J2EE支持声明式的权限管理模式,组件开发人员并不需要了解组件的安全访问要求,而是在组件组装发布时由发布人员确定组件各业务方法的访问权限,设定用户与系统实际操作人员的对应关系。安全信息保存在组件附带的可扩展置标语言(XML)配置文件中,与组件代码分离,发布人员可以根据需要随时更改组件的安全配置,只需重新发布即可。当被访问的组件需要访问该容器中其他组件或者其他容器中的组件时,组件能够传递用户的身份信息。J2EE规范要求所有应用服务器具有一系列系统安全防护措施,而不需要做任何编程工作。通信双方可以采用基于数字证书的安全套接层(SSL)协议进行信息交互,并具有身份认证、资源访问控制、数据完整性、机密性、基于数字签名的防抵赖和审计等安全措施。

J2EE应用服务器提供的可配置的权限管理和安全管理给电力市场运营系统带来了灵活的系统访问控制,管理人员可以灵活调整访问策略。

J2EE规范允许定义每一个业务方法的授权访问角色,由角色与实际环境中的用户相对应。这种安全访问机制的缺点是,当调整业务函数的权限定义时需要中断应用运行,重新发布变动后的应用。这种访问方式完全由容器实施和控制,应用本身并不能截获访问信息,因此难以对系统的访问信息进行记录和统计分析。

2.2动态代理

动态代理安全访问控制利用Java提供的反射机制,通过动态代理实现应用逻辑与权限管理的分离。客户端对应用服务的访问并不是直接调用应用服务,它对应用服务的每一个访问请求都由动态代理截获。动态代理在访问应用服务前,首先将客户端的用户身份信息和待访问的应用服务及业务方法发送到权限管理服务,由权限管理服务对用户身份进行校验。如果用户具有访问权限,动态代理将访问请求发送到相应的应用服务,并将执行结果返回客户端。否则,则向客户端返回权限校验失败信息,阻断对应用服务的调用。动态代理安全访问控制的逻辑结构如图3所示。

动态代理安全访问控制方式不改变客户端的调用方式,应用开发人员不需要了解系统的权限配置,权限的校验控制过程对用户透明。应用服务模块增加和变更后,只需根据访问权限配置的要求在权限管理模块进行角色和用户配置,对应用服务和客户端软件的开发没有任何影响。

从图3可以看出,动态代理的安全访问控制是在客户端实现的。客户端软件一旦被反编译等方式破译,就可以绕过动态代理,直接访问应用服务。在电力市场中,有的客户端应用可能由市场成员自主开发,由客户端控制访问权限则不再可信。此外,动态代理模式中,动态代理会频繁地远程访问权限管理服务,造成执行效率低下。如果对系统的访问日志进行记录和统计,需要频繁地远程访问日志服务。

2.3控制中心控制中心方式由动态代理方式发展而来,也是利用Java提供的反射机制。与动态代理方式不同之处在于动态代理和应用服务之间增加了一个控制中心,通过控制中心截获客户端对应用服务的调用请求,实现应用逻辑与权限管理的分离。客户端对应用服务的访问请求首先被动态代理截获,由动态代理将访问发送到控制中心,控制中心将客户端的用户身份信息、待访问的应用服务及业务方法发送到权限管理服务,由权限管理服务对用户身份进行校验。如果用户具有访问权限,控制中心则将访问请求发送到相应的应用服务,并将执行结果返回动态代理,由动态代理将结果送回客户端。否则,控制中心则向动态代理发送权限校验失败信息,阻断对应用服务的调用,并由动态代理将异常信息传送到客户端。控制中心安全访问控制的逻辑结构如图4所示。

与动态代理安全访问控制方式一样,控制中心安全访问方式不改变客户端的调用逻辑,应用开发人员也不需要了解系统的权限配置方式,权限的校验控制过程对用户透明。用户、角色和访问权限的变化只需在权限管理模块配置,对应用服务和客户端软件的开发没有任何影响。对访问的控制由客户端的动态代理转移到服务端的控制中心,客户端代码的泄漏不会对系统的安全性带来任何影响,也允许由第三方开发客户端应用。控制中心在接受客户端调用请求的同时,通过调用位于同一容器中的日志服务,提高了访问记录和统计的效率。控制中心方式能够适应面向服务架构(SOA)的电力市场运营系统建设,并向市场成员和监管机构提供基于WebServices方式的远方访问服务。

鉴于控制中心方式的上述优点,在实际投运的电力市场运营系统中采用了控制中心方式的安全访问控制。

三、技术实现和应用案例分析

3.1控制中心的技术实现

考虑跨平台等多种原因,系统采用了J2EE软件架构。各应用服务封装为一系列企业Java组件(EJB)模块,部署在各个J2EE应用服务器中,对外提供本地调用接口,应用服务与客户端之间的通信服务部署在Web容器。

如图5所示,控制中心采用无状态会话EJB技术实现,提供远程调用接口,支持并发访问。权限管理模块也采用无状态会话EJB技术实现,提供本地调用接口,接受控制中心的权限校验调用请求。日志服务和访问统计等其他服务也都采用会话EJB技术实现,只提供本地调用接口,接收控制中心和同一容器中各应用服务模块的调用。

由于控制中心是客户端和服务器端应用之间的必经通道,为了提高系统响应速度和访问效率,控制中心缓存了对各应用服务和权限管理服务的连接,减少了访问环节。

基于控制中心安全访问控制方式的区域电力市场运营系统在WebLogic,WebSphere和Jboss等主流J2EE应用服务器上运行测试正常,并己投入现场运行。由于将应用服务与权限管理彻底分离,支持应用的分布并行开发,极大地提高了系统开发进度和需求响应速度。

3.2应用案例分析

以数据申报和交易计划编制为例进行分析。数据申报应用的用户主要为市场成员,分布在整个市场范围内;交易计划管理的用户则为交易中心内的各交易管理人员。应用开发人员并不关心数据申报服务和计划管理服务由谁使用,只负责应用算法的实现,并将应用模块提供的各项服务和调用接口提交给系统管理人员,由系统管理人员将各应用模块提供的服务注册到权限管理,并对各类用户授权。

用户访问各应用和市场信息时,客户端应用调用受访服务前,首先接收用户的身份信息,获取应用服务的本地动态代理。如果用户具有相应服务的访问权限,客户端能够像本地方式一样调用受访服务;否则,动态代理则向客户应用抛出无访问权限的应用异常。

在系统实际运行时,由于各市场成员的交易人员具有数据申报权限,能够申报各类交易数据,而计划编制人员虽然能够撮合交易,但不能进行报价。在系统调试阶段,通过将申报权限授予计划编制人员,计划编制人员可以同时进行数据申报和交易撮合,对系统的正确性进行验证,而不需要任何应用变更。

四、结语

电力市场的信息保密性、用户多样性和访问权限多变性,要求支持市场运营的电力市场运营系统必须具备严格而且灵活的安全访问控制机制。本文描述了硬件层、系统软件层和应用软件层相协调的安全访问控制的整体结构,设计了J2EE内嵌权限管理、动态代理和控制中心3种应用层用户访问控制方案。其中,控制中心管理方式能够实现服务端的安全访问控制,支持客户端的第三方开发和面向服务的电力市场运营系统架构。采用控制中心安全访问控制方式的电力市场运营系统己经投人现场运行,结果表明,该安全访问控制方式能够将权限管理与应用开发彻底分离,使应用开发人员专注于市场业务逻辑实现,快速响应市场交易模式和访问逻辑变化。

文章推荐: