Installation der App

Installation der App

Der STP.Documents.OnPremise Mobile DESK ist eine Progressive Web App (PWA) und funktioniert daher auf jedem modernen Browser. Eine Installation aus einem App Store entfällt also.

Um die App auf das Handy zu bekommen scannen die Anwender entweder den QR-Code, der nach erfolgreicher Installation des Agenten auf der Info-Seite angezeigt wird und vom Kanzleiadmin per Email verschickt werden kann, oder sie navigieren ihren Browser nach https://...stp-cloud.de/documents. Jetzt kann die App entweder weiterhin im Browser genutzt werden, oder sie kann auf den Home Screen gepinnt werden. Das platzieren auf dem Home Screen ist typisch für PWAs. Dort hat sie dann ein eigenes Icon und kann neben jeder anderen App angeordnet werden.

Benutzeranmeldung

Nach dem Öffnen der App erfolgt zunächst die Benutzeranmeldung. Hier muss sich der Anwender mit seinem Benutzernamen und Passwort anmelden. Dadurch wird sichergestellt, dass der Anwender überhaupt berechtigt ist, die App zu nutzen und sich mit dem On-premise-System seines Tenants zu verbinden. Hier sollte zusätzlich "Anmeldedaten merken" angehakt werden, sodass die Login-Sitzung länger bestehen bleibt.

Bei der Anmeldung wird ebenfalls überprüft, ob der anmeldende Benutzer auch mit einem On-premise-Benutzerkonto des On-premise STP UserManagement verknüpft ist. Diese Verknüpfung ist wichtig, um die Anfragen an STP.Documents.OnPremise im Namen des richtigen Benutzers durchführen zu können. Damit können dann nur die Daten angefragt werden, auf die der Anwender in STP.Documents.OnPremise auch wirklich Zugriff hat.
Ist diese Verknüpfung nicht vorhanden, beschwert sich die App, dass dieser Benutzer in der On-premise-Umgebung nicht bekannt ist. Der Benutzer kann dann im On-premise STP UserManagement der Gruppe CloudAccess hinzugefügt werden und erhält dadurch die Verknüpfung. Ob die Verknüpfung besteht, kann auch im Benutzerprofil der Cloud-Benutzers mit einem Doppelklick auf die E-Mail-Adresse festgestellt werden.

Geräteanmeldung

Nach der erfolgreichen Benutzeranmeldung erfolgt die Geräteanmeldung. Dazu wird der geheime Schlüssel verwendet, um eine Ende-zu-Ende-verschlüsselte Verbindung mit dem Agenten in der On-premise Umgebung herzustellen.

Bei der ersten Benutzung erkennt die App automatisch, dass noch kein Gerät eingerichtet ist und geht automatisch in den Einrichtungsmodus. In der Default-Einstellung können bis zu fünf Geräte pro Benutzer registriert werden. Zunächst ist es wichtig, den Fingerprint des öffentlichen Schlüssels des Agenten, wie er in der App angezeigt wird, mit dem Fingerprint des Agenten auf der Info-Seite oder der Email des Kanzleiadmins zu vergleichen. Dadurch wird sichergestellt, dass die Ende-zu-Ende-verschlüsselte Verbindung mit dem richtigen Endpunkt gestartet wird (Trust On First Use).  Anschließend wird ein geheimer Schlüssel und ein öffentlicher Schlüssel zufällig generiert. Der öffentliche Schlüssel wird an den Agenten geschickt, sodass zwischen App und Agent mittels kryptografischer Verfahren eine sichere Verbindung hergestellt werden kann. Der geheime Schlüssel darf nicht öffentlich werden und muss sicher verwahrt werden. Die Sicherheit der App ist also direkt an die Sicherheit dieses geheimen Schlüssels geknüpft.

Schlüsselverwaltung

Für eine Web-Anwendung ist es inhärent schwierig, einen geheimen Schlüssel geheim zu halten. Der STP.Documents.OnPremise Mobile DESK unterstützt dazu drei verschiedene Mechanismen. Die Mechanismen bieten unterschiedliche Grade an Sicherheit und Einfachheit. Es kann also entweder eine sicherere oder eine komfortablere Einstellung gewählt werden, je nach Risiko und Kanzlei-Sicherheitsniveau.

Passwort Manager

Die empfohlene Weise, den geheimen Schlüssel geheim zu halten, nutzt den Passwort Manager des Geräts. Alle Browser bieten Unterstützung für diesen Mechanismus. Passwort Manager sind dafür entwickelt worden, Geheimnisse zu schützen und eigenen sich daher hervorragend als Speicher für den geheimen Schlüssels des STP.Documents.OnPremise Mobile DESK. Der geheimen Schlüssel wird also wie ein 214 Zeichen langes Passwort behandelt.

Bei der Registrierung wählt der Anwender einen Gerätenamen. Der geheime Schlüssel wird automatisch generiert und darf nicht manipuliert werden. Wenn der Anweder die Schaltfläche "Verbinden" betätigt, wird der Passwort Manager des Geräts anbieten, den geheimen Schlüssel sicher zu speichern. Der Anwender bestätigt.

