Was ist Verschlüsselung und wie funktioniert sie?

Verschlüsselung wird heutzutage auch in den einfachsten Apps genutzt. Weil sich Informationen so einfach hacken lassen, wenn Du online bist, sind Verschlüsselung und andere Arten von Kryptografie die besten Tools, um Dich zu schützen.

Die meisten Anwendungen und Programme benutzen Verschlüsselung in irgendeiner Form. Die besten VPNs verwenden AES mit 256-Bit-Schlüsseln und das ist einer der Gründe, warum VPNs die beste Option sind, Deine Online-Aktivitäten abzusichern.

Andere populäre Apps wie zum Beispiel WhatsApp und Gmail bieten auch eine Art Verschlüsselung an.

Wir nutzen Kryptografie zwar in unserem täglichen Leben, aber die meisten von uns wissen nicht, wie sie funktioniert.

Damit Du besser verstehst, wie Kryptografie funktioniert, sehen wir uns einige praktische Beispiele an.

Das Problem mit offenen Kanälen

Stelle Dir einen ganz normalen Online-Chat-Raum vor, in dem Benutzer miteinander über Textnachrichten kommunizieren können. Wie würden wir nun einen sicheren Chat-Raum mit verschlüsselten Nachrichten erstellen?

Der erste Schritt ist ein einfacher Kommunikationskanal, basierend auf TCP. Weil es keine Sicherheit gibt, sind alle Nachrichten, die ein Benutzer schickt, anfällig für Angriffe.

Schreiben sich Astrid und Peter nun, können Angreifer einfach lauschen. Das ist auch als Man-in-the-Middle-Angriff bekannt. Hacker können möglicherweise die Nachrichten auch modifizieren und umleiten.

Möglich ist das, weil der standardmäßige Kommunikationskanal die Nachrichten im Klartext überträgt. Das gleiche passiert mit sämtlicher HTTP-Kommunikation über offene WLANs. Natürlich brauchen wir an dieser Stelle ein besseres System.

Symmetrische Verschlüsselung

Symmetrisch Verschlüsselung benutzt einen Algorithmus, der eine herkömmliche Klartextnachricht in eine verschlüsselte Geheimnachricht umwandelt. Dafür wird ein Schlüssel benutzt. Der Empfänger hat den gleichen Schlüssel und kann die Nachricht somit dechiffrieren. Übertragen wir das nun auf unsere Anwendung.

Will Astrid dem Peter eine Nachricht schicken, verschlüsselt sie mit einem symmetrischen Schlüssel. Sobald Peter die Nachricht empfängt, benutzt der den gleichen Schlüssel, um die Nachricht zu entschlüsseln. Ohne den Schlüssel können Angreifer die verschlüsselte Kommunikation zwischen den beiden Anwendern nicht belauschen.

Normalerweise wird ein symmetrischer Schlüssel pro Sitzung erstellt und ist für nachfolgende Kommunikation nicht mehr gültig. Wir nennen das auch einen Sitzungsschlüssel.

Dieser Ansatz hat aber auch Nachteile:

  1. Skalierbarkeit: Unsere Lösung lässt sich nicht skalieren. Wollen 1000 Benutzer miteinander kommunizieren, bräuchten wir 999 verschiedene Schlüssel, um einen sicheren Kanal zu etablieren.
  2. Verteilung der Schlüssel: Wir sind davon ausgegangen, dass beide Parteien Zugriff auf den symmetrischen Schlüssel haben. Wie bekommen Sie den Schlüssel aber? Erstellt Astrid einen symmetrischen Schlüssel (Sitzungsschlüssel) und schickt ihn zu Peter, könnte ihn der Angreifer abfangen und hätte somit wieder Zugriff auf die weitere Kommunikation.

Was ist also der nächste Schritt?

Asymmetrische Verschlüsselung

Asymmetrische Verschlüsselung benutzt zwei Schlüssel – einen privaten Schlüssel und einen öffentlichen. Wird die Nachricht im Klartext mit dem öffentlichen Schlüssel verschlüsselt, kann sie nur von der Person entschlüsselt werden, die den privaten Schlüssel besitzt und andersherum.

Damit lösen wir das Problem mit den beiden symmetrischen Schlüssel. Asymmetrische Verschlüsselung ist langsamer als symmetrische. Deswegen benutzt man sie in der Regel miteinander. Sehen wir uns an, wie das funktioniert:

Jeder Anwender besitzt ein öffentliches-privates Schlüsselpaar. Der öffentliche Schlüssel ist verfügbar und jeder kann ihn einsehen. Der private ist aber vertraulich und wird vom Besitzer geschützt.

Will Astrid eine Nachricht an Peter schicken, erstellt sie zunächst einen symmetrischen Sitzungsschlüssel. Sie verschlüsselt ihn mit Peters öffentlichem Schlüssel. Weil Peter den dazugehörigen privaten Schlüssel besitzt, kann nur er die Nachricht entschlüsseln und bekommt somit den Sitzungsschlüssel.

Ab sofort lassen sich mit dem Sitzungsschlüssel die Nachrichten der beiden verschlüsseln und entschlüsseln. Es löst das Problem mit der Verteilung der Schlüssel, ohne die Geschwindigkeit zu verringern. Die asymmetrische Verschlüsselung wird nur für den anfänglichen Handshake benutzt.

