Datenschutzerklärung
Zuletzt aktualisiert: 2026-10-01
Diese Erklärung beschreibt, welche Daten beim Besuch von byteflavour.dev und bei der Nutzung der Git-Forge auf git.byteflavour.dev verarbeitet werden, und warum.
Geltungsbereich
Diese Erklärung gilt für:
- byteflavour.dev — diese Seite: Blog und Garden. Die öffentlichen Seiten werden vorab erzeugt und als Dateien ausgeliefert. Eine Anmeldung ist möglich, zum Lesen aber nie erforderlich. Anmeldung, Registrierung, Profil, Organisationen, Cockpit und Chat sprechen mit einer Schnittstelle unter
/api, die auf derselben Maschine läuft (im Folgenden: der Server dieser Seite). - git.byteflavour.dev — eine selbst betriebene Forgejo-Instanz (Git-Forge) mit Nutzerkonten.
- sso.byteflavour.dev — die Anmeldung, über die Konten der Forge und Anmeldungen auf dieser Seite authentifiziert werden.
- count.byteflavour.dev — die Zähl-Schnittstelle der Aufruf-Statistik. Nur auf byteflavour.dev eingebunden, nicht auf der Forge.
- inter.byteflavour.dev und rtc.byteflavour.dev — der Chat auf byteflavour.dev: der Chat-Server und der Dienst für Anrufe. Beschrieben im Abschnitt Der Chat.
Der Identitätsanbieter unter sso.byteflavour.dev authentifiziert daneben weitere selbst betriebene Dienste, die nicht Gegenstand dieser Erklärung sind; für sie gelten eigene Angaben.
Alle laufen auf derselben Maschine und unter demselben Verantwortlichen. Der Unterschied zwischen Blog und Forge ist trotzdem erheblich: die Seite, die Sie gerade lesen, verarbeitet fast nichts, solange Sie sich nicht anmelden; eine Forge mit Konten verarbeitet notwendigerweise mehr. Wo sich das unterscheidet, steht es im jeweiligen Abschnitt.
Verantwortlicher
Der Verantwortliche für alle oben genannten Dienste ist im Impressum genannt. Anfragen zum Datenschutz — einschließlich der unten aufgeführten Betroffenenrechte — gehen an die dort genannte E-Mail-Adresse. Ein Datenschutzbeauftragter ist nicht bestellt; die Voraussetzungen des Art. 37 DSGVO bzw. § 38 BDSG liegen hier nicht vor.
Hosting
Alle genannten Dienste laufen auf einem einzelnen Server bei der Hetzner Online GmbH, Rechenzentrumsstandort Falkenstein/Vogtland, Deutschland. Hetzner stellt die Maschine bereit; ein Zugriff auf Inhalte findet im Rahmen des Betriebs nicht statt.
Server-Logdateien
Wie praktisch jeder Webserver protokolliert der Reverse Proxy vor allen genannten Diensten grundlegende technische Informationen zu jeder Anfrage: IP-Adresse, Zeitstempel, angefragter Pfad, HTTP-Status, Referrer und User-Agent-Kennung. Das gilt für den Blog und für die Forge.
- Zweck: Betrieb, Fehlersuche und Absicherung gegen Missbrauch.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse am sicheren und funktionsfähigen Betrieb.
- Speicherdauer: Die Zugriffsprotokolle des Webservers liegen auf der Maschine höchstens 7 Tage; was älter als 30 Tage ist, wird zusätzlich in jedem Fall gelöscht. Die Protokolle des Betriebssystems werden nach 30 Tagen verworfen. Für die Auswertung werden die Einträge in einen Log-Speicher übernommen und dort ebenfalls nach 30 Tagen automatisch verworfen.
- Einmalcodes: Codes aus Bestätigungs- und Einladungslinks sowie die Kennungen, mit denen GitHub oder Codeberg nach einer Anmeldung zurückleiten, werden vor dem Schreiben durch einen Platzhalter ersetzt.
- In den Sicherungen: keine. Weder die Zugriffsprotokolle des Webservers noch die Protokolle des Betriebssystems werden mitgesichert.
- Zugriff: nicht öffentlich, kein Export an Dritte.
Der Git-Zugriff über SSH wird vom Betriebssystem in derselben Weise protokolliert (Zeitpunkt, IP-Adresse, verwendeter Schlüssel-Fingerabdruck). Für diese Einträge gilt das oben Gesagte zu den Protokollen des Betriebssystems.
Protokolle des Servers dieser Seite
Der Server dieser Seite protokolliert zu jeder Anfrage an /api: welche Schnittstelle angefragt wurde (ohne die Werte in der Adresse), das Ergebnis, die Dauer und — wenn Sie angemeldet sind — die Kennung Ihres Kontos (eine Zahl, nicht Ihr Name). Bei Organisationen kommen die Kennung der Organisation und gegebenenfalls der Einladung hinzu, beim Chat die Kennung des Geräts. Nicht protokolliert werden IP-Adresse, Name, E-Mail-Adresse, Passwörter, Codes oder Inhalte. Für die Fehlersuche werden einzelne Anfragen zusätzlich als Ablaufspur festgehalten, mit denselben Angaben.
- Zweck: Betrieb und Fehlersuche.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse am sicheren und funktionsfähigen Betrieb.
- Speicherdauer: 30 Tage im Log-Speicher und in den Protokollen des Betriebssystems, Ablaufspuren 14 Tage. Nicht in den Sicherungen.
Angriffserkennung
Vor den Diensten läuft eine Angriffserkennung (CrowdSec), die dieselben Zugriffsprotokolle auswertet und auffällige IP-Adressen — etwa nach wiederholten fehlgeschlagenen Anmeldeversuchen — vorübergehend auf Netzwerkebene sperrt. Damit sie fehlgeschlagene Anmeldungen auf dieser Seite erkennt, markiert der Server dieser Seite seine Antwort auf einen falschen Namen, ein falsches Passwort, einen falschen Code oder eine abgelehnte Einladung, und ebenso eine Antwort, die er wegen zu vieler Versuche verweigert. Die Markierung enthält nur „fehlgeschlagen“ oder „gebremst“ — kein Konto, keinen Namen. Die IP-Adresse dazu steht im Zugriffsprotokoll. Verarbeitet wird dabei die IP-Adresse, zusammen mit dem Grund und dem Ablaufzeitpunkt der Sperre. Diese Entscheidungen werden lokal auf der Maschine gehalten und laufen nach Ablauf der Frist von selbst aus.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse an der Abwehr von Angriffen.
- Weitergabe an Dritte: Diese Instanz ist am Gemeinschaftsnetzwerk von CrowdSec SAS (Frankreich) angemeldet. Das bedeutet beides: sie bezieht von dort Sperrlisten bekannter Angreifer-Adressen, und sie meldet eigene Feststellungen dorthin zurück. Übermittelt wird dabei die auffällig gewordene IP-Adresse zusammen mit dem ausgelösten Erkennungsmuster und dem Zeitpunkt — nicht der Inhalt Ihrer Anfragen, nicht Ihr Konto und keine sonstigen Daten. Das betrifft nur Adressen, die tatsächlich ein Erkennungsmuster ausgelöst haben; die IP-Adresse eines normalen Besuchs wird nicht gemeldet.
- Ort der Verarbeitung: Frankreich, also innerhalb der EU.
Die Forge: Konten und Inhalte
Dieser Abschnitt betrifft ausschließlich git.byteflavour.dev. Wer die Forge nur liest, ohne sich anzumelden, hinterlässt nichts über die oben beschriebenen Server-Logs hinaus.
Kontodaten
Zu einem Konto auf der Forge werden gespeichert: Benutzername, E-Mail-Adresse, Anzeigename, der Zeitpunkt der Registrierung und der letzten Anmeldung, sowie die Kennung des Anmeldeverfahrens, über das das Konto authentifiziert wird. Hinzu kommen die Dinge, die Sie selbst hinterlegen: hochgeladene SSH- und GPG-Schlüssel, erzeugte API-Token, Profilbild und Profilangaben, sowie Ihre Einstellungen (etwa Benachrichtigungspräferenzen).
- Zweck: Betrieb des Kontos und Zuordnung Ihrer Beiträge.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO — Erfüllung des Nutzungsverhältnisses, das Sie mit der Registrierung eingehen.
Inhalte
Repositories, Commits, Issues, Pull Requests, Kommentare, Reaktionen und Anhänge werden gespeichert, solange sie bestehen. Zwei Punkte, die bei einer Git-Forge leicht übersehen werden:
- Öffentliche Repositories sind öffentlich. Inhalte in einem als öffentlich markierten Repository sind ohne Anmeldung für jede Person im Internet lesbar — einschließlich Ihres Benutzernamens und Ihrer Beiträge. Das ist der Zweck der Sache, aber es ist eine Veröffentlichung.
- Commits tragen die Angaben, die Sie selbst hineinschreiben. Name und E-Mail-Adresse in einem Commit stammen aus Ihrer lokalen Git-Konfiguration, nicht aus Ihrem Konto hier. Sie werden unverändert übernommen und sind Teil der Historie. Git-Historie lässt sich nachträglich nur durch Umschreiben und erzwungenes Überschreiben ändern — das gilt technisch, unabhängig davon, welche Rechte Sie oder ich haben.
Wenn Sie das vermeiden wollen: Git erlaubt es, in user.email eine Adresse zu hinterlegen, die nicht Ihre eigentliche ist.
Sitzungs-Cookies
Die Forge setzt technisch notwendige Cookies: eine Sitzungskennung nach der Anmeldung, ein Token zum Schutz vor Cross-Site-Request-Forgery, und — sofern Sie das wählen — ein Cookie für dauerhaft angemeldete Sitzungen. Diese sind für den angemeldeten Betrieb erforderlich und nach § 25 Abs. 2 TTDSG einwilligungsfrei. Es sind keine Tracking-Cookies, und es werden keine Cookies von Dritten gesetzt.
E-Mail-Benachrichtigungen
Die Forge versendet Benachrichtigungen (etwa zu Issues, Pull Requests oder Sicherheitsereignissen) an die im Konto hinterlegte Adresse. Der Versand läuft über einen ebenfalls selbst betriebenen Mailserver auf derselben Maschine; Absender ist forgejo@byteflavour.dev. Es ist kein externer E-Mail-Dienstleister beteiligt. Was Ihr eigener E-Mail-Anbieter mit der zugestellten Nachricht macht, liegt außerhalb meines Einflussbereichs. Benachrichtigungen lassen sich in den Kontoeinstellungen abschalten.
Anmeldung
Anmeldung über sso.byteflavour.dev
Die Forge hat keine eigene Passwort-Registrierung. Die Anmeldung läuft über einen selbst betriebenen Identitätsanbieter unter sso.byteflavour.dev, der auf derselben Maschine und unter demselben Verantwortlichen läuft. Dort werden Benutzername, E-Mail-Adresse, Anmeldedaten (Passwort-Hash, ggf. zweiter Faktor) und Anmeldeprotokolle verarbeitet. An die Forge übermittelt der Identitätsanbieter nach erfolgreicher Anmeldung nur die Angaben, die zur Anlage und Zuordnung des Kontos nötig sind: Kennung, Benutzername, Anzeigename und E-Mail-Adresse.
Eine Registrierung mit lokalem Passwort gibt es nicht; Konten entstehen über den Identitätsanbieter oder werden administrativ angelegt. Mit den unten beschriebenen externen Anmeldewegen kommt die Möglichkeit hinzu, sich mit einem bereits bestehenden Konto bei einem anderen Anbieter selbst zu registrieren.
Anmeldung auf byteflavour.dev
Diese Seite hat eine eigene Anmeldeseite, unter /auth/login. Sie nutzt dieselben Konten wie der Identitätsanbieter unter sso.byteflavour.dev; zum Lesen müssen Sie sich hier nicht anmelden.
Der Ablauf, wenn Sie sich dort anmelden:
- Was Sie eingeben — Ihren Benutzernamen oder Ihre E-Mail-Adresse, dazu entweder die Bestätigung mit Ihrem Passkey oder ein Passwort und anschließend einen Code aus Ihrer Authenticator-App — schickt Ihr Browser an den Server dieser Seite.
- Der Server reicht es unmittelbar an den Identitätsanbieter unter
sso.byteflavour.devweiter, der es prüft. Der Server speichert weder Ihr Passwort noch Ihren Code noch die Bestätigung Ihres Passkeys. Während der Anmeldung hält er für höchstens 5 Minuten fest, welches Konto sich gerade anmeldet. - Nach erfolgreicher Anmeldung hält der Server eine Sitzung: die Kennung Ihres Kontos und Ihrer Organisation, Ihren Benutzernamen und Anzeigenamen, die zugehörige Sitzung beim Identitätsanbieter und — sobald Sie den Chat öffnen — die Kennung Ihres Chat-Geräts. Die Sitzung liegt auf dem Server, nicht in Ihrem Browser; Ihr Browser hält nur eine zufällige Kennung als Cookie (siehe Cookies auf dieser Seite). Die Sitzung endet, wenn Sie sich abmelden, spätestens nach 12 Stunden; mit ihr enden die Sitzung beim Identitätsanbieter und das Chat-Gerät dieses Browsers.
- Für Änderungen in Ihrem Profil, in Organisationen und für das Cockpit handelt der Server in Ihrem Namen beim Identitätsanbieter. Dafür holt er dort eine Berechtigung für Ihr Konto ab und hält sie verschlüsselt, bis sie abläuft oder Ihre Sitzung endet.
Um das Erraten von Passwörtern zu bremsen, zählt der Server Anmeldeversuche: je IP-Adresse fehlgeschlagene Schritte und jedes Nachschlagen eines Kontonamens, jeweils für 5 Minuten, und je Konto fehlgeschlagene Schritte für eine Stunde. Die IP-Adresse steht dabei im Klartext im Zähler, der Kontoname nur als Prüfsumme. Die Zähler liegen in einem Speicher auf dem Server, überstehen einen Neustart und verfallen nach der genannten Zeit von selbst. Sie werden nicht mitgesichert.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO für die Anmeldung, die Sitzung und das Handeln in Ihrem Namen, die nur auf Ihren Wunsch stattfinden; Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse am Schutz der Konten vor Rateangriffen — für die Zähler.
Wählen Sie dort GitHub oder Codeberg, gilt, was unter Anmeldung über externe Identitätsanbieter steht; anschließend kehren Sie auf die Seite zurück, von der aus Sie gestartet sind.
Ein Konto auf byteflavour.dev anlegen
Jede und jeder kann hier ein Konto anlegen, unter /auth/register, oder über eine Einladung in eine Organisation. Sie werden dabei zu keinem Zeitpunkt auf die Seiten des Identitätsanbieters geschickt; das Formular liegt auf dieser Seite.
Was dabei verarbeitet wird, und von wem:
- Was Sie eingeben — den Namen, unter dem Sie bekannt sein wollen, und eine E-Mail-Adresse — geht an den Server dieser Seite und von dort unmittelbar an den Identitätsanbieter unter
sso.byteflavour.dev, wo das Konto sofort entsteht. Solange die Registrierung läuft, hält der Server dieser Seite ihren Stand: die Kennung des neuen Kontos und seiner Organisation, eine Prüfsumme der Adresse und den erreichten Schritt; bei einer Registrierung mit GitHub oder Codeberg zusätzlich Adresse, Namen und Benutzernamen, die der Anbieter gemeldet hat. Dieser Stand gilt 70 Minuten, bei einer Einladung 72 Stunden und 10 Minuten, und wird mit dem Abschluss entfernt. Am Konto beim Identitätsanbieter vermerkt der Server, dass die Registrierung noch nicht abgeschlossen ist, und bis wann. - Die Bestätigungsnachricht verschickt der Identitätsanbieter, nicht diese Seite, an die angegebene Adresse. Sie enthält einen Code. Diese Seite erfährt diesen Code nie — sie reicht nur weiter, was Sie eintippen oder was der Link aus der Nachricht mitbringt, und der Identitätsanbieter entscheidet, ob beides zusammenpasst. Der Code gilt eine Stunde, bei einer Einladung 72 Stunden; Sie können einen neuen anfordern.
- Wie Sie sich anmelden werden, ist der letzte Schritt, und er lässt sich nicht überspringen: entweder ein Passkey, der Ihr Gerät nie verlässt und nirgends ein Geheimnis hinterlässt, oder ein Passwort zusammen mit einem Einmalcode aus einer Authenticator-App. Ein Passwort allein wird hier nicht akzeptiert.
- Eine Registrierung, die nicht abgeschlossen wird, wird gelöscht — samt dem Konto beim Identitätsanbieter. Das geschieht eine Stunde (bei einer Einladung 72 Stunden) nach dem zuletzt verschickten Code oder, wenn die Adresse schon bestätigt ist, nach der Bestätigung — spätestens wenige Minuten danach.
- Mit GitHub oder Codeberg registrieren geht ebenfalls, und dann entfallen Bestätigungsnachricht und zweiter Faktor: dieser Anbieter hat bereits festgestellt, wer Sie sind, und die Verknüpfung mit ihm ist es, die Sie anmeldet. Was dabei übertragen wird, steht unter Anmeldung über externe Identitätsanbieter. Name und E-Mail-Adresse, die der Anbieter meldet, werden für Sie ins Formular eingetragen; Sie können beides ändern, bevor Sie abschließen.
Was ein Konto für sich genommen wert ist: eine Identität und der angemeldete Bereich. Kein Dienst wird durch die Registrierung eingeschaltet, und Sie können sich keinen selbst einschalten: welche Dienste Ihnen offenstehen, hängt von Ihrer Organisation ab und davon, was deren Verantwortliche Ihnen zuteilen. Das Cockpit zeigt es Ihnen.
Damit der Eingang nicht dazu benutzt wird, Konten in Mengen anzulegen oder Nachrichten an eine Adresse schicken zu lassen, die nicht danach gefragt hat, begrenzt der Server, wie viele Registrierungen eine IP-Adresse in einer Stunde beginnen darf und wie oft eine E-Mail-Adresse in einer Stunde angeschrieben wird. Die Zähler halten die IP-Adresse im Klartext und die E-Mail-Adresse nur als Prüfsumme, liegen im selben Speicher wie die Anmelde-Zähler und verfallen nach einer Stunde. Anfragen jenseits der Grenze werden abgewiesen, bevor der Identitätsanbieter kontaktiert und bevor eine Nachricht verschickt wird.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO — das Konto entsteht, weil Sie darum bitten, und die Adresse wird bestätigt, damit sie Ihnen gehört; Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse an einem benutzbaren Eingang — für die Grenzen. Das Löschen unfertiger Registrierungen folgt aus dem Grundsatz, nichts länger zu halten als nötig.
Anmeldung über externe Identitätsanbieter
Sie können sich auch mit einem bereits bestehenden Konto bei GitHub oder Codeberg anmelden. Maßgeblich ist, was auf der Anmeldeseite unter sso.byteflavour.dev oder auf der Anmeldeseite auf byteflavour.dev tatsächlich angeboten wird. Die hier beschriebene Übermittlung findet nur statt, wenn Sie einen dieser Wege auch nutzen — sie ist an Ihre Wahl geknüpft, nicht an das bloße Vorhandensein der Schaltfläche.
Der Ablauf, wenn Sie sich über einen dieser Anbieter anmelden:
- Sie wählen den Anbieter auf
sso.byteflavour.devoder auf der Anmeldeseite auf byteflavour.dev. - Der Identitätsanbieter unter
sso.byteflavour.devleitet Ihren Browser zum gewählten Anbieter weiter und tritt diesem gegenüber als anfragende Anwendung auf. - Sie melden sich beim gewählten Anbieter an; dieser fragt Ihre Zustimmung zur Weitergabe ab.
- Der Anbieter meldet Ihre Kennung, Ihren Benutzernamen und — je nach Anbieter und Freigabe — Ihre E-Mail-Adresse und Ihren Anzeigenamen zurück.
- Diese Angaben werden zur Anlage bzw. Zuordnung Ihres Kontos auf
sso.byteflavour.devverwendet.
Kontoanlage und Verknüpfung auf sso.byteflavour.dev: Bei der ersten Anmeldung über einen externen Anbieter auf der Anmeldeseite von sso.byteflavour.dev wird dort automatisch ein Konto angelegt. Stimmt die vom Anbieter gemeldete E-Mail-Adresse mit der eines bereits bestehenden Kontos überein, werden beide miteinander verknüpft, statt ein zweites Konto anzulegen — der externe Anmeldeweg wird dann zu einem zusätzlichen Zugang zu Ihrem vorhandenen Konto. Eine Registrierung mit lokalem Passwort gibt es weiterhin nicht.
Ein Konto ist noch kein Zugang: Eine erfolgreiche Anmeldung legt zunächst nur ein Konto beim Identitätsanbieter an. Ob Sie damit einen bestimmten der über ihn erreichbaren Dienste tatsächlich nutzen können, hängt vom jeweiligen Dienst ab — einige setzen zusätzlich eine gesonderte Freigabe voraus. Fehlt sie, werden an den betreffenden Dienst keine Daten übermittelt. Ihr Konto samt der vom Anbieter übernommenen Angaben besteht dann aber trotzdem auf sso.byteflavour.dev weiter — auch dann, wenn Sie am Ende auf keinen einzigen Dienst zugreifen können. Sie können seine Löschung jederzeit verlangen; siehe Speicherdauer und Löschung.
Auf byteflavour.dev startet der Server dieser Seite den Weg zum Anbieter selbst, über den Identitätsanbieter unter sso.byteflavour.dev. Er erfährt deshalb, welchen Anbieter Sie gewählt haben, und erhält, was der Anbieter meldet: Ihre Kennung und Ihren Benutzernamen dort, Ihre E-Mail-Adresse und Ihren Namen. Ist dieses Konto beim Anbieter schon mit einem Konto hier verknüpft, sind Sie angemeldet; ist es das nicht, geht es mit einer Registrierung weiter (siehe oben), mit diesen Angaben vorausgefüllt. Verknüpfen und Lösen können Sie solche Zugänge in Ihrem Profil. Die Forge dagegen kommuniziert ausschließlich mit sso.byteflavour.dev und erfährt nicht, welchen externen Anbieter Sie verwendet haben, über die Kennung des Anmeldewegs hinaus. Verantwortlicher ist in allen Fällen dieselbe Person.
Was dabei an Dritte geht: Ihr Browser stellt beim Weiterleiten eine Verbindung zum jeweiligen Anbieter her, wodurch dieser Ihre IP-Adresse, Ihren User-Agent und den Umstand erfährt, dass Sie sich bei dieser Instanz anmelden wollen. Anschließend werden die oben genannten Kontoangaben von diesem Anbieter empfangen.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO — die Verarbeitung erfolgt nur, wenn Sie diesen Anmeldeweg aktiv wählen, und ist dann zur Anlage des Kontos erforderlich.
- Drittlandsübermittlung: GitHub hat seinen Sitz in den Vereinigten Staaten und verarbeitet dort. Eine Anmeldung über GitHub bedeutet daher eine Übermittlung in ein Drittland im Sinne des Kapitels V der DSGVO. Codeberg wird von einem eingetragenen Verein mit Sitz in Deutschland betrieben; hier findet keine Drittlandsübermittlung statt. Wenn Sie das vermeiden möchten, ist Codeberg der Weg ohne Drittlandsbezug.
- Vermeidbar: Diese Anmeldewege sind Alternativen, keine Voraussetzung. Wer sie nicht nutzen möchte, nutzt sie nicht — die Übermittlung findet dann nicht statt.
- Datenschutzerklärungen der Anbieter: die Verarbeitung auf deren Seite richtet sich nach deren eigenen Erklärungen, auf die ich keinen Einfluss habe.
Ihr Profil
Angemeldet können Sie unter „Profil“ Ihr Konto selbst pflegen: Anzeigename, Vor- und Nachname, Spitzname und Sprache, Ihre E-Mail-Adresse, Ihr Passwort, Passkeys und Authenticator-App sowie verknüpfte Zugänge über GitHub oder Codeberg. Alle Änderungen schreibt der Server dieser Seite in Ihrem Namen beim Identitätsanbieter unter sso.byteflavour.dev; selbst behält er davon nichts.
- Bestätigung vor heiklen Änderungen: Was ändert, wie Sie in Ihr Konto kommen, verlangt zuvor eine frische Bestätigung — mit Passwort und Code, einem Passkey oder einem verknüpften Zugang. Der Server merkt sich für 5 Minuten, dass Sie bestätigt haben. Führt die Bestätigung über GitHub oder Codeberg von der Seite weg, hält Ihr Browser die beabsichtigte Änderung — bei einer neuen E-Mail-Adresse also diese Adresse — im Sitzungsspeicher dieses Tabs und führt sie nach der Rückkehr aus, wenn das innerhalb von 10 Minuten geschieht; danach wird sie verworfen.
- Neue E-Mail-Adresse: Der Identitätsanbieter schickt an die neue Adresse einen Code mit einem Link. Öffnen Sie den Link, ohne angemeldet zu sein, melden Sie sich zuerst an und öffnen ihn danach noch einmal oder geben den Code ein; der Code wird dabei nicht in andere Adressen übernommen.
- Was nicht geht: Ein Zugang, ohne den Sie nicht mehr in Ihr Konto kämen, lässt sich nicht entfernen. Ihr Konto selbst löschen können Sie hier noch nicht; schreiben Sie mir, siehe Speicherdauer und Löschung.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO — Sie verwalten Ihr eigenes Konto.
Organisationen und Einladungen
Jedes Konto gehört zu einer Organisation. Angemeldet können Sie eine eigene anlegen und andere einladen.
- Anlegen: Am Identitätsanbieter entsteht die Organisation mit ihrem Namen; dazu vermerkt der Server, wer sie angelegt hat und wann.
- Mitglieder: Wer Mitglied ist, sieht die Anzeigenamen aller Mitglieder; wer die Organisation verantwortet (Owner), zusätzlich deren Benutzernamen. Owner teilen Mitgliedern Dienste zu. Verlässt jemand die Organisation, enden die Zuteilungen.
- Einladungen: Eine Einladung ist ein Link, der sieben Tage gilt. Der Server speichert dazu die Organisation, die Stufe, wer eingeladen hat (Kennung und Anzeigename) und die Zeitpunkte, den Schlüssel im Link aber nur als Prüfsumme; der Schlüssel selbst steht im Link hinter dem
#und erreicht keinen Server, bis Sie die Einladung annehmen. Wer annimmt, sieht, wer eingeladen hat. - Grenzen: Wie viele Organisationen und Einladungen eine Person oder eine IP-Adresse in einer Stunde oder an einem Tag anlegt, zählt der Server — mit der Kennung des Kontos bzw. der IP-Adresse im Klartext, für eine Stunde bzw. einen Tag.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO — Organisationen und Einladungen gibt es, weil Sie sie anlegen und annehmen; Art. 6 Abs. 1 lit. f DSGVO für die Grenzen.
Das Cockpit
Das Cockpit zeigt Ihnen, welche Dienste es gibt und welche davon Ihnen offenstehen. Dafür fragt der Server dieser Seite beim Identitätsanbieter nach, was Ihrer Organisation und Ihnen zugeteilt ist, und merkt sich die Einstellungen der Dienste und die Zuteilungen an Organisationen für 5 Minuten — ohne Angaben zu Ihrer Person. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO.
Der Chat
Nur für angemeldete Personen auf byteflavour.dev. Wer den Chat nicht öffnet, für den findet nichts von dem statt, was dieser Abschnitt beschreibt.
Ein Server, ein Kreis
Der Chat läuft auf einem Matrix-Server, den ich unter inter.byteflavour.dev auf derselben Maschine betreibe wie alles andere hier. Ich betreibe ihn für byteflavour.dev selbst und für die, die ich dazu einlade: Zugang hat, wessen Organisation der Chat freigegeben ist — das entscheide ich, nicht die einzelne Person, und das Cockpit zeigt es an. Alle sind auf diesem einen Server, alle sind darauf gleichgestellt, und die Daten aller liegen am selben Ort. Spaces ordnen Gespräche; sie sind keine getrennte Umgebung und trennen keine Parteien voneinander. Der Server tauscht mit keinem anderen Matrix-Server Nachrichten aus.
Wer eine Trennung braucht, die technisch und nicht nur organisatorisch ist, braucht einen eigenen Server. Dieser hier ist keiner.
Der gemeinsame Space ist ein Ort, an dem man sich trifft, und was dort geschrieben wird, sehen alle, die darin sind. Das folgt daraus, dass die Tür offen steht, nicht aus irgendeiner Technik: Ein eigenes Gespräch ist der Ort für das, was nicht für alle ist.
Vorerst läuft der Chat in diesem Browser. Ihn aus einer eigenen Matrix-App zu nutzen, braucht eine Berechtigung, die hier nicht erteilt wird; der Zugang zum Chat gibt sie Ihnen also noch nicht.
Was offen steht, steht allen offen
Ein Gespräch kann offen sein oder nur mit Einladung zugänglich; die Liste zeigt es an. Ein offenes Gespräch steht im Verzeichnis dieses Servers, und jede Person mit einem Konto hier kann es finden und betreten — sie muss niemanden fragen und braucht keine Einladung. Wer ein solches Gespräch anlegt, entscheidet dabei mit, ob jemand, der später dazukommt, auch lesen kann, was vorher gesagt wurde.
Ein Gespräch verlassen können Sie jederzeit. Ein offenes können Sie danach von selbst wieder betreten; bei einem, das eine Einladung verlangt, brauchen Sie eine neue. In verschlüsselten Gesprächen kann es sein, dass Sie nach der Rückkehr nicht mehr lesen können, was in Ihrer Abwesenheit oder davor geschrieben wurde.
Wie Sie in den Chat kommen
Öffnen Sie den Chat, stellt der Server dieser Seite eine kurzlebige, signierte Bestätigung Ihrer Kontokennung aus und tauscht sie beim Chat-Server gegen eine Chat-Sitzung ein. Ein Passwort wird dabei nicht übertragen. Danach spricht Ihr Browser direkt mit dem Chat-Server; der Server dieser Seite liest nicht mit.
Beim ersten Mal entsteht auf dem Chat-Server ein Konto. Seine Kennung ist die Kennung Ihres Kontos bei sso.byteflavour.dev — eine Zahl, nicht Ihr Name. Ihren Anzeigenamen trägt der Betrieb dort aus demselben Konto ein.
Eine Chat-Sitzung läuft auf dem Chat-Server nicht von selbst ab. Sie endet, wenn Sie sich auf dieser Seite abmelden, wenn Sie das Gerät in den Einstellungen des Chats beenden, oder beim nächsten Besuch, wenn Ihre Anmeldung auf dieser Seite inzwischen abgelaufen ist. Wird Ihr Konto gelöscht, deaktiviere ich auch Ihr Chat-Konto: alle Geräte werden abgemeldet, eine Anmeldung ist nicht mehr möglich, Anzeigename und Profilbild werden entfernt, und Sie verlassen alle Gespräche. Was Sie geschrieben haben, bleibt für die anderen Teilnehmenden in den Gesprächen sichtbar; einzelne Nachrichten entferne ich auf Wunsch.
Was ich sehen kann — und was nicht
Gespräche sind entweder Ende-zu-Ende-verschlüsselt oder nicht; die Liste der Gespräche zeigt es an. Das ist der Unterschied, auf den es ankommt:
| verschlüsselte Gespräche | unverschlüsselte Gespräche | |
|---|---|---|
| Was geschrieben wird, Bearbeitungen, geschickte Bilder | nicht lesbar | lesbar |
| Ton und Bild von Anrufen | nicht zugänglich | technisch zugänglich, nicht aufgezeichnet |
| Wer in welchem Gespräch und Space ist, wer wann geschrieben hat | sichtbar | sichtbar |
| Namen von Gesprächen und Spaces, Anzeigenamen | sichtbar | sichtbar |
| Worauf sich eine Antwort, ein Thread oder eine Reaktion bezieht, und das Zeichen einer Reaktion | sichtbar | sichtbar |
| Angeheftete Nachrichten (welche), Tipp-Anzeigen, Lesebestätigungen | sichtbar | sichtbar |
Die Schlüssel verschlüsselter Gespräche entstehen in Ihren Browsern und bleiben dort. Damit ein neuer Browser an Ihre bisherigen Gespräche kommt, liegt auf dem Chat-Server eine Sicherung dieser Schlüssel — verschlüsselt mit Ihrem Wiederherstellungsschlüssel, den weder der Server dieser Seite noch der Chat-Server je erhält. Geht er verloren und haben Sie keinen anderen Browser mehr, der schon eingelassen ist, kann niemand diese Gespräche wiederherstellen, auch ich nicht.
Lesebestätigungen können Sie in den Einstellungen des Chats für andere sichtbar machen oder nicht. Auch eine nicht sichtbare Bestätigung erreicht den Chat-Server; sie wird nur niemand anderem gezeigt. Dasselbe gilt für die Tipp-Anzeige: schalten Sie sie ab, erfährt niemand mehr, dass Sie gerade schreiben.
Ihre Geräte
Jeder Browser, mit dem Sie den Chat öffnen, ist für den Chat-Server ein eigenes Gerät. Er merkt sich zu jedem davon eine Kennung, einen Namen, wann er es zuletzt gesehen hat und von welcher Adresse. Das ist keine Nebenwirkung, sondern die Grundlage: ohne diese Unterscheidung könnte niemand angemeldet bleiben, und die Ende-zu-Ende-Verschlüsselung hätte nichts, wofür sie verschlüsseln kann — Schlüssel gehören Geräten, nicht Konten.
Den Namen vergibt beim ersten Mal diese Seite, aus der Kennung Ihres Browsers — „Firefox unter Linux" etwa. Kein Verlauf, keine Version, keine Adresse; nur so viel, dass Sie Ihre Geräte auseinanderhalten können. Sie können ihn jederzeit ändern.
In den Einstellungen des Chats sehen Sie diese Liste und können jedes Gerät außer dem gerade benutzten beenden. Es verliert damit seine Schlüssel und kann die verschlüsselten Gespräche dieses Kontos nicht mehr lesen; Ihre Anmeldung auf dieser Seite bleibt bestehen, und bei sso.byteflavour.dev ändert sich nichts. Das Gerät, an dem Sie gerade sitzen, beenden Sie, indem Sie sich aus dem Chat abmelden.
Ein Eintrag in dieser Liste ist kein Browser: ein Schlüsselhalter, den Ihr Konto führt, damit Schlüssel auch dann ankommen, wenn keiner Ihrer Browser offen ist. Ohne ihn wäre unlesbar, was in dieser Zeit geschrieben wurde. Er steht in einem eigenen Abschnitt, lässt sich nicht bestätigen und nicht beenden.
Bilder und gelöschte Nachrichten
Bevor ein Bild Ihren Browser verlässt, entfernt der Browser alles, was nicht das Bild ist: Aufnahmeort, Kamera, Zeitpunkte. Ist es breiter als 800 Pixel, schickt der Browser zusätzlich ein verkleinertes Vorschaubild mit. In verschlüsselten Gesprächen werden Bild und Vorschaubild im Browser verschlüsselt, bevor sie hochgeladen werden; auf dem Chat-Server liegt nur verschlüsselter Inhalt, den weder ich noch eine Sicherung öffnen kann. In unverschlüsselten Gesprächen liegt das Bild so auf dem Server, wie es ankommt; abrufen kann es jede angemeldete Person, die seine Adresse kennt — also typischerweise die, die es im Gespräch schon gesehen haben.
Der Chat-Server legt selbst verkleinerte Kopien an: von Bildern aus unverschlüsselten Gesprächen, die ohne eigenes Vorschaubild kamen, und von allen Profilbildern und Bildern von Gesprächen und Spaces, in mehreren Größen. Er bewahrt sie neben dem Original auf. Profilbilder und Bilder von Gesprächen und Spaces sind nie verschlüsselt; Ihr Profilbild sehen alle, mit denen Sie ein Gespräch teilen oder die Sie im Verzeichnis finden.
Löschen Sie eine Nachricht, verschwindet sie aus dem Gespräch. Das Original bewahrt der Chat-Server noch sieben Tage auf; abrufen kann es in dieser Zeit nur die Server-Administration, nicht die Verwaltung eines Gesprächs oder Spaces. In verschlüsselten Gesprächen ist auch dieses Original verschlüsselt. Löschen Sie eine Nachricht mit Bild, bleiben das Bild, sein Vorschaubild und die Kopien des Servers dort, bis ich sie entferne — in unverschlüsselten Gesprächen für die oben Genannten weiter abrufbar, in verschlüsselten Gesprächen weiterhin unlesbar. Dasselbe gilt für ein ersetztes Profilbild. Wenn Sie die Entfernung wünschen, schreiben Sie mir.
Die Suche im Chat läuft auf dem Chat-Server und findet deshalb nur, was in unverschlüsselten Gesprächen geschrieben wurde.
Benachrichtigungen
Benachrichtigungen bei geschlossenem Chat gibt es nur, wenn Sie sie in einem Browser einschalten. Dann geschieht Folgendes:
- Ihr Browser meldet sich beim Push-Dienst seines Herstellers an und erhält eine Zustelladresse. Diese Adresse und die zugehörigen Schlüssel speichert der Chat-Server, damit er Sie benachrichtigen kann.
- Kommt etwas Neues, schickt der Chat-Server eine Nachricht an einen Zustelldienst auf derselben Maschine, der sie für Ihren Browser verschlüsselt und über den Push-Dienst des Herstellers zustellt. Der Push-Dienst sieht dabei nicht, was darin steht — nur, dass Ihr Browser etwas bekommt, und wann.
- Die Benachrichtigung auf Ihrem Gerät nennt das Gespräch und, wer geschrieben hat — in jedem Gespräch gleich, damit ihre Form nichts darüber verrät, ob ein Gespräch verschlüsselt ist. Was geschrieben wurde, zeigt sie nur, wenn Sie das in diesem Browser ausdrücklich erlauben, und aus verschlüsselten Gesprächen nie. Diese Erlaubnis gilt nur für den Browser, in dem Sie sie geben: ein Sperrbildschirm gehört zu einem Gerät, nicht zu einer Person.
Welcher Push-Dienst beteiligt ist, entscheidet Ihr Browser, nicht ich: bei Chrome und anderen Chromium-Browsern Google, bei Firefox Mozilla, bei Safari Apple, bei Edge Microsoft. Google, Apple und Microsoft verarbeiten in den Vereinigten Staaten; die Anmeldung beim Push-Dienst ist dann eine Übermittlung in ein Drittland im Sinne des Kapitels V der DSGVO. Wer das vermeiden will, schaltet Benachrichtigungen nicht ein — der Chat funktioniert ohne sie.
Ihre Einstellungen dazu — welche Gespräche stumm sind, ob Erwähnungen benachrichtigen, und die Wörter, bei denen Sie Bescheid bekommen wollen — speichert der Chat-Server zu Ihrem Konto, damit sie auf allen Ihren Geräten gelten. Die Wörter sind damit für mich lesbar. Ebenso die Liste der Personen, die Sie ignorieren, samt deren Namen zum Zeitpunkt des Ignorierens.
Anrufe
Anrufe laufen über einen Vermittlungsdienst (eine sogenannte SFU, LiveKit) auf derselben Maschine, erreichbar unter rtc.byteflavour.dev. In verschlüsselten Gesprächen sind Ton und Bild Ende-zu-Ende-verschlüsselt; der Vermittlungsdienst leitet nur weiter, was er nicht öffnen kann. In unverschlüsselten Gesprächen leitet er Ton und Bild unverschlüsselt weiter; aufgezeichnet wird nichts. Für einen Anruf verarbeiten der Vermittlungsdienst und der Dienst, der die Zugangsberechtigung ausstellt, Ihre Kontokennung, die Kennung Ihres Geräts, Ihre IP-Adresse und Angaben zu Ihrem Browser; eine direkte Verbindung zwischen den Teilnehmenden gibt es nicht.
Der Hinweis auf Ungelesenes
Solange Sie angemeldet sind und dieser Browser eine Chat-Sitzung hält, zeigt das Menü oben auch auf den übrigen Seiten, ob im Chat etwas ungelesen ist. Dafür fragt Ihr Browser den Chat-Server etwa alle 30 Sekunden danach — nur solange die Seite sichtbar ist, und für alle offenen Tabs zusammen höchstens einmal in diesem Takt. Jede dieser Anfragen ist ein Eintrag im Zugriffsprotokoll, wie unter Server-Logdateien beschrieben: mit IP-Adresse und Zeitpunkt, und damit eine Spur, wann Sie die Seite offen hatten. Für diese Einträge gilt die dort genannte Speicherdauer.
Die Antwort beruht auf einer Liste, die der Chat-Server zu Ihrem Konto führt: welche Nachrichten Sie benachrichtigt haben, mit Zeitpunkt, und ob Sie sie gelesen haben. Sie entsteht unabhängig davon, ob Sie Benachrichtigungen eingeschaltet haben, enthält nur Verweise auf die Nachrichten, nicht deren Inhalt, und wird nicht bereinigt: sie besteht, solange Ihr Chat-Konto besteht.
Was im Browser liegt
Der Chat speichert in Ihrem Browser: die Chat-Sitzung, die Schlüssel für verschlüsselte Gespräche, unfertige Nachrichten je Gespräch, den Entwurf eines neuen Gesprächs, Einladungen, die noch nicht zugestellt werden konnten (mit den Namen der eingeladenen Personen), ob gerade etwas ungelesen ist, welche Kamera und welches Mikrofon Sie für Anrufe gewählt haben, und — wenn Sie Benachrichtigungen einschalten — Ihre Wahl, ob sie Text zeigen dürfen, sowie die Wörter, die eine Benachrichtigung braucht. Das sind keine Cookies und sie werden an niemanden übertragen außer, soweit nötig, an den Chat-Server selbst. Beim Abmelden wird all das gelöscht und die Anmeldung beim Push-Dienst beendet, ebenso beim nächsten Besuch, wenn Ihre Anmeldung auf dieser Seite inzwischen abgelaufen ist; die Chat-Sitzung wird dabei auch auf dem Chat-Server beendet. Bleiben darf nur, welche Seitenleisten Sie offen hatten.
Zählwerk für die Verschlüsselung
Damit ich bemerke, wenn verschlüsselte Nachrichten häufiger nicht lesbar sind, als sie sollten, meldet Ihr Browser gelegentlich drei Zahlen an den Server dieser Seite: wie viele Nachrichten er zu entschlüsseln versucht hat, wie viele davon nicht lesbar waren, und wie viele später doch. Kein Gespräch, keine Person, keine Nachricht. Damit niemand dieses Zählwerk überflutet, zählt der Server dieser Seite die Meldungen je IP-Adresse für 5 Minuten, mit der Adresse im Klartext.
Rechtsgrundlage
Art. 6 Abs. 1 lit. b DSGVO — der Chat ist ein Dienst, den Sie selbst öffnen und nutzen, und die beschriebene Verarbeitung ist dafür nötig. Das gilt auch für Benachrichtigungen und Anrufe, die nur stattfinden, wenn Sie sie wählen. Für das Zählwerk Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse am zuverlässigen Betrieb der Verschlüsselung.
Keine Schriftarten von Drittanbietern
Schriftarten werden selbst gehostet, nicht von Google Fonts oder einem anderen Drittanbieter geladen. Das Laden von Schriftarten von Drittanbietern würde bei jedem Seitenaufruf die IP-Adresse an diesen Anbieter übertragen — das wird hier bewusst vermieden. Das gilt für den Blog wie für die Forge.
Aufruf-Statistiken (GoatCounter)
Nur auf byteflavour.dev — auf der Forge ist keine Aufruf-Statistik eingebunden.
Diese Seite misst aggregierte Seitenaufrufe über eine selbst gehostete GoatCounter-Instanz (erreichbar unter count.byteflavour.dev). Es wird kein Cookie gesetzt. Zur Bildung eines eindeutigen "Besuchs" ohne dauerhafte Kennung verarbeitet GoatCounter kurzzeitig IP-Adresse und User-Agent zu einem täglich rotierenden, gesalzenen Hash — weder dieser Hash noch die Rohdaten (IP-Adresse, vollständiger User-Agent) werden dauerhaft gespeichert.
Dauerhaft aggregiert gespeichert werden: aufgerufene Seite (nur der Pfad, ohne alles nach ? oder #), Referrer, grober Browser-/Systemtyp, Bildschirmgrößen-Kategorie und grobes Herkunftsland — nie einzelnen Besucher:innen zuordenbar. Nicht gezählt werden die Seiten zur Anmeldung, Registrierung und Einladung sowie der angemeldete Bereich (Chat, Cockpit, Profil).
Diese Daten werden an keine dritte Partei weitergegeben oder verkauft. Die aggregierten Zahlen sind öffentlich auf der Statistik-Seite einsehbar, zusammen mit einem Link auf das technische Schnittstellenschema (OpenAPI), das zeigt, was dieses Gateway öffentlich bereitstellt (nicht zu verwechseln mit dem, was GoatCounter selbst im Hintergrund verarbeitet — das steht oben). Die Überlegungen hinter der Wahl von GoatCounter stehen in dieser Garden-Notiz.
Es gibt keine Werbung und keine weiteren Analyse-Tools oder Drittanbieter-Tracker, weder auf dieser Seite noch auf der Forge.
Cookies auf dieser Seite
Solange Sie sich nicht anmelden, setzt der Blog ein eigenes Cookie:
- Name:
locale_pref - Zweck: merkt sich, ob die Seite auf Deutsch oder Englisch angezeigt wird, damit beim nächsten Besuch keine erneute Sprachumschaltung erfolgt.
- Speicherdauer: 1 Jahr.
- Weitergabe an Dritte: keine. Dieses Cookie wird von niemandem außer dieser Seite gelesen oder weitergegeben.
Wenn Sie sich anmelden oder registrieren, kommen diese Cookies hinzu. Alle enthalten nur eine zufällige Kennung; was dazu gehört, liegt auf dem Server dieser Seite. Alle sind auf diese Seite beschränkt (__Host-), werden nur verschlüsselt übertragen und sind — bis auf den letzten — für Skripte auf der Seite nicht lesbar:
__Host-apix-attempt— ein laufender Anmeldeversuch. Es gilt 5 Minuten und wird entfernt, sobald der Versuch gelingt oder endet.__Host-apix-register— eine laufende Registrierung. Es gilt 70 Minuten, bei einer Einladung 72 Stunden und 10 Minuten, und wird mit dem Abschluss entfernt.__Host-apix-idp— nur bei einem Weg über GitHub oder Codeberg: welcher Weg das ist und wohin Sie zurückkehren. Es gilt 5 Minuten und wird bei Ihrer Rückkehr entfernt.__Host-apix-session— Ihre angemeldete Sitzung (siehe Anmeldung auf byteflavour.dev). Es gilt so lange wie die Sitzung, höchstens 12 Stunden, und wird beim Abmelden entfernt.__Host-apix-signed-in— ein Merker, der nichts enthält außer dem Wert1, keine Kennung und keinen Namen, und als einziger für Skripte lesbar ist. Er sagt der Seite nur, dass es sich lohnt, beim Server nachzufragen, ob Sie noch angemeldet sind; Besuche ohne ihn lösen diese Anfrage nie aus. Er gilt so lange wie die Sitzung und wird mit ihr entfernt.
Keines dieser Cookies wird von jemand anderem als dieser Seite gelesen oder weitergegeben.
Nach § 25 Abs. 2 TTDSG und der EU-ePrivacy-Richtlinie benötigen Cookies, die technisch notwendig für einen vom Nutzer ausdrücklich genutzten Dienst sind — wie das Merken einer Sprachwahl oder das Angemeldet-Bleiben, nachdem Sie sich angemeldet haben —, keine Einwilligung, im Gegensatz zu Tracking- oder Werbe-Cookies. In diese Kategorie fallen alle diese Cookies. Das Sprach-Cookie wird beim ersten Mal mit einem kurzen Hinweis gesetzt, nicht unbemerkt, und nicht hinter einem "Akzeptieren"-Klick versteckt, da es nichts Optionales zu akzeptieren gibt; die Anmelde- und Registrierungs-Cookies werden nur gesetzt, weil Sie eine Anmeldung oder Registrierung beginnen.
Die Cookies der Forge sind oben unter Sitzungs-Cookies beschrieben.
Datensicherung
Von der Maschine wird nächtlich eine verschlüsselte Sicherung erstellt und bei Scaleway in der Rechenzentrumsregion Paris (fr-par), Frankreich, abgelegt. Die Sicherung umfasst auch die Datenbanken der Forge, des Identitätsanbieters und des Chat-Servers samt der Bilddateien im Chat und ihrer Kopien, also Kontodaten und Inhalte — im Chat so, wie sie auf dem Server liegen: verschlüsselte Gespräche verschlüsselt. Nicht gesichert werden die Protokolle (siehe Server-Logdateien) und der Speicher, in dem der Server dieser Seite Sitzungen, Registrierungen, Einladungen und Zähler hält. Die Daten sind vor dem Verlassen der Maschine verschlüsselt; der Schlüssel liegt nicht beim Anbieter, der die Sicherungen deshalb nicht lesen kann.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse an der Wiederherstellbarkeit nach einem Ausfall.
- Ort der Verarbeitung: Frankreich, also innerhalb der EU. Keine Drittlandsübermittlung.
Eine Einschränkung, die ich nicht verschweigen möchte: Jede Sicherung wird etwa 90 Tage aufbewahrt und danach gelöscht. Sie liegt in einem Speicher, der nachträgliche Änderungen und Löschungen für 90 Tage technisch unterbindet — genau das ist der Schutz gegen Ransomware und gegen versehentliches Löschen, und er wirkt auch gegen mich selbst. Praktisch heißt das: wenn Sie eine Löschung verlangen, wird Ihr Konto im laufenden Betrieb gelöscht, aber in den bereits geschriebenen Sicherungen bleiben die Daten bis zum Ablauf dieser Frist bestehen und werden dann mit der Sicherung gelöscht. Sie werden in dieser Zeit nicht verwendet, nicht durchsucht und nur im Fall einer tatsächlichen Wiederherstellung überhaupt gelesen. Siehe dazu auch den Abschnitt zur Löschung unten.
Empfänger
Zusammengefasst — mehr Dritte als diese sind nicht beteiligt:
| Empfänger | Wofür | Was geht dorthin | Ort |
|---|---|---|---|
| Hetzner Online GmbH | Hosting | betreibt die Maschine; kein Zugriff auf Inhalte im Normalbetrieb | Deutschland |
| Scaleway SAS | Sicherungen | verschlüsselte Sicherungen, Schlüssel bleibt hier | Frankreich |
| CrowdSec SAS | Angriffserkennung | IP-Adressen, die ein Erkennungsmuster ausgelöst haben | Frankreich |
| GitHub | Anmeldung | nur, wenn Sie diesen Anmeldeweg nutzen — siehe oben | USA |
| Codeberg | Anmeldung | nur, wenn Sie diesen Anmeldeweg nutzen — siehe oben | Deutschland |
| Push-Dienst Ihres Browserherstellers (Google, Mozilla, Apple, Microsoft) | Benachrichtigungen im Chat | nur, wenn Sie sie einschalten: eine verschlüsselte Nachricht und der Umstand, dass Ihr Browser sie bekommt — siehe Benachrichtigungen | je nach Hersteller USA oder EU |
Es gibt keine Werbenetzwerke, keine Analyse-Dienstleister, keine Content Delivery Networks und keinen Weiterverkauf von Daten.
Speicherdauer und Löschung
| Daten | Dauer |
|---|---|
| Zugriffsprotokolle des Webservers (inkl. IP-Adresse) | höchstens 7 Tage auf der Maschine, 30 Tage im Log-Speicher |
| Protokolle des Betriebssystems und des Servers dieser Seite | 30 Tage; Ablaufspuren 14 Tage |
| Sperrentscheidungen der Angriffserkennung | bis zum Ablauf der jeweiligen Sperre |
| Kontodaten (Forge und Anmeldung) | bis zur Löschung des Kontos |
| Unfertige Registrierung samt Konto | eine Stunde (Einladung: 72 Stunden) nach dem letzten Code bzw. der Bestätigung der Adresse |
| Stand einer laufenden Registrierung | 70 Minuten, bei einer Einladung 72 Stunden und 10 Minuten |
| Laufender Anmeldeversuch | 5 Minuten |
| Anmeldesitzung auf byteflavour.dev | bis zur Abmeldung, höchstens 12 Stunden |
| Berechtigung, in Ihrem Namen zu handeln | bis zu ihrem Ablauf oder dem Ende der Sitzung |
| Zähler für Anmeldung, Registrierung, Organisationen und Zählwerk | 5 Minuten, eine Stunde oder ein Tag, je nach Zähler |
| Einladungen in eine Organisation | sieben Tage, oder bis sie angenommen oder zurückgezogen werden |
| Organisationen und Mitgliedschaften | bis sie gelöscht werden bzw. Sie austreten |
| Beiträge in öffentlichen Repositories | siehe unten |
| Aggregierte Aufruf-Statistik | unbegrenzt, aber ohne Personenbezug |
| Verschlüsselte Sicherungen | etwa 90 Tage, siehe oben |
| Nachrichten und Bilder im Chat, samt Vorschaubildern und Kopien | bis sie gelöscht werden |
| Originale gelöschter Chat-Nachrichten | sieben Tage nach dem Löschen, siehe Der Chat |
| Liste der Benachrichtigungen im Chat | solange das Chat-Konto besteht |
| Chat-Sitzung und Schlüssel im Browser | bis zum Abmelden oder zum ersten Besuch nach Ablauf der Anmeldung |
Ein Konto auf der Forge lässt sich in den Kontoeinstellungen selbst löschen, sofern es ein eigenes Passwort auf der Forge hat — die Löschmaske verlangt dieses Passwort zur Bestätigung. Konten, die über den Identitätsanbieter entstanden sind, haben kein solches Passwort; für sie führt der Weg über eine formlose Nachricht an die im Impressum genannte Adresse. Das gilt ebenso für alle anderen, die diesen Weg vorziehen. Mit der Löschung entfallen Kontodaten, Schlüssel, Token und Einstellungen. Ein Konto für diese Seite lösche ich auf formlose Nachricht beim Identitätsanbieter; ein Chat-Konto dazu wird deaktiviert, wie unter Wie Sie in den Chat kommen beschrieben.
Was eine Kontolöschung nicht automatisch entfernt: Beiträge, die Teil eines gemeinsamen Projektverlaufs geworden sind — Commits in der Historie eines Repositories, und Kommentare in Issues oder Pull Requests, in denen andere geantwortet haben. Diese werden bei einer Kontolöschung dem Konto entzogen und einem anonymen Platzhalter zugeordnet, bleiben aber inhaltlich bestehen; Commits behalten die Autorenangaben, die in ihnen stehen. Wenn Sie darüber hinaus die Entfernung bestimmter Inhalte wünschen, schreiben Sie mich an — das ist möglich, aber es ist ein manueller Eingriff und bei Git-Historie unter Umständen ein Umschreiben, das andere Kopien des Repositories nicht erreicht.
Ihre Rechte
Nach der DSGVO haben Sie das Recht auf:
- Auskunft über die zu Ihnen verarbeiteten personenbezogenen Daten (Art. 15),
- Berichtigung unrichtiger Daten (Art. 16),
- Löschung Ihrer Daten (Art. 17),
- Einschränkung der Verarbeitung (Art. 18),
- Datenübertragbarkeit — Herausgabe Ihrer Daten in einem gängigen Format (Art. 20),
- Widerspruch gegen Verarbeitungen, die auf ein berechtigtes Interesse gestützt sind (Art. 21), und
- Beschwerde bei einer Datenschutz-Aufsichtsbehörde (Art. 77).
Für Anfragen genügt eine formlose Nachricht an die im Impressum genannte Adresse. Um zu vermeiden, dass Daten an die falsche Person herausgegeben werden, kann ich bei einer Auskunfts- oder Löschanfrage zu einem Konto eine Bestätigung über die im Konto hinterlegte E-Mail-Adresse verlangen.
Zuständige Aufsichtsbehörde ist, dem Sitz des Verantwortlichen entsprechend, die Landesbeauftragte für den Datenschutz und für das Recht auf Akteneinsicht Brandenburg. Sie können sich aber ebenso an die Aufsichtsbehörde Ihres eigenen Aufenthaltsorts wenden.
Für den Blog ist der Umfang dieser Rechte gering, solange Sie sich nicht anmelden — ein Präferenz-Cookie und Standard-Server-Logs, mehr gibt es dort nicht. Für die Forge und für die Anmeldung sind sie substanziell, und sie gelten in beiden Fällen uneingeschränkt.