Wie können sich einige Android-Apps daran erinnern, dass dies nicht das erste Mal ist, dass sie installiert werden?

33

Einige Android-Apps können sich daran erinnern, ob sie zuvor auf demselben Gerät installiert waren. Angenommen, Sie haben eine App vor einem Jahr deinstalliert. Wenn Sie dieselbe App nach einem Jahr erneut installieren, kann diese App erkennen, dass sie zuvor auf demselben Telefon installiert wurde.

Diese Technik wird von Online-Anwendungen verwendet, um Benutzer dauerhaft daran zu hindern, ein neues Konto zu erstellen, wenn ihnen die Nutzung des Dienstes einmal untersagt wurde. Wenn diese Benutzer ein neues Konto erstellen, indem sie die Anwendung später erneut installieren, können diese Apps ihre "erstmalige Anwesenheit" erkennen und diese Informationen an Server senden, damit der Benutzer erneut gesperrt werden kann.

Wie machen sie das auch, nachdem sie ihre Daten gelöscht und vollständig deinstalliert haben? Dies bedeutet, dass sie eine Datei irgendwo im Telefon aufbewahren, die nach der Deinstallation nicht gelöscht wird. Wie deaktiviere ich diese Erkennung?

defaltieren
quelle
Warum möchten Sie diese Informationen löschen? Haben App-Ersteller Rechte? Ich erwarte nicht, dass dies ein beliebter Kommentar ist, aber überlegen Sie, ob Sie sich die Zeit und Mühe genommen haben, eine App zu erstellen.
S. Mitchell
6
@ S.Mitchell Heute Einige App-Entwickler und große Werbefirmen versuchen, von unschuldigen Benutzern auf unnötige Details zuzugreifen. Sie möchten nicht nur die MAC-Adresse, sondern auch Ihre WLAN-SSID. Google hat ihnen eine gute Lektion erteilt, indem es implementiert hat, welche Berechtigungen Sie ihnen in Android 6 nicht erteilen möchten Weg, um herumzukommen. Ich möchte dieses Datenschutzsystem sicherstellen.
25.
1
@ S.Mitchell Hallo Mitchell. Sie könnten mich wegen meiner Frage falsch beurteilen. Nein, ich bin nicht von sozialen oder Online-Diensten und auch nicht vom Stapelaustausch ausgeschlossen, wenn Sie dies bezweifeln. Aber für mich ist Wissen Lernen. Ich mache keine praktische Arbeit mit den Antworten, die ich hier erhalten habe. Aber auf jeden Fall helfen sie einem zu wissen, wie die Dinge funktionieren. Man kann keine Anti-Hacking-Sicherheit schaffen, wenn man nicht weiß, wie man hackt. Die gleiche Analogie ist hier. Wenn ich nicht lernen kann, wie Apps funktionieren, ist es sinnlos, dass ich eine erstellen kann.
26.
7
@ S.Mitchell: Do app creators have rights?Eigentlich auf meinem Handy tun sie das nicht. Möglicherweise lasse ich sie ihren Code ausführen und ihre Daten auf meinem Telefon speichern, aber sie haben kein Recht darauf , und ich behalte mir das Recht vor, beide Berechtigungen nach meinem Ermessen zu widerrufen.
Dotancohen
2
@ S.Mitchell Ich würde mich für Antworten auf alle Fragen einsetzen, unabhängig davon, warum Sie glauben, dass sie existieren. Gut, dass Sie diese Seite nicht betreiben!
Entschuldige dich und stelle Monica

Antworten:

33

