Unsere Softwarearchitektur
Ist kumppani eine Progressive Web App?
Ja. kumppani wird beim Programmstart in den Browser geladen oder einmalig als Progressive Web App aus dem Browser installiert. Sie läuft auf Desktop, iOS und Android.
Gibt es kumppani im App Store?
Noch nicht. Native Apps für App Store und Google Play sind geplant. Bis dahin ist kumppani als Progressive Web App auf Desktop, iOS und Android installierbar.
Wie funktionieren serverseitige Web Apps?
Eine klassische Online-Web-Applikation führt sämtliche Operationen auf einem Server aus. Die Geräte der Anwender dienen mit Hilfe des Browsers nur der Anzeige und Steuerung. Dafür müssen alle Anwenderdaten für den Server verfügbar sein.
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?
Die App läuft im Browser auf dem Gerät des Anwenders. Bevor Daten zur Synchronisation in die Cloud gehen, werden sie im Browser verschlüsselt. Der Server speichert Chiffretexte; der Betreiber kann Inhaltsdaten nicht lesen.
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 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.Funktioniert kumppani offline?
Ja, weitgehend. Die Anwendung arbeitet in der Browser-Datenbank auch ohne Internet; synchronisiert wird im Hintergrund, sobald eine Verbindung besteht. Einschränkungen gelten für Login und Rechnungsfinalisierung.
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 funktioniert, wenn zwischenzeitlich mal keine Internetverbindung besteht. 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.Gegenwart & Zukunft
Welche Browser kann ich verwenden?
Vorab die Kurzfassung: Wir unterstützen alle aktuellen Browser auf allen üblichen Betriebssystemen. Geeignet sind grundsätzlich Firefox, Chrome, Safari, Edge und Opera; der alte Internet Explorer ist ausgeschlossen. 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 aktueller Browser 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. Microsoft ist aus diesem 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 Version 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 lange Geschichte dahinter
Dr. Thomas Naujokat