In diesem Artikel möchte ich die Sicherheitsarchitektur der cloud-Lösung beschreiben.
Ich werde dabei auch etwas in die technischen Details gehen, soweit notwendig und hilfreich.
Auktuell benötigt das System mindestens zwei Server:
Zu letzterem komme ich in einem weiteren Artikel, zunächst möchte ich den Anwendungsserver beschreiben und warum er sicher ist.
Die einfachste Methode um den Zugriff auf einen Server zu limitieren, ist, die Anzahl der offenen Ports zu reduzieren. Daher hat der Anwendungsserver nur zwei offene Ports:
Der Zugriff auf den Server ist also immer verschlüsselt und der Management-Zugang nur durch nicht erratbare Schlüssel erreichbar.
Es gibt für alle Benutzer nur eine Anwendungsinstallation, so dass sich ein Update immer auf alle auswirkt. Dabei bleibt die alte Version stets erhalten, so dass im Fehlerfall schnell auf diese zurück gewechselt werden kann.
Die von den Benutzern hochgeladenen Dateien liegen dabei außerhalb des Versionsverzeichnisses.
Um die unterschiedlichen Benutzer untereinander zu trennen und einen gegenseitigen Zugriff auf die Daten zu verhindern, erhält jeder Benutzer eine eigene Datenbank im MySQL-Server mit eigenem MySQL-Benutzer, der nur auf diese Datenbank zugreifen kann.
Diese Zugangsdaten werden in einer Datenbank gespeichert, an Hand der ID in der URL ausgelesen und der Anwendung für die Verbindung übergeben. Wenn die ID aus der URL nicht mehr mit dem Datenbankbenutzer übereinstimmt, löscht die Anwendung die Zugangsdaten und sie werden erneut passend ausgelesen. Das verhindert ein gegenseitiges Auslesen der Daten nach bereits gestarteter Anwendung.
Die virtualisierten Server haben den Vorteil, dass sie auf einer viel größeren Maschine laufen, als es ein dedizierter root-Server wäre. Die Verantwortung für die korrekte Funktionsweise der Hostmaschine wird damit an den Provider übertragen, der sich um Festplattenausfälle und andere Probleme kümmern muss.
Außerdem lassen sich virtuelle Maschinen leichter auf neue Instanzen kopieren und umziehen, falls zusätzliche Kapazitäten benötigt werden.