Bisakah izin RECEIVE_SMS digunakan untuk memotong pesan SMS?

13

Saya perhatikan beberapa aplikasi meminta RECEIVE_SMSizin . Ada dua hal yang jelas bagi saya di sini:

  • RECEIVE_SMS memungkinkan aplikasi "snap" SMS yang masuk
  • READ_SMS hanya berlaku untuk SMS yang sudah disimpan

Karena beberapa aplikasi baru saja meminta RECEIVE_SMS, tetapi tidak untuk READ_SMS, saya jadi penasaran: ini sepertinya menyiratkan RECEIVE_SMStidak hanya ditargetkan pada bagian penerima, tetapi aplikasi juga dapat melakukan apa yang diinginkan dengan pesan yang diterima - misalnya membacanya, lalu membuangnya secara diam-diam (sehingga pengguna bahkan tidak melihat ada SMS - yang mungkin merupakan cara TAN Trojans bertindak untuk mengambil pengidentifikasi untuk transaksi perbankan online).

Tetapi apakah itu juga mungkin untuk aplikasi seperti itu untuk "mencegat" pesan, yaitu menerimanya, membacanya (dan memproses isinya dengan cara apa pun, misalnya meneruskannya dengan cara lain seperti melalui IP), dan kemudian meneruskannya sebagai jika tidak ada yang terjadi? Dengan kata lain: Bisakah itu memata-matai pengguna dengan cara ini?

Izzy
sumber

Jawaban:

13

Ya, itu bisa, tetapi hanya di Android 4.3 dan lebih rendah. Ini digunakan misalnya di Whatsapp. Saat Anda mengaktifkan aplikasi, Whatsapp mengirim SMS ke nomor yang Anda laporkan, dan aplikasi memotongnya dengan tenang dan melaporkan ke server bahwa ia telah menerima SMS. Inilah cara akun dikaitkan dengan nomor Anda.

Tentu saja, ini dapat digunakan di aplikasi berbahaya juga. Jika aplikasi mendaftar sebagai penerima SMS dengan prioritas tertinggi, aplikasi dapat mendengarkan SMS yang masuk, memprosesnya dan memberhentikannya tanpa pernah disadari oleh pengguna, atau meneruskan ke pendengar SMS berikutnya dengan prioritas tertinggi kedua.

Ini telah diulang di Android 4.4, dan jika saya mengerti dengan benar, hanya aplikasi SMS default yang memiliki akses ke semua SMS yang masuk ( SMS_DELIVER_ACTION), dan aplikasi lain dengan izin yang benar hanya akan menerima notifikasi pesan yang masuk ( SMS_RECEIVED_ACTION). Selain itu, SMS_RECEIVEDtujuannya tidak dapat dibatalkan, tidak dapat dihentikan. Saya berasumsi bahwa di Android 4.4, ini dilakukan untuk memungkinkan pengguna melihat semua pesan SMS yang masuk di aplikasi default.

Sunting: Menemukan beberapa info lebih berguna di Blog Pengembang Android . Saya akan menguji ini lebih lanjut, tetapi satu-satunya ponsel Android saya saat ini hanya WiFi, jadi tidak ada SMS: /

onik
sumber
Terima kasih banyak untuk wawasannya, onik! Tidak tahu tentang perubahan KitKat itu. Dengan itu, apakah saya mengerti dengan benar bahwa mis. WhatsApp sekarang akan memerlukan READ_SMSizin juga untuk mengakses "kode aktivasi" - atau melakukan aplikasi dengan RECEIVE_SMSizin "terima salinan" sekarang (kecuali untuk aplikasi SMS default, yang akan " terima yang asli ")?
Izzy
@ Izzy Saya punya pertanyaan tentang ini juga. Apakah pengguna sekarang melihat teks kontrol ini secara langsung di aplikasi default mereka sekarang? Atau apakah itu menjadi pilihan untuk dapat melihat teks "dikonsumsi", tetapi tidak benar-benar muncul di aplikasi teks biasa?
Cruncher
1
@Izzy Jika saya mengerti dengan benar, aplikasi yang tidak disetel sebagai aplikasi SMS default dapat mengakses penyedia read-only, artinya mereka tidak memerlukan READ_SMSizin, tetapi mereka tidak dapat mengedit SMS (tandai baca, hapus dll. ).
onik
1
@Cruncher Pesan-pesan akan muncul di aplikasi SMS default Anda, karena hanya aplikasi itu yang dapat menulis ke SMSProvider untuk menghapus pesan-pesan tersebut.
onik
1
"Ya itu bisa". Tetapi hanya pada Android 4.3 dan lebih rendah. Karena 4.4 SMS_RECEIVED adalah Maksud yang tidak dapat dibatalkan. Tolong tambahkan fakta penting itu. Lihat juga stackoverflow.com/questions/20021492/...
Flow
10

Seperti hal-hal berdiri

  1. Android 4.3 dan yang lebih baru tanpa aplikasi Hangouts: Aplikasi apa pun dengan izin SMS_RECEIVE dapat membaca / membatalkan SMS yang masuk (ala Whatsapp)
  2. Android 4.3 dan yang lebih baru dengan Hangouts (mode SMS dihidupkan): Aplikasi apa pun dengan izin SMS_RECEIVE dapat membaca tetapi tidak membatalkan SMS yang masuk
  3. Android 4.4 dan di atasnya: Aplikasi apa pun dengan izin SMS_RECEIVE dapat membaca tetapi tidak membatalkan SMS yang masuk

Dalam ketiga kasus, READ_SMS akan memberikan izin aplikasi untuk membaca semua SMS, bukan hanya SMS masuk baru.

Seperti onik disebutkan hal-hal telah berubah sedikit di Android 4.4

daamitt
sumber
1
Terima kasih telah menunjukkan Hangouts mungkin membuat perbedaan untuk Android <4.4! Tebak sesuai dengan apa yang ditunjuk oleh onik dengan register aplikasi sebagai penerima SMS dengan prioritas tertinggi , dan Hangouts melakukan hal itu (sehingga tidak ada aplikasi lain yang bisa melengkapi itu)?
Izzy