RFID 卡片防復制


RFID 卡片防復制

這里的卡指的 MIFARE Classic 系列 或 NTAG 系列的卡。其它的卡沒接觸過,不了解。

防偽有兩層意義:

  1. 卡片防復制。比如小區卡被復制,使得出入小區的人員管理更困難了。這是需要防范的事情
  2. 卡片數據被破解。比如公交卡或食堂飯卡,如果破解了其中的數據,就可以篡改金額。

復制會產生盜刷問題,需要在第一層解決。而卡內數據加密是應用層的工作,方式方法多種多樣。

這里討論卡片防復制,以小區卡為場景。

只使用卡UID系統

這種就是沒有加密了。把卡當作 ID 卡來用。

復制方法:

讀出原卡 UID。 找一張可以擦寫 UID 的特殊卡,寫入 UID。

一般從廠商出來的卡片第0扇區第0塊不可寫,在這塊中存儲UID和廠商信息。但是塊0可重復擦寫的卡也可以找到,只是對於普通人稍微有點難度而已。

對於小區卡來,被復制會帶來隱患,比如:

用戶可以隨意復制卡,卡片最后流通就不一定是小區的住戶了。
如果被小區以外的人有一張復制卡,則可隨意進出小區,帶來安全隱患

使用卡中的數據,且數據被加密,加密使用 UID 作因子

因為不再只使用 UID,這樣系統設計時可以把用戶權限寫在卡里,從而不需要向門禁設備里同步了。

用法稍微高級一點。卡中的數據別人看不懂,但並沒有加大卡片被復制的難度。

復制方法同上:

讀出原卡所有數據。 找一張可以擦寫 UID 的特殊卡,寫入包括 UID 在內的所有數據。

別人無法破解卡中的數據,但還是有方法復制一張卡

在上一步基礎上,使用卡片本身的加密方法

  1. MIFARE CLASSIC 系統的卡,每個扇區都是獨立加密的。需要 KEYA, KEYB 校驗正確才能讀
  2. NTAG 系列的卡,有一個 32 bits 的 password 功能。可以配置成通過密碼驗證之后才允許讀

以 NTAG 為例。

每張卡有 32 bits 的密碼,只可校驗,讀出只能得到 0。
在發卡時,以 UID 再組合特定的密鑰因子,為這張卡生成 32 bits 的 password。
每張卡的密碼不同,密碼不能復制,密碼校驗不通過就不能讀卡。

在這種機制下,想復制一張卡的難度就進一步加大了。

結論

  1. 結合卡 UID 對數據加密,提高復制成本
  2. 使用卡片的加密功能,防復制

參考文章

RFID安全技術探討
RFID的安全與隱私
NFC標簽如何實現防偽?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM