当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

Java Web服务 - Axis2 WS-Security签名和加密[Java编程]

赞助商链接



  本文“Java Web服务 - Axis2 WS-Security签名和加密[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

安全性关于利用 Web 服务交换业务数据至关重要.假如数据被第三方截取,大概拐骗性数据被当作有效数据接纳,那么会惹起严重的财政或法律后果.为 Web 服务(任何情势的数据交换)计划和实现利用程序的安全处理始终是可行的,但是这种办法对比冒险,因为即便是一个小错误和疏漏城市招致严重的安全漏洞.与其他更简单的数据交换相比,SOAP 的上风之一是它支持模块化扩大.自 SOAP 初次公布以来,安全性一向是扩大的主要关注点,促使了 WS-Security 和相关技术的尺度化,答应针对每一个服务呼应地配置安全性.

信息交换对安全性的需求普通包含三个方面:

奥秘性:只有消息的目标接纳者有权拜候消息内容.

完好性:接纳到的消息没有发生任何改正.

真实性:可以抵消息的根源举行查验.

WS-Security 可以让您轻松地满意这三个方面的要求.在本文中,您将理解若何通过利用 Axis2 和 Rampart WS-Security 扩大实现这点.但是,我们首先将扼要概述一下公开密匙加密的原理 — 这是 WS-Security 的加密和签名特点的主要底子.

公开密匙加密

纵观历史,安全消息交换一向以来都基于某种情势的同享奥秘.这个奥秘大概采代替码的情势,交换的双方利用经过约定的内容替换词语或操作.大概可以是密码的情势,通过某种算法将某种文本转换为其他文本.奥秘乃至可以采取其他情势,比方关于大概拜候消息的其他方未知的语言.同享奥秘可以使消息交换非常安全.但是,假如其他方发现了这个奥秘,那么消息交换就会泄露,并会为消息交换方带来潜在的破坏性后果.(比方,想一想二战期间 Enigma 和 German 的军事通信).

公开密匙加密是一种与其他加密有着本质辨别的安全办法,它不需求同享的奥秘.它所基于的理念是数学上的 “trap-door” 函数,它可以沿着一个方向轻松地举行计算,但是很难从相反的方向举行计算.比方,可以很简单找到两个质数的乘积(假如利用电脑的话,乃至可以是非常大的质数),但是很难通过解析乘积来找到原始的两个因数.假如环绕某个函数的简单方向构造一个加密算法,那么想要破解加密的任何人都需求从相反的方历来解密.和任何尽心挑选的算法一样,破解加密的尝试将非常艰难,以至于无法在可以抵消息交换产生威胁的时间期限内完成(至少要等到有人开辟了可用的量子计算机,或真正有效的特异功效).

利用了公开密匙加密后,但愿接纳已加密消息的一方将成立一对密匙值.每个密匙值都可以单独用于加密消息,但是不能用于解密由它本身加密的消息.相反,这对密匙值的别的一个密匙必须用于解密.只要密匙的全部者将此中的一个密匙保密,另一个密匙便可以公开给他人.任何拜候这个公开密匙的人都可以用它加密消息,而只有密匙全部者才可以抵消息解密.由于利用了差别的密匙举行加密和解密消息,因此这种情势的加密被称为不对称加密.

消息签名

当利用您的公开密匙抵消息举行加密,那么只有您(即私有密匙的持有者)才可以解密消息.这可以确保奥秘性,满意了安全消息交换三个方面的此中一个方面.但是也可以利用您的私有 密匙来加密消息,这样做之后,任何具有您的公开 密匙的人都可以解密这个消息.乍看上去这仿佛没什么用 — 任何人都可以读取的加密消息有什么用?— 但是这种办法可以很好地充当一种查验真实性的机制.据称从您那边收到已加密消息的人可以利用您的大众密匙来解密消息并与预期值举行对比.假如值匹配的话,那么他们就知道是您 成立了这条消息.

在实际中,消息签名的历程不但仅是利用私有密匙加密消息.首先,您需求利用某种办法为解密消息建立预期值.这普通利用另一种经过改变的数学 trap-door 函数完成:这是一个散列(hash)函数,它易于计算但难以复制(即很难在不改正该消息的散列值的情形下抵消息举行改正,大概很难找到具有相同散列值的另一个消息作为供应的消息).利用这种散列函数,可认为但愿签名的消息生成散列值(在安全谈论中普通称为一个择要(digest)),然后利用私有密匙加密该择要并利用消息发送已加密的择要值.任何接纳此消息的人都可以对该消息利用相同的散列算法,然后利用您的公开密匙解密附带的已加密择要,并对比二者的值.假如值匹配的话,那么接纳方可以肯定(在当前技术的范围内,并认为您一向对您的私有密匙保密)该消息是由您发送的.

在处理 XML 时,消息签名历程还触及到另一个步骤.XML 消息以文本情势表示,但是文本表示的某些方面被 XML 认为是无关的(比方元素上的属性的次序,或元素开始和完毕标志内利用的空白).由于这个与文本表示有关的问题,因此 W3C(XML 标准的全部者)决意在计算择要值之前,将 XML 消息转换为一个尺度的文本情势.一些尺度化算法也得到定义,可以用于 XML 消息.只要消息交换的双方都赞成利用相同的算法,那么具体利用哪类算法并不会产生什么影响.

利用经过签名的消息择要可以同时保证消息完好性(因为抵消息的改正将会改变择要值)和真实性(因为您的私有密匙被用于加密择要).由于利用公开密匙的加密可以确保消息的私密性,因此消息交换安全性的全部主要方面都可以通过利用一个公开-私有密匙对涵盖.当然,关于一个密匙对,消息交换中只有一方是安全的 — 但是假如交换的别的一方也具有自己的公开/私有密匙对,那么便可认为消息交换的双方供应充分的安全性.


  以上是“Java Web服务 - Axis2 WS-Security签名和加密[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .