问题标签 [eid]

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 回答
304 浏览

smartcard - 尝试使用 ICAO 9303 BAC 从 National eID (T=0) 读取数据

一直在尝试使用 ACS ACR1281 1S Dual Reader ICC 从我的 National eID 读取数据。它需要基本访问控制 (BAC) 身份验证。我能够正确进行身份验证,但是当我尝试使用遵循 ICAO Doc 9303 第 11 部分中的规范的安全消息传递选择 EF.COM (01 1E) 时出现错误

下面是我发送的 APDU 命令

KsEnc 和 KsMac 是在外部验证 0x82 后计算的会话密钥。但我不断收到6A 87 - Lc 与 P1-P2 不一致作为反馈。我正在使用 PCSC 5.0.0 库与卡 (ICC) 对话。我不确定我在哪里想念它,请帮忙。

0 投票
0 回答
31 浏览

card - MSE-Set AT - 如何确定公钥的引用

我正在尝试分析在我的国家/地区发行的 eID 如何用于某些任务(例如 PDF 数字签名)。目前没有关于 eID 的公开信息。

查看读卡器和 eID 之间的流量,我可以看到每次将 eID 卡插入读卡器时,NXP IDProtect 客户端中间件(当局推荐)都会在读卡器和 ICC 之间生成一些预定义的协商。

试图获取我需要的信息,我发现管理安全环境 APDU 是从读卡器发送到卡的,内容如下:00 22 C1 A4 06 80010c830184

然后,按照 Get challenge 和 External Authenticate (Mutual Authenticate)。

似乎终端身份验证已经完成,但是,没有关于卡的信息,我只能尝试查看 APDU 代码(和响应)。以下是我的问题:

  1. 使用什么加密机制(我假设 0x0C 代表 3DES-CBC)?
  2. 下一个 APDU 中使用了哪个公钥/密钥(我在任何地方都找不到关于 Tag83 值 0x84 的任何信息)?

此外,在 External AUthenticate APDU(这似乎是 Mutual Authentication)中,Data 字段包含 0x48 个字节(Lc 值也是 0x48)。这是另一个问题:

  1. 当数据字段包含 0x48 字节时,使用哪种 Mutual Authenticate 方法?我找不到任何关于外部身份验证的解释,其中数据字段包含 0x48 字节。如果 MAC 应该是 8 字节,那么密码是 0x40 字节长。由于ICC发送了8字节长的RND-ICC,我不确定,加密了什么内容,形成0x40字节长的密码。