Förderjahr 2019 / Project Call #14 / ProjektID: 4533 / Projekt: SIKOSI
Die ersten Prototypen stehen zur Verfügung und werden nun evaluiert und intensiv getestet. Einen Auszug davon beschreiben wir in diesem Blogeintrag.
Nach der eher „trockenen“ Konzept und Coding-Phase können wir somit jetzt auch Ergebnisse für Nicht-Techniker sichtbar machen.
Nachfolgend ein Auszug der entwickelten Demo-Projekte.
Smartphone Chat Demo App
Einer der Prototypen wurde als Smartphone-Applikation umgesetzt, in diese SIKOSI-SDKs eingebunden sind.
Diese recht einfach gehaltene Applikation hat eine Registration, ein Login und eine Chat-Funktion. Alles was mit Sicherheit zu tun hat läuft dabei im Hintergrund ab. Näheres später, vorerst einmal ein Screenshot der Applikation, bei dem ein einfacher Chat ersichtlich ist.
Die Verbindung ist hierbei verschlüsselt und die Daten selbst werden verschlüsselt übertragen. Dies verhindert es, dass Daten mitgehört und/oder gestohlen werden können.
Konsolen Account Demo Applikation
Diese Demo ist in erster Linie für Entwickler gedacht. Um schnell etwas auszuprobieren und erste Versuche zu starten ist eine Konsolen-Anwendung zumeist die erste Wahl bei Entwicklern.
Das Projekt verwendet die entwickelte SIKOSI-SRP SDK. Dieses ist eine Implementierung des kryptografischen Protokolls Secure Remote Password welches zur Familie der Password Authenticated Key Exchange Protokolle, abgekürzt PAKE gehört. Verwendet wird es bei Authentifizierungsvorgängen zwischen Client und Server. SRP zeichnet sich dadurch aus, dass sich Client und Server gegenüber dem jeweils anderen authentifizieren können, ohne dabei sensible Daten über das Netzwerk zu übermitteln. Dadurch hat ein passiver Angreifer keine Gelegenheit an relevante Informationen zu gelangen.
Für einen Benutzer ergeben sich durch die erhöhte Sicherheit keine zusätzlichen Schwierigkeiten. Dies zeigt die folgende Demo:
Der erste Schritt ist die Registrierung. Diese wird in üblicher Weise schnell unter Angabe eines Benutzernamens und eines Passwortes abgeschlossen.
Nachdem sich ein Benutzer registriert hat, ist es ihm möglich sich unter Angabe der von ihm bei der Registration gewählten Daten beim Server zu authentifizieren. Wurden die korrekten Daten angegeben ist der Benutzer authentifiziert. Dabei kann sich der Benutzer auch sicher sein, dass der Server auch jener Server ist, bei dem er sich ursprünglich registriert hat.
Sollten vom Benutzer falsche Daten angegeben werden, so wird am Server der Authentifikationsvorgang abgebrochen.
Das besondere an diesem Vorgang ist, dass das gewählte Passwort den Client niemals verlässt und somit niemals übertragen wird. Selbst wenn Daten vom Server gestohlen werden sollten, kann sich ein Angreifer mit den gestohlenen Daten nicht als Client authentifizieren, da am Server keine Passwort-relevanten Daten gespeichert sind.
Dieses Verfahren bietet Schutz vor folgenden Attacken:
- Man-in-the-Middle
- Pishing
- Brute Force
Alternativ steht die Demoapplikation auch in einer Variante zur Verfügung, bei der die Diffie-Hellmann Key Exchange Methode verwendet wird.
Browser Demo Account Webapplikation
Die Mehrfaktor-Authentifizierung (MFA) ist eine Authentifizierungsvariante, welche die "einfache" Authentifizierung um ein Sicherheitsverfahren erweitert. Die Zwei-Faktor Authentifizierung (2FA) ist eine Variante davon. Wenn sich ein Benutzer erfolgreich an der Webapplikation angemeldet hat, kann er die 2FA aktivieren.
Nach Aktivierung der 2FA wird für das Einloggen mit dem Account zusätzlich zu den Benutzerdaten noch ein vom System generierter Code benötigt. Um die 2FA zu aktivieren benötigt der Benutzer ein Smartphone mit einer Authenticator App, wie beispielsweise Google Authenticator oder Microsoft Authenticator. Mit dieser Authenticator App wird ein QR-Code gescannt, der den jeweiligen Benutzer in der App registriert.
Mit diesem Schritt ist 2FA aktiviert, und wird ab sofort bei jedem Login Vorgang genutzt.
Beim nächsten Login erscheint ein zusätzliches Aufforderungsfenster in dem der aktuelle Authenticator Code einzugeben ist, wenn 2FA aktiviert ist. Dieser Code ist in der Authenticator App sichtbar. Es wird alle 30 Sekunden ein neuer Code von der Authenticator App generiert, womit der alte Code seine Gültigkeit verliert.
Next Steps
- Evaluierung der Prototypen
- Intensives Testen der Prototypen
- Erstellung von Checklisten für das Entwickeln sicherer Systeme