GnuPG: Grundlagen

Aus Wikibooks

Unter Verschlüsselung versteht man ein Verfahren, das eine Nachricht mit einem Schlüssel in einen unlesbaren Text verwandelt, der nur mit dem Schlüssel selbst wieder in den lesbaren Text zurückgewandelt werden kann.

Verschlüsselungsverfahren[Bearbeiten]

Oft ist von „symmetrischer“ oder „asymmetrischer“ Verschlüsselung die Rede. Doch was ist das?

Symmetrische Verschlüsselung[Bearbeiten]

Ein Verschlüsselungsverfahren ist symmetrisch, wenn es zur Ver- und Entschlüsselung ein und denselben Schlüssel verwendet. Das Problem dabei ist, dass der Empfänger diesen Schlüssel selbst erst einmal erhalten muss, um die verschlüsselte Nachricht entschlüsseln zu können. Der Austausch des Schlüssels ist hier die Schwachstelle. Tauscht man ihn über ein elektronisches Medium aus, besteht die Gefahr, dass jemand den Schlüssel abfängt bzw. mithört, wenn man ihn telefonisch überträgt. Mit der Briefpost ist es schon etwas sicherer, aber eben nicht richtig sicher. Der sicherste Schlüsselaustausch erfolgt von Auge zu Auge, also wenn sich beide Kommunikationspartner gegenüberstehen und einen Zettel mit dem Schlüssel darauf austauschen. Mit einem oder zwei Partnern aus derselben Stadt mag das noch gehen, aber was macht man, wenn es ein paar Dutzend oder hunderte Partner werden, die möglicherweise nicht einmal auf demselben Kontinent leben? Möglicherweise wünscht ja auch ein mir bisher unbekannter Partner mir eine verschlüsselte Nachricht zu schicken. Ein abgefangener Schlüssel führt das ganze Anliegen des Verschlüsselns ad absurdum, denn der Schlüssel ist nicht mehr sicher (man sagt, der Schlüssel ist kompromittiert). Besonders gefährlich ist dies, wenn der Schlüsseleigner nicht bemerkt, dass sein Schlüssel kompromittiert wurde, denn nun wähnt er sich in einer falschen Sicherheit. Natürlich ist es möglich, den Schlüssel in verschiedene Abschnitte zu zerteilen und diese über unterschiedliche Kanäle (Post, E-Mail, Telefon) dem Empfänger zu übermitteln, aber das wäre wohl reichlich aufwändig, insbesondere bei einer steigenden Anzahl von Kommunikationspartnern.

Asymmetrische Verschlüsselung[Bearbeiten]

Das massive Problem des Schlüsselaustauschs bei symmetrischer Verschlüsselung führte zur Entwicklung der asymmetrischen Verschlüsselung.

Bei asymmetrischen Verschlüsselungsverfahren, auch Public-Key-Verfahren genannt, gibt es dieses Problem nicht. Jeder Kommunikationspartner hat ein Schlüsselpaar, bestehend aus einem geheimen Schlüssel („private key“ oder „secret key“) und einem öffentlichen Schlüssel („public key“). Den geheimen Schlüssel kann man selbstverständlich praktisch nicht aus dem öffentlichen Schlüssel ableiten, sonst wäre das System sinnlos. Zur Verschlüsselung wird der öffentliche Schlüssel des Empfängers genutzt, mit dem nur verschlüsselt werden kann. Zur Entschlüsselung braucht man den geheimen Schlüssel des Empfängers – da den aber nur der Empfänger hat, ist es auch nur ihm möglich, die Nachricht zu entschlüsseln.

