Arbeiten Sie mit digitalen Signaturen

Eine digitale Signatur ist eine technologische Implementierung elektronischer Signaturen zum Signieren von Dokumenten und zum Authentifizieren des Unterzeichners, um sicherzustellen, dass ein Dokument seit seiner Signatur nicht verändert wurde. Jede digitale Signatur ist für jeden Unterzeichner einzigartig, da das PKI-Protokoll zur Generierung sowohl öffentlicher als auch privater Schlüssel befolgt wird. Das digitale Signieren eines Dokuments bedeutet, dass eine Signatur mithilfe des privaten Schlüssels des Unterzeichners erstellt wird, wobei ein mathematischer Algorithmus zum Verschlüsseln des generierten Hashs verwendet wird.

Mit Aspose.Words können Sie vorhandene digitale Signaturen erkennen, zählen oder überprüfen und Ihrem Dokument auch eine neue Signatur hinzufügen, um etwaige Manipulationen daran festzustellen. Sie können auch alle digitalen Signaturen aus einem Dokument entfernen. Verwenden Sie die DigitalSignatureUtil-Klasse, um mit digitalen Signaturen zu arbeiten.

In diesem Artikel wird erläutert, wie Sie alle oben genannten Schritte ausführen, um die Authentizität und Integrität eines digitalen Dokuments zu überprüfen.

Unterstützte Formate

Mit Aspose.Words können Sie mit digitalen Signaturen an DOC-, OOXML- und ODT-Dokumenten arbeiten und das generierte Dokument im PDF- oder XPS-Format signieren.

Einschränkungen digitaler Signaturen

In der folgenden Tabelle werden einige Einschränkungen beschrieben, die bei der Arbeit mit digitalen Signaturen über Aspose.Words auftreten können, sowie einige alternative Optionen.

Einschränkung Alternative Möglichkeit
Verlust digitaler Signaturen auf einem Dokument nach dem Laden und Speichern. Daher kann die Verarbeitung eines Dokuments auf einem Server ohne Vorankündigung zum Verlust aller digitalen Signaturen führen Überprüfen Sie, ob ein Dokument über digitale Signaturen verfügt, und ergreifen Sie die entsprechenden Maßnahmen, wenn solche gefunden werden. Senden Sie beispielsweise eine Benachrichtigung an die Kunden, um sie darüber zu informieren, dass das von ihnen hochgeladene Dokument digitale Signaturen enthält, die bei der Verarbeitung verloren gehen
Aspose.Words unterstützt die Arbeit mit Makros in einem Dokument. Aspose.Words unterstützt jedoch noch keine digitalen Signaturen für Makros Exportieren Sie das Dokument zurück in ein beliebiges Word-Format und verwenden Sie Microsoft Word, um Makros eine digitale Signatur hinzuzufügen

Digitale Signaturen erkennen, zählen und überprüfen

Mit Aspose.Words können Sie mithilfe der DetectFileFormat-Methode und der HasDigitalSignature-Eigenschaft digitale Signaturen in einem Dokument erkennen. Es ist zu beachten, dass bei einer solchen Prüfung nur die Tatsache der Unterschrift festgestellt wird, nicht jedoch deren Gültigkeit.

Ein Dokument kann mehr als einmal signiert werden, und dies kann von verschiedenen Benutzern erfolgen. Um die Gültigkeit digitaler Signaturen zu überprüfen, müssen Sie diese mit der LoadSignatures-Methode aus dem Dokument laden und die IsValid-Eigenschaft verwenden. Mit Aspose.Words können Sie außerdem mithilfe der Count-Eigenschaft einen Satz aller digitalen Signaturen in einem Dokument zählen.

All dies bietet eine effiziente und sichere Möglichkeit, ein Dokument vor der Verarbeitung auf Unterschriften zu prüfen.

Das folgende Codebeispiel zeigt, wie Sie das Vorhandensein digitaler Signaturen erkennen und verifizieren können:

Erstellen Sie eine digitale Signatur

Um eine digitale Signatur zu erstellen, müssen Sie ein Signaturzertifikat laden, das die Identität bestätigt. Wenn Sie ein digital signiertes Dokument senden, senden Sie auch Ihr Zertifikat und Ihren öffentlichen Schlüssel.

Mit Aspose.Words können Sie ein X.509-Zertifikat erstellen, ein digitales Zertifikat, das den international anerkannten X.509-PKI-Standard verwendet, um zu überprüfen, ob ein öffentlicher Schlüssel zum im Zertifikat enthaltenen Unterzeichner gehört. Verwenden Sie dazu die Create-Methode innerhalb der CertificateHolder-Klasse.

In den nächsten Abschnitten wird erläutert, wie Sie eine digitale Signatur und eine Signaturzeile hinzufügen und ein generiertes PDF-Dokument signieren.

Unterschreiben Sie ein Dokument

Mit Aspose.Words können Sie ein DOC-, DOCX-, XPS- oder ODT-Dokument mithilfe der Sign-Methode und SignOptions-Eigenschaften digital signieren.

Das folgende Codebeispiel zeigt, wie Sie Dokumente mithilfe eines Zertifikatsinhabers und der Signaturoptionen signieren:

Fügen Sie eine Signaturzeile hinzu

Eine Signaturzeile ist eine visuelle Darstellung einer digitalen Signatur in einem Dokument. Mit Aspose.Words können Sie eine Signaturzeile mithilfe der DocumentBuilder.InsertSignatureLine-Methode einfügen. Sie können die Parameter für diese Darstellung auch mithilfe der SignatureLineOptions-Klasse festlegen.

Das Bild unten zeigt beispielsweise, wie gültige und ungültige Signaturen angezeigt werden können.

Zeichnung Zeichnung

Wenn ein Dokument eine Signaturzeile und keine digitale Signatur enthält, gibt es außerdem eine Funktion, mit der der Benutzer aufgefordert wird, eine Signatur hinzuzufügen.

Das folgende Codebeispiel zeigt, wie man ein Dokument mit einem persönlichen Zertifikat und einer bestimmten Signaturzeile signiert:

Signieren Sie ein generiertes PDF-Dokument

Mit Aspose.Words können Sie mithilfe der PdfDigitalSignatureDetails-Eigenschaften ein PDF-Dokument signieren und alle Details abrufen.

Das folgende Codebeispiel zeigt, wie ein generiertes PDF signiert wird:

Rufen Sie den Wert der digitalen Signatur ab

Aspose.Words bietet außerdem die Möglichkeit, mithilfe der SignatureValue-Eigenschaft den Wert der digitalen Signatur aus einem digital signierten Dokument als Byte-Array abzurufen.

Das folgende Codebeispiel zeigt, wie der Wert der digitalen Signatur als Byte-Array aus einem Dokument abgerufen wird:

Entfernen Sie digitale Signaturen

Mit Aspose.Words können Sie mithilfe der RemoveAllSignatures-Methode alle digitalen Signaturen aus einem signierten Dokument entfernen.

Das folgende Codebeispiel zeigt, wie digitale Signaturen aus einem Dokument geladen und entfernt werden: