Hintergrund
Eine der am häufigsten gestellten Fragen unserer Kunden ist:
Wie sicher sind meine Daten in der Cloud?
Obwohl, oder auch gerade weil diese Frage sehr abstrakt ist, lohnt es sich, diese Frage aufzubrechen und als Einzelthemen genauer zu beleuchten, zu erläutern und zu beantworten - besonders im Hinblick auf die CERTAIN CE-Kennzeichnungssoftware.
Die “Datensicherheit 101” Serie auf unserem CERTAIN Blog soll erstens ein Verständnis dafür vermitteln, wie Daten in “der Cloud” verarbeitet und gespeichert werden und zweitens, durch dieses neugewonnene Verständnis, mehr Vertrauen in cloud-basierte Software geben. In dieser Serie werden wir uns mit den folgenden Themen befassen:
- der Begriffsbestimmung “der Cloud”
- einem Blick auf Daten-Verschlüsselung aus der Vogelperspektive
- einem theoretischen Ansatz der Zugriffsbeschränkung in Cloud-Systemen
- dem Sprung in eine passwortlose Zukunft
- der spezielleren Anwendung der oben genannten Themen in der CERTAIN App. Ich werde Fokus darauf legen, diese technisch recht anspruchsvollen Themen verallgemeinert, aber für Laien verständlich zu erklären. Ich setze keine IT-Vorkenntnisse der Lesenden voraus.
Im zweiten Teil der Serie machen wir einen Ausflug in die Welt der Kryptographie und schauen uns Techniken an, die sowohl der Verschlüsselung von Daten dienen, als auch der Wissensverifizierung. Auf Letzteres kommen wir im Teil „Eine passwortlose Zukunft“ zurück.
Kryptographie: Magie oder Kinderkram?
Spätestens seit dem Wirbel um Bitcoin und anderen Krypto-Währungen ist zumindest das Wort „Krypto“ vielen Menschen geläufig. Die Kryptographie selbst, also die „Wissenschaft der Verschlüsselung von Informationen“ ist allerdings bedeutend älter und begleitet die menschliche Kommunikation schon Ewigkeiten. Über den „Da Vinci Code“, die “Enigma”, bis hin zu End-to-End-Verschlüsselung bei WhatsApp - oder eben Ihre verschlüsselten Daten in der CERTAIN Cloud.
Die einfachsten Verschlüsselungen werden bereits von Schulkindern angewandt, beispielsweise die Löffelsprache: aus „die Cloud ist spannend“ wird „dielewie clolewoulewud ilewist spalewannelewend“. Bei etwas stärkeren Verschlüsselungen werden Buchstaben rotiert oder durch die Zahl ihrer Position im Alphabet ersetzt: aus unserem Beispielsatz würde dann „ejf Dmpre jtu tqboofoe“ respektive „495 31215214 91920 1916114145145“. Diese angewandten Verschlüsselungen folgen einem relativ einfachen Muster, sind sehr schnell zu durchschauen und selbst im Kopf zu lösen. Moderne Verschlüsselungen basieren auf höherer Mathematik und können nur von Computern gerechnet werden. Damit sind verschlüsselte Informationen de facto nicht zu „knacken“ und können nicht durch bloßes Ausprobieren entschlüsselt werden.
Schatztruhen-Analogie
Ich würde Ihnen und mir gerne die Zeit sparen, einen Mathematik-Doktor zu machen und führe hier eine Analogie ein. Auch wenn diese Analogie nicht 100 prozentig akkurat ist, so hilft sie doch sehr, die modernen Methoden der Verschlüsselung zu verstehen.
Stellen wir uns vor, wir haben ein Tagebuch und wir wollen, dass niemand dieses Tagebuch lesen kann. Wir könnten das Tagebuch verstecken und glauben, dass es nie gefunden wird. Sollte irgendjemand aus Zufall doch auf dieses Tagebuch stoßen, dann könnte diese Person ohne Probleme all unsere Geheimnisse lesen. Um das zu verhindern, packen wir das Tagebuch in eine abschließbare Schatztruhe. Dort ist das Tagebuch sicher, selbst wenn die Truhe in die Hände von jemandem fallen würde, dem es nicht erlaubt ist den Inhalt zu lesen.
Der Vollständigkeit halber müssen wir akzeptieren, dass man in diese Schatztruhe nicht reinbohren, die Scharniere sprengen oder die Truhe auf irgendeine andere Art und Weise öffnen kann - der einzige Weg zum Tagebuch führt durch das Schloss. Die „Knackbarkeit“ des Schlosses ist abhängig von dessen Komplexität, analog zum kryptographischen Algorithmus, der verwendet wird, um die Information zu verschlüsseln. Gehen wir einfach davon aus, dass unser Schloss so komplex ist, dass man es mit einem Dietrich nicht knacken kann.
Unabhängig von der Komplexität/Knackbarkeit des Schlosses gibt es unterschiedliche Arten von Schlössern, ähnlich wie es z.B. Zahlenschlösser, WC-Schlösser, Zylinder-Schlösser usw. gibt. Im Folgenden schauen wir uns die zwei relevantesten „Schloss-Arten“ der Kryptographie an.
Das symmetrische “Schloss”
Die älteste und am weitesten verbreitete Art der Verschlüsselung ist auch die, die am intuitivsten und einfachsten zu verstehen ist. Die symmetrische Verschlüsselung.
„Symmetrisch“ deshalb, weil der gleiche Schlüssel für die Ver- und Entschlüsselung verwendet wird. In unserer Analogie würde das bedeuten, ich nutze den selben Schlüssel zum Abschließen meiner Truhe, wie zum Aufschließen. Das hat den Vorteil, dass ich immer nur einen Schlüssel pro Truhe benötige und dementsprechend auch weniger „Gewicht“ an meinem Schlüsselbund habe und das Schloss schneller öffnen kann.
Bildliche Darstellung der symmetrischen Verschlüsselung bei der der selbe Schlüssel für die Ver- und Entschlüsselung genutzt wird
Wenn ich jetzt meine Truhe, statt für das Aufbewahren meines Tagebuchs, dafür verwenden möchte, Nachrichten mit jemand anderem auszutauschen, dann müsste ich meinen Schlüssel vervielfältigen und meinen Schlüssel an all jene ausgeben, mit denen ich geheim kommunizieren will. Das ist insofern ungünstig, als dass diese Schlüssel dann jede Nachricht in meiner Schatztruhe verschlüsseln und ganz besonders entschlüsseln können. Ich bräuchte also immer wieder neue Schlüssel und könnte mir nie sicher sein, ob der Schlüssel kopiert wurde. Zum Glück gibt es auch dafür ein besonderes Schloss.
Das asymmetrische “Schloss”
Im Gegensatz zur symmetrischen Verschlüsselung, werden bei der asymmetrischen Verschlüsselung unterschiedliche Schlüssel für die Ver- und Entschlüsselung genutzt.
Einfachheitshalber betrachten wir mit unserer Analogie zuerst den Fall der Entschlüsselung, in dem mein Freund mir eine Nachricht in der Schatztruhe sendet, die ausschließlich ich lesen können soll (meine Antwort an den Freund schauen wir uns danach an). Damit mein Freund und ich unsere Schatztruhe asymmetrisch verschließen können, muss ich zwei mathematisch-zusammengehörige Schlüssel erstellen: einen der ausschließlich verwendet werden kann, um die Truhe zu verschließen, aber sie nicht aufschließen kann und einen zweiten, der die Truhe nur aufschließen, sie aber nicht verschließen kann. Dieses Schlüssel-Paar gehört für immer zusammen und keiner der Schlüssel kann ausgetauscht werden.
Den ersten Schlüssel gebe ich meinem Freund. Der kann dann Nachrichten schreiben, sie in die Truhe legen, abschließen und auf den Weg bringen. Einmal verschlossen kann sie von niemandem aufgeschlossen werden, nicht einmal von meinem Freund selbst. Einzig und allein der Schlüssel, den ich behalten habe, kann die Truhe öffnen. Das heißt, ich kann den Verschlüsselungs-Schlüssel beliebig oft kopieren und jedem in der Nachtbarschaft ein Exemplar geben, ohne Sorge um die Sicherheit meiner Informationen. Niemand kann eine an mich „adressierte“ Nachricht entschlüsseln, nur verschlüsseln.
Diesen öffentlichen Schlüssel, den jeder bekommt, der mit mir sicher kommunizieren will, heißt passenderweise „Public Key“. Das Gegenstück, das niemals kopiert und zu jeder Zeit von mir geheim gehalten wird, ist der „Private Key“.
Bildliche Darstellung der Private-Public-Key Verschlüsselung. Der eine kann nur ver- und der andere nur entschlüsseln
Nun stellt sich die Frage, wie ich meinem Freund antworte, wenn mein Schlüssel nur ent-schlüsseln kann. Ganz einfach: mein Freund erstellt sein eigenes Private-Public-Key-Paar und gibt mir seinen eigenen „Public Key“, mit dem ich dann meine Antwort verschlüsseln und er sie mit seinem geheimen Schlüssel entschlüsseln kann.
Diesen Austausch von “Public Keys” findet man bei den meisten Messengern, wie WhatsApp. Zu Beginn jedes Chats steht geschrieben “Nachrichten und Anrufe sind Ende-zu-Ende verschlüsselt”. Es befinden sich also zu keiner Zeit unverschlüsselte, lesbare Nachrichten auf den Servern von WhatsApp, sondern ausschließlich auf den Endgeräten der Nutzer, die über den “Private Key” zur Entschlüsselung verfügen.
Vereinfachung des “Handshakes” zum Austausch von Public Keys, die dann verwendet werden, um Nachrichten zu verschlüsseln, wie bei Messenger-Apps.
Weitere Anwendungsfälle
Asymmetrische Verschlüsselung wird nicht nur dafür verwendet, Informationen sicher von Ende-zu-Ende zu verschlüsseln, wie zum Beispiel zwischen zwei Nutzern bei Messengerdiensten (oder meiner Nachrichtentruhe). Sie wird auch verwendet, um zu verifizieren, dass jemand wirklich ist, wer er behauptet zu sein. Wenn ich eine unverschlüsselte Nachricht von einer Person bekomme, die behauptet, mein Freund „Larry“ zu sein und von mir verlangt, dass ich ihr Zugang zu etwas Geheimem gebe, dann kann ich mit Larrys Public-Key eine Nachricht verschlüsseln und die Person auffordern, mir zu sagen, wie die unverschlüsselte Nachricht lautet. Sie kann mir die richtige Information nur geben, wenn sie im Besitz des „Private-Key“ ist und die Nachricht entschlüsseln kann, also wenn sie wirklich Larry ist.
Zur Info: Streng genommen, ist der Besitz des „Private-Key“ noch keine Garantie dafür, dass es sich um Larry handelt. Auf diese Problematik gehen wir tiefer ein in Teil 4 „Eine Passwortlose Zukunft“. Für unseren Ausflug in die Kryptographie können wir aber davon ausgehen, dass der „Private-Key“ immer geheim ist und nur vom Besitzer genutzt wird.
Verschlüsselung und die Cloud
Natürlich werden Daten auch in der Cloud verschlüsselt. Es gibt allerdings auch hier unterschiedliche Ansätze bzw. Techniken, um die Daten sicher zu halten und vor unbefugtem Zugang zu schützen.
„Encryption At-Rest“ und „Encryption In-Transit“
Wie bei so vielem in der IT, so werden auch diese beiden Begriffe eigentlich nur auf Englisch gebraucht. Man kann sie aber auch sinnvoll übersetzen in „Verschlüsselung ruhender Daten“ und „Verschlüsselung bewegter Daten“. Die Ruhe bzw. Bewegung beschreibt, ob die Daten einfach auf einem Speichermedium liegen oder ob diese Daten gerade transportiert werden, wie zum Beispiel die Daten, die diesen Artikel darstellen und vom Server über das Internet auf Ihr Endgerät bewegt werden mussten.
Bei der Verschlüsselung „At-Rest“ bzw. „in Ruhe“ wird das Speichermedium (Festplatte, USB-Stick, DVD, …) selbst verschlüsselt und macht es damit unbrauchbar für jeden, der nicht über den Schlüssel verfügt. Fast immer wird „At-Rest“ symmetrisch Verschlüsselt.
“In-Transit”
Sobald diese ruhenden Daten bewegt werden, also das verschlüsselte Medium verlassen, sind sie unverschlüsselt. Das trifft sowohl zu, wenn die Daten in den Arbeitsspeicher (RAM) geladen werden, als auch und besonders dann, wenn sie über das Internet „verschickt“ werden. Das stellt offensichtlich ein erhebliches Sicherheitsrisiko dar und ist tatsächlich lange Zeit sehr oft ausgenutzt worden, um Passwörter oder sensible Daten „mitzulesen“ und dann zu missbrauchen. Um dieses Risiko zu mindern, wurden die meistverbreiteten Protokolle, die im Internet genutzt werden, um Daten zu versenden, um eine Verschlüsslungsebene erweitert. Ihnen wird schon aufgefallen sein, dass ihr Browser neben der URL der besuchten Website ein kleines Schloss anzeigt, wenn die Website “sicher kommuniziert”. Und vielleicht haben sie auch schonmal von HTTPS (Hypertext Transfer Protocol Secure) gehört oder gesehen, z.B. in „https://certain-cloud.com“. HTTPS ist das Protokoll, welches Regeln für die Kommunikation zwischen Ihrem Browser, also dem Client, und dem Server festlegt. Die ursprüngliche Version dieses Protokolls hieß einfach HTTP (ohne das „s“ am Ende!), und sah keine Verschlüsselung zwischen dem Server und Client vor, sondern sendete sämtliche Daten in Klartext.
Mittlerweile kommunizieren die allermeisten Websites und Apps über das sichere HTTPS. Und wenn eine Seite es nicht tut, dann warnt Sie Ihr Browser und blockiert unter Umständen den Zugriff, damit Sie und Ihre Daten sicher bleiben!
Bei der Verschlüsselung „In-Transit“ wird in der Regel asymmetrisch verschlüsselt.
Server- oder clientseitig
Da wir in der Cloud die Infrastruktur, unter anderem die Server und Festplatten, nicht selbst besitzen und keinen vollständigen Zugang haben (also entweder physisch oder auf Betriebssystemebene), müssen wir den Cloud-Anbietern vertrauen, dass sie sämtliche Daten tatsächlich verschlüsseln und auf diese Daten auch nicht zugreifen können. AWS (und auch alle anderen großen Cloud-Anbieter) unterbindet den Zugang zu Daten auf seinen Servern (weitere Informationen im AWS Datenschutz-Zentrum). Als Kunde kann man also davon ausgehen, dass die Daten vom Anbieter nicht gelesen werden können. Diese Art der Verschlüsselung auf der Infrastruktur eines Anbieters nennen wir “serverseitige Verschlüsselung”.
Darüber hinaus können wir, falls wir unserem Anbieter nicht vollends vertrauen können/wollen oder unsere Endkunden besondere Sicherheitsanforderungen haben (z.B. in der Finanz- oder Gesundheitsbranche), die Daten “vor-verschlüsseln”. Das hat zur Folge, dass selbst diejenigen, die über den Schlüssel der Festplatte verfügen, die darauf befindlichen Daten nicht lesen können, weil die Daten von der verarbeitenden Software mit einem separaten Schlüssel verschlüsselt wurden und erst dann in die Datenbank/auf die Festplatte geschrieben wurden.
Diesen Prozess nennt man die clientseitige Verschlüsselung. Der Name kommt übrigens daher, dass unsere Software hier als der Client zu dem Datenbank-Server von AWS agiert, analog zu dem Client-Server-Verhältnis, das zwischen Ihrem Browser als Client und der CERTAIN Software als Server besteht.
Vereinfachte Darstellung der Verschlüsselung von Kundendaten. Erst clientseitig von der CERTAIN Software, dann Serverseitig vom Server des Cloudanbieters.
Umschlag-Verschlüsselung
Ein letztes Konzept, das besonders für cloudbasierte Systeme relevant ist - die Umschlag-Verschlüsslung, oder Envelope-Encryption. Ein weiterer Begriff, der in der Branche nie übersetzt wird, aber durchaus sprechend für das Konzept ist. Bei der Envelope-Encryption handelt es sich um eine doppelte Verschlüsselung mit einem symmetrischen Schlüssel und einem asymmetrischen Schlüssel. Der erste, symmetrische Schlüssel, “Data-Key” genannt, wird verwendet, um die Daten selbst zu verschlüsseln. Dann wird der zweite, asymmetrische Schlüssel, “Wrapping-Key” genannt, verwendet, um den “Data-Key” zu verschlüsseln. Der selbst verschlüsselte “Data-Key” wird dann zusammen mit den verschlüsselten Daten gespeichert. Diese Methode macht es einfach und sicher für jeden Datensatz einen neuen symmetrischen Schlüssel zu erzeugen. Wenn jeder Datensatz seinen eigenen symmetrischen Schlüssel hat, dann kann der Zugriff auf die verschlüsselten Daten genauer gesteuert werden und verhindert, dass der Schlüssel zu einem Datensatz alle anderen entschlüsseln kann. Gleichzeitig ermöglicht uns ein einziger, geheimer asymmetrischer Schlüssel ein sehr einfaches Schlüsselmanagement: wir brauchen uns nur einen Schlüssel merken (die symmetrischen Schlüssel sind ja mit/neben den Daten gespeichert) und können diesen einen Schlüssel viel besser schützen.
Bildliche Darstellung zur “Envelope-Encryption”. Erst werden die Daten mit dem “Data-Key” verschlüsselt, und dann der “Data-Key” selbst mit einem “Wrapping-Key” verschlüsselt. Die Daten und der “Data-Key” werden zusammen gespeichert.
Angewandt wird diese Technik besonders in Multi-Tenant-Systemen. Der Anbieter kann den geheimen asymmetrischen Schlüssel nutzen, um auf Anfrage einen bestimmten symmetrischen Schlüssel freizugeben, der zu einem Datensatz des anfragenden Kunden gehört und ausschließlich diesen Datensatz entschlüsseln kann. Theoretisch könnte man sogar jedem Kunden seine eigenen Schlüssel aushändigen, ohne die Sicherheit und Integrität der Daten anderer Kunden zu gefährden.
Fazit
Hier haben wir nun einen kleinen Ausflug in die Welt der Kryptographie gemacht. Ein durchaus komplexes Thema, selbst wenn wir versuchen, es auf die einfachsten Bestandteile zu reduzieren. Für Leute, die hier gerne tiefer einsteigen wollen und die technischen Zusammenhänge tiefer und “richtiger” verstehen wollen, empfehle ich, über den Diffie-Hellmann-Austausch und Elliptische-Kurven-Kryptographie zu lesen.
Das neue Wissen wird uns als Fundament für die folgenden Blogposts dienen, um zu verstehen wie CERTAIN Ihre Daten sichert.