
In diesem Artikel wird der Frage nachgegangen: Was ist OpenPGP und wie ist sein Funktionsweise. Hierbei werden die Ver- und Entschlüsselung, der Schlüsselaustausch und der Web of Trust erklärt.
Was ist OpenPGP
(Open)PGP steht für “Pretty-Good-Privacy” und wurde 1991 von dem damaligen Studenten Philip R. Zimmermann erfunden. Die Software wurde von seinem Unternehmen kommerziell vertrieben, war aber für Privatanwender kostenlos nutzbar. Von 1991 bis 1996 machte die US-Regierung dauerhaft Untersuchungen gegen Zimmermann. Nach Ansicht der US-Zollbehörde hat PGP die Exportbeschränkungen für kryptographische Software der US-Regierung verletzt. Anfang 1996 wurde die Anklage fallen gelassen und Zimmerman gründete das Unternehmen PGP Inc, die später von Network Associates Inc (BZW McAfee) aufgekauft wurde [1].
OpenPGP ist ein offener Standard für ein Kryptografie-System und benutzt das hybride Verschlüsselungsverfahren. Zusammen mit MIME gehört dieses zu den verbreiteten Verfahren zur Verschlüsselungen und Signatur von E-Mails. Dabei ist OpenPGP bei Privatanwender deutlich beliebter als bei Unternehmen. Bei Unternehmen dagegen wird gerne MIME verwendet, da diese außer für die Verschlüsselung von E-Mails, zusätzlich für sichere Verbindung mit dem Internet verwenden werden kann [2].
Funktionsweise OpenPGP
OpenPGP nutzt das hybride Verschlüsselungsverfahren. Dies bedeutet, dass für die Anwendung ein Schlüsselpaar benötigt wird. Ein öffentlichen und eine privaten Schlüssel.
Ver- und Entschlüsselung
Der öffentliche Schlüssel sollte möglichst bekannt gemacht werden. Jeder mit dem kommuniziert werden soll, benötigt diesen Schlüssel. Der Grund ist, dass dieser Schlüssel für das Verschlüsseln von Daten/E-Mails benötigt wird. Ein Sender kann die Nachricht mittels des öffentlichen Schlüssels des Empfängers verschlüsseln und dem Empfänger verschlüsselt zusenden. Damit der Empfänger diese nun wieder entschlüsseln kann, wird der private Schlüssel benötigt. Dieser muss, wie der Name schon sagt, privat bleiben und darf nicht verloren oder abgefangen werden. Der private Schlüssel wird über ein symmetrisches Verfahren erstellt (RSA oder ElGammal) und sollte aus Sicherheitsgründen nicht kleiner als 1024 Bit sein. Zur Verdeutlichung ein Beispiel mit Alice und Bob.
Bob möchte Alice gerne eine verschlüsselte E-Mail senden. Dies heißt, dass es für niemanden außer Alice möglich seinen soll, diese Nachricht zu lesen. Dazu benötigt Bob den öffentlichen Schlüssel von Alice. Mit diesem Schlüssel, wird die zu sendende E-Mail verschlüsselt und an Alice als Geheimtext (verschlüsselter Text) gesendet. Alice empfängt diese Nachricht zunächst als Geheimtext. Um die Nachricht als Klartext (unverschlüsselter Text) zu lesen, benötigt Sie Ihren privaten (geheimen) Schlüssel um die E-Mail zu entschlüsseln.
Zusätzlich zu den zwei Schlüsseln wird ein Zertifikat erzeugt. Mit dem Zertifikat erhält der Nutzer seine persönliche Benutzer ID. Damit kann sich der Anwender unter den anderen Anwendern „Ausweisen“. Diesen sollte der Anwender privat halten und am besten auf einen Stick aufbewahren. Abschließend kann eine Passphrase ausgewählt werden. Damit soll sichergestellt werden, dass der private Schlüssel tatsächlich nur vom Befugten genutzt wird. Zu beachten ist, dass dieser tatsächlich keine Passwort sondern eine Passphrase ist. Eine gute Passphrase kann zum Beispiel so entstehen:
Sei die folgende Phrase aus dem Fußball:
„Abseits ist, wenn der Schiedsrichter pfeift“.
Aus dieser Phrase wird nun jeder dritter Buchstabe genommen und zu einem Wort zusammengesetzt. Das ergibt die Passphrase „stswnrhdit“.
Möchte nun Alice, Bob eine verschlüsselte Antwort zurücksenden, benötigt Sie den öffentlichen Schlüssel von Bob. Damit verschlüsselt Sie die Nachricht und sendet diese zurück an Bob. Damit Bob die Antwort wieder entschlüsseln kann, benötigt er seinen eigenen privaten Schlüssel. Um die Authentizität des Senders sicherstellen zu stellen, kann der Nachricht zusätzlich eine digitale Signatur beigefügt werden.
Schlüsselaustausch
Generell kann der Austausch von Öffentlichen Schlüssel entweder direkt (zum Beispiel mit einem Treffen), über unverschlüsselte E-Mails oder indem die Schlüssel auf Schlüssel-Servern hochgeladen werden. Sofern der Schlüsselaustausch nicht direkt vollzogen wurde, entsteht hier die große Problematik dieses Verfahrens. Zurück zu dem Beispiel. Wie schon erwähnt, benötigt Bob den öffentlich Schlüssel von Alice, Alice sendet dies zu Bob zum Beispiel über einer E-Mail. Wie weiß aber Bob, dass dieser Schlüssel tatsächlich von Alice stammt und nicht vom einem Angreifer?
Die Lösung dazu bietet das Verfahren der Authentifizierung, was Web of Trust genannt wird. Dabei wird die Echtheit einer Authentizität über die anderen Nutzer gewährleistet.
Web of Trust [3]
Beim Eintreten einer Person im Web of Trust, muss die Person mit einer anderen Person, die schon beim Web of Trust dazugehört, „überprüft“ werden (meistens durch ein persönliches Treffen). Nachdem die Authentizität bestätigt worden ist, wird der Schlüssel mit einem Zertifikat (digitalen Signatur) verbunden und kann beim Schlüsselserver hochgeladen werden.
Die nachfolgende Abbildung soll die Baumstruktur eines Web of Trust verdeutlichen.
Die Idee dahinter ist das ein Netz des Vertrauens aufgebaut wird. Das Netz kann aufgebaut werden indem die Nutzer sich untereinander gegenseitig überprüfen und beglaubigen (Signatur). Dazu kommt das individuelle Vertrauen in die Bestätigung von Nutzern durch anderen Nutzern (Owner Trust). Zur Verdeutlichung der nachfolgende Beispiel:
Alice erzeugt sich ein Schlüsselpaar und signiert es. Dieses lädt Sie in einen öffentlichen Schlüssel-Server. Bob möchte mit Alice kommunizieren, dazu besorgt er sich den öffentlichen Schlüssel von Alice aus dem Schlüssel-Server. Nun kann sich aber Bob nicht sicher sein ob dieser Schlüssel tatsächlich Alice ist oder vom einem Angreifer. Um das Problem zu lösen trifft Bob Alice persönlich (oder telefoniert mit Ihr) und fragt Sie nach dem Fingerprint Ihres öffentliches Schlüssel. Diese Vergleicht er dann mit dem vom Schlüssel-Server. Falls diese übereinstimmen, kann Bob sicher sein, dass dieser tatsächlich Alice gehört. Deshalb signiert er den Schlüssel mit seinem privaten und schickt diesen am Server zurück. Nun möchte Carl mit Alice kommunizieren. Carl kennt Bob und vertraut darauf, dass Bob schon Alice überprüft hat (Schlüssel trägt seine Signatur) und nimmt somit an, dass es tatsächlich Alice handelt.
Literatur
[1] | www.kes.info: S/MIME vs. OpenPGP: Eine Entscheidungshilfe www.kes.info/archiv/online/01-01-60-SMIMEvsOpenPGP.html. – Zuletzt besucht am 17.05.2014. |
[2] | www.hauke-laging.de: Einführung in die Funktionsweise von OpenPGP / GnuPG www.hauke-laging.de/sicherheit/openpgp.html. – Zuletzt besucht am 17.05.2014 |
[3] | http://de.wikipedia.org: Web of Trusthttp://de.wikipedia.org/wiki/Web_of_Trust. – Zuletzt besucht am 23.05.2014 |
Antworten