Java Web 服务: Axis2 WS-Security 签名和加密
2009-11-05 00:00:00 来源:WEB开发网安全性对于使用 Web 服务交换业务数据至关重要。如果数据被第三方截取,或者欺骗性数据被当作有效数据接收,那么会引起严重的财务或法律后果。为 Web 服务(任何形式的数据交换)设计和实现应用程序的安全处理始终是可行的,但是这种方法比较冒险,因为即使是一个小错误和疏漏都会导致严重的安全漏洞。与其他更简单的数据交换相比,SOAP 的优势之一是它支持模块化扩展。自 SOAP 首次发布以来,安全性一直是扩展的主要关注点,促使了 WS-Security 和相关技术的标准化,允许针对每一个服务相应地配置安全性。
信息交换对安全性的需求通常包含三个方面:
机密性:只有消息的目标接收者有权访问消息内容。
完整性:接收到的消息没有发生任何修改。
真实性:可以对消息的来源进行检验。
WS-Security 可以让您轻松地满足这三个方面的要求。在本文中,您将理解如何通过使用 Axis2 和 Rampart WS-Security 扩展实现这点。但是,我们首先将扼要概述一下公开密匙加密的原理 — 这是 WS-Security 的加密和签名特性的主要基础。
公开密匙加密
纵观历史,安全消息交换一直以来都基于某种形式的共享秘密。这个秘密可能采用代码的形式,交换的双方使用经过商定的内容替换词语或操作。或者可以是密码的形式,通过某种算法将某种文本转换为其他文本。秘密甚至可以采用其他形式,比如对于可能访问消息的其他方未知的语言。共享秘密可以使消息交换非常安全。但是,如果其他方发现了这个秘密,那么消息交换就会泄漏,并会为消息交换方带来潜在的破坏性结果。(比如,想一想二战时期 Enigma 和 German 的军事通信)。
公开密匙加密是一种与其他加密有着本质区别的安全方法,它不需要共享的秘密。它所基于的理念是数学上的 “trap-door” 函数,它可以沿着一个方向轻松地进行计算,但是很难从相反的方向进行计算。比如,可以很容易找到两个质数的乘积(如果使用电脑的话,甚至可以是非常大的质数),但是很难通过分析乘积来找到原始的两个因数。如果围绕某个函数的简单方向构造一个加密算法,那么想要破解加密的任何人都需要从相反的方向来解密。和任何精心挑选的算法一样,破解加密的尝试将非常困难,以至于无法在可以对消息交换产生威胁的时间期限内完成(至少要等到有人开发了可用的量子计算机,或真正有效的特异功能)。
- ››Web2.0网络时代基于社会影响力的声望值
- ››Web服务器搭建:配置Linux+Apache+Mysql+PHP(或Pe...
- ››JavaScript拖拽原理的实现
- ››javascript事件列表解说
- ››Javascript代码优化工具UglifyJS
- ››WEBGAME龙虎榜,《传奇国度》成黑马
- ››WebQQ 2.0添加谷歌音乐方法
- ››Java Bean属性值动态设置
- ››WebLogic调整Java虚拟机性能优化参数
- ››JavaScript Confirm 失效的解决办法
- ››JavaScript页面内拖拽原理分析
- ››webqq2.0协议研究(3)-ClientId生成
赞助商链接