Для защиты целостности данных в XML‑сегменте информационной модели применяют несколько ключевых методов:
- разработку схем (XML Schema);
- управление транзакциями;
- применение электронной цифровой подписи (ЭЦП);
- шифрование данных.
1. Схемы XML (XML Schema)
XML‑схемы задают правила, которым должны соответствовать данные: они описывают структурные и семантические ограничения для допустимых наборов данных.
Типы ограничений:
- Структурные — определяют, какие элементы могут содержаться внутри других (например, элемент A вправе включать лишь элементы B).
- Семантические — задают требования к уникальным атрибутам (ключам).
Для формализации схем чаще всего используют язык XML Schema (стандарт W3C). Проверка соответствия данных схеме называется валидацией (верификацией).
Важное условие: при изменении схемы необходимо синхронно обновлять её у отправителя и получателя либо внедрять систему версионирования.
2. Механизм транзакций
Транзакции гарантируют корректный переход данных из одного согласованного состояния в другое при внесении изменений. Их ключевые свойства:
- Атомарность — операция выполняется целиком или не выполняется вовсе («всё или ничего»).
- Согласованность — транзакция переводит базу данных из одного валидного состояния в другое (при этом промежуточные состояния могут быть несогласованными).
- Изолированность — изменения внутри транзакции не видны другим транзакциям до её завершения.
- Долговечность — результаты завершённой транзакции сохраняются даже при сбоях системы.
При работе с XML‑данными механизм транзакций должен учитывать специфику XML‑модели, в частности, семантику операций над XML.
3. Электронная цифровая подпись (ЭЦП)
ЭЦП подтверждает подлинность данных и гарантирует их неизменность. Принцип работы:
- Подписание:
- на основе содержимого документа вычисляется хеш‑сумма (дайджест);
- дайджест шифруется закрытым ключом отправителя — получается ЭЦП.
- Проверка:
- получатель расшифровывает ЭЦП открытым ключом отправителя;
- сравнивает полученный хеш с заново вычисленным хешем исходных данных — совпадение подтверждает действительность подписи.
Дополнительные возможности:
- ЭЦП может применяться не ко всему документу, а лишь к его части, что удобно для документов с независимо создаваемыми фрагментами.
- Для XML‑документов используется стандарт XML Digital Signature (XMLDSig), регламентирующий синтаксис и структуру ЭЦП.
4. Шифрование (XML‑криптография)
Метод позволяет защищать отдельные элементы XML‑документа или внешние данные, на которые он ссылается. Зашифрованные данные представляются в виде специального XML‑элемента, содержащего либо сами зашифрованные данные, либо ссылку на них.
Ключевые особенности:
- Шифрованию подлежат только те фрагменты документа, которые требуют защиты — остальное содержимое остаётся доступным.
- Обычно используется симметричный алгоритм шифрования со случайным ключом. Этот ключ затем зашифровывается открытым ключом получателя, что гарантирует доступ к данным только владельцу соответствующего закрытого ключа.
Комбинированное применение:
Допустимо сочетать ЭЦП и шифрование, например:
- зашифровать XML‑подпись вместе с данными;
- зашифровать данные, оставив подпись незашифрованной.