XML Signatures. Autor



Podobné dokumenty
Další XML technologie

XML a bezpečnost. Dagmar BRECHLEROVÁ. KIT PEF ČZU a EUROMISE, Praha Dagmar.Brechlerova@seznam.cz

Zabezpečená middleware komunikace

ECR brána - rozhraní ECR obálka 2.0

Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace

Obsah. Úroveň I - Přehled. Úroveň II - Principy. Kapitola 1. Kapitola 2

Logický datový model VF XML DTM DMVS

SSL Secure Sockets Layer

EXTRAKT z mezinárodní normy

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

ECR BRÁNA - ROZHRANÍ ECR OBÁLKA 2.0. Verze dokumentu: 1.1 Datum vzniku: Počet stran: 16

XML terminologie a charakteristiky. Roman Malo

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy

ERP-001, verze 2_10, platnost od

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Digitální podepisování pomocí asymetrické kryptografie

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Zabezpečení webových služeb

APLIKACE XML PRO INTERNET

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

Správa VF XML DTM DMVS Datový model a ontologický popis

Inovace výuky prostřednictvím šablon pro SŠ

SPRÁVA ZÁKLADNÍCH REGISTRŮ PODMÍNKY PRO PŘIPOJENÍ AGENDOVÝCH INFORMAČNÍCH SYSTÉMŮ DO ISZR. verze 2.00

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Protokol pro zabezpečení elektronických transakcí - SET

ČESKÁ TECHNICKÁ NORMA

EXTRAKT z české technické normy

Požadavky pro výběrová řízení TerraBus ESB/G2x

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Vývoj Internetových Aplikací

Systém elektronického rádce v životních situacích portálu

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Informatika / bezpečnost

Úvod do informatiky 5)

Úvod do tvorby internetových aplikací

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Úvod - Podniková informační bezpečnost PS1-2

PDS. Obsah. protokol LDAP. LDAP protokol obecně. Modely LDAP a jejich funkce LDIF. Software pro LDAP. Autor : Petr Štaif razzor_at

Lokační referenční metody a jejich interpretace ve standardech

Elektronický podpis význam pro komunikaci. elektronickými prostředky

Návrh technických pravidel pro tvorbu SIP

Software602 Form Designer

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.

Jazyky pro popis dat

PA159 - Bezpečnostní aspekty

Tvorba webu. Úvod a základní principy. Martin Urza

Aplikace pro srovna ní cen povinne ho ruc ení

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

ZPRÁVA PRO UŽIVATELE

ISDOC Národní standard pro elektronickou fakturaci

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Bezpečný JPEG Úvod 2. JPEG Vlastnosti JPEG /

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Role datových schránek v elektronické komunikaci zdravotnických zařízení

Specifikace integračního rozhraní

EXTRAKT z mezinárodní normy

Microsoft Office 2003 Souhrnný technický dokument white paper

PRG036 Technologie XML

pomocí S/MIME ezprava.net s.r.o. 21. ledna 2015

KVALIFIKOVANÉ CERTIFIKÁTY

Co nového ve spisové službě? Národní standard pro elektronické systémy spisové služby a jeho optimalizace

496/2004 Sb. VYHLÁŠKA Ministerstva informatiky ze dne 29. července 2004 o elektronických podatelnách

Úvod do aplikací internetu a přehled možností při tvorbě webu

EXTRAKT z české technické normy

ZADÁNÍ DIPLOMOVÉ PRÁCE

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

PRG036 Technologie XML

1. Dědičnost a polymorfismus

Oracle XML DB. Tomáš Nykodým

Internet, www, el. pošta, prohlížeče, služby, bezpečnost

Ukládání a vyhledávání XML dat

Příklad buňka tabulky

