terminal - 如何解码APDU上终端与芯片之间的通信?

标签 terminal smartcard apdu smartcard-reader emv

我在 APDU 上的终端和芯片之间有一次通信,我需要对该通信进行解码。

事情是这样的:

Terminal: 00 B6 02 00 06 00
Chip: 49 55 7B 2C 1F 30 57 35 63 7D 24 7B 60 21
Terminal:00 B5 03 0B 04 02 00
Chip:45 43 3C 3B 4A 31 51 35 53 4B 34 2C 30 21 

据我所知,终端正在向智能卡芯片发送命令,智能卡芯片正在做出响应。 所以,我需要知道他们的沟通内容是什么。这与EMV标准和APDU有关。

如何解码它?步骤和规则是什么?

最佳答案

芯片和终端之间的通信使用APDU。命令 APDU 和响应 APDU。下面将向您介绍消息的结构。详细阅读请从 here 下载文档(在 emv 世界中称为书籍)。 。事实上,以下内容是从第 3 册中复制粘贴的。请详细查看,如果您需要更多信息,请回来。

所有数据均为十六进制。

  • 命令 APDU 具有以下格式。

[Class] [Instruction] [Parameter 1] [Parameter 2] [Length of command Data] [Command]

[最大预期数据响应长度]

  • 响应 APDU 的格式为

[Data] [2 bytes status of APDU execution( See coding of Sw1 Sw2 below]

  • 类字节的编码

类字节的最高有效半字节指示命令的类型。 0' 行业间命令,'8' 本规范专有。

  • 指令字节定义您想要执行的功能。编码的 指令字节是 enter image description here

enter image description here

关于terminal - 如何解码APDU上终端与芯片之间的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566369/

相关文章:

authentication - 什么是私钥挑战?

javacard - 如何在没有卡的情况下向智能卡读卡器(而不是智能卡)发送命令?

smartcard - 我应该使用哪个APDU命令来取消当前正在执行的读取记录?

python - while循环python故障

git - 如何更改 Git 的默认编辑器

ssh - Debian 上的 GPG key 转发

smartcard - 智能卡中的逻辑 channel

ssh - 粘贴到 SSH 终端将最后一个字符大写,并且不允许我对其进行编辑

python - nltk.grammar.is_terminal ('str' ) 总是返回 true?

smartcard - APDU 命令可以在 Java 卡小程序*内部*执行吗?