Bagaimana beberapa aplikasi Android mengingat bahwa ini bukan pertama kalinya mereka diinstal?

33

Beberapa aplikasi android dapat mengingat apakah mereka telah diinstal pada perangkat yang sama sebelumnya. Misalkan Anda menghapus aplikasi setahun lalu. Setelah satu tahun jika Anda menginstal aplikasi yang sama lagi, aplikasi itu akan dapat mengenali bahwa itu telah diinstal sebelumnya pada ponsel yang sama.

Teknik ini digunakan oleh aplikasi online untuk secara permanen melarang pengguna membuat akun baru lagi jika mereka pernah dilarang menggunakan layanan ini sekali pun. Ketika pengguna tersebut membuat akun baru dengan menginstal ulang aplikasi nanti, aplikasi ini dapat mendeteksi "kehadiran pertama kali" mereka dan mengirim informasi ini ke server sehingga pengguna dapat diblokir lagi.

Bagaimana mereka melakukannya bahkan setelah membersihkan data mereka dan menghapus instalan mereka sepenuhnya? Itu berarti mereka menyimpan beberapa file di suatu tempat di telepon, yang tidak dihapus setelah dihapus. Bagaimana cara menonaktifkan deteksi ini?

defalt
sumber
Mengapa Anda ingin menghapus informasi ini? Apakah pembuat aplikasi memiliki hak? Saya tidak berharap ini menjadi komentar populer, tetapi pertimbangkan apakah Anda telah meluangkan waktu dan kesulitan untuk membuat aplikasi.
S. Mitchell
6
@ S.Mitchell Hari Ini Beberapa pengembang aplikasi dan perusahaan periklanan besar mencoba mengakses detail yang tidak perlu dari pengguna yang tidak bersalah. Tidak hanya mereka ingin Alamat MAC tetapi mereka juga ingin tahu SSID wifi Anda. Google memberi mereka pelajaran yang baik dengan menerapkan izin mana yang tidak ingin Anda berikan di android 6. Tetapi pengiklan tidak berhenti di sini, mereka selalu menemukan cara untuk berkeliling. Saya ingin memastikan sistem privasi ini.
defalt
1
@ S.Mitchell Halo Mitchell. Anda mungkin menilai saya salah karena pertanyaan saya. Tidak, saya tidak dilarang dari layanan sosial atau online dan juga dari pertukaran tumpukan jika Anda ragu. Tetapi bagi saya mengetahui adalah belajar. Saya tidak melakukan pekerjaan praktis dengan jawaban yang saya terima di sini. Tapi yang pasti mereka membantu orang untuk mengetahui bagaimana segala sesuatu bekerja. Seseorang tidak dapat membuat keamanan anti-peretasan jika seseorang tidak tahu cara meretas. Analogi yang sama ada di sini. Jika saya tidak dapat mempelajari cara kerja aplikasi, tidak ada gunanya saya akan bisa membuatnya.
defalt
7
@ S.Mitchell: Do app creators have rights?Sebenarnya, di ponsel saya , mereka tidak. Saya mungkin membiarkan mereka menjalankan kode mereka dan menyimpan data mereka di ponsel saya, tetapi mereka tidak memiliki hak untuk dan saya berhak untuk mencabut kedua hak istimewa atas kebijakan saya.
dotancohen
2
@ S.Mitchell saya akan mendorong jawaban untuk semua pertanyaan terlepas dari mengapa Anda pikir itu ada. Untung Anda tidak menjalankan situs ini!
Minta maaf dan kembalikan Monica

Jawaban:

33