Sollte der Password Manager nicht anbieten den geheimen Schlüssel zu speichern, muss sichergestellt werden, dass der Password Manager aktiv ist. Auf iOS kann leider nur die iOS Keychain diesen Dialog anzeigen. Daher muss diese für die Verwaltung des geheimen Schlüssels verwendet werden.

Nachdem der geheime Schlüssel im Password Manager hinterlegt wurde, fordert der die App auf, diesen zu verwenden. Dazu klickt der Anwender in das Feld für den Gerätenamen und wählt den geheimen Schlüssel aus dem Password Manager aus. Dadurch wird sichergestellt, dass der geheime Schlüssel korrekt gespeichert wurde und für Logins verwendet werden kann. Anschließend wird die Registrierung abgeschlossen. Die Authentifizierung mit dem geheimen Schlüssel ist erfolgreich eingerichtet. Der Administrator muss das Gerät jetzt freischalten, sodass die App eine Verbindung aufbauen kann.

Bei jedem Öffnen der App kann der geheime Schlüssel dann aus dem Passwort Manager in die App geladen und eine sichere Verbindung aufgebaut werden.

STP.SecretService

Sollte die App in einer Umgebung genutzt werden, die die Verwendung von installierten Passwort Managern erschwert, kann diese Alternative genutzt werden. Der geheime Schlüssel wird hierbei in einem von STP in der Cloud gehosteten Passwort Manager hinterlegt werden, dem STP.SecretService. Da der geheime Schlüssel das Gerät allerdings nicht verlassen sollte, wird er zunächst mit einem Pin verschlüsselt und anschließend nur verschlüsselt im STP.SecretService abgelegt.

Um diese Alternative zu verwenden, kann bei der Registrierung des neuen Geräts die gelbe Option ausgewählt werden. Nach dem Betätigen der "Verbinden"-Schaltfläche erscheint jetzt eine Pin-Eingabeaufforderung anstelle des Password Managers. Der Anwender kann hier eine Pin frei wählen, um den geheimen Schlüssel damit zu verschlüsseln. Der verschlüsselte geheime Schlüssel wird dann in der Cloud gespeichert und steht dem Anwender zur sicheren Verwendung zur Verfügung. Im letzen Schritt der Registrierung, erscheint der verschlüsselte geheime Schlüssel als Button überhalb der Eingebefelder.

Wenn der Anwender diesen Button klickt, erscheint wieder die Pin-Eingabeaufforderung. Nur mit dem korrekten Pin kann der geheime Schlüssel entschlüsselt werden. In diesem Fall wird der geheime Schlüssel und der Gerätename in die Eingabefelder eingetragen, wie durch einen Passwort Manager. Der Anwender kann die Registrierung dann abschließen. Sollte an dieser Stelle der Password Manager des Geräts anbieten den geheimen Schlüssel zu merken, kann der Password Manager Dialog abgebrochen werden, da der geheime Schlüssel bereits in der Cloud gespeichert wurde. Der Administrator muss das Gerät jetzt freischalten, sodass die App eine Verbindung aufbauen kann.

Bei jedem Öffnen der App kann der geheime Schlüssel dann über den Button überhalb der Eingabefelder verwendet werden. Um den geheimen Schlüssel verwenden zu können, muss die korrekte Pin zur Entschlüsselung eingegeben werden.

Im Browser

Der geheime Schlüssel kann auch direkt im LocalStorage-Speicher des Browsers hinterlegt werden, sodass beim Starten der App keine weitere Auswahl aus dem Passwort Manager oder die Eingabe eines Pins erforderlich ist.

Während diese Alternative die anwenderfreundlichste Option darstellt, ist sie gleichzeitig auch die unsicherste. Der LocalStorage-Speicher im Browser wird zum Beispiel gelehrt, wenn die Browser Caches gelöscht werden. In dem Fall wäre der geheime Schlüssel dann verloren und das Gerät müsste erneut registriert werden. Außerdem kann der LocalStorage-Speicher im Browser durch JavaScript ausgelesen werden, sodass im Falle eines erfolgreichen Webseitenübergreifenden-Skripting-Angriffs (Cross-Site-Scripting oder XSS) der geheime Schlüssel ausgelesen werden kann. Die App versucht XSS-Angriffe zu verhindern, indem zum Beispiel keine JavaScript-Direktiven verwendet werden, die bekannterweise anfällig für XSS sind. Ein garantierter Schutz ist das aber leider nicht.

Um diese Alternative zu verwenden, kann bei der Registrierung des neuen Geräts die rote Option ausgewählt werden. Nach dem Betätigen der "Verbinden"-Schaltfläche erscheint jetzt nur eine Hinweismeldung, die auf das Risiko dieser Einstellung hinweist. Der Anwender kann die Registrierung dann abschließen. Der Administrator muss das Gerät jetzt freischalten, sodass die App eine Verbindung aufbauen kann.

Bei jedem Öffnen der App wird der geheime Schlüssel dann automatisch aus dem Browserspeicher in die App geladen, sodass keine weitere Eingabe erforderlich ist.