simon89
Goto Top

Nutzung einer asymmetrischen Verschlüsselung zur Signatur

Guten Morgen!

Ich möchte für ein Softwareprojekt Dokumente digital signieren. Ganz einfach heruntergebrochen läuft es so ab:

Ein Benutzer X erzeugt in der Software des Unternehmens A ein Dokument. Von diesem Dokument bzw. dem Inhalt erzeugt die Software einen Hashwert, bsp. via SHA512. Dieser Hashwert wird mit dem privaten Schlüssel des Unternehmens A chiffriert und abgespeichert. Verschickt Benutzer X das Dokument nun z.B. an Benutzer Y aus Firma B liefert er den verschlüsselten Hashwert mit. Benutzer Y kann jetzt seinerseits nach gleichem Verfahren selbst einen Hashwert erzeugen. Anschließend entschlüsselt er den "erhaltenen Hashwert" mit dem öffentlichen Schlüssel von Unternehmen A und vergleich die beiden Hashwerte. Stimmen Sie überein, wurde exakt dieses Dokument auch ursprünglich signiert.

Soweit die Theorie.

Jetzt kommen die (wenig technischen) Fragen der Praxis: Bei welchem Anbieter bzw. Zertifizierungsstelle kaufe ich die Schlüsselpaare? Und gibt es Zertifizierungsstellen, die nach BSI TR-03145 zertifiziert sind? Ich möchte als Softwareentwickler ungerne eine eigene CA eröffnen. Wie geht man da generell vor? Ich kann die Schlüsselpaare natürlich leicht selbst generieren, aber wie kann ich sicherstellen, das dem auch vertraut wird?

Danke!

Content-Key: 390757

Url: https://administrator.de/contentid/390757

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: NetzwerkDude
NetzwerkDude 26.10.2018 um 11:16:05 Uhr
Goto Top
Benutze let's encrypt, da bekommst kostenlos einen signierten public key - für was du dann die Keys verwendest, ist ja dann deine Sache.
Die Laufzeit ist allerdings nicht allzu lange, vielleicht ist es dann nicht so geschickt für dein Projekt.

Ansonsten immer schön aufpassen bei solchen Softwareprojekten, denn es gibt ja den schönen spruch "don’t roll own crypto" nicht umsonst face-smile
Mitglied: erikro
erikro 26.10.2018 um 11:40:14 Uhr
Goto Top
Moin,

sind alle Beteiligten bekannt? Dann nimm GnuPG und tauscht die Schlüssel.

hth

Erik
Mitglied: simon89
simon89 26.10.2018 aktualisiert um 12:10:02 Uhr
Goto Top
Ich hätte schon gerne eine längere Laufzeit und würde dafür auch entsprechend zahlen. Vielleicht stehe ich gerade auf dem Schlauch. Aber kann ich ein "normales" TLS Zertifikat, dass ich für Webserver benutze auch für diese Anwendung verwenden? Ich frage mich, wie alle Welt das System der digitalen Signatur umsetzt, wenn ich an der Suche einer CA scheitere?

Der Spruch ist mir in Erinnerung geblieben, aber die Frage wäre ja auch, was an dieser Variante hier schlimm wäre. Wenn ich als Entwickler den private+public Key generiere und in meiner Softwarelösung den privat Key verwende, ohne dass der Kunde ihn selbst hat.. Dann muss prinzipiell nur mir vertraut werden. Das muss aber sowieso, weil es ja ein leichtes wäre, eine Hintertür einzubauen. Ohne Vertrauen an den Entwickler geht es generell nciht meine ich?

Die Beteiligten sind leider nicht bekannt... Die Anwendung ist außerdem noch etwas komplexer, wollte hier nur niemanden mit meinem ganzen programm langweilen, wenn es eigentlich wenig um das Programm geht ;)
Mitglied: NetzwerkDude
NetzwerkDude 26.10.2018 um 21:45:34 Uhr
Goto Top
Prinzipiell ist es egal was du mit dem Key machst, d.h. das "TLS Zertifikat" ist lediglich ein durch eine "vertrauenswürdige" CA beglaubigter public key.