
Então, quero enviar mensagens assíncronas e desconectadas pela Internet com o WCF. Provavelmente devido à minha experiência no Apache ActiveMQ, estou procurando no MSMQ para isso.
No ActiveMQ, era simples criptografar uma conexão de fila; você simplesmente escolheu uma conexão baseada em SSL com o corretor e tinha uma camada SSL básica para proteger sua comunicação entre o corretor e os clientes. (Devo considerar usar clientes WCF com um corretor ActiveMQ?)
Quando acessei o Google para criptografia MSMQ e MSMQ SSL, não encontrei nada semelhante. Espero que esteja faltando alguma coisa?
Eu encontrei algumas coisas meio complicadas sobre criptografia de mensagens, coisas que parecem erradas sobre o uso de HTTPS e coisas que exigem um Active Directory - mas estou procurando proteger toda a comunicação, não apenas as mensagens, e nós prefira não usar HTTPS como ligação, pois exigimos uma operação desconectada e não teremos Active Directory para trabalhar.
Qual é a melhor forma de fazer isso?
Responder1
Fazhttp://blogs.msdn.com/motleyqueue/archive/2007/10/06/complementing-msmq-security-with-wcf.aspxtem alguma relevância? Parece sugerir uma configuração que parece ser o nível de transporte e também sugere criptografia de mensagens.
Responder2
OK, finalmente encontrei uma referência para fazer criptografia MSMQ não-Active Directory. Aqui está o link. Não é difícil depois de encontrar a documentação!
É assim que você usa a criptografia de mensagens com o MSMQ, mas não usa o Active Directory.
http://msdn.microsoft.com/en-us/library/aa395200.aspx
Da TFA:
Demonstra
O cliente criptografa a mensagem utilizando a chave pública do serviço e assina a mensagem utilizando seu próprio certificado. O serviço que lê a mensagem da fila autentica o certificado do cliente com o certificado em seu armazenamento de pessoas confiáveis. Em seguida, ele descriptografa a mensagem e a envia para a operação de serviço.
Como a mensagem do Windows Communication Foundation (WCF) é transportada como uma carga no corpo da mensagem MSMQ, o corpo permanece criptografado no armazenamento MSMQ. Isso protege a mensagem contra divulgação indesejada da mensagem. Observe que o próprio MSMQ não sabe se a mensagem que carrega está criptografada.
O exemplo demonstra como a autenticação mútua no nível da mensagem pode ser usada com o MSMQ. Os certificados são trocados fora da banda. Este é sempre o caso com aplicativos enfileirados porque o serviço e o cliente não precisam estar funcionando ao mesmo tempo.
Descrição O código de cliente e de serviço de amostra é igual ao exemplo Transacted MSMQ Binding, com uma diferença. O contrato de operação é anotado com nível de proteção, o que sugere que a mensagem deve ser assinada e criptografada.