Design
Datenschutz und Sicherheit
Was die Software speichert, was sie ins Netz schickt und wie sie sich schützt. Die Kurzfassung: Deine Belegungen bleiben auf deinem Rechner, solange du sie nicht selbst zum Konto hochlädst. Es gibt keine Nutzungsstatistik und keine Übermittlung deiner Tastendrücke.
Was auf deinem Rechner liegt
Alles in deinem Benutzerordner %APPDATA%\MultiverseStreamDeck, siehe Dateien und Ordner:
| Was | Wo | Schutz |
|---|---|---|
| Belegungen, Ordner, Widgets, Seiten, Farben | config.json | im Klartext lesbar |
| Zugangsdaten der Plugins (OBS-Passwort, Tokens von Twitch, Discord und Spotify, Webhook-Adressen, Home-Assistant-Token, Hue-Schlüssel) | config.json, Abschnitt plugins | im Klartext lesbar. Die Oberfläche zeigt sie nie, in der Datei stehen sie |
| Anmeldeschlüssel des Kontos | config.json | mit deinem Windows-Konto verschlüsselt (DPAPI), auf einem anderen Rechner wertlos |
| Zugang zum Backend | session.token | ein Wort, das bei jedem Start neu gewürfelt wird |
| Hintergrundbilder, eigene Symbole, Cover | Unterordner | Dateien |
| Sicherungen | backups | ohne Passwörter, Token und Konto |
Was das für dich heißt:
- Die
config.jsonenthält Geheimnisse der Plugins im Klartext. Gib sie nie weiter, hänge sie keiner Fehlermeldung an, und lege sie nicht in eine Cloud, die andere lesen können. - Sicherungen und der Abgleich enthalten keine Plugin-Einstellungen. Sie dürfen weitergegeben werden, ohne dass Passwörter mitgehen.
- Aber: Belegungen werden gesichert und abgeglichen. Was du in ein Feld einer Belegung schreibst (eine Webhook-Adresse, ein Passwort in einem Makro), steht dann in der Sicherung und beim Konto. Geheimnisse gehören in die Einstellungen des Plugins (Felder, die als geheim gelten), nicht in eine Belegung. Bei Discord lässt du das Feld Webhook-URL (sonst aus den Einstellungen) der Aktion leer.
- Die Diagnose (Einstellungen → Backend & Info) enthält keine Belegungen, Beschriftungen, Namen oder Geheimnisse und entfernt deinen Benutzernamen aus Pfaden.
Was die Software ins Netz schickt
Die Software meldet nichts über dich und deine Bedienung an irgendeinen Server, und sie schickt keine Telemetrie. Sie verbindet sich nur dort, wo es für eine Funktion nötig ist:
| Wohin | Wann | Was |
|---|---|---|
| GitHub (Veröffentlichungen der Software) | beim Start und höchstens alle sechs Stunden, wenn du Updates suchst oder installierst | die Frage, was die neueste Fassung ist, dann die Setup- oder Firmware-Datei. Abschaltbar unter Einstellungen → Allgemein |
| Server des Kontos (Supabase) | Anmeldung, Abgleich, Wetter, Anmeldung bei Discord | deine Anmeldung, beim Abgleich die Positivliste der Einstellungen (Belegungen, Ordner, Widgets, Seiten, Farben, Plugin-Auswahl), Wetterabrufe mit Ort |
| Anbieter der Anmeldung (Discord, Google, Twitch) | Anmeldung | der Browser öffnet deren Seite. Von dort kommt dein Name und dein Bild |
| docs.multiversedeck.dev (diese Anleitung) | nur wenn du Anleitung wählst oder F1 drückst | dein Browser öffnet die Seite. Die Software selbst fragt sie nie ab |
| OpenWeatherMap (über den Server des Kontos) | Wetter-Widget | der Ort und die Einheit |
| Discord | Plugin Discord: Webhook, Anmeldung | deine Nachricht, ein Einmal-Code |
| Twitch | Plugin Twitch | deine Befehle, das Mitlesen des Chats (auf Wunsch) |
| Spotify | Plugin Spotify mit Anmeldung | deine Befehle |
| ipify.org | nur die Aktion Öffentliche IP-Adresse kopieren | eine Abfrage deiner IP-Adresse |
| ntfy (ntfy.sh oder dein Server) | Plugin ntfy | deine Nachricht |
| Adresse, die du einträgst | Plugins Web-Anfrage, Home Assistant, Hue, Elgato, OBS | im eigenen Netz oder dort, wohin du es richtest |
| Anbieter | Profilbild | das Bild deines Kontos, wenn du Profilbild wählst |
Nur dein Rechner: Programm starten, Tastenkürzel, Fenster, Lautstärke, Energie, Monitore, Zwischenablage, Soundboard, Zähler, Timer, Makros, Datum und Zufall brauchen kein Netz.
Die Anfragen tragen einen User-Agent (MultiverseDeck/<Version> (+https://multiversedeck.dev)). Viele Dienste weisen Anfragen ohne brauchbare Kennung ab.
Wer an das Backend kommt
Die Oberfläche spricht mit dem Backend über ws://127.0.0.1:9847, eine Adresse, die nur dein Rechner erreicht. Das Backend hört nur auf der Rückschleife, nie im Netzwerk. Trotzdem kann jede Webseite in deinem Browser versuchen, sich mit ihr zu verbinden, denn WebSockets unterliegen keiner Same-Origin-Policy. Deshalb muss sich jede Verbindung anmelden:
- Der Zugang ist ein Wort in einer Datei (
session.token), das das Backend bei jedem Start würfelt. - Eine Webseite kommt an lokale Dateien nicht heran, die Oberfläche schon. Du siehst davon nichts.
- Vor der Anmeldung liefert das Backend keinerlei Gerätezustand, sonst könnte jede Seite dein Deck fernsteuern.
Für die Anmeldung beim Konto öffnet die Software kurz einen Empfänger auf 127.0.0.1:9848, nur auf der Rückschleife und nur für diese eine Anmeldung.
Wie die Anmeldung geschützt ist
- Die Anmeldung läuft im Browser, bei deinem Anbieter. Die Software sieht nie dein Passwort.
- Das Token des Anbieters (etwa von Discord) sieht die Software nicht. Sie bekommt eine Sitzung vom Server. Dasselbe Verfahren (PKCE) schützt vor einem abgefangenen Code.
- Das Erneuerungs-Token der Sitzung wird mit deinem Windows-Konto verschlüsselt (DPAPI). Das schützt nicht gegen Schadsoftware, die als du läuft. Dagegen hilft nichts. Es schützt gegen alles, was die Datei nur liest oder mitkopiert.
- Der geheime Schlüssel des Servers (
service_role/sb_secret_…) darf in einer Software nie stehen: Er hebelt jede Regel der Datenbank aus. Das Backend erkennt ihn und verweigert die Anmeldung, wenn er irrtümlich in der Konfiguration steht.
Schlüssel, die nicht in der Software liegen
Was der Anwendung gehört (Client-IDs, das Geheimnis für den Discord-Code-Tausch, der Wetter-Schlüssel), steht nicht in deinen Einstellungen. Ein Schlüssel im Paket wäre kein Geheimnis, weil er im Klartext an den Dienst gehen muss. Deshalb gilt: Braucht ihn der Server, liegt er dort. Braucht ihn dein Rechner, ist er kein Geheimnis mehr, dann übernimmt der Server die Arbeit, oder du bringst deinen eigenen mit.
Eigene Plugins und Befehle, die Programme starten
- Ein eigenes Plugin (Datei im Plugin-Ordner) läuft mit deinen Rechten, wie jedes Programm, das du selbst installierst. Lege nur Dateien hinein, denen du vertraust.
- Die Plugins Allgemein, Programme und Energie haben Befehle, die Programme starten, beenden oder den Rechner herunterfahren. Neustart und Herunterfahren laufen mit einer Frist von 30 Sekunden und lassen sich mit Herunterfahren abbrechen noch zurücknehmen: Ein Tastendruck ist kein Programm.
- Webadressen dürfen nur mit
httpoderhttpsbeginnen. Ein Tastendruck soll nichtfile:oder ein anderes Protokoll öffnen. - Plugins mit Token (Home Assistant, Hue, Elgato) folgen keiner Weiterleitung. Sonst ginge das Token an einen fremden Rechner.
- Namen von Programmen (Programme-Plugin) werden gegen eine Positivliste geprüft. Ein
*würde sonst alles beenden, was du beenden darfst.
Deinstallieren und Löschen
Beim Deinstallieren fragt das Setup: „Sollen auch die Einstellungen entfernt werden?“ Antwortest du Ja, verschwindet der ganze Ordner %APPDATA%\MultiverseStreamDeck samt Anmeldung. Willst du auch deine Daten beim Konto löschen, entferne in Einstellungen → Konto das Konto, und wende dich dann für die Löschung des Eintrags auf dem Server an den Betreiber.
Weiter: FAQ · Dateien und Ordner