Hi,
die photoTAN-App der Deutschen Bank benötigt die Berechtigung, Anrufe zu starten und zu verwalten (Telefonanrufe tätigen) sonst funktioniert die App nicht.
Kann sich jemand erklären, warum solch eine App diese Berechtigung benötigt?
Laut der App „greift sie nicht auf Anrufe, Historien oder andere persönliche Daten zu und führt von sich aus keine Anrufe durch.“
Ich befürchte, dass dies andere Gründe hat als die technische Notwendigkeit.
Das kann die Lösung sein, wenn man bereit ist zu akzeptieren, dass die App der Bank und damit ggfs. auch die Bank selbst sowie beuftragte Dienstleister die persönliche IMEI und SIM-Kartennummer wissen.
Das könnte ich mir allenfalls beim Banking mit einem Firmenkonto und Firmentelefon vorstellen.
Ich bin mir nicht sicher, ob hier die Frage abschließend beantwortet wurde, auch wenn es hier seitens der eingangs genannten App wohl um die „phone permission“ und den Versuch einer Gerätebindung aus Sicherheitsgründen gehen dürfte. Ich habe sowas auch bei einigen anderen Apps aus dem Bankingbereich erlebt.
Was mir hingegen nicht klar ist, ist, ob diese Bereichtigung nach Android 10 überhaupt noch im gewünschten Sinn funktioniert und falls, ja, wie. Eigentlich dürften seitdem nicht privilegierte Apps über die genannte Berechtigung gar keine Hardware-Identifizierungsmerkmale mehr auslesen. Siehe: https://developer.android.com/about/versions/10/privacy/changes?hl=en
Die Telefonnummer dürfte ausgelesen werden können, aber eigentlich nicht die IMEI, zumindest nicht von der Banking-App selbst.
Insofern wäre es interessant zu erfahren, ob die vom TE genannte Funktion noch ein Relikt aus der <10-Zeit ist, oder, ob die App die IMEI möglicherweise über IPC von irgendeiner Google-App bekommen könnte, die ggf. auf Stock-Android-Geräten mit privilegiertem Status arbeiten könnte.
Seit Android 10 ist das nicht mehr möglich. Zudem ist für die App nur eine Geräte- oder Profilbindung sicherheitsrelevant, und dafür gibt es bessere Methoden, z.B. Speichern eines Secrets im Secure Element.
Die App geht auch auf älteren Androiden als 10. Daher macht es Sinn über die IMEI zu prüfen ob die Software samt Daten noch auf dem original registrierem Gerät ist.
Ab Android 10 könnte Google die App mit READ_PRIVILEGED_PHONE_STATE im Manifest erlauben. Leider möchten mir meine Apps das Manifest der DB App nicht entschlüsseln, also kann ich nicht reingucken.
Aber für mich ergibt diese Berechtigung einen Sinn damit man nicht einfach eine Kopie nutzen kann.
Ich nutze selbst nicht die App der Deutschen Bank, sondern hatte eine Zeit lang die VR Pay App von Atruvia auf dem Gerät. Die wollte auch die Telefon-Berechtigung, damit niemand die App kopiert, wie du schreibst. Also im Grunde wie bei der Deutschen Bank, nehme ich an.
Ich kann auch nicht prüfen, was nun übertragen wird. Da ich GOS (aktuelle Version) nutze und die Apps nicht privilegiert sind, also weder die Google Apps noch die Banking App, wird die IMEI mutmaßlich nicht übertragen, wenn die Telefon-Berechtigung gewährt wird. Trotzdem funktioniert die besagte Banking-App.
Anscheinend (!) ist die IMEI also nicht zwingend erforderlich (Mutmaßung). Was mich an der Tauglichkeit dieser Sicherheitsvorkehrung zweifeln lässt. Lasse mich aber gerne von kundiger Seite eines Besseren belehren.
Das müsste die Google App erlauben, was sie nicht tut. Wenn Google das einfach so anderen Apps zur Verfügung stellen würde, wäre die ganze Einschränkung auf Zugriffe der IMEI nutzlos.
Dafür gibt es Anforderungen, die die App nicht erfüllen kann. Wenn eine Berechtigung PRIVILEGED im Name hat ist das ein Hinweis, dass sie nicht von normalen Apps genutzt werden kann.
Ich habe deinen Link durchgelesen und finde dazu keine Aussage. Ferner erlaubt Google manchen Apps etwas und anderen Apps nicht, ohne klare Begründung, z.B. bei QUERY_ALL_PACKAGES.
Steht doch ganz klar in meinem Zitat welche Anforderungen es gibt.
Auch ohne diese Berechtigung können Apps herausfinden welche anderen Apps in einem Nutzerprofil installiert sind und einvernehmlich (und nur dann) miteinander kommunizieren. GrapheneOS arbeitet daran es zu ändern mit App-Communication-Scopes. Aber es ist ein schwer zu lösendes Problem und GrapheneOS beißt sich deshalb schon eine Weile daran die Zähne aus.