LibreOffice-Serie: Digital signieren

  Ralf Hersel   Lesezeit: 4 Minuten  🗪 9 Kommentare

Ein Dokument digital zu unterschreiben, ist und bleibt eine schwierige Angelegenheit.

libreoffice-serie: digital signieren

In diesem Beitrag geht es um das digitale Signieren von LibreOffice-Dokumenten, was nicht damit zu verwechseln ist, das Bild einer Unterschrift unter ein Dokument zu kopieren. Bereits vor zweieinhalb Jahren habe ich einen allgemeineren Artikel dazu geschrieben, der auch heute noch lesenswert ist.

Also lasst euch vom Titelbild nicht irritieren; die digitale Unterschrift ist nämlich unsichtbar. Es gibt dafür ein paar Voraussetzungen, von denen die meisten offensichtlich sind:

  1. LibreOffice ist installiert
  2. GPG ist installiert
  3. Dein Public Key kann überprüft werden

Während die ersten beiden Punkte bei den meisten von euch sowieso erfüllt sind, handelt es sich beim dritten Punkt um des Pudels Kern; doch dazu später mehr.

Wie man die Voraussetzung 1 und 2 erfüllt, erkläre ich hier nicht. Wohl aber, wie man mit GPG einen Schlüssel für die Signatur von Dokumenten erzeugt. Falls ihr bereits einen Schlüssel mit GPG erzeugt habt, müsst ihr keinen weiteren für die Dokumentensignatur erstellen; ihr könnt den bestehenden Schlüssel dafür verwenden. Wenn ihr jedoch einen eigenen Schlüssel ausschliesslich für die Dokumentensignatur haben möchtet, nur zu.

Schlüssel erzeugen

Vorausgesetzt, ihr habt GPG installiert, öffnet ihr ein Terminal und gebt diesen Befehl ein, um einen neuen Schlüssel (genauer gesagt, ein Schlüsselpaar) zu erzeugen:

gpg --full-generate-key

Dann folgen einige Abfragen, die ich hier kurz wiedergebe:

  1. Die Frage nach der Schlüsselart könnt ihr mit RSA (Option 1) beantworten
  2. Als Länge für den RSA-Schlüssel wählt ihr 4096 Bit aus
  3. Bei der Frage nach der Gültigkeitsdauer könnt ihr die Standardeinstellung nehmen (verfällt nie)
  4. Dann müsst ihr eine User-ID eingeben, z. B. "Vorname Nachname" (nicht in Anführungszeichen)
  5. Nun gebt ihr eure E-Mail-Adresse ein ...
  6. ... gefolgt von einem Kommentar, z. B.: "Signieren von Dokumenten"
  7. Die Eingaben werden dann so angezeigt und können bestätigt werden:
    Sie haben diese User-ID gewählt:
    "Ralf Hersel (Signieren von Dokumenten) "

Hinweis: Ich erkläre in diesem Artikel nicht die Details von GPG, sondern empfehle dafür die Lektüre von Webseiten, die sich ausführlich mit diesem umfangreichen Thema befassen. Unter den Quellen findet ihr Links dazu.

Danach befindet sich das Schlüsselpaar (privater und öffentlicher Schlüssel) im Verzeichnis: ~/.gnupg/ und kann von LibreOffice für das digitale Signieren verwendet werden.

Signieren in LibreOffice

Jetzt kann ein Dokument in LibreOffice erstellt oder geöffnet werden. Dort findet ihr im Menü: Datei, Digitale Signaturen, Digitale Signaturen... einen Dialog in dem ihr auf Dokument signieren ... klickt. Dann wählt ihr den soeben erzeugten Schlüssel aus:

.. und klickt auf Signieren und Schliessen. Das war es auch schon, und ihr seht:

