- Um die langsame Bedienung der PureGym-App und den umständlichen Einlassprozess zu beheben, wurde dieser privat für Apple Wallet optimiert
- Der bisherige QR-Code ist ineffizient, weil man jedes Mal die App öffnen und die Informationen laden muss; der Eintritt dauert dabei etwa 47 Sekunden
- Durch verschiedene technische Schritte wie Reverse Engineering, den Einsatz von mitmproxy und das PassKit-Framework wurde ein automatisch aktualisierbarer Wallet-Pass umgesetzt
- Dabei wurden interne Abläufe von PureGym sichtbar, darunter Sicherheitslücken beim PIN-Code, die Struktur der API-Authentifizierung und Standortdaten der Filialen
- Am Ende entstand eine Nutzererfahrung mit 3 Sekunden bis zum Einlass; es blieb jedoch ein persönliches Experiment und ist kein offizieller Service
47 Sekunden: der Anfang des Ärgers
- An einem Werktag um 11:15 Uhr dauerte es am PureGym-Eingang 47 Sekunden, bis die App geöffnet war
- Schwaches Signal, WLAN-Verbindung, App-Start, diverse Push-Benachrichtigungen und Sonderangebote mussten erst übersprungen werden, bevor der QR-Code erschien
- Bis der eigentliche QR-Code sichtbar wurde, verging so viel Zeit, dass es vor anderen Mitgliedern unangenehm wurde
- Bei 6 Wiederholungen pro Woche summiert sich diese ineffiziente Erfahrung auf 282 Sekunden wöchentlich
- Verglichen mit berührungslosen Erlebnissen wie bei Amazon Fresh ist die Einlass-UX von PureGym deutlich rückständig
Das Rätsel um den 8 Jahre alten PIN
- Der Autor verwendet seit 8 Jahren denselben 8-stelligen PIN-Code
- Dieser PIN läuft weder ab noch wird er geändert
- Der QR-Code in der App hingegen wird jede Minute durch einen neuen Wert ersetzt
- Zwischen dem tatsächlichen Sicherheitsniveau und der realen Implementierung besteht also ein großer Widerspruch
- Das PIN-Verfahren bleibt extrem lange unverändert, während nur der QR-Code streng geschützt wird – eine Art „Security Show“
PureGym mit mitmproxy verstehen
- Zunächst wurde versucht, einen Screenshot des QR-Codes in Apple Wallet zu verwenden, was jedoch sofort scheiterte
- Der QR-Code von PureGym wird dynamisch erzeugt, läuft ungefähr nach einer Woche ab, wird in der App aber jede Minute erneuert
- Durch die Suche nach „PureGym“-Repos auf GitHub wurde die Struktur der API-Authentifizierung gefunden
- Der 8-stellige PIN für den Login wird identisch als API-Passwort verwendet
- Auch die Base64-kodierten Basis-Authentifizierungsdaten bieten nur geringe Sicherheit
- Um den App-Traffic zu analysieren, wurden Anfragen mit Proxy-Tools wie mitmproxy abgefangen
- Die JSON-Struktur des QR-Codes besteht aus part1 (feste id), part2 (Zeitstempel) und part3 (salt für die Erneuerung)
- Die API gibt sogar den Zeitpunkt der Erneuerung und die Ablauflogik vor
PassKit: das Potenzial von Apple Wallet
- Apple-Wallet-Pässe sind keine statischen Karten, sondern eher Mini-Apps mit eigener Aktualisierung, Push-Benachrichtigungen und ortsabhängigem Verhalten
- Für eine PassKit-Implementierung werden eine JSON-Spezifikation, Bildressourcen, Zertifikatssignaturen und ein Webservice für Echtzeit-Aktualisierungen benötigt
- Im Apple-Developer-Portal sind die Ausstellung einer Pass Type ID und eines WWDR-Zertifikats erforderlich
- Die Zertifikatssignierung und -verwaltung ist kompliziert, ermöglicht bei Erfolg aber eine nahtlose Erfahrung auf echten Geräten
Swift-Backend aufbauen
- Normalerweise würde dafür Node.js verwendet, hier wurde der PassKit-Webservice jedoch direkt mit Swift und Vapor umgesetzt
- Wenn ein Pass aktualisiert werden muss, erfolgt das Update automatisch per stillem Push
- Dadurch wird eine natürliche Pass-Aktualisierung erreicht, die der Nutzer gar nicht bemerkt
Automatisierung der PureGym-Standorte im ganzen Land
- Apple-Wallet-Pässe können an bestimmten Orten automatisch eingeblendet werden
- Auf der offiziellen PureGym-Website fehlen detaillierte Koordinaten, über die API ließ sich jedoch eine Liste der Koordinaten aller Filialen im Land abrufen
- Alle Standortkoordinaten wurden geparst und jedem Pass die nächstgelegene Filiale zugewiesen
- Nachteil: Befindet sich ein PureGym in einem Einkaufszentrum, erscheint der Pass gelegentlich schon beim bloßen Shopping
Apple-Watch-Integration
- Apple-Wallet-Pässe werden ohne zusätzliche Arbeit automatisch mit der Apple Watch synchronisiert
- Zweimal am Handgelenk klicken, scannen, eintreten: Das dauert nur noch 3 Sekunden
- Damit wird eine Zeitersparnis von mehr als 93 % erreicht
Die Veränderung in Zahlen
- Bisherige Einlasszeit mit der PureGym-App: 47 Sekunden
- Einlasszeit mit dem Apple-Wallet-Pass: 3 Sekunden
- Durchschnittlich gesparte Zeit pro Woche: 4,4 Minuten (3,8 Stunden pro Jahr)
- Andere Mitglieder fragten 23-mal, ob es so eine App gebe; jedes Mal wurde erklärt, dass sie inoffiziell ist
- Es gibt Anfragen, aber aus Urheberrechts- und Servicegründen ist keine Veröffentlichung geplant
Bonus: Home-Assistant-Integration
- Über den Endpoint für die Anzahl der Personen im Innenbereich der PureGym-API wird die aktuelle Auslastung des Fitnessstudios in einem IoT-Dashboard angezeigt
- So lässt sich datenbasiert entscheiden, wann man zu ruhigeren Zeiten zurückkehrt, was Effizienz und Motivation beim Training steigert
Technische Realität und Ethik
- Ausgangspunkt war reiner persönlicher Frust, doch intern bei PureGym blieb dieser Bereich über Jahre unbeachtet
- Ein außerhalb der Organisation entstandener Prototyp kann Probleme manchmal schneller lösen als die offizielle Roadmap
- Offiziell könnte dies jedoch gegen die Nutzungsbedingungen verstoßen, und PureGym könnte es jederzeit blockieren
- Es wurde niemals automatisiert oder geteilt; das Ganze blieb ein rein persönliches Experiment, wobei aus Stabilitätsgründen Prinzipien wie Caching eingehalten wurden
Nächste Schritte und Fazit
- Künftig wären Erweiterungsideen wie „Scham-Push-Benachrichtigungen“ denkbar
- Der praktische Nutzen mag klein sein, doch die Optimierung von jährlich 3,8 Stunden „unnötiger Bewegungen“ wird als befriedigend empfunden
- Würde PureGym das offiziell umsetzen, könnte es den Komfort für deutlich mehr Nutzer verbessern
- Der Fall bleibt als Beispiel für eine „inoffizielle, aber wirksame Erfahrung“ bestehen
Noch keine Kommentare.