Открыть сервис

WS-Security

WS-Security (Web Services Security) — это расширение стандарта SOAP, предназначенное для обеспечения целостности, конфиденциальности и аутентификации сообщений в веб-сервисах. Оно определяет набор правил и механизмов для включения в заголовки SOAP-сообщений данных о безопасности, таких как цифровые подписи, шифрование и токены безопасности, без привязки к конкретному транспортному протоколу (например, HTTPS).

История и предпосылки создания

Изначально веб-сервисы, построенные на протоколах SOAP и WSDL, не имели встроенных механизмов безопасности. Для защиты данных использовались транспортные протоколы (SSL/TLS), которые обеспечивали безопасность только на уровне канала связи, но не могли гарантировать сквозную безопасность сообщения, проходящего через несколько посредников (прокси, шлюзы). В 2002 году компании IBM, Microsoft и VeriSign представили совместную спецификацию WS-Security, которая впоследствии была стандартизирована организацией OASIS (Organization for the Advancement of Structured Information Standards) в 2004 году. Стандарт получил название OASIS Web Services Security: SOAP Message Security 1.0 (WS-Security 2004). Позднее вышла версия 1.1, которая расширила возможности по работе с различными типами токенов и алгоритмами.

Разработка WS-Security была частью более широкой архитектуры WS-* (Web Services Architecture), включающей такие стандарты, как WS-Policy, WS-Trust, WS-SecureConversation и WS-Federation. Эти стандарты в совокупности образуют комплексную модель безопасности для корпоративных веб-сервисов.

Основные принципы и механизмы

WS-Security работает на уровне сообщений, встраивая элементы безопасности непосредственно в SOAP-заголовок. Это позволяет защищать отдельные части сообщения (например, тело или отдельные заголовки) независимо от транспортного протокола.

Цифровая подпись (XML Signature)

Для обеспечения целостности и аутентификации отправителя используется механизм XML Digital Signature (XML-DSig). WS-Security позволяет подписывать как всё сообщение целиком, так и отдельные его элементы. Подпись создаётся с использованием закрытого ключа отправителя и проверяется открытым ключом получателя. В сообщение включается элемент <wsse:Security>, содержащий подпись, ссылки на подписанные части и информацию о ключе.

Шифрование (XML Encryption)

Для обеспечения конфиденциальности применяется XML Encryption (XML-Enc). Шифроваться могут как тело сообщения, так и отдельные заголовки. Шифрование осуществляется с использованием симметричного ключа, который, в свою очередь, может быть зашифрован открытым ключом получателя. В сообщение добавляется элемент <xenc:EncryptedData>, содержащий зашифрованные данные и информацию об алгоритме.

Токены безопасности

WS-Security поддерживает различные типы токенов, которые используются для аутентификации и передачи учётных данных. Основные типы токенов:

Критика и ограничения

Несмотря на свою мощь и гибкость, WS-Security подвергается критике по нескольким причинам:

Применение

WS-Security преимущественно используется в корпоративных информационных системах, где требуется высокий уровень безопасности и сквозная защита сообщений. Типичные сценарии применения:

Реализации

WS-Security поддерживается многими платформами и фреймворками:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →