macOS 10.15.4 - внешний считыватель NF C через USB (совместимый с CCID и ПК / S C) для эмуляции хост-карты - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть Identiv uTrust 3700 F CL Reader , который я не могу настроить на macOS Catalina 10.15.4. Я хотел бы прочитать теги NDEF , использовать U2F (FIDO2 CTAP1) через NF C, и эмулировать карту из устройства чтения (для чтения другими читателями, например, устройства Android или iOS). ), где мой хост выступает в качестве защищенного элемента.

Мой читатель прекрасно работает с opensc-tools для составления списка читателей. Я подозреваю, что несколько процессов конкурируют за устройство USB.

Этот раздел из libnf c указывает на связанное устройство ( SCL3711 , который является другим Identiv бесконтактным только USB-ридер) может либо не использовать проприетарный драйвер, либо полностью отключить PCS C для использования с nf c -tools. Однако это не работает для меня на MacOS (или Ubuntu). С установленным драйвером:

% LIBNFC_LOG_LEVEL=3  nfc-list -v
debug   libnfc.config   key: [allow_intrusive_scan], value: [yes]
debug   libnfc.config   Unable to open directory: /usr/local/Cellar/libnfc/1.7.1/etc/nfc/devices.d
debug   libnfc.general  log_level is set to 3
debug   libnfc.general  allow_autoscan is set to true
debug   libnfc.general  allow_intrusive_scan is set to true
debug   libnfc.general  0 device(s) defined by user
nfc-list uses libnfc 1.7.1
debug   libnfc.general  0 device(s) found using arygon driver
debug   libnfc.general  0 device(s) found using pn532_uart driver
debug   libnfc.general  0 device(s) found using ACR122S driver
debug   libnfc.general  0 device(s) found using acr122_usb driver
debug   libnfc.driver.acr122_pcsc   PCSC device [Identiv uTrust 3700 F CL Reader] is not NFC capable or not supported by libnfc.
debug   libnfc.general  0 device(s) found using acr122_pcsc driver
debug   libnfc.general  0 device(s) found using pn53x_usb driver
No NFC device found.

С удаленным драйвером:

% sudo LIBNFC_LOG_LEVEL=3  nfc-list -v
debug   libnfc.config   key: [allow_intrusive_scan], value: [yes]
debug   libnfc.config   Unable to open directory: /usr/local/Cellar/libnfc/1.7.1/etc/nfc/devices.d
debug   libnfc.general  log_level is set to 3
debug   libnfc.general  allow_autoscan is set to true
debug   libnfc.general  allow_intrusive_scan is set to true
debug   libnfc.general  0 device(s) defined by user
nfc-list uses libnfc 1.7.1
debug   libnfc.general  0 device(s) found using arygon driver
debug   libnfc.general  0 device(s) found using pn532_uart driver
debug   libnfc.general  0 device(s) found using ACR122S driver
debug   libnfc.general  0 device(s) found using acr122_usb driver
debug   libnfc.general  0 device(s) found using acr122_pcsc driver
debug   libnfc.general  0 device(s) found using pn53x_usb driver
No NFC device found.

Этот вопрос SO , похоже, предлагает тот же совет:

... вы можете использовать драйвер libnf c для ПК / S C для ACR122U (libnf c .driver.acr122_pcs c). Этот драйвер использует системный демон PC / S C для доступа к считывателю, вместо того, чтобы напрямую управлять интерфейсом USB. Чтобы эта опция работала, вам нужно настроить lib-nf c на использование драйвера PC / S C вместо прямого драйвера USB. Когда вы сами компилируете libnf c, вы можете сделать это, явно активировав только драйвер для ПК / S C:

/configure --with-drivers=acr122_pcsc 
make

Однако обратите внимание, что этот драйвер устарел и libnf c Авторы настоятельно не рекомендуют его использовать.

Я не могу найти чип в своем устройстве, но подозреваю, что это популярный pn53x (устройство 04e6:5790).

Есть ли предпочтительный метод сегодня? Доступны ли другие инструменты для использования в Linux и macOS для взаимодействия со считывателями и тегами NF C?

Редактировать: хотя для работы NF C в macOS потребуется ответ на этот вопрос Похоже, что ни один браузер в настоящее время не поддерживает это на рабочем столе.

Сейчас я могу получить доступ к кард-ридеру как к обычному бесконтактному считывателю смарт-карт (CCID через PC / S C) в macOS и Linux, но как я могу использовать контроллер NF C, чтобы получить что-то вроде ATS из тега NF C вместо ATR?

...