Поделиться через


Общие сведения о безопасности Windows Communication Foundation

Windows Communication Foundation (WCF) — это платформа распределенного программирования на основе SOAP, а защита сообщений между клиентами и службами важна для защиты данных. WCF предоставляет универсальную и совместимую платформу для обмена безопасными сообщениями на основе существующей инфраструктуры безопасности и признанных стандартов безопасности для сообщений SOAP.

WCF использует понятия, знакомые при создании безопасных распределенных приложений с существующими технологиями, такими как HTTPS, встроенная безопасность Windows или имена пользователей и пароли для проверки подлинности пользователей. WCF не только интегрируется с существующими инфраструктурами безопасности, но и расширяет распределенную безопасность за пределы доменов, ограниченных только Windows, используя безопасные сообщения SOAP. Рассмотрим реализацию существующих механизмов безопасности WCF с основным преимуществом использования SOAP в качестве протокола в дополнение к существующим протоколам. Например, учетные данные, идентифицирующие клиента или службу, такие как имя пользователя и пароль или сертификаты X.509, имеют взаимосовместимые профили SOAP на основе XML. Используя эти профили, сообщения обмениваются безопасно, используя открытые спецификации, такие как цифровые подписи XML и шифрование XML. Список спецификаций см. в разделе "Протоколы веб-служб", поддерживаемые привязками взаимодействия System-Provided.

Другим параллелем является объектная модель компонента (COM) на платформе Windows, которая обеспечивает безопасные распределенные приложения. COM имеет комплексный механизм безопасности, в котором можно передавать контекст безопасности между компонентами; этот механизм обеспечивает целостность, конфиденциальность и проверку подлинности. Однако COM не включает кроссплатформенный безопасный обмен сообщениями, например WCF. С помощью WCF можно создавать службы и клиентов, работающих в доменах Windows и посредством Интернета. Взаимодействующие сообщения WCF важны для создания динамических бизнес-служб, которые помогают чувствовать себя уверенными в безопасности вашей информации.

Преимущества безопасности Windows Communication Foundation

WCF — это распределенная платформа программирования на основе сообщений SOAP. С помощью WCF можно создавать приложения, которые работают как службы, так и клиенты служб, создавая и обрабатывая сообщения от неограниченного количества других служб и клиентов. В таком распределенном приложении сообщения могут передаваться с узла на узел, через брандмауэры, через Интернет и через многочисленных посредников SOAP. Это представляет различные угрозы безопасности сообщений. В следующих примерах показаны некоторые распространенные угрозы, которые могут помочь в обеспечении безопасности WCF при обмене сообщениями между сущностями:

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

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

  • Изменение сообщений для получения результата, отличного от намерений звонившего. Например, изменение номера счета, на который производится депозит, позволяет средствам перечисляться на мошеннический счет.

  • Хакер-нарушитель повторяет один и тот же заказ на покупку. Например, интернет-магазин книг получает сотни заказов и отправляет книги клиенту, который не заказал их.

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

В итоге безопасность передачи обеспечивает следующие гарантии:

  • Проверка подлинности конечной точки службы (респондента).

  • Проверка подлинности субъекта-клиента (инициатора).

  • Целостность сообщений.

  • Конфиденциальность сообщений.

  • Обнаружение повторов.

Интеграция с существующими инфраструктурами безопасности

Часто развертывания веб-служб имеют существующие решения для обеспечения безопасности, например протокол SSL или протокол Kerberos. Некоторые используют преимущества инфраструктуры безопасности, которая уже развернута, например домены Windows с помощью Active Directory. Часто необходимо интегрировать с этими существующими технологиями при оценке и внедрении новых технологий.

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

Интеграция с существующими моделями проверки подлинности

