Datenschutzerklärung – factr
Stand: 21. September 2026
Diese Erklärung gilt für die Android-App factr: 2FA Authenticator (Paketname de.timhaller.authenticator), die über Google Play vertrieben wird. Für diese Website gilt sie nicht – dafür gibt es die Datenschutzerklärung von factr.rellit.de.
1. Verantwortlicher
Verantwortlicher im Sinne der Datenschutz-Grundverordnung (DSGVO) ist:
Tim Haller
Beethovenstraße 9
64347 Griesheim
Deutschland
E-Mail: mail@timhaller.de
Ein Datenschutzbeauftragter ist nicht bestellt; die gesetzlichen Voraussetzungen dafür liegen nicht vor.
2. Das Wichtigste vorweg
Die App betreibt keinen eigenen Server und erhebt selbst keine personenbezogenen Daten. Es gibt kein Nutzerkonto, keine Registrierung und keine Anmeldung. Es ist kein Werbe-, Analyse- oder Absturzberichts-SDK eingebunden.
Alle Daten, die beim Benutzen entstehen – deine Konten, ihre Secrets, Namen, Farben und Ordner – bleiben ausschließlich auf deinem Gerät. Sie sind an keiner Netzwerkverbindung beteiligt; die App funktioniert im Flugmodus vollständig.
Personenbezogene Daten fallen an einer Stelle an, und sie betrifft Google: den Kauf der Pro-Freischaltung über Google Play Billing (Ziffer 8). Dafür – und nur dafür – besitzt die App die Berechtigung INTERNET. Sie wird weder für die Codes noch für deine Konten verwendet.
Diese Bibliothek bringt weitere Google-Bestandteile mit, die Diagnosedaten an Google melden können und sich nicht einzeln abschalten lassen. Das ist in Ziffer 9 offen beschrieben, weil es zur Wahrheit gehört: Von mir erfährst du nichts über niemanden – was Google über seine eigenen Bibliotheken erfährt, kann ich weder verhindern noch einsehen.
3. Daten, die ausschließlich auf deinem Gerät bleiben
Die App speichert in einer lokalen Datenbank und im privaten App-Speicher (Android DataStore):
| Gespeichert wird | Wozu |
|---|---|
| Das Secret jedes Kontos (verschlüsselt) | daraus wird der Einmalcode berechnet – ohne das Secret gibt es keine Codes |
| Kontoname, Aussteller, Stellenzahl, Intervall bzw. Zähler | Anzeige und korrekte Berechnung des Codes |
| Hintergrundfarbe, Favoritenmarkierung | Darstellung der Kontoliste |
| Ordner und ihre Zuordnung zu Konten | Gliederung und Filter der Liste |
| Einstellungen (kompaktes Design, Hell/Dunkel, App-Sperre an/aus) | damit deine Wahl erhalten bleibt |
| Konfiguration jedes Homescreen-Widgets | welches Konto es zeigt und ob der Code erst nach Antippen erscheint |
| Ob die Pro-Freischaltung vorliegt (Ja/Nein) | um die Grenzen der kostenlosen Version aufzuheben |
Diese Daten werden nicht übertragen und sind für andere Apps nicht lesbar. Sie werden gelöscht, wenn du die App deinstallierst oder ihre Daten im Android-System zurücksetzt.
Auch das Android-Systembackup erfasst sie nicht. Die App ist vom automatischen Cloud-Backup und von der Geräteübertragung ausgenommen (allowBackup="false" samt vollständiger Ausschlussregeln). Deine Secrets landen also nicht nebenbei in einer Google-Drive-Sicherung, nur weil diese im System eingeschaltet ist. Sie verlassen das Gerät ausschließlich über den Export, den du selbst anstößt (Ziffer 7).
4. Wie die Secrets geschützt sind
Jedes Secret liegt mit AES-256 im GCM-Modus verschlüsselt in der Datenbank. Der dafür verwendete Schlüssel wird im Android Keystore erzeugt und ist als nicht exportierbar markiert: Er verlässt die sichere Hardware des Geräts nie, weder für ein Backup noch für die App selbst, die ihn nur zum Ver- und Entschlüsseln benutzen kann. Wo das Gerät einen eigenen Sicherheitschip besitzt (StrongBox, ab Android 9), wird dieser genutzt.
Entschlüsselt wird ein Secret nur im Moment der Code-Berechnung und nur im Arbeitsspeicher. Es wird nicht protokolliert, nicht angezeigt und nicht in die Zwischenablage kopiert – in die Zwischenablage gelangt allenfalls der sechsstellige Code, und auch das nur, wenn du ihn antippst.
Zusätzlich ist jeder Bildschirm, der Codes, Secrets oder die QR-Vorschau zeigt, mit FLAG_SECURE markiert. Das verhindert Screenshots, Bildschirmaufnahmen und die Vorschau in der Liste der zuletzt geöffneten Apps – auch durch andere Apps.
Eines kann die App nicht schützen: den Code, den ein Homescreen-Widget anzeigt. Der Homescreen gehört dem Launcher, nicht der App, und FLAG_SECURE greift dort nicht. Deshalb lässt sich jede Widget-Instanz so einstellen, dass der Code erst nach dem Antippen erscheint.
5. Berechtigungen und wofür sie gebraucht werden
| Berechtigung | Zweck |
|---|---|
CAMERA | QR-Codes beim Anlegen eines Kontos lesen. Als optional deklariert – ohne Kamera bleibt die App nutzbar (Bild aus der Galerie, Eingabe von Hand). |
USE_BIOMETRIC | die optionale App-Sperre per Fingerabdruck oder Geräte-PIN (standardmäßig aus) |
RECEIVE_BOOT_COMPLETED | Homescreen-Widgets nach einem Neustart wieder aktualisieren – ohne diese Berechtigung zeigten sie danach einen abgelaufenen Code |
INTERNET, ACCESS_NETWORK_STATE | ausschließlich für den Kauf der Pro-Freischaltung und die Prüfung, ob sie vorliegt (Google Play Billing). Kein anderer Teil der App baut eine Verbindung auf. |
BILLING | Kaufabwicklung über Google Play |
Das ist die vollständige Liste. Ausdrücklich nicht angefordert werden:
AD_ID– es gibt keine Werbung und keinen Zugriff auf die Werbe-ID.- Standort, Kontakte, Mikrofon, Telefonstatus.
- Speicherberechtigungen – Backup und Galeriebild laufen über die Auswahldialoge des Systems (Storage Access Framework bzw. Fotoauswahl), die der App nur die eine gewählte Datei freigeben.
6. Kamera und QR-Scan
Das Kamerabild wird ausschließlich zur Laufzeit ausgewertet, um einen QR-Code zu erkennen. Es wird nicht gespeichert, nicht zwischengespeichert und nicht übertragen. Die Auswertung geschieht vollständig auf dem Gerät mit der Bibliothek ZXing; ein Cloud-Dienst zur Bilderkennung ist nicht beteiligt. Wählst du stattdessen ein Bild aus der Galerie, gilt dasselbe: Es wird einmal ausgelesen und danach nicht behalten.
7. Backup und Wiederherstellung
Du kannst alle Konten in eine Datei exportieren. Ort und Dateiname wählst du über den Systemdialog – die App schreibt nur dorthin, wohin du zeigst. Die Datei ist immer verschlüsselt: mit AES-256-GCM, dessen Schlüssel per PBKDF2-HMAC-SHA256 mit 210.000 Iterationen (Empfehlung des OWASP) aus einem Passwort abgeleitet wird, das du festlegst.
Dieses Passwort kenne ich nicht und kann es nicht zurücksetzen. Geht es verloren, ist die Datei unlesbar – für dich und für jeden anderen. Das ist der Preis dafür, dass eine Sicherung deiner 2FA-Secrets auch dann sicher bleibt, wenn sie in falsche Hände gerät. Wo du die Datei ablegst, entscheidest du; wanderst du damit in einen Cloud-Speicher, gelten dort die Bedingungen des jeweiligen Anbieters – übertragen wird allerdings ausschließlich der verschlüsselte Inhalt.
8. Pro-Freischaltung (Google Play Billing)
Die App ist kostenlos. Einige Funktionen – mehr Ordner, mehr Codes je Ordner, die vollständige Symbolauswahl und eigene Symbole – lassen sich durch einen einmaligen Kauf innerhalb der App freischalten. Die Zahlung wickelt Google vollständig über Google Play ab.
Anbieter: Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland
Google verarbeitet dabei deine Kontodaten, Zahlungsinformationen und die Kaufhistorie. Ich erhalte zu keinem Zeitpunkt deine Zahlungsdaten – weder Kartennummer noch Rechnungsanschrift. Die App fragt bei Google lediglich ab, ob ein gültiger Kauf vorliegt, und speichert das Ergebnis als Ja/Nein-Wert lokal auf dem Gerät. Für diese Abfrage wird eine Verbindung zu Google Play aufgebaut; dabei fallen bei Google technisch notwendige Verbindungsdaten an, darunter deine IP-Adresse.
Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Erfüllung eines Vertrags). In der Play Console sehe ich ausschließlich zusammengefasste Verkaufszahlen, keine Angaben zu einzelnen Käufern.
Diese Abfrage findet auch statt, wenn du nichts gekauft hast: Anders ließe sich eine einmal erworbene Freischaltung nach einer Neuinstallation oder auf einem neuen Gerät nicht wiederherstellen. Übertragen wird dabei nichts als diese Anfrage – deine Konten, Secrets und Codes sind daran zu keinem Zeitpunkt beteiligt. Verwaltung und Erstattung des Kaufs laufen über Google Play.
9. Vertrieb über Google Play
Beim Herunterladen, Aktualisieren und Nutzen des Stores verarbeitet Google Daten in eigener Verantwortung – etwa Installationsstatistiken und Absturzberichte des Play-Dienstes. Darauf habe ich keinen Einfluss; es gelten die Datenschutzbestimmungen von Google. In der Play Console sehe ich ausschließlich zusammengefasste Statistiken, etwa Installationen pro Land oder Gerätetyp. Ein Rückschluss auf einzelne Personen ist mir dabei nicht möglich.
Was die Kauf-Bibliothek zusätzlich mitbringt: Google Play Billing lässt sich nicht isoliert einbinden. Mit ihr kommen weitere Google-Bestandteile in die App, darunter play-services-base und play-services-basement sowie Googles Datentransport (transport-backend-cct, firebase-encoders). Über diesen Transport melden Google-Bibliotheken Diagnose- und Nutzungsdaten an Google; typisch sind Gerätemerkmale, Fehlerzustände und technische Kennungen.
Ich setze diese Bestandteile nicht ein, konfiguriere sie nicht und erhalte aus ihnen keine Daten – abschalten lassen sie sich mit der Kaufabwicklung aber auch nicht. Verantwortlich dafür ist Google. Wer das vollständig vermeiden möchte, nutzt die kostenlose Version und tätigt keinen Kauf; die Bestandteile sind dann zwar in der App enthalten, der Kaufvorgang, der sie anstößt, findet aber nicht statt.
Überall, wo die Wahl bei mir lag, ist sie gegen Google-Bibliotheken ausgefallen: Der QR-Scan läuft über ZXing und nicht über Googles ML Kit, das denselben Datentransport mitgebracht hätte. Ein Analyse-, Werbe- oder Absturzberichts-SDK ist an keiner Stelle eingebunden.
10. Was die App nicht tut
Zur Klarstellung, weil bei Apps oft anderes vermutet wird. Alle folgenden Punkte beziehen sich auf das, was ich in die App einbaue; was mit der Kaufabwicklung von Google hinzukommt, steht in Ziffer 9 und ist davon ausgenommen:
- Es wird kein Analyse-Werkzeug eingesetzt – kein Firebase Analytics, kein Google Analytics, kein vergleichbares SDK.
- Es wird kein Absturzberichts-Dienst wie Crashlytics eingebunden.
- Es wird keine Werbung angezeigt und keine Werbe-ID gelesen.
- Es gibt kein Nutzerkonto, keine Registrierung, keinen Login.
- Es wird nicht erfasst, welche Konten du anlegst, bei welchen Diensten du angemeldet bist oder wie oft du die App benutzt.
- Es werden keine Daten an Dritte weitergegeben oder verkauft.
- Es werden keine Konten, Secrets oder Codes übertragen – die einzige Verbindung der App geht an Google Play und betrifft ausschließlich die Kaufprüfung (Ziffer 8).
11. Geplante Cloud-Synchronisierung
Für eine spätere Version ist eine optionale Synchronisierung über den privaten App-Datenbereich deines Google Drive vorgesehen. Sie ist in dieser Version nicht enthalten; die App bringt dafür weder Code noch Berechtigungen mit.
Sollte sie kommen, gilt: ausdrücklich einzuschalten, ohne sie bleibt alles wie beschrieben, und übertragen würde ausschließlich die bereits verschlüsselte Backup-Datei – nie ein Secret im Klartext. Diese Erklärung wird dann vorher angepasst.
12. Speicherdauer
Die lokalen Daten bleiben gespeichert, bis du das jeweilige Konto löschst, die App deinstallierst oder ihre Daten zurücksetzt. Eine serverseitige Speicherung findet nicht statt. Für Daten, die bei Google im Zusammenhang mit Kauf und Store anfallen, gelten Googles eigene Fristen, auf die ich keinen Einfluss habe.
13. Deine Rechte
Dir stehen nach der DSGVO folgende Rechte zu: Auskunft (Art. 15), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung der Verarbeitung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch gegen die Verarbeitung (Art. 21).
Ein praktischer Hinweis dazu: Da ich selbst keine personenbezogenen Daten von dir speichere, kann ich zu deiner Person auch keine Auskunft erteilen und nichts löschen – es liegt mir schlicht nichts vor. Deine Daten löschst du, indem du die App deinstallierst oder ihre Daten zurücksetzt. Für Daten, die im Rahmen von Kauf oder Store-Nutzung bei Google anfallen, richte deine Anfrage bitte direkt an Google.
Außerdem hast du das Recht, dich bei einer Datenschutz-Aufsichtsbehörde zu beschweren (Art. 77 DSGVO). Zuständig ist die Aufsichtsbehörde deines Wohnsitzes oder die für mich zuständige Behörde:
Der Hessische Beauftragte für Datenschutz und Informationsfreiheit
Gustav-Stresemann-Ring 1
65189 Wiesbaden
Telefon: 0611 1408-0
E-Mail: poststelle@datenschutz.hessen.de
Web: datenschutz.hessen.de
14. Kinder
Die App richtet sich nicht an Kinder und ist im Store nicht als Kinder-App eingestuft. Es werden wissentlich keine Daten von Kindern unter 16 Jahren erhoben – mangels Datenerhebung allerdings auch von niemandem sonst.
15. Änderungen dieser Erklärung
Diese Erklärung wird angepasst, wenn sich die App oder die Rechtslage ändert. Die jeweils aktuelle Fassung ist unter dieser Adresse abrufbar. Das Datum unter „Stand“ oben zeigt an, wann zuletzt etwas geändert wurde.
16. Kontakt
Bei Fragen zum Datenschutz in dieser App: mail@timhaller.de