Digitálně podepsané XML dokumenty

Standard XML Signature společně vypracovaný týmy W3C a IETF si klade za cíl chránit XML dokumenty pomocí digitálních ...


Standard XML Signature společně vypracovaný týmy W3C a IETF si klade za cíl
chránit XML dokumenty pomocí digitálních podpisů před nežádoucí manipulací. Pro
šifrování XML dat má být podle W3C využíván standard XML Encryption, který
nedávno získal statut "Candidate Recommendation".
Vzhledem k velké podpoře v rámci softwarového průmyslu už dnes není pochyb o
tom, že se Extensible Markup Language (XML) etabluje jako lingua franca v
oblasti e-businessu. Prosazuje se nejen jako standardní syntaxe pro obchodní
dokumenty, ale tvoří také základ pro velmi žádané webové služby. XML tak slouží
nejen k výměně dat mezi heterogenními systémy, ale uplatňuje se i jako základní
technologie pro transakce prováděné přes internet.
Vzhledem k důležitosti funkcí, které XML plní, je tedy zřejmé, že jsou pro jeho
účinné nasazení nezbytné spolehlivé ochranné mechanismy. Ty mají zabránit tomu,
aby neoprávněné osoby nemohly do dokumentů nahlížet nebo s nimi dokonce
manipulovat. Dnes je obvyklé, že se XML dokumenty při svém odesílání přes
internet šifrují na úrovni přenosu k tomuto účelu jsou používány protokoly
Secure Socket Layer (SSL), případně Transport Layer Security (TLS). Šifrování
na úrovni přenosu však pochopitelně nezajišťuje potřebnou ochranu v případě,
kdy se např. hackeři nabourají do serverů, na nichž jsou informace po úspěšném
přenosu uloženy.
Jde-li kupříkladu o přenos objednávek nebo faktur, pak by měla být podle
možnosti zaručena také autentičnost odesílatele a integrita informací. Tento
úkol mohou převzít digitální podpisy. K jejich vytvoření samozřejmě existuje
již mnoho osvědčených metod. Tak například RSA Laboratories definují v Public
Key Cryptography Standards (PKCS) obecnou syntaxi pro data, která jsou opatřena
kryptografickými informacemi, jako jsou podpisy
(www.rsasecurity.com/rsalabs/pkcs/pkcs-7). Standard PKCS však neumí využít
specifických možností XML a je vhodný zejména k podepisování kompletních
dokumentů nebo softwarových komponent. Pro podpisy XLM proto W3 Consortium a
Internet Engineering Task Force (IETF) doporučují metodu, která je navržena
právě pro XML dokumenty. Tato metoda jednak používá syntaxi XML, aby byly
veškeré informace zobrazeny v digitálním podpisu (viz kapitola Digitální
podpis), a jednak za předpokladu použití standardu Xpointer nabízí možnost
podepisovat jednotlivé části dokumentu. Tato varianta by se mohla ukázat jako
výhodná například ve workflow aplikacích. To znamená, že v rámci jednotlivých
kroků zpracování dat, resp. dokumentu by se digitální podpis připojil pouze k
příslušné části dokumentu, zatímco ostatní části by zůstaly otevřené pro další
změny. V případě podpisů nespecifických pro XML by každá změna během workflow
vyvolala neplatnost existujících podpisů, neboť tyto podpisy vlastně zaručují
integritu celého dokumentu.

Pro vyšší flexibilitu
Na základě možnosti podepisovat jednotlivé části dokumentů zvlášť W3C standard
předpokládá, že jeden podpis může vytvářet vztahy k několika zdrojům. Tyto
reference se provádějí ve formě Uniform Resource Identifiers (URI) a mohou
odkazovat buď na segmenty dokumentu, který obsahuje digitální podpis, nebo také
ukázat na libovolnou adresu na webu. Proto se podpisy dají nejen vkládat do
dat, ale mohou se ukládat také nezávisle na nich. Ještě větší flexibilitu
získává způsob specifikovaný W3C tím, že se pro každý zdroj zadává odděleně
metoda, podle které se provádí hashování, tj. výpočet hodnoty hash (algoritmus
číselného zakódování datového řetězce). K tomuto účelu vkládá autor odkaz (URI)
na popis použitého algoritmu. Stejným způsobem je o použité metodě šifrování
informován příjemce. Jednotná reprezentace Vedle standardů Xpointer a XML
Schema, na jejichž základě byl definován XML podpis, se po doporučení W3C
dostává do hry Canonical XML (www.w3.org/

TR/xml-c14n). Protože se logicky identická XML data dají fyzicky rozdílně
interpretovat, vypočítala by se v závislosti na tvaru vždy jiná hash hodnota.
Tento problém se vyskytuje především proto, že zpracování XML dokumentu pomocí
aplikací, například parseru, může vyvolat změny v reprezentaci dokumentu.
Varianty XML dokumentu se liší například stanovením atributů nebo bezvýznamnými
prázdnými znaky (mezerami). Canonical XML popisuje metodu pro jednotnou
reprezentaci logicky ekvivalentních dat.