Das Problem mit der Skalierbarkeit ist ebenfalls gelöst, weil jeder nun nur ein Schlüsselpaar öffentlich/privat braucht, um mit den anderen kommunizieren zu können.

Das System ist nun wesentlich verbessert, aber immer noch nicht komplett sicher. Es gibt immer noch Probleme mit:

  1. Authentifizierung: Wir benutzen den öffentlichen Schlüssel von Peter als Startpunkt, aber wie bekommen wir ihn? Der öffentliche Schlüssel könnte natürlich von Peter stammen, aber auch einer Person, die sich für ihn ausgibt. Das wäre also der Angreifer. Wir würden zwar sicher kommunizieren, aber mit der falschen Person.
  2. Integrität der Daten: Die Nachricht könnte sich während des Transfers modifizieren lassen. Wir wollen also sicherstellen, dass die Daten nicht manipuliert wurden.

Zertifikate und digitale Signaturen

Authentifizierung braucht ein vertrauenswürdiges System. Eine vertrauenswürdige Zertifikatsstelle stellt sicher, dass ein öffentlicher Schlüssel auch zu einer bestimmten Person gehört. Jeder Benutzer des Systems registriert ein digitales Zertifikat bei der Zertifikatsstelle. Dort werden die Identität des Besitzers und der öffentliche Schlüssel hinterlegt.

Will Astrid nun mit Peter kommunizieren, kann sie bei der Zertifikatsstelle überprüfen, dass der Schlüssel auch wirklich zu Peter gehört. Genau so funktioniert auch HTTPS im Internet. Ein root-Zertifikat ist mit mehreren Kind-Zertifikaten und digitalen Signaturen verknüpft (weiter unten beschrieben).

Wie wissen wir, dass das Zertifikat vom root-Zertifikat abstammt und nicht von einem Angreifer kommt? Normalerweise sind die root-Zertifikate von vertrauenswürdigen Zertifikatsstellen fest im Browser kodiert. Damit haben wir eine Grundlage geschaffen.

Das Problem mit der Datenintegrität lässt sich nun lösen, indem digitale Signaturen genutzt werden (nicht zu verwechseln mit digitalen Zertifikaten).

Will Astrid eine Nachricht an Peter schicken, erstellt sie zunächst einen Sitzungsschlüssel und verschlüsselt ihn mit dem öffentlichen Schlüssel von Peter. Nennen wir das Datenpaket TEIL1. Danach erstellt sie einen Nachrichten-Hash, indem sie einen der vielen verfügbaren Hashing-Algorithmen benutzt (MD5/SHA256). Ein Nachrichten-Hash ist eine Einwegumwandlung von einer variablen Byte-Länge zu einer festen.

Du kannst die Originalnachricht nicht aus dem Hash-Wert bekommen und statistisch gesehen ist es unwahrscheinlich, dass zwei Nachrichten den gleichen Hash-Wert haben.

Nachdem der Hash erstellt ist, verschlüsselt ihn Astrid mit ihrem privaten Schlüssel. Das nennt sich digitale Signatur. Mit ihr kannst Du überprüfen, ob die Nachricht auch von Astrid stammt und dass sie nicht manipuliert wurde.

Die digitale Signatur und die Originalnachricht werden dann mit dem Sitzungsschlüssel verschlüsselt. Nennen wir das TEIL2. Nun haben wir folgende Situation:

PART1 = PETERS_ÖFFENTLICHER_SCHLÜSSEL -> (SITZUNGSSCHLÜSSEL)

PART2 = SITZUNGSSCHLÜSSEL -> (NACHRICHT + DIGITALE_SIGNATUR)

Astrid schickt sowohl TEIL1 als auch TEIL2 an Peter. Weil er den privaten Schlüssel besitzt, kann nur Peter TEIL1 entschlüsseln und auf den SITZUNGSSCHLÜSSEL zugreifen.

Danach benutzt er seinen Sitzungsschlüssel, um TEIL2 zu entschlüsseln. Somit kommt er an die Nachricht und die digitale Signatur. Mit dem öffentlichen Schlüssel von Astrid entschlüsselt er die digitale Signatur und bekommt den Nachrichten-Hash. Peter berechnet den Nachrichten-Hash und vergleicht ihn mit dem aus einem früheren Schritt.

Stimmen beiden Hashes überein, ist die Integrität der Daten intakt. Die Nachricht wurde in dem Fall nicht manipuliert.

Wie Du sehen kannst, haben wir nun ein komplett sicheres Ökosystem geschaffen. Die beiden Partner können sicher miteinander kommunizieren und überprüfen, dass die Nachrichten nicht modifiziert wurden.

Mithilfe von Zertifikaten und digitalen Signaturen können wir ein verschlüsseltes System für die Authentifizierung etablieren, das schnell, sicher, vertraulich und skalierbar ist.

Nun weißt Du, wie Verschlüsselung funktioniert. Wirf einen Blick auf unsere favorisierten VPN-Anbieter, damit Du Kryptografie in Aktion erleben kannst.

War dies hilfreich? Teil Sie es mit anderen!
Auf Facebook teilen
0
Diesen Artikel twittern
0
Teilen Sie den Artikel, wenn Sie der Ansicht sind, dass Google nicht genug über Sie weiß
0