WS-Security - Википедия - WS-Security

Безопасность веб-служб (WS-Безопасность, WSS) является расширением МЫЛО применить безопасность к Веб-сервисы. Он является членом Спецификации веб-сервисов и был опубликован ОАЗИС.

Протокол определяет, как можно обеспечить целостность и конфиденциальность сообщений, и позволяет передавать различные форматы токенов безопасности, такие как Язык разметки утверждения безопасности (SAML), Kerberos, и X.509. Основное внимание уделяется использованию Подпись XML и XML-шифрование для обеспечения сквозной безопасности.

Функции

WS-Security описывает три основных механизма:

  • Как подписывать сообщения SOAP для обеспечения целостности. Подписанные сообщения также содержат неотречение.
  • Как зашифровать сообщения SOAP для обеспечения конфиденциальности.
  • Как прикрепить токены безопасности, чтобы установить личность отправителя.

Спецификация допускает различные форматы подписи, алгоритмы шифрования и несколько доверенных доменов и открыта для различных моделей токенов безопасности, таких как:

  • Сертификаты X.509,
  • Билеты Kerberos,
  • Учетные данные пользователя / пароля,
  • SAML Assertions и
  • пользовательские токены.

Форматы и семантика токенов определены в связанных документах профиля.

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

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

Управление ключами, доверительная начальная загрузка, объединение и согласование технических деталей (шифры, форматы, алгоритмы) выходят за рамки WS-Security.

Сценарии использования

Сквозная безопасность

Если требуется посредник SOAP, а этот посредник не является более или менее доверенным, сообщения необходимо подписать и, при необходимости, зашифровать. Это может быть случай прокси-сервера уровня приложения на периметре сети, который завершает соединения TCP (протокол управления передачей).

Безотказность

Один метод для неотречение заключается в том, чтобы записывать транзакции в журнал аудита, который подлежит определенным мерам безопасности. Цифровые подписи, которые поддерживает WS-Security, обеспечивают более прямое и поддающееся проверке доказательство отказа от авторства.

Альтернативные транспортные крепления

Хотя почти все службы SOAP реализуют привязки HTTP, теоретически другие привязки, такие как JMS или можно использовать SMTP; в этом случае потребуется сквозная безопасность.

Обратный прокси / общий токен безопасности

Даже если веб-служба полагается на безопасность транспортного уровня, службе может потребоваться знать о конечном пользователе, если служба ретранслируется через обратный прокси-сервер (HTTP-). Заголовок WSS может использоваться для передачи токена конечного пользователя, за который отвечает обратный прокси.

вопросы

  • При частом обмене сообщениями между поставщиком услуг и потребителем накладные расходы на XML SIG и XML ENC значительны. Если требуется сквозная безопасность, такой протокол, как WS-SecureConversation может снизить накладные расходы. Если этого достаточно, используйте только шифрование или же подписание, поскольку их сочетание значительно медленнее, чем простая сумма отдельных операций. Видеть Спектакль ниже.
  • Слияние нескольких схем XML, таких как SOAP, SAML, XML ENC, XML SIG, может вызвать зависимости от различных версий библиотечных функций, таких как канонизация и синтаксический анализ, которыми сложно управлять на сервере приложений.
  • Если только Шифрование / дешифрование в режиме CBC применяется или если применяется дешифрование в режиме CBC без проверки безопасной контрольной суммы (подпись или же MAC ) перед расшифровкой, то реализация, вероятно, будет уязвима для дополнение атак оракула.[1]

Спектакль

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

Оценка в 2005 г.[2] измерили 25 типов SOAP-сообщений разного размера и сложности, обработанных WSS4J с помощью WS-Security и WS-SecureConversation на процессоре Pentium 4 / 2,8 ГГц.

  • Шифрование было быстрее подписи.
  • Совместное шифрование и подписание выполнялись в 2–7 раз медленнее, чем подписание в одиночку, и давали значительно большие документы.
  • В зависимости от типа сообщения WS-SecureConversation либо не имеет никакого значения, либо в лучшем случае сокращает время обработки вдвое.
  • Чтобы подписать или зашифровать массив размером 100 килобайт, потребовалось менее 10 миллисекунд, но для выполнения операций безопасности для SOAP потребовалось около 100 ~ 200.

Еще один ориентир в 2006 году[3] привел к этому сравнению:

Механизм безопасностиСообщений в секунду
Подпись и шифрование XML WS-Security (X.509)352
Подпись и шифрование XML WS-SecureConversation798
Безопасность транспортного уровня2918

