面向SOA的安全架构研究综述(2)

2.安全SOA 架构的构建研究

SOA是基于服务的分布式系统的设计框架。SOA系统的安全性主要是来自内部和外部的威胁。因此,我们采用现有的WS-Security 规范和混合多级访问控制机制相结合来解决SOA 架构的安全问题,设计端到端的安全模型,保障整个Web 服务的对话安全。

2.1 构建SOA的安全服务

SOA 是面向服务的,所以SOA 可以提供安全服务的调用来保障应用系统的安全。SOA 架构的安全服务可以独立运行,同时提供应用程序接口API 给其他服务、应用等调用。SOA 的安全服务包括消息安全和系统安全。消息安全服务是指数据的一致性、私密性服务。系统安全服务则包括认证、授权、审计等服务。所以安全服务主要解决身份认证、资源授权、数据加密、数字签名、访问控制、传输安全等问题。SOA 架构的应用系统可以由安全服务来提供安全保障,应用系统只需调用安全服务,应用服务的安全处理完全由安全服务来完成。

在SOA 架构下,安全服务应提供对用户及角色的管理和控制;将服务、数据及应用等客体资源的访问、操作及控制权限分配到相应的组织、用户、角色等主体中,对资源授权进行管理;对不同请求进行身份验证及访问控制,防止对服务的非法使用,禁止非法进入系统和调用服务; 提供访问主体对受限资源访问的操作轨迹、历史记录等服务,以便跟踪和发现资源访问和操作问题。

2.2 应用WS-Security安全规范

Web Service 是SOA 架构的主要实现技术。对Web Service 的安全设计需要考虑各种安全,包括消息安全、数据安全、传输安全、环境安全。对传输安全可以采用基本认证、防抵赖及加密、防火墙、虚拟专用网(VPN)等措施解决。对环境安全可以采用登录、审核、构建信任关系和通信模式等管理措施解决。消息安全和数据安全的保障采用WS-Security 安全规范。由于Web Service 中的各角色之间是以SOAP 消息进行通信的,因此为保证SOAP 消息的安全,WS-Security 规范制定安全令牌、XML 封装、XML 数字签名的安全措施。WS-Security 安全令牌(Security Token)即在SOAP 消息头中嵌入用户名和密码或X.509 证书等代表Web 服务请求者的身份。服务的提供者将安全令牌和数字签名相结合可以确认SOAP 消息是由合法的请求者产生。WS-Security 对SOAP 消息进行XML 封装,确保消息的机密性,即使SOAP 消息被监听,监听者也无法提取出有效信息。WS-Security 对SOAP 消息进行XML 数字签名,确保消息的完整性和不可抵赖性,使得消息不被篡改。

WS-Security 规范提供了足够灵活的基础安全机制,在标准的SOAP 规范之上构建安全Web Service,保障完整性和机密性。但要解决Web Service 应用中所有的安全问题,仍需建立一系列的安全规范,包括WebService 端策略(WS-Policy)、信任模型(WS-Trust)、隐私模型(WS-Privacy)、安全会话(WS-SecureConversation)、联合信任(WS-Federation)和授权(WS-Authorization),这些规范保证已经认证传输的信息,并解决如何连接使用不同安全技术用户计算机系统的问题。基于WSSecurity提供的基本安全机制,通过各种方式联合,WS-Security 可以根据Web Service 应用环境构建使用多种策略的更完善的安全性模型。

(责任编辑:)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

开源发家史:Linux在为谁代言?

开源发家史:Linux在为谁代言?

开源,也被称为开放源代码(Open Source) 开源(Open Source) 开源运动起源于20实际60年...[详细]

作为码农,我们为什么要写作

作为码农,我们为什么要写作

在程序员这个行业,坚持做技术写作的人一直比较少。我和身边的朋友沟通后,发现他们除...[详细]

键盘敲击识别技术真的靠谱吗?

键盘敲击识别技术真的靠谱吗?

所有人都知道密码是靠不住的。于是现在有一个有意思的行为生物识别是你是如何打字的,...[详细]

干货!企业安全产品采购指南

干货!企业安全产品采购指南

作为一个安全行业的客户,怎么知道什么样的技术、产品和服务将会满足自身的需求?本文...[详细]

作为程序员,你必须了解这些关于计算机的知

作为程序员,你必须了解这些关于计算机的知识

存储-块设备,文件系统,集群文件系统,分布式文件系统,光纤SCSI,iSCSI,RAID等。 ...[详细]

返回首页 返回顶部