GPGKeys

Aus C3D2
Version vom 24. Januar 2009, 18:38 Uhr von KonradRosenbaum (Diskussion | Beiträge) (initiale Version, es geht noch weiter...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Dieser Artikel versucht(!!) zu erklären wie ein GPG/PGP Schlüssel so funktioniert. Wer die Begriffe verwirrend findet sollte erst einmal auf Wikipedia zum Thema Asymmetrische Kryptographie lesen. Zu GPG selbst gibt es gute Dokumentation - die bitte auch lesen falls der Artikel verwirrend klingt.

Standards

PGP ist bei der IETF standardisiert.

  • RFC1991 - das obsolete PGP 2.x Format
  • RFC2440 - das von den meisten eingesetzte Format von 1998
  • RFC4880 - der aktuelle RFC von 2007
  • es wird im Moment (Stand Anfang 2009) gesammelt was alles im nächsten RFC angegangen werden soll

Web Of Trust

Hinter dem Web Of Trust steckt die Idee dass Nutzer sich gegenseitig zertifizieren können. Dazu werden Signaturen folgendermaßen interpretiert:

  • der Signierer bestätigt die Identität des Schlüsselinhabers
  • der Signierer delegiert einen kleinen Teil seiner eigenen Signier-Kompetenz auf den Schlüsselinhaber

Das bedeutet: wenn ich Nutzer Alice als voll vertrauenswürdig einstufe und er Nutzer Bob, Charly, und Dave signiert hat, dann bewerte ich eine Signatur von Dave als 1/3 so gut wie eine von Alice. Sollte ein Key Signaturen von Bob, Charly und Dave haben ist das für mich gleichbedeutet mit einer Signatur von Alice.

Vergleich X.509

X.509 (z.B. Basis von SSL) benutzt einen hierarchischen Ansatz. D.h. eine kleine Gruppe von Root-CAs (CA=Certificate Authority) signiert Nutzerzertifikate (a'ka public keys). Eine Root-CA kann das Recht zum Signieren an eine Sub-CA weiterreichen, wodurch sich Ketten von Zertifikaten zwischen Nutzer und Root-CA bilden können. Es ist jedoch nicht möglich dass ein Nutzer einen anderen Nutzer zertifiziert.

Meist haben Root-CAs Auflagen, wie exakt sie Identitäten festellen müssen und wie sie mit Zertifikaten umzugehen haben. Das bedeutet nicht dass sie es korrekt machen oder sich sonderlich kompetent dabei anstellen...

Kritik von Web Of Trust

Die größte Kritik am Web Of Trust kommt daher dass nicht zwischen Identitätsbestätigung und Vertrauen unterschieden wird. D.h. ich kann nicht sagen "Ich kann bestätigen dass Bobs Key zu Bob gehört aber ich vertraue dem Knaben nicht!".

Per Standard kann man diese feinen Unterschiede durchaus speichern, aber in der Praxis wird dies dem Nutzer von PGP/GPG nicht angeboten. Einziger Workaround ist eine maximale Vertrauenstiefe von 0 und explizites Eintragen der vertrauenswürdigen Keys in die GPG Konfiguration.

Key Aufbau

Public und Secret Key unterscheiden sich dahingehend, dass der Secret-Key nur das geheime Schlüsslematerial (aus dem sich das öffentliche berechnen läßt) und die UIDs enthält. Der Public Key enthält das öffentliche Schlüsselmaterial, UIDs und beliebig viele Signaturen.

Der Schlüssel ist als Hierarchie gespeichert:

  • Main-Key
    • UID 1
      • 1-n SelfSigs
      • beliebige UID-Sigs
    • UID 2
      • 1-n SelfSigs
      • beliebige UID-Sigs
    • ... UID n ...
    • Sub-Key 1
      • SubKeySig
    • Sub-Key 2
      • SubKeySig
    • ...