WCF Транспорт против Сообщения - PullRequest
48 голосов
/ 15 апреля 2011

Я читал о реализации безопасности WCF и обнаружил, что существует 2 типа безопасности: Transport Mode and Message Mode (or both)

Если я использовал HTTPS для транспортного режима, будет ли он более защищенным, если я также использовал безопасность сообщений?Я спрашиваю об этом, потому что я понимаю следующее:

https использует протокол SSL, который шифрует сообщения ... так зачем мне добавлять защиту сообщений и шифровать зашифрованные сообщения SSL?или я что-то недопонимаю?

Ответы [ 4 ]

86 голосов
/ 15 апреля 2011

Безопасность в WCF на самом деле состоит из нескольких функций .Разница между этими двумя заключается в том, как сообщения подписываются и шифруются.

Транспортная безопасность обеспечивает безопасность только двухточечного канала.Это означает, что HTTPS устанавливает безопасный канал только между клиентом и сервером, доступным клиенту.Но если этот сервер является просто балансировщиком нагрузки или обратным прокси-сервером, он имеет прямой доступ к содержимому сообщения.

Защита сообщений обеспечивает сквозную безопасность канала.Это означает, что безопасность является частью передаваемых данных, и только предполагаемый пункт назначения может расшифровать данные (балансировщик нагрузки или прокси-сервер видит только зашифрованное сообщение).Безопасность сообщений в большинстве случаев также использует сертификаты для обеспечения шифрования и подписи, но обычно она медленнее, поскольку безопасность транспорта может использовать ускорение HW.

В сложных сценариях эти методы можно комбинировать.Например, вы можете установить связь с балансировщиком нагрузки по протоколу HTTPS, поскольку доверяете своей внутренней сети после балансировщика нагрузки, но в то же время вы можете подписать сообщение (безопасность сообщения), чтобы доказать, что оно не изменилось.

Другое различие между этими двумя заключается в том, что безопасность транспорта связана с единым транспортным протоколом, тогда как безопасность сообщений не зависит от транспортного протокола.

Безопасность сообщений основана на совместимых протоколах (но следует помнить, что не каждая конфигурация в WCF совместима).WCF поддерживает, по крайней мере, частично эти протоколы:

  • WS-Security 1.0 и 1.1 - основные правила для шифрования, подписи, передачи токена, временных отметок и т. Д.
  • UserName token profile 1.0 - определениетокена, используемого для передачи имени пользователя и пароля.Эта спецификация реализована только частично, потому что WCF из коробки не поддерживает переваренный пароль и требует использования этого токена либо с транспортом, либо с шифрованием сообщений.
  • Профиль токена X509 1.1 - определение токена, используемого для транспортировки сертификатов.
  • Профиль токена Kerberos 1.1 - определение токена, используемого для транспортировки билетов Kerberos.
  • Профиль токена SAML 1.1 1.0 и 1.1 - определение токена, используемого для федеративной безопасности.SAML 2.0 предоставляется WIF.
  • WS-SecurityPolicy 1.1 и 1.2 - предоставляет поддержку для определения утверждения безопасности в WSDL.
  • WS-SecureConversation 1.3 и февраль 2005 г. - обеспечивает поддержку сеанса безопасности, гдеучетные данные обмениваются только во время первого вызова, а остальная часть связи использует уникальный токен безопасности.
  • WS-Trust 1.3 и февраль 2005 г. - обеспечивает поддержку федеративных сценариев и служб токенов безопасности (STS).

WCF также поддерживает WS-I Basic Security Profile 1.0, который является лишь подмножеством прежних протоколов с заданной конфигурацией.

Для не совместимых функций WCF предлагает такие функции, как безопасность Windows или TLSNego и SPNego (обычно обасовместимы, но их нет во многих стеках SOAP) для обмена учетными данными службы.

5 голосов
/ 15 апреля 2011

Эта ссылка описывает причины использовать или не использовать безопасность сообщений.

Как правило, безопасность на транспорте предпочтительна, если она не может быть использована.

Выдержка из ссылки:

Плюсы и минусы транспортного уровня Безопасность

Транспортная безопасность имеет следующее Преимущества:

Не требует, чтобы понимающие стороны понимают Концепции безопасности на уровне XML. Это может улучшить совместимость, для Например, когда HTTPS используется для защиты сообщение.

В целом улучшена производительность.

Доступны аппаратные ускорители.

Возможна потоковая передача.

Транспортная безопасность имеет следующее Недостатки:

Hop-to-hop only.

Ограниченный и нерастяжимый набор полномочия.

Транспортно-зависимый.

Недостатки уровня сообщений Безопасность

Сообщение безопасности имеет следующее Недостатки:

Производительность

Невозможно использовать потоковую передачу сообщений.

Требуется реализация уровня XML механизмы безопасности и поддержка Спецификация WS-Security. Это может влияет на совместимость.

0 голосов
/ 15 апреля 2011

Я бы сказал, что в большинстве случаев этого должно быть достаточно для одного или другого. Если вы можете использовать безопасность транспортного уровня, которая предпочтительнее, поскольку она шифрует всю информацию, а не только содержимое сообщения.

0 голосов
/ 15 апреля 2011

В некоторых случаях вы не сможете использовать шифрование на транспортном уровне и, таким образом, «откатитесь» на шифрование на уровне сообщений, которое немного менее безопасно, чем на транспортном уровне.

Обе операции будут более безопасными, конечно. Но это немного излишне, когда у вас хорошая безопасность на транспортном уровне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...