Šifrování úseků
Používání signatur má z kryptologického hlediska tu výhodu, že šifrování hash
kódů vyžaduje jen malý výpočetní výkon. Naopak kódování větších datových
souborů asymetrickou metodou se ukazuje jako nákladné. Pokud však musí být
obsah nějakého důležitého obchodního dokumentu skryt před cizími pohledy, není
kromě šifrování žádná jiná cesta. Uvedením specifikace XML Encryption
(www.w3.org/TR/xmlenc-core) připravuje W3C další standard, který je určen pro
XML. Začátkem března získal statut Candidate Recommendation.
Jak XML Signature, tak i budoucí šifrovací standard nabízejí možnost označit
přes Xpointer jen vybrané úseky dokumentu. Tak se například dají v objednávce
kódovat jen ty části, ve kterých jsou uloženy informace o kreditních kartách
zákazníka. Toto selektivní kódování může i přes nižší výpočetní nároky
poskytnout potřebnou ochranu citlivých informací.

Podpora odvětví
Podíváme-li se na význam XML pro e-business, lze předpokládat, že se oběma
iniciativám W3C dostane odpovídajícího přijetí a jejich praktické použití
závisí již jen na dostupných nástrojích. Pro XML Signature dnes existuje řada
programátorských knihoven, jejichž pomocí můžete aplikace rozšířit o možnost
opatřit XML data digitálními podpisy, potažmo je verifikovat. K poskytovatelům
nejvíce používaných knihoven patří například Verisign (www.xmltrust
center.org/xmlsig/developer/veri sign/index.htm), IBM se svým produktem XML
Security Suite (www.alphaworks.ibm.com/tech/xmlsecuritysuite), Entrust
(www.entrust.
com/developer/toolkits.htm) nebo Institut pro aplikované zpracování informací a
komunikaci TU Graz (jcewww.iaik.at/products/
ixsil). Všechny uvedené balíky jsou založeny na architektuře Java a ukazují, že
technologii Sunu přísluší při zpracování XML dat velký význam. Některé knihovny
(například knihovna IBM nebo Entrust) již podporují XML Encryption ve své dnes
ještě prozatímní formě. Open source variantu má navíc na starost organizace
Apache Software Foundation. V rámci svých rozsáhlých aktivit v oblasti XML
zahájila projekt s názvem XML Security (xml.apa che.org/security). Javová
knihovna Security-J 1.0.1 se opírá o kód pocházející z univerzity v Siegenu a
podporuje standard XML Signature.
V současné době nabízejí všechny knihovny Javy různá rozhraní pro programování.
Případnému zmatku má však zabránit standard, který vzniká v rámci Java
Community Process. Pod Java Specification Request (JSR) 105
(jcp.org/jsr/detail/105.jsp) definují zainteresované firmy API pro XML
digitální podpisy, pod JSR 106 (jcp.org/jsr/detail/106.jsp) pak pro XML
Encryption. Celkově rozšiřují W3C a IETF rodinu XML uvedenými dvěma
kryptografickými standardy o další stavební kameny důležité pro využití tohoto
značkovacího jazyka v e-businessu. Oba se hodí k zabezpečení všech aplikací
využívajících XML. Patří k nim i systémy pro práci s dokumenty na bázi
obchodních standardů, jako jsou Rosetta.Net nebo BMECat, stejně jako protokoly
typu SOAP nebo ty, které jsou využívány v aplikacích z oblasti peer-to--peer.

Digitální podpis
Pro podepisování se počítá hash kód (nebo také otisk) dokumentu, tedy obrazně
řečeno jakýsi jeho "otisk prstu". Ten je pak zašifrován privátním klíčem
odesílatele a příjemce může po obdržení dat s připojeným digitálním podpisem
vypočítat jejich hash hodnotu znovu. Výsledek se potom porovná s otiskem v
podpisu, který příjemce dekóduje veřejným klíčem autora. Tato metoda
přiděleného dvojitého klíče (na straně odesílatele a příjemce) zaručuje, že od
podpisu dokumentu nedojde v obsahu dokumentu k žádným změnám.
Ale tato samotná metoda nemůže plně zaručit hodnověrnost informací. Není totiž
zcela jisté, že se u odesílatele jedná skutečně o osobu nebo firmu, za jakou se
vydává. Z toho důvodu se vydávají oficiálně ověřeným subjektům digitální
certifikáty, které mají doložit identitu autora a zaručit, že použitá dvojice
klíčů patří skutečně jemu. Tyto elektronické "průkazy totožnosti" se řídí
standardem X.509 a bývají vystavovány v úředně schválených centrech (Trust
Centers), jako je Verisign. K zajištění hodnověrnosti informací lze certifikáty
zabudovat i do podpisu.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.