13 votos

¿Puede utilizarse el permiso RECEIVE_SMS para interceptar mensajes SMS?

He observado que bastantes aplicaciones solicitan el RECEIVE_SMS permiso . Hay dos cosas que me parecen claras:

  • RECEIVE_SMS permite a una aplicación "capturar" los SMS entrantes
  • READ_SMS sólo se aplica a los SMS ya almacenados

Como algunas de las aplicaciones sólo pedían RECEIVE_SMS pero no para READ_SMS me picó la curiosidad: esto parece implicar RECEIVE_SMS no sólo se dirige a la parte receptora, sino que la aplicación también puede hacer lo que quiera con el mensaje recibido, por ejemplo, leerlo y luego tirarlo silenciosamente (para que el usuario ni siquiera se dé cuenta de que había un SMS, que podría ser la forma en que actúan los troyanos TAN para romper los identificadores de las transacciones bancarias en línea).

Pero, ¿sería también posible que una aplicación de este tipo "interceptara" el mensaje, es decir, que lo recibiera, lo leyera (y procesara su contenido de cualquier forma, por ejemplo, reenviándolo por otros medios, como a través de IP), y luego lo transmitiera como si no hubiera pasado nada? Dicho de otro modo: ¿Puede espiar al usuario de esta forma?

13voto

Chris Roberts Puntos 7543

Sí, puede, pero sólo en Android 4.3 e inferiores. Esto se utiliza por ejemplo en Whatsapp. Cuando activas la app, Whatsapp envía un SMS al número que has reportado, y la app lo intercepta silenciosamente e informa a los servidores de que ha recibido el SMS. Así se vincula la cuenta a tu número.

Por supuesto, esto también se puede utilizar en aplicaciones dañinas. Si una aplicación se registra como receptora de SMS con la prioridad más alta, puede escuchar los SMS entrantes, procesarlos y descartarlos sin que el usuario se dé cuenta, o reenviarlos al siguiente receptor de SMS con la segunda prioridad más alta.

Esto se ha rehecho en Android 4.4, y si he entendido bien, sólo la aplicación SMS por defecto tiene acceso a todos los SMS entrantes ( SMS_DELIVER_ACTION ), y las demás aplicaciones con permisos correctos sólo recibirán una notificación del mensaje entrante ( SMS_RECEIVED_ACTION ). Además, el SMS_RECEIVED La intención no es abortable, no se puede detener. Supongo que en Android 4.4, esto se hace para permitir al usuario ver todos los mensajes SMS entrantes en la aplicación por defecto.

Edición: He encontrado más información útil en Blog para desarrolladores de Android . Me gustaría probar esto más, pero mi único teléfono Android es actualmente sólo WiFi, por lo que no SMS :/

0 votos

Muchas gracias por la información, onik. No sabía nada de esos cambios en KitKat. Con ellos en su lugar, ¿he entendido correctamente que, por ejemplo. WhatsApp necesitaría ahora el READ_SMS permiso también para acceder a su "código de activación" - o hacer apps con el RECEIVE_SMS permiso "recibir una copia" ahora (excepto la aplicación SMS por defecto, que "recibiría el original")?

0 votos

@Izzy yo también tengo una pregunta sobre esto. ¿Ahora el usuario vería estos textos de control directamente en su app por defecto? ¿O sería una opción para poder ver los textos "consumidos", pero que en realidad no aparezcan en su app de texto normal?

0 votos

@Cruncher fui yo preguntando a la pregunta, así que diría que tu pregunta va mejor dirigida a onik o daamit que son los que la han contestado. Si una aplicación presenta una opción depende del desarrollador, diría yo. Es poco probable que sea "obligatorio".

10voto

daamitt Puntos 61

Así las cosas

  1. Android 4.3 y versiones inferiores sin la aplicación Hangouts : Cualquier aplicación con SMS_RECEIVE puede leer/abortar un SMS entrante (como Whatsapp)
  2. Android 4.3 e inferior con Hangouts (modo SMS activado) : Cualquier aplicación con permiso SMS_RECEIVE puede leer pero no abortar un SMS entrante
  3. Android 4.4 y superior : Cualquier aplicación con permiso SMS_RECEIVE puede leer pero no abortar un SMS entrante

En los tres casos, READ_SMS dará permiso a la aplicación para leer todos los SMS, no sólo los nuevos SMS entrantes.

Como onik mencionó las cosas han cambiado bastante en Android 4.4

1 votos

¡Gracias por señalar que Hangouts podría suponer una diferencia para Android < 4.4! Supongo que corresponde a lo que onik señaló con una aplicación se registra como receptora de SMS con la máxima prioridad y Hangouts está haciendo exactamente eso (por lo que ninguna otra aplicación puede superarla)?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X