Tyranus Blog

Verschlüsselung von Kommunikation

06. Juli 2013 | 4 Minuten zu lesen

Wer sensible Daten durch das Internet schickt, sollte sie verschlüsseln. Im WWW dient dazu HTTPS, bei Email und anderer Kommunikation existieren Verfahren wie PGP oder S/MIME. Letztlich funktionieren diese Protokolle gleich. Prinzipiell gibt es zwei verschiedene Verfahren, um Nachrichten zwischen einem Sender und einem Empfänger zu verschlüsseln: synchrone und asynchrone Verschlüsselung. Problematisch bei Verschlüsselung und Entschlüsselung über eine größere Entfernung ist der Schlüsselaustausch, sowie die Prüfung der Echtheit des Senders und des Empfängers.

Schlüsselaustausch

Ein Möglichkeit ist es, sich persönlich zu treffen, um den Schlüssel auszutauschen. So kann der Empfänger einer Nachricht, die Nachricht mit dem Schlüssel entschlüsseln, mit dem sie der Empfänger verschlüsselt hat. Ein solches Verfahren heißt synchrone Verschlüsselung. Im Netz ist es normalerweise nicht möglich, den Schlüssel auf diese Weise auszutauschen. Bei der asynchronen Verschlüsselung hingegen existieren zwei Schlüssel. Ein öffentlicher Schlüssel, mit dem die Nachricht verschlüsselt wird und ein privater Schlüssel, mit dem die Nachricht entschlüsselt wird. Der öffentliche Schlüssel eines Empfängers darf und muss dem Sender bekannt sein. Seinen dazu passenden privaten Schlüssel muss der Empfänger geheim halten. Der Sender verschlüsselt also eine Nachricht mit dem öffentlichen Schlüssel des Empfängers und der Empfänger entschlüsselt sie mit dem dazu passenden privaten Schlüssel. Es ist nicht möglich, die Nachricht mit dem öffentlichen Schlüssel wieder zu entschlüsseln.  Asynchrone Verschlüsselung ist rechenintensiver, als synchrone Verschlüsselung. Aus diesem Grund nutzt man die asynchrone Verschlüsselung bei direkter Kommunikation, wie etwa einem Echtzeit-Dialog dazu, am Anfang des Dialogs einen synchronen Schlüssel auszutauschen, der dann für die Dauer des Dialogs verwendet wird. Bei Emails hingegen bietet es sich an, direkt das asynchrone Verfahren zu nutzen.

Echtheit von Sender und Empfänger

Das Problem löst sich bei synchroner Verschlüsselung, indem sich Sender und Empfänger vorher persönlich treffen, um den Schlüssel auszutauschen. Bei asynchroner Verschlüsselung ist das schwieriger, weil man sich  ja gerade nicht persönlich treffen müssen will. Wenn ein Sender dem Empfänger belegen will, dass eine Nachricht von ihm stammt, kann er das asynchrone Verfahren umgekehrt benutzen. Wendet ein Sender auf seine Nachricht, nicht den öffentlichen Schlüssel des Empfängers, sondern seinen privaten Schlüssel an, so kann jeder Empfänger mit dem öffentlichen Schlüssel des Senders prüfen, ob die Nachricht wirklich vom Sender stammt, weil nur der Sender den privaten Schlüssel kennt. Dieses Verfahren heißt digitale Signatur. Es kann einzeln oder in Kombination mit Verschlüsselung angewendet werden.

Nun ist es aber möglich, dass ein Angreifer dem Sender einen selbst erstellten öffentlichen Schlüssel gibt, dabei aber so tut als sei es der öffentliche Schlüssel des Empfängers. Dann muss der Angreifer die Nachricht an den Empfänger abfangen und kann sie mit seinem privaten Schlüssel lesen. Das Problem ist also, dass ein dritter sich gegenüber des Senders und des Empfängers als der jeweils andere ausgibt. Dieser Angriff nennt sich Man-in-the-middle-Attack, weil der Angreifer die Nachrichten beider Kommunikationspartner abfängt und durch eigene ersetzt. Der Angreifer muss allerdings in der Lage sein, jede Nachricht zwischen den beiden Kommunikationspartnern abzufangen. Sie nur mitzulesen genügt nicht. Würde die Originalnachricht beim Empfänger eintreffen, würde dieser erkennen, dass sie gar nicht vom erwarteten Sender stammt, weil sein privater Schlüssel zwar zum öffentlichen Schlüssel des Angreifers passt, nicht aber zum öffentlichen Schlüssel, den der Absender benutzt hat.

Das Problem besteht also darin sicherzustellen, dass der öffentliche Schlüssel wirklich zu der Person gehört, für die er angegeben ist. Es ist schwierig, die Echtheit des öffentlichen Schlüssels zu bestätigen.

Eine Möglichkeit ist es, sich die Echtheit von einer übergeordneten Instanz bestätigen zu lassen. Das kann eine vertrauenswürdige Zertifizierungsstelle sein. Vor allem bei HTTPS ist das der gängige Weg. Webbrowser zeigen bei einer HTTPS-Verbindung an, ob die Verschlüsselung von einer übergeordneten Stelle zertifiziert und damit vertrauenswürdig ist. Verschlüsselt wird der übertragene Inhalt bei nicht von vertrauenswürdigen Stellen zertifizierten Schlüsseln genau so gut. Es gibt nur niemanden, der bestätigt hat, wer der Besitzer des Schlüssels ist. Absolute Sicherheit bieten Zertifizierungsstellen nicht. Auch diese können angegriffen und dabei Zertifikate kompromitiert werden.

Ein anderer Weg ist ein so genanntes Web of Trust. Für PGP-Schlüssel ist es etwa möglich, sich mit Personen zu treffen, die Teil des Web of Trust sind und sich den öffentlichen Schlüssel bestätigen zu lassen. Das Verfahren bietet auch keine absolute Sicherheit. Die Sicherheit kann aber dadurch erhöht werden, dass man seinen Schlüssel von mehreren Personen bestätigen lässt.

Ein einfacherer, aber weniger sicherer Weg ist es, seinen öffentlichen Schlüssel an Orten zu platzieren, die den Inhaber identifizieren. Das kann etwa die eigene Website oder Profile in sozialen Netzwerken sein. Die Unsicherheit besteht darin, dass ein Angreifer auch diese öffentlichen Orte angreifen und den öffentlichen Schlüssel ersetzen könnte, ohne dass der Inhaber des öffentlichen Schlüssel das bemerkt.

Fazit

Asynchrone Verschlüsselungsverfahren lösen das Problem des Schlüsselaustauschs zwischen beliebig vielen Kommunikationspartnern, ohne dass dritte den Schlüssel beim Austausch abfangen können, wie es bei synchronen Verfahren der Fall ist. Nicht vollständig gelöst ist das Problem der Überprüfung von Echtheit des Empfängers und Senders. Das Problem kann näherungsweise verringert werden, indem übergeordnete vertrauenswürdige Instanzen die Echtheit bestätigen. Vollständig kann es nur gelöst werden, wenn der öffentliche Schlüssel persönlich übergeben wird.