Datenschutzerklärung
1. Auf einen Blick
Auffi ist ein Open-Source-Bildschirm-Sharing-Tool. Die folgenden Hinweise erklären, welche personenbezogenen Daten an welcher Stelle erhoben werden, wozu sie dienen und wie lange sie gespeichert bleiben. Auffi ist Privacy-by-Design entworfen: Bildschirminhalte, Maus- und Tastatureingaben sowie übertragene Dateien fließen ausschließlich Ende-zu-Ende verschlüsselt (DTLS-SRTP) direkt zwischen den verbundenen Browsern. Der Auffi-Backend-Server bekommt davon nichts mit.
2. Verantwortliche Stelle
Verantwortlich für die Datenverarbeitung auf dieser Website ist:
Manuel RödigTannenweg 6
85405 Nandlstadt
Deutschland
E-Mail: phash@phash.de
3. Deine Rechte (Art. 15–21 DSGVO)
- Recht auf Auskunft (Art. 15 DSGVO)
- Recht auf Berichtigung (Art. 16 DSGVO)
- Recht auf Löschung (Art. 17 DSGVO)
- Recht auf Einschränkung der Verarbeitung (Art. 18 DSGVO)
- Recht auf Datenübertragbarkeit (Art. 20 DSGVO)
- Widerspruchsrecht (Art. 21 DSGVO)
Außerdem hast du das Recht, dich bei der zuständigen Aufsichtsbehörde zu beschweren — im Falle Bayerns das Bayerische Landesamt für Datenschutzaufsicht.
4. Server-Logs (Caddy-Reverse-Proxy)
Bei jedem Zugriff auf auffi.app erfasst der
Reverse-Proxy automatisch technische Daten in
Server-Log-Dateien:
- Browsertyp und -version
- Betriebssystem
- Referrer-URL
- Hostname / IP-Adresse (gekürzt auf die ersten zwei Oktette, z. B.
84.xxx) - Uhrzeit der Serveranfrage
Eine Zusammenführung dieser Daten mit anderen Datenquellen findet nicht statt. Die Erfassung erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse am sicheren Betrieb). Aufbewahrung: 14 Tage, danach automatische Rotation.
5. Verbindungs-Vermittlung (WebRTC-Signaling)
Beim Start einer Sharing-Session wird ein 9-stelliger Code generiert. Dieser dient ausschließlich als Kurzzeit-Schlüssel, um die zwei Browser miteinander zu verbinden:
- Code-Lebensdauer: 10 Minuten, danach serverseitig verworfen. Verbindungsversuche werden serverseitig gedrosselt (Rate-Limit pro IP).
- Vermittlung: Server tauscht SDP- und ICE-Daten zwischen den Browsern aus. Diese enthalten technische Verbindungs-Metadaten (lokale Netzwerk-Hinweise), keine Inhaltsdaten.
- Pixel und Eingaben: fließen niemals über den Auffi-Server. WebRTC verbindet die Browser direkt; nur wenn beide hinter strikten NATs sitzen, läuft der verschlüsselte Stream durch unseren TURN-Relay (coturn) — auch dort nur transportiert, nicht entschlüsselt.
-
IP-Pseudonymisierung: Im Bestätigungsdialog
beim Sharer wird nur das gekürzte IP-Prefix
(
84.xxx) sowie das daraus ermittelte Herkunftsland angezeigt, nie die volle Adresse. - Herkunftsland (GeoIP): Damit die sharende Person eine Anfrage einordnen kann, ermittelt der Auffi-Server beim Ad-hoc-Verbinden aus der vollständigen IP-Adresse des Zuschauers das Land (ISO-Ländercode, z. B. „DE"). Die Zuordnung erfolgt ausschließlich im Arbeitsspeicher unseres Servers gegen eine lokal hinterlegte Datenbank (IP-to-Country Lite von DB-IP, CC-BY-4.0); es werden keine Daten an Dritte übertragen, das Ergebnis wird weder protokolliert noch gespeichert, sondern nur einmalig an den Sharer übermittelt. Bei Verbindungen zu gekoppelten Geräten (Fernzugriff, §6) entfällt diese Ermittlung. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an einer nachvollziehbaren Verbindungsfreigabe).
Verarbeitungsgrundlage der Vermittlung selbst: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung — du forderst aktiv eine Verbindung an).
6. Optionales Konto (Unattended Access)
Wer das Dashboard unter auffi.app/dashboard/ nutzt,
legt ein Konto an. Dabei werden gespeichert:
- E-Mail-Adresse
- Passwort als argon2id-Hash (m = 64 MiB, t = 3, p = 1) — niemals im Klartext
- Konto-Erstellungs-Zeitstempel
- Letzter Login-Zeitstempel
- Geräte-Pairing-Daten: Geräte-ID, Alias, SHA-256-Hash des Geräte-Tokens, Auto-Accept-Flag
- Verbindungs-Log pro Gerät (Zeitpunkt, IP-Prefix, ob P2P oder TURN, übertragene Bytes)
- Feedback, das du über den Feedback-Button schickst (Kategorie, Rating, Text, anonymisiertes UA-Hint wie „Chrome/Linux")
Verarbeitungsgrundlage: Art. 6 Abs. 1 lit. b DSGVO. Sessions
werden über einen HttpOnly-, Secure-, SameSite=Strict-Cookie
(__Host-auffi_session) verwaltet — kein
Drittanbieter-Tracking. Die DB speichert nur den
SHA-256-Hash des Session-Tokens, nie das Klartext-Cookie.
Retention (automatische Löschfristen)
- Session-Cookies: 30 Tage ab letzter Nutzung.
- E-Mail-Verifikations- und Passwort-Reset-Tokens: bis Verbrauch oder 24 h.
- Verbindungs-Logs: 30 Tage.
- Feedback: bearbeitet → 1 Jahr, unbearbeitet → 2 Jahre, danach automatisches Hard-Delete.
- Audit-Log (admin-side): 1 Jahr.
- Unbestätigte, nie genutzte Konten (keine Sitzung, kein gekoppeltes Gerät): 7 Tage nach Registrierung, danach automatisches Hard-Delete.
- Konto-Löschung: sofortiges Hard-Delete mit FK-Cascade (alle Geräte, Sessions, Logs gehen mit) — es gibt keine Karenzzeit und kein Wiederherstellen.
7. E-Mail-Versand (SMTP)
Für Verify-Mails, Passwort-Resets und E-Mail-Änderungs-Bestätigungen
versendet Auffi Transaktions-Mails über mail.mr-development.de
(eigener Mailserver in Deutschland, kein Dritt-Provider wie Sendgrid
o. ä.). Marketing-Mails versenden wir nicht.
Verarbeitungsgrundlage: Art. 6 Abs. 1 lit. b DSGVO. Die Empfänger-Adresse wird nach Versand nicht zusätzlich gespeichert; die zugehörige Konto-Spalte ist die einzige Persistenz.
8. Cookies
Auffi setzt genau einen technisch notwendigen Cookie:
| Name | Zweck | Lebensdauer |
|---|---|---|
__Host-auffi_session |
Login-Sitzung für das Dashboard | 30 Tage |
Der Cookie ist HttpOnly (kein JavaScript-Zugriff),
Secure (nur über HTTPS) und
SameSite=Strict (kein Cross-Site-Versand). Das
__Host--Prefix wird vom Browser erzwungen — der
Cookie kann nicht von Subdomains überschrieben werden.
Da dieser Cookie ausschließlich der vom Nutzer angeforderten Dienstleistung (Login) dient, ist er nach § 25 Abs. 2 Nr. 2 TTDSG einwilligungsfrei.
9. Reichweitenmessung (selbstgehostetes Matomo)
Um zu verstehen, wie Menschen auffi.app finden und
ob der Dienst überhaupt genutzt wird, betreiben wir eine
selbstgehostete Matomo-Instanz auf demselben deutschen
Server (musikersuche.org/matomo/, IONOS
Frankfurt). Keine externen Analyse-Dienste, kein Google
Analytics, kein Facebook Pixel, keine externen Fonts (keine
Google Fonts), keine externen Scripts außer der eigenen
Matomo-Instanz.
Opt-in via Banner. Beim ersten Besuch der
Marketing-Seiten erscheint unten ein Hinweis mit zwei Buttons:
„Statistik OK" und „Ablehnen". Erst nach „Statistik OK" wird
die Matomo-Datei nachgeladen und ein Seitenaufruf gezählt;
„Ablehnen" speichert lokal eine Ablehnung im
localStorage, der Banner verschwindet, kein Matomo
wird je geladen. Diese Entscheidung gilt browser-weit für
alle Auffi-Seiten und kann jederzeit zurückgesetzt werden,
indem du in deinem Browser den
auffi_matomo_consent-Eintrag im
localStorage löschst — beim nächsten Besuch
erscheint der Banner dann wieder. Hat dein Browser
Do-Not-Track (DNT) aktiviert, wird Matomo gar nicht
erst angeboten — wir lesen das Signal still und tracken nicht.
Was erfasst wird
-
Aufrufe der statischen Seiten — alle
Marketing-, Vergleichs- und Rechtsseiten (Startseite, Download,
Impressum, Datenschutz, die
/vergleich/- und Themenseiten sowie deren englische Fassungen), nicht die laufende Sitzung - Herkunft des Aufrufs — Suchmaschine, Direktaufruf oder Backlink (kein Klick-Tracking innerhalb der Seite)
-
Grobe Geo-Region — abgeleitet aus der vor der
Speicherung anonymisierten IP (letzte zwei Oktette
verworfen, z. B.
84.xxx.xxx.xxx); aus dem Rest lässt sich nur das Land grob bestimmen - Browser- und Betriebssystem-Familie (z. B. „Chrome / Linux") — zur Sicherstellung der Kompatibilität
-
Aggregierte Backend-Zählung — wie oft ein
Verbindungscode generiert wurde. Diese Zählung wird auf
zwei Wegen gepflegt: einerseits fließt sie ohne jeden Bezug
zur konkreten Person, IP oder Sitzung in Matomo ein;
andererseits speichern wir in unserer SQLite-DB
(Tabelle
code_events) pro generiertem Code einen reinen Millisekunden-Timestamp ohne Code-Wert, ohne IP, ohne User-ID. Beide dienen ausschließlich der Messung der aggregierten Nutzungsmenge. Aufbewahrung der DB-Einträge: 365 Tage, danach automatische Löschung durch den Retention-Cron.
Was NICHT erfasst wird
- Mausbewegungen, Scroll-Verhalten, Klicks innerhalb der Seite
- Eingaben (insbesondere keine Verbindungs-Codes, keine Passwörter, keine Formularfeld-Inhalte)
- Inhalt der Bildschirm-Sitzungen — die werden Ende-zu-Ende zwischen den Browsern verschlüsselt und tangieren weder Matomo noch unseren Server
- Aktivität während einer laufenden Verbindung — das Matomo-Script wird nur beim initialen Laden der Marketing- und Legal-Seiten ausgeführt
Technische Datenschutz-Maßnahmen
-
Cookielos — Matomo läuft im
disableCookies-Modus. Es werden keine Tracking-Cookies gesetzt. Trotzdem holen wir aktiv deine Einwilligung (siehe Banner oben) — wir folgen damit der strengeren Auslegung von § 25 TTDSG durch den LfDI Niedersachsen und gehen auf Nummer sicher. - IP-Anonymisierung — die letzten zwei Oktette der IP werden auf Matomo-Seite verworfen, bevor irgendetwas gespeichert wird.
- Do-Not-Track respektiert — sendet dein Browser das DNT-Header (Firefox-Setting „Websites mitteilen, dass meine Aktivitäten nicht verfolgt werden sollen", entsprechende Brave-/Tor-/Safari-Defaults), wird gar nichts erfasst.
Verarbeitungsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an aggregierter Reichweitenmessung zur Weiterentwicklung des Dienstes). Du kannst der Erfassung jederzeit per DNT-Browser-Einstellung widersprechen. Aufbewahrung in Matomo: 14 Monate, danach automatische Aggregation auf monatlicher Ebene und Löschung der Roh-Daten.
9a. Aggregierte Download-Klick-Zaehlung
Auf auffi.app/download/ ist neben jedem Download-Button
ein „X Downloads"-Badge sichtbar. Seit Mai 2026 laufen die
Downloads selbst direkt über unseren Server: ein Klick auf einen
Download-Button löst ein GET /api/downloads/file/:asset
aus, das die Datei aus dem GitHub-Release abruft und durch unseren
Server an deinen Browser durchleitet. Beim Start dieses Streams
(nicht beim bloßen Anzeigen der Seite) wird der INT-Zähler
download_counts pro Asset-Name in unserer SQLite-DB um
eins erhöht.
Was erfasst wird
-
Asset-Name aus der URL (z. B.
Auffi_0.4.5_amd64.deb) - Zaehlerstand (INTEGER) und Aenderungs-Zeitstempel pro Asset
- IP-Adresse in den Server-Logs (wie bei jeder HTTP-Anfrage) — siehe §4
Was NICHT erfasst wird
-
Kein Bezug zwischen Download und der speziellen IP/Sitzung —
in der
download_counts-Tabelle steht nur der aggregierte Zähler pro Asset, kein einzelner Download-Eintrag - Kein Cookie, kein LocalStorage-Token gesetzt für den Counter
- Kein Tracking über mehrere Downloads hinweg
- HEAD-Requests (z. B. von Link-Preview-Crawlern oder Uptime- Monitoring) erhöhen den Zähler nicht — nur tatsächlich gestartete Downloads werden gezählt
Verarbeitungsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an Erfolgsmessung der Download-Page). Eine Widerspruchs- moeglichkeit ist nicht eingerichtet, weil ohne Counter-Erhoehung der Inhalt der Page (das „X Downloads"-Badge) nicht aktuell waere — es handelt sich um aggregierte, nicht-personenbezogene Statistik. Aufbewahrung: Zaehler-Datensaetze bleiben dauerhaft; Server-Log-Eintraege mit IP-Praefix entsprechend §4 (14 d, dann rotiert + anonymisiert).
9b. Feedback-Symbol (rechts unten)
Auf der Startseite (/), der Download-Seite
(/download/) und im Dashboard erscheint rechts
unten ein Feedback-Symbol — aber nur fuer eingeloggte Nutzer.
Dazu fragt ein JavaScript beim Laden der Seite ueber
GET /api/me ab, ob ein gueltiges Session-Cookie
vorhanden ist. Diese eine HTTP-Anfrage uebertragt das
__Host-auffi_session-Cookie (siehe §8) als
Login-Check, sendet aber keine zusaetzlichen Daten und setzt
keine neuen Cookies. Bei nicht-eingeloggten Besuchern antwortet
der Server mit HTTP 401 und das Symbol bleibt unsichtbar — die
Anfrage selbst hinterlaesst nur den ueblichen IP-Praefix-Eintrag
im Server-Log (§4).
Auf Impressum und Datenschutz selbst (also auf
dieser Seite und unter /impressum/) wird das Symbol
bewusst NICHT geladen — Pflichtseiten ohne aktive Nutzer-Interaktion
sollen keine Cookies versenden. Wenn du Feedback zur Rechtstext-
Formulierung geben moechtest, nutze bitte
phash@phash.de.
Klickst du auf das Symbol, oeffnet sich ein Eingabefeld. Beim
Abschicken sendet der Browser einen POST /api/feedback
mit deinem Text, dem Session-Cookie, und einem Hinweis auf die
Quell-Seite (source="viewer" oder
source="dashboard") sowie der Browser-/OS-Familie
(z. B. Chrome/Linux). Verarbeitungsgrundlage:
Art. 6 Abs. 1 lit. f DSGVO (Wartung + Verbesserung des Dienstes).
Inhalt + Zeitpunkt der Einreichung werden gespeichert und sind
nur fuer Admins sichtbar. Antwortet ein Admin, geht die Antwort
per E-Mail an die in deinem Konto hinterlegte Adresse (siehe §7).
Aufbewahrung: 1 Jahr nach Bearbeitung („Erledigt"),
spaetestens 2 Jahre nach Einreichung; die Audit-Eintraege ueber
Feedback-Aktionen werden gleichzeitig mit dem Feedback selbst
geloescht (kein laengeres Audit-Schatten-Leben des Inhalts).
10. Eingebundene Dritt-Dienste
-
GitHub — Links auf das Code-Repository
(
github.com/phash/auffi). Klick öffnet GitHub in neuem Tab; GitHubs Datenschutzerklärung gilt dort. -
Buy me a coffee — optionaler Spenden-Link im
Topbar. Klick öffnet
buymeacoffee.comin neuem Tab; deren Datenschutzerklärung gilt dort.
Keine dieser externen Seiten wird automatisch geladen — du
klickst aktiv darauf, und erst dann verlässt du
auffi.app.
11. Datensicherheit
Diese Website nutzt TLS (HTTPS) für die gesamte Übertragung inkl. WebSocket-Signaling. Das Zertifikat wird von Let's Encrypt automatisch erneuert. Server-Hosting: IONOS VPS in Frankfurt am Main. WebRTC-Streams sind zusätzlich DTLS-SRTP-verschlüsselt.
12. Open-Source-Quellcode
Auffi ist 100 % Open Source unter der AGPL-3.0. Du kannst jederzeit überprüfen, welche Daten wirklich verarbeitet werden: github.com/phash/auffi. Der vollständige Sicherheits-Audit liegt unter docs/security-review-2026-05.md.
13. Änderungen dieser Erklärung
Bei Änderungen am Funktionsumfang oder den Verarbeitungs-Wegen
aktualisieren wir diese Datenschutzerklärung. Die jeweils
aktuelle Version ist auf auffi.app/datenschutz/
abrufbar.
Stand: September 2026.