Es gibt mehrere Möglichkeiten, ein eindeutiges Gerät oder seinen Benutzer zu identifizieren:

  1. Bewahren Sie eine Datei in einem (nicht standardmäßigen) Verzeichnis auf : Sie haben dies bereits gesagt. Apps können häufig in den internen Speicher eines Geräts schreiben. Diese Methode ist einfach, funktioniert offline und ist nicht so einfach zu finden (platzieren Sie die Datei in einem systemähnlichen Verzeichnis, und niemand wird sich darum kümmern, sie zu löschen).
  2. Verfolgen Sie ein Gerät eindeutig ANDROID_ID(eindeutig pro Neuinstallation) : Diese Methode ist einfach, erfordert jedoch einen Internetzugang, zumindest bei der ersten Verwendung. Es ist nicht sehr aufdringlich und bleibt im Falle eines Werksresets nicht bestehen. Es ist auch pro Benutzer eindeutig. Siehe diese Informationen .
  3. IMEI : Sehr aufdringlich, unveränderlich, erfordert jedoch ein SIM-fähiges Gerät. Die IMEI ist für jedes Gerät einzigartig, kann nicht geändert werden und folgt nicht dem Benutzer. Wenn Sie also Ihr Gerät verkaufen, wird der neue Besitzer mit einem Bildschirm begrüßt, der ihm mitteilt, dass die App bereits auf dem Telefon war.
  4. Folgen Sie dem Google-Konto eines Benutzers : Dies entspricht im Wesentlichen der ANDROID_IDVorgehensweise, erfordert jedoch eine ausdrückliche Erlaubnis (Android 6.0+) des Benutzers, um darauf zuzugreifen. Apps, die das Ökosystem des Google-Kontos nutzen (z. B. Highscores und Erfolge in Spielen), können somit einem bestimmten Benutzer folgen und mehr Informationen erhalten, als nur, ob die App installiert wurde oder nicht.

2, 3 und 4 erfordern eine Netzwerkverbindung und einen Server auf der Seite des Entwicklers.

GiantTree
quelle
Ich kann 2,3 & 4th Teil mit Xprivacy verwalten. Ich werde jeden von ihnen fälschen. Aber das erste ist nicht leicht zu erkennen. Kann ich diese Sicherheitsanfälligkeit trotzdem erkennen?
25.
3
Es ist keine Sicherheitslücke, nur eine missbrauchte Funktion. Ähnlich wie bei Anwendungen, die Dateien in der Registrierung speichern. Sie können nur alle Verzeichnisse im internen Speicher Ihres Telefons durchsuchen und nach verdächtigen Dateien suchen.
GiantTree
1
Viel Glück beim Finden / Erstellen dieser App. Das System kann aufgrund einer fehlenden Datei im internen Speicher nicht abstürzen. Im Allgemeinen verwenden Apps in der Regel dieselben Frameworks, die dieselben Dateien verwenden. Wie Sie bereits betont haben, können diese Dateien jedoch nicht immer (aber meistens) gefunden werden. Dateien, die Dinge wie "id", "user" oder ähnliches enthalten, enthalten oft eine solche ID und diese IDs werden normalerweise für Werbezwecke verwendet.
GiantTree
2
@ S.Mitchell Nein, ich wurde noch nie von Online-Diensten, Webanwendungen und Online-Spielen ausgeschlossen. Aber ich glaube, dass das Wissen darüber, wie das System hinter seiner Oberfläche funktioniert, der richtige Schritt ist, um die Android-Entwicklung voranzutreiben.
26.
8
@ user334283 "Sie wissen nie, nach welchem ​​Dateinamen Sie suchen". Das ist falsch. Als Linux-Betriebssystem verfügt Android über das straceDienstprogramm, mit dem alle Systemaufrufe protokolliert werden können. Sie müssen Ihre App also mit starten straceund alle Systemaufrufe überprüfen, die sich auf Dateien auf dem Gerät beziehen, und Sie werden alle Dateien erkennen, die von der App gelesen / auf Existenz überprüft wurden. Klar: Auf dem Smartphone wahrscheinlich ziemlich schwer zu machen, aber definitiv möglich .
Bakuriu
2

Es ist nicht mit dem Speicher verbunden, sondern mit der Cloud. So merkt es sich, obwohl Sie Ihre Daten gelöscht haben. Um dies auszuschalten, gehen Sie zur App für die Geräteeinstellungen, tippen Sie auf Google-Konten unter Persönlich (tippen Sie auf das gewünschte Konto, wenn Sie mehrere Konten haben) und schalten Sie die Apps aus, die nicht automatisch synchronisiert werden sollen.

