Elektronický podpis je obdobou obyčejného podpisu dokumentu přeneseného do světa počítačů. Místo tužky je k jeho vytvoření potřeba mít soukromý klíč a k ověření podpisu odpovídající veřejný klíč. Ke spojení nějaké konkrétní osoby s veřejným klíčem slouží digitální certifikát vydaný nějakou důvěryhodnou certifikační autoritou. Certifikační autorita ověří identitu žadatele o digitální certifikát a je tedy garantem identity majitele certifikátu. Ke komunikaci se státní správou lze použít pouze kvalifikované certifikáty, které mohou vydávat jenom certifikační autority akreditované k poskytování této služby.

 

Vícenásobný elektronický podpis

Používání elektronického podpisu je v České Republice upraveno zákonem o elektronickém podpisu. Tento zákon se zabývá pouze běžným (jednonásobnými) elektronickým podpisem a má jen obecné požadavky na technickou realizaci elektronického podpisu. Pojem vícenásobný elektronický podpis není českou legislativou nijak upraven (narozdíl například od slovenské legislativy). Z toho důvodu je potřeba se na vícenásobný elektronický podpis dívat jako na spojení několika běžných podpisů dle výše uvedeného zákona.

Více podrobností o vícenásobném elektronickém podpise naleznete ve studii Možnosti pro vícenásobný elektronický podpis, jeho vytváření a ověřování. Tato studie popisuje různé varianty vícenásobného elektronického podpisu a dále uvádí příklady alikací, které vícenásobný podpis umožňují. Také se zmiňuje o způsobu, jakým je vícenásobný elektronický podpis uzákoněn ve slovenské legislativě.

V tomto článku se dále se budeme zabývat technickými podrobnostmi implementace elektronického podpisu v aplikaci Multisignature.

 

Formát souboru vytvořeného aplikací Multisignature

Aplikace Multisignature vytváří všechny jednotlivé elektronické podpisy dle normy ETSI TS 101 903, která rozšiřuje standard organizace W3C XML Signature. Tento standard definuje strukturu jednotlivých XML podpisů. Tyto podpisy mohou podepisovat celé dokumenty určené nějakým URL odkazem, nebo mohou podepisovat část XML dokumentu. Také umístění elementu s podpisem v rámci struktury celého XML dokumentu není nijak definováno. V našem případě obsahuje všechny XML podpisy i podepisované dokumenty jediný XML dokument.

Podepisované dokumenty (může být jeden nebo i více) se vloží v binární podobě zakódované s použitím kódování BASE64 do XML souboru (XML obálky) a do této XML obálky se dále připojí pokyny koordinátora procesu podpisování určené pro podpisovatele dokumentu. Tyto pokyny spolu s vloženými dokumenty koordinátor elektronicky podepíše (Instructions Signature), aby nemohlo při přenosu XML obálky dojít ke změně obsahu.

Každý XML element, který má být podepsán, je označen jednoznačným identifikátorem. Tímto identifikátorem se pak v XML podpisu odkazuje na podepsaný obsah.

  • Vlastní podpis dokumentu označujeme jako základní podpis (Basic Signature). Tento podpis podepisuje pouze vložené dokumenty.
  • Uzavírací podpis (Enclosing Signature) podepisuje element se všemi základními podpisy.
  • Doručenka (Advice Of Delivery) podepisuje element s uzavíracím podpisem
  • Závěrečný podpis (Final Signature) podpisuje element se všemy doručenkami

 

Takto vypadá struktura celého dokumentu:



<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<mul:SignedDocument xmlns:mul="urn:cz:xmlns:mathan.multisignature-1.0">

<mul:Document Filename="smlouva.doc" Id="unikátní id">

...soubor s názvem smlouva.doc zakódovaný kódováním BASE64

</mul:Document>

<mul:Instructions Id="unikátní id">

<mul:ProcessDepth>FinalSignature</mul:ProcessDepth>
<mul:Message>Podepište, prosím do 31.10.2007!</mul:Message>
<mul:SignerCount>3</mul:SignerCount>

</mul:Instructions>

<mul:InstructionsSignature Id="unikátní id">

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="unikátní id">
...podpis pokynů pro podpisující strany
</ds:Signature>

</mul:InstructionsSignature>

<mul:BasicSignature Id="unikátní id">

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="unikátní id">
...základní podpis
</ds:Signature>


<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="unikátní id">
...základní podpis
</ds:Signature>

</mul:BasicSignature>

<mul:EnclosingSignature Id="unikátní id">

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="unikátní id">
...uzavírací podpis
</ds:Signature>

</mul:EnclosingSignature>

<mul:AdviceOfDelivery Id="unikátní id">

...seznam doručenek

</mul:AdviceOfDelivery>

<mul:FinalSignature Id="unikátní id">

...závěrečný podpis

</mul:FinalSignature>

</mul:SignedDocument>