Schlüsselhierarchien mit OpenPGP

20.09.2016 | Allgemein

Im vorliegenden Beitrag wird beschrieben, welchen Nutzen Schlüsselhierarchien im Umfeld von OpenPGP bietet.

Warum Schlüssel signieren/Vertrauen?

Jeder kann einen Schlüssel mit beliebigen Namen erzeugen und im Internet zur Verfügung stellen. Ein Schlüssel muss daher nicht zwingend von der darin beschriebenen Person stammen. Die Überprüfung, ob der Schlüssel auch wirklich zur bezeichneten Person gehört, ist die Voraussetzung für eine sichere Kommunikation.

Nur wer einen öffentlichen Schlüssel überprüft hat, bevor er ihn verwendet, kann sich sicher sein, dass er auch wirklich der angegebenen Person schreibt und nicht etwa einem Angreifer.

Damit nicht jeder einen zu verwendenden Schlüssel sehr genau prüfen muss (bspw. durch den Abgleich des Personalausweises mit der Person und der Abfrage des Fingerprints), gibt es das Web of Trust. Mit Hilfe dieses Konzepts schätzt man die Echtheit eines Schlüssels anhand der bereits vorhandenen Unterschriften (Überprüfungen) ein, die von anderen Personen vorgenommen wurden.

Signieren

Ist ein technischer Vorgang und stellt eine Unterschrift dar, mit der bestätigt wird dass der Schlüssel zur angegebenen Person gehört. Die Überprüfung/Sicherstellung kann beispielsweise durch ein persönliches Treffen mit Vergleich der eindeutigen ID der Schlüssel (dem Fingerprint) und der Personalausweise der beteiligten Personen stattfinden.

Die Unterschrift wird, sichtbar für die gesamt Öffentlichkeit, an den unterschriebenen Schlüssel angehängt. Damit signalisiert die unterschreibende Person, dass Sie die Echtheit des Schlüssels überprüft hat und der Schlüssel wirklich zur darin angegeben Person gehört.

Vertrauen

Ist eine für sich selbst getroffene Feststellung, wie sehr man dem Schlüsselbesitzer einen korrekten und sicheren Umgang mit Schlüsseln zutraut. Mit festlegen des Vertrauens in eine Person teilt man GnuPG mit, wie es mit Schlüsseln anderer Personen umgehen soll, die aber von dieser Person unterschrieben wurden.

Gültigkeit

Ein Schlüssel kann nur dann verwendet werden, wenn er zuvor für gültig befunden wurde. Das passiert direkt durch eine Signatur des Schlüssels (= Identitätsprüfung des Schlüsselinhabers) oder indirekt, indem der Schlüssel von einer oder mehreren Personen unterschrieben wurde, denen man teilweise oder ganz vertraut. (= Web of Trust)

Web of Trust

Das „Web of Trust“ ist ein dezentrales Konzept, bei dem jeder die ihm zukommenden Schlüssel auf Echtheit überprüft und durch eine Signatur bestätigt. Durch die zusätzliche und für sich selbst getroffene Angabe des Vertrauens in den Schlüsselinhaber kann man bei Erhalt eines noch unbekannten Schlüssels ableiten wie wahrscheinlich es sich dabei um einen echten Schlüssel handelt.

Beispiel:

Sie erhalten einen neuen Schlüssel von einer bestimmten Person. Um sicherzugehen, dass der Schlüssel wirklich von dieser Person stammt, müssten Sie diese (per Telefon, persönlich, …) kontaktieren und einen Abgleich des Fingerprints durchführen.

Wurde der Schlüssel jedoch von einer Person unterschrieben, die Sie kennen und der Sie ein hohes Maß an Sorgfältigkeit bei der Überprüfung von Schlüsseln zugestehen, kann GnuPG diese Informationen zum Anlass nehmen, diesen Schlüssel ebenfalls als gültig zu betrachten, obwohl Sie selbst den Schlüssel noch nicht überprüft und unterschrieben haben.

Trust Signature

Eine „Trust Signature“ ist die Verbindung einer Signatur mit der Angabe des Vertrauens in den Schlüsselinhaber. Im Unterschied zur normalen Signatur wird hier öffentlich vermerkt, wie sehr man der Person den Umgang mit Schlüsseln zutraut. Auf diese Art lässt sich eine hierarchische Struktur von Schlüsseln (Schlüsselhierarchien) aufbauen.

Trust Level

Der „Trust Level“ gehört zur „Trust Signature“ und ist eine Einschätzung, wie weit man dem Schlüsselinhaber vertraut.

Eine Signatur mit Trust Level von 0 bedeutet, dass nur die Echtheit eine Schlüssels geprüft wurde. Dieser Level sagt nichts über die Vertrauenswürdigkeit des Schlüsselinhabers bei dessen Echtheitsprüfungen von Schlüsseln aus.

Eine Signatur mit Trust Level von 1 bedeutet, dass die Echtheit des Schlüssels überprüft wurde und dem Schlüsselinhaber vertraut werden kann, dass dieser korrekt mit Schlüsseln und deren Signaturen umgeht.

Mit einer Signatur mit Trust Level von 2 erteilt man – zusätzlich zu den von Level 1 bekannten Rechten – dem Schlüsselinhaber die Möglichkeit, das Signieren von Schlüsseln an eine andere (und nur diese) Person zu delegieren. Diese verfügt damit jedoch nicht über die Möglichkeit dieses Recht an weitere Personen zu übertragen. Dazu ist ein Trust Level von 3 oder höher notwendig. Mit jeder weiteren Erhöhung des Levels bekommen mehr Personen die Möglichkeit Signaturen zu delegieren.

