Стандарт проверки целостности XML-файла

Мне нужно включить в его структуру какую-то проверку целостности XML-файла. Рассматривая XmlDSig как стандарт, мне интересно, есть ли способ избавиться от функции асимметричного ключа (аутентификации)? Или, может быть, есть какой-то другой стандарт, единственная цель которого - проверка целостности XML-файла?

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

Если ключ не назначен свойству SignedXml.SignedKey, метод SignedXml.ComputeSignature вызывает исключение «Ключ подписи не загружен».


person frtnum    schedule 30.01.2013    source источник
comment
Если у вас есть схема, вы можете проверить ее.   -  person John Saunders    schedule 30.01.2013
comment
Схема проверяет только структуру XML-документа. Схема успешно проверяет следующие два XML-документа: (1) ‹myTag myAttr = 123 /› и (2) ‹myTag myAttr = 456 /›, но эти документы имеют разные хеш-значения SHA1. Проблема возникает, когда нужно написать, например, метод получения хеш-кода (MD5, SHA1 и т. Д.) И метод канонизации. Тогда вам понадобится какой-то стандарт, которым, очевидно, является XmlDSig. Но XmlDSig предоставляет 2 функции - целостность и аутентификацию. И мне нужен только один из них.   -  person frtnum    schedule 30.01.2013
comment
Итак, вам нужна защита от преднамеренного манипулирования данными?   -  person John Saunders    schedule 30.01.2013
comment
Не против преднамеренных манипуляций, а против случайных изменений. Например, когда процесс прекращается или происходит отключение питания во время сохранения файла XML. Поскольку операция записи файла не является обязательной последовательной, это очень малая вероятность, но все же возможно, что в случае такого рода событий структура XML-файла может быть действительной, но содержимое недействительно.   -  person frtnum    schedule 31.01.2013