问题标签 [emv]

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

javacard - 测试 EMV 卡的 RSA 密钥

根据 EMV 标准,我们需要两个 RSA 密钥。

1)颁发者 RSA 密钥(将使用 1408 位)

2) ICC RSA 密钥(将使用 1152 位)

这里 Issuer RSA 私钥用于计算 ICC 公钥证书。EMV 卡包含在 SDA/DDA 中使用的各种标签8F,例如90(颁发者公钥证书) (ICC PUBLIC KEY CERTIFICATE)等。9F46

其实我想用java语言个性化一张EMV卡,想自己处理所有的计算。这需要 RSA 密钥(SDA/DDA 需要 RSA Stuff)

EMV 也有 DGI8201-8205

包含 CRT 格式的 ICC RSA 私钥。

我知道这很复杂,但这是深入了解 EMV 技术的唯一方法。任何人都可以告诉我如何获得可以解决我的目的并可以在 EMV 计算中使用它的 RSA 密钥。提前致谢。

0 投票
1 回答
757 浏览

encryption - MSR DUKPT 的 MAC 变体?

目前我正在研究 ChipCard EMV 设备解密。下面是我使用交易后的相关数据(TLV格式作为标签长度值):

我知道这个设备的 BDK 是0123456789ABCDEFFEDCBA9876543210. 根据解密指令,它提到 DFDF59 包含以下标签:

每条指令都提到了“ MSR DUKPT 的 MAC 变体”,其中 MAC 代表消息验证码,以及“通过 TLV 格式解析数据。对于加密的数据标签,使用 TDES_Decrypt_CBC 对其进行解密”。

我尝试通过 KSN、BDK 和加密数据 DFDF59 使用 3DES DUKPT。它行不通。解密领域的任何人都可以给我一些建议吗?我们的供应商非常不愿意分享他们的知识......

我不知道 MAC 如何在解密中真正发挥作用....我认为 MAC 只是一个完整性检查....我正在使用从 KSN 和 BDK 生成的 3DES DUKPT 会话密钥。这适用于该设备中的其他解密,但不能解决 DFDF59(芯片卡 EMV 解密)......这就是为什么我开始怀疑我是否使用了正确的会话密钥......随意只是把想法扔在那里。谢谢!

0 投票
3 回答
3010 浏览

credit-card - EMV卡在线密码验证

是否有不支持在线 PIN 验证的 EMV 卡?还是所有 EMV 卡都支持在线和离线 PIN 码,由终端决定使用哪个?

提前致谢。

0 投票
1 回答
686 浏览

iso8583 - J8583 Api 和 EMV 凭证

我一直在看 J8583:http: //j8583.sourceforge.net/xmlconf.html

这是一个很棒的 Api,维护得很好,对作者/开发者表示敬意。

我想知道是否有人成功地将它用于 EMV 交易和/或图书馆是否可以处理这些数据和/或这样做是否安全。

看起来好像我需要使用复合自定义字段来查看主位图的字段 55。如果数据存在,那么我需要调查 EMV 标签并根据需要进行解析。

我的示例 ISO 消息如下所示:

6666 前缀是我为测试这种情况而设置的模板,它只有 LLLVAR 类型的字段 55

如果我们要查看解码 EMV 数据,我们可以使用http://www.emvlab.org/tlvutils/并粘贴:

将产生一个我正在有效地尝试重现的结果表。

我的输出很简单:

因为我还没有处理自定义字段,因为我想先询问 SO 社区他们的想法。

提前感谢您的任何帮助/建议。

还有...如果有人读到这篇文章有 1500 个代表,也许 J8583 si 值得拥有自己的标签?

0 投票
1 回答
586 浏览

embedded - 克服 EMV TLV 长度限制限制

我们有代码来询问来自各种 EMV TLV 的值。但是,对于 PED 序列号, http ://www.emvlab.org/emvtags/ 上标签“9F1E”的规范 具有:-

名称 说明 源 格式 模板 标签长度 P/C 接口设备 (IFD) 序列号 制造商分配给 IFD 的唯一且永久的序列号 终端 8 9F1E 8 原语

但是上面给出的限制是 8,而我们有 9 长 SN 的 VeriFone PED。

所以依赖标签“9F1E”的示例代码无法检索完整长度。

在上面,写了 GetTLV() 以获取标签 arg 并将值填充到 char 数组中。

是否有任何开发人员找到了检索完整 9 的好方法?

0 投票
3 回答
3020 浏览

iso8583 - ISO8583 消息的标准模板

所以我理解并意识到 ISO8583 消息因规范而异,但我想知道是否有资源可以帮助我确定哪些字段是绝对必须的。例如,“0200”消息肯定必须包含 PAN 和 Amount 字段?

我发现很难找到任何此类资源,即使它们带有附加信息,看看一些通用模板也会很棒。

很感谢任何形式的帮助。

0 投票
1 回答
3842 浏览

payment - 如何在 EMV 中设置在线密码验证

