В WCF при использовании wshttpbinding
с защитой сообщений (которая шифрует сериализованный XML, отправленный по кабелю), зачем нам SSL Transport Security, которая также шифрует сертификат SSL?Есть ли какая-либо польза от использования wsHttpBinding SSL Transport Security в сочетании с безопасностью сообщений?
ответ
Чтобы решить этот вопрос, его, вероятно, лучше всего начать с некоторыми основами Windows Communication Foundation (WCF)
Понимание некоторых из этих ключевых моментов, ответ на ваш вопрос должен стать ясно
WCF Ключевые функции безопасности
Любая сервис-ориентированная архитектура (SOA) должна поддерживать функции безопасности, которые обеспечивают аудит, аутентификацию, авторизацию, конфиденциальность и целостность сообщений, обмениваемых между клиентом и службой.
Аудиторская. Эффективный аудит и ведение журнала (т. Е. Отказ от отказа). Неотказание гарантирует, что пользователь не может отрицать выполнение операции или инициирование транзакции.
Аутентификация. Уверенно определите клиентов своего сервиса. Это могут быть конечные пользователи, другие службы, процессы или компьютеры.
Авторизация. Определите, какие системные ресурсы и операции могут быть доступны аутентифицированному пользователю.
Конфиденциальность. Процесс обеспечения того, чтобы данные оставались конфиденциальными и конфиденциальными, и что они не могут быть просмотрены неавторизованными пользователями. Шифрование часто используется для обеспечения конфиденциальности.
Целостность. Гарантируйте, что данные защищены от случайного или преднамеренного изменения. Целостность данных в пути обычно обеспечивается с помощью методов хеширования и кодов аутентификации сообщений.
Более подробную информацию о выше, можно найти здесь: WCF Security Fundamentals
модели безопасности WCF
В WCF, у вас есть несколько вариантов для обеспечения безопасности передачи, которая в первую очередь расщепляет (но не ограничиваясь ими) следующие режимы безопасности передачи
Транспорт. Взаимная аутентификация и защита сообщений предоставляются на транспортном уровне
Сообщение.На уровне сообщений предоставляются взаимная аутентификация и защита сообщений
Оба. Взаимная аутентификация и защита сообщений предоставляются как на транспорте и сообщение
Есть другие гибридные вариации этого режима, больше информации по этой теме можно найти здесь: Message and Transport Security
Транспортная безопасность
Безопасность транспорта в отношении WSHttpBinding использует транспорт HTTP, а основным механизмом для обеспечения транспорта является Secure Sockets Layer (SSL) через HTTP, обычно называемый HTTPS.
Транспортная безопасность обеспечивает только защищенный канал «точка-точка» между клиентом и сервером, если этот сервер является балансировщиком нагрузки или прокси-сервером, результирующий сервер имеет прямой доступ к содержимому сообщения, если нет обеспеченных
Более подробную информацию о безопасности транспорта можно найти здесь: Transport Security Overview
безопасности Сообщение
Безопасность сообщений в отношении WSHttpBinding использует спецификацию WS-Security для защиты сообщений. Спецификация WS-Securitys описывает усовершенствования обмена сообщениями SOAP для обеспечения конфиденциальности, целостности и аутентификации на уровне сообщений SOAP (вместо уровня транспорта).
Безопасность сообщений отличается от безопасности транспорта путем инкапсуляции учетных данных и требований безопасности с каждым сообщением вместе с любой защитой сообщений (подписание или шифрование). Применение безопасности непосредственно к сообщению путем изменения его содержимого позволяет защищенному сообщению быть самосогласованным в отношении аспектов безопасности. Это позволяет использовать некоторые сценарии при невозможности использования транспортной безопасности.
Более подробную информацию можно найти здесь Message Security in WCF
Транспорт и сообщение безопасности
Теперь, чтобы ответить вам вопрос, в некоторых сложных случаях транспорта и сообщения безопасности могут быть объединены , Примером может служить безопасность транспорта для вашего балансировщика нагрузки или какой-то прокси-сервер, а также безопасность сообщений для конечного пункта назначения, чтобы гарантировать, что сообщение не изменилось и содержимое оставалось частным, соответственно.
Другим примером использования подхода hyprib может быть сценарий в ориентированном на пользователя веб-приложении, где веб-приложение работает на своем собственном сервере и разговаривает с бизнес-службой на отдельном сервере.Сервер веб-приложений говорит от имени пользователя с бизнес-сервером
В большинстве случаев комбинированный транспорт и безопасность сообщений не нужны, и поскольку безопасность на транспорте использует аппаратное ускорение и безопасность сообщений, нет, возможно, дополнительные служебные накладные расходы не требуется или подходят
Более подробная информации о транспорте и безопасности сообщений можно найти здесь Message and Transport Security
Примечания это на самом деле хороший вопрос, и не очевиден для большинства людей, поэтому я взял на себя смелость переформатирования вопроса в дух оригинального поста –