Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Организация защиты Web-служб



Традиционный подход к защите передаваемых данных в WEB предполагает организацию защищенного SSL-канала, и доступ к веб-службе организуется по протоколу HTTPS (поддерживающее шифрование данных расширение протокола HTTP). Специфика этого протокола требует наличия на сервере специального SSL-сертификата, фактически привязанного к одному конкретному IP-адресу. Такое решение не всегда удобно, прежде всего в том случае, когда нам необходимо реализовать несколько различных защищенных каналов на одном веб-ресурсе. Потребность в предоставлении конфиденциальной информации посредствам веб-служб росла, и требовалась разработка соответствующих спецификаций.

Организация продвижения стандартов структурированной информации – OASIS (the Organization for the Advancement of Structured Information Standards) – разработала новый набор спецификаций по защите веб-служб, обобщив накопленный опыт и учитывая имеющиеся недостатки. Группой OASIS были предложены два подхода: SAML [5] и WS-Security [1].

SAML (Security Assertion Markup Language) – это язык разметки заявлений системы безопасности. Он осуществляет описание функций безопасности, относящихся к аутентификации и авторизации. SAML используется поверх существующей инфраструктуры систем безопасности.

Маркеры языка SAML (Security Assertions Markup Language) являются XML-представлением утверждений.

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

Клиент запрашивает маркер SAML у службы маркеров безопасности, проходя проверку подлинности в службе маркеров безопасности с использованием учетных данных Windows.

Служба маркеров безопасности выдает маркер SAML клиенту. Маркер SAML подписан сертификатом, связанным со службой маркеров безопасности, и содержит ключ проверки, зашифрованный для целевой службы.

Клиент также получает копию ключа проверки. Затем клиент представляет маркер SAML службе приложений (проверяющая сторона) и подписывает сообщение при помощи этого ключа проверки.

Подпись маркера SAML указывает проверяющей стороне, что маркер выдан службой маркеров безопасности. Подпись сообщения, созданная при помощи ключа проверки, указывает проверяющей стороне, что маркер был выдан клиенту.

В WCF операторы в маркерах SAML моделируются как объекты SamlAttribute, которые могут заполняться прямо из объектов Claim. Если у предоставляемого объекта Claim есть свойство Right равное PossessProperty, и свойство Resource принадлежит к типу String. Например:

ПРИМЕЧАНИЕ

Если в сообщениях маркеры SAML сериализуются, выдаются они службой маркеров безопасности или предоставляются клиентами службам как часть проверки подлинности, максимальный размер квоты сообщения должен быть достаточно большим, чтобы вместить маркер SAML и другие части сообщения. Как правило, по умолчанию квоты на размер сообщения являются достаточными. Впрочем, в случае большого размера маркера SAML (когда он содержит сотни утверждений), может потребоваться увеличение квот для выделения места сериализованному маркеру.

Различные операторы в маркере SAML преобразуются в объекты IAuthorizationPolicy, которые помещаются в класс AuthorizationContext, когда в сообщении содержатся маркеры SAML. Утверждения от каждого оператора SAML возвращаются свойством ClaimSets класса AuthorizationContext и могут быть проверены на необходимость проверки подлинности и авторизации пользователя.

Спецификация WS-Security, напротив, описывает форматы закрытия данных и цифровой подписи SAOP-собщений. Развертывание веб-служб на базе спецификации WS-Security намного проще, и этот стандарт получил более широкое распространение.

Спецификация WS-Security была разработана на базе так называемой технологии проталкивания открытых ключей. Обычно при организации инфраструктуры открытых ключей (Public Key Infrastructure) используется один из двух подходов: создание механизмов запроса подлинности сертификата у Удостоверяющего центра, так называемое «вытягивание», или присоединение к исходному сообщению Сертификата подлинности, то есть «проталкивание» Сертификата.

WS-Security использует множество знакомых и существующих стандартов и спецификаций в области безопасности. WS-Security реализует защиту Web-служб при помощи текущих, существующих стандартов, таких, как Kerberos, PKI, XML Encryption, XML Signature и SSL. WS-Security предлагает рамочную основу для внедрения существующих технологий в сообщения SOAP вне зависимости от способа их транспортировки. Также, WS-Security поддерживает распространение маркеров безопасности, таких, как сертификаты X.509 или "билеты" Kerberos и многих других через множественные домены с разным уровнем доверия, используя множественные форматы цифровой подписи и множественные технологии шифрования.

В спецификации WS-Security элемент заголовка SOAP используется для транспортировки данных, необходимых для реализации технологий защиты. Например, при использовании подписи XML, в заголовок может включаться информация о типе использованного ключа и само значение подписи. Аналогичным образом, при использовании шифрования XML, в заголовке может помещаться информация о шифровании. Таким образом, WS-Security вместо определения формата, указывает, как внедрить в сообщение SOAP информацию, заданную другими спецификациями.

Кроме внедрения информации в заголовки SOAP, WS-Security задает метод, которым мы можем передавать простые пользовательские свидетельства через элемент UsernameToken. Также она определяет, как передавать двоичные маркеры. Поскольку вся необходимая для технологий безопасности информация заключена в SOAP-части сообщения, WS-Security обеспечивает сквозную защиту для Web-служб. WS-Security обеспечивает расширение возможностей существующих сообщений SOAP, повышая тем самым качество защиты. На рисунке 10-10 изображен формат сообщения SOAP. WS-Security использует три ключевых механизма для защиты Web-служб:

Распространение маркеров безопасности

Целостность сообщения

Конфиденциальность сообщения

Распространение маркеров безопасности

В этом стандартном механизме маркер безопасности включается в сообщение SOAP. "Распространение маркеров безопасности" означает, что свидетельства безопасности передаются от отправителя к получателю. Отправитель и получатель могут быть клиентом, XML Web-службой или посредником. Поскольку маркер включается в сообщение SOAP, он прозрачен для внешнего мира. Возможность подделки маркера посредником остается до тех пор, пока маркер передается в форме открытого текста. Для обеспечения целостности и конфиденциальности сообщения при этом необходимо принять надлежащие защитные меры. WS-Security предлагает для этого лишь механизм общего назначения, ассоциирующий маркер с сообщением SOAP. Эта спецификация не требует, чтобы маркер относился к какому-то определенному типу. Это придает ей гибкость и совместимость со многими типами маркеров безопасности.

Необходимая для технологий защиты и адресованная получателю информация, включая маркеры безопасности, добавляется в заголовок SOAP <Security> отправителем или посредником. Если представленная в заголовке SOAP информация действительна, сообщение принимается; в противном случае оно будет отвергнуто. Сообщение SOAP, прежде чем достичь получателя, может включить в себя ноль или несколько заголовков <Security>, поскольку оно может маршрутизироваться через несколько посредников.

Формат сообщения SOAP по WS-Security.

Ниже приведен пример сообщения SOAP с заголовком <Security>.

Любой получатель может использовать информацию, содержащуюся в заголовке <Security>, если атрибут actor отсутствует. Блок заголовка <Security> содержит информацию о сообщении, связанную с безопасностью.

Этот код указывает на маркер безопасности, ассоциированный с данным сообщением. В нашем случае мы указываем на сертификат X.509, закодированный при помощи base64.

89 Приложение ASP.NET. Каталог bin|Приложение ASP.NET. Каталог \bin





Дата публикования: 2015-02-03; Прочитано: 288 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...