Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе рассматривается безопасность транспорта очереди сообщений (MSMQ), которую можно использовать для защиты сообщений, отправленных в очередь.
Замечание
Перед чтением этой статьи рекомендуется прочитать основные понятия безопасности.
На следующем рисунке представлена концептуальная модель связи с очередью с помощью Windows Communication Foundation (WCF). Эта иллюстрация и терминология используются для объяснения концепций безопасности транспорта.
При отправке сообщений в очереди с помощью WCF сообщение WCF NetMsmqBindingдобавляется в текст сообщения MSMQ. Безопасность транспорта обеспечивает защиту всего сообщения MSMQ (заголовки или свойства сообщений MSMQ и текст сообщения). Так как это текст сообщения MSMQ, использование безопасности транспорта также защищает сообщение WCF.
Основной концепт безопасности транспорта заключается в том, что клиент должен соответствовать требованиям безопасности, чтобы отправить сообщение в целевую очередь сообщений. Это в отличие от безопасности сообщений, где сообщение защищено для приложения, получающего сообщение.
Использование NetMsmqBinding и MsmqIntegrationBinding влияет на то, как сообщения MSMQ защищены в транзите между очередью передачи и целевой очередью, где защита подразумевает:
Подписывание сообщения, чтобы убедиться, что оно не было изменено.
Шифрование сообщения, чтобы убедиться, что он не может быть замечен или изменен. Это рекомендуется, но необязательно.
Диспетчер целевой очереди, определяющий отправителя сообщения для обеспечения безотказности.
В MSMQ, независимо от проверки подлинности, целевая очередь имеет список управления доступом (ACL), чтобы проверить, имеет ли клиент разрешение на отправку сообщения в целевую очередь. Принимающее приложение также проверяет разрешение на получение сообщения из целевой очереди.
Свойства безопасности транспорта WCF MSMQ
MSMQ использует безопасность Windows для проверки подлинности. Он использует идентификатор безопасности Windows для идентификации клиента и использует службу каталогов Active Directory в качестве центра сертификации при проверке подлинности клиента. Для этого необходимо установить MSMQ с интеграцией Active Directory. Так как идентификатор безопасности домена Windows используется для идентификации клиента, этот параметр безопасности имеет смысл только в том случае, если клиент и служба являются частью одного домена Windows.
MSMQ также предоставляет возможность приложить к сообщению сертификат, который не зарегистрирован в Active Directory. В этом случае оно гарантирует, что сообщение было подписано с помощью присоединенного сертификата.
WCF предоставляет оба этих варианта в рамках безопасности транспорта MSMQ, и они являются ключевым элементом для обеспечения безопасности транспорта.
По умолчанию безопасность транспорта включена.
Учитывая эти основы, в следующих разделах подробно описаны свойства безопасности транспорта, объединенные с NetMsmqBinding и MsmqIntegrationBinding.
Режим проверки подлинности MSMQ
Определяет MsmqAuthenticationMode , следует ли использовать безопасность домена Windows или внешнюю безопасность на основе сертификатов для защиты сообщения. В обоих режимах проверки подлинности канал WCF в очереди использует CertificateValidationMode, указанное в конфигурации службы. Режим проверки сертификата указывает механизм, используемый для проверки допустимости сертификата.
Если включена безопасность транспорта, параметр по умолчанию имеет значение WindowsDomain.
Режим проверки подлинности домена Windows
Выбор использования безопасности Windows требует интеграции Active Directory.
WindowsDomain — это режим безопасности транспорта по умолчанию. Если этот параметр задан, канал WCF присоединяет идентификатор безопасности Windows к сообщению MSMQ и использует его внутренний сертификат, полученный из Active Directory. MSMQ использует этот внутренний сертификат для защиты сообщения. Диспетчер очереди получения использует Active Directory для поиска и поиска соответствующего сертификата для проверки подлинности клиента и проверки соответствия идентификатора безопасности клиента. Этот шаг проверки подлинности выполняется, если сертификат, созданный внутри в случае WindowsDomain режима проверки подлинности или внешнего создания в Certificate случае режима проверки подлинности, присоединяется к сообщению, даже если целевая очередь не помечена как требующая проверки подлинности.
Замечание
При создании очереди можно пометить очередь как аутентифицированную очередь, чтобы указать, что для очереди требуется проверка подлинности клиента, отправляющего сообщения в очередь. Это гарантирует, что в очереди не принимаются сообщения без проверки подлинности.
SID, прикрепленный к сообщению, также используется для проверки ACL целевой очереди, чтобы убедиться, что клиент имеет право отправлять сообщения в очередь.
Режим проверки подлинности сертификата
Выбор режима проверки подлинности сертификата не требует интеграции Active Directory. В некоторых случаях, например, когда MSMQ установлен в режиме рабочей группы (без интеграции Active Directory) или при использовании протокола передачи сообщений SOAP Reliable Messaging Protocol (SRMP) для отправки сообщений в очередь работает только Certificate .
При отправке сообщения WCF с Certificate канал WCF не присоединяет идентификатор безопасности Windows к сообщению MSMQ. Таким образом, ACL целевой очереди должен разрешать Anonymous пользователю доступ для отправки сообщений в очередь. Диспетчер очереди получения проверяет, подписано ли сообщение MSMQ с сертификатом, но не выполняет проверку подлинности.
Сертификат с информацией о требованиях и идентификационных данных заполняется очередным транспортным каналом WCF ServiceSecurityContext. Служба может использовать эту информацию для выполнения собственной проверки подлинности отправителя.
Уровень защиты MSMQ
Уровень защиты определяет, как защитить сообщение MSMQ, чтобы убедиться, что оно не было изменено. Он указан в свойстве MsmqProtectionLevel . Значение по умолчанию — Sign.
Уровень защиты подписи
Сообщение MSMQ подписывается с помощью внутреннего созданного сертификата при использовании WindowsDomain режима проверки подлинности или внешнего созданного сертификата при использовании Certificate режима проверки подлинности.
Уровень защиты подписи и шифрования
Сообщение MSMQ подписывается с помощью внутреннего созданного сертификата при использовании WindowsDomain режима проверки подлинности или внешнего созданного сертификата при использовании Certificate режима проверки подлинности.
Помимо подписывания сообщения, сообщение MSMQ шифруется с помощью открытого ключа сертификата, полученного из Active Directory, который принадлежит диспетчеру получающих очередей, на котором размещена целевая очередь. Диспетчер очередей отправки гарантирует, что сообщение MSMQ шифруется во время передачи. Диспетчер очередей получает расшифровку сообщения MSMQ с помощью закрытого ключа внутреннего сертификата и сохраняет сообщение в очереди (при проверке подлинности и авторизации) в виде ясного текста.
Замечание
Для шифрования сообщения требуется доступ к Active Directory (свойство UseActiveDirectory должно иметь значение NetMsmqBinding) и может использоваться как с true, так и с Certificate.
Уровень защиты отсутствует
Это подразумевается, если MsmqProtectionLevel задано значение None. Это не может быть допустимым значением для других режимов проверки подлинности.
Замечание
Если сообщение MSMQ подписано, MSMQ проверяет, подписано ли сообщение с присоединенным сертификатом (внутренним или внешним) независимо от состояния очереди, то есть аутентификации очереди или нет.
Алгоритм шифрования MSMQ
Алгоритм шифрования задает алгоритм, используемый для шифрования сообщения MSMQ в проводной сети. Это свойство используется только в том случае, если MsmqProtectionLevel задано значение EncryptAndSign.
Поддерживаемые алгоритмы: RC4Stream и AES, а алгоритм по умолчанию — RC4Stream.
Вы можете использовать алгоритм AES только в том случае, если у отправителя установлен MSMQ 4.0. Кроме того, целевая очередь также должна размещаться в MSMQ 4.0.
Хэш-алгоритм MSMQ
Хэш-алгоритм задает алгоритм, используемый для создания цифровой подписи сообщения MSMQ. Диспетчер очереди получения использует этот же алгоритм для проверки подлинности сообщения MSMQ. Это свойство используется только в том случае, если MsmqProtectionLevel установлено на Sign или EncryptAndSign.
Поддерживаемые алгоритмы: MD5, SHA1SHA256и SHA512. Значение по умолчанию — SHA1.
Из-за проблем с конфликтом с MD5/SHA1 корпорация Майкрософт рекомендует SHA256 или лучше.
См. также
- Обзор очередей
- Основные понятия безопасности
- обеспечение безопасности служб и клиентов