Главная » Файлы » Выполненные работы » Разное [ Добавить материал ]

Методы шифрования документов XML формата

[Скачать с сервера (28.2Kb) - бесплатно] 09.02.2011, 22:20
Содержание:
  • Введение
  • Реализация защиты XML-документов
  • Цивровые подписи XML
  • Шифрование XML
  • Пакеты реализации защиты XML
  • XML Security Suite (IBM)
  • XML Security (Apache)
  • SAML
  • Заключение
  • Список литературы


Введение

XML (англ. eXtensible Markup Language — расширяемый язык разметки) — язык разметки, фактически представляющий собой свод общих синтаксических правил. XML — текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.

XML — мощное средство, часто применяемое для обмена данными через Интернет. Но, к сожалению, само по себе оно не обеспечивает необходимую защиту данных, которые «перевозит». Иными словами, существуют серьезные проблемы безопасности при применении формата XML (как, впрочем, и при использовании других форматов).

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

  • аутентификации взаимодействующих сторон;
  • подтверждении подлинности и целостности информации;
  • криптографическом закрытии передаваемых данных.

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


Реализация защиты XML-документов

1.1. Цивровые подписи XML

Разработчики XML уже давно поняли важность механизма контроля над данными, передаваемыми и представляемыми в транзакциях XML. Основные требования, предъявляемые к транзитным данным, — это полнота и точность (целостность). Проще всего этого добиться с помощью подписи XML.

Спецификация XML Signature (подпись XML) определяет синтаксис, необходимый для подписывания всего экземпляра XML или его части. Язык XML, несмотря на все свои богатые возможности и чрезвычайную гибкость, не вполне удобен для применения цифровых подписей, где из-за пробела, стоящего не на месте, может получиться совершенно новое значение подписи, не поддающееся проверке. Чтобы избавиться от этих проблем, была предложена концепция канонизации (XML-C14N), описанная в предварительной спецификации W3C под названием Canonical XML (канонический XML).

Она использует заранее определенный набор правил обработки, по которым можно структурировать экземпляр для приведения его к простейшей форме. Такая стандартизация позволила гарантировать, что экземпляры всякий раз будут структурироваться одинаково, и это предотвратило возможную путаницу с цифровыми подписями вследствие стилистических различий, например иначе поставленными пробелами. Заметьте, что даже при использовании C14N необходимо указать используемый набор правил или метод для обеспечения дополнительных гарантий.

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

  • Метод канонизации определяет конкретный набор правил C14N для упрощения и структурирования экземпляра XML до составления подписи. Эти сведения обеспечивают надлежащий вид подписываемых данных, чтобы алгоритм проверки дал положительный результат, если содержательные данные не были изменены.
  • Метод подписи определяет алгоритм подписи дайджеста сообщения. Дайджест сообщения — это уникальная символьная строка фиксированного размера, она является результатом обработки данных с помощью односторонней хэш-функции, задаваемой методом дайджеста. Цифровая подпись удостоверяет личность или процесс, подписывающий данные, тем самым обеспечивая аутентификацию и защиту от дезавуирования авторства.
  • Метод дайджеста — алгоритм составления дайджеста сообщения, подписываемого с помощью заданного метода подписи. Задание определенного метода дайджеста гарантирует обработку данных одним и тем же способом.
  • Значение дайджеста — собственно дайджест сообщения, т. е. строка фиксированной длины, выдаваемая в результате обработки данных с помощью алгоритма дайджеста. Такая строка является уникальной и необратимой: ее практически невозможно получить из другого содержимого, как и невозможно воссоздать по ней исходные данные. Это как бы «отпечаток пальцев» для подписываемых данных; положительный результат сравнения значений дайджеста гарантирует целостность содержимого.
  • Справочная информация — некоторые сведения о подписываемых данных. В частности, здесь может быть указан тип подписанных данных, если это не данные XML.
  • Свойства подписи дополняют подпись определенным контекстом, в который вносятся отметка времени или порядковый номер. Такие элементы могут сами быть подписаны и включены в справочную информацию относительно самой подписи.
  • Манифест группирует несколько ссылок и создает общее значение дайджеста для подписей одного или нескольких пользователей. Это, например, позволяет супервизору подтвердить несколько индивидуально подписанных транзакций в совокупности, не выделяя каждую транзакцию в отдельности.
Процесс «базовой генерации» подписи экземпляра XML начинается с канонизации, т. е. упрощения структуры данных. Дальнейшие действия аналогичны стандартному процессу добавления цифровой подписи: для данных создается значение дайджеста с помощью заданного метода. Затем это значение подписывается закрытым ключом субъекта.

Для проверки подписи в спецификации XML Signature предусмотрен процесс «базовой проверки подлинности», состоящий из двух шагов. Вначале проверяется сама подпись, чтобы обеспечить аутентификацию ее владельца и предотвратить отказ от авторства. Затем происходит проверка значения (или значений) дайджеста, чтобы убедиться, что данные не изменились, и подтверждается целостность содержимого. [1]



1.2. Шифрование XML

Ключевое значение для безопасности данных XML имеет корректное шифрование, особенно если речь идет об особо секретных данных, передаваемых через такие незащищенные сети, как Internet. Итак, переходим к спецификации XML Encryption.

