PINs & Zugang

osd verwendet drei getrennte PINs, von denen jede eine andere Tür sichert. Diese Seite ist die zentrale Referenz dafür, was jede PIN freischaltet, wer sie wo festlegt, ob es einen Standardwert gibt und wie sie gewechselt wird. Sie richtet sich sowohl an Operatoren (Sanitäter am Tablet) als auch an Admins (die das Admin-Panel bedienen).

Am Tablet gibt es keine Anmeldung mit Benutzername und Passwort: die Kiosk-Eingangstür ist eine PIN. (Der Legacy-Operator-Login und das Admin-Panel sind die einzigen Stellen, die weiterhin E-Mail + Passwort verwenden — siehe Admin-Panel.)

Neu hier? Beginne mit Onboarding für Einschreibung und Erstnutzung und kehre zu dieser Seite zurück, wenn du die PIN-Details brauchst.

Die drei PINs auf einen Blick

PIN Was sie freischaltet Wer sie festlegt & wo Standard Wechsel

Shift-PIN

Verbindet ein Tablet mit einem bestimmten Dienst an der Eingangstür („Einsatzbereitschaft herstellen")

Admin, im Admin-Panel, bei der Dienst-Erstellung (erforderlich)

Keiner — der Admin wählt 6 Ziffern

Der Admin wechselt sie im Admin-Panel; Operatoren können sie nicht ändern

Firmen-PIN

Offline-„Neuen Dienst anlegen" — einen Dienst ohne Server und ohne Shift-PIN erstellen

Operator, an der Eingangstür oder in den Einstellungen, bei der Erstnutzung

Keiner — wird bei Erstnutzung gesetzt (kein ausgelieferter Standard)

Jede Person mit der aktuellen Firmen-PIN, in den Einstellungen; die aktuelle PIN muss eingegeben werden

Wartungs-/Admin-PIN

Zugang zu den Einstellungen und zum Wartungs-Notausgang-Launcher

Operator/Techniker, bei der Erstnutzung

Keiner — wird bei Erstnutzung gesetzt (kein Standard)

In den Einstellungen; die alte PIN wird heute nicht erneut geprüft (siehe Warnung unten)

Es gibt für keine der drei PINs eine werkseitige Standard-PIN. Die gelegentlich wiederholte „`112112`"-Firmen-PIN als Standard ist ein Mythos — sie existiert nirgends im Code. Jede PIN wird entweder vom Admin gewählt (Shift-PIN) oder bei der Erstnutzung gesetzt (Firmen-PIN, Wartungs-PIN).

Wie PINs gespeichert und geschützt werden

Alle drei PINs teilen sich dieselbe Sicherheitsmechanik (src-tauri/src/commands/pin.rs):

  • Format: genau 6 numerische Ziffern. Alles Kürzere, Längere oder Nicht-Numerische wird abgewiesen.

  • Speicherung: niemals im Klartext gespeichert. Jede PIN wird mit argon2id gehasht (Salt + Parameter im PHC-String eingebettet) und der Hash liegt in der secrets.bin des Geräts. Der maßgebliche Hash der Shift-PIN liegt serverseitig (siehe unten) und wird heruntersynchronisiert.

  • Gemeinsame Sperre / Backoff: nach 5 Fehlversuchen sperrt die PIN für 30 Sekunden. Jeder weitere Fehlversuch verdoppelt das Fenster (30 s → 60 s → 120 s …), gedeckelt auf 15 Minuten.

Während eine PIN gesperrt ist, wird selbst die korrekte PIN abgewiesen, bis das Fenster abläuft. Warte die Zeit ab, statt weiter zu raten — jeder zusätzliche Fehlversuch verlängert die nächste Sperre.

secrets.bin ist im Ruhezustand nicht verschlüsselt. Die Sicherheitsgrenze ist die App-Sandbox des Betriebssystems. Ein Penetrationstest steht vor der öffentlichen Freigabe noch aus — behandle physischen Gerätezugriff als die Vertrauensgrenze.

Shift-PIN — ein Tablet mit einem Dienst verbinden

Die Shift-PIN bindet ein Tablet an genau einen Dienst (Einsatz). Sie wird an der Eingangstür unter „Einsatzbereitschaft herstellen" eingegeben.

  • Vom Admin festgelegt, im Admin-Panel, bei der Dienst-Erstellung — sie ist zum Erstellen eines Dienstes erforderlich. (server/src/admin/events.rs)

  • Der Hash wird serverseitig in Postgres gespeichert (events.shift_pin_hash) und synchronisiert sich auf eingeschriebene Geräte herunter. (src-tauri/src/commands/shift.rs)

  • Nur Dienste im Zustand active sind verbindbar — ein inaktiver oder beendeter Dienst nimmt seine Shift-PIN nicht an.

  • Operatoren können die Shift-PIN nicht ändern. Der Admin wechselt sie im Admin-Panel.

Der Eingangs-Flow der Eingangstür liegt in src/views/EntryScreen.vue. Die vollständige Beitrittssequenz siehe Dienst-Lebenszyklus; wo der Admin die PIN setzt und wechselt, siehe Admin-Panel.

Firmen-PIN — einen Dienst offline anlegen

Die Firmen-PIN sichert den Offline-Pfad „Neuen Dienst anlegen" — einen Dienst lokal erstellen, wenn keine Serververbindung und damit keine Shift-PIN vorhanden ist.

  • Wird bei Erstnutzung gesetzt — kein ausgelieferter Standard. Beim ersten Öffnen dieser Tür legt der Operator die Firmen-PIN fest. (src-tauri/src/commands/company.rs)

  • Sie kann an der Eingangstür oder später in den Einstellungen gesetzt werden.

  • Wechsel erfordert die aktuelle PIN: um die Firmen-PIN zu ändern, musst du die bestehende eingeben. (src/components/settings/CompanyPinCard.vue)

Wartungs-/Admin-PIN — Einstellungen und Wartung

Die Wartungs-PIN (Wartungs-/Admin-PIN) sichert zwei Dinge: den Zugang zu den Einstellungen der App und den unten beschriebenen Wartungs-Notausgang-Launcher.

  • Wird bei Erstnutzung gesetzt — kein Standard. Der erste Aufruf des Wartungs-Dialogs legt sie fest. (src-tauri/src/commands/maintenance.rs, src/components/maintenance/MaintenancePinDialog.vue)

Bekannte Lücke: der Wechsel der Wartungs-PIN prüft die alte PIN aktuell nicht erneut. Wer den Einstellungen-Dialog bereits erreichen kann, kann sie ändern, ohne die aktuelle zu belegen. Bis das behoben ist, ist die Kontrolle über das Wartungs-Overlay die tatsächliche Grenze.

Der Wartungs-Notausgang

Auf einem provisionierten Device-Owner-Kiosk sperrt osd das Tablet in die App. Der Notausgang ist der genehmigte Weg, um für Wartungszwecke eine kleine Auswahl an Android-Apps zu erreichen, ohne den Kiosk zu verlassen:

  1. Tippe das Versions-Label in den Einstellungen 10-mal schnell an. (Das funktioniert nur auf einem provisionierten Device-Owner-Tablet.)

  2. Gib die Wartungs-PIN ein.

  3. Ein zeitlich begrenzter Launcher (~300 Sekunden) öffnet sich mit einer erlaubten App-Liste: Settings, Files, Camera, Notes, Maps, plus einer begrenzten Funktion „USB-Debugging aktivieren" nur für dieses Fenster.

  4. Der Launcher sperrt automatisch wieder beim Verlassen, bei Zeitablauf oder bei Neustart.

Der Auslöser sind 10 schnelle Tipps auf das Versions-Label, kein langer Druck. Das Launcher-Fenster ist begrenzt (~300 s) und USB-Debugging wird, falls aktiviert, nur für dieses Fenster aktiviert.

Der Notausgang ist in src/views/Settings.vue und src/components/maintenance/MaintenanceLauncher.vue implementiert. Das vollständige Operator-Runbook — Provisionierung, Wiederherstellung, Updates, Außerbetriebnahme — siehe Kiosk-Betriebsrunbook.

Was keine PIN ist

  • Der Legacy-Operator-Login verwendet E-Mail + Passwort, keine PIN.

  • Das Admin-Panel verwendet E-Mail + Passwort, keine PIN.

Keiner von beiden nimmt an der oben beschriebenen PIN-Sperrmechanik teil.

Siehe auch