Trust Signatures bei GPG

OpenPGP und GPG kennen das Konzept der Trust Signatures mit Level 0 bis n. Mit einer solchen Signatur wird neben dem Eigner eines Public Keys auch dessen Vertrauenswürdigkeit als "Introducer" beschrieben:

Damit lassen sich recht einfach CA-Hierarchien aufbauen und nutzen, wie sie beim OpenPGP-Konkurrenten S/MIME üblich sind. Hier eine Beispiel-Hierarchie mit einer Root-CA, 2 Organisations-CAs und 2 Nutzern:

CA-Hierarchie

Die Root-CA erstellt Trust Signatures vom Level 1 für die beiden Org-CAs, die ihrerseits normale Signaturen für die Benutzer Anton und Berta generieren. Um von der Vertrauenskette zu profitieren, muss jeder Benutzer den Public Key der Root-CA importieren und mit einer Trust Signature vom Level 2 signieren.

Damit gilt die Root-CA als Meta Introducer und die Org-CAs werden zu vertrauenswürdigen Introducern. Die beiden Nutzer Anton und Berta betrachten daher den Public Key des jeweils anderen Nutzers als gültig, ohne für diesen oder seine Org-CA eine Signatur erstellen zu müssen.

Für eigene Experimente unter einem Linux-Nutzerkennzeichen lassen sich die unterschiedlichen Partner gut verwalten, indem man pro Partner ein eigenes GPG-Verzeichnis nutzt, z.B.

  .gnupg_anton
  .gnupg_berta
  .gnupg_org1ca
  .gnupg_org2ca
  .gnupg_rootca

im Homeverzeichnis. Um jeweils darauf zuzugreifen, stellt man sich am besten die Umgebungsvariable GNUPGHOME geeignet ein:

  cd ~/.gnupg_rootca
  export GNUPGHOME=$PWD

Nehmen wir an, dass der öffentliche GPG-Schlüsselring von Nutzer Anton bereits folgendes aufweist:

Das sieht dann in etwa so aus:
  $> gpg --list-sigs
  /home/user/.gnupg_anton/pubring.gpg
  -----------------------------------------------------------
  pub   1024D/C015EBFC 2009-01-14 [verfällt: 2012-01-14]
  uid                  anton <anton@dummy.org>
  sig 3        C015EBFC 2009-01-14  anton <anton@dummy.org>
  sig          A2610CDB 2011-01-17  org1ca <org1ca@dummy.org>
  sub   1024g/39A2F161 2009-01-14 [verfällt: 2012-01-14]
  sig          C015EBFC 2009-01-14  anton <anton@dummy.org>

  pub   1024D/6EDF1B3B 2009-01-14 [verfällt: 2012-01-14]
  uid                  rootca <rootca@dummy.org>
  sig 3        6EDF1B3B 2009-01-14  rootca <rootca@dummy.org>
  sub   1024g/FE6BE5C5 2009-01-14 [verfällt: 2012-01-14]
  sig          6EDF1B3B 2009-01-14  rootca <rootca@dummy.org>

  pub   1024D/A2610CDB 2009-01-14 [verfällt: 2012-01-14]
  sig    R     A2610CDB 2009-01-26  org1ca <org1ca@dummy.org>
  uid                  org1ca <org1ca@dummy.org>
  sig 3        A2610CDB 2009-01-14  org1ca <org1ca@dummy.org>
  sig        1 6EDF1B3B 2011-01-17  rootca <rootca@dummy.org>
  sub   1024g/7EDB69BF 2009-01-14 [verfällt: 2012-01-14]
  sig          A2610CDB 2009-01-14  org1ca <org1ca@dummy.org>

  pub   1024D/D5FE5018 2009-01-14 [verfällt: 2012-01-14]
  uid                  org2ca <org2ca@dummy.org>
  sig 3        D5FE5018 2009-01-14  org2ca <org2ca@dummy.org>
  sig        1 6EDF1B3B 2011-01-17  rootca <rootca@dummy.org>
  sub   1024g/7693DBC6 2009-01-14 [verfällt: 2012-01-14]
  sig          D5FE5018 2009-01-14  org2ca <org2ca@dummy.org>

  pub   1024D/086641BD 2009-01-14 [verfällt: 2012-01-14]
  uid                  berta <berta@dummy.org>
  sig 3        086641BD 2009-01-14  berta <berta@dummy.org>
  sig          D5FE5018 2011-01-17  org2ca <org2ca@dummy.org>
  sub   1024g/AD7A9613 2009-01-14 [verfällt: 2012-01-14]
  sig          086641BD 2009-01-14  berta <berta@dummy.org>

