Bisher lief die App der #HKK (Krankenkasse) problemlos. Seit Version 25.15.4 ist jedoch bei der Anmeldung ein Aufruf an die IP-Adressen »8.8.8.8« oder »8.8.4.4« (Google) erforderlich, andernfalls schlägt die Anmeldung fehl. Den verantwortlichen Entwickler würde ich umgehend entlassen. 🤦‍♂️
@kuketzblog Wird das ein Versucht sein, DNS-Sperren (ala pihole) zu umgehen?
@kuketzblog Binäreditor und durch 9.9.9.9 ersetzen :)

@giggls @kuketzblog

Geht natürlich nicht, weil Android-Apps digital signiert sind...

@Life_is @kuketzblog Es gibt da eine durchgängige Trust-Kette? Kann ich mir nämlich nicht so recht vorstellen, denn sonst könnt man doch niemals eigene apk installieren.
@giggls @Life_is @kuketzblog Eigene? Also selbst compiliert. Doch, das geht. Teste ja so dauernd mein Zeug auf dem Handy. Genau verstanden wie es funktioniert hab ich noch nicht ganz.
@stefanjahn @Life_is @kuketzblog Ich habe auch das apk von fdroid händisch installiert. Natürlich geht das.

@giggls @stefanjahn @kuketzblog

Es gibt Apps, die dasselbe Zertifikat für play store, f.droid, samsung app shop, huawei app gallery, amazon app shop verwenden. Dann sind auch updates aus einer anderen quelle möglich.

Ein developer kann aber auch die verschiedenen flavors mit jeweils anderen zertifikaten versehen, dann geht es nicht.

@giggls @stefanjahn @kuketzblog

Wenn du mit adb (zB aus AndroidStudio) eine App sideloadest, kannst du auch unsignierte (und natürlich selbst-signierte) apps installieren.

Wenn die App aber auf einen server zugreift, kann der server einen wert (api-key) abfragen, der nur von einer korrekt signierten app srzeugt werden kann.

Wenn du beispielsweise mit einer eigenen App auf Twitter oder Mastodon zugreifen willst, gehst du zuerst in den Entwickler-Bereich von Twitter bzw Mastodon und forderst einen eigenen Api-Key für deine App an. Bei Mastodon kannst Du beliebige Rechte für den api-key andordern. Bei Twitter erhalten nur offizielle Apps so einen priviligierten Api-Key.

@Life_is @giggls @kuketzblog OK, das mit den API Keys ist mir bewusst. Kenne ich von der Firma und Nutzung von REST API. Das hat mit der App aber weniger zu tun, sondern eher mit der Nutzung des API.

@giggls @kuketzblog

Wenn Du selber eine App schreibst, erstellst du ein eigenes (selbstsigniertes) Zertifikat. Die App kannst Du selbst nutzen und auch an andere weitergeben. Du kannst die App beim Play Store einreichen. Google speichert dann auch dein Zertifikat. Alle Updates müssen mit dem selben Zertifikat signiert werden. Geht das Zertifikat verloren, sind Updates nicht mehr möglich. Eine neue Version mit neuem Zertifikat kann nur installiert werden, wenn die alte version zuvor deinstalliert wird. Wird das Zertifikat vom play-store verwaltet, dann erlaubt der play-store ein oder zweimal während der life-span einer app den wechsel des zertifikates wegen eines verlorenen zertifikats.

Wenn du eine app patchst, kannst du sie mit einem eigenen zertifikat signieren und verwenden. Ich vermute aber, dass der server prüft, ob die zugreifende app den korrekten api-key verwendet und dass djeser vom korrekten app-zertifikat abhängt.

@Life_is @kuketzblog Bei so Banking Apps die ja vorgeben besonders sicher zu sein kann schon sein dass es solche Prüfungen gibt.

@giggls @kuketzblog

Auf jeden fall. Und darüberhinaus tests auf play services, rooting, und neuerdings die play store attestation.

@kuketzblog der hat sicher wieder ein kostenloses framework aus silicon valley eingebunden. Nach dem Motto: "funktioniert doch". Und kostenlos ist doch immer gut!

Hatte ich schon oft in meiner Beratungspraxis.

@rigo Ne, so einen direkten Aufruf über IP-Adresse habe ich selten gesehen. Das ist manuell so implementiert - vermutlich nur ein Check, ob Internet-Konnektivität besteht. Aber sowas kann man auch besser implementieren und ohne Google-Aufruf.
@kuketzblog @rigo aber dann müsste man sich Mühe geben 😅
@kuketzblog 8.8.8.8 ist DNS. Der hardcoded doch keinen DNS server? 😜 Hast Du 'mal versucht ob er den 8888 nur als backup DNS eingebunden hat?
@rigo Nein, kein Witz. Die App will 8.8.4.4 oder 8.8.8.8 auf IP-Ebene kontaktieren, sonst keine Anmeldung möglich. Zuvor versucht sie allerdings "firebaseinstallations.googleapis.com" zu kontaktieren, was ich allerdings blockiere. Eventuell ist das eine Art Fallback.

