EMV ODA详解
1. 选应用 SELECT(选 AID) 2. 发起处理 GPO(拿 AIP、AFL) 3. 读应用数据 READ RECORD 4. 离线数据认证 ODA(SDA / DDA / CDA) 5. 处理限制 Processing Restrictions 6. 持卡人验证 CVM(PIN / 签名 / No-CVM) 7. 终端风险管理 TRM 8. 终端行为分析 TAA(TVR + TAC → 拒/联机/批准) 9. 第一次 GEN AC 要 AAC / ARQC / TC 10. 联机授权 (若要 ARQC,送发卡行) 11. 第二次 GEN AC (联机后,要 TC 或 AAC) 12. 交易完成 写记录、拔卡等
CDA(复合认证,分两类)
1)SDA+CDA 主流卡:静态 SDA 前置校验(GAC 前),动态 SDAD 校验在 GAC 返回后;
2)纯 CDA 无 SDA 卡:无前置 SDA,全部静态数据完整性校验依赖 GAC 返回的 SDAD 解密比对,TVR CDA Failed 在 GAC 后置位。
ODA(Offline Data Authentication,离线数据认证) 是 EMV 在不联机的情况下,终端验证「这张卡/这些数据是不是真的」的一套机制总称。

SDA:用发卡行公钥校验卡片的完整性,用CA保证发卡行公钥的真实性,无法保证卡片被复制的情况
1. 验证卡片静态数据完整性: 发卡行私钥签 签名SD → SSAD 写在卡上; 终端用发卡行公钥验 SSAD。
2. 读 SD + SSAD,发公验签得 H1,自己 Hash(SD)=H2,相同 → 未篡改 3. 能保证数据完整性;但无法单独保证「是真卡」。 4. 为防止发卡行公被伪造,引入 CA: CA 私钥签「发卡行公钥证书」,证书在 ICC 上。 5. 终端用 CAPK 验证书 → 得到可信的发卡行公钥 → 再去做第 2 步。
DDA:DDA(Dynamic Data Authentication,动态数据认证) 在 SDA 基础上多了一步:让卡用 ICC 私钥当场签名,证明 「真卡在场、且有私钥」。

CA 私钥
└── 签 ──► 发卡行公钥证书
│
发卡行私钥 │
└── 签 ──► ICC 公钥证书(9F46)
│
└── 里面是 ICC 公钥(模数、指数等)
ICC 私钥:在芯片里,用来 DDA/CDA 现场签名,不用于签自己的证书
防 ICC 被复制,依靠 DDA:
1:终端在取得可信 ICC 公钥后,生成每次不同的随机数发给卡片,由芯片内无法导出的 ICC 私钥当场签名,终端再用 ICC 公钥验签——克隆卡只能复制证书和静态数据,复制不了私钥,因而无法通过验证。
2:为保证终端使用的 ICC 公钥未被篡改,EMV 采用 CA → 发卡行 → ICC 的两级证书链:终端预装 CA 公钥(CAPK),先用其验证卡上的发卡行公钥证书并取得发卡行公钥,再用发卡行公钥验证 ICC 公钥证书并取得 ICC 公钥;
3:其中发卡行公钥证书由 CA 私钥签名,ICC 公钥证书由发卡行私钥签名。引入发卡行这一中间层,并非技术上 CA 不能直签 ICC,而是出于规模与分工——卡组织只需对少量发卡行背书,各发卡行再为自己发行的海量卡片签发 ICC 证书,既保证信任可追溯,又避免 CA 为每张卡直接签发的不可行。
4:综上,证书链解决「ICC 公钥是否可信」,DDA 解决「是否为真卡在场」,二者结合才能有效防范芯片复制。
CDA:CDA(Combined Data Authentication,组合动态数据认证) 把 静态数据认证 和 动态数据认证 合成一步,并且和 GENERATE AC(产生应用密文) 绑在一起。
DDA:在 INTERNAL AUTHENTICATE 那一刻,能证明「真卡在场、能对本次 UN 签名」 到 GEN AC:要产生这笔交易的 ARQC/TC/AAC 但 DDA 的验卡结果 没有和密码文绑在一起 所以中间人可以在两步之间动手脚,或者让 GEN AC 用的数据和 DDA 时不是同一套 → 「之前验过真卡」≠ 「现在这张 AC 一定是真卡对这笔交易签的」
SDA:只验静态数据(不防克隆) DDA:随机挑战 + ICC 私钥签名(防克隆) CDA:静态 + 动态一起验,且绑在 GEN AC 里(现在主流)

为什么CVMlist改变会CDA失败:
① 终端 READ RECORD 得到假 8E 拼上其它静态数据 → Hash_fake(本地计算) ② GEN AC 卡用 ICC 私钥对「真静态数据(含真 8E)+ 交易动态数据」签名 返回 AC + 签名(不单独返回 hashReal) ③ 终端用 ICC 公钥验签 把 Hash_fake + 动态数据代入 Verify → 和卡用真数据签出来的绑定点对不上 → 验签失败 → CDA failed

浙公网安备 33010602011771号