我正在尝试修改终端功能以仅接受在线卡 PIN 验证这是一个适用于离线的示例:

1.现在我需要更改值来强制终端只接受在线密码验证

2.我正在寻找可以帮助我为 EMV 生成这些标签和值的工具

有任何想法吗?

0 投票
1 回答
903 浏览

c# - 存储命令到 DGI 0202 给出 6A88 错误

我正在尝试使用我的工具个性化以下数据,但出现“6A88”错误。

以下是DGI的个性化。亲爱的 Arjun,请从下面找到完整的命令。

错误日志: Send------> 91023BA539500D5669736120456C656374726F6E8701019F1101019F120D5669736120456C656374726F6E5F2D02656E9F38039F1A02BF0C059F4D020B0A Response------> 9000

Send------> 91041282023C00940C080101001001040018010201 响应-----> 9000

Send------> 01014F704D57134166390514720355D20122261656381400000F9F1F183136353633303030303030303030303831343030303030305F201A454E434F4445445F303335352020202020202020202020202020 Response------> 9000

Send------> 020181B67081B39081B0826E5DE2DA465AD6F14959414D5D672A9B806C8425BCAD154899B973A3A94896E2A4ECFF197C2025AE8315274DE2770787ED9006936B45CDE6F1B176E933FF09A38951804B12E8A5DAA30470FCA97B64E5562E1DA9B90B654BB463BC5E8134A08559641FC78D0A423FCDC1B59460446C8C004CF85956F931C52DD1506BD59DCC12C903B7A57544D0E7666E4E2F9F762189E8ECC827A304DB8429A6C0BCB3F1DD5EB80F1DBAA3846529A392BD448B3984 Response------> 9000

Send------> 02023970378F01929224FB1D71CEDE213DB6F40CED0069B2C4E49FA4EF16D9C7701BD1F93E60DB5833EAE7C010219F3201039F4701039F49039F3704 Response------> 6A88


成功日志:

Send------> 91023BA539500D5669736120456C656374726F6E8701019F1101019F120D5669736120456C656374726F6E5F2D02656E9F38039F1A02BF0C059F4D020B0A Response------> 9000

Send------> 91041282023C00940C080101001001040018010201 Response------> 9000

Send------> 01014F704D57134166390514720355D20122261656381400000F9F1F183136353633303030303030303030303831343030303030305F201A454E434F4445445F303335352020202020202020202020202020 Response------> 9000

Send------> 020181B67081B39081B0826E5DE2DA465AD6F14959414D5D672A9B806C8425BCAD154899B973A3A94896E2A4ECFF197C2025AE8315274DE2770787ED9006936B45CDE6F1B176E933FF09A38951804B12E8A5DAA30470FCA97B64E5562E1DA9B90B654BB463BC5E8134A08559641FC78D0A423FCDC1B59460446C8C004CF85956F931C52DD1506BD59DCC12C903B7A57544D0E7666E4E2F9F762189E8ECC827A304DB8429A6C0BCB3F1DD5EB80F1DBAA3846529A392BD448B3984 Response------> 9000

Send------> 02023970378F01929224FB1D71CEDE213DB6F40CED0069B2C4E49FA4EF16D9C7701BD1F93E60DB5833EAE7C010219F3201039F4701039F49039F3704 Response------> 9000

谁能帮我解决这个问题?而其他工具成功地个性化了芯片上的相同数据。

0 投票
1 回答
881 浏览

javacard - 选择 PPSE GIVES 6700,(VISA Paywave)

我有两种不同的智能卡芯片,里面有 Visa Paywave(一个是原生的,另一个是 Java Card)。

我正在尝试运行 select PPSE 或 select Application 命令,一张卡给出了预期的结果,而另一张卡给出了状态字6700

我们还有一些其他的专有测试工具在两张卡上都获得了不错的结果。这意味着两张卡中都有一个 PPSE 和应用程序。我想知道为什么我的工具发送相同的命令但得到不同的结果。

任何建议在这里都会有所帮助。

0 投票
2 回答
4268 浏览

java - 读取和写入 EMV 卡

这是新事物,我从未做过任何与在线交易或借记卡/信用卡相关的编码。我被告知要研究 EMV(EuroPay Master Visa)卡以在 Android 应用程序中实现它。

到目前为止,我收集了关于

  • APDU
  • 文件结构
  • 发送“APDU 命令”以从卡中获取有用信息。
  • APDU 字段(CLA、INS、P1、P2、Lc、数据、Le)
  • “APDU 响应”从卡发送回读卡器。

所有这些过程都发生在卡和读卡器之间。就我而言,读卡器连接到安卓设备。我可能需要在 android 应用程序中向用户显示卡详细信息(例如:显示卡号的最后 4 位数字)。我的问题是

  1. 如果我想对卡进行身份验证,APDU 命令字段中的可能值是什么?
  2. 如何使用 Java 在读卡器和设备之间进行通信。

PS:我不需要任何代码。我只需要一个简单的解释,一旦我理解了这个概念,我将继续研发。