In het kort: zeker waar dit ... Hoop zaken hebben ze afgelopen jaren verbeterd op Android, maar de beveiliging van notificaties kan zeker beter. Dus hierin zie je dat iOS gewoon een stuk volwassener is, dan Android. Zeker omdat het geen (meer ingewikkelde) manieren nodig heeft om dit beschikbaar te vergemogelijken.
Maar, zoals altijd, is er een "ja maar ..."
Hoewel ICEBlock stelt dat pushnotificaties op Android niet mogelijk zijn zonder privacy te schenden, is dat een wat vereenvoudigde voorstelling van zaken. Android is inderdaad minder streng ontworpen op het gebied van anonimiteit, en standaard pushservices vereisen het opslaan van device-ID’s, wat privacyrisico’s met zich meebrengt. Voor de meeste apps is dit geen probleem, omdat ze toch gebruikersdata verzamelen en via servers communiceren.
Eigen Push Infrastructuur
Voor een privacygerichte app als ICEBlock zijn er echter technisch wel degelijk manieren om een anoniem notificatiesysteem op Android te realiseren. Dit zou bijvoorbeeld kunnen met een eigen pushinfrastructuur waarbij de app tijdelijke, niet-persistente ID’s gebruikt die regelmatig rouleren, en berichten versleuteld via kanalen als WebSockets, long polling of zelfs mixnets zoals Nym of I2P worden bezorgd. Hoewel dit een stuk complexer is en redelijk wat kennis vraagt van de ontwikkelaar, sluit het conceptueel niet uit dat maximale anonimiteit ook op Android haalbaar is.
Daarmee is de stelling dat iOS dit “gewoon beter en makkelijker regelt” helemaal terecht, maar dat het op Android “niet mogelijk is” is naar mijn mening te stellig. De vork zit hier toch genuanceerder in de steel.
Apple Push Notification system en ICEBlock Changelog
Bovendien is het belangrijk op te merken dat ICEBlock zelf waarschijnlijk ook niet (meer) gebruikmaakt van Apple’s standaard pushnotificatiesysteem (APNs). Uit de changelog van versie 1.40 blijkt namelijk dat de app “niet meer kan worden afgesloten” en actief in de voor- of achtergrond moet blijven om updates en notificaties te ontvangen. Dit is een duidelijke indicatie dat ICEBlock een eigen notificatie-oplossing gebruikt, zoals polling of WebSockets, omdat traditionele APNs juist pushberichten kunnen leveren terwijl de app volledig gesloten is. Hierdoor vermijden zij de noodzaak om device-tokens op te slaan en beperkingen van APNs, waarmee hun argument dat Android onveiliger is vanwege het pushmechanisme met device-ID’s minder sterk wordt. Het suggereert dat ICEBlock ook op iOS het pushmechanisme heeft omzeild om zo volledige anonimiteit te waarborgen. Het is dus enigszins misleidend om te stellen dat alleen iOS anonimiteit kan garanderen dankzij een veiliger push-systeem. Dezelfde technische benadering van een custom, anoniem pushmodel zou ook op Android mogelijk zijn.
Ook een passage als dit in de changelog bevestigd mijn vermoeden:
"[...] Due to the new way we are delivering reported sightings, the radius was too large for notifications, but worked fine in the app (fixed) [...]"
Ik kan me daarom niet aan de indruk onttrekken dat de keuze van ICEBlock om Android uit te sluiten lijkt daarom vooral een strategische en pragmatische beslissing, waarbij ze profiteren van de uniformiteit en strengere sandboxing van iOS, maar ook een exclusieve niche creëren door zich alleen op dat platform te richten. Zeker gelet het feit dat - tot zover ik de changelog begrijp - men zelfs APN lijkt te omzijlen ... Zij het om verwerkings-technische grondslagen, en niet beveiligingstechnische. Maar zoals eerder aangegeven, kun je - als jet toch al zelf doet met een eigen systeem - dus wel degelijk op Android veilig implementeren.
Niet mis mee verder, en onverminderd de nuance, heeft iOS een veiliger ontwerp voor notificaties en makkelijker te implementeren ook.