Die maximale Tiefe (des Delegierens) liegt bei 99 Ebenen.

In der Abbildung sind mögliche Schlüsselhierarchien mit vererbter Schlüsselgültigkeit zu sehen. Durch Trust Signaturen werden Schlüssel ermächtigt andere Schlüssel gültig zu machen.

In der Abbildung ist eine mögliche Schlüsselhierarchie mit vererbter Schlüsselgültigkeit zu sehen. Durch Trust Signaturen werden Schlüssel ermächtigt andere Schlüssel gültig zu machen.

Zentrale Zertifikatsstelle (Certificate Authority, CA)

Im Gegensatz zum Web of Trust ist eine Certificate Authority die zentrale Stelle, welche den Aussteller und seinen Schlüssel überprüft und dann signiert.

Vorteile/Nachteile von CAs

Der Vorteil einer CA im Gegensatz zum WoT liegt darin, dass man nur noch einem einzigen Schlüssel das Vertrauen aussprechen muss, so dass jeder Schlüssel der von dieser CA signiert wird, gültig und damit verwendbar ist.

Je mehr Schlüssel im Umlauf sind, desto mehr Aufwand muss beim WoT betrieben werden, da jeder Teilnehmer den Schlüssel aller anderen signieren müsste. Ab einer bestimmten Größe des Netzes ist dieses Vorgehen nicht mehr praktikabel. Der Aufwand alle Schlüssel zu prüfen und zu signieren steigt exponentiell an und sorgt dafür, dass Anwender Wege suchen werden die Verschlüsselung zu umgehen.

Als Nachteil einer CA kann man den Fall sehen, dass der Schlüssel einer CA entwendet und vom rechtmäßigen Schlüsselinhaber daher zurückgezogen wird. Damit werden alle durch diesen zurückgezogenen CA Schlüssel unterschriebenen Schlüssel für ungültig markiert und müssen mit einem neu zu erstellenden CA Schlüssel signiert werden.

Verbesserung Stufe 1: Certificate Authority pro Unternehmen

Innerhalb von Unternehmen sollte daher auf Art und Weise einer CA vorgegangen werden. Die firmeninterne CA unterschreibt den Schlüssel jedes Mitarbeiters mit dem Unternehmensschlüssel.

Der öffentliche Unternehmensschlüssel sollte anderen Unternehmen zur Verfügung gestellt werden, die diesen unterschreiben und an ihre eigenen Mitarbeiter verteilen. Die Mitarbeiter müssen danach nur noch das Vertrauen in den Unternehmensschlüssel setzen und können anschließend mit den Mitarbeitern kommunizieren.

Dieser Fall benötigt noch keine Trust Signatures und lässt sich über die normalen Signaturen und das (nicht öffentlich) gesetzte Vertrauen in den signierten Unternehmensschlüssel abbilden. Bei dieser Vorgehensweise kommt was Web of Trust zum Einsatz.

Genereller Nachteil bei dieser Methode: Unternehmen müssen den Schlüssel von jedem anderen Unternehmen prüfen und signieren, bevor deren Mitarbeiter miteinander kommunizieren können.

openpgp-ca-2

Verbesserung Stufe 2: Zentrale Certificate Authority

Um den Aufwand weiter zu reduzieren, ist eine von allen Beteiligten akzeptierte CA sinnvoll, die den Unternehmen das notwendige „Cross-Signing“ abnimmt.

Somit muss ein Unternehmen seinen Schlüssel nur noch von dieser einen CA prüfen und unterschreiben lassen, wodurch dieser für alle anderen an diesem Verfahren teilnehmenden Unternehmen und deren Mitarbeiter gültig und verwendbar wird. Auf diese Weise entstehen Schlüsselhierarchien zwischen Unternehmen und Organisationen.

openpgp-ca-3

Um eine solche einfache Struktur aufzubauen, signieren sich die CA und die Unternehmen ihre Schlüssel mit einem Trust Level von 1.

Den Mitarbeitern wird der Schlüssel der CA zur Verfügung gestellt, die diesen mit einem Trust Level von 2 signieren müssen. Damit vertrauen sie dem Schlüssel der CA und den anderen Unternehmen, dass diese Instanzen korrekt mit Signaturen umgehen, wodurch der Schlüssel des Mitarbeiters im anderen Unternehmen für sie gültig wird.

Um diese Struktur wartungsarm zu halten, ist es sinnvoll dass die Mitarbeiterschlüssel Abteilungs- und Niederlassungsübergreifend nur von einem einzigen Unternehmensschlüssel signiert werden.

Nur so wird bei der Festlegung auf das Trust Level 2 die interne Hierarchie der Unternehmen ausgeklammert, die sich im Laufe der Zeit auch ändern kann. Falls sich die Hierarchie eines Unternehmens ändern sollte, müsste die aktuell vorhandene Signatur widerrufen und eine neue Signatur mit einem angepassten Trust Level erstellt werden, um den aktuellen Stand wiederzugeben.

 

 

Kommentare

Ihr Kommentar

* Die markierten Felder sind Pflichtfelder. Bitte ausfüllen.

Kommentar *

Bitte beachten Sie vor dem Eintragen die Datenschutzerklärung). .