Wie speichert und stellt eine Google iOS-App aktive Konten nach dem Löschen von Apps wieder her?

Auf einem iOS 8-Gerät habe ich Google Hangouts installiert und beim ersten Start wurde ein Konto vorab ausgefüllt, das zuvor mit einer anderen und vor langer Zeit gelöschten Google-App verknüpft war.

Da ich gerade den Advertising Identifier zurückgesetzt hatte, ging ich davon aus, dass es sich um die Vendor ID handeln muss (auf dem Gerät war eine andere Google-App installiert). Also habe ich beide (alle) Google-Apps auf dem Gerät gelöscht, was die Vendor ID zurücksetzen sollte .

Ich habe dann Google Hangouts neu installiert und gestartet. Es hatte NOCH das alte Konto aktiv. Dies ist nicht nur ein mysteriöses Verhalten, sondern auch eine ziemlich ernste Sicherheits- und Datenschutzlücke. Wenn eine App gelöscht wird und insbesondere wenn alle Apps eines Anbieters gelöscht werden, sollten keine aktiven Konten oder Daten auf dem Gerät verbleiben.

Irgendwelche Ideen, woher Google Hangouts von dem alten Konto weiß?

Antworten (3)

Apple rät Entwicklern, App-Anmeldeinformationen im verschlüsselten iOS-Schlüsselbund zu speichern. Wenn Sie eine App von Ihrem Telefon löschen, werden die zugehörigen Datensätze nicht aus dem Schlüsselbund gelöscht.

Schlüsselanhänger sind sichere Aufbewahrungsbehälter, was bedeutet, dass, wenn der Schlüsselbund verschlossen ist, niemand auf seinen geschützten Inhalt zugreifen kann. In OS X können Benutzer einen Schlüsselbund entsperren und so vertrauenswürdigen Anwendungen Zugriff auf den Inhalt gewähren, indem sie ein einziges Master-Passwort eingeben. In iOS hat jede Anwendung immer Zugriff auf ihre eigenen Schlüsselbundelemente; Der Benutzer wird nie aufgefordert, den Schlüsselbund zu entsperren. Während in OS X jede Anwendung auf jedes Schlüsselbundelement zugreifen kann, sofern der Benutzer die Erlaubnis erteilt, kann eine Anwendung in iOS nur auf ihre eigenen Schlüsselbundelemente zugreifen.

https://developer.apple.com/library/ios/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html

Dies scheint der wahrscheinlichste Mechanismus zu sein, aber wenn dies tatsächlich der Mechanismus ist, den Google verwendet (oder jede App für diese Angelegenheit), scheint es wahnsinnig unsicher und eine schwere Datenschutzverletzung zu sein. Ich habe Zugriff auf das Google-Login einer anderen Person erhalten, indem ich einfach eine App von Google installiert habe, obwohl keine anderen Google-Apps auf dem Gerät vorhanden waren. Es sieht so aus, als ob es eine Möglichkeit gibt, wie neu installierte Apps aufräumen sollten: stackoverflow.com/questions/4747404/… aber Hangouts hat dies nicht getan. Es scheint auch keine Möglichkeit für einen Benutzer zu geben, Nicht-Safari-Schlüsselbundelemente zu löschen.
Es ist ein großes Sicherheits-/Datenschutzproblem von Apple, dass Schlüsselbundelemente nicht gelöscht werden, wenn eine App gelöscht wird (oder im schlimmsten Fall, wenn die letzte App eines Anbieters gelöscht wird). Es ist auch ein Problem von Apple, dass es für Benutzer keine einfache Möglichkeit gibt, einzelne (nicht-Safari-) Schlüsselbundelemente zu löschen. Und es ist ein Sicherheits-/Datenschutzproblem von Google, dass sie zulassen, dass eine Anmeldung über das Löschen von Apps hinweg bestehen bleibt (einschließlich des Löschens aller Google-Apps).
Ich stimme nicht zu, dass dies ein großes Sicherheits-/Datenschutzproblem ist. Wenn Ihnen jemand sein Gerät gegeben hat und sich Sorgen um seine Daten gemacht hat, hätte er es zuerst löschen sollen. Ich würde niemals jemandem ein Gerät geben, auf dem sich noch Daten befinden. Es gibt keinen Mechanismus für eine App, um ihre Schlüsselbundelemente zu löschen, sodass Sie Google auch hier nicht wirklich bemängeln können. Ich würde jedoch zustimmen, dass es gut wäre, wenn Apple uns eine Möglichkeit geben würde, unseren Schlüsselbund zu bearbeiten, ähnlich wie Sie auf einem iOS-Gerät in die Safari-Einstellungen gehen und die gespeicherten Anmeldeinformationen bearbeiten können.
Ja, wenn ich ein Gerät loswerden würde, würde ich es löschen, obwohl ich sicher bin, dass viele Leute es vergessen oder nicht wissen, wie. Aber ich denke, das ist ein sehr kontraintuitives Verhalten. Es ist üblich, ein iPad mit Familie und/oder Freunden zu teilen, aber das sollte nicht dazu führen, dass man sich ständig bei gelöschten Apps anmeldet.
Ein weiterer Anwendungsfall ist das Löschen der App (oder sogar aller Apps in der App-Gruppe), aber später der Wunsch, eine App mit einer neuen Identität neu zu installieren, die nicht mit der alten verknüpft ist. Wenn die alten Daten aus der Sicherung wiederhergestellt werden, wird dies unmöglich.

