Rechenzentrum


Navigation und Suche der Universität Osnabrück


Hauptinhalt

Topinformationen

RZ Technical News

Nr. 2 / 2015

10. Juni 2015 : Digitale Signaturen mit openSSL erstellen

Auch mit dem Kommandozeilentool openSSL lassen sich Signaturen über Dokumente (allgemein Dateien) erstellen und verifizieren.

Dafür notwendig ist ein X.509 Zertifikat. Das Zertifikat befindet sich z. B. in der Datei xmuster-cert.pem und der private Schlüssel in xmuster-privkey.pem.

Aus Effizienzgründen wird nicht das Dokument selber signiert. Es wird vielmehr ein Hashwert (z.B. SHA256) über das Dokument berechnet und über diesen Hashwert wird dann mit dem privaten Schüssel eine Signatur erstellt, die in einer separaten Datei binär abgelegt wird.

Die Verifikation der Signatur geschieht folgendermaßen: Mit dem öffentlichen Schlüssel wird aus der Signatur wieder der Hashwert erstellt. Über das Dokument wird erneut der Hashwert berechnet. Wenn beide Werte übereinstimmen, gilt das Dokument als verifiziert.

Mit dem folgenden Kommando kann aus dem Zertifikat der öffentliche Schlüssel extrahiert werden:

openssl x509 -in xmuster-cert.pem -pubkey -noout > xmuster-pubkey.pem

Durch folgendes Kommando wird über die Datei myDoc.txt mit dem eigenen privaten Schlüssel eine digitale binäre Signatur erstellt und diese in der Datei myDoc.sign abgelegt.

openssl dgst -sha256 -sign xmuster-privkey.pem -out myDoc.sign myDoc.txt

Verifiziert wird die Signatur über das Kommando:

openssl dgst -sha256 -verify xmuster-pubkey.pem -signature myDoc.sign myDoc.txt

Das Kommando sollte ausgeben:

Verified OK