Ada beberapa cara untuk mengidentifikasi perangkat unik atau penggunanya:

  1. Simpan file di beberapa direktori (non-default) : Anda sudah mengatakan ini; aplikasi sering dapat menulis ke penyimpanan internal perangkat. Metode ini mudah, bekerja offline dan bukan yang paling mudah dikenali (letakkan file di beberapa direktori seperti sistem dan tidak ada yang akan repot menghapusnya).
  2. Melacak perangkat yang unik ANDROID_ID(unik per instalasi baru) : metode ini sederhana tetapi membutuhkan akses internet, setidaknya pada penggunaan pertama. Ini tidak terlalu mengganggu dan tidak bertahan jika reset pabrik. Ini juga unik untuk setiap pengguna. Lihat informasi ini .
  3. IMEI : Sangat mengganggu, tidak dapat diubah tetapi membutuhkan perangkat yang mendukung SIM. IMEI unik untuk setiap perangkat, tidak dapat diubah dan tidak mengikuti pengguna, artinya jika Anda menjual perangkat Anda, pemilik baru akan disambut dengan layar yang memberitahukan kepadanya bahwa aplikasi tersebut sudah ada di telepon.
  4. Ikuti akun Google pengguna : Ini hampir sama dengan ANDROID_IDpendekatan tetapi memerlukan izin eksplisit (Android 6.0+) dari pengguna untuk mengakses. Aplikasi yang memanfaatkan ekosistem akun Google (mis. Skor tinggi dan pencapaian dalam game) dengan demikian dapat mengikuti pengguna tertentu dan mendapatkan informasi lebih dari sekadar apakah aplikasi telah diinstal atau belum.

2, 3 dan 4 memerlukan koneksi jaringan dan server di sisi pengembang.

GiantTree
sumber
Saya dapat mengelola bagian 2,3 & 4 menggunakan Xprivacy. Saya akan menipu mereka masing-masing. Tapi yang pertama, itu tidak mudah dikenali. Adakah saya bisa mendeteksi kerentanan ini?
defalt
3
Ini bukan kerentanan, hanya fitur yang disalahgunakan. Sama seperti aplikasi yang menyimpan file dalam registri. Tidak banyak yang dapat Anda lakukan selain menelusuri semua direktori pada penyimpanan internal ponsel Anda dan mencari file yang mencurigakan.
GiantTree
1
Selamat mencoba / membuat aplikasi ini. Sistem tidak dapat crash karena beberapa file yang hilang pada penyimpanan internal. Secara umum, aplikasi cenderung menggunakan kerangka kerja yang sama yang menggunakan file yang sama tetapi, seperti yang telah Anda sebutkan, file-file itu tidak mungkin ditemukan (tidak selalu, tetapi sebagian besar waktu). File yang berisi hal-hal seperti "id", "pengguna" atau sejenisnya sering mengandung ID seperti itu dan ID itu biasanya digunakan untuk iklan.
GiantTree
2
@ S.Mitchell Tidak. Saya tidak pernah dilarang dari layanan online, aplikasi web, dan game online. Tapi saya percaya bahwa mengetahui bagaimana sistem bekerja di balik antarmuka adalah langkah yang tepat untuk bergerak maju dalam pengembangan android.
defalt
8
@ user334283 "tidak pernah tahu nama file apa yang Anda cari". Ini salah. Android, sebagai OS linux, memiliki straceutilitas yang dapat digunakan untuk melacak semua panggilan sistem. Jadi, Anda harus memulai aplikasi menggunakan stracedan memeriksa semua panggilan sistem yang terkait dengan file pada perangkat dan Anda akan melihat semua file yang dibaca / diperiksa keberadaannya oleh aplikasi. Tentu: mungkin cukup sulit untuk dilakukan di smartphone tetapi pasti mungkin .
Bakuriu
2

Itu tidak terhubung ke penyimpanan, tetapi ke cloud. Begitulah cara mengingat meskipun Anda menghapus data Anda. Untuk menonaktifkan ini, buka aplikasi pengaturan perangkat Anda, ketuk akun Google di bawah pribadi (ketuk akun yang Anda inginkan jika Anda memiliki banyak akun), lalu matikan aplikasi yang tidak ingin Anda sinkronkan secara otomatis.