Es nutzt wahrscheinlich iCloud als Methode, möglicherweise den iCloud Key-Value Store .

Was diesen Speicher angeht…

Der im iCloud-Schlüsselwertspeicher Ihrer App verfügbare Gesamtspeicher beträgt 1 MB pro Benutzer. Sie können maximal 1024 Schlüssel angeben, und die Größenbeschränkung für jeden mit einem Schlüssel verknüpften Wert beträgt 1 MB. Wenn Sie beispielsweise einen einzelnen großen Wert von genau 1 MB für einen einzelnen Schlüssel speichern, verbraucht dies Ihr Kontingent für einen bestimmten Benutzer Ihrer App vollständig. Wenn Sie 1 KB Daten für jeden Schlüssel speichern, können Sie 1000 Schlüssel-Wert-Paare verwenden. Die maximale Länge für eine Schlüsselzeichenfolge beträgt 64 Byte bei Verwendung der UTF8-Codierung. Die Datengröße Ihrer kumulativen Schlüsselzeichenfolgen wird nicht auf Ihr Gesamtkontingent von 1 MB für die Schlüsselwertspeicherung in iCloud angerechnet. Vielmehr werden Ihre Schlüsselzeichenfolgen (die maximal 64 KB verbrauchen) auf die gesamte iCloud-Zuteilung eines Benutzers angerechnet.

(Quelle: Apple Developer Conceptual Reading for iCloud Key-Value Storage's Data Limits, siehe Link oben)

Kurz gesagt, Entwickler können über die KV-Paare von iCloud auf Daten zugreifen NSUbiquitousKeyValueStore, Objekte speichern, die in einem gespeichert werden können NSDictionary(bis zu 64 KB pro Element, bis zu 1024 Schlüssel, und die Gesamtgröße muss weniger als 1 MB betragen), und sie später abrufen.


Bearbeiten: iCloud Key-Value-Speicher ist nicht so sicher wie Schlüsselanhänger. Google verwendet möglicherweise Schlüsselbunde, speichert jedoch möglicherweise auch verschlüsselte Daten im Schlüsselwertspeicher, da iCloud Sicherheitsprobleme hat. Vielleicht den Namen des Geräts zum Entschlüsseln verwenden?

Die Google-Apps hatten keine Berechtigungen für iCloud, also eher Schlüsselbund.
@pseudon KVS benötigt keine Erlaubnis.
Dann möglich. Dies wäre auch ein kontraintuitives Verhalten für einen Benutzer, der niemals erwarten würde, dass eine App einen aktiven Login dauerhaft in seiner iCloud speichern kann, insbesondere für eine gelöschte App. Kann eine App den iCloud KV Store verwenden, wenn iCloud nicht angemeldet ist oder überhaupt auf dem Gerät verwendet wird?
@pseudon nicht, dass ich wüsste.

...in iOS kann eine Anwendung nur auf ihre eigenen Schlüsselbundelemente zugreifen

Anbieter können Daten über ihre Anwendungen hinweg mit dem Schlüsselbund teilen, solange sie eine Schlüsselbundgruppe verwenden , die in den Berechtigungen in ihrem App-Bundle definiert ist; "it's own" bedeutet Anbieter, nicht Anwendung.

Wie andere bereits angemerkt haben, werden die Schlüsselbundeinträge möglicherweise nicht implizit bereinigt.

Da dieser breiteste Umfang dieser Art von „Tracking“ auf einen einzelnen Anbieter mit installierten Apps beschränkt ist, reduziert dies die Sicherheitsrisikooberfläche erheblich (im Vergleich zu UUID oder UIPasteboard-Sharing – beide entfernt/geschlossen).

Es ist wichtig zu beachten, dass die Produkte von Apple derzeit für "Einzelbenutzer" konzipiert sind; Apple bietet noch keine Benutzerpartitionierung an (z. B. entsperrt jeder registrierte Fingerabdruck das gesamte Gerät, wenn Sie also einen Freund/ein Kind mit einem registrierten Fingerabdruck haben, erhalten sie genau denselben Zugriff wie Sie).

Hinzufügen zu den Antworten von DDPWNAGE und Alistair (da ich nicht genug Repräsentanten zum Kommentieren habe), aber angeben, wie alle Google-Apps auf genau einen Schlüsselbundeintrag zugreifen können.