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

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

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

Аналогичным средством является модель 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]).

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

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

Чтобы можно было использовать системы безопасности с возможностью взаимодействия, компании, активно работающие в индустрии веб-служб, разработали множество стандартов. В частности, в отношении безопасности предложено несколько известных стандартов: 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. Можно регистрировать такие связанные с безопасностью события, как положительные и отрицательные результаты проверки подлинности. Дополнительные сведения см. в разделе "Аудит". Сведения о программировании см. в разделе "Практическое руководство. Аудит событий безопасности".

См. также