Administrativní pokyny pro aplikaci Madridské dohody o mezinárodním zápisu známek a Protokolu k této dohodě. (ve znění platném k 1.

ŠIFROVÁNÍ, EL. PODPIS. Kryptografie Elektronický podpis Datové schránky

Bezpečnostní aspekty informačních a komunikačních systémů KS2

Dotazování nad stromem abstraktní syntaxe

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Programové vybavení OKsmart pro využití čipových karet

Software602 Form Designer

Stručně o XML (výhody, nevýhody) Proč komprimovat XML? Metody komprese XML XMill. Optimalizace komprese XML. Závěr

TECHNICKÁ SPECIFIKACE PŘEDMĚTU VEŘEJNÉ ZAKÁZKY

Směry rozvoje v oblasti ochrany informací KS - 7

Základní zadání IS o ISVS. Sluţba poskytování dat IS o ISVS

EXTRAKT z české technické normy

MBI - technologická realizace modelu

Publikování map na webu - WMS

A. Datové prvky a jejich struktura Identifikátory Identifikace ÚJ Identifikace ZO Identifikace CSÚIS Záhlaví...

Vybrané technické informace pro předávání účetních záznamů do centrálního systému účetních informací státu

Transkript:

XML Signatures Autor Martin Lasoň Abstrakt Digitální podpisy zajišťují integritu, autenticitu a nepopiratelnost dat na Webu. Takové rysy jsou zvlášť důležité pro dokumenty, které reprezentují závazky jako smlouvy, ceníky a prohlášení. Tato práce pojednává o digitálních podpisech dokumentů (dostupných pomocí URI na Webu) s použitím XML syntaxe. Využití těchto vlastností je zvláště důležité pro komerční elektronické aplikace. Klíčová slova XML, digitální podpis, počítačová bezpečnost. Seznam použitých symbolů a zkratek HTML HyperText Markup Language je jazyk pro tvorbu hypertextových dokumentů pro Web. MAC Message Authenticity Code klíčovaná jednocestná hašovací funkce generující charakteristiku závislou na hodnotě nějakého tajemství klíče. SSL Secure Sockets Layer je protokol vyvinutý společností Netscape Communications pro vybudování bezpečného spojení přes internetový kanál. Zaručuje autenticitu partnerů komunikace, důvěrnost, integritu a autenticitu přenášených údajů. URI Uniform Resource Identifier je řetězec znaků určený k identifikaci abstraktního nebo fyzického zařízení. X.509 Standardizovaný formát pro certifikáty a revokační seznamy. XML Extensible Markup Language je množina pravidel pro definici sémantických značek, které rozdělují dokument na části a identifikují různé části dokumentu. 1

Obsah 1 Úvod 3 2 XML digitální podpis 3 2.1 Hlavní cíle.................................... 3 2.2 Výhody..................................... 3 2.3 Nevýhody.................................... 4 2.4 Syntaxe..................................... 4 2.5 Typ podepisovaných dat............................ 5 2.6 Algoritmy.................................... 8 3 Práce s podpisem 8 3.1 Vytvoření XML podpisu............................ 8 3.2 Ověření XML podpisu............................. 11 4 XPath Filter 11 4.1 Rozdíly oproti XPath.............................. 12 4.2 Příklad transformace.............................. 12 5 Závěr 13 2

1 Úvod Současné bezpečnostní technologie nedostačují k zabezpečení obchodních transakcí na Webu. Většina současných bezpečnostních mechanismů založených na prohlížečích dostačuje pro menší obchodní transakce prodeje zákazníkům, ale neposkytuje zvýšenou bezpečnost k ochránění důležitých komerčních transakcí a k výměně citlivých informací s nimi spojenými. Nač ale potřebujeme XML podpisy, pokud při komunikaci se serverem využíváme SSL? Pokud se na celou věc podíváme z pozice hackera, tak co by pro něj bylo jednodušší: odchytávat IP pakety jednotlivého připojení, aby zaměnil jedno číslo kreditní karty, nebo nabourat se na server, kde jsou uložena všechna čísla kreditních karet? A zde přichází na řadu digitální podpis. 2 XML digitální podpis Stejně jako zajištění důvěrnosti obchodních zpráv, je důležité zabezpečit i jejich autenticitu (kdo je poslal), integritu (zda nebyly pozměněny) a umožnit nepopiratelnost (nemožnost popřít odeslání). Obecně uznávaná metoda k zajištění těchto požadavků v zabezpečených obchodních transakcích je využití digitálních certifikátů a digitálního podpisu. Díky vlastnostem XML, jako jsou bohatá sémantika, strukturovaná data, textový základ a Webová povaha může být tohoto formátu použito k šifrování a digitálnímu podpisu dat. 2.1 Hlavní cíle V případech, kdy dokument vytváří několik účastníků, každý chce podepsat jen tu část, za kterou je zodpovědný. Pro tyto účely je navržen XML podpis (anglicky XML Signature) XML podpis je vyvíjen společným úsilím World Wide Web Consortium (W3C) a Internet Engineering Task Force (IETF). Cílem této pracovní skupiny [1] je vyvinout syntaxi jazyka XML, umožňující reprezentaci podpisů Webových zdrojů a části protokolových zpráv (cokoli adresovatelného pomocí URI), a procedur pro výpočet a ověření takových podpisů. XML podpisy jsou digitální podpisy navržené pro použití v XML transakcích. Standard definuje schéma pro popsání výsledku operace digitálního podpisu provedené na libovolných (často XML) datech. Stejně jako digitální podpisy, které nejsou ve formátu XML (např. PKCS), přidávají XML podpisy autentizaci, integritu dat a nepopiratelnost k datům která podepisují. Na rozdíl od jiných standardů digitálního podpisu byl XML podpis navržen tak, aby podporoval oba typy a mohl být využit v Internetu a XML. XML podpisy usnadňují aplikacím podepisování zdrojů na Webu. 2.2 Výhody Hlavní výhodou XML podpisů je schopnost podepsat jen určitou část XML stromu místo celého dokumentu. To může být důležité v případě, kdy jeden XML dokument má dlouhou 3

historii a různé části vytvářely různé strany a každá podepisuje jen ty elementy, za které je zodpovědná. Tato flexibilita je zvláště výhodná v případě, kdy je důležité zajistit integritu jisté části dokumentu, který je ponechán otevřený pro případné změny. Příkladem může být XML formulář, kde by podpis přes celý formulář neumožňoval změnit položky aniž by došlo k zneplatnění podpisu. 2.3 Nevýhody XML podpis (podle RFC 3075) zaručuje integritu, autenticitu zprávy a/nebo služby autentizující podepsaného pro jakýkoli datový typ umístěný v podepsaném XML nebo kdekoli jinde. Hlavním cílem těchto podpisů je poskytovat základní serverové bezpečnostní služby pro Web pomocí XML. Jeho autoři však varují, aby tato práce nebyla považována za technický všelék. XML podpisy předpokládají použití Webu (pomocí URI v XML) k nalezení metod pro zakódování a dekódování. Jestliže ale podpis potřebuje zdroje ze sítě, aby mohl provést akci, kdo bude dodávat tyto zdroje? Proces XML podpisu je navržen co nejobecněji, ale právě tato obecnost je problém. Představme si například komerční softwarovou společnost, která se rozhodne, že chce poskytovat tyto autentizační služby. Dále předpokládejme, že operační systém této společnosti je široce rozšířen. Společnost přijde s novou verzí operačního systému, který obsahuje klienta využívajícího jen XML podpisy k zajištění bezpečnosti. Všechny XML kódy ukazují na servery tohoto výrobce. Autentizace pomocí tohoto klienta se stane široce používaná, protože je snadné jej nastavit jako výchozí v rozšířeném operačním systému. A tak jej výrobce zakotví do jeho oblíbeného zdarma dodávaného prohlížeče jako výchozí bezpečnostní mechanismus. A jako třešničku na dortu začne tento výrobce zpoplatňovat každé využití jeho serverů k autentizaci tímto klientem. A najednou jsou příjmy a monopol na světě! 2.4 Syntaxe XML digitální podpisy jsou reprezentovány elementem <Signature>, který má následující strukturu 1 : <Signature> <SignedInfo> <CanonicalizationMethod/> <SignatureMethod/> (<Reference (URI=)? > (<Transforms/>)? <DigestMethod/> <DigestValue/> </Reference>)+ 1 znak? znamená žádný nebo jeden výskyt, + znamená jeden nebo více výskytů a * znamená nula nebo více výskytů 4

</SignedInfo> <SignatureValue/> (<KeyInfo/>)? (<Object ID?/>)* </Signature> Povinný element <SignedInfo> je informace, která je opravdu podepisována. Ověření podpisu (anglicky validation) se skládá ze dvou povinných částí ověření podpisu a ověření každého zdroje popsaných podrobněji v části 3.2. Algoritmus uvedený v <CanonicalizationMethod> je použit pro standardizaci elementu <SignedInfo> před tím, než je vytvořen otisk (anglicky digest). Různé datové proudy se stejnými XML informacemi, které se liší například jen mezerami, je totiž potřeba převést do jednotného tvaru, aby se předešlo problémům při ověřování. Proces vytváření podpisu je podrobněji vysvětlen na příkladě v části 3.1. <SignatureMethod> označuje algoritmus použitý pro převedení normalizovaného elementu <SignedInfo> na hodnotu <SignatureValue>. Jedná se o kombinaci algoritmu otisku, algoritmu závislého na klíči a případných jiných algoritmech, jako je vycpávání (anglicky padding). Každý element <Reference> obsahuje typ otisku a jeho výslednou vypočtenou hodnotu. Volitelné URI identifikuje podepisovaný datový objekt. Element <Transforms> pak obsahuje volitelný seznam kroků, které byly provedeny se zdrojem než byl podepsán. Může se jednat o operace jako XSLT, XPath, komprese atd. <KeyInfo> označuje klíč určený k ověření podpisu. Tento element je volitelný jednak z důvodu, že podepsaný si nemusí přát prozradit svůj klíč všem stranám, které s dokumentem pracují a nebo je tato informace aplikaci již známa a není potřeba ji proto všude uvádět. (Tento element se využívá také v XML Encryption.) Volitelný element <Object> slouží ke vkládání datových objektů v rámci elementu podpisu nebo jinam. 2.5 Typ podepisovaných dat XML podpis může podepsat jeden nebo více zdrojů různého typu. Například jeden XML podpis může zahrnovat textová data (HTML), binární data (JPG), XML data a stanovenou část XML souboru. Ověření vyžaduje, aby byl podepsaný objekt dostupný. XML podpis obvykle označuje místo podepsaného objektu. Odkaz na takovýto objekt může být adresován pomocí URI v XML podpisu (obr. 1) být umístěn ve stejném zdroji jako XML podpis podpis je sourozenec (obr. 2) být zakotvený v XML podpisu podpis je rodič (obr. 3) mít svůj XML podpis zakotven v sobě podpis je syn (obr. 4) 5

Obrázek 1: Odkaz na podepisovaný objekt pomocí URI Obrázek 2: Odkaz umístěný ve stejném zdroji jako XML podpis 6

Obrázek 3: Odkaz zakotvený v XML podpisu Obrázek 4: Podpis zakotvený v odkazu 7

Typ Algoritmus Požadavky Otisk (Digest) SHA1 Vyžadováno Kódování base64 Vyžadováno MAC HMAC-SHA1 Vyžadováno Podpis DSAwithSHA1 (DSS) Vyžadováno Podpis RSAwithSHA1 Doporučeno Standardizace Canonical XML Vyžadováno Standardizace Canonical XML with Comments Doporučeno Transformace XSLT Dobrovolné Transformace XPath Doporučeno Transformace Enveloped Signature Vyžadováno Tabulka 1: Algoritmy využívané v XML podpisu. Algoritmus SHA1 Base64 HMAC-SHA1 DSAwithSHA1 (DSS) RSAwithSHA1 Canonical XML XSLT XPath URI algoritmu http://www.w3.org/2000/09/xmldsig#sha1 http://www.w3.org/2000/09/xmldsig#base64 http://www.w3.org/2000/09/xmldsig#hmac-sha1 http://www.w3.org/2000/09/xmldsig#dsa http://www.w3.org/2000/09/xmldsig#rsa-sha1 http://www.w3.org/tr/2001/rec-xml-c14n-20010315 http://www.w3.org/tr/1999/rec-xslt-19991116 http://www.w3.org/tr/1999/rec-xpath-19991116 Tabulka 2: URI algoritmů používaných v podpisu. 2.6 Algoritmy Tabulka 1 uvádí algoritmy využívané v XML digitálním podpisu. Jednotlivé algoritmy jsou identifikovány pomocí URI, které je uvedeno jako atribut elementu označujícího způsob jeho použití. Tato URI jsou uvedena v tabulce 2. 3 Práce s podpisem 3.1 Vytvoření XML podpisu Následující kroky vysvětlují postup vytvoření XML podpisu. Uvedený příklad je převzat z [5]. 1. Určení zdrojů, které budou podepsány. V tomto kroku se vytvoří identifikace zdrojů pomocí URI. 8

"http://www.abccompany.com/index.html" je odkaz na HTML stránku na Webu. "http://www.abccompany.com/logo.gif" je odkaz na obrázek GIF na Webu. "http://www.abccompany.com/xml/po.xml" je odkaz na XML soubor na Webu. "http://www.abccompany.com/xml/po.xml#sender1" je odkaz na určitý element XML souboru na Webu. 2. Vypočtení otisku každého zdroje. V XML podpisu je každý odkazovatelný zdroj popsán elementem <Reference> a jeho otisk je umístěn v synovském elementu <DigestValue>, jak je uvedeno na příkladě: <Reference URI="http://www.abccompany.com/news/2000/03_27_00.htm"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> <Reference URI="http://www.w3.org/TR/2000/WD-xmldsig-core-20000228/ signature-example.xml"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>UrXLDLBIta6skoV5/A8Q38GEw44=</DigestValue> </Reference> Element <DigestMethod> určuje algoritmus, který byl použit pro výpočet otisku. 3. Shromáždění elementů Reference Elementy <Reference> jsou se svými otisky shromážděny do elementu <Signed- Info>. <SignedInfo Id="foobar"> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> <Reference URI="http://www.abccompany.com/news/2000/03_27_00.htm"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> <Reference URI="http://www.w3.org/TR/2000/WD-xmldsig-core-20000228/ signature-example.xml"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 9

<DigestValue>UrXLDLBIta6skoV5/A8Q38GEw44=</DigestValue> </Reference> </SignedInfo> Element <CanonicalizationMethod> označuje algoritmus, který byl použit ke standardizaci elementu <SignedInfo>. Element <SignatureMethod> označuje algoritmus použitý k vytvoření hodnoty podpisu. 4. Podepsání Je vypočten otisk elementu <SignedInfo>, provedeno podepsání tohoto otisku a umístění hodnoty podpisu do elementu <SignatureValue>. <SignatureValue>MC0E\~LE=</SignatureValue> 5. Přidání informace o klíči Jestliže je vkládána informace o klíči, pak je to do elementu <KeyInfo>. Tyto informace pak obsahují X.509 certifikát odesilatele, který může obsahovat veřejný klíč potřebný k ověření podpisu. <KeyInfo> <X509Data> <X509SubjectName> CN=Ed Simon,O=XMLSec Inc.,ST=OTTAWA,C=CA </X509SubjectName> <X509Certificate>MIID5jCCA0+gA...lVN</X509Certificate> </X509Data> </KeyInfo> 6. Zapouzdření do elementu Signature Umístění elementů <SignedInfo>, <SignatureValue> a <KeyInfo> do elementu <Signature>. Element <Signature> pak obsahuje XML podpis. <?xml version="1.0" encoding="utf-8"?> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo Id="foobar"> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI="http://www.abccompany.com/news/2000/03_27_00.htm"> 10

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> <Reference URI="http://www.w3.org/TR/2000/ WD-xmldsig-core-20000228/signature-example.xml"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>UrXLDLBIta6skoV5/A8Q38GEw44=</DigestValue> </Reference> </SignedInfo> <SignatureValue>MC0E\~LE=</SignatureValue> <KeyInfo> <X509Data> <X509SubjectName> CN=Ed Simon,O=XMLSec Inc.,ST=OTTAWA,C=CA </X509SubjectName> <X509Certificate> MIID5jCCA0+gA...lVN </X509Certificate> </X509Data> </KeyInfo> </Signature> 3.2 Ověření XML podpisu K ověření XML podpisu je potřeba provést následující dva kroky: 1. Provede se ověření podpisu elementu <SignedInfo>. K tomu je potřeba přepočítat otisk elementu <SignedInfo> (algoritmem uvedeným v elementu <SignatureMethod> a pomocí veřejného klíče ověřit, že hodnota elementu <SignatureValue> souhlasí s otiskem v elementu <SignedInfo>. 2. Pokud je předchozí krok úspěšný, jsou přepočítány otisky odkazů uvedených v elementu <SignedInfo> a porovnány s hodnotami otisků uvedenými v elementech <DigestValue> odpovídajícího elementu <Reference>. 4 XPath Filter Doporučení týkající se XML podpisu [2] definuje standard pro specifikaci obsahu digitálně podepisovaných informací, včetně možnosti podepsat část XML dokumentu. Specifikace XML podpisu splňuje tento požadavek pomocí transformace XPath. Ovšem efektivně implementovat tuto transformaci současnými technologiemi může být poněkud obtížné. 11

Specifikace XML Signature XPath Filter 2.0 [6] popisuje novou transformaci podpisového filtru, která poskytuje metodu pro spočítání podpisu části dokumentu stejně jako transformace XPath. V zájmu zjednodušení vytváření účinných implementací se architektura této transformace nezakládá na vyhodnocení výrazu XPath pro každý uzel XML stromu, jak je to definováno datovým modelem XPath. Místo toho je sekvence výrazů XPath použita k vybrání kořenů podstromů dokumentu (v jazyce XPointer množiny lokací), které jsou sloučeny pomocí množinového průniku, odčítání a spojení a poté použity k filtrování vstupní množiny uzlů. 4.1 Rozdíly oproti XPath Cílem XPath Filter 2.0 je snadněji specifikovat transformace XPath a efektivněji tyto transformace provádět. Hlavní odlišnosti od transformace XPath jsou: Sekvence XPath operací může být provedena v jediné transformaci. Navíc umožňuje, aby bylo možné snadněji vyjádřit a optimalizovat komplexní filtry. Výrazy XPath jsou vyhodnocovány na vstupním dokumentu chápaném jako množina uzlů, namísto logického testování každého uzlu z množiny vstupních uzlů. Pro zvýšení efektivity je expanze daného uzlu, za účelem vložení všech uzlů, které tento uzel mají jako předka, je nyní implicitní a tak může být provedena rychleji než vyhodnocení výrazu XPath pro každý uzel dokumentu. Výsledná množina uzlů může být zkombinována pomocí třech základních množinových operací (průniku, rozdílu a spojení) a použita jako filtr na množinu vstupních uzlů. Na těch je pak možno provést operace, jako podepsání celého dokumentu, kromě přesně stanovené podmnožiny. Vše je tak vyjádřeno jasněji a efektivněji. Stejně jako u původní transformace XPath, je hlavním cílem této transformace zajistit, že na vstupním XML dokumentu jsou po připojení podpisu povoleny jen přesně definované změny. 4.2 Příklad transformace Následující příklad znázorňuje jednu možnost vytvoření podpisu pomocí transformace podpisovým filtrem. Funkce here() identifikuje element XPath a následné umístění obdrží nejbližší předek elementu Signature. Protože je hodnota atributu Filter nastavena na subtract, výstupem transformace podpisového filtru je množina uzlů obsahující každý uzel ze vstupní množiny, kromě uzlů podstromu, jehož kořenem je element Signature <XPath Filter="subtract" xmlns="http://www.w3.org/2002/06/xmldsig-filter2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> here()/ancestor::dsig:signature[1] </XPath> 12

Při použití tohoto rozdílového filtru by mohlo být vhodným URI odkazem na podpis URI="" (pro celý podpisový dokument bez komentářů), URI="#xpointer(/)" (celý podpisový dokument s komentáři) nebo nějaký odkaz na stejný dokument, který sám obsahuje podpis. 5 Závěr Přestože je možným nevýhodám XML podpisu v tomto textu věnována větší část než výhodám, jeho přínos je nesporný. Jakmile se XML stane nezbytnou součástí infrastruktury elektronického obchodování bude potřeba důvěryhodných a bezpečných zpráv pro vytvoření základu obchodních transakcí. Jednou z možností pro vytvoření bezpečných transakcí je použití digitálního podpisu zaručujícího integritu a autenticitu zdroje obchodních dokumentů. XML podpis je vyvíjející se standard digitálního podpisu, který využívá XML syntaxi pro popis výsledků, což zjednodušuje jeho integraci do XML aplikací. Reference [1] The World Wide Web Consortium: XML Signature Working Group http://www.w3.org/signature/, [8.11.2002] [2] The World Wide Web Consortium: XML-Signature Syntax and Processing http://www.w3.org/tr/xmldsig-core/, [12.2.2002] [3] The Internet Engineering Task Force: XML Digital Signatures http://www.ietf.org/html.charters/xmldsig-charter.html, [27.8.2002] [4] Loeb, L.: XML signatures: Behind the curtain http://www-106.ibm.com/developerworks/security/library/s-digsig.html, [1.12.2001] [5] O Reilly & Associates, Inc.: An Introduction to XML Digital Signatures http://www.xml.com/pub/a/2001/08/08/xmldsig.html, [8.8.2001] [6] The World Wide Web Consortium: XML-Signature XPath Filter 2.0 http://www.w3.org/tr/xmldsig-filter2/, [8.11.2002] 13