加密 MSMQ

加密 MSMQ

因此,我想使用 WCF 进行异步、断开连接的跨 Internet 消息传递。可能由于我有 Apache ActiveMQ 背景,所以我正在为此研究 MSMQ。

在 ActiveMQ 中,加密队列连接很简单;您只需选择基于 SSL 的代理连接,然后使用基本的 SSL 层来保护代理与客户端之间的通信。(我是否应该考虑将 WCF 客户端与 ActiveMQ 代理一起使用?)

当我在 Google 上搜索 MSMQ 加密和 MSMQ SSL 时,我没有找到任何类似的东西。希望我只是错过了什么?

我发现了一些关于加密消息的看起来有点复杂的内容,一些关于使用 HTTPS 的不着边际的内容,以及一些需要 Active Directory 的内容 - 但我希望保护所有通信,而不仅仅是消息,并且我们不想使用 HTTPS 作为绑定,因为我们需要断开连接的操作,并且我们没有 Active Directory 可以使用。

做到这一点的最好方法是什么?

答案1

http://blogs.msdn.com/motleyqueue/archive/2007/10/06/complementing-msmq-security-with-wcf.aspx有什么关系吗?它似乎暗示了一种似乎是传输级别的设置,并且还建议进行消息加密。

答案2

好的,终于找到了有关执行非 Active Directory MSMQ 加密的参考。这是链接。找到文档后就不难了!

这就是您使用 MSMQ 进行消息加密但不使用 Active Directory 的方式。

http://msdn.microsoft.com/en-us/library/aa395200.aspx

来自TFA:

演示

客户端使用服务的公钥加密消息,并使用自己的证书对消息进行签名。从队列中读取消息的服务使用其受信任人员存储中的证书对客户端证书进行身份验证。然后,它解密消息并将消息发送给服务操作。

由于 Windows Communication Foundation (WCF) 消息作为有效负载包含在 MSMQ 消息主体中,因此主体在 MSMQ 存储中保持加密状态。这可防止消息被意外泄露。请注意,MSMQ 本身并不知道其承载的消息是否已加密。

该示例演示了如何在 MSMQ 中使用消息级别的相互身份验证。证书在带外交换。排队应用程序总是如此,因为服务和客户端不必同时启动和运行。

描述 示例客户端和服务代码与 Transacted MSMQ Binding 示例相同,但有一点不同。操作契约标注了保护级别,这表明消息必须经过签名和加密。

相关内容