История

Первоначально веб-службы полагались на базовую транспортную безопасность. Фактически, большинство реализаций по-прежнему[нужна цитата ]. Поскольку SOAP допускает несколько транспортных привязок, таких как HTTP и SMTP, необходим механизм безопасности на уровне SOAP. Другим фактором было отсутствие сквозной безопасности из-за зависимости от транспортной безопасности.

Протокол был первоначально разработан IBM, Microsoft, и VeriSign. Их исходная спецификация[4][5] был опубликован 5 апреля 2002 г., за ним последовало дополнение[6] 18 августа 2002 г.

В 2002 году в Технический комитет OASIS WSS было подано два предложения:[7] Безопасность веб-сервисов (WS-Security) и приложение по безопасности веб-сервисов. В итоге WS-Security был опубликован:

  • WS-Security 1.0 был выпущен 19 апреля 2004 года.
  • Версия 1.1 была выпущена 17 февраля 2006 года.

Стандарт версии 1.0, опубликованный OASIS, содержал ряд существенных отличий от стандарта, предложенного консорциумом IBM, Microsoft и VeriSign. Многие системы были разработаны с использованием предложенного стандарта, и различия сделали их несовместимыми с системами, разработанными в соответствии со стандартом OASIS.

Некоторые называют спецификацию до OASIS «Проектом 13 WS-Security»,[8] или в качестве основной спецификации безопасности веб-служб. Однако эти имена малоизвестны, и действительно сегодня трудно четко определить, использует ли приложение или сервер спецификацию до или после OASIS. В большинстве сообщений на форуме используется ключевое слово «WSSE» для обозначения версии до OASIS, поскольку в ней требовалось использование «wsse». Пространство имен XML префикс к[9] URL (и похожие URL разных версий).

Протокол официально называется WSS и разработан комитетом Oasis-Open.

Связанные спецификации

Следующие черновые спецификации связаны с WS-Security: WS-Federation, WS-Конфиденциальность, WS-тест.

Следующие утвержденные спецификации связаны с WS-Security: WS-Политика, WS-SecureConversation, WS-Trust, ID-WSF.

Следующие архитектуры используют WS-Security: TAS3.

Альтернатива

В двухточечных ситуациях конфиденциальность и целостность данных также может применяться к веб-службам с помощью Безопасность транспортного уровня (TLS), например, отправив сообщения через HTTPS. WS-Security, однако, решает более широкую проблему поддержания целостности и конфиденциальности сообщений до тех пор, пока сообщение не будет отправлено с исходного узла, обеспечивая так называемое сквозная безопасность.

Применение TLS может значительно снизить накладные расходы за счет устранения необходимости кодировать ключи и подписи сообщений в XML перед отправкой. Проблемой при использовании TLS может стать необходимость прохождения сообщений на уровне приложения. Прокси сервер, так как он должен иметь возможность видеть запрос на маршрутизацию. В таком примере сервер будет видеть запрос, исходящий от прокси, а не от клиента; это можно обойти, если прокси-сервер будет иметь копию ключа и сертификата клиента или иметь сертификат подписи, которому доверяет сервер, с помощью которого он мог бы сгенерировать пару ключ / сертификат, совпадающую с таковыми у клиента. Однако, поскольку прокси-сервер не работает с сообщением, он не обеспечивает сквозную безопасность, а только обеспечивает безопасность точка-точка.

Смотрите также

Рекомендации

  1. ^ Сабарный, Сергей. «Padding Oracle Attacks - взлом теоретических безопасных криптосистем в реальном мире» (PDF). Ruhr Universität Bochum.
  2. ^ Хунбинь Лю, Шридип Палликара, Джеффри Фокс: производительность безопасности веб-служб
  3. ^ Франсуа Ласселлес, Аарон Флинт: Показатели безопасности WS. Безопасный разговор по сравнению с профилем X509
  4. ^ Боб Аткинсон и др. др .: Безопасность веб-служб (WS-Security)
  5. ^ Боб Аткинсон и др. др .: Безопасность веб-служб (WS-Security)
  6. ^ Джованни Делла-Либера, Филип Халлам-Бейкер Мэрианн Хондо: Дополнение по безопасности веб-сервисов
  7. ^ OASIS Web Services Security TC
  8. ^ Безопасность веб-служб: безопасность сообщений SOAP - рабочий проект 13
  9. ^ schemas.xmlsoap.org

внешняя ссылка