模擬加密NFC卡片方法

手機(jī)上全功能NFC的好處,當(dāng)然就是可以模擬各種門禁卡和飯卡了。小米錢包自帶的NFC卡模擬功能和ROM結(jié)合,使用時(shí)更是雙擊喚起且隨意切換,十分好用。這里記錄了幾天來摸索的經(jīng)驗(yàn),供其他正在研究的同學(xué)參考。

1. 準(zhǔn)備工作

  • PN532模塊。淘寶上30塊買焊接好的帶USB延長線的即可。
  • 白卡1張。用來做手機(jī)卡模擬的橋梁
  • 全功能NFC手機(jī)一臺(tái)。小米系列手機(jī)是首選,其他品牌手機(jī)未測試。

2. 模擬非加密卡的流程

模擬非加密卡很簡單,直接打開小米錢包,選擇門卡->模擬門卡。根據(jù)系統(tǒng)指示直接將非加密卡放在手機(jī)NFC感應(yīng)區(qū),系統(tǒng)會(huì)自動(dòng)識(shí)別并生成模擬卡。這里需要注意一點(diǎn),有時(shí)手機(jī)讀的可能卡信息可能不完整,最好在電腦上用PN532模塊再讀一邊模擬出來的卡,如果數(shù)據(jù)一致那就沒有問題;否則還需要?jiǎng)h除此卡后重新模擬。

3. 模擬加密卡的一般流程

小米錢包的門卡模擬,只支持非加密卡,如果是加密卡就不能直接模擬,此時(shí)就需要用到PN532的強(qiáng)大解密功能了。玩NFC的朋友都知道,NFC的1類卡有非加密、部分加密和全加密這幾種。部分加密是在某幾個(gè)扇區(qū)使用了非公開的密鑰,而全部加密是所有扇區(qū)都使用了私有的密鑰。解密的原理網(wǎng)上很多,這里只介紹具體操作流程:

  1. 用PN532解密部分加密的NFC卡,保存為A.dump文件
  2. 將A.dump文件中的0扇區(qū)0行,即此卡的ID數(shù)據(jù)復(fù)制到一張空白dump文件的同樣區(qū)域,保存為B.dump文件
  3. 將B.dump文件寫入一張物理白卡中
  4. 使用手機(jī)模擬此物理白卡,得到模擬卡b;使用小米錢包的門卡功能,使用PN532讀取模擬卡b的信息,如果能夠讀取,說明模擬有效,否則請(qǐng)重新模擬,以確保正確。
  5. 將A.dump文件寫入模擬卡b中,更新后的模擬卡a即為原來的部分加密NFC卡片。用PN532同樣驗(yàn)證一遍更新后的卡片數(shù)據(jù),如果和原來A.dump一致,那么證明模擬成功。

一般使用PN532上位機(jī)即可有效破解部分加密的卡片,對(duì)于采取了AES非對(duì)稱加固的卡片,則需要借助已知的密鑰,才能順利讀取卡片內(nèi)容。

4. 模擬非對(duì)稱加密卡的方式

發(fā)現(xiàn)手頭上的公司門卡雖然是部分加密,但是竟然不能被PN532上位機(jī)破解,搜了很多資料,都是基于經(jīng)典的MFOC/MFCUK的解決方案,都沒有效果。最后只能翻墻看看國外網(wǎng)友怎么說,果然在github上找到了一個(gè)叫做miLazyCracker的方案,可完成傻瓜式暴力破解。

4.1 安裝miLazyCracker

  1. 下載地址:https://github.com/nfc-tools/miLazyCracker
  2. CraptEV1文件可自行下載 度盤鏈接 提取碼: 7vjj
  3. Linux上安裝libnfc驅(qū)動(dòng),參考見 這篇簡書
  4. Linux上安裝miLazyCracker,就一行命令:./miLazyCrackerFreshInstall.sh

4.2 使用miLazyCracker

安裝完畢后,創(chuàng)建一個(gè)臨時(shí)目錄,既可以開始暴力破解了

mkdir mydumps
cd mydumps
miLazyCracker

4.3 卡模擬

miLazyCracker解密后,即可獲得加密扇區(qū)的密鑰和完整的dump文件。導(dǎo)入到PN532上位機(jī)中,然后再讀取卡片,即可順利獲取完整卡片數(shù)據(jù)。然后再按第三章節(jié)的方式,使用過度卡來完成模擬操作。最后記得再使用PN532讀一下手機(jī)模擬出來的卡片,以確認(rèn)正確哦。

寫在最后

NFC模擬幫助我減輕了日常出行所需攜帶的卡片數(shù)量,配合智能門鎖,我甚至可以不需要帶鑰匙和門卡出門了。以上所述的PN532以及miLazyCracker都只是工具,如果用于提升生活出行便利目的,那可能是工具制作者希望看到的;絕不可用于任何非法或者灰色產(chǎn)業(yè)鏈,否則就會(huì)收到道德的譴責(zé)和法律的制裁。

這里強(qiáng)烈推薦在實(shí)際操作之前閱讀 miLazyCracker 作者Kevin Larson寫的ppt(RECON-BRX-2017-Analyzing_Mifare_Classic_Cracking),上面度盤目錄也有。他制作這個(gè)工具是為了說明1類的NFC卡片即使使用AES加密也很不安全,所以應(yīng)該盡量使用更高級(jí)的卡片。不過似乎國內(nèi)還是普遍使用了1類卡片,畢竟成本考慮,一張1類卡才幾毛錢;而且配合云端數(shù)據(jù)庫的讀寫,數(shù)據(jù)本體還是安全的;卡片更多是用來確認(rèn)用戶的身份。所以歸根到底,產(chǎn)品方案上具體使用哪一類技術(shù),恐怕更重要的是出于它的經(jīng)濟(jì)性考慮。

附注:M1類NFC卡片的0扇區(qū)格式:前4個(gè)字節(jié)為卡片UID,模擬時(shí)只看這4位;第5位是校驗(yàn)位;第6位開始到第16位是廠商數(shù)據(jù)。不知道是不是巧合,我手頭的幾張卡片第6-8位基本都是 08 04 00,只有一張是 88 04 00。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容