Avilov0.1.0

Daten und Sicherung

Wo Avilo seine Daten ablegt, wie sie geschützt sind und wie Avilo sie sichert.

Speicherort

Avilo kennt zwei Betriebsarten:

  • Ein Arbeitsplatz: Alle Praxisdaten liegen in einer lokalen Datenbankdatei (SQLite), avilo-data.sqlite3, im Datenordner des angemeldeten Betriebssystem-Benutzers.
  • Mehrere Arbeitsplätze: Alle Arbeitsplätze nutzen gemeinsam eine PostgreSQL-Datenbank auf einem Server im Praxisnetz, etwa einem NAS. Die Praxisdaten liegen dann dort und nicht auf den einzelnen Rechnern. Wie ein Arbeitsplatz mit dem Server verbunden wird, steht unter Installation und erster Start.

Der Datenordner jedes Arbeitsplatzes:

System Ordner
macOS ~/Library/Application Support/de.casoon.avilo/
Windows %APPDATA%\de.casoon.avilo\

Darin liegen außerdem origin.sqlite3 mit Einstellungen der Anwendung, im Serverbetrieb die Datei database.toml mit Server, Port, Datenbank und Benutzer sowie der Ordner Sicherungen. Das Passwort für den Datenbankserver steht nicht in dieser Datei, sondern im Schlüsselbund des Betriebssystems (Schlüsselbund unter macOS, Anmeldeinformationsverwaltung unter Windows). PINs werden nicht im Klartext gespeichert, sondern als Hash (Argon2id).

Avilo überträgt keine Daten an Dritte oder ins Internet. Im Serverbetrieb gehen die Daten nur an den Datenbankserver der Praxis.

Schutz der Daten

Weder die lokale Datenbankdatei noch die Datenbank auf dem Server wird von Avilo verschlüsselt. Wer Zugriff auf das Betriebssystem-Konto oder den Server hat, kann die Daten lesen. Der Schutz der Patientendaten liegt deshalb bei den Geräten selbst:

  • Festplattenverschlüsselung (FileVault, BitLocker) auf jedem Arbeitsplatz und auf dem Server.
  • Eigenes, passwortgeschütztes Betriebssystem-Konto für den Praxisbetrieb.
  • Bildschirmsperre nach kurzer Inaktivität.
  • Auf dem Datenbankserver ein eigener Benutzer für Avilo mit starkem Passwort. Bietet der Server eine verschlüsselte Verbindung (TLS) an, nutzt Avilo sie.

Sicherung

Avilo sichert seine Daten selbst:

  • Automatisch beim ersten Start eines Tages. Jeder Arbeitsplatz legt die Sicherung im Ordner Sicherungen in seinem Datenordner ab. Die letzten 30 Sicherungen bleiben erhalten, ältere entfernt Avilo.
  • Von Hand: Unter Konfiguration → Datensicherung legt der Administrator mit „Jetzt sichern“ jederzeit eine Sicherung an. Dort stehen auch der Ordner und die letzten Sicherungen.

Eine Sicherung ist eine Datei mit allen Daten von Avilo. Sie funktioniert bei lokaler Datenbank und im Serverbetrieb gleich. Jede Sicherung wird im Änderungsverlauf vermerkt.

Kopie auf ein anderes Gerät

Eine Sicherung neben den Daten hilft nicht, wenn der Rechner ausfällt oder gestohlen wird. Deshalb kopiert Avilo jede Sicherung zusätzlich in einen Ordner auf einem anderen Gerät – eine Netzwerkfreigabe (etwa \\NAS\Avilo unter Windows, /Volumes/NAS/Avilo unter macOS) oder einen USB-Stick (etwa E:\Avilo). Den Ordner trägt der Administrator unter Konfiguration → Datensicherung ein; er gilt für diesen Arbeitsplatz.

  • Avilo prüft beim Speichern, ob es den Ordner gibt und ob sich hineinschreiben lässt.
  • Nach jeder Sicherung und bei jedem Start kopiert Avilo alle Sicherungen, die im Ordner noch fehlen. Ein Stick, der ein paar Tage nicht eingesteckt war, bekommt beim nächsten Mal alles Versäumte. Auch dort bleiben die letzten 30 Sicherungen.
  • Ist der Ordner nicht erreichbar, wird die Sicherung trotzdem angelegt. Unter Konfiguration → Datensicherung steht dann „Kopie fehlgeschlagen“ mit dem Grund, und Avilo kopiert nach, sobald der Ordner wieder da ist.

