WEB开发网
开发学院软件开发Java Java Web 服务: Axis2 WS-Security 签名和加密 阅读

Java Web 服务: Axis2 WS-Security 签名和加密

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 使用了公开密匙加密后,希望接收已加密消息的一方将创建一对密匙值,Java Web 服务: Axis2 WS-Security 签名和加密(2),每个密匙值都可以单独用于加密消息,但是不能用于解密由它本身加密的消息,如果值匹配的话,那么接收方可以确定(在当前技术的范围内,相反,这对密匙值的另外一个

使用了公开密匙加密后,希望接收已加密消息的一方将创建一对密匙值。每个密匙值都可以单独用于加密消息,但是不能用于解密由它本身加密的消息。相反,这对密匙值的另外一个密匙必须用于解密。只要密匙的所有者将其中的一个密匙保密,另一个密匙就可以公开给他人。任何访问这个公开密匙的人都可以用它加密消息,而只有密匙所有者才能够对消息解密。由于使用了不同的密匙进行加密和解密消息,因此这种形式的加密被称为不对称加密。

消息签名

当使用您的公开密匙对消息进行加密,那么只有您(即私有密匙的持有者)才能够解密消息。这可以确保机密性,满足了安全消息交换三个方面的其中一个方面。但是也可以使用您的私有 密匙来加密消息,这样做之后,任何具有您的公开 密匙的人都可以解密这个消息。乍看上去这似乎没什么用 — 任何人都可以读取的加密消息有什么用?— 但是这种方法可以很好地充当一种检验真实性的机制。据称从您那里收到已加密消息的人可以使用您的公共密匙来解密消息并与预期值进行比较。如果值匹配的话,那么他们就知道是您 创建了这条消息。

在实际中,消息签名的过程不仅仅是使用私有密匙加密消息。首先,您需要使用某种方法为解密消息确立预期值。这通常使用另一种经过变化的数学 trap-door 函数完成:这是一个散列(hash)函数,它易于计算但难以复制(即很难在不修改该消息的散列值的情况下对消息进行修改,或者很难找到具有相同散列值的另一个消息作为提供的消息)。使用这种散列函数,可以为希望签名的消息生成散列值(在安全讨论中通常称为一个摘要(digest)),然后使用私有密匙加密该摘要并使用消息发送已加密的摘要值。任何接收此消息的人都可以对该消息使用相同的散列算法,然后使用您的公开密匙解密附带的已加密摘要,并比较两者的值。如果值匹配的话,那么接收方可以确定(在当前技术的范围内,并认为您一直对您的私有密匙保密)该消息是由您发送的。

上一页  1 2 3 4 5 6 7  下一页

Tags:Java Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接