Práce s digitálními podpisy

Digitální podpis je technologická implementace elektronických podpisů k podepisování dokumentů a ověřování podepisujícího, aby bylo zaručeno, že dokument nebyl od podpisu změněn. Každý digitální podpis je jedinečný pro každého podepisujícího, protože následuje PKI protokol pro generování veřejných i soukromých klíčů. Digitální podepsání dokumentu znamená vytvoření podpisu pomocí soukromého klíče podepisujícího, kde se k šifrování generovaného hash používá matematický algoritmus.

Aspose.Words umožňuje detekovat, počítat nebo ověřovat existující digitální podpisy a také přidat nový podpis do dokumentu, abyste zjistili jakoukoli manipulaci v něm. Z dokumentu můžete také odebrat všechny digitální podpisy. Pro práci s digitálními podpisy použijte třídu DigitalSignatureUtil.

Tento článek vysvětluje, jak provést všechny výše uvedené kroky k ověření pravosti a integrity digitálního dokumentu.

Podporované Formáty

Aspose.Words umožňuje pracovat s digitálními podpisy na dokumentech DOC, OOXML a ODT a podepisovat vygenerovaný dokument ve formátu PDF nebo XPS.

Omezení digitálních podpisů

Níže uvedená tabulka popisuje několik omezení, kterým můžete čelit při práci s digitálními podpisy pomocí Aspose.Words, a také některé alternativní možnosti.

Omezení Alternativa
Ztráta digitálních podpisů na dokumentu po jeho načtení a uložení. Zpracování dokumentu na server proto může způsobit ztrátu všech digitálních podpisů bez předchozího upozornění. Zkontrolujte, zda má dokument digitální podpisy, a pokud jsou nějaké nalezeny, proveďte příslušná opatření. Například pošlete klientům upozornění, že dokument, který nahrávají, obsahuje digitální podpisy, které budou při zpracování ztraceny.
Aspose.Words podporuje práci s makry v dokumentu. Ale Aspose.Words zatím nepodporuje digitální podpisy na makrech. Exportujte dokument zpět do libovolného formátu Word a pomocí Microsoft Word přidejte digitální podpis do Maker.

Zjišťování, počítání a ověřování digitálních podpisů

Aspose.Words umožňuje detekovat digitální podpis v dokumentu pomocí metody DetectFileFormat a vlastnosti HasDigitalSignature. Stojí za zmínku, že taková kontrola zjistí pouze skutečnost podpisu, ale ne jeho platnost.

Dokument může být podepsán více než jednou, a to mohou provést různí uživatelé. Chcete-li zkontrolovat platnost digitálních podpisů, musíte je načíst z dokumentu pomocí metody LoadSignatures a použít vlastnost IsValid. Také Aspose.Words umožňuje počítat sadu všech digitálních podpisů v dokumentu pomocí Vlastnosti Count.

To vše poskytuje efektivní a bezpečný způsob kontroly podpisů dokumentu před jeho zpracováním.

Následující příklad kódu ukazuje, jak zjistit přítomnost digitálních podpisů a ověřit je:

Vytvoření digitálního podpisu

Chcete-li vytvořit digitální podpis, budete muset načíst podpisový certifikát, který potvrzuje identitu. Když odešlete digitálně podepsaný dokument, odešlete také certifikát a veřejný klíč.

Aspose.Words umožňuje vytvořit certifikát x.509, digitální certifikát, který používá mezinárodně uznávaný standard x. 509 PKI k ověření, že veřejný klíč patří podepisujícímu příjemci obsaženému v certifikátu. Chcete-li to provést, použijte metodu Create v rámci třídy CertificateHolder.

Další části vysvětlují, jak přidat digitální podpis, řádek podpisu a jak podepsat vygenerovaný dokument PDF.

Podepište dokument

Aspose.Words umožňuje digitálně podepsat dokument DOC, DOCX nebo ODT pomocí metody Sign a vlastností SignOptions.

Následující příklad kódu ukazuje, jak podepisovat dokumenty pomocí držitele certifikátu a možností podepisování:

Přidání řádku podpisu

Podpisový řádek je vizuální reprezentace digitálního podpisu v dokumentu. Aspose.Words umožňuje vložit řádek podpisu pomocí metody DocumentBuilder.InsertSignatureLine. Parametry pro tuto reprezentaci můžete také nastavit pomocí třídy SignatureLineOptions.

Například obrázek níže ukazuje, jak lze zobrazit platné a neplatné podpisy.

valid-signature invalid-signature

Pokud dokument obsahuje řádek podpisu a žádný digitální podpis, existuje funkce, která uživatele požádá o přidání podpisu.

Následující příklad kódu ukazuje, jak podepsat dokument osobním certifikátem a konkrétním podpisovým řádkem:

Podepsat vygenerovaný PDF dokument

Aspose.Words umožňuje podepsat a získat všechny podrobnosti o PDF dokumentu pomocí vlastností PdfDigitalSignatureDetails.

Následující příklad kódu ukazuje, jak podepsat vygenerovaný PDF:

Načtení hodnoty digitálního podpisu

Aspose.Words také poskytuje možnost načíst hodnotu digitálního podpisu z digitálně podepsaného dokumentu jako bajtové pole pomocí vlastnosti SignatureValue.

Následující příklad kódu ukazuje, jak získat hodnotu digitálního podpisu jako bajtové pole z dokumentu:

Odstranění Digitálních Podpisů

Aspose.Words umožňuje odstranit všechny digitální podpisy ze podepsaného dokumentu pomocí metody RemoveAllSignatures.

Následující příklad kódu ukazuje, jak načíst a odebrat digitální podpisy z dokumentu: