交易流程与日志记录:终端交易流程、卡片交互过程、日志记录触发点、关键事件标记

各位好,我是老张。今天咱们聊聊交易流程和日志记录。说实话,这个主题是EMV取证的核心中的核心。你想想看,没有日志,你拿什么去分析?我见过太多人,一上来就盯着数据看,结果连交易流程都没搞清楚,分析出来的结论全是错的。

嗯,咱们先理清一个概念。EMV交易不是简单的「刷卡-输密码-完成」。它是一套复杂的交互协议。终端和卡片之间,要来回对话好几次。每一次对话,都会产生日志记录。这些记录,就是咱们破案的线索。

终端交易流程:从插卡到完成

我个人习惯把终端交易流程分成三个阶段:应用选择、脱机数据认证、联机处理。当然,还有最后的交易完成。但核心就是这三个。

第一阶段,应用选择。卡片插进去,终端先问:「你支持哪些应用?」卡片回答:「我支持借记、贷记、还有电子现金。」终端再根据自身配置,选一个双方都支持的。这个阶段,日志里会记录AID(应用标识符)。

第二阶段,脱机数据认证。终端验证卡片是不是真的。这里分SDA、DDA、CDA几种方式。说白了,就是终端检查卡片上的签名。我在项目中遇到过,有些盗刷卡就是在这个阶段被拦下来的。日志里会记录认证结果,比如「SDA成功」或「DDA失败」。

第三阶段,联机处理。如果脱机认证没过,或者金额超限,终端就发起联机请求。数据包发到发卡行,等授权。日志里会记录联机响应码,比如「00」表示批准,「05」表示拒绝。

关键点: 每个阶段都有对应的日志记录。你分析的时候,要按时间线把日志串起来。别跳着看,容易漏掉关键信息。

卡片交互过程:APDU命令的你来我往

卡片和终端怎么通信?靠APDU命令。终端发命令,卡片回响应。就这么简单。但命令的种类很多,我挑几个重要的说。

  • SELECT命令: 选应用。终端发「00 A4 04 00」,卡片回「6F...」包含应用信息。
  • GET DATA命令: 取数据。比如取卡片序列号、取证书。
  • VERIFY命令: 验证PIN。终端发「00 20 00 80」,卡片回「90 00」表示成功。
  • GENERATE AC命令: 生成应用密文。这是最关键的,交易授权就靠它。

为什么会这样?因为每一条APDU命令,都会在日志里留下痕迹。你想想看,如果日志里缺少了某条命令,或者命令的顺序不对,那交易肯定有问题。

避坑指南: 我曾经遇到过一个案例,日志里显示GENERATE AC命令发了两次。第一次返回了「61XX」,表示还有数据没读完。但终端没继续读,直接发了第二次。结果交易被拒绝。这就是典型的实现bug。

日志记录触发点:什么时候写日志?

日志不是随便写的。每个触发点都有讲究。我总结了一下,主要有这么几个触发点:

触发点 触发条件 记录内容
卡片插入 物理插卡或NFC检测到卡片 卡片ATR、ATS、历史字节
应用选择 SELECT命令执行后 AID、应用标签、优先级
数据认证 SDA/DDA/CDA执行后 认证结果、证书序列号
PIN输入 VERIFY命令执行后 PIN尝试次数、结果
联机请求 终端发起联机 交易金额、货币代码、终端号
联机响应 收到发卡行响应 响应码、授权码、ARQC
交易完成 GENERATE AC返回 TC/ARQC/AAC、应用密文

嗯,这里要注意。不是所有终端都会记录所有触发点。有些低端终端,可能只记录联机请求和响应。那分析起来就费劲了。我建议,拿到日志先看开头,有没有卡片插入的记录。如果没有,那这日志可能不完整。

关键事件标记:日志里的「路标」

日志里有很多关键事件标记。这些标记就像路标,告诉你交易走到哪一步了。我常用的几个标记:

  • 「Application Selection」: 应用选择完成。后面跟着AID。
  • 「Offline Data Authentication」: 脱机认证开始。后面跟着认证类型。
  • 「Cardholder Verification」: 持卡人验证。后面跟着验证方法(PIN、签名、无)。
  • 「Terminal Risk Management」: 终端风险管理。后面跟着风险参数。
  • 「Online Processing」: 联机处理。后面跟着联机数据。
  • 「Completion」: 交易完成。后面跟着TC或AAC。

我个人习惯,拿到日志先找这些标记。把它们按时间顺序列出来,交易流程就一目了然了。比如,如果看到「Offline Data Authentication」后面跟着「Failed」,那就不用往下看了,交易肯定被拒绝。

警告: 有些日志里,关键事件标记可能被省略。比如,终端只记录「Online Processing」,不记录前面的「Application Selection」。这时候,你要通过APDU命令来推断。比如,看到SELECT命令,就知道应用选择开始了。

知识体系框架图

下面这张图,是我自己画的。它把交易流程、卡片交互、日志触发点、关键事件标记串在了一起。你保存下来,分析日志时对照着看。

EMV交易流程与日志记录知识体系 第一阶段:应用选择 SELECT命令 日志记录:AID、应用标签 第二阶段:脱机认证 SDA/DDA/CDA 日志记录:认证结果 第三阶段:联机处理 联机请求/响应 日志记录:响应码 卡片交互过程(APDU命令) SELECT GET DATA VERIFY GENERATE AC 日志记录触发点 卡片插入 → 应用选择 → 数据认证 → PIN输入 → 联机请求 → 联机响应 → 交易完成 关键事件标记 Application Selection | Offline Data Authentication | Cardholder Verification | Terminal Risk Management | Online Processing | Completion

这张图,说白了就是咱们分析日志的导航图。你拿着日志,对照着图,一步一步走。走到哪一步卡住了,问题就在哪一步。

个人经验: 我刚开始做EMV取证时,拿到日志就懵了。几百行数据,不知道从哪看起。后来我画了这张图,每次分析前先看一遍,心里就有底了。你也试试。

好了,今天就聊到这。记住,日志分析不是看数据,是看流程。流程对了,数据自然就对了。流程错了,数据再漂亮也没用。


专注资料整理