问题标签 [lib-nfc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
874 浏览

mifare - 从 Mifare Mini 0.3K 获取密钥

我正在玩一个 Mifare MINI 0.3K 标签和一个通过 UART 连接到 Ubuntu 的 FTDI 电缆的 PN532 模块。

我成功地让 PN532 与 libnfc 和 mfoc/mfcuk 一起工作。

但我对这个 Mifare MINI 0.3K 标签有疑问:

使用 mfoc(知道卡至少有一个已知的默认密钥):

使用mfcuk -C -R -1:z -v 3

我想知道我可以如何进行。

0 投票
1 回答
1084 浏览

nfc - 发送 APDU 命令以读取被动标签?

我在我的 Beaglebone 上使用 libnfc 和带有 PN532 的 apdu_examle.c。我有一个 android 示例,用于在我的手机上模拟 Miffare 经典 1k 卡 HCE(主机卡仿真),并且一切正常。如果我点击手机,我可以阅读我从手机发送的信息。

是否可以发送 apdu 命令从 Miffare 经典 1k 卡(无源标签)读取数据?不是电话。该卡符合 ISO/IEC 14443A 标准。卡上必须有特定的格式或数据结构吗?

以下是有关该卡的更多信息:

ISO/IEC 14443A (106 kbps) 目标:ATQA (SENS_RES):00 04

  • UID大小:单个
  • 位帧防冲突支持 UID (NFCID1):db 6c 10 2b
    SAK (SEL_RES):08
  • 不符合 ISO/IEC 14443-4
  • 不符合 ISO/IEC 18092

基于 MIFARE 类型的指纹识别程序:

  • MIFARE 经典 1K
  • MIFARE Plus(4 字节 UID 或 4 字节 RID)2K,安全级别 1
  • SmartMX 与 MIFARE 1K 仿真
0 投票
1 回答
265 浏览

authentication - NFC 认证

我通过从卡发送和接收 APDU 来获取 NFC 标签的 uid。将它们存储在数据库中。在登录时,我将登录的用户标签 ID 与数据库进行比较以进行身份​​验证。这可行,但这是按照标准安全策略进行 NFC 身份验证的正确方法吗?我有点困惑,因为 PKI 涉及证书处理和使用公钥绑定用户。

0 投票
1 回答
545 浏览

nfc - 为什么这个 ATS 的长度字节这么大?

使用 DESFire 进行测试,我选择了以下 ATS 0x75 0x77 0x81 0x02 0x80:.

据我所知,ISO/IEC 14443-4说第一个字节应该是“长度字节”,并且应该指示作为 ATS 一部分发送的字节总数。那么,为什么是第一个字节0x75?如果您忽略第一个半字节,则该值是正确的,但是我是否真的应该这样做,或者该字节与长度值之间没有关系?

注意:ATS 是通过 libnfc 获得的nfc_initiator_select_passive_target

0 投票
1 回答
2067 浏览

c - libnfc:无法打开 NFC 设备

我在尝试从 PN532 读卡器读取数据的 Raspberry Pi 3B 上遇到 libnfc 问题。我按照官方网站的建议安装了 libnfc,事实上今天早上一切正常。我能够使用nfc-listandnfc-scan-device命令检测到我的设备。

然后我尝试运行一个 C 程序(不是我做的,而是公司里的一个人做的),它成功了。再次执行它并没有工作,但返回错误。尝试运行 nfc-list 命令并返回相同的错误。从那时起,libnfc 库似乎停止正常工作。

这些是我尝试运行一些命令时遇到的错误:

nfc-list

nfc-scan-device -v

LIBNFC_LOG_LEVEL=3 nfc-list

搜索了很多,但没有发现任何有用的东西。谢谢你。

0 投票
0 回答
2041 浏览

nfc - Libnfc 无法设置备用 USB 接口

我刚买了一个 ACR122U 用于在 NFC 卡上读/写。但是,libnfc 没有正确打开设备(通过 nfc-scan-device 命令)

我在不同的机器上遇到了同样的问题(在 Ubuntu 18.04 上)。有关此设备的常见错误是“无法声明 USB”。可以找到几篇关于此错误的帖子,在应用他们的解决方案后,我现在遇到了备用 USB 设置的问题:

相反,我应该得到类似于(来自在线帖子)的内容:

知道这可能来自哪里吗?

0 投票
0 回答
375 浏览

raspberry-pi3 - 如何为 libnfc 库配置无限轮询?

nfc-poll使用libnfc库时,命令默认在 30000 毫秒后停止轮询。

从 raspberry pi 3 b+ (raspbian stretch) 命令行调用此命令时,我需要进行无休止的轮询。

我查看了libnfc库源代码,发现nfc_initiator_poll_target负责轮询 nfc 目标的函数可以接收0xFF用于配置无限轮询的参数,但这是用 C 编写的函数,我还没有找到执行时从命令行传递此参数的方法nfc-poll

// 所以我从树莓派 3 b+ 的命令行中输入了以下内容。

nfc-poll

然后我可以在输入上述命令后看到结果信息:

所以,我正在寻找的是一种配置无限轮询的方法,而不仅仅是 20 个轮询。

有什么方法可以配置或传递参数以从命令行设置无限轮询?

注意:我问这个是因为我在 python 脚本中使用libnfc库的这个命令。所以我不希望我的脚本在libnfc库本身默认配置的 30000 毫秒计时器到期后停止/崩溃。

0 投票
1 回答
166 浏览

c - 如何解释 libfreefare 示例中使用的这个 nfc ndef 有效负载?

我正在尝试使用 libfreefare 示例代码编写编码的 ndef 消息。想知道如何解释下面的十六进制代码。我已经收集了一些关于 NDEF 格式的知识,但是这些对于翻译下面提到的 NDEF 十六进制消息几乎没有帮助。我只是按照示例程序并尝试用我的程序更改默认值。下面的代码代表什么?

参考:https ://github.com/nfc-tools/libfreefare/blob/master/examples/mifare-classic-write-ndef.c

我已经尝试使用在线转换器将十六进制值转换为 ASCII。我可以看到文本内容,但我很想知道文本之间的十六进制值的含义。

https://www.rapidtables.com/convert/number/ascii-hex-bin-dec-converter.html

我想为下面的 url 构造一个通用的 URI NDEF 十六进制值。

scriptable:///run?scriptName=Clocking

0 投票
1 回答
844 浏览

nfc - 使用 libfreefare acr122u 读写 desfire ev1

根据文档,以及 libfreefare(libnfc) 项目中提到的定义/示例,这种组合应该很好用:

libfreefare( libnfc ) + acr122u读卡器 + mifare desfire ev1

然而,在 3 个不同的 linux 平台和 windows7and10 上进行了一周的测试之后……它仍然无法在我的测试中工作。较低级别的代码(libnfc 示例代码:)nfc-anticol工作正常,因为它没有调用更高级别的 14443-4 命令,只是 14443-3,......以及更高级别的示例,如 libfreefare:mifare-desfire-info 不起作用。

有更好经验的人可以给我一些建议,可以得出结论是什么问题。

其他可能的相关信息

  • android nfc-tools 运行良好,同一张卡被识别为“nxp mifare desfire / nxp mifare desfire ev1”,读/写命令一切正常,所以卡标签应该没问题...
  • 卡提供的 ATR 是:3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 00 00 00 00 00 6B,使用简单的 pcsd-tools: scriptor 进行测试(atr 显示为对“重置”命令的响应)
  • acr122u 阅读器内部有 pn532 芯片,应该是 libnfc 的最佳支持工具。
0 投票
1 回答
2760 浏览

ubuntu - ACR122 NFC 阅读器不适用于 libnfc ubuntu

我刚给自己买了一个新的 ACR122U-A9 nfc 阅读器,我需要在 ubuntu 18.10 上使用 libnfc 进行设置。它需要与 libnfc 一起使用,因为 mfoc 接口就是这样(如果有办法在没有 libnf 的情况下使用 mfoc,那太好了!该解决方案也会对我有所帮助!)在安装 libnfc 1.7.1 并进行了几个小时的研究之后,我仍然做了不让它工作。每次我使用sudo nfc-list并且 pcscd 没有运行时,它都会给我以下错误:

如果 pcscd 正在运行,则错误内容如下:

有时这也会出现:

我从中读到的是:

  • libnfc 工作
  • 有一些驱动程序问题
  • 某些东西挡住了读者
  • 那东西是 pcscd (根据互联网)

我已经做了以下事情:

  • nfc pn533 pn533_usb文件中的黑名单/etc/modprobe.d/blacklist-libnfc.conf
  • 停止 pcscd 守护进程
  • 使用手动删除上述驱动程序sudo modprobe -r <driver>
  • 从这里安装设备驱动程序:https ://www.acs.com.hk/en/products/3/acr122u-usb-nfc-reader/
  • 重启我的笔记本电脑大约 100 次
  • 向 nfc 上帝祈祷

谁能帮助我和/或告诉我我做错了什么?先感谢您!

PS:我不知何故让它与 pcscd 一起工作,但因为我不知道如何让 mfoc 使用它(如果这甚至可能的话)它没有用。