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-SecureConversation | 798 |
Безопасность транспортного уровня | 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 может стать необходимость прохождения сообщений на уровне приложения. Прокси сервер, так как он должен иметь возможность видеть запрос на маршрутизацию. В таком примере сервер будет видеть запрос, исходящий от прокси, а не от клиента; это можно обойти, если прокси-сервер будет иметь копию ключа и сертификата клиента или иметь сертификат подписи, которому доверяет сервер, с помощью которого он мог бы сгенерировать пару ключ / сертификат, совпадающую с таковыми у клиента. Однако, поскольку прокси-сервер не работает с сообщением, он не обеспечивает сквозную безопасность, а только обеспечивает безопасность точка-точка.
Смотрите также
- Продукты и услуги на основе WS-Security
- SAML
- Базовый профиль безопасности WS-I
- X.509
- XACML - стандарт детальной динамической авторизации.
- Брандмауэр XML
Рекомендации
- ^ Сабарный, Сергей. «Padding Oracle Attacks - взлом теоретических безопасных криптосистем в реальном мире» (PDF). Ruhr Universität Bochum.
- ^ Хунбинь Лю, Шридип Палликара, Джеффри Фокс: производительность безопасности веб-служб
- ^ Франсуа Ласселлес, Аарон Флинт: Показатели безопасности WS. Безопасный разговор по сравнению с профилем X509
- ^ Боб Аткинсон и др. др .: Безопасность веб-служб (WS-Security)
- ^ Боб Аткинсон и др. др .: Безопасность веб-служб (WS-Security)
- ^ Джованни Делла-Либера, Филип Халлам-Бейкер Мэрианн Хондо: Дополнение по безопасности веб-сервисов
- ^ OASIS Web Services Security TC
- ^ Безопасность веб-служб: безопасность сообщений SOAP - рабочий проект 13
- ^ schemas.xmlsoap.org
внешняя ссылка
- Безопасность веб-служб 1.1.1 (Содержит ссылки на загрузку документов со спецификациями.)
- Базовый профиль безопасности WS-I
- Документация по безопасности веб-служб
- WSS4J (Реализация Java WS-Security от Apache)
- Апачский бастион (Реализация Java WS-Security от Apache Axis2 )
- WSIT Технологии взаимодействия веб-служб (WSIT), которые обеспечивают взаимодействие между платформой Java и Windows Communication Foundation (WCF)
- Пример python ws-security