Поэтому я хочу выполнять асинхронный, автономный обмен сообщениями через Интернет с помощью WCF. Вероятно, из-за моего опыта работы с Apache ActiveMQ я ищу для этого MSMQ.
В ActiveMQ было просто зашифровать соединение очереди; вы просто выбрали соединение с брокером на основе SSL, и у вас был базовый уровень SSL для защиты вашего обмена данными между брокером и клиентами. (Следует ли мне рассмотреть возможность использования клиентов WCF с брокером ActiveMQ?)
Когда я нажимаю на Google для шифрования MSMQ и MSMQ SSL, я не нахожу ничего похожего. Надеюсь, я что-то упускаю?
Я нашел несколько запутанных вещей о шифровании сообщений, о вещах, которые кажутся неуместными в использовании HTTPS, и о вещах, требующих Active Directory, но я хочу защитить все коммуникации, а не только сообщения, и мы предпочитают не использовать HTTPS в качестве привязки, так как нам требуется отключенная операция, и у нас не будет Active Directory для работы.
Как лучше всего это сделать?
Делает http://blogs.msdn.com/motleyqueue/archive/2007/10/06/complementing-msmq-security-with-wcf.aspx имеют какое-то отношение? Кажется, это намекает на настройку, которая выглядит как транспортный уровень, а также предлагает шифрование сообщений.
Хорошо, наконец-то нашел ссылку на выполнение шифрования MSMQ, отличного от Active Directory. Вот ссылка. Когда вы найдете документацию, это несложно!
Вот как вы используете шифрование сообщений с MSMQ, но не используете Active Directory.
http://msdn.microsoft.com/en-us/library/aa395200.aspx
Из TFA:
Демонстрирует
Клиент шифрует сообщение с помощью открытого ключа службы и подписывает сообщение своим собственным сертификатом. Служба, читающая сообщение из очереди, аутентифицирует сертификат клиента с помощью сертификата в своем хранилище доверенных лиц. Затем он расшифровывает сообщение и отправляет его в сервисную операцию.
Поскольку сообщение Windows Communication Foundation (WCF) передается как полезная нагрузка в теле сообщения MSMQ, тело остается зашифрованным в хранилище MSMQ. Это защищает сообщение от нежелательного раскрытия сообщения. Обратите внимание, что сам MSMQ не знает, зашифровано ли передаваемое сообщение.
В примере показано, как взаимную проверку подлинности на уровне сообщений можно использовать с MSMQ. Обмен сертификатами осуществляется по внеполосному каналу. Это всегда происходит с приложением в очереди, потому что служба и клиент не должны быть запущены и работать одновременно.
Описание Примеры кода клиента и службы такие же, как и образец привязки транзакции MSMQ, с одним отличием. Контракт операции снабжен аннотацией уровня защиты, которая предполагает, что сообщение должно быть подписано и зашифровано.