Leider gibt es in LibreOffice 7.5.5.2 einen Bug, der dazu führt, dass ihr den Dialog nie wieder loswerdet. Doch das sind Nebensächlichkeiten. Viel interessanter ist die Frage, welches Vertrauen man dieser Signatur schenken darf. Das Dokument ist nämlich nur deshalb mit einer gültigen Signatur versehen, weil ihr das so wolltet. Deshalb stellt sich die Frage, wie dieses "signierte" Dokument bei einem Empfänger erscheint.

Um das zu simulieren, habe ich das Dokument in eine virtuelle Maschine kopiert und dort in LibreOffice geöffnet:

Tja, LibreOffice kann (beim Empfänger) die Signatur nicht prüfen. Um das zu ermöglichen, müsste der Empfänger Zugriff auf den öffentlichen Schlüssel des Absenders haben. Dafür gibt es (theoretisch) zwei Möglichkeiten: man importiert den öffentlichen Schlüssel des Absenders beim Empfänger, oder man greift auf Schlüssel-Server zu, auf die der Absender vorher seinen öffentlichen Schlüssel publiziert hat. Soweit ich das sehe, unterstützt LibreOffice den Zugriff auf Schlüssel-Server nicht; dadurch bleibt nur der Import des öffentlichen Schlüssels des Absenders übrig. Und das geht so: zuerst muss der öffentliche Schlüssel auf dem Quellsystem exportiert werden. Dazu verschafft ihr euch eine Überblick über die vorhandenen Schlüssel mit:

gpg --list-keys

Dann erzeugt ihr eine Datei für den gewünschten öffentlichen Schlüssel:

gpg --export --armor fingerprint > sender_oeffentlicher_schluessel.asc

Der Fingerprint ist das, was ihr als 40-stelligen Code bei --list-keys gesehen habt. Dann versendet ihr die asc-Datei an die Empfängerin. Diese muss deinen öffentlichen Code in ihr GPG-Verzeichnis importieren:

gpg --import sender_oeffentlicher_schluessel.asc

Jetzt kennt der Empfänger den öffentlichen Schlüssel des Absenders und kann das signierte Dokument bestätigen und alle fort folgenden Dokumente.

Fazit

Ja, ich gebe zu, dass ich viele wichtige Informationen bezüglich GPG verschwiegen habe. GPG ist nicht benutzerfreundlich; nicht nur für Anfänger, sondern auf für fortgeschrittene GNU/Linux-Anwender:innen. Dennoch hoffe ich, dass der Artikel ein wenig Licht auf das digitale Unterschreiben von LibreOffice Dokumenten geworfen hat.

Quellen:

https://gnupg.org/
https://de.wikipedia.org/wiki/GNU_Privacy_Guard
https://www.digitalocean.com/community/tutorials/how-to-use-gpg-to-encrypt-and-sign-messages

Tags

LibreOffice, Writer, Unterschrift, Signatur, unterschreiben, digitale Unterschrift

mw
Geschrieben von mw am 15. August 2023 um 10:54

Schade, ich hatte eine Anleitung für X.509 Zertifikate erwartet. PGP ist einfach eine Nischenanwendung , die kaum einer verwendet.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 15. August 2023 um 23:11

Wenn ich Lust habe und Zeit finde, schreibe ich zum Thema S/MIME einen Folgeartikel. Das ist halt eine andere Sache, weil es dabei um öffentliche CAs geht. Fall sich jemand berufen fühlt, gebe ich den Artikel gerne an eine fachkundige Person ab, zum Beispiel an den Kommentarschreiber "mw".

jh
Geschrieben von jh am 15. August 2023 um 18:35

Würde nicht behaupten, dass GnuPG eine Nischenanwendung ist. Das ist jedoch Ansichtssache. x.509 Zertifikate kann man in LO ganz bequem auf die gleiche Art verwenden. Lediglich das Verzeichnis (Zertifikatspfad) zum Netweok-Security-Services-Zertifikat muss man unter Extras --> Optionen --> LibreOffice --> Sicherheit auswählen. Danach ist das Signieren mit einem x.509 Zertifikat ebenfalls möglich.