Devin Ersoy
quelle
Die automatische Synchronisierung ist nicht das Hauptproblem. Drittanbieter-Server stellen sicher, dass ihre App in der Lage ist, Ihre MAC-Adresse, IMEI, Geräte-ID und Werbe-ID zu erfassen, und speichern diese auf Servern, um das Gerät in Zukunft erneut zu erkennen. Das Spoofen dieser Details schützt Ihre Privatsphäre, aber wenn eine App "Registrierungseinträge" wie in Windows schreibt, ist ein Problem nicht erkennbar.
25.
2

GiantTrees Antwort deckt dies am besten ab, aber es gibt noch einen weiteren Punkt, über den man nachdenken sollte. Es wäre eindeutig ein " dunkles Muster ", aber diese Identifizierung könnte auch durch Fingerabdruck bestimmter Benutzerdaten erfolgen - dies kann als Variante seines ersten Punktes angesehen werden ("eine Datei behalten"), aber es wäre schwieriger zu erkennen und weniger bequem vermeiden.

Wie belastbar dies ist, hängt von den ausgewählten Daten ab. Die naheliegendste Methode wäre, die Kontaktdaten zu überprüfen und einen Fingerabdruck davon zu verwenden. Eine Alternative könnte die Verwendung von Foto-Zeitstempeln und anderen Metadaten sein. Es ist klar, dass sich diese Änderungen im Laufe der Zeit ändern, sodass unabhängig von der verwendeten Methode auch nach der Änderung eine genaue Antwort erfolgen muss (was sich von einer herkömmlichen Hash-Funktion unterscheidet). Es gibt auch keine Garantie, dass ein Benutzer die verfolgten Daten nicht einfach löscht, aber in vielen Fällen wird es den Leuten vorgezogen, dies nicht zu tun.

Möglicherweise möchten Sie sich den Fingerabdruck des Browsers ansehen, um ein Gefühl dafür zu bekommen, wie dies funktioniert, auch wenn dies etwas anders sein wird, da die Telefonhardware in der Regel einheitlicher ist als die PC-Hardware. Das Hinzufügen bestimmter Telefondetails kann jedoch dazu beitragen, den Fingerabdruck ein wenig einzugrenzen.

Dies ist insbesondere dann der Fall, wenn ein Benutzer das Telefon wechselt und seine Daten zu einem neuen Telefon mitnimmt. In diesem Fall wird das neue Telefon möglicherweise als bereits installiert erkannt (sofern keine Daten in den Fingerabdruck eingehen). als die Frage gestellt. Es ist jedoch sehr wahrscheinlich, dass in einem Szenario, in dem eine App versucht, einen Benutzer zu sperren, dies tatsächlich ein gewünschtes Ergebnis sein kann (anstatt das jeweilige Telefon selbst zu sperren).

Bitte beachten Sie: Auf keinen Fall sage ich, dass dies für die Funktionsweise beim Schreiben von Apps richtig oder "gut" ist, aber es erscheint sinnvoll, darüber zu diskutieren, da die Leute nur durch Diskussion herausfinden, ob sie es sind besorgt genug, um etwas dagegen zu unternehmen und was das sein könnte.

Neil
quelle
1

Es gibt eine SharedPreferences-Klasse ( https://developer.android.com/reference/android/content/SharedPreferences.html ), mit der einige Apps Einstellungsdaten speichern. Diese Daten werden bei der Deinstallation der App nicht gelöscht. Wenn die App später erneut installiert wird, sind alle zuvor gespeicherten SharedPreferences-Schlüssel weiterhin für sie verfügbar.

David Bennett
quelle
6
SharedPreferenceswerden tatsächlich gelöscht, wenn die App deinstalliert wird. Es gibt verschiedene Möglichkeiten für Entwickler, Sicherungen einzurichten. Standardmäßig werden sie jedoch bei der Deinstallation entfernt. (Quelle: Als Entwickler deinstalliere ich meine Apps, um die Einstellungen zu löschen. Siehe auch: stackoverflow.com/a/9815641/1438733 )
Eric
1

Es gibt eine andere Möglichkeit - die Verwendung von dauerhaften Cookies mit einer sehr langen "Verfallszeit". Ich schätze, so teilten mehrere Apps desselben Entwicklers traditionell ihre Anmeldeinformationen, wenn die über die Kontofunktion gespeicherten Anmeldeinformationen der Öffentlichkeit nicht so offen / bekannt waren.

Computerfreak
quelle