Wie der Name schon sagt, sollte der geheime Schlüssel unbedingt geheim gehalten werden. Eine Sicherung ist dennoch äußerst empfehlenswert, hat doch schon so manche dahinscheidende Festplatte auch Schlüssel mit sich in die Tiefe gerissen. Eine Sicherung kann in elektronischer Form erfolgen, z.B. auf einer CD (Wegen der geringen Haltbarkeitsdauer sollte das aber nicht gerade die erste Wahl sein) oder einer Speicherkarte. Am besten ist aber auch ein Ausdruck auf (säurefreien) Papier, den man dann in einem Bankschließfach hinterlegt. Für den Privatmann reicht für die meisten Zwecke wahrscheinlich auch ein kleiner Safe oder einfach ein hervorragendes Versteck, zum Beispiel bei Oma auf dem Dachboden. Der öffentliche Schlüssel sollte hingegen an Kommunikationspartner geschickt werden, auf der eigenen Homepage stehen, und von einem PGP-Schlüsselserver (siehe unten) abrufbar sein. Eine möglichst weite Verbreitung des öffentlichen Schlüssels ist wünschenswert.

Wichtig ist dabei allerdings, dass das asymmetrische Verfahren das Problem des Schlüsselaustauschs nicht löst. Zwar ist der öffentliche Schlüssel für jeden nutzbar, allerdings ist nicht bekannt, wem dieser Schlüssel wirklich gehört. Jeder kann einen öffentlichen Schlüssel mit einer beliebigen Identität erstellen. Um sicher zu sein, mit dem richtigen Empfänger zu reden, muss der öffentliche Schlüssel ausgetauscht werden, am besten bei einem persönlichen Treffen. Es sind aber auch andere Verfahren möglich.

Hybride Verschlüsselung[Bearbeiten]

OpenPGP (umgesetzt von GnuPG und PGP) benutzt eine Kombination, eine „Kreuzung“, aus beiden Verfahren, die hybride Verschlüsselung: Die zu verschlüsselnde Nachricht wird mit einem (bei jeder Nachricht zufällig erstellten) symmetrischen Sitzungsschlüssel verschlüsselt, und dieser Schlüssel selbst mit dem öffentlichen Schlüssel des Empfängers. Ebenso wird bei der Entschlüsselung erst der Sitzungsschlüssel mit dem geheimen Schlüssel entschlüsselt und damit dann die eigentliche Nachricht. Das dient der Geschwindigkeit, da bei asymmetrischen Verfahren gegenüber symmetrischen in der Regel ein vielfacher Rechenaufwand nötig ist.

Digitale Signatur[Bearbeiten]

Mit der Möglichkeit, eine Nachricht zu unterschreiben, garantiert man ihre Echtheit bzw. Gültigkeit – man spricht von der „Integrität“ bzw. „Authentizität“ einer Nachricht (und des korrekten Absenders), die durch die digitale Unterschrift gewährleistet wird. Um es anders auszudrücken: die digitale Unterschrift erfüllt den gleichen Zweck, wie eine normale Unterschrift. Sie sollte daher fälschungssicher und verbindlich sein, d.h. sie ist nicht auf andere Dokumente übertragbar und das Dokument ist im Nachhinein auch nicht mehr änderbar (außer es wird neu unterschrieben).

Andere Personen (Freunde, Kommunikationspartner, usw.) können dann den eigenen öffentlichen Schlüssel unterschreiben, und versichern somit nach ihrem besten Gewissen, dass der öffentliche Schlüssel zu dem angegebenen Absender gehört. Man sollte nur Schlüssel von Personen unterschreiben, deren Identität man genau kennt. Hierbei spricht man auch vom „Web of Trust“, dem Netzwerk des Vertrauens, welches im Kapitel GnuPG: Netz des Vertrauens näher erläutert wird. Als Beispiel sei das Debian-Projekt genannt, bei der jeder, der offizieller Entwickler werden will, als Grundvoraussetzung eine über Signaturen anderer Debian-Entwickler bestätigte Identität haben muss.

In Deutschland ist eine Signatur mit GnuPG nur eine „fortgeschrittene elektronische Signatur“ nach § 2 Nr. 2 d des Signaturgesetzes.

Was beim Signieren eigentlich passiert, kann im eingerückten Zusatzwissensteil unter Verschlüsseln, Entschlüsseln, Signieren nachgelesen werden.