Apple Wallet NFC-Pässe funktionieren nur mit NFC-Lesegeräten und Bezahlterminals, die Apple VAS ("Value Added Services") unterstützen. (Ähnlich wie "Google Smart Tap" bei Google Wallet Pässen.)
Apple stellt eine offizielle Liste zur Verfügung, mit der Sie prüfen können, ob Ihre NFC-Lesegeräte Apple VAS unterstützen: https://mfi.apple.com/account/reader-search
Zusätzlich benötigen Sie ein Apple Wallet Zertifikat mit NFC-Unterstützung. NFC-Zertifikate können Sie nur nach vorheriger Freigabe durch Apple erhalten. Ihre Freigabe für NFC-Zertifikate können Sie hier beantragen: https://developer.apple.com/contact/passkit/.
Bis zu Ihrer Freigabe durch Apple können Sie Ihre Pässe und NFC-Lesegeräte mit unseren Passmeister Test-Zertifikaten testen.
Offiziell empfiehlt Apple NFC-Pässe für Kundenkarten, Mitgliedskarten und Eintrittskarten. Bei der Freigabe legt Apple Wert darauf, dass alle Ihre verwendeten Lesegeräte kompatibel sind und Ihre Kundenkommunikation sorgfältig und vollständig ist.
Nicht unterstützt werden sicherheitsrelevante Funktionen wie das Öffnen von Türen oder Schließfächern. Die mit Empfangspersonal ausgestattete Einlasskontrolle im Fitness-Studio ist also mit NFC erlaubt, das Öffnen und Verschließen des Spinds in der Umkleide nicht.
Apple Wallet NFC-Pässe benötigen immer ein Schlüsselpaar: der öffentliche Schlüssel wird im Apple Wallet Pass gespeichert, der private Schlüssel und Ihre "Apple Passtyp-ID" im NFC-Lesegerät.
Ohne Passmeister wird's ab jetzt kompliziert:
Ein öffentliches/privates Schlüsselpaar kann zum Beispiel mit
openssl
erzeugt werden:
openssl ecparam -name prime256v1 -genkey -out private.pem openssl ec -in private.pem -pubout -out public.pem
Im Quellcode des Apple Wallet Passes (pass.json
) werden die übertragenen NFC-Daten (bis zu 64 Bytes) als
message
und der öffentliche NFC-Schlüssel als
encryptionPublicKey
gespeichert:
"nfc": { "message": "1234567890", "encryptionPublicKey": "MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACJSSx\/wk8yJFezle8j14BEN5cso4ZvvyfJBLWLKX4Yro=" },
Das benötigte Format von
encryptionPublicKey
ist beschrieben als:
Use a Base64-encoded X.509 SubjectPublicKeyInfo structure that contains an ECDH public key for group P256.
Öffentliche ECDH-Schlüssel (Elliptic-curve Diffie–Hellman) werden mit einem x/y Koordinatenpaar definiert. Für den Apple Wallet Pass ist tatsächlich die sogenannte komprimierte (compressed) Form notwendig, also nur die x-Koordinate.
Der komprimierte öffentliche Schlüssel kann zum Beispiel mit
openssl
erzeugt werden:
openssl ec -in private.pem -pubout -conv_form compressed
Mit Passmeister ist alles einfacher: Ihr öffentlicher und privater Schlüssel werden automatisch erzeugt und im Apple Wallet Pass eingebunden. Für NFC-Lesegeräte bietet Passmeister fertige Konfigurationsdateien an.
Am NFC-Symbol in "Einstellungen / Zertifikate" sehen Sie, ob Ihr Apple Wallet Zertifikat NFC unterstützt. Aktivieren Sie einfach NFC in "Pass-Einstellungen / NFC" und wählen Sie dort den Apple Wallet NFC-Schlüssel für den Pass.
aktualisiert am: 15. Juni 2023