Спонсор: Microsoft
Опубликован: 25.06.2010 | Уровень: специалист | Доступ: платный
Лекция 8:

XML- криптография

< Лекция 7 || Лекция 8 || Лекция 9 >
Аннотация: В данной лекции рассматривается круг вопросов, связанных с концепцией XML-криптографии и ее реализацией на платформе .NET Framework
Презентацию к лекции Вы можете скачать здесь.

Цель лекции

  1. Рассмотреть круг задач, на решение которых ориентирована XML - криптография
  2. Изучить возможности XML -криптографии:
    • зашифрование и расшифрование цифрового контента XML
    • обеспечение целостности и невозможности отказа посредством цифровых XML -подписей
  3. Сравнить различные типы XML -подписей

XML-подпись

Реализация целостности и невозможность отказа обеспечиваются посредством цифровых XML -подписей ( XML-Signature ). XML -подпись служит для проверки целостности принятых сообщений и полной либо частичной аутентификации XML -документов. Стандарт цифровой подписи XML-Signature Syntax and Processing (сокращенно XMLDSIG от eXtensible Markup Language Digital SIGnature specification ) разработан консорциумом W3C в 2002 году [11.1]. Он определяет синтаксис представления цифровых подписей и правила их обработки, а также сервисы, обеспечивающие целостность данных (в том числе документов XML в передаваемом сообщении или вне его), установление подлинности сообщения и подписавшего его лица. Для реализации функциональности, связанной с XML -подписью, .NET Framework предоставляет набор готовых классов, расположенных в пространстве имен System.Security.Cryptography.Xml.

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

Данные, заверенные подписью, могут содержаться внутри самого документа XML или размещаться в других документах. На рис. 11.1 схематически показаны три различных способа реализации XML -подписи [11.2]:

  1. "Изолированная" подпись ( Detached signature ) вычисляется по объекту данных, который является внешним по отношению к элементу XML Signature. Элемент Signature и "подписанный" объект могут физически располагаться либо в разных XML -документах, либо внутри различных тэгов одного документа;
  2. "Охватывающая" подпись ( Enveloping signature, Wrapped signature ) вычисляется по элементу Object, расположенному внутри элемента Signature ;
  3. "Встроенная" подпись ( Enveloped signature, Embedded signature ) вычисляется по XML -контенту, содержащему элемент Signature.

Три типа XML-подписи

Рис. 11.1. Три типа XML-подписи

Для обеспечения целостности данные преобразуются в короткий дайджест. Если полученные сведения отличаются от оригинала, их дайджест будет отличен от исходного. В параметрах подписи указывается алгоритм, использованный для создания дайджеста. С его помощью получатель может проверить полученную подпись. Перед подписанием XML -документ приводится к канонической форме, определенной правилами разработанной W3C рекомендации "Canonical XML" [11.6]. Это позволяет избежать неоднозначностей генерации дайджеста по синтаксически одинаковым документам, которые могут отличаться порядком тегов, атрибутов или кодировкой.

XML-криптография

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

Существуют Интернет-протоколы шифрования, такие как Secure Sockets Layer ( SSL ), Transport Layer Security ( TLS ) и IPSec, позволяющие шифровать данные, которыми обмениваются два приложения, и обеспечивать их целостность. Тем не менее, между шифрованием XML и этими протоколами существуют фундаментальные различия [11.3]. Во-первых, XML -криптография позволяет шифровать не все данные, а только те элементы XML -документа, которые нуждаются в защите, оставляя остальное содержимое открытым. Защита канала с помощью SSL обеспечивает шифрование всех передаваемых сообщений. Такой метод не всегда применим, поскольку отдельные части XML -сообщений нередко нужно оставлять открытыми. Например, части (или все тело) сообщения SOAP нуждаются в защите, но заголовки должны оставаться открытыми, а информация, необходимая для маршрутизации и других промежуточных действий, - быть доступной. Во-вторых, шифрование XML может быть использовано не только для защищенного обмена данными между двумя приложениями, но и для хранения данных в зашифрованном виде на диске или другом устройстве, обеспечивая доступ к документу сразу для нескольких приложений. Протоколы SSL, TLS и IPSec могут применяться только для шифрования соединения между двумя приложениями.

