Datenschutzerklärung
backend/README.md „Datenschutz-Hinweise“) und
müssen vor dem externen TestFlight vorliegen und in der App verlinkt sein.
Mit [JURISTISCH ZU PRÜFEN] markierte Punkte sind rechtliche
Einschätzungen, die vor Veröffentlichung geklärt werden müssen.
1. Verantwortlicher und Kontakt
TODO: Name, Anschrift, E-Mail (siehe Impressum); ggf. Datenschutzbeauftragter.
2. Überblick: Daten, Zwecke, Rechtsgrundlagen
TODO: Übersichtstabelle je Datenkategorie mit Zweck und Rechtsgrundlage (Art. 6 DSGVO). Pflichtangaben vs. freiwillige Angaben je Kategorie nennen (z. B. Anzeigename erforderlich für die Nutzung, Avatar freiwillig, Crash-Reports freiwillig).
3. Anmeldung mit Apple / Google
TODO: Anbieter, übermittelte Daten, Apple-„E-Mail verbergen“ (Private-Relay-Adresse als E-Mail möglich), Empfänger und Drittland-Grundlage (Angemessenheitsbeschluss / EU-US Data Privacy Framework / Standardvertragsklauseln) für Apple und Google [JURISTISCH ZU PRÜFEN].
4. Fahrten, Gutschriften, Gruppen
TODO: gespeicherte Daten (km, Zeitstempel, Faktor, Beteiligte). Keine GPS-Tracks und keine Bewegungsprofile auf dem Server (Plan Kap. 4.5). Adresssuche über den Geocoder des Betriebssystems: Empfänger Apple (iOS) bzw. Google (Android) als eigenständige Verantwortliche des Geräte-Dienstes, Hinweis auf deren Datenschutzerklärungen.
[JURISTISCH ZU PRÜFEN] Textentwurf (gemessene Fahrten, Phase 3): Bei Fahrten, die du per GPS misst, speichern wir zusätzlich den Nachtanteil der Strecke in Metern sowie den Tag- und Nachtfaktor deiner Gruppe zum Zeitpunkt der Fahrt. Diese Werte enthalten keinen Ortsbezug und sind im Datenexport enthalten.
4b. Fahrtmessung per GPS (freiwillig)
[JURISTISCH ZU PRÜFEN] Textentwurf:
- Wenn du „Fahrten automatisch messen“ einschaltest, nutzt die App deinen Standort nur während einer Fahrt, um die gefahrenen Kilometer und deren Tag-/Nachtanteil zu berechnen. Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO; die Standortfreigabe erteilst du über die Systemdialoge und kannst sie jederzeit in den Systemeinstellungen widerrufen.
- Der GPS-Verlauf wird nicht an unsere Server übertragen und nicht dauerhaft gespeichert; die einzelnen Positionen liegen nur im Arbeitsspeicher deines Geräts.
- Bis du die Fahrt einträgst oder verwirfst, bleiben auf deinem Gerät: Start, Ziel und Haltepunkte (auf ca. 11 m gerundet) sowie die je Minute gefahrenen Meter. Sie werden beim Eintragen oder Verwerfen gelöscht, spätestens 24 Stunden nach Fahrtende; auf iOS erfolgt diese Löschung im Hintergrund, sobald das System es zulässt, spätestens beim nächsten Öffnen der App. Beim Abmelden oder Löschen deines Kontos werden sie sofort gelöscht. Sie sind von Geräte-Backups ausgeschlossen.
- Automatischer Start (optional, nur mit Standortzugriff „Immer“): Wenn du ihn aktivierst, startet KmKarma die Messung selbst, sobald dein Handy mit deinem Auto verbunden ist (Bluetooth bzw. Kurzbefehl bei CarPlay), auch bei geschlossener App. Dafür nutzt die App den Standort im Hintergrund, aber nur während einer Fahrt. Ohne Aktivierung fragt dich die App per Benachrichtigung. Du kannst den automatischen Start jederzeit in der App (Fahrt-Erkennung) oder in den Systemeinstellungen abschalten; die Fahrt-Erkennung ohne Standort funktioniert weiter. Rechtsgrundlage hierfür ggf. Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) [JURISTISCH ZU PRÜFEN].
- Dein Auto erkennt die App über einen mit einem geräteeigenen Schlüssel gehashten Bluetooth-Bezeichner (pseudonym, nicht anonym); er verlässt dein Gerät nicht.
- Auf dem Sperrbildschirm, in Live Activity, Benachrichtigungen, CarPlay und Android Auto zeigt die App während einer Fahrt nur Karma, Kilometer, Faktor und Dauer sowie neutrale Hinweise wie „Fahrt erkannt“ – keine Orte und keine Namen.
4a. Badges, Jahresrückblick (Wrapped) und lokales Nutzungslog
[JURISTISCH ZU PRÜFEN] Textentwurf:
- Badges (Auszeichnungen): Der Server vergibt Badges (z. B. „Nachteule“, „Frühschicht“, „Kilometerfresser“, „Karma-König“) automatisch aus deinen bestätigten Fahrten. Zweck: spielerische Anerkennung. Verarbeitet werden Badge-Art, Gruppe, Zeitraum und Verleihungszeitpunkt. Es entstehen keine neuen Datenarten, die Auswertung nutzt vorhandene Fahrtdaten (Zeit, Strecke, Nachtfahrt). Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Nutzung der App-Funktion), hilfsweise lit. f.
- Sichtbarkeit: Deine Badges sehen die aktiven Mitglieder deiner Gruppe; ein Hinweis steht in der App. Verlässt du die Gruppe, bleiben die Badges gespeichert, sind aber nur noch für aktive Mitglieder der Gruppe sichtbar und nicht mehr für dich in dieser Gruppe abrufbar. Bei Löschung deines Kontos werden deine Badges gelöscht. Es gibt keine Negativ-Badges und keine Ranglisten über Badges. Es werden keine Push-Nachrichten zu Badges versendet.
- Jahresrückblick (Wrapped): Kennzahlen (Kilometer, Anzahl und Nachtanteil der Fahrten, Gutschriften, Badges) berechnet der Server aus deinen bestätigten Fahrten und liefert sie nur an dich. Das teilbare Bild wird auf deinem Gerät erzeugt; es enthält keine Namen, keine Avatare, keine Gruppennamen und keine Karten. Teilen ist freiwillig; mit dem Teilen entscheidest du, wer das Bild erhält, KmKarma erhält es nicht. Die „Top-Strecke“ wird ausschließlich auf deinem Gerät ermittelt und erscheint im Bild nur, wenn du sie vor dem Teilen aktivierst.
- Lokales Nutzungslog: Auf deinem Gerät zählt die App, wie oft du einen gespeicherten Routen-Favoriten pro Jahr
nutzt (Schlüssel
favorite_usage_v1), und merkt sich, welche Badges du schon gesehen hast (achievements_seen_v1). Nichts davon wird an den Server übertragen. Einträge älter als zwei Jahre und Einträge zu gelöschten Favoriten werden entfernt; beim Abmelden, Nutzerwechsel und bei Kontolöschung wird alles gelöscht.
5. Löschung = Pseudonymisierung
TODO: Konto-Löschung pseudonymisiert, sie anonymisiert nicht: Fahrten bleiben für die Salden der Gruppe erhalten und sind personenbeziehbar. Rechtsgrundlage der Aufbewahrung: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse der Gruppenmitglieder an nachvollziehbaren Salden) [JURISTISCH ZU PRÜFEN], Interessenabwägung und Widerspruchsrecht erläutern.
6. Speicherdauern je Kategorie
TODO: Tabelle. Vorgesehene Werte (vor Veröffentlichung mit der tatsächlichen Konfiguration abgleichen):
- Access-Logs des Proxys: 7 Tage, ohne IP-Adresse, Pfad und Query-String
- Datenbank-Backups: 30 Tage, verschlüsselt und nur anfügbar; aufgeräumt wird wöchentlich, gelöschte Konten sind deshalb spätestens nach 37 Tagen aus allen Backups entfernt [JURISTISCH ZU PRÜFEN]
- Löschliste (nur pseudonyme Kennungen gelöschter Konten, dient dem erneuten Anwenden von Löschungen nach einem Restore): 60 Tage
- Fehlerberichte (GlitchTip, nur mit Einwilligung): 30 Tage
- Push-Tokens (Abschnitt 9): sofort bei Abmeldung, Ausschalten im Profil und Kontolöschung, sonst spätestens 60 Tage nach der letzten Nutzung der App
- Push-Warteschlange (nur IDs, Abschnitt 9): gesendete Einträge 7 Tage, nie versendete höchstens 30 Tage
- Anmelde-Sitzungen und Audit-Log der Anmeldung (GoTrue): TODO Dauer und Inhalt (u. a. IP-Adressen) klären [JURISTISCH ZU PRÜFEN]
- Konto- und Fahrtdaten: bis zur Löschung des Kontos bzw. nach Pseudonymisierung unbefristet
- Zwischenstand einer gemessenen Fahrt (nur auf dem Gerät, Abschnitt 4b): bis zum Eintragen/Verwerfen, höchstens 24 Stunden nach Fahrtende
7. Hosting und Backups
TODO: Hetzner Online GmbH, Serverstandort Deutschland; Auftragsverarbeitungsvertrag (Art. 28 DSGVO). Verschlüsselte Offsite-Backups auf einer Hetzner Storage Box in Helsinki (Finnland, EU), clientseitig verschlüsselt. Löschungen wirken in Backups erst nach Ablauf der Aufbewahrung.
8. Routenberechnung
TODO: eigener OSRM-Server (keine Weitergabe an Dritte). Google Directions ist standardmäßig aus und wird nur nach ausdrücklicher Einwilligung genutzt (Drittland); die Einwilligung ist jederzeit widerrufbar (Einstellungen in der App) [JURISTISCH ZU PRÜFEN].
[JURISTISCH ZU PRÜFEN] Textentwurf (gemessene Fahrten): Für die Direktstrecke einer Mitnahme sendet die App Start- und Zielpunkt verschlüsselt an unseren eigenen Routing-Server (routing.kmkarma.com, Hetzner, Auftragsverarbeitung). Koordinaten, Pfade und IP-Adressen werden dort nicht protokolliert; technisch bedingt sieht der Server die IP-Adresse kurzzeitig (Rate-Limiting im Arbeitsspeicher). Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO.
9. Push-Benachrichtigungen
Wenn du Benachrichtigungen erlaubst, senden wir dir Hinweise, z. B. wenn ein Eintrag auf deine Bestätigung wartet. Die Nachricht enthält keine Namen, Strecken oder Kilometer, nur einen allgemeinen Hinweis sowie technische IDs des Eintrags zum Öffnen in der App. Verarbeitet werden ein Push-Token deines Geräts, die Plattform (iOS/Android) und der Nachrichteninhalt. Empfänger: Google (Firebase Cloud Messaging), bei iOS zusätzlich Apple (APNs); dabei kann eine Übermittlung in die USA erfolgen [JURISTISCH ZU PRÜFEN: DPF/SCC, AVV mit Google]. Google erhält technisch bedingt zusätzlich eine Firebase-Installations-ID. Rechtsgrundlage: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) [JURISTISCH ZU PRÜFEN]. Speicherdauer: Das Token löschen wir bei Abmeldung, beim Ausschalten im Profil und bei Kontolöschung sofort, bei ungültigem Token automatisch, sonst spätestens 60 Tage nach der letzten Nutzung der App. Widerruf: jederzeit im Profil oder in den Systemeinstellungen. Ohne Einwilligung funktioniert die App weiter.
10. Server-Logs, Zertifikate und Verfügbarkeitsüberwachung
TODO: Proxy-Logs wie oben (ohne IP, Pfad, Query). Let’s Encrypt (ISRG) stellt TLS-Zertifikate aus; dabei werden Domainnamen und die Server-IP übermittelt, keine Nutzerdaten. Uptime-Monitoring prüft nur öffentliche Adressen des Dienstes (keine Nutzerdaten); ggf. externer Monitoring-Anbieter nennen.
11. Crash-Reporting (freiwillig)
TODO: GlitchTip, selbst gehostet, nur nach Einwilligung (Opt-in), ohne personenbezogene Payload; Aufbewahrung 30 Tage; Widerruf jederzeit in der App möglich. IP-Speicherung serverseitig vor Veröffentlichung prüfen und ggf. ausschließen.
12. Deine Rechte
TODO: Auskunft (Datenexport im Profil), Berichtigung, Löschung, Einschränkung, Widerspruch (Art. 21 DSGVO, insbesondere gegen Verarbeitung nach Art. 6 Abs. 1 lit. f), Datenübertragbarkeit, Widerruf erteilter Einwilligungen, Beschwerderecht bei einer Aufsichtsbehörde. Zuständige Aufsichtsbehörde: TODO (abhängig vom Sitz des Verantwortlichen) [JURISTISCH ZU PRÜFEN].
13. Stand dieser Erklärung
TODO: Versionsnummer und Datum; Änderungshistorie.