问题标签 [desfire]

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 投票
1 回答
91 浏览

mifare - 如何获取 Mifare DESFire 文件大小

这个问题参考了 Mifare SDK TapLinx 库的使用。

我可以读取文件的内容。但我需要知道如何获取文件的大小。我能够读取内容,因为我在readData()调用中硬编码了文件的大小。

我知道在 DESFire 规范中是0xF5获取文件设置,并且文件的大小以 3 个字节返回。但是在 TapLinx 提供的库中并不清楚如何获取文件的大小。

0 投票
0 回答
173 浏览

nfc - 使用 DESfire EV1/EV2 进行外部身份验证?

对非接触式 Mifare Desfire EV1 或 EV2 执行“外部身份验证”的最直接方法是什么?

我已经libnfc跑在上面PN532PN7150读者身上了。

应用说明MF3ICDx21_41_81说这张卡:

在阅读了有关此操作的信息后,这似乎是我想要做的。https://www.informit.com/articles/article.aspx?p=29265&seqNum=6将其描述为:

External Authenticate 命令由读卡器端应用程序与 Get Challenge 命令(在下一节中描述)一起使用,以允许读卡器端应用程序向卡验证其身份。

但在实践中如何做到这一点?

也许我可以pkcs11-tool从 OpenSC on top of pcsc-liteon top ofifdnfc使用libnfc,但这感觉很笨拙。当然,这必须是可能的libnfc和/或libfreefare?Python、C 或命令行;什么都可以。

0 投票
0 回答
31 浏览

authentication - 验证 Mifare DESFire

我尝试通过 PC/SC 在 Mifare DESFire 芯片上进行身份验证。到目前为止,我可以选择应用程序,但现在我一直在计算 RndA_dec。

我使用他/她的代码 并尝试重新构建以下示例:

但是使用以下输入键和 InitVector,我得到了这个异常:

在此处输入图像描述

当我使用 16 字节 initvector 时,我在这一行得到以下异常:

在此处输入图像描述

我的第一个问题是:当我想使用 AES 进行身份验证时,是否应该将 CryptoServiceProvider 从 3DES 更改为 AES?第二个问题:如何计算正确的输入?

0 投票
1 回答
39 浏览

encryption - 解密 DESFire ReadData 会话

我们正在努力解密 DESFire 数据。我们已经成功验证并且可以解密与我们创建的 RndA 相同的 RndA。

现在我们尝试从位置 0 读取 16 个字节的加密文件。

从一些 java 库中我们可以知道,我们必须使用加密命令作为 IV 进行解密。是对的吗?

这里的例子:

所以现在我们将 ReadCommand 与 Crc32C 连接起来:

然后我们将零填充到 16 个字节

然后我们使用会话密钥和 IV 0 生成 e(cmd + crc + padding) 以获得下一个 iv 用于解密响应:

现在我们用会话密钥和 IV:=e(cmd + crc32) 解密秘密并得到:

有很多零让我认为我们离答案不远了。所以请有人告诉我们,有什么问题?

我们将这个库用于Crc32C 这里是我们在测试中使用的完整代码:

0 投票
1 回答
54 浏览

authentication - Mifare DESFire EV1 4K AES 身份验证问题

请,有人可以告诉我我做错了什么。我必须对我的卡进行 AES 身份验证。该卡是 Mifare DESFire EV1 4K,读卡器是 Omnikey 5121。我在 Stack 上遵循了一些示例,但我总是在最后一步失败,即卡的旋转 RndA 不等于我的旋转 RndA。AES 配置有问题吗?

这是输出:

所以你可以看到 RndA_rot_dec 和 RndA_rot 不相等,我不知道为什么。

谢谢大家。

0 投票
1 回答
61 浏览

c# - C# CRC32 实现

我有以下示例:

但是使用以下计算器:sunshine2kzorc.breitbandkatze我无法重建结果。文档说:Polynomial- 04C11DB7EDB88320Reverse-、Initvalue-FFFFFFFF以及结果不应该被反转。

我在 NuGet 上搜索了库并找到了 Nito,但也没有得到正确的结果。我还尝试了与标志和多项式 ( 04C11DB7, EDB88320) 的每种组合。

有人能告诉我我做错了什么吗?计算器和库错了吗?此外,我在两侧和 lib 上尝试了相同的 polinom 和标志组合,但得到了不同的结果:-( 有人可以告诉一个绝对正确的 lib 吗?

这是我的测试代码:

0 投票
1 回答
29 浏览

javacard - 带有 DESFire 仿真的 JavaCard 获得 Uid 的

我有一个带有模拟 DESFire EV2 的 JavaCard (SmartMX),并且想从 DESFire 和 JavaCard 中获取 Uid。

因此,我找到了以下 APDU 命令:

但只获得DESFire Uid。有人可以告诉如何检索 JavaCard Uid 吗?

我正在PCSC LibC# .net5.

文档说,第一个被调用的 protokoll 将继续进行。因此,我尝试使用 APDU 读取 JavaCard 空闲内存:

但是在再次调用 GetUid 后,我再次收到了 DESFire CSN/Uid。有人还可以告诉 JavaCard 的 Uid 具有哪种格式吗?