@kuketzblog das sieht verdammt nach google services als notification framework aus. So gut kenn ich das nicht, weil ich es seit 25 Jahren schaffe, den Blödsinn zu umschiffen.

Das wiederum spricht für meine "silicon valley framework" Theorie. Stephen Farrell hatte doch festgestellt, dass sogar die covid-app wegen der Nutzung von google services notifications nach Hause telefoniert.

Android ist halt Android und das macht, wofür es designed wurde.

@rigo Ich kann dir aktuell nicht sagen, durch welches Framework die Anfrage ausgelöst wird. Ich starte die App auf einem googlefreien #GrapheneOS. Was ich aktuell nur sagen kann, ohne die IP-Freigabe 8.8.4.4 oder 8.8.8.8 über RethinkDNS ist eine Anmeldung nicht möglich. Auf meinem Testgerät bekomme ich die App Aufgrund Play Integrity API nicht installiert. Alles sehr unschön und intransparent.

@kuketzblog wahrscheinlich konnte der Dev das auch nicht sagen (und es war ihm auch ziemlich egal) 🙄

Die convenience ist so stark, dass Du Dich im Wettbewerb kaum entziehen kannst. Denn soviel Zeit wird Dir für die Herstellung gleicher Funktionalität einfach nicht gegeben.

Du hast hier nur ein Symptom eines Systems.

@rigo "Du hast hier nur ein Symptom eines Systems."

Das mag sein - ich kann es schlichtweg nicht beurteilen.

@kuketzblog @rigo So eine Prüfung kann doch auch gegen die IP des eigenen Servers erfolgen, oder?
@stefanjahn @rigo Klar, könnte. Aber aktuell ist unklar, wodurch der Aufruf überhaupt hervorgerufen wird. Das kann nur die #HKK klären.
@kuketzblog @rigo Ich vermute eine vorgefertige Funktion ala isOnline() oder so. Was dahintersteckt sieht der Entwickler ja erst Mal nicht.

@kuketzblog Die #TK scheint nun leider ebenfalls die Play Integrity API zu nutzen. :/

https://grapheneos.org/articles/attestation-compatibility-guide#apps-banning-grapheneos

GrapheneOS attestation compatibility guide

Guide on using remote attestation in a way that's compatible with GrapheneOS.

GrapheneOS
@mcbaumwolle Ja, wurde mittlerweile wohl bestätigt. Damit kann man die App aktuell nicht mehr unter Custom-ROMs nutzen - auch nicht unter GrapheneOS.
@kuketzblog Hast du es schonmal geschafft auf diese Patientenquitting zuzugreifen? Das funktioniert bei mir schon seit Jahren nicht
@kuketzblog Direkte Aufrufe der #Google-DNS-Server kennt mein #RethinkDNS von #WhatsApp und #Netflix. Beide Apps funktionierten allerdings auch, wenn die Verbindung blockiert bleibt/wird. Insofern würde ich hier auch eher von einer spezifischen Implementierung ausgehen.
@kuketzblog DNAT auf 9.9.9.9 (oder einen eigenen Pihole) ? Solange es kein DOH oder DOT ist…
Entwickler entlassen? Bei einer Krankenkasse, @kuketzblog? Da wird doch eher "gesundgebetet", wie z.B. bei der #Barmer App, die für Consent-Management Software von #Tealium enthält. Einer Firma, die sich auf Nutzer-Tracking via innovativer Techniken spezialisiert (Stichwort z.B. #VisitorStitching). Der/die DSB der Barmer hält das bei einer App, in der es auch um sehr persönliche #Gesundheitsdaten geht für unbedenklich.
@kuketzblog wofür benötigt man eine App?

@kuketzblog
Und ich war extra zu denen gewechselt weil noch vor kurzem deren APP ohne Google gut funktionierte im Gegensatz zu einigen Apps meiner vorherigen Krankenkasse.

Direkt nach dem Umstieg im Dezember war ich sehr enttäuscht, dass es dann nicht mehr ging. Derzeit habe ich eine vorherige Variante installiert aber das geht ja auch nicht ewig...

Jetzt trauere ich fast der vorherigen Krankenkasse hinterher, die nur Basucs ohne Google zuließ 😑

@kuketzblog @FreieSoftwareOG was heißt ein Aufruf an 8.8.8.8 ist erforderlich? Ein ARP Request mit ACK Prüfung bzw. vorheriges ICMP oder mehr? Das erste liese sich ja leicht über ne Weiterleitung umgehen