Skip to content

NXP Tag IC Signature 如何運作

NXP 的 Tag IC Signature(又稱 Originality Signature、ECC Signature) 本質上是一個數位簽章(Digital Signature),目的是證明這顆 NFC/RFID IC 是 NXP 原廠生產,而不是仿製晶片。它不是拿來加密資料,也不是用來認證使用者,而是驗證 IC 的真偽


NXP 在生產線上持有一組 ECC 金鑰:

  • Private Key(私鑰)

    • 永遠保存在 NXP
    • 外界不知道
  • Public Key(公鑰)

    • 提供給開發者
    • 用來驗證 Signature

這就是典型的不對稱加密(ECC Digital Signature)。


例如:

04 7A 1C 92 65 4A 80

每顆晶片的 UID 都不同。


NXP 在工廠會使用私鑰對 UID 進行數位簽章:

Signature = Sign(PrivateKey, UID)

例如(非實際資料):

UID
04 7A 1C 92 65 4A 80
ECDSA
Signature
A3 9F ...

Signature 會依照不同產品使用不同的 ECC 曲線與長度,例如:

  • NTAG21x:約 32 Bytes
  • NTAG424 DNA:使用更大的 ECC 曲線,因此 Signature 也較長

Signature 在晶片出廠前就燒錄完成。

之後一般使用者:

  • 不能修改
  • 不能重新計算
  • 只能讀取

因此每張卡都包含:

UID
+
Signature

Reader 驗證流程分成三個步驟。

UID = 04 7A ...

以 NTAG 為例:

READ_SIG (0x3C)

取得:

Signature

Verify(
PublicKey,
UID,
Signature
)

驗證成功:

✓ Genuine NXP IC

驗證失敗:

✗ Fake

整個流程可以完全離線完成,不需要連線至 NXP 伺服器。


因為你沒有:

Private Key

只有 NXP 持有這把私鑰。

即使知道:

  • UID
  • Signature
  • Public Key

也無法反推出 Private Key。

ECC 的安全性正是建立在這件事上。


假設原卡:

UID
04 12 34 56 78 90 AB
Signature
AA BB CC DD ...

自己製作一張卡:

UID
11 22 33 44 ...
Signature ??

因為沒有 Private Key,就無法為新的 UID 產生合法 Signature。

因此驗證:

Verify()
Fail

那直接把 UID 和 Signature 一起複製呢?

Section titled “那直接把 UID 和 Signature 一起複製呢?”

這是很多人第一次看到 Signature 時會想到的問題。

如果 Clone 卡真的能做到:

UID
完全一樣
+
Signature
完全一樣

那 ECC 驗證本身是無法分辨兩者的

原因是 Signature 就是針對該 UID 所產生的合法數位簽章。

Originality Signature 的目的只是證明:

這顆 IC 是由 NXP 生產。

它並不是用來證明:

世界上只有這一張卡存在。

真正的困難在於:

大多數 NXP 原廠 IC:

UID
不可修改

因此仿製卡通常只能:

修改 UID

卻沒有能力產生新的合法 Signature。


若攻擊者使用的是高階模擬器或特殊 Magic Card,能夠同時模擬:

  • 任意 UID
  • 任意 Signature

並且直接複製原卡:

UID
完全相同
Signature
完全相同

那麼如果系統只檢查 Originality Signature,就可能被騙過。

因此高安全性的系統通常還會搭配:

  • Challenge-Response
  • AES Authentication
  • 後端資料庫驗證
  • Transaction Counter
  • Session Key

而不是只依賴 Originality Signature。


Originality Signature 與 Challenge-Response 的差異

Section titled “Originality Signature 與 Challenge-Response 的差異”
Originality SignatureChallenge-Response
驗證 IC 是否為 NXP 原廠驗證目前通訊的是正版 IC
生產時建立一次每次驗證都重新計算
使用 ECC Digital Signature通常使用 AES 或其他對稱式演算法
不需要 IC 持有私鑰運算IC 需要保存 Secret Key 並參與運算
可完全離線驗證需要 Reader 與 IC 互動

Originality Signature 可以視為 IC 的「出生證明」。

  • 證明這顆晶片是由 NXP 生產。
  • Signature 由 NXP 使用 Private Key 對 UID 進行數位簽章。
  • Reader 使用 Public Key 即可驗證真偽。
  • 不需要網路即可完成驗證。

但 Originality Signature 不是防 Clone 機制

如果攻擊者能完整複製 UID + Signature,而 Reader 又只驗證 Originality Signature,那仍可能被欺騙。

因此真正需要高安全性的應用(如門禁、支付、票證等),通常還會搭配 Challenge-Response、AES Authentication 或其他動態驗證機制,以確保目前通訊的是真正持有秘密金鑰的 IC,而不只是擁有一組合法的 UID 與 Signature。