13 votes

L'autorisation RECEIVE_SMS peut-elle être utilisée pour intercepter des messages SMS ?

J'ai remarqué que beaucoup d'applications demandent l'accès à l'espace de travail. RECEIVE_SMS autorisation . Deux choses sont claires pour moi ici :

  • RECEIVE_SMS permet à une application de "capter" les SMS entrants.
  • READ_SMS s'applique uniquement aux SMS déjà stockés

Comme certaines des applications demandaient simplement RECEIVE_SMS mais pas pour READ_SMS j'ai été curieux : cela semble impliquer RECEIVE_SMS ne vise pas seulement la partie réceptrice, mais l'application peut également faire ce qu'elle veut avec le message reçu, par exemple le lire, puis le jeter en silence (de sorte que l'utilisateur ne s'aperçoive même pas qu'il y a eu un SMS - ce qui pourrait être la façon dont les chevaux de Troie TAN agissent pour casser les identifiants des transactions bancaires en ligne).

Mais serait-il également possible pour une telle application d'"intercepter" le message, c'est-à-dire de le recevoir, de le lire (et de traiter son contenu de quelque manière que ce soit, par exemple en le faisant suivre par d'autres moyens, comme par IP), puis de le transmettre comme si de rien n'était ? En d'autres termes : Peut-il espionner l'utilisateur de cette manière ?

13voto

Chris Roberts Points 7543

Oui, c'est possible, mais uniquement sur Android 4.3 et inférieur. Ceci est utilisé par exemple dans Whatsapp. Lorsque vous activez l'application, Whatsapp envoie un SMS au numéro que vous avez signalé, et l'application l'intercepte discrètement et signale aux serveurs qu'elle a reçu le SMS. C'est ainsi que le compte est lié à votre numéro.

Bien sûr, cela peut aussi être utilisé dans les applications nuisibles. Si une application s'enregistre en tant que récepteur de SMS avec la priorité la plus élevée, elle peut écouter les SMS entrants, les traiter et les rejeter sans que l'utilisateur ne s'en aperçoive, ou les transmettre au prochain récepteur de SMS avec la deuxième priorité la plus élevée.

Ceci a été refait dans Android 4.4, et si j'ai bien compris, seule l'application SMS par défaut a accès à tous les SMS entrants ( SMS_DELIVER_ACTION ), et les autres applications disposant des autorisations correctes ne recevront qu'une notification du message entrant ( SMS_RECEIVED_ACTION ). En outre, le SMS_RECEIVED l'intention est non avortable, elle ne peut pas être arrêtée. Je suppose que dans Android 4.4, ceci est fait pour permettre à l'utilisateur de voir tous les SMS entrants dans l'application par défaut.

Edit : J'ai trouvé d'autres informations utiles sur le site Blog des développeurs Android . J'aurais bien testé cela, mais mon seul téléphone Android est actuellement en WiFi uniquement, donc pas de SMS :/.

0 votes

Merci beaucoup pour ces informations, onik ! Je n'étais pas au courant de ces changements dans KitKat. Avec ces changements en place, ai-je bien compris que par ex. WhatsApp aurait maintenant besoin de la READ_SMS d'accéder à son "code d'activation" - ou d'utiliser des applications avec l'ordinateur. RECEIVE_SMS L'autorisation de "recevoir une copie" maintenant (à l'exception de l'application SMS par défaut, qui "recevrait l'original") ?

0 votes

@Izzy J'ai aussi une question à ce sujet. L'utilisateur verrait-il maintenant ces textes de contrôle directement dans son application par défaut ? Ou est-ce que ce serait une option pour pouvoir voir les textes "consommés", mais qui ne s'affichent pas dans l'application de texte habituelle ?

0 votes

@Cruncher C'est moi qui l'ai fait demandant la question, donc je dirais que votre question s'adresse plutôt à onik ou daamit qui y ont répondu. Si une application présente une option, c'est au développeur de le faire, je dirais. Il est peu probable qu'elle soit "obligatoire".

10voto

daamitt Points 101

En l'état actuel des choses

  1. Android 4.3 et inférieur sans l'application Hangouts : Toute application avec SMS_RECEIVE peut lire/annuler un SMS entrant (comme Whatsapp).
  2. Android 4.3 et inférieur avec Hangouts (mode SMS activé) : Toute application avec la permission SMS_RECEIVE peut lire mais pas interrompre un SMS entrant.
  3. Android 4.4 et plus : Toute application ayant la permission SMS_RECEIVE peut lire le message. mais pas interrompre un SMS entrant

Dans les trois cas, READ_SMS donnera à l'application la permission de lire tous les SMS et pas seulement les nouveaux SMS entrants.

Comme onik l'a mentionné, les choses ont beaucoup changé dans Android 4.4.

1 votes

Merci d'avoir signalé que Hangouts pourrait faire une différence pour Android < 4.4 ! Je suppose que cela correspond à ce qu'onik a indiqué avec une application s'enregistre comme récepteur de SMS avec la priorité la plus élevée et c'est exactement ce que fait Hangouts (aucune autre application ne peut donc l'égaler) ?

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X