31.01.2014
Die Begriffe öffentlicher Schlüssel und Zertifikat werden häufig synonym verwendet, wobei öffentlicher Schlüssel in der OpenPGP-Welt gebräuchlicher ist, in der X.509-Welt (S/MIME, SSL/TLS) dagegen Zertifikat.
Streng genommen bezeichnen beide Begriffe aber nicht dasselbe. Der Schlüssel ist das reine Schlüsselmaterial, also eine lange (Zufalls-)Zahl, die keinerlei Bezug zu irgendwas hat (außer zu dem zugehörigen privaten Schlüssel natürlich). Ein Zertifikat ist die Verbindung des öffentlichen Schlüssels (bzw. der öffentlichen Schlüssel) mit Metadaten, die sowohl die Schlüssel selber (z.B. Erzeugungs- und Ablaufdatum) als auch den (oder die) Besitzer des Zertifikats (v.a. Name und E-Mail) betreffen.
Die Ausgabe von gpg --edit-key 0x1a571df5 quit
zeigt die wichtigsten Daten eines Zertifikats:
pub 4096R/0x1A571DF5 erzeugt: 2012-11-04 verfällt: 2014-11-05 Aufruf: SCE Vertrauen: uneingeschränkt Gültigkeit: uneingeschränkt sub 2048R/0x3F96AD8E erzeugt: 2012-11-04 verfällt: 2014-11-05 Aufruf: S sub 2048R/0x81F06169 erzeugt: 2012-11-04 verfällt: 2014-11-05 Aufruf: E sub 2048R/0x34288BDC erzeugt: 2012-11-04 verfällt: 2018-11-04 Aufruf: A [ uneing.] (1). Hauke Laging (Standardadresse) <hauke@laging.de>
Man sieht:
den Hauptschlüssel mit Typ, Länge, Erzeugungsdatum, Ablaufdatum und Fähigkeiten (zulässigen Operationen)
(Vertrauen und Gültigkeit sind zwar wichtige Eigenschaften des Zertifikats, aber nicht Teil des Zertifikats, sondern werden außerhalb berechnet bzw. festgelegt)
die Unterschlüssel mit Typ, Länge, Erzeugungsdatum, Ablaufdatum und Fähigkeiten (zulässigen Operationen)
die User-ID (mit Gültigkeit; auch die ist nicht Teil des Zertifikats), die hier der Norm entsprechend aufgebaut ist: Name, Kommentar, E-Mail
Ausgabe | Bedeutung |
---|---|
C | Zertifizieren (Signaturen für Schlüssel(komponenten)) |
S | Signieren (Daten) |
E | Verschlüssen / Entschlüsseln |
A | Authentifizieren (SSH) |
Weitere Metadaten bekommt man mit gpg --list-sigs 0x1a571df5
:
pub 4096R/0x1A571DF5 2012-11-04 [verfällt: 2014-11-05] sig RP 0x1A571DF5 2013-11-05 niemals Hauke Laging (Standardadresse) <hauke@laging.de> Beglaubigungsrichtlinie: http://www.hauke-laging.de/openpgp/policy__0x1a571df5.html uid [ uneing.] Hauke Laging (Standardadresse) <hauke@laging.de> sig 3 PN 0x1A571DF5 2013-11-05 niemals Hauke Laging (Standardadresse) <hauke@laging.de> Beglaubigungsrichtlinie: http://www.hauke-laging.de/openpgp/policy__0x1a571df5.html Beglaubigungs-"Notation": keysecurity_de@hauke-laging.de=Unterschlüssel: normale Sicherheit. Hauptschlüssel: sehr hohe Sicherheit. Bevorzugter Schlüsselserver:http://www.hauke-laging.de/openpgp/0x1a571df5.asc sig 3 PN 0x73598E51 2013-11-05 niemals Hauke Laging (Hochsicherheitsschlüssel, siehe policy URL; nicht für E-Mail) Beglaubigungsrichtlinie: http://www.hauke-laging.de/openpgp/0x73598E51__policy.1.html sig 3 0xDAFFB000 2013-10-01 niemals ct magazine CERTIFICATE <pgpCA@ct.heise.de> sub 2048R/0x3F96AD8E 2012-11-04 [verfällt: 2014-11-05] sig 0x1A571DF5 2013-11-05 niemals Hauke Laging (Standardadresse) <hauke@laging.de> sub 2048R/0x81F06169 2012-11-04 [verfällt: 2014-11-05] sig 0x1A571DF5 2013-11-05 niemals Hauke Laging (Standardadresse) <hauke@laging.de> sub 2048R/0x34288BDC 2012-11-04 [verfällt: 2018-11-04] sig 0x1A571DF5 2013-11-05 niemals Hauke Laging (Standardadresse) <hauke@laging.de>
Die Signaturen beziehen sich jeweils auf den ersten eigenständigen (also nicht eingerückten) Eintrag vor ihnen, der nicht auch eine Signatur ist.
Hier sieht man nach dem Hauptschlüssel zunächst die Signatur für den designated revoker. Diese Signatur berechtigt einen anderen Schlüssel, diesen zu widerrufen (was ein Schlüssel normalerweise nur selber tun kann). Diese Signatur hat (ebenso wie die folgenden) eine policy URL, also die URL eines Dokuments, das Informationen über den Umgang mit dem Schlüssel enthält.
Die User-ID (uid) wird erst dadurch gültig, dass sie vom eigenen Schlüssel unterschrieben wird. Oftmals hat sie auch Signaturen von anderen Schlüsseln, so auch hier. Die 3
nach dem sig
bedeutet, dass der Schlüssel und die User-ID gründlich geprüft wurden (was immer das im Einzelfall bedeuten mag... siehe die policy URL, so vorhanden); das P zeigt eine policy URL an (weil die URL selber in der GnuPG-Standardkonfiguration nicht angezeigt wird); das N zeigt (mindestens) eine signature notation an (eine leider kaum genutzte, insbesondere kaum standardisierte Möglichkeit, zusätzliche Informationen in einer Signatur unterzubringen). Außerdem ist noch die URL des bevorzugten Schlüsselservers
zu sehen (hier einfach die URL einer Datei auf einem Webserver), damit die Nutzer des Zertifikats wissen, wo sie neuste Version des Zertifikats verlässlich finden können.
Genau wie die User-ID werden auch die Unterschlüssel (sub) durch eine Signatur des Hauptschlüssels an diesen gebunden und dadurch zu einem gültigen Bestandteil des Zertifikats. Diese Signatur enthält die Information, wofür der jeweilige (Unter-)Schlüssel verwendet werden darf.
Ein Zertifikat wird (typischerweise) im Lauf der Zeit immer größer. Neuere Signaturen für dieselbe Komponente überschreiben ältere.