Общие сведения о безопасности
Windows Communication Foundation (WCF) — это распределенная платформа программирования, основанная на сообщениях SOAP. Для защиты данных необходимо обеспечение безопасности сообщений, передаваемых между клиентами и службами. WCF обеспечивает универсальную платформу с возможностью взаимодействия для обмена безопасными сообщениями на основе существующей инфраструктуры безопасности и общепризнанных стандартов безопасности для сообщений SOAP.
Примечание |
---|
Полное руководство о безопасности WCF см. в разделе Руководство по безопасности WCF. |
В 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 функции управления доступом реализуются посредством интеграции с атрибутом PrincipalPermissionAttribute среды CLR и с помощью набора интерфейсов API, называемого моделью удостоверения. Подробные сведения об управлении доступом и авторизации, основанной на утверждениях, см. в разделе Расширение системы безопасности.
Аудит
Аудит — это запись событий, связанных с безопасностью, в журнал событий Windows. Можно регистрировать такие связанные с безопасностью события, как положительные и отрицательные результаты проверки подлинности. Дополнительные сведения см. в разделе Аудит событий безопасности. Подробные сведения о программировании см. в разделе Практическое руководство. Аудит событий безопасности Windows Communication Foundation.
См. также
Справочник
Основные понятия
Защита служб
Привязки и безопасность
Аудит событий безопасности
Руководство и рекомендации по безопасности
Настройка служб с использованием файлов конфигурации
Привязки, предоставляемые системой
Общие сведения о создании конечных точек
Другие ресурсы
Типовые сценарии безопасности
Защита служб и клиентов
Проверка подлинности
Авторизация
Федерация и выданные маркеры
Расширение системы безопасности
Модель безопасности для Windows Server App Fabric