Шифрування XML

Специфікація шифрування XML задовольняє вимогам конфіденційності XML-повідомлень. Ця специфікація дозволяє реалізувати наступну функціональність:

· шифрування цілого XML-файла;

· шифрування будь-якого окремого елементу XML-файла;

· шифрування тільки змісту XML-файла;

· шифрування даних, відмінних від XML (наприклад, малюнка JPG);

· шифрування вже зашифрованого елементу (“супер шифрування”).

Шифрування цілого XML-файла

Лістинг 6 - це приклад шифрування цілого XML-файла. При цьому початковий XML-документ не показаний, оскільки він не потрібний, оскільки шифрування XML-файла своїм результатом має таку ж XML-структуру - за винятком зашифрованої величини, ув’язненої в елементі CipherValue.

Лістинг 6

<?xml version='1.0'?>
<EncryptedData
xmlns="http://www.w3.org/2001/04/xmlenc#"
MimeType="text/xml">
<EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>MyKeyIdentifier</ds:KeyName>
</ds:KeyInfo>
<CipherData>
<CipherValue>B457V645B45........</CipherValue>
</CipherData>
</EncryptedData>

Кореневий елемент EncryptedData несе зашифровані дані разом з такою необхідною інформацією, як алгоритм, використовуваний для шифрування. Цей елемент містить оголошення простору імен шифрування XML (http://www.w3.org/2001/04/xmlenc#) і атрибут MimeType, значення якого рівне text/xml. По цьому атрибуту одержувач цього зашифрованого XML-файла може зрозуміти, що XML-файл був зашифрований, щоб створити структуру EncryptedData.

Перший нащадок кореневого елементу - елемент EncryptionMethod. Цей елемент містить атрибут Algorithm, який визначає алгоритм, використаний при шифруванні. Його значення рівне http://www.w3.org/2001/04/xmlenc#3des-cbc, що визначає алгоритм потрійної DES (Data Encryption Standard, Стандарт шифрування даних).

Елемент ds:KeyInfo той же самий, що і той, який використовувався при застосуванні специфікації “Цифровий підпис XML”. Необхідно відзначити, що цей елемент був запозичений з простору імен цифрового підпису XML.

Елемент EncryptedData містить ще один дочірній елемент - CipherData, у якого у свою чергу є дочірній елемент CipherValue. Цей елемент CipherValue несе зашифрований зміст (зашифровану версію XML-документа). Таким чином, результатом шифрування XML-файла є зміст елементу CipherValue.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: