Лекция 8. XML- криптография

  • doc
  • 26.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 0207. Лекция 8. XML- криптография.doc

Лекция 8. XML- криптография

Цель лекции

1.              Рассмотреть круг задач, на решение которых ориентирована XML - криптография

2.              Изучить возможности XML -криптографии:

o          зашифрование и расшифрование цифрового контента XML

o          обеспечение целостности и невозможности отказа посредством цифровых 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 signatureWrapped signature ) вычисляется по элементу Object, расположенному внутри элемента Signature ;

3.              "Встроенная" подпись ( Enveloped signatureEmbedded signature ) вычисляется по XML -контенту, содержащему элемент Signature.

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


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

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

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

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

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


Скачано с www.znanio.ru

Посмотрите также