Службы Web рассматриваются в качестве технологии будущего для интеграции распределенных приложений и являются основой для создания новых комплексных моделей электронного бизнеса. Однако, несмотря на многочисленные разработки в этой области, многие предприятия до сих пор задумываются над обеспечением безопасности служб Web. И здесь помощь могут оказать новые стандарты и сотрудничество производителей.
Оценивая значение служб Web для ведения дел через Internet, мы должны прежде всего понимать лежащие в основе технологии. Маурицио Карли, специалист по программному обеспечению европейского представительства IBM, описывает службы Web как «следующую ступень эволюции Internet». Речь идет об организации сети с такими связями, чтобы «обмен приложениями происходил так же, как сейчас осуществляется обмен данными».
Службы Web могут в перспективе справиться с животрепещущими проблемами в области совместимости и интеграции приложений, которые в настоящее время преодолены лишь частично. Сложные равноправные соединения между приложениями, как и сложные решения по интеграции корпоративных приложений (Enterprise Application Integration, EAI), в результате развертывания служб Web должны выйти из употребления. До сих пор стандарты для распределенных приложений не приняты, поэтому эти решения несколько ущербны по причине своей технической несовместимости. Службы Web делают доступными функциональность соответствующих приложений через стандартные протоколы и облегчают их интеграцию для администраторов (см. врезку «Свойства служб Web»).
ФУНДАМЕНТ В ЛИЦЕ XML
Львиной долей своей продуктивности и гибкости службы Web обязаны расширяемому языку разметки (Extensible Markup Language, XML). XML является текстовым языком описания данных, при помощи которого достаточно легко могут быть разработаны адаптированные под конкретного пользователя языки разметки, где определяются структурирование и обработка информации. Изначально XML создавался под инфраструктуру Web, однако язык подходит для описания любой структурированной информации и потому идеален для обмена ею между теми вычислительными системами, где нельзя иначе организовать обмен информации. Теперь и самые важные для служб Web стандарты (SOAP, WSDL, UDDI), а также перспективные стандарты безопасности (к примеру, SAML, XKMS, XACML) базируются на XML. Именно широкая распространенность XML содействует высокой совместимости и беспроблемной интеграции служб Web — двум важнейшим их качествам.
Если XML составляет фундамент служб Web, то простой протокол доступа к объектам (Simple Object Access Protocol, SOAP) устанавливает соединение между ними. Базирующийся на XML, этот транспортный протокол обеспечивает в Internet стандартный обмен информацией в формате XML посредством HTTP. При относительно небольших издержках на программирование он позволяет реализовать взаимодействие между приложениями в Intranet или Internet, причем независимо от платформы, на которой работают приложения. SOAP определяет механизмы удаленного вызова процедур (Remote Procedure Call, RPC) и передачу электронных документов между совместимыми с ним приложениями. Для передачи команд с целью вызова приложения с других серверов он использует синтаксис XML.
Помимо XML и SOAP есть еще несколько важных стандартов: язык описания служб Web (Web Service Description Language, WSDL) определяет методы для создания детализированных описаний служб Web; универсальный стандарт обнаружения и интеграции описаний (Universal Description Discovery and Integration, UDDI) предлагает метод для опубликования описаний с той целью, чтобы те или иные службы Web могли быть легко распознаны и использованы другими службами Web.
ПРОБЛЕМА БЕЗОПАСНОСТИ
В середине прошлого года в различных стадиях разработки, тестирования или утверждения находилось около 30 важных стандартов безопасности и конфиденциальности электронного бизнеса. Кроме того, ведущие производители обещали поддерживать открытые стандарты безопасности и соответствующим образом защитить все распространенные продукты. Ниже дается обзор некоторых из этих стандартов.
XKMS. Инфраструктуры поддержки открытых ключей (Public Key Infrastructure, PKI) имеют очень большое значение для безопасности служб Web. С их помощью конечные пользователи и службы Web могут создавать цифровые удостоверения личности, которым можно доверять. Они, в свою очередь, обеспечивают заслуживающие доверия коммуникации и транзакции. Стандарт распределения ключей XML (XML Key Management Service, XKMS) описывает метод, посредством которого клиентские машины на базе XML могут получать безопасный доступ к PKI-ориентированным службам. Метод включает в себя генерацию ключа, его регистрацию и возможность повторного вызова, а также проверку цифровых сертификатов и подписей. Важной целью XKMS является сокрытие от приложений сложностей нижележащих структур PKI, для чего обработка цифровых сертификатов передается специальным службам Web.
SAML. Язык разметки утверждений безопасности (Security Assertion Markup Language, SAML) также базируется на XML. С его помощью службы Web обмениваются информацией об авторизации и аутентификации. К ней относятся заслуживающие доверия утверждения (Security Assertion) от конечных пользователей, служб Web или других персон с цифровыми удостоверениями личности.
Утверждения SAML делятся на три вида:
- аутентификационные выдаются службами аутентификации и подтверждают право доступа определенных пользователей к защищенным ресурсам (например, внутренним или внешним сетям);
- атрибутивные выдаются службами атрибутов и подтверждают, что пользователь или служба Web обладает определенным статическим атрибутом (им может быть исполняемая роль или принадлежность к компании) или динамическим атрибутом (состояние счета клиента или объем оборота посредника за квартал);
- служба авторизации собирает информацию об аутентификации, атрибутах и директивах авторизации и генерирует утверждения, определяющие, какие ресурсы доступны для пользователя или служб.
Спецификации Liberty Alliance базируются на версии 1.0 спецификации SAML для аутентификации и совместного использования цифровых удостоверений.
XACML. Язык разметки управления доступом XML (XML Access Control Markup Language, XACML) находится в очень тесной связи с SAML. При помощи XACML можно определить, какие директивы формируются и передаются для управления доступом. Посредством составления правил по модели «пользователь — право — объект» авторы директив могут выборочно и очень гибко определять, какие службы Web должны обладать правами доступа к определенным документам XML. К примеру, посредством XACML больничная касса получает механизм, с помощью которого можно определить, какие сведения, содержащиеся в медицинских картах (страховки, лечащий врач и др.), разрешается просматривать третьим лицам. Закрытая информация, по правовым или каким-либо иным причинам, при этом не предоставляется.
XMLSignature и XMLEncryption. Эти спецификации тесно связаны между собой и отвечают за целостность и конфиденциальность документов XML. От предыдущих спецификаций они отличаются тем, что обеспечивают наличие соответствующих инструментов для полных документов или их частей. Так, в пределах одного документа можно учитывать различные требования к правам доступа, конфиденциальности и целостности данных. Спецификация XMLSignature была утверждена W3C и сейчас интегрируется в ряд продуктов. С ее использованием появляется возможность определения ролей для цифровой подписи на документах XML и обработки подписи. XMLEncryption описывает синтаксис кодировки документов XML, поэтому доступ к их содержимому получают только авторизованные службы Web.
Webservice Security. Защита служб Web опирается на подписи и шифрование XML и предлагает различные расширения SOAP для обеспечения целостности данных, конфиденциальности и аутентификации. По инициативе RSA Security, IBM и Microsoft для официальной стандартизации была предложена спецификация Webservice Security Организации развития структурированных информационных стандартов (Organization for the Advancement of Structured Information Standards, OASIS). Спецификация поддерживает различные маркеры доступа, установку доверительных отношений между доменами, форматы подписи и технологии шифрования. В ближайшем будущем SAML станет поддерживать и профили Webservice Security.
Однако как же может быть обеспечена безопасность при коммуникации между двумя приложениями?
Перемещение данных между службами Web базируется исключительно на взаимодействии между машинами, обработка бизнес-процессов осуществляется без участия человека. Если приложения обмениваются транзакциями и обрабатывают их, то для них следует обеспечить должную конфиденциальность и максимальный уровень безопасности внутри каждой отдельной транзакции (см. врезку «Практический пример»).
Бизнес-процессам необходимо так называемое аутентификационное удостоверение (Authentication Credentials). Однако при этом внутренняя инфраструктура не должна претерпеть изменений. Возможный вариант выхода из ситуации — включение в сеть сервера, чья задача состояла бы в защите транзакции всех взаимодействующих друг с другом приложений. RSA Security, IBM и Microsoft уже работают над концепцией соответствующего решения — ждать, по всей видимости, осталось не так долго.
Франк Мюллер — менеджер по маркетингу центрально-европейского отделения компании RSA Security. С ним можно связаться по адресу: http://www.rsasecurity.de.
? AWi Verlag
Свойства служб Web
Службы Web:
- предлагают возможности взаимодействия между приложениями;
- имеют в качестве базиса распространенную инфраструктуру Web;
- задействуют удаленный вызов процедуры и обмен документами;
- используют для обмена данными HTTP и простой протокол доступа к объектам (SOAP);
- динамично вызывают модули из различных мест;
- используют объектно-ориентированные методы;
- обладают интерфейсом XML.
Практический пример
Представленный процесс договора займа показывает на конкретном примере роль обеспечения безопасности служб Web.
- Соискатель заполняет формуляр договора займа в интерактивном режиме и нажимает на кнопку "Отправить". Приложение службы Web на основании указанных атрибутов проверяет кредитоспособность заявителя и наличие гарантий.
- Прежде чем кредитное учреждение сможет вступить в контакт с прочими службами Web, оно должно пройти аутентификацию. Это происходит при помощи цифрового сертификата, за выдачу которого отвечает заслуживающая доверие третья сторона. Через интерфейс в систему администрирования PKI сервер XKMS получает цифровой сертификат кредитного учреждения.
- Теперь кредитное учреждение может потребовать от службы каталогов UDDI установить соединение с кредитным информационным агентством. После чего ему выдается соответствующее имя и выдвигается условие о необходимости подтверждения всех запросов цифровой подписью.
- Когда кредитное учреждение посылает подписанный запрос, то информационное агентство обращается к серверу XKMS для проверки регистрационных данных запрашивающей стороны. Сервер XKMS подтверждает действенность регистрационных данных. Затем агентство отвечает на запрос кредитного учреждения так называемым атрибутивным утверждением, где удостоверяется или опровергается кредитоспособность заявителя.
- Сразу же после проверки кредитоспособности кредитное учреждение должно в деталях изучить всю информацию касательно обеспечения гарантий. Это делается с помощью баз данных, за ведение которых отвечают компетентные уполномоченные органы. Прежде всего устанавливается, обладает ли кредитное учреждение правом доступа к этим ресурсам. Если все в порядке, ему выдается утверждение SAML на авторизацию.
- Кредитное учреждение подает запрос о гарантиях посредством защищенного заголовка службы Web, содержащего утверждение из шага 5. Ответ должен подтвердить, что обеспечение соответствует описанию заявителя, и к нему нет правовых или финансовых претензий.
- После получения необходимой информации о заявителе и его гарантиях кредитное учреждение составляет подписанный договор, утверждающий заем. Целостность документа обеспечивает подпись и кодировка XML.