Шифрование нередко представляют как самодостаточную операцию — просто данные шифруются на одном конце и затем дешифруются на другом. Однако на самом деле для ее успешного выполнения требуется гораздо больше информации. В экземпляре XML в связи с этим выделяются четыре основных типа данных.

  • Шифрованное содержимое — собственно зашифрованные данные или ссылка на их местоположение. Разнообразие подлежащих шифрованию типов данных и методов их логической организации практически ничем не ограничено.
  • Нешифруемое содержимое — прочая информация, относящаяся к контексту взаимодействия, но по какой-то причине не подлежащая шифрованию: например, по соображениям быстродействия или потому, что считается не настолько секретной, чтобы ее стоило шифровать.
  • Информация о ключах — сведения (или указатели на сведения) о ключах, с помощью которых выполняется шифрование и, соответственно, дешифрование. Они могут храниться в другом месте и заменяться в экземпляре XML на ссылку URL.
  • Информация о получателях — сведения об одном или нескольких предполагаемых получателях зашифрованных данных. Это необязательные параметры, так как возможны ситуации, когда соответствующая информация о получателях уже известна или предоставляется отдельно, как, например, при общении партнеров по бизнесу, уже связанных договорными отношениями.
Шифрование данных XML производится традиционными методами криптографии с открытыми ключами. Вначале шифруются сами данные, как правило, с помощью случайно формируемого секретного ключа, который затем тоже кодируется — с помощью открытого ключа предполагаемого получателя. Эта информация упаковывается так, чтобы извлечь секретный ключ и расшифровать данные мог только указанный получатель. Для дешифрования секретного ключа применяется скрытый ключ, а затем происходит дешифрование данных с помощью найденного секретного ключа. [1]



2.    Пакеты реализации защиты XML


Уже сегодня, несмотря на то что стандарты W3C появились совсем недавно, некоторые компании объявили о выпуске своих пакетов (библиотек классов), реализующих и ЭЦП, и шифрование.

На данный момент существует множество реализаций с различными вариантами лицензирования — как реализации спецификации электронной цифровой подписи XML-документов, так и шифрования XML-документов. Вот некоторые из них:
  • XML Security Suite (IBM)
  • XML Security (Apache)
  • XML Security Library (Aleksey Sanin)
  • KeyTools XML (Baltimore)
  • XML Security (Phaos)
  • XML Signature SDK (Verisign)
Наиболее известными компаниями среди вышеупомянутых, безусловно, являются IBM и Apache. Рассмотрим более подробно пакеты, представленные этими компаниями. [2] [3]


2.1.  XML Security Suite (IBM)

Этот пакет основан на языке программирования Java. XML Security Suite является средством, обеспечивающим такие элементы безопасности, как цифровая подпись, шифрование и управление доступом для документов XML. С его помощью можно добиться больших успехов, нежели используя возможности протоколов безопасности транспортного уровня (например, Secure Sockets Layer, SSL).

Этот пакет реализует три технологии:
  1. ЭЦП основана на спецификации «XML — Signature Syntax and Processing» от W3C и IETF (и на спецификации «Canonical XML»);
  2. шифрование реализовано на основе спецификации «XML — Encryption Syntax and Processing» от W3C;
  3. управление доступом для документов XML (XML Access Control Language).

XML Security Suite — это одно из лучших современных средств для защиты XML-документов. Кроме самого архива (JAR) с библиотекой классов, оно включает подробную документацию и примеры, позволяющие быстро сориентироваться в иерархии классов. [2]


2.2.  XML Security (Apache)

Этот пакет основан на языке программирования С++.

Проект XML Security от Apache — это также реализация стандартов в области защиты XML. В настоящий момент он включает реализации для спецификаций «Canonical XML» и «XML — Signature Syntax and Processing». Это означает, что вы можете использовать данное программное обеспечение для создания и верификации цифровых подписей XML и подписывать и XML, и/или другие данные. [2]


3.  SAML

Направление, отличное от защиты XML-данных, но тесно с ним связанное, — это улучшение безопасности и защищенности систем (протоколов) на базе XML. В этом случае при помощи XML защищаются другие документы/системы/приложения. В настоящее время комитет безопасности Организации по развитию стандартов структурирования информации (Organization for the Advancement of Structured Information Standards, OASIS) занимается разработкой языка разметки заявлений системы безопасности (Security Assertion Markup Language, SAML). [2]

SAML — один из множества языков разметки, которые сейчас создаются на основе синтаксиса и семантики XML в рамках технического комитета по службам на базе безопасности XML, входящего в организацию OASIS. Данный язык использует XML для расширения функций безопасности, относящихся к аутентификации и авторизации. Главные задачи SAML — построить базовые конструкции, необходимые для обмена мандатами, определить протоколы для запросов, ответов и основных правил, а также описать связи SAML с другими протоколами, такими, как HTTP, SOAP (Simple Object Access Protocol) и ebXML. Язык SAML позволяет совместно использовать одну и ту же информацию о мандатах на различных узлах Web или приложениях, действуя подобно службе CredEx: эти данные доставляются в режиме реального времени — в любое время и в любое место. [1]

SAML представляет собой попытку объединить две разработки — спецификацию аутентификации и авторизации в XML (Authentication and Authorization in XML, AuthXML) компании Securant и язык разметки для служб безопасности (Security Services Markup Language, S2ML) компании Netegrity.

В настоящее время SAML рассматривается как первый стандарт для защиты транзакций электронной коммерции. [2]



Заключение

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

Скорее всего, в ближайшем будущем XML станет основным языком обмена информации для информационных систем, заменив собой, тем самым, HTML. На основе XML уже сегодня созданы такие известные специализированные языки разметки, как SMIL, CDF, MathML, XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C, постоянно пополняется.


Список литературы
  1. http://www.osp.ru/lan/2001/07-08/135045/_p2.html
  2. http://www.compress.ru/article.aspx?id=10152&iid=420#22
  3. http://www.w3.org/Encryption/2001/
Похожие материалы:

Добавил: mauzer (09.02.2011) | Категория: Разное
Просмотров: 5069 | Загрузок: 566 | Рейтинг: 0.0/0 |
Теги: шифрование, xml
Комментарии (0)

Имя *:
Email *:
Код *: