Nochmal iPhone Location Daten

Nur nochmal zu der Antwort von Apple zu den Bewegungsprofil-Vorwürfen und warum Apple Recht hat, aber trotzdem ein Problem besteht (aber eines, das deutlich kleiner ist als das dramatisierte Problem in der Presse).

Apple produziert mit – anonym gesammelten, bisher gibt es da auch keine Anzeichen, dass es nicht anonym wäre – Positionsdaten der iPhones mit aktiviertem GPS eine Datenbank, in der Positionen von Netzen gespeichert werden. Netze sind hierbei Funktürme für GSM, 3G und WLANs die das iPhone zu dem Zeitpunkt sieht. Das ist allerdings nicht das, was in dieser Datenbank gespeichert wird, von der alle Reden. Das ist nur die Grundlage, auf der etwas aufgebaut wird, was dann in der Datenbank landet.

Die an Apple gesendeten Daten werden intern gemittelt und daraus für die von diversen iPhones gemeldeten Netze ein „Zentrum“ ermittelt (denn die genaue Position von WLAN Routern oder Funktürmen kriegt man ja nicht einfach so geliefert – die muss erst irgendwie ermittelt werden). Diese Daten werden in einer großen Datenbank bei Apple gespeichert. Die Positionsdaten beziehen sich also auf das Zentrum von Funkidentifikationen. Die Originalen Positionsdaten sind nur Basismaterial für die ermittelten Positionsdaten.

Das iPhone kann jetzt über die sichtbaren Funkidentifikationen und deren Positionsinformationen und eine über die Sendestärke gewichtete Mittelung der Daten eine ungefähre Position ermitteln – dazu ist aber Internet Zugriff notwendig. Und Zugriff über Internet auf die Datenbank bei Apple. Daher lädt das iPhone die Informationen zu Funkidentifikationen herunter und cached diese lokal. Aber natürlich nicht die ganze Datenbank – das wäre zu viel. Sondern eben ein nach Algorithmen ermittelter relevanter Ausschnitt. Das jetzt ist die Datenbank auf dem iPhone.

Dazu wird von Apple scheinbar nicht nur das an Netzen runtergeladen was das iPhone gerade sieht, sondern wohl auch Nachbarnetze – macht nur Sinn, da der Benutzer sich ja öfter mal bewegt und man damit die Daten von Nachbarnetzen brauchen wird (potentiell – das iPhon weiss ja nicht voraus wohin ich gehe). Vermutlich wird also das iPhone sagen „ich sehe Netze A, B, C“ und die Datenbank liefert dann „hier sind die Netze A-M aus dem Großraum in dem du dich befindest“. Das iPhone nimmt dann X% von A, Y% von B und Z% von C als Basis und errechnet daraus eine grobe Position und sagt „hier bin ich“. Wenn es sich dann in die Sichtbarkeit von Netz D bewegt, ist dessen Position schon bekannt und das iPhone kann die Positionsberechnung ohne Download direkt vornehmen.

Zusätzlich scheint das iPhone eine zeitliche Historie dieser Downloads zu speichern – vermutlich hat der Entwickler angenommen, wenn der Benutzer da schon mal war, ist die Chance hoch, dass er da wieder hin will. Dabei hält das iPhone wohl ein Jahr an diesen Daten parat. Die Behauptung von Apple, die Dauer der Speicherung sei ein Bug, ist sicherlich eher eine Beschönigung – vermutlich hat da einfach ein Entwickler sich eine Dauer ausgedacht und benutzt, ohne sich darüber Gedanken zu machen wieviel wirklich sinnvoll wäre – schließlich waren das ja keine besonderen Daten nach seinem Verständnis. Nur technische Caches für Downloads die er sowieso macht, wenn der Benutzer nach seiner Position fragt.

Was bedeutet das jetzt für den Benutzer? Die Daten geben in den Koordinaten nicht wieder, wo er war – sie geben nur wieder, wo die Funkidentifikationen sind, in deren Nähe er ungefähr mal war. Und da es auch Nachbarnetze enthält, ist das wirklich sehr ungefähr. Natürlich lässt sich dadurch ein grobes räumliches Profil des Benutzers ableiten – z.B. habe ich in meinen Daten durchaus sehen können, dass ich in Amsterdam, in Frankfurt und in Berlin war.

Aber z.B. bedeutet es auch im Umkehrschluss, dass nur die ungefähren Regionen drin sind, wenn man dort auch Netzempfang hatte, mit Downloadmöglichkeiten. Ich war in Kopenhagen – dort habe ich auch über das Hotel Netzzugang gehabt, also sind davon Spuren. In Malmö und zum Jahreswechsel in Russland hatte ich keinen Netzzugang – also zwar GSM, aber eben keinen Internetzugang – und daher konnte das iPhone auf diese Lokationsdaten nicht zugreifen und keine Funkidentifikationen mit Positionen runterladen. Daher fehlen diese Daten auch komplett in meinem iPhone und es gibt keine Spuren von Malmö, Ekaterinburg oder Nischni Tagil (ähnliches dürfte gelten wenn man den Flugzeugmodus aktiviert hat oder einfach WLAN und mobile Daten ausschaltet).

Desweiteren dürften die Räume größer werden wenn man in mehr ländliche Regionen kommt – wenige WLANs, also hauptsächlich GSM Zellen und diese mit größerer Sendereichweite und weiter gestreut. Wenn man da eine Zelle mit den Nachbarn speichert, ist das schon ein ziemlich großer Raum, der abgedeckt ist. In Großstädten hingegen dürften die abgedeckte Fläche deutlich kleiner sein, einfach weil WLANs deutlich kleinere Reichweiten haben und von denen dort mehr da sind. Und Funkzellen dort auch in der Regel kleiner sind (allein schon weil eine Zelle nur endlich viele User abdecken kann, aber die Dichte der User in Städten größer ist).

Interessant ist das ganze besonders für Programmierer: denkt ihr bei eurer Programmierung darüber nach, was sich z.B. aus gecachten Daten ableiten lässt? Nehmt mal als Überlegungsgrundlage mal an, jemand hat Zugriff auf euren DNS Cache – den ja jedes System intern hat, einfach um DNS-Abfragen zu reduzieren. Was könnte diese eigentlich technisch doch völlig harmlose Information über euch als Bild produzieren? Es sind diese kleinen Fallen über die man als Programmierer gerne stolpert. Eigentlich ist es ja harmlos – Hilfsdaten, die man aus dem Netz holt sind der Anfang. Wegwerfen nach der Nutzung – naja, wenn sie wieder gebraucht werden, dann macht es Sinn die häufigsten parat zu haben, oder? Und genau dann rennt man in solche Probleme wie sie Apple derzeit hat.

Die Diskussion, warum euer Browsercache Pornobildchen enthält (weil ihr z.B. mit Outlook eure Mails lest und eine Spammail geöffnet habt und bei euch Bilderanzeige aktiviert war – keine abwegige Situation!), wenn eure Frau die dort findet, könnte schon recht interessant werden. Den Daten sieht man eben nicht mehr an, warum sie dort gelandet sind, wo sie gelandet sind.

Wie im Titel gesagt: ich beziehe mich hier auf die Antwort von Apple und habe das nur mit meinen eigenen Daten gegengeprüft. Meine eigenen Daten passen zu den Informationen aus der Stellungnahme von Apple und diese Stellungnahme selber ist auch schlüssig – sowohl die Inhalte als auch die Angabe der Nutzung passen durchaus. Ich sehe also keinen Grund, warum ich der Stellungnahme misstrauen sollte.

Die Antwort von Apple, dass das iPhone kein Bewegungsprofil des Benutzers festhält, ist also korrekt – es speichert eben nur Informationen für eine Positionsbestimmung als Alternative zum GPS. Gleichzeitig ist das aber zumindestens ein Profil des Aufenthaltes in Großräumen. Kritik ist also durchaus angebracht. Sollte aber meiner Meinung nach intelligenter als „Apple speichert die Positionen des Benutzers im letzten Jahr“ sein, denn das ist schlicht falsch.

Aber wie Apple in der Einleitung der Antwort ja sagt: das sind technische Zusammenhänge, die eben komplizierter sind als einfach nur „speichert Apple ein Bewegungsprofil Ja/Nein“. Und unsere Presse hat mit Fragen, auf die eine Antwort mehr als zwei Sätze enthält, massive Probleme. „Apple speichert Daten aus denen sich die Anwesenheit in Großräumen ableiten lässt“ klingt auch nicht so toll und griffig als Überschrift.

Leider kann aber gerade diese sehr unpräzise Berichterstattung dazu führen, dass die Probleme erst entstehen – wenn ich weiß, dass die Daten nur Regionen abdecken in denen ich mal war, aber nicht präzise Punkte meines Aufenthalts, ist die Erklärung, warum meine Daten aus Frankfurt auch das Rotlichtviertel umfassen (ist halt Nähe Bahnhof) deutlich leichter als wenn ich davon ausgehen muss, das sind alles Orte wo ich war.

Apple muss (und wird ja auch nach eigener Erklärung) da nachbessern – denn ein Jahr an Daten zu cachen ist Quatsch. Auch die Daten zu sichern ist Unsinn, die können einfach neu runtergeladen werden wenn sie fehlen. Genauso braucht man die Daten nicht speichern, wenn alle Lokationsdienste global abgeschaltet sind. Vielleicht wäre es auch generell interessant da einen Schalter „Pseudo-GPS Ja/Nein“ oder so anzulegen, mit dem diese Art der Positionsermittlung abgeschaltet werden kann – dann muss der Benutzer eben warten, bis die GPS Satelliten eingebucht sind. Genauso wie man meiner Meinung nach die anonymisierte Datensammlung zu WLAN und Funktürmen abschaltbar machen sollte.

Meines Erachtens sollte kein Cache ohne eine Kontrollfunktion für diesen Cache (so wie man den Browsercache ja auch leeren kann) existieren. Denn eines muss klar sein: durch die generelle Notwendigkeit der Verknüpfung von Zugriffszeitpunkt und geladenen Daten (denn nur so kann ein Cache mit zeitlich begrenzter Zwischenspeicherung funktionieren) liefert jede Art von Cache eine Art von Benutzerprofil. Und das sollte vom Benutzer zumindest rudimentär (im Sinne von Löschen) kontrollierbar sein. Caches grundsätzlich mit einer Leeren-Funktion und einem UI dafür anzulegen sollte genauso eine best-practice werden wie die verschlüsselte Speicherung von Passwörtern auf Servern (hallo Sony!).

Dieser Beitrag wurde unter Artikel, Metaowl abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.