WCF Message Security продолжает работать с удаленным сертификатом - PullRequest
1 голос
/ 18 октября 2011

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

Подробно, это мои файлы конфигурации службы: Web.config , App.config

Насколько я могу судить, все работает нормально, даже когда сертификат хранится на смарт-карте (WCF даже выскакивает диалоговое окно с просьбой ввести PIN-код смарт-карты, чтобы разблокировать сертификат).

Но удаление SmartCard после первоначального согласования безопасности не влияет на соединение - я все еще могу вызывать методы в веб-службе.

Что происходит?

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

  • Или может быть, я настроил службу на использование только сертификата для аутентификации клиента, но сообщения вообще не шифруются?

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

Это потому, что ваша конфигурация безопасности использует контекст безопасности (по умолчанию для WsHttpBinding).Контекст безопасности (реализация WS-SecureConversation) действительно работает аналогично HTTPS.Он использует сертификат только для начальной аутентификации и генерации токена безопасности, который используется для защиты после связи с тем же экземпляром прокси-сервера службы.Контекст устанавливается в качестве экземпляра прокси-сервера службы, а также устанавливает сеанс WCF, который является объектом тайм-аута.

0 голосов
/ 07 февраля 2012
  <security mode="Message">
    <message clientCredentialType="Certificate" negotiateServiceCredential="false" establishSecurityContext="false" />
  </security>

Попробуйте установить для УстановитьSecurityContext значение false.

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