Kumppani ist eine Online- bzw. Web App, hat aber eine Softwarearchitektur, die bisher nicht so oft
verwendet wird. Diese spezielle Architektur erlaubt eine anwenderseitige Ende-zu-Ende-Verschlüsselung
und eine weitgehende Offline-Fähigkeit bei Problemen mit der Internetverbindung. Kumppani wird beim
Programmstart entweder in den Browser geladen oder wird einmalig als "Progressive Web App" (PWA) aus dem
Browser heraus installiert. Unser Serversystem enthält keinerlei Programmfunktionalität. Wir liefern nur
die statischen Dateien an die Browser und betreiben eine zentrale Datenbank, in die aber alle Daten von
unseren Kunden nur verschlüsselt und für uns nicht lesbar übertragen werden. Außerdem speichern wir bei
uns die Hauptschlüssel der Anwender. Aber auch diese sind vorher im Browser verschlüsselt worden und für
uns nicht lesbar.
Wie funktionieren serverseitige Web Apps?
Eine klassische Online Web Applikation führt sämtliche Operationen auf einem sogenannten Server aus. Ein
Server ist ein besonders rechenstarker Computer, der irgendwo in der Welt steht, viele Anwender
gleichzeitig bedient (deshalb Server) und mit einem Speichersystem verbunden ist, das die Daten der
angeschlossenen Anwender speichert. Die Geräte der Anwender (sie heißen dann in der Fachsprache
"Clients") dienen mit Hilfe des Browsers (Firefox, Chrome, Safari,...) nur noch der Anzeige und
Steuerung. Die Funktionalität der App ist weitgehend ausgelagert auf den Server. Daten sind erst "wahr",
wenn sie den Server erreicht haben.
Dafür müssen alle Anwenderdaten für den Server verfügbar sein. Um das sicher zu ermöglichen und zugleich
zu verhindern, dass unberechtigte Personen sich Zugang verschaffen, existieren viele
Sicherheitsmaßnahmen. Aktuell sind z.B. üblich
- die sogenannte Transportverschlüsselung (zu erkennen am Sicherheitsschloss vor der Adresse im
Browserfenster),
- die Authentifizierung des Nutzers durch ein Passwort (und zunehmend durch einen zweiten Faktor auf
einem anderen Kanal),
- die Nutzerdaten werden in den Datenbanken des Anbieters grundsätzlich verschlüsselt gespeichert und
nur zum Verarbeiten kurzfristig in einem speziell gesicherten System entschlüsselt,
- die dafür erforderlichen Schlüssel werden getrennt vom übrigen Anwendungsserver ebenfalls
verschlüsselt gespeichert. Der Anbieter muss diese Schlüssel nicht kennen, aber darauf Zugriff haben.
Trotz aller Bemühungen kann niemand ausschließen, dass es in Einzelfällen Unberechtigten gelingt, an den
Sicherheitsvorkehrungen vorbei in Server eindringen und dort vorhandene Daten ganz oder teilweise
abzugreifen. (Das gilt natürlich auch bei uns.) Es lässt sich leider niemals 100%ig ausschließen, nur
maximal erschweren durch eine saubere Architektur. Aber leider können auch gut gepflegte IT-Systeme neu
entdeckte Sicherheitslücken aufweisen, die angreifbar bleiben, bis ein "Patch" veröffentlicht wird.
Manchmal wurden in der Vergangenheit auch Lücken ausgenutzt, die allgemein noch gar nicht bekannt waren.
Allein durch das hohe Tempo der Weiterentwicklung und die wachsende Komplexität der Hostingsysteme
entstehen immer wieder neue Angriffsflächen. Das gilt selbstverständlich nicht nur für Serversysteme,
sondern auch für die Geräte der Nutzer von Online Anwendungen, deren Geräte nicht so gut gesichert sind
und deshalb deutlich einfacher angegriffen werden können. Allerdings ist die Ausbeute eines gelungenen
Angriffs auf einen Server deutlich größer, als wenn das bei einzelnen Anwendergeräten gelingt.
Was macht kumppani anders?
Man kann eine Web App aber auch so bauen, dass ein Abgreifen von sensiblen Daten zumindest im
Serversystem eines Diensteanbieters noch mehr erschwert wird. Dazu wird die App in den Browser auf dem
Gerät des Anwenders verlagert. Sie läuft dann client- bzw. anwenderseitig. Auf der Serverseite gibt es
dann einen Webserver zur Auslieferung der Anwendungsdateien und eine Datenbank. Aber bevor die Daten zur
Synchronisation mit anderen Geräten zur Datenbank geschickt werden, werden sie im Browser verschlüsselt
mit einem Schlüssel, der nur im Browser zur Laufzeit lesbar vorhanden ist, und der nicht unverschlüsselt
in die Cloud übertragen wird. Alle Operationen und die dafür erforderliche Ver- und Entschlüsselung der
Daten finden im Browser statt.
Das kann wie im Falle von kumppani noch zusätzlich mit einer verschlüsselten Speicherung der Daten in
der Datenbank des Browsers verbunden werden, das muss aber nicht. Aber auch wir müssen auf den Webserver
aufpassen, der die Anwendungsdateien an unsere Kunden ausliefert. Gelänge es, die Dateien dort dort zu
manipulieren, könnte dadurch die Kontrolle über alle angeschlossenen Anwendergeräte erlangt werden.
Dieses Risiko besteht immer, wenn Daten aus dem Internet in den Browser geladen werden.
Anwenderseitige Ende-zu-Ende-Verschlüsselung
Der Vorteil einer Web App, sie auf verschiedenen Geräte parallel benutzen zu können, wird dadurch
gewährleistet, dass die Daten im Gerät des Anwenders verschlüsselt und nur in diesem verschlüsselten
Zustand auf die Remote-Datenbank übertragen werden. Einen Anwendungsserver im oben beschriebenen Sinne
braucht es nicht, und den Schlüssel zum Lesen der Daten benötigen wir auch nicht. Allerdings, das sei
nicht verschwiegen, hat nun der Nutzer die Verantwortung für einen Sicherheitsschlüssel, den sogenannten
"Masterkey", der im Falle des Passwortverlustes den Datenzugriff sichert. Ein erfolgreicher Angriff auf
das Nutzergerät kann auch bei dieser Architektur dazu führen, dass sensible Daten abgegriffen werden.
Das ist unser Angebot: Die Sicherheit, einen Datendiebstahl in der Cloud vermeiden zu können, gegen die
Verantwortung, das eigene System sauber zu halten und auf den Sicherheitsschlüssel aufzupassen (z.B.
durch einen Export auf einen USB-Stick). Das ist derzeit untrennbar verbunden.
Nutzergeräte sind immer gefährdet
Bei allen Online Web Apps ohne Zwei-Faktor-Authentifizierung genügt das Abgreifen oder Erraten des
Passwortes, um Daten auszulesen. Tastatureingaben beobachtende Schadsoftware kann immer auch sensible
Dateneingaben mitschneiden.
Aber auch in allen anderen Szenarien von Computereinsatz kann ein erfolgreicher Einbruch in ein
Nutzergerät mit dramatischen Folgen für die sensiblen Daten verbunden sein kann. Das Abgreifen von
Passwörtern z.B. öffnet den Angreifern auch bei nativen Anwendungen u.U. die Tür zu Daten. Deshalb haben
Vorsicht und Schutzmaßnahmen bei Geräten, die mit dem Internet verbunden sind, größte Bedeutung. Gegen
diese Gefahren hilft auch unsere Architektur nicht grundsätzlich. Eine ausführliche Darstellung und
Diskussion des Themas Datensicherheit hat unser Geschäftsführer Thomas Naujokat im Magazin "Freie
Psychotherapie"
06.22, S. 34 veröffentlicht.
Aus der schon erwähnten Tatsache, dass bei kumppani die Daten in einer Browser-Datenbank im Nutzergerät
vorhanden sind, ergibt sich als weiteres Feature unserer Lösung, dass die Anwendung (abgesehen von
Rechnungsfinalisierung und Login) auch dann funktionieren wird, wenn zwischenzeitlich mal keine Internetverbindung
besteht. Sie wird weitgehend offline-fähig sein. Die Einschränkungen entstehen durch die Erfordernisse
des Steuerrechts.
Sobald wieder eine Netzverbindung besteht, synchronisiert die Datenbank im Hintergrund automatisch alle
Daten.
Nebenwirkungen
Unsere Softwarearchitektur hat aber auch eine spezielle Nebenwirkung, wie du sie eigentlich nur von
installierten Programmen kennst: Es kann passieren, dass besondere Konfigurationen eines Nutzergerätes
bzw. -browsers dazu führen, dass unsere App nicht richtig funktioniert. Wir testen schon eine ganze
Menge, aber wir können nicht alle denkbaren Szenarien bei unseren Kunden vorher überprüfen. Alle
Hinweise auf beobachtete Probleme helfen uns, kumppani weiter zu verbessern. Zögere nicht, uns zu
kontaktieren. Wir lernen aus allen Hinweisen.
Unsere Softwarearchitektur
Gegenwart & Zukunft
Welche Browser kann ich verwenden?
Vorab die Kurzfassung: Wir unterstützen alle aktuellen Browser auf allen üblichen Betriebssystemen. Unsere App funktioniert nicht mit dem Internet Explorer, aber den hat ja nun sogar Microsoft ausgemustert. Wir empfehlen die Verwendung des Firefox, denn der Firefox-Browser wird entwickelt von der Mozilla Stiftung. Das Geschäftsmodell von Mozilla beruht auf Spenden und nicht auf der Monetarisierung von Nutzerdaten. Das passt sehr gut zu unseren Ansatz der Datenverschlüsselung. Etwas ausführlicher: kumppani arbeitet im Browser und verwendet dafür viele aktuelle Webtechniken. Deshalb ist zur Benutzung ein aktuellen Browsers erforderlich. Geeignet sind grundsätzlich: Firefox, Chrome, Safari, Edge & Opera. Diese Browser testen wir regelmäßig in Windows, Linux, macOS, iOS und Android. Der alte Internet Explorer ist von einer Verwendung ausgeschlossen. Leider gibt es zwischen den Browsern immer wieder Unterschiede, welche Webtechniken eingebaut sind und auch in Art, wie das geschieht. Die großen Konkurrenten sind Apple und Google. Mikrosoft ist aus diesen Wettbewerb ausgestiegen und verwendet als technische Basis für Edge den Chromium-Browser, die freie Version von Chrome. Und was viele nicht wissen: in iOS Geräten sehen Firefox und Chrome zwar fast genau so aus wie überall sonst, aber Apple zwingt alle Browserhersteller als technische Basis die Safari-Engine zu benutzen. Und Apple ist in der Übernahme neuer Webtechniken, die sehr häufig von Google vorangetrieben werden, für uns aber durchaus nützlich wären, zögerlich. Bisher haben wir diesen Spagat ganz gut geschafft. Die aktuelle Beta von kumppani unterscheidet sich in den verschiedenen Systemen nicht. Ausnahme ist die Terminerinnerungsfunktion, deren technische Basis Apple erst noch implementieren muss. Der Einbau in MacOS und iOS/iPadOS ist allerdings inzwischen offiziell angekündigt. Ob wir die Funktionsgleichheit langfristig in jedem Detail aufrecht erhalten können, hängt von den Entscheidungen der Hersteller ab.Versionen und Preispläne
Die aktuell verfügbare Version ist kostenlos. Einen
rechtlichen Anspruch auf Support gibt es nicht, dieser wird aber freiwillig jeweils
schnellstmöglich gewährt. Zukünftig wird es dauerhauft eine kostenlose Basisversion und einen
kostenlosen Testmonat mit allen Funktionen geben. Die Preispläne werden wir rechtzeitig vorher
veröffentlichen. Zahlungsdaten müssen nicht hinterlegt werden (Bezahlung per Rechnung).
Die lange Geschichte dahinter
(erzählt aus der Sicht des Initiators und Gründers)
"Ich bin Diplom-Psychologe und arbeite seit 1998 als Heilpraktiker für Psychotherapie, Coach
und Berater für Berufsfindung. Schon sehr bald war ich auf der Suche nach einer
Praxisverwaltung, die mir Verwaltungsaufgaben abnimmt, fand aber nichts, was mich
überzeugt hätte.
Mein Interesse für IT hatte ich bereits 20 Jahre vorher, in meinem ersten Studium entdeckt
(ich bin auch promovierter Biologie) und damals ganz praktisch einen Apple II mit einem
handgestrickten A/D-Wandler hinter ein Messgerät gebastelt.
Seitdem habe ich mich mit IT kontinuierlich nebenher beschäftigt. Die Suche nach einem
rundum passenden Programm blieb bis 2014 erfolglos. In dem jahr begann ich dann mit der
Entwicklung von kumppani, natürlich nicht ganz allein. So gut programmieren kann ich nicht.
Welchen grundsätzlichen Aufbau ich mir von einem solchen Programm wünsche, ist in der
Demo-Version von kumppani zu besichtigen. Ich hatte jedoch damals nicht die blasseste
Ahnung, was mich auf dem Wege zu einer vorzeigbaren Public Beta noch erwarten würde und
wird.
Die hinter uns liegenden Jahre waren eine Zeit größter Herausforderungen.
Eine schmerzhafte inhaltliche Lernkurve, eine intensive Schulung in Durchhaltevermögen
und Disziplin, ein heftiges Auf und Ab von Hoffnung und Enttäuschung. Ich hatte den Ehrgeiz,
diese App ohne die Abhängigkeit von Geldgebern zu entwickeln.
Das macht es natürlich nicht einfacher, das berühmte Vier-Stunden-täglich-neberbei-Startup,
hier wurde es Wirklichkeit. Aber nun ist es vorbei. Es hat wahrscheinlich zu lange
gedauert auf diesem Wege. Kumppani st keine sich durch Abos finanziell tragende Software
geworden.
Bremen, August 2023
Dr. Thomas Naujokat
Dr. Thomas Naujokat