Aes

帶 AES 的 NFC:如何交換密鑰

  • March 10, 2022

幾天以來,我一直在嘗試了解 NFC 設備上的安全協議。我不是安全專業的,我只是一個學生,想了解(另外,英語絕對不是我的母語^^)。

我看到 AES-128 在多個設備上實現,例如 MIFARE DESFire EV1 (and2),但我不明白幾件事:

  1. 密鑰是如何與閱讀器和標籤交換的?AES-128 是一種對稱協議,因此必須在兩個設備之間共享私鑰。我無法理解 - 閱讀文件 - 它是如何工作的。例如,我可以在這裡http://www.ti.com/lit/an/sloa213/sloa213.pdf閱讀使用 AES 進行身份驗證的過程。對不起,我不明白如何共享密鑰和正式使用什麼功能:/
  2. 我不確定既不了解 UID(或帶有 DESFire 的 RID)的含義和實用性。它只是避免複製的唯一編號?但是在 RID 的情況下,如何確保卡不被複製?
  3. 最後,隨機生成器是否已知?我認為它是一個 16 位生成器,是否有可能知道它實現了什麼功能,以及如何選擇鹽(我知道在過去,RGN 是 CRYPTO-1 的一個大問題,我猜方法是知道不同的,但那是已知的嗎?)?

非常感謝 :)

與大多數使用對稱加密的智能卡系統一樣,讀卡器不持有與卡共享的密鑰。它在某種程度上持有一個萬能鑰匙,結合一個卡標識符(例如一些序列號),可以產生一個所謂的多樣化密鑰,它在卡中。這稱為密鑰多樣化(多樣化是使用主密鑰和設備 ID的派生)。這確保即使從卡中提取密鑰也不會洩露其他卡的密鑰。

閱讀器端加密通常由 SAM 執行,可能與類似。

因此 UID/RID 可能是用於多樣化的設備 ID。或不。這不是秘密,通常可以讀取(至少在 EV1 中)並因此被複製,但相關的多樣化密鑰無法讀取,這就是防止複製的原因。

  1. 必須事先交換密鑰。這通常發生在系統設置過程中,並且經常完全離線。
  2. ID 不用於防止複製。讀卡器需要選擇正確的密鑰才能與這張卡通話。
  3. 看來他們有一個TRNG。

引用自:https://crypto.stackexchange.com/questions/44978