Bei mehreren Arbeitsplätzen genügt die Kopie an einem Arbeitsplatz; jeder weitere erhöht nur die Zahl der Kopien.

Verschlüsselte Sicherungen

Eine Sicherung enthält alle Patientendaten. Damit ein verlorener USB-Stick oder eine zu weit geöffnete Freigabe sie nicht preisgibt, kann Avilo die Sicherungen mit einem Passwort verschlüsseln. Der Administrator schaltet das unter Konfiguration → Datensicherung ein: Passwort (mindestens 10 Zeichen) zweimal eingeben, bestätigen, dass es aufgeschrieben ist, und „Verschlüsselung einschalten“ wählen.

  • Das Passwort liegt im Schlüsselbund des Betriebssystems, nicht in einer Datei.
  • Die Einstellung gilt für diesen Arbeitsplatz. Bei mehreren Arbeitsplätzen an jedem einschalten, am besten mit demselben Passwort.
  • Verschlüsselte Sicherungen enden auf .json.age und werden wie alle anderen auf das andere Gerät kopiert. In der Liste steht bei jeder Sicherung „verschlüsselt“ oder „unverschlüsselt“.
  • Fehlt das Passwort auf dem Arbeitsplatz (etwa nach einem neuen Benutzerkonto), legt Avilo keine Sicherung an, statt eine lesbare zu schreiben, und meldet das in der Konfiguration. Dann das Passwort dort neu eingeben.
  • „Passwort ändern“ gilt für neue Sicherungen; ältere behalten ihr bisheriges Passwort, bis sie nach 30 Sicherungen entfernt werden.

Die Dateien folgen dem offenen Format age. Auch ohne Avilo lässt sich eine Sicherung mit dem Programm age und dem Passwort öffnen: age -d -o sicherung.json avilo-sicherung-….json.age.

Wichtig

Ohne das Passwort sind verschlüsselte Sicherungen verloren – auch für CASOON. Das Passwort aufschreiben und getrennt vom Rechner sicher verwahren, etwa im Praxistresor. Unverschlüsselte Sicherungen enthalten alle Patientendaten im Klartext und gehören auf ein verschlüsseltes Laufwerk oder eine verschlüsselte Freigabe.

Wiederherstellen

Eine Sicherung lässt sich nur in eine leere Avilo-Datenbank übernehmen, also bei einer neuen Installation, in der es noch kein Konto gibt. Bestehende Daten können so nicht versehentlich überschrieben werden.

  1. Avilo neu installieren (oder den Arbeitsplatz mit einem neuen, leeren Datenbankserver verbinden).
  2. Auf dem Bildschirm „Avilo einrichten“ kein Konto anlegen, sondern unter „Oder die Daten aus einer Avilo-Sicherung übernehmen“ die Sicherungsdatei auswählen. Ist sie verschlüsselt, fragt Avilo nach dem Sicherungspasswort.
  3. Mit einem der gesicherten Konten anmelden.

Eine Sicherung aus einer älteren Avilo-Version wird dabei automatisch auf den aktuellen Stand gebracht. Eine Sicherung aus einer neueren Version lässt sich erst nach einem Update übernehmen.

Auf demselben Weg zieht eine Praxis von einem einzelnen Rechner auf einen Server um: am alten Rechner sichern, den neuen Arbeitsplatz mit dem leeren Server verbinden, die Sicherung übernehmen.

Updates

Avilo passt die Datenbank bei einem Update selbst an – im Serverbetrieb der erste Arbeitsplatz, der mit der neuen Version startet. Eine ältere Version startet nicht mit einer Datenbank, die bereits von einer neueren Version angepasst wurde. Deshalb alle Arbeitsplätze auf dieselbe Version bringen und vor einem Update mit „Jetzt sichern“ eine Sicherung anlegen.

Doku für v0.1.0