bonify — das Schufa-Startup, das jedem sagt, ob Du kreditwürdig bist
Bonify ist eine App um seinen eigenen Kreditscore einzusehen. Allerdings klappte das nicht nur mit dem eigenen Score, sondern auch mit dem aller anderen, z.B. dem von Jens Spahn. Und Datenabflüsse sind nicht mal das einzige Problem des Schufa-Startups.
Die Schufa steht seit langer Zeit in der Kritik, weil sie die Kreditwürdigkeit von Menschen anhand eines geheimen Scoringverfahrens bewertet. Wenn diese Bewertung dazu verwendet wird, eine potentiell lebensbestimmende Entscheidung wie die Vergabe eines Kredites automatisiert über einen solchen Score zu treffen — auf deutsch Kreditscoring genannt –, dann ist das nicht nur moralisch falsch, sondern auch nicht mit EU-Recht vereinbar.
Das ist der Schufa bewusst. Deshalb hat sie sich eine Transparenzoffensive verordnet. Teil dieser ist unter anderem ein sogenannter Score-Simulator, der Menschen verständlich machen will, wie der Schufa-Score gebildet wird. Und eben auch die Übernahme der Forteil GmbH, welche die App bonify betreibt. Eine App, in der man nach einer Authentifizierung per Bank-Konto seinen eigenen Kreditscore einsehen kann und relativ nutzlose Tipps bekommt, wie dieser verbessert werden kann — z.B. indem man seine Kreditraten regelmäßig bezahlt. Außerdem werden als ein kleines “Side-Business” über die bonify-App auch Kredite vertrieben, welche keine Schufa-Auskunft benötigen, sondern nur die bonify-Bewertung.
Die Schufa verfolgt dabei allerdings auch noch weitere Eigeninteressen. Denn nach einer Anmeldung bei bonify soll man den Zugriff zum eigenen Bankkonto gewähren. Denn Bonify nutzt den Namen, unter dem das Bankkonto geführt wird, zur Identifizierung der Person, die gerade ihren Kreditscore einsehen will. Sie erhalten dabei aber außerdem noch Zugriff auf die Liste aller Transaktionen des verknüpften Bankkontos. Diese nutzen sie z.B. um mit KI zu analysieren, wie viel Miete oder Haushaltsausgaben vom Bankkonto jeden Monat vom Konto abgehen. Ein wahrer Datenschatz um die Bonität von Menschen zu bewerten.
Der Kreditscore von Jens Spahn
Da bonify in den letzten Monaten häufiger in den Medien war und ich ein persönliches Interesse an absurden Algorithmen zur Bewertung von Menschen habe, dachte ich, das es an der Zeit ist, sich bonify einmal technisch genauer anzuschauen.
Dabei fiel mein Augenmerk relativ schnell auf den Prozess der Authentifizierung über das Bankident-Verfahren. Dieses stellte sich in der Vergangenheit schon häufiger als relativ unsicher heraus und wurde deshalb in den verschiedensten Bereichen verboten (z.B. bei der Eröffnung eines Kontos). Hierfür wird der Dienst finleap connect in die Website eingebettet. Über den loggen sich Nutzerinnen nach Eingabe des eigenen Namens bei der Bank ein, geben ihr Konto für bonify frei und müssen im letzten Schritt all ihre weiteren personenbezogenen Daten ergänzen. Am Ende bekommt bonify den Namen sowie die Transaktionshistorie des Kontos vom Bankkonto und alle anderen Informationen von der Nutzerin direkt freigegeben.
Im Hintergrund kommuniziert die Website mit verschiedenen sogenannten Microservices — kleine Anwendungen die einen gewissen Teil der Geschäftslogik von bonify repräsentieren. So wird z.B. über den Endpunkt “https://cloud-prod.bonify.de/user-management-prod/user” die Nutzerin angelegt und deren Profil aktualisiert oder über den Endpunkt “https://cloud-prod.bonify.de/schufa-score-management-prod/” der Schufascore abgerufen.
Nach Abschluss des Bankdatenabrufs wird der Endpunkt “https://cloud-prod.bonify.de/finleap-wl-api-prod/validation” aufgerufen und an diesen ein geheimer Code zusammen mit dem Namen der Person, der validiert werden soll, übergeben. Mit diesem geheimen Code kann der Microservice nun über eine weitere Schnittstelle bei Finleap anfragen, mit welchem Namen die Nutzerin sich gerade bei ihrer Bank eingeloggt hat. Anschließend werden diese beiden Namen verglichen und im User Microservice gespeichert. Der Vergleich läuft dabei nach dem Prinzip “wenn der Vor- und Nachname, unter dem das Bankkonto geführt wird, im Namen der bei bonify eingegeben werden, irgendwie drin stecken, dann ist der Name valide”. Also ein Name wie “Jens Lilith Spahn Wittmann”, würde sowohl auf ein Bankkonto von Jens Spahn, Lilith Wittmann, Lilith Spahn, Jens Wittmann usw validieren. Aber Namensvalidierung ist ja auch kompliziert.
Wenn aber zum selben Zeitpunkt, in dem diese Überprüfung abläuft, ein weiterer Name an den Microservice geschickt wird, dann wird der Name, der gerade geprüft wurde, einfach von einem neuen überschrieben und das Profil wird trotzdem als “über die Bank validiert” markiert. Der Request sieht in etwa so aus:
{
"addressCity": "Berlin",
"addressHouseNumber": "38",
"addressStreet": "Auf dem Grat",
"addressZipCode": "14195",
"dateOfBirth": "1980-05-16T00:00:00.000Z",
"email": "xxxx",
"firstName": "Jens",
"lastName": "Spahn",
"gender": "MALE",
"mobileNumber": null,
"registrationIntent": "EXK-CTZTK",
"addresses": [
{
"city": "Berlin",
"houseNumber": "38",
"street": "Auf dem Grat",
"zipCode": 14195
}
],
"identStatus": "ACTIVE",
"userVerifiedViaGermanId": true,
"userVerifiedViaBankAccount": true,
"paidForRentalCertificate": true
}
Und so haben wir jetzt ein validiertes Nutzerprofil für Jens Spahn. Inklusive seinem Boniversum-Score, sowie Information darüber, auf welcher Datenbasis dieser berechnet wurde.
Diesen Scoreabruf habe ich im Rahmen meiner Recherche für mehrere Personen durchgeführt und den Score mit dem verglichen, der den Menschen, wenn sie sich regulär bei bonify anmeldeten, angezeigt wurde. Ein Zugriff auf Boniversum Scores beliebiger Personen (solang man grob deren Name und aktuelle oder frühere Adresse wusste) war also möglich. Boniversum verfügt aber über weitaus weniger Daten zur Kreditwürdigkeit als die Schufa selbst und berechnet ihn primär auf Basis von Wohnort, Gerichtsakten und Einträgen in öffentlichen Registern.
Bonify stellt eigentlich neben dem Boniversum-Score seit wenigen Tagen auch den hauseigenen Schufa-Score bereit. Auf den konnte ich aber im Rahmen meiner Tests nicht zugreifen. Das liegt daran, dass ein anderer Microservice diesen von der Schufa abruft, allerdings schon bevor ich die Daten der Person über die API manipulieren kann.
Das widerspricht zwar den eigenen AGBs — bonify behauptet, sie würden erst Daten an die Schufa übermitteln, nachdem ich explizit eingewilligt habe — aber das scheint Bonifys Entwickler*innen bei der Implementierung des Datenabrufs eher nicht interessiert zu haben.
Wir haben nun also einen Weg gefunden, den Score der Kreditauskunft Boniversum für jede beliebige Person — z.B. Jens Spahn — abzurufen. Aber noch toller wäre es doch, wenn wir auch nachweisbar echte Daten bekommen könnten.
Jens Spahns Mieterauskunft
Jens Spahn hat kürzlich seine Villa verkauft und muss nun vielleicht wieder zur Miete wohnen. Zum Glück hat bonify da etwas für ihn. Die Mieterauskunft, die einem Vermieter bestätigt, dass er keine Schulden hat und auch seine Miete immer pünktlich bezahlt. Für gerade einmal 20€ erhält man ein Bonitätsnachweis als PDF, welcher vom potentiellen Vermieter auf einer Website validierbar ist.
Die haben wir Jens einfach mal bestellt. Alles Gute bei der Wohnungssuche!
Die 955.51€ monatliche Miete kommen dabei nicht von Jens, sondern von dem Konto, welches zur Verifizierung verwendet wurde. Denn wenn bei der Anmeldung Bankident verwendet wird, dann erhält bonify wie gesagt nicht nur euren Name sondern auch sämtliche Transaktionen des verknüpften Kontos. Und mit etwas Künstlicher Intelligenz versuchen sie Einnahmen, Ausgaben, Gehälter, Rücklastschriften und Mietausgaben automatisch zu klassifizieren. Daten, die viel viel mehr über die Zahlungsfähigkeit aussagen, als ein klassischer Kreditscore und deswegen für die Schufa äußerst wertvoll sind.
{
"score": {
"components": {
"income": "0.000",
"rucklast": "1.000",
"job": "0.000",
"savings": "1.000"
},
"componentsWeighted": {
"income": "0.000",
"rucklast": "0.350",
"job": "0.000",
"savings": "0.100"
},
"total": "0.450"
},
"input": {
"results": {
"income": 0,
"rucklast": 0,
"job": 0,
"savings": 0
},
"accountList": [
"Giro account"
]
},
"userId": 0,
"internalUserIdentifier": "xxx",
"faUUID": "xxx",
"version": "1.0.1",
"dateStamp": "22-07-2023",
"timeStamp": 1690037652
}
Zusammenfassung
Die Schufa hat ein Startup gekauft, dass nicht mal über absolutes Grundlagenwissen im Bereich Softwarearchitektur verfügt und einfach irgendwelche Verfahren irgendwie zusammenhackt. So verstoßen sie gegen ihre eigenen AGBs und ich habe jetzt den Kreditscore von Jens Spahn. Deshalb bleibt mir hier nur die Empfehlung an die Schufa: Abschalten und Abschreiben.
Ansonsten bleibt zu hoffen, dass wir als Gesellschaft bald einsehen, das irgendwelche geheimen Algorithmen, die bei der Datenlage oft mehr Zufallsgeneratoren als irgendwas anderes sind, vielleicht nicht für solch potentiell lebensbestimmende Entscheidungen wie die Vergabe eines Kredites verwendet werden sollten. Einige EU-Länder kommen ja auch komplett ohne Kreditauskunfteien (also private Unternehmen, welche die Kreditwürdigkeit bewerten) aus — vielleicht auch ein Modell für Deutschland.
Was jedenfalls kein sinnvolles Modell ist: Menschen dazu zu zwingen, der Schufa noch mehr private Informationen mitzuteilen, um einen guten Kreditscore zu erhalten. Wie gut die Daten in einem “Datencockpit bei bonify” geschützt wären, haben wir in dieser Recherche ja bereits lernen können. Denn der hier von der Schufa verwendete Euphemismus “Datensouveränität” heißt nämlich nichts anderes als “Du musst uns Deine Daten in Zukunft selber geben um einen guten Score zu bekommen, dafür machen wir TrAnSpaRent wie wir dich diskriminieren”.
In diesem Fall wurde aufgrund des zu erwartetenden Impacts in Verbindung mit dem relativ geringen Risiko auf ein Responsible Disclosure Verfahren verzichtet. Die Einschätzung hat sich bewahrheitet: bonify hat sein Angebot vor Erscheinen dieses Artikels abgeschaltet und damit alle Risiken mitigiert, 20 Stunden nach der initialen Veröffentlichung zum Thema auf Twitter (auch Shitposting genannt).
Ich persönlich bin sowieso der Meinung, dass wenn wir Kreditscores schon nicht abschaffen wie in anderen Ländern, jede*r einen positiven Kreditscore bekommen sollte.
Und Jens Spahn wünsche ich alles Gute bei der Wohnungssuche.
Update 25.07.2023–18:00
Die Schufa hat sich mit einigen Richtigstellungen zu diesem Artikel auf Twitter gemeldet:
Schufa:
“Es wird angemerkt, dass wir unseren eigenen AGB widersprechen, indem vor Zustimmung ein Score übermittelt wird. Das stimmt nicht. Der Score wird erst nach expliziter Einwilligung übermittelt. Vorab erfolgt ein Datenaustausch zur Identifikation. Dieser ist in bonify’s Datenschutzerklärung aufgeführt. Er beschränkt sich ausschließlich auf Daten zur Identifizierung. Um sicher zu sein, dass der Score nur an die Person ausgespielt wird, zu der er gehört. Dadurch wurden die manipulierten Personendaten bei uns erkannt.”
Anmerkung der Autorin:
Was die Schufa hier sagt ist, dass der Datenabgleich zur Schufa sowie der explizite API-Call zum Abruf des Schufa-Scores zwei unterschiedliche Schnittstellenaufrufe sind. Der zum Abgleich der Daten mit der Schufa-Datenbank (mit der Übermittlung der personenbezogenen Daten an die Schufa) passiert vor der Einwilligung durch die Nutzerin. Der Scoreabruf laut Schufa danach. Für mich ist das nicht nachprüfbar, scheint aber auf Basis der vorliegenden Schnittstellendokumentationen plausibel so umsetzbar. Aus Nutzer*innensicht ist die Einwilligung zum Schufa-Score-Abruf aber zumindest irreführend.
Schufa:
“Die Schufa steht seit langer Zeit in der Kritik, weil sie die Kreditwürdigkeit von Menschen nach abstrakten Markern wie Geschlecht oder Wohnort bewertet.“ — Das stimmt nicht. Geschlecht und Wohnort spielen bei der Berechnung von SCHUFA-Scores keine Rolle.”
Anmerkung der Autorin:
Dies ist leider nicht transparent nachprüfbar, da die Schufa-Scoringmethoden geheim sind. Bei Boniversum hingegen ist öffentlich bekannt, dass sie auf Geo-Scoring setzen. Dies wurde im Artikel entsprechend aktualisiert.
Timeline
- 22.07.2023–17:00 initiale Veröffentlichung auf Twitter.
- 23.07.2023 — etwa 13:00 bonify schaltet sich selbst ab.
- 23.07.2023 — etwa 18:00 die Schufa bestätigt die Lücke vollumfänglich gegenüber heise
- 24.07.2023 — etwa 12:00 Veröffentlichung durch NDR/SZ-Recherchekooperation
- 24.07.2023 — etwa 14:00 Bild.de schreibt quatsch auf der Startseite
Wenn ihr meine zivilgesellschaftliche Arbeit zu Themen wie z.B. Verwaltungsdigitalisierung, Sicherheitsforschung und Open Data unterstützen wollt, dann könnt ihr das via 💸Patreon💸 tun. Und wenn ihr bei meiner nächsten Recherche live dabei sein wollt, dann folgt mir auf Twitter oder Mastodon.