Why TLS is crappy by Design

Jeder der das Internet benutzt, der nutzt auch TLS, besser bekannt unter dem alten Namen SSL. TLS sorgt dafür, dass eine HTTP Verbindung zwischen dem Client und einem Server verschlüsselt ist. Alle Daten die ich an die Website übermittel und vice versa können nicht von Dritten mitgelesen werden. Insbesondere nach den Enthüllungen von Edward Snowden sollte jeder Betreiber einer Website TLS standardmäßig zur Verfügung stellen.

TLS selbst gilt als (weitgehend) sicher. Daran möchte ich auch nichts rütteln.Was jedoch einerseits ein Sicherheits Feature ist, ist gleichzeitig auch ein großes Problem. Wenn zwischen Client und Server erstmal eine Verbindung aufgebaut wurde, dann werden sämtliche Inhalte verschlüsselt übertragen. Sobald eine TLS Verbindung einmal aufgebaut ist, dann ist es unmöglich zu unterscheiden, für welche Domain das eingehende TLS Paket ist. Wenn man auf einem Server unter der gleichen IP Adresse mehrere Domains betreibt, z.B. foo.example.com und bar.example.com, und beide (Sub-)Domains verschiedene Zertifikate mit unterschiedlichen Schlüsseln zur Verschlüsselung der Verbindung verwenden, dann kann der Server später nicht unterscheiden, ob ein eingehendes verschlüsseltes Paket für foo.example.com oder für bar.example.com bestimmt ist.

Grundsätzlich ist dieses Verhalten gut, da ein Angreifer nicht sehen kann, welche URIs der Client abrufen möchte. Es führt aber auch zu gewaltigen Problemen:

Wenn man eine Reihe von Servern betreibt, auf denen eine Webapplication in mehreren Instanzen läuft und Kunden über my-instance.awesome-company.com zugreifen, dann ist es wünschenswert einen Loadbalancer zu betreiben, der alle Anfragen an *.awesome-company.com entgegen nimmt und jede Anfrage an den Server weiter reicht, auf dem die angeforderte Instanz betrieben wird (eine Aufteilung der Kunden auf isolierte Instanzen ist aus Datenschutz Gründen wünschenswert oder sogar erforderlich). Durch HTTPS wird das leider unmöglich: Aus einem verschlüsselten Paket kann man später nicht mehr feststellen, an welche Instanz dieses weitergeleitet werden muss.

Bisher ist die einzige Möglichkeit das Problem zu umgehen der Einsatz eines TLS Reverse Proxies. Hier baut der Client eine verschlüsselte Verbindung zum Loadbalancer auf. Dieser entschlüsselt die Nachricht und kann dann anhand des HTTP Headers erkennen, für welche Instanz das Paket gedacht ist. Der Loadbalancer schickt dass Paket dann über eine neue Verbindung entweder im Klartext oder über eine neue TLS Verbindung an den Instanz Server weiter. Umgekehrt schickt der Instanz Server seine Antwort an den Reverse Proxy, der diese dann an den Client weitergibt. Dieses Model hat zwei nennenswerte Probleme: Zum einen bietet die TLS Verbindung hier keine echte Ende-zu-Ende Verschlüsselung. Daten können auf dem Load Balancer entschlüsselt und ggf. manipuliert oder von Dritten gelesen werden. Zum anderen müssen die Daten vom Loadbalancer zum Instanz Server neu verschlüsselt werden. Das kostet zusätzliche Ressourcen und damit zusätzliches Geld. Es kommt daher nicht selten vor, dass die Verbindung vom Loadbalancer zu den Background Servern nicht verschlüsselt ist.

Eine mögliche Lösung wäre die Erweiterung von TLS. Dazu in einem späteren Post mehr.

Classmind – Informationsmanagement für Ihre Schule

Ich hatte vor einiger Zeit bereits über eines meiner Projekte geschrieben. In diesem Projekt geht es um die Entwicklung einer modernen und flexiblen eLearning-und Verwaltungsplattform für Schulen. Classmind unterstützt neben klassichen eLearning Komponenten (Aufgaben, Arbeitsmaterial, Kommunikation, …) die Schule bei der Verwaltung.

