我想在 XML 请求中使用一些加密标签来验证我的 SOAP Web 服务的调用者(在 Ruby 1.8.7/Rails 2.3.5 中使用 Red Hat Enterprise linux 5 中的 datanoise gem 部署)。通常,客户端是一个 Windows 程序(可能是 C#/.Net Windows 程序——不是 Java/Ruby),它应该在每次调用基于密钥/盐的 web 服务时生成一个不同的加密密钥——而我的服务器端总是能够用私钥对其进行解码。网络上加密令牌的知识不应允许第三方程序简单地复制完全加密的令牌并访问 Web 服务。我正在研究 OpenSSL,但我是密码学的新手。为识别而加密的字符串可以是(除其他项目外)受信任客户端的 MAC ID,
我在 Ruby 端发现了很多可能性,但理想情况下需要确保该解决方案不会在 Windows 客户端强加(或最小化)任何库或安装要求。我最苦苦挣扎的是一种在每次调用时生成新密钥的方法,这样任何嗅探流量的人都不能简单地通过访问密钥来推断创建加密标签的模式。