DxU
Geschrieben von DxU am 15. August 2023 um 22:20

Bei dem Artikel, hätte ich im Allgemeinen auch eher an s/mime gedacht. Aber hier im Linux Umfeld dann doch schon wieder an gnupg.

Nun gnupg, verwende ich seit mehr als 20 Jahren. Inzwischen ist mein .gnupg/ Verzeichnis (noch aus gnupg1 Zeiten) aber so verkorkst, dass ich damit kaum noch arbeiten kann. Neustart mit neuen Schlüsseln wäre heir wohl die einzige Lösung. s/mime hingegen kenne ich zwar vom Namen, habe aber damit erst seit ca 1 Jahr beruflich Berührung. Beide haben Vor- und Nachteile. Im Business-Umfeld ist wohl eher s/mime vertreten, gnupg eher im privaten Bereich.

Ersteres ist kostenpflichtig und wird idR durch Firmen oder Behörden ausgegeben. Soweit ich es kennen gelernt habe, ist dafür dann ein persönliches Authentisieren (meist mit Pass/PA) nötig.

Ein gnupg Schlüsselpaar hingegen kann sich jeder selbst erstellen und z.B. auf einen Keyserver hochladen. Stichwort Web-of-Trust. Aber auch dafür gibt es Authentisierungsstellen, die bei Bedarf einen Key verfizieren.

Zum Thema Dokumente signieren. Leider wird hier in der Praxis gerade im beruflichen Umfeld oft nicht gewissenhaft gearbeitet, weil viele nicht so IT-affine Anwender das mehr oder weniger als notwendiges Übel ansehen. Und so erlebe ich immer wieder, dass alte und neue Keys durcheinander geworfen werden, am eignen Rechner oder beim Kommunikationspartner, der z.T. einfach nichts vom Keywechsel mit bekommt. Betriebssysteme und Anwendungen tun dann auch noch ihr übriges, zu diesem Durcheinander. Versucht mal z.B. in Outlook, mehrere Postfächer zu verwenden und automatisch zu signieren. ;-) Auchhab ich erlebt, das beim Versuch, den Vorgang zum Erstellen von Keys in Portalen und die spätere Nutzung möglichst zu vereinfachen, die Keys im Nachhinein kaum zu nutzen waren. Und dann meldet der PDF Reader z.B. die Unterschrift sei ungültig, mit Tricks kann der User das dann noch für sich selbst "gerade biegen" aber beim Empfänger bleibt sie dann eben doch ungültig.

ralf
Geschrieben von ralf am 16. August 2023 um 08:38

Unterschreiben von Dokumenten geht doch schon viel laenger mit einem tablet+stift. Da geht man auf das Unterschriftsfeld und unterschreibt ganz normal wie auf Papier.

Ich mache das schon ewig, da ich statt mit einer Mouse mit einem bamboo tablet+stift arbeite.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 16. August 2023 um 22:07

Lies bitte noch einmal den ersten Satz des Artikels.

kai
Geschrieben von kai am 16. August 2023 um 14:04

Ich bin verwirrt: "Dann versendet ihr die asc-Datei an die Empfängerin. Diese muss deinen öffentlichen Code in ihr GPG-Verzeichnis importiere... Jetzt kennt der Empfänger..."

Gerade war der Empfänger noch explizit weiblich, jetzt männlich (oder ist Empfänger jetzt wieder, wie üblich, jedermann?). Am Besten ist doch, damit man nicht ständig in die eigenen Sprachfallen fällt, allgeimein zu bleiben: Empfänger ist jeder, ob Mann, Frau oder "Diverse".

Naja
Geschrieben von Naja am 16. August 2023 um 21:15

Nee, du bist nicht verwirrt. Du hast es schon verstanden, worum es Ralf geht. Du willst es nur nicht so haben.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 16. August 2023 um 22:09

In diesem Artikel geht es nicht um korrektes Gendern. Das haben wir vor ein paar Wochen zur Genüge diskutiert.