Die jeweils blau gekennzeichneten Zahlen geben das Level der Trust Signature an. In der obigen Konstellation betrachtet Anton den Public Key von Berta als nicht vertrauenswürdig, die Gültigkeit ist unbekannt:

  $> gpg --list-sigs --with-colons
  ...
  pub:-:1024:17:98D69F68086641BD:2009-01-14:2012-01-14::-:berta <berta@dummy.org>::scESC:
  sig:::17:98D69F68086641BD:2009-01-14::::berta <berta@dummy.org>:13x:
  sig:::17:C204D31FD5FE5018:2011-01-17::::org2ca <org2ca@dummy.org>:10x:
  ...

  $> gpg --edit-key berta
  gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.


  pub  1024D/086641BD  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: SC
                       Vertrauen: unbekannt     Gültigkeit: unbekannt
  sub  1024g/AD7A9613  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: E
  [  unbek.] (1). berta <berta@dummy.org>

  gpg>                                                         

Mit dem Unterkommando tsign von --edit-key kann Anton eine Trust Signature für den Public Key der Root-CA erstellen:

  $> gpg --edit-key rootca
  gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.


  pub  1024D/6EDF1B3B  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: SC
                       Vertrauen: unbekannt     Gültigkeit: unbekannt
  sub  1024g/FE6BE5C5  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: E
  [  unbek.] (1). rootca <rootca@dummy.org>

  gpg> 1

  pub  1024D/6EDF1B3B  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: SC
                       Vertrauen: unbekannt     Gültigkeit: unbekannt
  sub  1024g/FE6BE5C5  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: E
  [  unbek.] (1)* rootca <rootca@dummy.org>

  gpg> tsign

  pub  1024D/6EDF1B3B  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: SC
                       Vertrauen: unbekannt     Gültigkeit: unbekannt
   Haupt-Fingerabdruck  = 750E 3045 DAE2 9CFA 815D  CDF7 1C21 5A54 6EDF 1B3B

       rootca <rootca@dummy.org>

  Dieser Schlüssel wird 2012-01-14 verfallen.
  Bitte entscheiden Sie, in wieweit Sie diesem User zutrauen,
  Schlüssel anderer User korrekt zu prüfen (durch Vergleich
  mit Lichtbildausweisen, Vergleich der Fingerabdrücke aus
  unterschiedlichen Quellen ...)?


   1 = Ich vertraue ihm marginal
   2 = Ich vertraue ihm vollständig

  Ihre Auswahl? 2

  Geben Sie bitte die Tiefe dieser "Trust"-Unterschrift ein.
  Eine Tiefe größer 1 erlaubt dem zu unterschreibenden Schlüssel
  Trust-Signatures für Sie zu machen.

  Ihre Auswahl? 2

  Geben Sie bitte eine Domain ein, um die Unterschrift einzuschränken,
  oder nur die Eingabetaste für keine Domain

  Ihre Auswahl?

  Sind Sie wirklich sicher, daß Sie vorstehenden Schlüssel mit Ihrem
  Schlüssel "anton <anton@dummy.org>" (C015EBFC) beglaubigen wollen

  Wirklich unterschreiben? (j/N) j

  Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
  Benutzer: "anton <anton@dummy.org>"
  1024-Bit DSA Schlüssel, ID C015EBFC, erzeugt 2009-01-14

  Geben Sie die Passphrase ein:

  gpg> save

