You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ATR从Springcard读卡器识别CTS/CD_97/ISO_A/ISO_B/FRD卡类型?

Got it, let’s break down exactly how to identify those card types (CTS, CD_97, ISO_A, ISO_B, FRD) from their ATRs. First, a quick refresher: an ATR (Answer To Reset) is the sequence of bytes a smart card sends when powered on, packed with details about its protocol, system, and capabilities.

Core ATR Components for Identification

Before diving into specific card types, let’s cover the key parts of an ATR you’ll need to analyze:

  • TS (Initial Character): The first byte, tells you the communication mode (e.g., 0x3B = asynchronous half-duplex, the most common for your examples).
  • T0 (Format Byte): Second byte, splits into two 4-bit segments:
    • High 4 bits: Number of interface bytes (TA1, TB1, TC1, TD1) to expect.
    • Low 4 bits: Length of the historical bytes (the payload with card-specific info).
  • TDx (Interface Bytes): These define the card’s protocol (ISO A/B) and whether more interface bytes follow. The lower 4 bits of a TD byte indicate the protocol:
    • 0x0 = ISO/IEC 7816-4 Type A
    • 0x1 = ISO/IEC 7816-4 Type B
  • Historical Bytes: The main payload where card system identifiers (like Calypso or Navigo markers) live.
  • TCK (Checksum Byte): Final byte, validates the ATR’s integrity.
Target Card Type Identification Rules

Let’s map each card type to concrete checks you can run against an ATR:

ISO A (ISO/IEC 7816-4 Type A)

  • Checks:
    1. TS byte is 0x3B (asynchronous mode).
    2. The relevant TD byte (usually TD1) has a lower 4-bit value of 0x0.
  • All your provided examples are ISO A cards—we’ll confirm this in the breakdowns below.

ISO B (ISO/IEC 7816-4 Type B)

  • Checks:
    1. TS byte is either 0x3F (synchronous mode) or 0x3B.
    2. The relevant TD byte has a lower 4-bit value of 0x1.
  • None of your examples fit this, but it’s a quick check for future cards.

CTS (Calypso Transport System)

Calypso is a common transit card system (used by Técély and Oura in your examples), and it runs on ISO A.

  • Checks:
    1. First confirm the card is ISO A.
    2. Look for 0x5A in the historical bytes—this is the unique identifier for Calypso’s dedicated file (DF).
    3. You’ll often see additional Calypso markers like 0x0A 0x01 (version info) right after the 0x5A.

FRD (French Réseau de Déplacement, e.g., Navigo)

FRD covers French transit cards like Navigo, also on ISO A.

  • Checks:
    1. Confirm ISO A protocol.
    2. Look for 0x71 in the historical bytes—this is a specific marker for Navigo/FRD network cards.

CD_97

CD_97 typically refers to French debit cards following the 1997 Carte Bleue standard, which uses EMV identifiers in its ATR.

  • Checks:
    1. Confirm ISO A protocol.
    2. Look for the EMV application template tag 0x4F in the historical bytes, followed by an AID (Application Identifier) matching CD_97’s specific sequence (like the A0 00 00 03 ... sequence in your Citycard example).
Example ATR Breakdowns

Let’s apply these rules to your provided ATRs:

  • Identified Type: ISO A + FRD
  • Step-by-Step:
    1. TS=0x3B → asynchronous mode.
    2. T0=0x88 → 1 interface byte (TD1), 8 historical bytes.
    3. TD1=0x80 → lower 4 bits=0x0 → ISO A protocol.
    4. Historical bytes: 01 00 00 00 00 71 81 00 → contains 0x71 → FRD/Navigo marker.
    5. TCK=0xF9 → valid checksum.

Técély: 3B 8F 80 01 80 5A 0A 01 01 20 03 11 10 1D 86 BC 82 90 00 C9

  • Identified Type: ISO A + CTS (Calypso)
  • Step-by-Step:
    1. TS=0x3B → asynchronous mode.
    2. T0=0x8F → 1 interface byte (TD1), 15 historical bytes.
    3. TD1=0x80 → lower 4 bits=0x0 → ISO A protocol.
    4. Historical bytes: 80 5A 0A 01 01 20 03 11 10 1D 86 BC 82 90 00 → contains 0x5A + 0x0A 0x01 → Calypso/CTS marker.
    5. TCK=0xC9 → valid checksum.

Oura: 3B 8F 80 01 80 5A 0A 01 02 20 03 11 03 53 52 A2 82 90 00 5D

  • Identified Type: ISO A + CTS (Calypso)
  • Step-by-Step:
    1. Same ISO A confirmation as Técély.
    2. Historical bytes start with 0x5A → clear Calypso/CTS marker.

Citycard: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 02 00 00 00 00 69

  • Identified Type: ISO A + CD_97
  • Step-by-Step:
    1. TS=0x3B, TD1=0x80 → ISO A protocol.
    2. Historical bytes: 80 4F 0C A0 00 00 03 06 03 00 02 00 00 00 00 → 0x4F is the EMV application template tag, followed by the CD_97-specific AID A0 00 00 03 ....
    3. TCK=0x69 → valid checksum.

内容的提问来源于stack exchange,提问作者haythem souissi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:33:44