SMS 메시지를 가로 채기 위해 RECEIVE_SMS 권한을 사용할 수 있습니까?


13

RECEIVE_SMS권한을 요청하는 앱이 상당히 많았습니다 . 여기 두 가지가 분명합니다.

  • RECEIVE_SMS 앱이 수신 SMS를 "스냅"할 수 있도록합니다.
  • READ_SMS 이미 저장된 SMS에만 적용

일부 앱이 방금 요청 RECEIVE_SMS했지만 요청 하지 않았기 때문에 READ_SMS호기심이 생겼습니다. 이는 RECEIVE_SMS수신 부분을 대상으로 할뿐만 아니라 수신 된 메시지로 원하는 작업을 수행 할 수도 있습니다. 예를 들어 읽은 다음 조용히 버리십시오 (따라서 사용자는 SMS가 있음을 알지 못합니다. 이는 TAN 트로이 목마가 온라인 뱅킹 거래의 식별자를 스냅하는 방식 일 수 있습니다).

그러나 그러한 앱이 메시지를 "인터셉트"(즉, 메시지를 수신하고 읽고 (예 : IP를 통해 다른 수단으로 전달) 어떤 방식 으로든 내용을 처리 한 후 다음과 같이 전달하는 것도 가능할 것입니다. 아무 일도 없었다면? 다시 말해, 사용자를 이런 식으로 감시 할 수 있습니까?

답변:


13

예, 가능하지만 Android 4.3 이하에서만 가능합니다. 이것은 예를 들어 Whatsapp에서 사용됩니다. 앱을 활성화하면 Whatsapp가보고 한 번호로 SMS를 전송하고 앱이 자동으로 가로 채서 SMS를 수신 한 서버에보고합니다. 계정이 귀하의 전화 번호와 연결되어 있습니다.

물론 이것은 유해한 앱에서도 사용할 수 있습니다. 앱이 우선 순위가 가장 높은 SMS 수신자로 등록 된 경우, 앱은 수신 SMS를 수신하고 처리 한 후 사용자가 알지 못한 상태에서 해제하거나 두 번째로 우선 순위가 높은 다음 SMS 리스너로 전달할 수 있습니다.

이것은 Android 4.4에서 다시 작성되었으며 올바르게 이해하면 기본 SMS 앱 만 모든 수신 SMS ( SMS_DELIVER_ACTION)에 액세스 할 수 있으며 올바른 권한을 가진 다른 앱은 수신 메시지 ( SMS_RECEIVED_ACTION) 의 알림 만 수신합니다 . 또한, SMS_RECEIVED의도는 취소 할 수 없으며 중지 할 수 없습니다. Android 4.4에서는 사용자가 기본 앱에서 들어오는 모든 SMS 메시지를 볼 수 있도록 수행되었다고 가정합니다.

편집 : Android 개발자 블로그 에서 더 유용한 정보를 찾았습니다 . 나는 이것을 더 테스트 할 것이지만 내 유일한 안드로이드 폰은 현재 WiFi 전용이므로 SMS는 없습니다 : /


통찰력을 주셔서 감사합니다, onik! 그 KitKat 변경에 대해 몰랐습니다. 대신에 그와 함께, 내가 예를 들어 있음을 제대로 이해 한 또는 WhatsApp은 이제 필요 READ_SMS나에 응용 할 - 물론 자사의 "활성화 코드"에 접근하도록 권한을 RECEIVE_SMS"하는 것, 기본 SMS 앱을 제외하고 (지금"사본을받을 "권한을 원본을 받음 ")?
Izzy

@Izzy 나도 이것에 대한 질문이 있습니다. 사용자는 이제 기본 앱에서 이러한 제어 텍스트를 직접 볼 수 있습니까? 아니면 "소비 된"텍스트를 볼 수 있지만 실제로는 일반 텍스트 앱에 표시되지 않는 옵션입니까?
Cruncher

1
@Izzy 올바르게 이해하면 기본 SMS 앱으로 설정되지 않은 앱은 읽기 전용 공급자에 액세스 할 수 있습니다. 즉 READ_SMS, 권한이 필요하지 않지만 SMS를 편집 할 수는 없습니다 (읽기, 삭제 등으로 표시). ).
onik

1
@Cruncher 메시지를 삭제하기 위해 해당 앱만 SMSProvider에 쓸 수 있으므로 메시지는 기본 SMS 앱에 표시되어야합니다.
onik

1
"예, 그럴 수 있습니다". 그러나 Android 4.3 이하에서만 가능합니다. 4.4 이후 SMS_RECEIVED는 중단 불가능한 의도입니다. 그 중요한 사실을 추가하십시오. 또한 참조 stackoverflow.com/questions/20021492/...
흐름

10

일이 서있는 것처럼

  1. 행 아웃 앱이없는 Android 4.3 이하 : SMS_RECEIVE 권한이있는 모든 앱은 수신 SMS를 읽거나 중단 할 수 있습니다 (ala Whatsapp)
  2. 행 아웃이 포함 된 Android 4.3 이하 (SMS 모드 사용) : SMS_RECEIVE 권한이있는 모든 앱은 수신 SMS를 읽을 수는 있지만 중단 할 수는 없습니다.
  3. Android 4.4 이상 : SMS_RECEIVE 권한이있는 모든 앱은 수신 SMS를 읽을 수는 있지만 중단 할 수는 없습니다.

세 경우 모두 READ_SMS는 새로운 수신 SMS뿐만 아니라 모든 SMS를 읽을 수있는 권한을 앱에 부여합니다.

onik에서 언급했듯이 Android 4.4에서는 상황이 약간 변경되었습니다.


1
행 아웃을 지적 해 주셔서 감사합니다. Android 4.4보다 차이가있을 수 있습니다. 앱에서 onik가 지적한 내용이 우선 순위가 가장 높은 SMS 수신자로 등록 되고 행 아웃이 정확히 그렇게하고 있다고 생각합니다 (다른 앱은 그것을 처리 할 수 ​​없습니다)?
Izzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.