Nun sieht der Schlüsselring so aus:

  $> gpg --list-sigs
  /home/user/.gnupg_anton/pubring.gpg
  -----------------------------------------------------------
  pub   1024D/C015EBFC 2009-01-14 [verfällt: 2012-01-14]
  uid                  anton <anton@dummy.org>
  sig 3        C015EBFC 2009-01-14  anton <anton@dummy.org>
  sig          A2610CDB 2011-01-17  org1ca <org1ca@dummy.org>
  sub   1024g/39A2F161 2009-01-14 [verfällt: 2012-01-14]
  sig          C015EBFC 2009-01-14  anton <anton@dummy.org>

  pub   1024D/6EDF1B3B 2009-01-14 [verfällt: 2012-01-14]
  uid                  rootca <rootca@dummy.org>
  sig 3        6EDF1B3B 2009-01-14  rootca <rootca@dummy.org>
  sig        2 C015EBFC 2011-01-25  anton <anton@dummy.org>
  sub   1024g/FE6BE5C5 2009-01-14 [verfällt: 2012-01-14]
  sig          6EDF1B3B 2009-01-14  rootca <rootca@dummy.org>

  pub   1024D/A2610CDB 2009-01-14 [verfällt: 2012-01-14]
  sig    R     A2610CDB 2009-01-26  org1ca <org1ca@dummy.org>
  uid                  org1ca <org1ca@dummy.org>
  sig 3        A2610CDB 2009-01-14  org1ca <org1ca@dummy.org>
  sig        1 6EDF1B3B 2011-01-17  rootca <rootca@dummy.org>
  sub   1024g/7EDB69BF 2009-01-14 [verfällt: 2012-01-14]
  sig          A2610CDB 2009-01-14  org1ca <org1ca@dummy.org>

  pub   1024D/D5FE5018 2009-01-14 [verfällt: 2012-01-14]
  uid                  org2ca <org2ca@dummy.org>
  sig 3        D5FE5018 2009-01-14  org2ca <org2ca@dummy.org>
  sig        1 6EDF1B3B 2011-01-17  rootca <rootca@dummy.org>
  sub   1024g/7693DBC6 2009-01-14 [verfällt: 2012-01-14]
  sig          D5FE5018 2009-01-14  org2ca <org2ca@dummy.org>

  pub   1024D/086641BD 2009-01-14 [verfällt: 2012-01-14]
  uid                  berta <berta@dummy.org>
  sig 3        086641BD 2009-01-14  berta <berta@dummy.org>
  sig          D5FE5018 2011-01-17  org2ca <org2ca@dummy.org>
  sub   1024g/AD7A9613 2009-01-14 [verfällt: 2012-01-14]
  sig          086641BD 2009-01-14  berta <berta@dummy.org>

Bedingt durch die Trust Signature vom Level 2 (blau gekennzeichnet) ist der Public Key von Berta jetzt gültig:

  $> gpg --edit-key berta
  gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.


  pub  1024D/086641BD  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: SC
                       Vertrauen: unbekannt     Gültigkeit: vollständig
  sub  1024g/AD7A9613  erzeugt: 2009-01-14  verfällt: 2012-01-14  Aufruf: E
  [ vollst.] (1). berta <berta@dummy.org>

  gpg>                                                         

  $> gpg --list-sigs --with-colons
  ...
  pub:f:1024:17:98D69F68086641BD:2009-01-14:2012-01-14::-:berta <berta@dummy.org>::scESC:
  sig:::17:98D69F68086641BD:2009-01-14::::berta <berta@dummy.org>:13x:
  sig:::17:C204D31FD5FE5018:2011-01-17::::org2ca <org2ca@dummy.org>:10x:
  ...

Holger Trapp

letzte Modifikation: 9.1.2012