W2018-ITS
Vorträge
Freitag 12.10. 2018, Rudower Chaussee 25, Haus 3, Raum 3'101
10:00-11:00 | Nitrokey: Potezial & Perspektiven | Jan Suhr | |
11:00-11:15 | Pause: Snack & Schnack | ||
11:15-12:00 | CredentialProvider zum Windows Login mit Personalausweis | Melina, Justus, Michael | |
12:00-13:00 | Pause: Mittag | ||
13:00-13:30 | The Future "Web on Speed" | Sebastian M. | |
13:30-14:00 | Sicheres OpenVPN | Jan | |
14:00-14:30 | WireGuard | Tobias, Sascha | |
14:30-15:00 | SPAM | Natalie | |
15:00-15:15 | Pause: Snack & Schnack | ||
15:15-16:00 | Angriff auf WPA2, -> WPA3 | Sophia, Leonie, Malte | |
16:00-16:30 | WPA3 Dragonfly Handshake | Nikolai | |
16:30-16:40 | Zusammenfassung & Dank | Wolf Müller |
Pro Gruppe ist angedacht: Mindestens 30 Min und mindestens (#Mitglieder) * 15 Min (+ ggf. Demo) zwischen Redezeit und Diskussion und Umbaupause aufzuteilen.
Themen für IT-Security Workshop 1. bis 12. Oktober 2018
Themen rund um den Nitrokey
Der Nitrokey ist eine Open Source Hardware- und Softwarelösung für einen USB-Stick mit integrierter Chipkarte zur hoch-sicheren Verschlüsselung von E-Mails und Daten, sowie zur Authentifizierung. Viele spannende Anregungen für weitere Features und mögliche Beiträge findet man im zugehörigen Git im Abschnitt Ideen.
Links:
SPAM: Massenmails & Tracking vs. Schutz & Individualisierung
[Natalie]
Weltweit beläuft sich der Anteil an Spam-Mails in Unternehmen auf 55% im Juli 2018 (Symantec 2018). Spam sind E-Mails, die ein Empfänger erhält ohne seine Zustimmung. Die zentrale Komponente für die Übertragung SMTP in der aktuellen Spezifikation RFC 5321 führt fast keine Sicherheitsaspekte. Zu Sender zählen Scammers z. Bsp. mittels Phishings und professionelle Unternehmen z. Bsp. mittels Marketingaktionen. Der Empfänger stimmt in der einen Extreme E-Mails zu, die etwas aufzeigt, was er unbewusst wünscht. Er lehnt in der anderen Extreme E-Mails ab, die Betrugsversuche sind. Schutz vor Spam auf dem Übertragungsweg umfassen inhaltsbasiertes Filter, Filter auf der Ebene von SMTP und bzw. oder IP, Aufwandserhöhung für den Versand von E-Mails und die Authentifizierung von Absendern. Sender verfolgen Motive mit einem sehr geringen Ressourcenaufwand viel Geld zu verdienen oder individualisierte Werbung. Definition, Einordnung und Überblick bilden theoretische Grundlagen mit dem Fokus auf die Gegenüberstellung von Massenmails & Tracking vs Schutz & Individualisierung. Die Betrachtung der Spam-Filter der größten E-Mail Anbieter (nach registrierte Nutzer und eingehende/ausgehende E-Mails) bildet den praktischen Teil.
Links:
- Symantec 2018: Anteil an Spam Mails in Unternehmen weltweit bis Juli 2018
- Greylisting
- Bender et al 2018: Track and Treat - Usage of E-Mail Tracking for Newsletter Individualization
- Google AI: Research about spam-filters
Mentor: Wolf Müller
MiOSync auf Schwachstellen untersuchen
Das Tool entsteht im Rahmen meines Studienprojektes und hat zum Ziel Dropbox-ähnliche Funktionalität zu bieten. Als Open Source Projekt mit der Option des Selbsthostings, ähnlich wie Next/Own/xyzCloud, soll ein hohes Maß an Transparenz erreicht werden. Da die Daten auf dem Client verschlüsselt werden und der Server nie mit dem Klartext in Kontakt kommt, soll ein besonders hohes Maß an Sicherheit gewährleistet werden. Inhalt des Workshops ist ein Security Audit mit dem gegebenen Quellcode. Da sich das Tool noch in Entwicklung befindet, ist auch eine Weiterentwicklung der Protokolle willkommen.
Mentor: Michael Offel
CredentialProvider zum Windows Login mit Personalausweis
[Melina, Justus, Michael]
Passworte als häufigst verwendete Authentisierungsmethode stoßen zusehends an Grenzen. Windows gestattet aber auch eine tokenbasierte Authentisierung. Allerdings sind Hardwaretoken noch nicht überall verbreitet und erfordern ggf. zusätzliche Investitionen. Der ab 2010 eingeführte neue Personalausweis jedoch ist bereits in den Taschen vieler und er hat mit der eID-Funktion eine kryptografisch starke Authentisierung an Bord. Kann diese benutzt werden, um sich an einem Windows-System sicherer anzumelden?
Links:
Mentor: Frank Morgner
UAF Java Card Applet
Java Cards sind Smartcards, die eine spezielle JVM zur Ausführung verschiedener Smartcard-Anwendungen (ggf. unterschiedlichen Sicherheitsdomänen) gestatten. Einzelne Anwendungen können als Applet (wenn die nötigen Rechte und Schlüssel vorhanden sind) auf eine Karte als sichere Ausführungsumgebung gebracht werden. Eine vielversprechende und daher wünschenswerte Anwendung wäre ein Applet das die FIDO UAF (Universal Authentication Factor) Funktionalität sicher auf einer Java Card zur Verfügung stellt. Mit FIDO UAF ist dann eine standardkompatible und privatsphäreschonende Authentisierung gegenüber einer rasant wachsenden Zahl von Diensten möglich.
Links:
Mentor: Frank Morgner
Sicheres OpenVPN
[Jan]
OpenVPN ist eine gute Möglichkeit, seine Kommunikation durch öffentliche Netze abzusichern oder sich logisch in die HU oder in das Institut für Informatik zu begeben. Untersuchen Sie, wie diese Verbindungen (hu-berlin.ovpn und am Institut) konfiguriert sind, und welche Verbindungen zwischen Server und Client ausgehandelt werden. Hierbei gibt es zu beachten, dass es OpenVPN eine Kontrollverbindung zur Authentisierung und Schlüsselvereinbarung und eine Datenverbindung zum sicheren Transport der eigentlichen Daten nutzt. Für einen aktuellen OpenVPN-Clienten kann man die die Möglichkeiten für eine TLS-Absicherung der Kontrollverbindung mit openvpn --show-tls
und die Absicherungsmöglichkeiten der Datenverbindung mit openvpn --show-ciphers
einsehen. Versuchen Sie eine effiziente, starke und auch möglichst interoperable Konfiguration zu erstellen, die mit aktueller Software den Zugriff unter Linux, Mac, Windows, iOS und Android gestattet. Verschaffen Sie sich einen Überblick. Welche Vor- / Nachteile haben die Modi CBC, CFB, CFB1, CFB8, OFB und was bewirken diese überhaupt? Was ist "authenticated encryption"? Hilft Kryptografie mit elliptischen Kurven, einen effizienten Handshake hinzubekommen openvpn --show-curves
. Ist die Verbindung "forward secure"? Können bereits die Kontrollpakete mit der Option --tls-crypt
verschlüsselt werden? Was empfiehlt das BSI in der Richtlinie BSI TR-02102-2?
Welche Plattformen werden unterstützt? Schreiben Sie ein Verwaltungsscript, welches:
- eine geeignete (lokale) CA aufsetzt,
- Serverzertifikate signiert,
- Nutzerzertifikate signiert,
- eine Revocationliste pflegt,
- Konfigurationsfiles für Linux, Windows, iOS, Android für die Nutzer generiert.
Links:
Mentoren: Wolf Müller, Robert Sombrutzki
WireGuard
[Tobias, Sascha]
Mit WireGuard erscheint ein neuer Kandidat für ein sicheres VPN in der Netzwerkwelt. WireGuard behauptet:
- leicht benutzbar,
- kryptografisch modern und Sicher durch Verwendung moderner Primitiven (Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ...)
- bei mininaler (gefährliche Formulierung ;-), besser geringer) Angriffsfläche und hoher Geschwindigkeit (durch Wahl der Algorithmen und integration in den Kernel) zu liefern.
Probieres Sie es aus und berichten Sie uns Ihre Erfahrungen! Welche Betriebssysteme werden unterstützt?
Links:
Mentoren: Wolf Müller, Robert Sombrutzki
Absicherung NFS
Bei NFS-Freigaben sind hohe Anforderungen an die Integrität des NFS-Clienten gestellt, da allein dieser über die Einhaltung der im exportierten Dateisystem gesetzten Rechte entscheidet. Daher ist es essenziell, dass sich bei dem mountenden Clienten wirklich um den beabsichtigten legitimen Rechner handelt. Der Normalfall ist eine simple Überprüfung der IP-Adresse, die in der /etc/exports angegeben ist.
Untersuchen Sie, welche Verbesserungen hier möglich sind und welchen Aufwand, welche Komplexität die von Ihnen erarbeitenden Lösungen haben. Die verlässlichere Prüfung könnte auf verschiedenen Schichten angesetzt werden. Wünschenswert wäre zumindest eine starke und persistente Authentisierung (z.B. basierend auf privaten Schlüsseln). Denkbar wäre eine Absicherung über SSL/TLS vielleicht mit einem performanten Modus mindestens zur Integritätssicherung (TLS_RSA_WITH_NULL_SHA, TLS_RSA_WITH_NULL_SHA256, ..., TLS_RSA_WITH_AES_128_GCM_SHA256), womit zumindest aktive Angriffe unterbunden werden könnten. Alternativ könnte auch die Verwendung von NFS mit Kerberos helfen. Betrachten Sie das Verhältnis von Sicherheit und Performance.
Links:
Mentoren: Wolf Müller, Robert Sombrutzki
Absicherung NFS (reloaded)
Vielleicht könnte in der Zukunft ja auch WireGuard ein erfolgsversprechender Ansatz sein (erstmal naturlich nur in der Linux-Welt, nicht für Solaris).
Mentoren: Wolf Müller, Robert Sombrutzki
Angriff auf WPA2, was leistet WPA3
[Sophia, Leonie, Malte]
Viele Geräte sind heute drahtlos über 802.11 mit dem Internet verwunden und viele verwenden WiFi für ihre Heimnetzwerk. Während WEP hoffentlich fast gar nicht mehr Verwendung findet und leicht angreifbar ist, sind Angriffe auf WPA2 nicht völlig unmöglich. Insbesondere ist es möglich einen WPA-PSK-Schlüssel offline mit beachtlichen Ressourcen anzugreifen und bei einem nicht ausreichend starken Schlüssel diesen auch zu bestimmen. Versuchen Sie, einen solchen Angriff auf WPA2 umzusetzen. Schauen Sie sich WPA3 an und versuchen Sie zu verstehen, was wie verbessert wurde. Versuchen Sie, eine Implementierung zu finden und ggf. WPA3 auszuprobieren.
Links:
Mentoren: Wolf Müller
WPA3 Dragonfly Handshake
[Nikolai]
Ursprünglich sollte WPA3 vier Verbesserungen gegenüber WPA2 bringen:
- Den Dragonfly Handshake, der es unmöglich macht einen Offline Fictionary Angriff auf den PSK durchzuführen.
- Eine einfache Methode neue Geräte zu dem Netzwerk hinzuzufügen. Vermarktet unter dem Namen Wi-Fi Easy Connect.
- Vergrösserte Schlüssellängen mit 192 bit Sicherheit.
- Automatische Verschlüsselung wenn man sich mit einem offenen Netzwerk verbindet.
- Protected Management Frames, zähle ich nicht zu den Verbesserungen von WPA3, da dieses Feature auch für WPA2 erforderlich wird.
Leider wurde nur der Dragonfly Handshake ein verbindlicher Teil von dem neuen WPA3 Standard. Die anderen drei Punkte sind nicht zwingend erforderlich und können unabhängig von WPA3 vermarktet und implementiert werden.
Ziel dieses Themas sollte es sein den Dragonfly Handshake (Simultaneous Authentication of Equals) zu verstehen und versuchen mit Python (Scapy) oder C nachzubauen. Nachdem der grundlegende Handshake implementiert ist, sollen Möglichkeiten des logischen Fuzzens gesucht werden, denn Fuzzing dürfte insofern interessant sein, da viele Hersteller eine neue (wahrscheinlich Fehlerhafte Implementierung) auf dem Markt bringen werden, sollte sich denn WPA3 durchsetzen.
Links:
Mentoren: Wolf Müller
Informatik-Sync-Server für Firefox
Die Authentisierung mittels (Name,Passwort) wird nach wie vor von vielen Diensten im Internet verwendet. Der Nutzer ist bei der Vielzahl der Dienste schlichtweg überfordert, sich all diese zu merken. Als Konsequenz wurden Lösungen wie Single Sign On oder Open ID vorgeschlagen. In der post-Snowden-Ära gibt es jedoch Bedenken, die Authentisierung an eine dritte Partei auszulagern, da diese auch im Namen des legitimen Nutzers ohne diesen eine erfolgreiche Authentisierung bewerkstelligen könnte.
Einen anderen Ansatz bieten Passwortmanager. Hier wird dem Benutzer angeboten, mit Hilfe (eines hoffentlich starken Masterpassworts) den Zugang zu den Authentisierungsdaten für die einzelnen Dienste abzusichern. Die Referenzdaten dazu können beispielsweise lokal verschlüsselt gespeichert werden. Allerdings ist es ggf. wünschenswert, den Passwortmanager auch auf verschiedenen Geräten nutzen zu können. Eine Lösung die auch die Synchronisierung zwischen verschiedenen Geräten vorsieht, ist Firefox Sync" was auch direkt im Firefox ohne zusätzliche Plugins oder Erweiterungen nutzbar ist.
Jedoch werden die (zwar verschlüsselten) Referenzdaten auf einem zentralen Server gespeichert. Hier wäre es wünschenswert, eine Lösung umzusetzen, die eine Speicherung auf unserem eigenen Informatik-Server zulässt.
Links:
- Run your own Sync-1.5 Server
- Run your own Firefox Accounts Server
- Ansible
- Eigener Sync-Server für Firefox
Mentoren: Wolf Müller, Robert Sombrutzki
DNSSEC@Informatik
Eigentlich wird schon lange über die sichere Variante von DNS gesprochen. Dennoch ist die HU und auch unser Institut noch nicht über DNS-SEC von außen validierbar. Für die Domain hu-berlin.de hat das CMS schon Grundlagen geschaffen, aber die Einbindung nach oben ist noch nicht erfolgt.
Erarbeiten Sie ein Konzept und versuchen Sie, exemplarisch einige Schritte umzusetzen. Welche Software wird benötigt, um eine Zone zu signieren. Wie können Schlüssel sicher aufbewahrt werden. Was ist mit dynamischen Einträgen?
Welche Vorteile bietet DNSSEC bei erfolgreicher Validierung? Mit DANE können auch weitere Felder über DNSSEC ausgeliefert werden. Denkbar wäre zum Beispiel auch SMTP mithilfe von DANE stärker zu machen oder auch SSH-Fingeprints von Informatikrechnern automatisch ausliefern zu lassen und so Trust-on-First-Use oder das manuelle Vergleichen mit unserer Liste zu überwinden.
Links:
Mentoren: Robert Sombrutzki, Wolf Müller
DNS-over-HTTPS (DoH)
Das DNS-Protokoll stammt aus dem letzten Jahrtausend und weder Authentizität noch Vertraulichkeit der übertragenen Daten sind sichergestellt. Wenn man also in einem öffentlichen Netz unterwegs ist, kann eine recht genaues Profil erstellt werden, zu welchen Diensten man sich verbindet. Daher könnte es eine gute Idee sein, DNS-Anfragen durch HTTPS zu tunneln. Wenn wir dem Endpunkt Trusted Recursive Resolver (TRR) vertrauen, können Interessierte in der Mitte weniger über genutzte Dienste erfahren und insbesondere keine DNS-Antworten unbemerkt modifizieren. DoH ist bislang (kaum verwunderlich) vorwiegend für Browser angedacht. So unterstützt Firefox DoH ab Version 62 und verspricht eine verbesserte Privatsphäre durch Anwendung dieser Technik. Allerdings müssen die Nutzer dem TRR und insbesondere seine Policy zum Datenschutz stark vertrauen. Steht der TRR in einer anderen geografischen und damit oft juristischen Domain (Mozilla schlägt aktuell Cloudflare 1.1.1.1 vor), so gibt es ggf. für "Bedarfsträger" trotz der Policy rein praktisch die Möglichkeit zum Zugriff auf diese nun zentralisiert gewonnenen Daten. Daher wäre es interessant, einen eigenen DoH-Server zu betreiben und zu nutzen. Versuchen Sie einen eigenen Server zu etablieren, der idealer Weise (wo es möglich ist) bereits DNSSEC zur Beschaffung valider DNS-Antworten verwendet. Kann man diesen Service auch zuhause umsetzen? Könnte er auf einem WLAN-Raouter (OpenWRT oder Fritz!Box) untergebracht werden?
Links:
Mentoren: Wolf Müller
Absicherung KNXD
Der Zugriff auf KNX-Komponenten im Heimnetzwerk (KNX-Bus) kann mit Hilfe der Open Source Software knxd vom Netzwerk erfolgen. Sinnvoller Weise wird der Dienst so konfiguriert, dass er nur im Heimnetzwerk (also in der Regel in einem privaten Netzwerk) verfügbar ist. Dennoch eröffnet sich damit die Möglichkeit ohne eine weitere Authentisierung auf KNX-Komponenten zuzugreifen. So könnte ein bösartiges Gerät (Fernseher, Staubsauger, Smarter Lautsprecher) die mit meinem Heim-IP-Netzwerk verbunden sind, diese Möglichkeit ausnutzen, um Zugriff auf beispielsweise die Heizungssteuerung oder Türschlösser zu erlangen. Wünschenswert wäre hier eine stärkere Authentisierung. Ideen/Priobleme:
- TLS mit Clientzertifikaten statt TCP-Socket?
- Geht da was mit Wireguard?
- TLS könnte in den Code von knxd integriert werden.
- ETS 5 kann nicht modifiziert werden, geht da was mit stunnel?
- Alternativ könnte man auch versuchen, eine Authentisierung gemäß KNX-IP-Secure Standard umzusetzen, was aber eher für eine Masterarbeit geeignet ist.
Links:
Mentoren: Wolf Müller
Sicherer und schneller SSL/TLS-Handshake
Nach den Enthüllungen von Edward Snowden haben wir verstanden, warum authentische und vertrauliche Kommunikation wichtig ist. Naiv betrachtet, könnte man denken, es ist ausreichend "s"-Protokolle wie https, imaps, pops ... zu verwenden und alles ist gut. Es ist in Praxis jedoch wesentlich komplexer eine unter dem gegenwärtigen Angreifermodell hinreichend starke SSL/TLS-Verbindung zu erzwingen.
In der Vergangenheit wurden zahlreiche teils sehr originelle Angriffe auf SSL/TLS entwickelt, die Seitenkanäle oder auch Probleme im Protokollentwurf oder der Implementierung adressieren. Weiterhin ist es wünschenswert, "forward secureness" zu nutzen, da auch nicht für jeden Server der private Schlüssel immer privat bleiben muss.
Versuchen Sie für einen aktuellen SSL/TLS-Server (z.B. Apache oder NGINX) eine möglichst sichere Konfiguration zu erstellen. Eine gute Orientierung bietet die Technische Richtlinie "BSI TR-02102-2" Behalten Sie dabei auch die Performance für den Handshake im Auge:
- Könnte die Nutzung von ECC hier weiter helfen?
- DH oder ECDH?
- Was muss ein sorgsamer Client alles prüfen, wie kann ihn der Server dabei unterstützen?
- Kann man die gesamte Zertifikatskette auch ECC-signiert bekommen?
- Was ist OCSP-stampling
- Was bringen die einzelnen Maßnahmen?
Links:
Mentor: Wolf Müller
The Future "Web on Speed""
[Sebastian M.]
Wo geht die Reise in der Standardisierung hin? Weniger Optionen, schnellerer Handshake, schneller Transport. Gibt es bereits erste Implementierungen des neuen Standards? Was gibt OpenSSL 1.1.* her. Welche Optimierungen können bei der eigentlichen vertraulichen und authentischen Übertragung helfen?
- Ciphersuites auch aus TLS 1.3 ChaCha20
- Hardwareunterstützung von AES
- Einsparung von Kontextwechseln SSL/TLS-Kernel-Support
- Integration mit OSI-Layer 7 HTTP/2
Links:
Mentor: Wolf Müller