Weiter geht´s - Mit Lust auf Mehr
Technisches Konzept, Systemarchitektur, Sicherheitsniveau Matrix (17.03.2020)
Förderjahr 2019 / Project Call #14 / ProjektID: 4533 / Projekt: SIKOSI

Entwicklung der Systemachitektur und Erstellen eines Konzeptdokuments führen direkt in die Erstellung der Fragebögen für Entwickler.

Ziele

  • Detaillierte Interviews mit Entwickler
  • Definition der Sicherheitsniveau Matrix
  • Definition der Clientfunktionalität im Hinblick auf eine große Reichweite
  • Sammlung von Informationen und Technologien von sicherer End-Zu-End Kommunikation und Speicherung von Daten
  • Ermittlung verwendbarer Technologien im Hinblick eines Krypto-System
  • Evaluierung der zu verwendenden Open Source Algorithmen und Bibliotheken
  • Erstellung einer Systemarchitektur
  • Projektanlage, Github Anlage, Software Projekt aufsetzen

 

Entwicklerfragebogen

Um eine möglichst objektive Befragung von Entwicklern durchführen zu können, wurde ein Fragebogen entwickelt. Wir laden alle Entwickler ein teilzunehmen! Nehmt Euch etwas Zeit - umso besser Eure Antworten umso besser unser Projekt.

Hier geht´s zum Fragebogen.

 

Sicherheits Matrix

Sicherheitsmatrix

Minimale Sicherheit

Die minimale Sicherheitsstufe sollte grundsätzlich nur gewählt werden, wenn es sich um keine sensiblen Daten bei der Datenübertragung handelt oder es sich um eine rein interne Anwendung handelt. Die minimale Stufe bietet zwar grundsätzlichen Schutz, kann jedoch im Vergleich zu den beiden anderen Sicherheitsstufen nicht dasselbe Maß an Sicherheit gewährleisten. Während der Übertragungsweg per TLS verschlüsselt wird und es einem passiven Angreifer nicht möglich ist, den Traffic  im Nachhinein zu entschlüsseln, ist dieser Vorteil nichtig, wenn es dem Angreifer gelingt sich als Man-in-the-Middle in den Datenaustausch einzuklinken, und den beiden Gesprächspartnern jeweils vorgaukeln kann, er sei der jeweils andere Gesprächspartner.

Eine weitere potentielle Schwachstelle ist die Tatsache, dass die Authentifikation ein Passwort benötigt. Während diese Vorgehensweise durchaus üblich ist, ist sie von einem Sicherheitsstandpunkt betrachtet sehr bedenklich. Nicht nur, dass es wenn auch schwierig möglich ist das Passwort, sobald es über ein Netzwerk übertragen wird, abzufangen und zu entschlüsseln, ergibt sich außerdem das Problem der Speicherung. Die Speicherung der Passwörter so wie es die minimale Sicherheitsstufe vorsieht, nämlich unter der Verwendung von einem Hash Algorithmus, ist zwar nicht per se als unsicher zu werten, jedoch für die heutige Zeit nicht mehr genug, um von einem ausreichend geschützten System auszugehen. Als Zusatzmaßnahme könnte die Datenbank selbst zusätzlich verschlüsselt werden, wodurch es insgesamt schwerer würde, an die Passwort Hashes zu gelangen, jedoch das Problem insgesamt nicht gelöst wäre, dass die Passwörter irgendwo gespeichert und über das Netzwerk übertragen werden müssten.

Ausreichende Sicherheit

Im Gegensatz zur minimalen Sicherheitsstufe wird bei dieser Stufe nicht die Verbindung selbst, sondern die Daten verschlüsselt. Um zu verhindern, dass ein passiver Angreifer der sich in die Verbindung einklinkt die gesendeten Datenpakete entschlüsseln kann, wird hier ein sogenanntes Key-Agreement Protokoll zur Verwendung gezogen.

Diese Art von Protokoll basiert darauf, dass der Schlüssel mit dem die Daten verschlüsselt werden nicht von einer Seite generiert und daraufhin der anderen Seite übermittelt wird, sondern sich beide Parteien auf eine Weise auf den Schlüssel einigen, die es nicht zu lässt, dass ein (oder mehrere) unbefugter Dritter diesen Schlüssel eruieren kann.