Die Lehrerinnen und Lehrer profitieren von modulen wie einem digitalen Klassenbuch (Verspätungen, Fehlstunden, …), einem Modul zur Notenverwaltung und natürlich der Arbeitsersparnis durch die eLearning Plattform.

Auch die Schulleitung profitiert von der schnelleren und komfortableren Notenverwaltung, die u.a. auch das automatische Erstellen und Drucken von Zeugnissen am Schuljahresende ermöglicht.

Nicht zuletzt profitieren natürlich auch die Schüler von Classmind. Dazu gehören ein individueller Stundenplan, der automatisch über Ausfälle und Änderungen informiert, eine Übersicht der eigenen Leistungen, die für mehr Transparenz sorgt, und natürlich alle Vorteile der eLearning Plattform wie dem Frage-und Diskussionsmodul für Aufgaben und Arbeitsmaterial.

Classmind ist von der internen Architektur so aufgebaut, dass eine Schule nach Bedarf weitere Module zu dem Kernsystem dazubuchen kann. Das können z.B. Module für Kurswahlen, Lehrmittelverwaltung oder Stundenplanverwaltung sein. Es ist denkbar, dass es zu einem späteren Zeitpunkt auch für Drittanbieter eine Möglichkeit geben wird Module für Classmind zu entwickeln.

Neben den Aspekten der einfachen und übersichtlichen Bedienbarkeit, der Modularität und Flexibilität legen wir einen besonderen Focus auf die Einhaltung des Datenschutzes. Hierzu arbeiten wir seit Herbst des letzten Jahres mit dem Hessischen Datenschutzbeauftragtem zusammen. Dieser unterstützt uns in Fragen Datenschutz, damit wir alle Vorgaben und Regelungen einhalten, die für die Verarbeitung von Pädagogischen-und Verwaltungsdaten gelten. Entsprechend fallen auch unsere technischen Maßnahmen aus: Vollverschlüsselte Datenübertragung, Rollenbasierte Zugangskontrolle und in der Zukunft Zwei-Faktor Authentifizierung für besonders sensible Daten, die derzeit noch nicht erhoben werden.

Zum aktuellen Zeitpunkt befinden wir uns in einem Pilotprojekt mit einer Schule, dass auch von HDSB begleitet wird. In dieser Pilotphase testen wir Classmind im realen Schuleinsatz, um Fehler zu beseitigen. Parallel dazu erweitern wir Classmind um weitere Funktionen. Dabei haben alle Teilnehmer der Pilotphase, aber auch sonstige Lehrerinnen und Lehrer sowie Schüler, die Möglichkeit mitzubestimmen, welche Funktionen Classmind in Zukunft bekommen soll.

Ab dem Sommer wird Classmind im begrenzten Umfang für weitere Schulen zur Verfügung stehen. Wir werden uns dann zunächst auf wenige Schulen konzentrieren (~5-10) um auch weiterhin guten Support leisten zu können.

Ein Closed Beta Zugang ist auf Anfrage möglich.

Die erste Frage der Kollegin

Die erste Frage einer neuer Kollegin an meiner Schule war, wie man denn die Überwachungssoftware der Schulcomputer findet und wie man sie benutzt.

Ich finde es ja gleichsam erstaunlich, erschreckend und traurig, dass gerade neue Lehrerinnen und Lehrer die frisch von der Uni kommen als erstes danach fragen, wie man denn die Computer überwacht, an denen die Schüler arbeiten. Natürlich hat man als LehrerIn ein Interesse daran, dass die Schüler im Unterricht am Computer nicht nur auf Facebook oder Youtube unterwegs sind, sondern tatsächlich auch etwas arbeiten. Ich war bloß bisher der Meinung, man würde als LehrerIn in der pädagogischen Ausbildung lernen, mit solchen Situationen umzugehen, indem man die Schüler zum arbeiten motiviert. Nicht dass man die Schüler überwacht. Es ist traurig, dass stattdessen ein “wir müssen den Schüler mit dem komischen Internet auf die Finger schauen” rauskommt.

P.S. Eine solche Software gibt es in meinem Netzwerk nicht und solange ich hier BOFH bin wird es das auch nicht geben.