OpenPGP-Key als S/MIME-Key?

  • Hi Leute,
    mir fiel das gerade so ein: Ich benutze selbst OpenPGP (in Form des GPG) und (vielleicht noch) kein S/MIME. Soweit ich weiß, sind aber beide Systeme technisch sehr ähnlich, wenn nicht sogar gleich. (Benutzen nicht ach beide mittlerweile RSA?)
    Der Hauptunterschied zwischen den Systemen ist meines Wissens der der Verifizierung: Während ich bei OpenPGP jeden Schlüssel selbst verifiziere, prüfe ich bei S/MIME, ob ein Trustcenter meines Vertrauens den Schlüssel verifiziert (und dementsprechend signiert) hat (unter anderem einer der Gründe, warum ich OpenPGP vorziehe).


    Unter diesen Umständen könnte ich doch, so die Schlüssel rein technisch tatsächlich identisch sind, einem Trustcenter meinen OpenPGP-Key schicken und sagen, signiert mir das mal als S/MIME-Key (würde man natürlich etwas freundlicher formulieren und so, aber inhaltlich...)
    Insbesondere, da GPG 2.0 ja auch S/MIME beherrscht, scheint das technisch ja kompatibel zu sein. Oder hat man für S/MIME einfach weitere Algorithmen in GPG eingebaut?


    Insofern meine Frage: Könnte ich, wenn ich sowohl OpenPGP als auch S/MIME verwenden möchte (je nach Empfänger), dafür dasselbe Schlüsselpaar verwenden oder müsste ich zwei Paare erstellen?

  • S/MIME funktioniert mit Zertifikaten, die technisch mit OpenPGP nichts zu tun haben.
    Von daher ist es auch egal, wenn man einen OpenPGP-Schlüssel und ein X.509-Zertifikat zur selben eMail-Adresse hat.
    Der Vorteil von X.509-Zertifikaten ist, daß der Absender normalerweise geprüft ist im Gegensatz zu OpenPGP-Schlüsseln.

  • Hallo Shinzon,


    in deinem Beitrag finde ich einige richtige Gedanken, einiges an Unklarheiten und in einem Fall (hier: deutlich genannt!) Blödsinn.
    Aber ich möchte dir auf deine Fragen gern antworten (wenn es auch schon etwas spät ist, sorry).
    Ich gehe bei meiner Antwort immer von Zertifikaten eines "richtigen" TrustCenters aus. Also zumindest von Zertifikaten für fortgeschrittene oder gar qualifizierte Signaturen. Die gern genutzten (und kryptologisch fast ebenbürtigen!) Kostnix-Zertifikate lasse ich mal außen vor, da dort keine Identifizierung der Antragsteller erfolgt.


    Zitat

    Soweit ich weiß, sind aber beide Systeme technisch sehr ähnlich, wenn nicht sogar gleich. (Benutzen nicht ach beide mittlerweile RSA?)


    Hier hast du völlig Recht.
    Beide Verfahren wenden asymmetrische Kryptologie an. Erzeugen also einen privaten Schlüssel und daraus einen öffentlichen. Dazu kann (in der Regel) RSA verwendet werden. Zumindest bei der Erezugung von X.509-Zertifikaten sind aber auch weitere und moderne Methoden anwendbar.


    Zitat

    Der Hauptunterschied zwischen den Systemen ist meines Wissens der der Verifizierung:


    Das ist einer der Unterschiede. Auch wenn X.509 nicht ausschließlich S/MIME ist, belassen wir es hier mal dabei.


    Zitat

    Während ich bei OpenPGP jeden Schlüssel selbst verifiziere, prüfe ich bei S/MIME, ob ein Trustcenter meines Vertrauens den Schlüssel verifiziert (und dementsprechend signiert) hat (unter anderem einer der Gründe, warum ich OpenPGP vorziehe).


    In diesem Satz sehe ich Unklarheit und am Ende wirklich Blödsinn.
    Der große Unterschied ist, dass ein TrustCenter die antragstellende Person sicher zu identifizieren hat. (=> §5 SigG). Es erfolgt also eine Verifikation ("Echtheitsprüfung") des Antragstellers und nicht des Zertifikates. Das TrustCenter garantiert also, dass die im Zertifikat eingetragene Person sich mit einem gültigen Lichtbildausweis ausgewiesen und im Beisein eines Registrators (4-Augen-Prinzip!) unterschrieben hat und somit "echt" ist.
    BTW: Bei Verstoß gegen diesen Grundsatz droht das Gesetzt Strafen bis zu 10.000 € an!


    Das TrustCenter signiert nach erfolgter Personenidentifizierung und Überprüfung der sonstigen Voraussetzungen mit seinem (unter höchsten Sicherheitsanforderungen erzeugten und vor allem gespeicherten!) privaten Schlüssel das Zertifikat (richtiger: die Zertifikatsdaten und den öffentlichen Schlüssel) des Antragstellers. Damit bestätigt das TC mit seinem "Namen" die Verbindung zwischen der Person und ihrer Signatur.


    Und das da: "(unter anderem einer der Gründe, warum ich OpenPGP vorziehe)" kann ich wirklich nur als Blödsinn bezeichnen!
    Nur eine Personenidentifikation gem. §5 SigG kann wie oben beschrieben die Identität der Person auch vor dem Gesetz garantieren. Die ganzen Versuche von PGP und Abkömmlingen (Signaturparties, "Notare" usw.) sind IMHO Spielkram. Es kostet mich nur ein klein wenig Mühe, und dann kann ich einen GnuPG-Schlüssel mit 50 Beglaubigungen vorweisen (die ich allesamt selbst gemacht habe ...). Und wenn du dir deinen Schlüssel alleine selbst signierst, so wie es ja üblich ist, dann gibt es überhaupt keine Bestätigung für die Echtheit der Person.
    Du solltest dir also noch einmal überlegen, ob die von dir gemachte Behauptung sinnvoll ist.


    Das, was ich oben gesagt habe, betrifft ausschließlich die elektronische Signatur.
    Was die Sicherheit der Verschlüsselung betrifft, da unterscheiden sich PGP & Co. nicht. Der wohl einzige Unterschied besteht darin, dass die Zufallszahlen, die für die Schlüssel auf einer Chipkarte erzeugt werden eine andere Qualität besitzen, als die, welche der Pseudozufallszahlengenerator eines PC erzeugen kann. Aber das geht jetzt schon zu sehr in die Einzelheiten.


    Falls deine Angst allerdings daraus resultiert, dass du denkst, dass das TrustCenter auch deinen privaten Schlüssel erzeugt und somit speichern kann, dann denkst du ebenfalls falsch. Näheres dazu in meinem Beitrag in den AQ.


    Zurück zu deinen Fragen:

    Zitat

    Unter diesen Umständen könnte ich doch, so die Schlüssel rein technisch tatsächlich identisch sind, einem Trustcenter meinen OpenPGP-Key schicken und sagen, signiert mir das mal als S/MIME-Key ...


    Ja, theoretisch kannst du das machen!
    Aber erst mal (dein Denkfehler von oben!) du behältst deinen private Key schön bei dir und verschickst nur den public Key!
    Und vorher musst du diesem public Key noch die benötigten Zertifikatsdaten (cn, also deinen Namen, die Mailadresse, den Wohnort usw.) beifügen. Das ganze kannst du mit openssl machen und das nennt sich dann "Zertifikatsrequest". Diesen Zertifikatsrequest schickst du dem TC. Dieses trägt noch den Gültigkeitszeitraum (Softwaretoken = 1 Jahr!) ein und signiert das ganze mit seinem private Key. Und fertig ist das Zertifikat! Mit openssl kannst du dieses und den bei dir vorhandenen eigenen private Key dann noch zu einer "Schlüsseldatei" (.p12 oder .pfx) verknüpfen.


    Diese Signatur von Requests ist noch nicht einmal unüblich. Aber kaum für Zertifikate für S/MIME sondern für Maschinenzertifikate (SSL-Zertifikate), weil einige ältere Maschinen keine fremd erzeugten Schlüssel importieren können, sondern nur selbst erzeugte.


    Zitat

    Oder hat man für S/MIME einfach weitere Algorithmen in GPG eingebaut?


    Algorithmen nicht, aber die genannten Zertifikatsdaten. Und vor allem die strenge Gültigkeitsdauer.


    Zitat

    Insofern meine Frage: Könnte ich, wenn ich sowohl OpenPGP als auch S/MIME verwenden möchte (je nach Empfänger), dafür dasselbe Schlüsselpaar verwenden oder müsste ich zwei Paare erstellen?


    Theoretisch, mit viel Mühe und noch viel mehr Entgegenkommen seitens des TC: ja


    Aber das macht kein Mensch!
    Du schaffst dir hier ganz bewusst eine Sicherheitslücke.
    Nicht umsonst dürfen so genannte Softwaretoken nur ein und in Sonderfällen drei Jahre Gültigkeit besitzen (= großer Unterschied zur "Kryptografie für die Massen"). Und du willst den gleichen Schlüssel dann auch noch für zwei verschiedene Verfahren einsetzen?
    => das ist der Schuss ins eigene Knie ;-)



    Mit den bei uns durchaus üblichen "Freundlichen Grüßen"!
    Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Besten Dank für die Ausführungen!


    Zitat von "Peter_Lehmann"


    wenn es auch schon etwas spät ist, sorry


    Kein Problem.


    Zitat von "Peter_Lehmann"


    Die gern genutzten (und kryptologisch fast ebenbürtigen!) Kostnix-Zertifikate lasse ich mal außen vor, da dort keine Identifizierung der Antragsteller erfolgt.


    Wieso fast? Rein kryptologisch müssten sie doch ebenbürtig sein, weil selber Algorithmus. Nur bei der Sicherheit der Identifikation hapert's, oder?


    Zitat von "Peter_Lehmann"


    Das TrustCenter signiert nach erfolgter Personenidentifizierung und Überprüfung der sonstigen Voraussetzungen mit seinem (unter höchsten Sicherheitsanforderungen erzeugten und vor allem gespeicherten!) privaten Schlüssel das Zertifikat (richtiger: die Zertifikatsdaten und den öffentlichen Schlüssel) des Antragstellers. Damit bestätigt das TC mit seinem "Namen" die Verbindung zwischen der Person und ihrer Signatur.


    Zitat von "Peter_Lehmann"


    Falls deine Angst allerdings daraus resultiert, dass du denkst, dass das TrustCenter auch deinen privaten Schlüssel erzeugt und somit speichern kann, dann denkst du ebenfalls falsch. Näheres dazu in meinem Beitrag in den AQ.


    Zitat von "Peter_Lehmann"


    Aber erst mal (dein Denkfehler von oben!) du behältst deinen private Key schön bei dir und verschickst nur den public Key!


    Kein Denkfehler, nur unklare (oder vielmehr unzureichende) Ausdrucksweise im ersten Post. Dass das TC nur den public key bekommt, ist klar, wenn die meinen privat key bekommen, kann ich das System ja gleich in die Tonne treten.


    Zitat von "Peter_Lehmann"


    Und das da: "(unter anderem einer der Gründe, warum ich OpenPGP vorziehe)" kann ich wirklich nur als Blödsinn bezeichnen!


    Gut, ich gebe zu, das war vielleicht etwas vorschnell. Die kryptografische und Signaturfunktion des X.509-Zertifikats bleibt schließlich erhalten, wenn das Trustcenter seinen Key verliert (oder er geklaut wird). Nur die Identifikation über das TC ist dann halt im Eimer.

    Zitat von "Peter_Lehmann"


    Nur eine Personenidentifikation gem. §5 SigG kann wie oben beschrieben die Identität der Person auch vor dem Gesetz garantieren. Die ganzen Versuche von PGP und Abkömmlingen (Signaturparties, "Notare" usw.) sind IMHO Spielkram. Es kostet mich nur ein klein wenig Mühe, und dann kann ich einen GnuPG-Schlüssel mit 50 Beglaubigungen vorweisen (die ich allesamt selbst gemacht habe ...). Und wenn du dir deinen Schlüssel alleine selbst signierst, so wie es ja üblich ist, dann gibt es überhaupt keine Bestätigung für die Echtheit der Person.


    Dann vertraue ich aber keiner deiner 50 Beglaubigungen. Mit dem selbst Verifizieren meinte ich wirklich den persönlichen Abgleich der Fingerprints der für mich wichtigen Schlüssel. Ist zwar 'n bisschen aufwendiger, so aufwendig aber nun auch wieder nicht.
    Und deine 50 selbstgemachten Beglaubigungen dürften dann aber auch nicht von einem von mir vertrauten Key signiert worden sein, insofern habe ich keinen Anlass, dem key umstandslos zu vertrauen.
    Wenn hingegen ein Registrator gehackt wird (ich weiß ja nicht, wie die ihre Certs aufbewahren), wie es z.B. Comodo passiert ist (ging zwar um Website-Certs, aber technisch ist der Unterschied ja nicht so groß), und dabei der private key des Zertifikat zum Signieren wegkommt, kann ich mich auf die Identitätsprüfung auch nicht mehr verlassen.
    Wenn ich allerdings bei einem public key sehe, dass ich ihn mit einem von meinen Schlüsseln signiert habe, dann weiß ich, dass der key valide ist, weil ich es selbst überprüft habe.


    Zitat von "Peter_Lehmann"


    Nicht umsonst dürfen so genannte Softwaretoken nur ein und in Sonderfällen drei Jahre Gültigkeit besitzen (= großer Unterschied zur "Kryptografie für die Massen").


    Man kann auch bei GPG Verfallsdaten angeben.

  • Zitat von "Shinzon"


    Wieso fast? Rein kryptologisch müssten sie doch ebenbürtig sein, weil selber Algorithmus. Nur bei der Sicherheit der Identifikation hapert's, oder?


    OpenPGP hat keinerlei Sicherheit der Identifikation


    Zitat von "Shinzon"


    Dann vertraue ich aber keiner deiner 50 Beglaubigungen. Mit dem selbst Verifizieren meinte ich wirklich den persönlichen Abgleich der Fingerprints der für mich wichtigen Schlüssel. Ist zwar 'n bisschen aufwendiger, so aufwendig aber nun auch wieder nicht.


    Nimmst Du eine Überprüfung vor, wer das ist?
    Kannst Du für die Identität garantieren?
    Eine Fingerprintprüfung sagt Dir nicht, mit wem Du es zu tun hast.


    Zitat von "Shinzon"


    Wenn hingegen ein Registrator gehackt wird (ich weiß ja nicht, wie die ihre Certs aufbewahren), wie es z.B. Comodo passiert ist (ging zwar um Website-Certs, aber technisch ist der Unterschied ja nicht so groß), und dabei der private key des Zertifikat zum Signieren wegkommt, kann ich mich auf die Identitätsprüfung auch nicht mehr verlassen.


    In dem Fall wird der Key des Trustcenters zurückgezogen, wobei der Fall Comodo natürlich nicht passieren darf.


    Zitat von "Shinzon"


    Man kann auch bei GPG Verfallsdaten angeben.


    Bei X.509 muß das Datum angegeben werden

  • Zitat von "HaasUwe"


    Nimmst Du eine Überprüfung vor, wer das ist?
    Kannst Du für die Identität garantieren?


    Wenn ich die Person kenne, ja. Ansonsten kann ICH beides in beiden Systemen nicht tun.
    Ich muss mich bei (X.509) auf die CA verlassen und bei OpenPGP auf das Web of Trust.


    In dem Zusammenhang: Es müsste doch eigentlich möglich sein, beide Verfahren zu kombinieren, indem die CA ein Schlüsselpaar erzeugt und mit diesem den Kriterien entsprechend geprüfte Schlüssel signiert. Dann hätte man das Web of Trust und die CAs.


    Zitat von "HaasUwe"


    In dem Fall wird der Key des Trustcenters zurückgezogen, wobei der Fall Comodo natürlich nicht passieren darf.


    Und die Identitätssicherheit ist hin, solange man nicht wieder bei der CA war

  • Zitat von "Shinzon"


    Wenn ich die Person kenne, ja. Ansonsten kann ICH beides in beiden Systemen nicht tun.
    Ich muss mich bei (X.509) auf die CA verlassen und bei OpenPGP auf das Web of Trust.


    Wenn Du mir per OpenPGP etwas schickst und ich Dich nicht kenne, wie soll ich dann prüfen, daß Du auch derjenige bist, der Du zu Sein sagst? Eine gesicherte Identitätsprüfung ist bei OpenPGP per se nicht möglich.
    Bei X.509 muß ich weder Dich noch den Aussteller des Zertifikates kennen. Ich muß nur die Gültigkeit prüfen und kann die dazugehörigen Daten einsehen.
    Aus dem Grund werden bei uns in der Firma OpenPGP als Identiätsnachweis nicht akzeptiert (Ist bei den meisten Rechtsgeschäften in Deutschland und den meisten andren EU-Ländern auch nicht zulässig) im Gegensatz zu S/MIME.

  • Hallo,
    die ursprüngliche Frage ist ja geklärt, vielleicht noch etwas zu dem unnötigen Krieg zwischen S/MIME und OpenPGP-Anhängern.
    S/MIME hat den Vorteil, daß man einer zentralen Zertifizierungsstelle vertrauen kann.
    Und es hat den Nachteil, daß man einer zentralen Zertifizierungsstelle vertrauen muß - was schon mitunter schiefgegangen ist.
    OpenPGP hat den Vorteil, daß man keine zentrale Zertifizierungsstelle braucht, stattdessen gibt es das Web of Trust. Wie praktikabel das ist, sei dahingestellt. Der normale Anwendungsfall liegt im Privatbereich, bei der Kommunikation zwischen zwei oder wenigen Partnern, die sich kennen, ihre Schlüssel ausgetauscht, geprüft und beglaubigt haben. Selbstverständlich wäre das im geschäftlichen Umfeld genauso möglich.
    Daß leicht Fehler gemacht werden können, wenn man sich nicht mit der Materie befaßt (ich lade mir mal eben den öffentlichen Schlüssel von Bill.Gates<at>microschrott.com vom Server runter, der wird schon echt sein...), will ich gar nicht bestreiten.
    Gruß, muzel

  • Wenn ich das gerade richtig mitbekommen habe, dann steht im X.509-Cert auch der Wohnort drin. Was mache ich denn, wenn ich umziehe? Kann ich den einfach ändern und neu auf einen Server hochladen, um Verfügbarkeit zu garantieren? Oder sind diese Daten mitsigniert, sodass ich neu zur CA muss, um mir das geänderte Cert neu signieren zu lassen?


    Kann ich X.509-Certs wie auch in OpenPGP selbst mit meinem Cert signieren, um (mir) zu zeigen, dass ich dem Schlüssel vertrauen kann?
    Das ist nämlich das, was mich an X.509 ein bisschen stört, dass ich nämlich alles über TC verifizieren muss.


    EDIT: Kann ich X.509 eigentlich auch zum Signieren von Dateien verwenden oder gibt es da keine passende Software?

  • Hallo Shinzon,


    Zitat von "Shinzon"

    Wenn ich das gerade richtig mitbekommen habe, dann steht im X.509-Cert auch der Wohnort drin.


    Hier steht, was alles Inhalt eines X.509-Zertifikates ist: X . 509 – Wikipedia



    Zitat

    Was mache ich denn, wenn ich umziehe?


    Es ist der Wohnort zum Zeitpunkt der Antragstellung eingetragen. Nachweisbar mindestens 30 Jahre über die Gültigkeitsdauer hinaus.
    Es gibt keine Pflicht, jedes mal ein neues Z. zu beantragen.
    Selbstverständlich ist der gesamte Inhalt des Zertifikates von der ausstellenden CA signiert. Wäre ja auch schlimm, wenn das nicht so wäre.


    Zitat

    Kann ich X.509-Certs wie auch in OpenPGP selbst mit meinem Cert signieren, um (mir) zu zeigen, dass ich dem Schlüssel vertrauen kann?


    Welchen Sinn soll es machen, ein von einem vertrauenswürdigen TrustCenter signiertes Zertifikat noch einmal durch ein nicht vertrauenswürdiges zu signieren? Theoretisch ist es aber sehr wohl möglich. Nur du wirst der einzige sein, der so etwas "haben muss".


    Zitat

    Das ist nämlich das, was mich an X.509 ein bisschen stört, dass ich nämlich alles über TC verifizieren muss.


    Es ist das, was mir sagt, dass du das Problem wohl noch immer nicht richtig verstanden hast.


    Zitat

    EDIT: Kann ich X.509 eigentlich auch zum Signieren von Dateien verwenden oder gibt es da keine passende Software?


    Genau das ist es, was die im SigG beschriebene elektronische Signatur ausmacht. Eben das elektronische Unterschreiben von Dokumenten. Die dazu mögliche Software beginnt beim AdobeReader (wenn ein Formular im Adobe-Designer entprechend vorbereitet ist) geht über Open- bzw. Libre-Office hin bis zu echten professionellen Programmen, die auch entsprechend kosten. (Die Möglichkeit der Mailverschlüsselung ist ein angenehmer und nützlicher Nebeneffekt.)


    Mit den bei uns noch immer üblichen "Freundlichen Grüßen"!
    Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Zitat von "Peter_Lehmann"


    Es ist das, was mir sagt, dass du das Problem wohl noch immer nicht richtig verstanden hast.


    Es geht mir hierbei nicht primär um eine Verifizierung an sich, sondern eher um eine Art Gedankenstütze, welchen Schlüssel ich persönlich überprüft habe und welchen nicht. Bei OpenPGP mache ich das über das z. B. Signieren mit einem Key.
    Ab einer gewissen Menge an Schlüsseln/Zertifikaten gehe ich nämlich nicht unbedingt davon aus, dass ich das im Kopf habe. Und ich ziehe es vor, mich nicht vollständig auf ein Trustcenter verlassen zu müssen. Geldstrafen und Schlüsselsicherung hin oder her.


    [qoute="Peter_Lehmann"]
    Es ist der Wohnort zum Zeitpunkt der Antragstellung eingetragen. Nachweisbar mindestens 30 Jahre über die Gültigkeitsdauer hinaus.
    Es gibt keine Pflicht, jedes mal ein neues Z. zu beantragen.
    [/quote]
    Ist das dann nicht ein Identitätsnachweisproblem? Wenn ich das jetzt richtig sehe, sind Name/InhaberID und Mailadresse die einzigen (relativ) unveränderlichen Komponenten seitens des Zertifikatbesitzers (abgesehen von den Schlüsselspezifischen Dingen wie Algorithmus etc.).
    Das heißt (wenn mir da jetzt kein Fehler unterlaufen ist), es kann sein, dass ich ein Cert besitze, in dem nur noch mein Name und meine Mailadresse übereinstimmen und der Rest ist veraltet. Dennoch wird dies als Identitätsnachweis akzeptiert? Oder wird dann gesagt: "Bitte weisen Sie nach, dass sie dann und dann da und da gewohnt haben"?


    Ansonsten Besten Dank für die Infos.


    Grüße
    Shinzon

  • X.509-Zertifikate haben ein Verfallsdatum (maximal 3 Jahre)
    Für ältere Mails müssen alte Zertifikate jedoch noch prüfbar sein.