Александр Календарев
Веб-службы с каждым днем находят все большее применение как в публичных,
так и в корпоративных системах. Как правило, такие системы требуют
аутентификацию клиента и криптозащиту данных. Но у конечного пользователя не
всегда есть возможность организовать обмен данных по SSL-каналу. В этом случае
защиту веб-служб можно построить в соответствии со спецификацией WS-Security, с
помощью Open Source-библиотеки – xmlsec.
Старые песни о главном
Использование веб-службы во многих внутрикорпоративных информационных
системах и финансовых сервисах требуют как персонализацию доступа, так и
криптозащиту передаваемой информации.
Увы, при разработке группы спецификаций веб-служб
консорциум W3С ориентировался прежде всего на их публичное использование, и по
этой причине вопросы безопасности веб-служб изначально не рассматривались как
приоритетные.
Традиционный подход к защите передаваемых данных
в 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 используется
поверх существующей инфраструктуры систем безопасности.
Спецификация WS-Security, напротив, описывает
форматы закрытия данных и цифровой подписи SAOP-собщений. Развертывание веб-служб
на базе спецификации WS-Security намного проще, и этот стандарт получил более
широкое распространение.
Спецификация WS-Security была разработана на базе
так называемой технологии проталкивания открытых ключей. Обычно при организации
инфраструктуры открытых ключей (Public Key Infrastructure) используется один из
двух подходов: создание механизмов запроса подлинности сертификата у
Удостоверяющего центра, так называемое «вытягивание», или присоединение к
исходному сообщению Сертификата подлинности, то есть «проталкивание»
Сертификата.
Сегодня количество защищенных веб-служб постоянно
увеличивается. Существует множество реализаций соответствующих библиотек для
Java-платформы. Очередной всплеск активности в разработке защищенных веб-сервисов
наметился и после выхода NET-Studio 2005, включающей в себя библиотеку
пространства имен Microsoft.Web.Servises.Security. Пришла пора и РНР.