Zum Inhalt springen

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:

WasWoSchutz
Belegungen, Ordner, Widgets, Seiten, Farbenconfig.jsonim Klartext lesbar
Zugangsdaten der Plugins (OBS-Passwort, Tokens von Twitch, Discord und Spotify, Webhook-Adressen, Home-Assistant-Token, Hue-Schlüssel)config.json, Abschnitt pluginsim Klartext lesbar. Die Oberfläche zeigt sie nie, in der Datei stehen sie
Anmeldeschlüssel des Kontosconfig.jsonmit deinem Windows-Konto verschlüsselt (DPAPI), auf einem anderen Rechner wertlos
Zugang zum Backendsession.tokenein Wort, das bei jedem Start neu gewürfelt wird
Hintergrundbilder, eigene Symbole, CoverUnterordnerDateien
Sicherungenbackupsohne Passwörter, Token und Konto

Was das für dich heißt:

  • Die config.json enthä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:

WohinWannWas
GitHub (Veröffentlichungen der Software)beim Start und höchstens alle sechs Stunden, wenn du Updates suchst oder installierstdie 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 Discorddeine Anmeldung, beim Abgleich die Positivliste der Einstellungen (Belegungen, Ordner, Widgets, Seiten, Farben, Plugin-Auswahl), Wetterabrufe mit Ort
Anbieter der Anmeldung (Discord, Google, Twitch)Anmeldungder 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ückstdein Browser öffnet die Seite. Die Software selbst fragt sie nie ab
OpenWeatherMap (über den Server des Kontos)Wetter-Widgetder Ort und die Einheit
DiscordPlugin Discord: Webhook, Anmeldungdeine Nachricht, ein Einmal-Code
TwitchPlugin Twitchdeine Befehle, das Mitlesen des Chats (auf Wunsch)
SpotifyPlugin Spotify mit Anmeldungdeine Befehle
ipify.orgnur die Aktion Öffentliche IP-Adresse kopiereneine Abfrage deiner IP-Adresse
ntfy (ntfy.sh oder dein Server)Plugin ntfydeine Nachricht
Adresse, die du einträgstPlugins Web-Anfrage, Home Assistant, Hue, Elgato, OBSim eigenen Netz oder dort, wohin du es richtest
AnbieterProfilbilddas 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 http oder https beginnen. Ein Tastendruck soll nicht file: 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