Devin Ersoy
sumber
Sinkronisasi otomatis bukan masalah root. Server pihak ketiga memastikan bahwa aplikasi mereka mampu mengumpulkan Alamat MAC Anda, IMEI, Device ID, ID Iklan dan menyimpannya ke server untuk mendeteksi perangkat lagi di masa depan. Menipu detail-detail ini akan menjaga privasi Anda tetapi jika suatu aplikasi menulis "entri registri" seperti pada masalah windows tidak akan terdeteksi.
defalt
2

Jawaban GiantTree mencakup yang terbaik, tetapi ada hal lain untuk dipikirkan. Ini jelas akan menjadi " pola gelap " tetapi identifikasi ini juga dapat dilakukan melalui sidik jari data pengguna tertentu - ini dapat dilihat sebagai varian pada poin pertamanya ("simpan file") tetapi akan lebih sulit untuk dideteksi dan kurang nyaman menghindari.

Seberapa tangguh hal ini tergantung pada data yang dipilih. Metode yang paling jelas adalah melihat detail kontak dan menggunakan beberapa bentuk sidik jari ini; alternatif mungkin menggunakan cap waktu foto dan metadata lainnya. Jelas perubahan ini dari waktu ke waktu sehingga metode apa pun yang digunakan harus tetap memberikan jawaban dekat setelah modifikasi (sehingga berbeda dari fungsi hash tradisional). Juga tidak ada jaminan bahwa pengguna tidak hanya menghapus data yang dilacak, tetapi dalam banyak kasus orang akan memilih untuk tidak melakukan ini.

Anda mungkin ingin melihat sidik jari peramban untuk mengetahui bagaimana ini bekerja, meskipun akan sedikit berbeda karena perangkat keras ponsel biasanya lebih seragam daripada perangkat keras PC. Yang mengatakan, penambahan rincian telepon tertentu dapat membantu mempersempit sidik jari sedikit.

Di mana pendekatan ini rusak khususnya adalah jika pengguna berpindah telepon dan membawa detailnya ke telepon baru - dalam hal ini (kecuali rincian telepon dimasukkan ke dalam sidik jari) telepon baru mungkin terdeteksi telah memiliki instalasi, seperti pertanyaan yang diajukan. Namun tampaknya sangat mungkin bahwa dalam skenario di mana aplikasi mencoba untuk melarang pengguna, ini mungkin sebenarnya merupakan hasil yang diinginkan (daripada melarang ponsel tertentu itu sendiri)

Harap dicatat: Tidak mungkin saya mengatakan ini benar atau "baik" sebagai cara untuk beroperasi jika Anda sedang menulis aplikasi, tetapi tampaknya masuk akal untuk membahasnya karena hanya melalui diskusi orang-orang akan mengetahui apakah mereka cukup peduli untuk melakukan sesuatu tentang hal itu dan apa itu.

Neil
sumber
1

Ada kelas SharedPreferences - https://developer.android.com/reference/android/content/SharedPreferences.html - yang digunakan beberapa aplikasi untuk menyimpan data preferensi. Data ini tidak dihapus ketika aplikasi dihapus. Jika aplikasi ini kemudian diinstal ulang, kunci SharedPreferences yang disimpan sebelumnya masih tersedia untuk itu.

David Bennett
sumber
6
SharedPreferencessebenarnya dihapus ketika aplikasi dihapus. Ada beberapa cara bagi pengembang untuk mengatur cadangan, tetapi secara default mereka dihapus saat dihapus. (Sumber: Sebagai pengembang, saya mencopot pemasangan aplikasi saya untuk menghapus preferensi. Juga lihat: stackoverflow.com/a/9815641/1438733 )
Eric
1

Ada kemungkinan lain - penggunaan cookie tetap dengan "waktu untuk kedaluwarsa" yang sangat besar. Saya kira itu adalah bagaimana beberapa aplikasi dari pengembang yang sama digunakan untuk berbagi kredensial secara tradisional, ketika kredensial yang disimpan melalui fitur akun tidak begitu terbuka / diketahui publik.

komputasifreak
sumber