Таким образом, XML -криптография не заменяет существующие протоколы безопасности, но решает проблему другого рода, которая включает два основных аспекта [11.3]:

  • Шифрование определенных фрагментов структурированных данных
  • Шифрование структурированного хранилища данных, к которому одновременно имеет доступ несколько приложений

В консорциуме W3C создана рабочая группа W3C XML Encryption Working Group [11.4], которая специально занимается вопросами шифрования XML -данных. В марте 2002 года группа выпустила рекомендации Candidate Recommendation Specification, и вместе с W3C в декабре того же года утвердила их. В рекомендациях определены требования к XML -криптографии ( XML Encryption Requirements ), синтаксис и правила обработки ( XML Encryption Syntax and Processing ). Спецификация "XML - Encryption Syntax and Processing " ("Синтаксис и обработка шифрования XML") [11.5] на момент написания данного курса лекций имеет статус рекомендации, т.е. потенциально подвержена изменениям. В отличие от спецификации XML -подписи, которая уже признана стандартом, .NET Framework не обеспечивает высокоуровневой поддержки спецификации XML -криптографии. Тем не менее, доступные классы пространств имен System.Xml и System.Security.Cryptography позволяют реализовать необходимую функциональность своими силами.

Спецификация XML Encryption, определяет методы, с помощью которых XML будет представлять зашифрованные XML -данные и другую информацию, но не предписывает применение конкретного метода шифрования. Для представления информации, относящейся к использованным технологиям шифрования (например, данных об алгоритме и ключе шифрования ) используется стандартный синтаксис XML -тэгов. Так, для указания алгоритма шифрования предусмотрен специальный элемент EncryptionMethod. Данные шифруются, как правило, с помощью случайно формируемого ключа с использованием симметричного криптоалгоритма; затем этот ключ зашифровывается на открытом ключе предполагаемого получателя. Таким образом, извлечь ключ, позволяющий расшифровать данные, может только указанный получатель-владелец секретного ключа.

Существует возможность совместного использования механизмов XML -подписи и XML - шифрования:

  • Шифрование XML -подписи и подписанных данных
  • Шифрование подписанных данных, не захватывающее XML -подпись
  • XML -подпись зашифрованных данных

Преимущества и недостатки этих подходов показаны в табл. 11.1.

Таблица 11.1. XML-подпись + XML-шифрование
Шифрование XML-подписи и подписанных данных Шифрование подписанных данных, не захватывающее XML-подпись XML-подпись зашифрованных данных
Преимущества Скрыто максимально возможное количество данных, в т.ч. исключается возможность идентификации отправителя по подписи. Подпись применима к исходному тексту и при необходимости может быть сохранена и использована в дальнейшем для обеспечения неотказуемости. Подпись применима к исходному тексту и при необходимости может быть сохранена и использована в дальнейшем для обеспечения неотказуемости. Если данные повреждены, это можно установить сразу, не затрачивая время на расшифровку.
Недостатки Если данные повреждены, до расшифровки это установить невозможно. Подверженность replay -атаке (злоумышленной пересылке получателем сообщения). Reference DigestMethod и DigestValue открыты для злоумышленного анализа. В случае использования криптоалгоритмов с открытым ключом для ЭЦП существует возможность идентификации отправителя по подписи. Если данные повреждены, до расшифровки это установить невозможно. Подверженность replay -атаке (злоумышленной пересылке получателем сообщения). Reference DigestMethod и DigestValue открыты для злоумышленного анализа. В случае использования криптоалгоритмов с открытым ключом для ЭЦП существует возможность идентификации отправителя по подписи. Подверженность replay -атаке (злоумышленной пересылке получателем сообщения). Для демонстрации подписи третьей стороне потребуется предоставить использованный для шифрования ключ, что может привести к компрометации других данных, зашифрованных на этом ключе.

Краткие итоги

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

< Лекция 7 || Лекция 8 || Лекция 9 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Р Алоев
Р Алоев
Россия
Татьяна Тренина
Татьяна Тренина
Россия, Челябинск