Предмет:
Тип роботи:
Дипломна робота
К-сть сторінок:
66
Мова:
Українська
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>MyKeyIdentifier</ds:KeyName>
</ds:KeyInfo>
<xenc:CipherData>
<xenc:CipherValue>B457V645B45........</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</s:GetSpecialDiscountedBookingForPartners>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
3.6 Обробка шифрування XML
Розглянемо, як брандмауер XML працює з поняттями шифрування. Брандмауер одержує Лістінг 7 або 8 (SOAP-повідомлення з зашифрованими елементами або змістом) і, перш ніж переслати SOAP-серверові розшифрований запит SOAP-повідомлення, перетворить їхній зміст у дешифровану форму.
Одержувач зашифрованого XML-файлу (наприклад, у нашому випадку брандмауер XML організації) розшифровує цей XML-файл, виконуючи наступну послідовність дій:
1.Витягає зашифрований зміст елемента CypherValue;
2.Зчитує значення атрибута алгоритму елемента EncryptionMethod;
3.Зчитує значення атрибута Type елемента EncryptedData;
4.Одержує інформацію про ключ з елемента ds:KeyInfo;
5.Використовує отриману інформацію для створення простого текстового (розшифрованого) файлу.
3.7 Введення в безпеку Web-сервісів
Виникає питання, яким образом брандмауер XML використовує підписи і шифрування XML для захисту SOAP-серверів? Адже незважаючи на те, що можливості цих двох технологій були продемонстровані на численних прикладах, необхідно з'ясувати, як застосовувати ці дві специфікації при використанні брандмауера XML для захисту SOAP-серверів, особливо якщо врахувати жодна з них не є специфічною для SOAP. Спробуємо зрозуміти, чому вся інформація, що стосується підписи, була поміщена в заголовок SOAP, а не в тіло SOAP [3].
Специфікація консорціуму OASIS "Безпека Web-сервісів" докладно визначає, як застосовувати технології підпису і шифрування XML при обміні SOAP-повідомленнями. Цей стандарт одержує елементи низького рівня з розглянутих вище специфікацій ("Цифровий підпис XML" і "Шифрування XML") і задає високорівневий синтаксис для обгортання в SOAP-повідомленнях інформації про безпеку.
Специфікація "Безпека Web-сервісів" описує механізм безпечного обміну SOAP-повідомленнями. Вона забезпечує наступну функціональність:
1.Цілісність повідомлення.
2.Користувальницьку автентифікацію.
3.Конфіденційність.
Розглянемо Лістінг 9 - це SOAP-повідомлення, що несе інформацію про безпеку відповідно до синтаксису специфікації "Безпека Web-сервісів". Лістінг 9 - цей той же самий SOAP-запит GetSpecialDiscountedBookingForPartners, що неодноразово приводився в цій статті. Однак цього разу заголовок запиту передає інформацію про цифровий підпис відповідно до розглянутої специфікації.
Лістінг 9
<?xml version="1.0" encoding="utf-8"?>
<SOAP:Envelope
xmlns:SOAP="http://www.w3.org/2001/12/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/xx/secext"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<SOAP:Header>
<wsse:Security>
<wsse:BinarySecurityToken
ValueType="wsse:X509v3"
EncodingType="wsse:Base64Binary"
wsu:Id="MyTourOperatorCertificate">
LKSAJDFLKASJDlkjlkj243kj;lkjLKJ...
</wsse:BinarySecurityToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml -exc-c14n# "/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#myDiscountRequestBody">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>BSDFHJYK21f...</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
GKLKAJFLASKJ52kjKJKLJ345KKKJ...
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#MyTourOperatorCertificate"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</SOAP:Header>
<SOAP-ENV:Body>
<s:GetSpecialDiscountedBookingForPartners