Важной частью любой модели безопасности коммуникации является возможность идентификации и проверки подлинности сущностей в обмене данными. Эти субъекты в коммуникации используют "цифровые удостоверения" или идентификационные данные для аутентификации при взаимодействии с партнёрами. По мере развития распределенных платформ коммуникации были реализованы различные модели проверки подлинности учетных данных и связанных с ними моделей безопасности. Например, в Интернете используется имя пользователя и пароль для идентификации пользователей. В интрасети использование контроллера домена Kerberos для резервного копирования проверки подлинности пользователей и служб становится общим. В некоторых сценариях, таких как между двумя деловыми партнерами, сертификаты могут использоваться для взаимной проверки подлинности партнеров.

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

  • Анонимный звонящий.

  • Учетные данные клиента имени пользователя.

  • Учетные данные клиента сертификата.

  • Windows (протокол Kerberos и NT LanMan [NTLM]).

Стандарты и взаимодействие

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

Чтобы обеспечить взаимодействие систем безопасности, компании, активные в отрасли веб-служб, создали различные стандарты. В частности, в отношении безопасности были предложены некоторые важные стандарты: WS-Security: SOAP Message Security (принято в соответствии со стандартом OASIS и ранее известный как WS-Security), WS-Trust, WS-SecureConversation и WS-SecurityPolicy.

WCF поддерживает широкий спектр сценариев взаимодействия. Класс BasicHttpBinding предназначен для базового профиля безопасности (BSP), а WSHttpBinding класс предназначен для последних стандартов безопасности, таких как WS-Security 1.1 и WS-SecureConversation. Следуя этим стандартам, безопасность WCF может взаимодействовать и интегрироваться с веб-службами, размещенными на операционных системах и платформах, отличных от Microsoft Windows.

Функциональные области безопасности WCF

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

Безопасность передачи

Безопасность передачи включает три основных функции безопасности: целостность, конфиденциальность и проверку подлинности. Целостность — это возможность определить, было ли сообщение изменено. Конфиденциальность — это возможность сохранять сообщение нечитаемым кем-либо, кроме предполагаемого получателя; это достигается с помощью криптографии. Проверка подлинности — это возможность верификации заявленной личности. Вместе эти три функции помогают обеспечить безопасное поступление сообщений из одной точки в другую.

Режимы безопасности транспорта и сообщений

Для реализации безопасности передачи в WCF используются два основных механизма: режим безопасности транспорта и режим безопасности сообщений .

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

  • С другой стороны, режим безопасности сообщений использует WS-Security (и другие спецификации) для реализации безопасности передачи. Поскольку безопасность сообщений применяется непосредственно к SOAP-сообщениям и находится внутри конвертов SOAP вместе с данными приложения, она имеет преимущество независимости от протокола транспорта, большей гибкости и обеспечения сквозной безопасности (в отличие от безопасности точки до точки). Однако она обладает недостатком в том, что работает в несколько раз медленнее, чем режим транспортной безопасности, так как необходимо учитывать XML-природу SOAP-сообщений.

Дополнительные сведения об этих различиях см. в разделе "Защита служб и клиентов".

Третий режим безопасности использует оба предыдущих режима и дает преимущества обоих. Этот режим называется TransportWithMessageCredential. В этом режиме безопасность сообщений используется для аутентификации клиента, а транспортная безопасность - для аутентификации сервера и обеспечения конфиденциальности и целостности сообщений. Благодаря этому TransportWithMessageCredential режим безопасности почти так же быстрый, как режим транспортной безопасности, и обеспечивает расширяемость проверки подлинности клиента так же, как режим безопасности сообщений. Однако, в отличие от режима безопасности сообщений, он не обеспечивает полную сквозную безопасность.

Управление доступом

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

В WCF функции управления доступом предоставляются через интеграцию с средой CLR PrincipalPermissionAttribute и набором API, известных как модель идентификации. Дополнительные сведения об управлении доступом и авторизации на основе утверждений см. в разделе "Расширение безопасности".

Аудит

Аудит — это ведение журнала событий безопасности в журнал событий Windows. Вы можете регистрировать события, связанные с безопасностью, такие как сбои проверки подлинности (или успешное выполнение). Дополнительные сведения см. в разделе Аудит. Сведения о программировании см. в разделе "Практическое руководство. Аудит событий безопасности".

См. также