Wie erstellt man Apple Wallet Pässe mit NFC-Unterstützung?

NFC-Lesegeräte und Bezahlterminals

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

Apple Wallet Pass Zertifikat mit NFC-Unterstützung

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.

Welche Apple Wallet NFC-Anwendungen sind erlaubt?

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.

NFC-Verschlüsselung

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

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

Keine neue App installieren.

Ihre Kunden haben sie schon - die Wallet Apps sind auf jedem iPhone und den meisten Android-Telefonen vorinstalliert.

Die schönsten Pässe.

Laden Sie einfach Ihr Logo und ein Foto hoch - Passmeister gestaltet automatisch die schönsten Designs.

Die einfachste API.

Von Entwicklern für Entwickler - mit vollständiger OpenAPI Specification und Swagger UI zum Ausprobieren der API.