技术开发 频道

Web Services Security的签名流

什么是签名?

首先,让我们看看与签名有关的一些重要概念的定义:

  • 签名提供消息完整性和签名者身份验证。
  • 消息完整性确保消息未被修改。
  • 签名者身份验证(也称为数字签名)确保消息发送者的身份是有效的。
  • 密钥用于对消息签名。
  • 证书用于验证消息的内容。
  • 密钥存储库保存这些证书和密钥。

可以使用工具来设置密钥存储库,例如 WebSphere Message Broker Java™ Runtime Environment (JRE) 组件中的工具 keytooliKeyman。您必须提供有关您在何处创建了密钥存储库的信息,这样 WebSphere Message Broker 才能使用它们来完成签名过程。

您还需要定义 WebSphere Message Broker 策略,以告诉系统是否正在使用签名或加密,以及哪一端在执行签名或加密。然后将该策略与某个绑定相关联,此绑定将该策略绑定到 WebSphere Message Broker 的流。该绑定从 WS-Security 签名的角度告诉 WebSphere Message Broker 如何处理传入和传出消息。

密钥存储库

如上所述,密钥存储库是用于存储证书和密钥条目的存储库。虽然似乎有点混淆,但是存在两种类型的密钥存储库,它们仅在使用方式方面存在区别:

  • 密钥存储库:可以在密钥存储库中放置所有的私钥和公钥证书 (PKC)。
  • 信任存储库:可以在信任存储库中放置所有受信任的根证书颁发机构(certificate authority,CA)证书。这些证书用于建立任何入站 PKC 的信任关系。信任存储库通常仅包含公钥。

可以定义密钥存储库和信任存储库以应用于 WebSphere Message Broker 或应用于 WebSphere Message Broker 上的某个执行组。有关这方面的更多详细信息,请访问 WebSphere Message Broker 信息中心(请参阅参考资料以获取链接)。稍后您可以在本文中看到示例。

密钥存储库包含以下条目:

  • 密钥存储库——密钥条目:这种类型的密钥存储库条目包含非常敏感的加密密钥信息,该信息以受保护的格式存储以防止未经授权的访问。通常,存储在此类条目中的密钥是对对应的公钥进行身份验证的证书链所附带的私钥。
  • 信任存储库——受信任的证书条目:这种类型的条目包含单个属于另一方的 PKC。将其称为受信任的证书的原因在于,密钥存储库所有者信任该证书中的公钥的确属于由该证书的主体(所有者)所标识的身份。此类条目可用于对其他方进行身份验证。

WebSphere Message Broker 仅支持将 Java 密钥存储库(Java keystore,JKS)用于密钥存储库和信任存储库。

设置密钥存储库

设置密钥存储库的最快方法是创建您自己的证书,称为自签名证书。您最终将获得包含公开证书和私钥的密钥存储库。要设置信任存储库,您需要导出公开证书并将其导入新的信任存储库。信任存储库通常仅包含公开证书。

当 WebSphere Message Broker 接收到消息时,除非设置了选项 Trustany,否则将根据信任存储库中的证书来验证消息中的证书。您可以在图 17 中看到此选项,其中将信任设置为 TrustStore

WebSphere Message Broker 提供的 keytool 实用工具或 iKeyman 实用工具对密钥存储库进行管理。

0
相关文章