สามารถใช้สิทธิ์ RECEIVE_SMS เพื่อสกัดกั้นข้อความ SMS ได้หรือไม่?


13

ฉันได้สังเกตเห็นค่อนข้างไม่กี่ปพลิเคชันที่ร้องขอได้รับอนุญาตRECEIVE_SMS สองสิ่งที่ชัดเจนสำหรับฉันที่นี่:

  • RECEIVE_SMS เปิดใช้งานแอป "snap" SMS ที่เข้ามา
  • READ_SMS ใช้กับ SMS ที่เก็บไว้แล้วเท่านั้น

เนื่องจากแอพบางตัวเพิ่งจะขอRECEIVE_SMSแต่ไม่ใช่สำหรับREAD_SMSฉันอยากรู้: นี่ดูเหมือนจะบอกRECEIVE_SMSเป็นนัย ๆ ว่าไม่เพียง แต่มุ่งเป้าไปที่ส่วนที่ได้รับ แต่แอพสามารถทำสิ่งที่ต้องการด้วยข้อความที่ได้รับเช่นอ่านแล้ว ทิ้งมันไปอย่างเงียบ ๆ (เพื่อให้ผู้ใช้ไม่ได้สังเกตเห็นว่ามี SMS - ซึ่งอาจเป็นวิธีที่ TAN โทรจันทำเพื่อ snap ตัวระบุสำหรับธุรกรรมธนาคารออนไลน์)

แต่มันจะเป็นไปได้เช่นกันที่แอพจะ "ดัก" ข้อความดังกล่าวคือรับมันอ่านมัน (และประมวลผลเนื้อหาในทางใดทางหนึ่งเช่นส่งต่อด้วยวิธีอื่นเช่นผ่าน 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 บล็อก ฉันจะทดสอบเพิ่มเติมนี้ แต่โทรศัพท์ Android ของฉันเท่านั้นที่เป็น WiFi-only ดังนั้นจึงไม่มี SMS: /


ขอบคุณมากสำหรับข้อมูลเชิงลึก onik! ไม่ทราบเกี่ยวกับการเปลี่ยนแปลง KitKat เหล่านั้น ฉันเข้าใจถูกต้องหรือไม่ว่าตอนนี้WhatsAppจะต้องREAD_SMSได้รับอนุญาตและเข้าถึง "รหัสเปิดใช้งาน" หรือทำแอพที่RECEIVE_SMSได้รับอนุญาต "รับสำเนา" ทันที (ยกเว้นแอพ SMS เริ่มต้นซึ่งจะเป็น " รับต้นฉบับ ") หรือไม่
Izzy

@ อิซซี่ฉันมีคำถามเกี่ยวกับเรื่องนี้ด้วย ตอนนี้ผู้ใช้จะเห็นข้อความควบคุมเหล่านี้โดยตรงในแอปเริ่มต้นหรือไม่ หรือมันจะเป็นตัวเลือกที่จะสามารถดูข้อความ "บริโภค" แต่ไม่แสดงจริงในแอปข้อความปกติของคุณ?
Cruncher

1
@Izzy หากฉันเข้าใจถูกต้องแอพที่ไม่ได้ตั้งค่าเป็นแอพ SMS เริ่มต้นสามารถเข้าถึงผู้ให้บริการแบบอ่านอย่างเดียวซึ่งหมายความว่าพวกเขาไม่ต้องการการREAD_SMSอนุญาต แต่พวกเขาไม่สามารถแก้ไข SMS ได้ (ทำเครื่องหมายว่าอ่านแล้วลบ ฯลฯ ) )
onik

1
@Cruncher ข้อความควรปรากฏในแอป SMS เริ่มต้นของคุณเนื่องจากแอปนั้นสามารถเขียนไปยัง SMSProvider เพื่อลบข้อความ
onik

1
"ใช่มันทำได้" แต่เฉพาะใน Android 4.3 และต่ำกว่า ตั้งแต่ 4.4 SMS_RECEIVED นั้นไม่สามารถยกเลิกได้ โปรดเพิ่มข้อเท็จจริงที่สำคัญนั้น ดูstackoverflow.com/questions/20021492/…
Flow

10

เป็นสิ่งที่ยืน

  1. แอนดรอยด์ 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.