Key Agreement Protokolle werden im Konzept in einem eigenen Kapitel genau erklärt. Die grundsätzliche Funktionsweise beläuft sich jedoch darauf, dass sich beide Parteien auf eine gemeinsame Basis sowie einen gemeinsamen Modulo einigen, daraufhin jeweils eine geheime Zahl wählen, und Berechnungen durchführen an deren Ende beide dasselbe Ergebnis vorliegen haben, ohne jemals genug Informationen über das Netzwerk gesendet zu haben, um es einem Angreifer zu ermöglichen, auf das Passwort rück zu schließen.

Um der bereits angesprochenen Problematik der Authentifikation mit Passwort entgegen zu wirken, verwendet diese Sicherheitsstufe für die Authentifikation ein Protokoll das nach dem Zero-Knowledge-Prinzip vorgeht. In einem späteren Kapitel wird auf dieses Prinzip inklusive zweier Protokolle die danach vorgehen genauer eingegangen, die grundlegende Idee eines solchen Protokolls beläuft sich jedoch darauf, bei der Authentifikation am Server dem Server lediglich zu beweisen das Passwort zu kennen, ohne jemals in die Notwendigkeit geraten das Passwort direkt zu übermitteln, wodurch dieses weder aus einer Datenbank ausgelesen, noch während des Transports abgefangen werden kann.

Maximale Sicherheit

Die maximale Sicherheitsstufe setzt es sich wie unschwer aus dem Namen abzuleiten ist zum Ziel, das höchste Maß an Sicherheit zu bieten. Wie auch bei der vorigen Variante werden hier die Daten selbst mithilfe eines Key-Agreement Protokolls verschlüsselt. Um zusätzliche Sicherheit zu bieten, findet die Datenübertragung hier jedoch ebenfalls verschlüsselt statt. Wie auch bei der ausreichenden Sicherheitsstufe findet die Authentifikation des Benutzers nicht über ein Senden des Passworts, sondern über das Zero-Knowledge Prinzip statt. Für jene sensiblen Daten, die in der Datenbank gespeichert werden müssen, beispielsweise den User Verifier und das User Salt (siehe Zero-Knowledge Prinzip), wird ein Verschlüsselungsalgorithmus gewählt. Außerdem ist es vorgesehen, dass zusätzlich zu den Daten noch die Datenbank auf Feldebene verschlüsselt wird. Mögliche Verschlüsselungsalgorithmen werden im Konzept detailliert behandelt.

 

Systemarchitektur

Wie bereits erwähnt ist das Ziel von SIKOSI die Schaffung von SDKs die von Softwareentwicklern leicht eingebunden werden können. Konkret heißt das, dass SIKOSI als NuGet oder als Bibliothek in ein bestehendes Projekt eingebunden werden kann. Sobald dies erfolgt ist, kann SIKOSI beim Datentransport und bei der Datensicherung „zwischengeschaltet“ werden. Angenommen, der Datenverkehr in einem Projekt läuft vor der Einbindung von SIKOSI so ab, dass Daten direkt und unverschlüsselt empfangen und versendet werden (siehe Abbildung „Vergleich des Ablaufs ohne und mit SIKOSI“).

Dann ist das Ziel, dass der Entwickler SIKOSI zu seinem Projekt hinzufügt und als zusätzliche Schicht zwischen Versand und Empfang einbindet. Dadurch kann er sicherstellen, dass die Daten sicher versendet und empfangen werden (Siehe Abbildung „Vergleich des Ablaufs ohne und mit SIKOSI“). Die gleiche Vorgehensweise kann für das Sichern und Laden von Daten direkt auf einem Gerät verwendet werden.

 

Systemarchtitektur

 

 

 

Tags:

Systemarchitektur Entwicklerfragebogen Sicherheitsmatrix

Markus Hohlagschwandtner

Profile picture for user hohlagschwandtner@fotec.at

Skills:

Datenbanken
,
Paymentsysteme
,
Machine Learning
,
Projektmanagement
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.
    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, können Sie Ihre Einwilligung jederzeit via unserer Datenschutzerklärung anpassen oder widerrufen.