iOS 13 NFC Core — чтение тегов NDEF (например, ISO 14443 Type A JavaCard)

Могу ли я прочитать тег NDEF на javacard с помощью апплета, такого как https://github.com/OpenJavaCard/openjavacard-ndef с iPhone 7 или выше (с поддержкой Core NFC)? Похоже, NFC был специально улучшен для iOS 13. Документация https://developer.apple.com/documentation/corenfc указывает, что карты, соответствующие стандарту ISO 7816 или ISO 15693, могут быть прочитаны с помощью iPhone. Кто-нибудь может это подтвердить?

У меня есть две javacards:

Я установил приложение на обе карты и не могу прочитать его с iPhone.

Я тестировал с помощью https://developer.apple.com/documentation/corenfc/building_an_nfc_tag-reader_app — он может обнаружить мой Yubikey, но не может обнаружить JavaCard с запущенным апплетом NDEF. Какие теги NFC можно считывать с iPhone?


person Jared    schedule 18.04.2020    source источник


Ответы (1)


Я считаю, что iOS может читать стандартный тип NFC, а с iOS 13 он может читать дополнительные теги AId (идентификатор приложения) карт типа 4 (это только из чтения документации).

Также прочитав спецификацию карт NFC Type 4 http://apps4android.org/nfc-specifications/NFCForum-TS-Type-4-Tag_2.0.pdf, который предназначен для типов тегов, не зависящих от производителя, которые работают с тегами AId.

Я заметил, что апплет может использовать неправильный идентификатор AI?
В спецификации (раздел 5.4.2) указано, что идентификатор AI для NDEF равен D2760000850101h.

Апплет https://github.com/OpenJavaCard/openjavacard-ndef/blob/master/applet-full/build.gradle, похоже, использует aid = '0xD2:0x76:0x00:0x01:0x77:0x10:0x02:0x11:0x01:0x00:0x01'

Это предположение, но, возможно, стоит попробовать использовать AId, указанный в спецификации NFC.

При дальнейшем чтении это то, что https://github.com/OpenJavaCard/openjavacard-ndef/issues/4 идет о.

Апплет AId по умолчанию, который они используют по умолчанию, является одним из их самоназначаемых (см. https://openjavacard.org/resources/aid-now.html, а не спецификацию NFC)

Обратите внимание, что с iOS 13 теперь вы можете писать свои собственные программы для чтения этой другой помощи. Использование https://developer.apple.com/documentation/corenfc/nfciso7816tag с правильный AId

Также https://developer.apple.com/documentation/corenfc/nfctagreadersession (который также скажем, что AId для стандартного NDEF — D2760000850101 )

person Andrew    schedule 19.04.2020
comment
Вы правы насчет AID - если я скорректировал info.plist, чтобы включить ISO7816 application identifiers for NFC Tag Reader Session (в данном случае D2760000850101), я могу установить соединение с javacard с iPhone. В настоящее время простое приложение не может прочитать тег NDEF, но я думаю, вы решили эту проблему! - person Jared; 19.04.2020