問(wèn)題提法不太準(zhǔn)確,正常說(shuō)法應(yīng)該是:如何用手機(jī)NFC替代門禁卡。之前奇客已回答過(guò)NFC手機(jī)模擬加密門卡的問(wèn)題,這里要特別說(shuō)明的是,我們常用的門卡大多是IC/ID卡,比較高端的CPU卡,由于內(nèi)置芯片不一樣,并非所有智能卡都能用手機(jī)NFC模擬。
NFC通信安全系數(shù)較高,華為小米等安卓手機(jī)加入這項(xiàng)功能,使移動(dòng)支付、模擬卡等應(yīng)用場(chǎng)景得到豐富。乘公交、商超購(gòu)物、入戶門禁,刷手機(jī)就能實(shí)現(xiàn),當(dāng)然比攜帶實(shí)體卡片更方便些。不考慮藍(lán)牙解鎖、APP云端開(kāi)門的情況下,NFC手機(jī)充當(dāng)門卡無(wú)疑是很多用戶希望擁有的功能。那么,NFC能替代小區(qū)門禁卡嗎?
安卓NFC手機(jī)復(fù)制加密門卡教程
對(duì)于加密小區(qū)門卡,如果物業(yè)不給授權(quán),不幫我們寫手機(jī)NFC虛擬卡,那就沒(méi)辦法了?當(dāng)然不是。如果物業(yè)發(fā)的門卡要驗(yàn)證廠商碼,我們就無(wú)法使用手機(jī)NFC來(lái)模擬,沒(méi)有廠商號(hào)復(fù)制卡才有用。在合法使用前提下,業(yè)主可以嘗試解密克隆門卡,還可以幫其他鄰居復(fù)制門卡。只是,你把物業(yè)的事給干了,導(dǎo)致他們的卡賣不出去,他們會(huì)怎么想。
▲從門卡外觀可以簡(jiǎn)單分辨卡類型,無(wú)編號(hào)的藍(lán)色鑰匙扣一般是IC芯片。從天線形狀分辨適用于標(biāo)準(zhǔn)大卡(身份證尺寸),小卡、異形卡、酒店房卡(特殊加密卡、滾動(dòng)碼不可復(fù)制)除外。
NFC手機(jī)模擬加密門卡
設(shè)備:一體式PN532讀寫器(功能更加大的PM3,支持低頻/高頻兩種RFID卡),小米NFC手機(jī)或NFC手環(huán),被模擬的門禁卡/電梯卡,
軟件:PL2303驅(qū)動(dòng)程序先裝,蛐蛐GUI/NFC上位機(jī)軟件(后者半加密卡可搞定,安卓手機(jī)端有NFC Tools),M1卡分析助手,空卡dump文件
需要以上套裝可以PM
1、解密門禁卡
使用PN532對(duì)被模擬的門禁卡進(jìn)行解密操作,獲得dump文件。市面上多數(shù)IC卡都是半加密,PN532解密成功率達(dá)90%,而全加密卡(16個(gè)扇區(qū)都有特殊密碼)不一定能破解。
如圖運(yùn)行蛐蛐2.1,將門禁卡放在,使用默認(rèn)密鑰讀取,如果解密成功軟件根目錄自動(dòng)生成key.dump文件(包含加密信息,重命名為門卡.dump)。如果運(yùn)行1小時(shí)以上無(wú)密鑰信息,就只能嘗試PM3解密。
2、制作模擬卡
使用蛐蛐將空卡dump文件寫入門禁卡,即瀏覽打開(kāi)空卡dump后執(zhí)行寫卡操作。如果你沒(méi)有空卡dump文件,也可以用UltraEdit編輯器打開(kāi)dump,將16個(gè)扇區(qū)16對(duì)Key記錄下來(lái)(每扇區(qū)4塊一共64行數(shù)據(jù),扇區(qū)最后一行開(kāi)頭12位為Key A,末尾12位為Key B),再將所有Key都改為FF,然后另存為空卡dump,繼續(xù)寫卡操作。
3、用手機(jī)模擬空白門卡
打開(kāi)小米錢包,進(jìn)入門卡模擬,檢測(cè)成功通過(guò)身份認(rèn)證,1分鐘即可模擬空卡。PS:非加密門卡這一步直接模擬就行了。
4、寫入加密數(shù)據(jù)
將門禁卡放在PN532讀寫器上,再次使用已知密鑰讀取,完成后瀏覽打開(kāi)第1步保存的門卡.dump文件,然后拿走門禁卡,雙擊小米手機(jī)HOME鍵調(diào)出NFC模擬卡界面,并將背面NFC感應(yīng)區(qū)放在PN532上面,點(diǎn)擊寫卡開(kāi)始寫入加密信息,寫入完成以后就可以拿手機(jī)去測(cè)試刷卡了。
用同樣方法,小米手環(huán)也可以間接復(fù)制加密的IC卡(前提是能解密),但是改不了0扇區(qū)0塊后16位,也就是廠商碼。如果你的門禁系統(tǒng)不校驗(yàn)廠商碼或者不使用滾動(dòng)碼,那就能用,反之就不能用,還是老老實(shí)實(shí)用實(shí)體卡吧。
蘋果手機(jī)NFC不能直接模擬門卡
蘋果手機(jī)Apple Pay在開(kāi)通銀行卡支付時(shí),不會(huì)直接使用卡號(hào),而是分配一個(gè)獨(dú)有的設(shè)備賬戶號(hào)碼,這個(gè)號(hào)碼經(jīng)加密儲(chǔ)存在專用安全芯片中,支付時(shí)該設(shè)備碼被讀取出來(lái),這樣不會(huì)泄露真實(shí)卡片信息。由于iOS系統(tǒng)的封閉性,蘋果未開(kāi)放NFC端口,所以無(wú)法用NFC模擬門卡。不過(guò),在后續(xù)升級(jí)新版iOS 12中,蘋果或?qū)⒗^續(xù)開(kāi)放NFC權(quán)限,畢竟iOS 11更新已加入支持模擬北京上海公交卡。
另外,iPhone NFC設(shè)備賬號(hào)碼可以被嗅探出來(lái),某些RFID讀寫設(shè)備(結(jié)合調(diào)試軟件)能夠獲取到變換UID和銀行卡號(hào),將NFC模擬銀行卡卡號(hào)寫成智能門鎖的密碼,也能實(shí)現(xiàn)用蘋果手機(jī)開(kāi)門的目的。因?yàn)椴少?gòu)設(shè)備就要花上百元,普通消費(fèi)者沒(méi)時(shí)間折騰這事。
這個(gè)做法涉及Android NFC APDU指令,目前僅限于開(kāi)發(fā)學(xué)習(xí),有興趣的朋友自己研究。需自行開(kāi)發(fā)Reader功能,讀取銀行卡卡號(hào)需要發(fā)送兩條APDU指令。
第一條:復(fù)位指令。復(fù)位指令分兩種情況:
借記卡:00A4040008A000000333010101
貸記卡:00A4040008A000000333010102
如果成功會(huì)返回一個(gè)大于2字節(jié)并且以9000結(jié)尾的數(shù)據(jù),否則會(huì)返回一個(gè)2字節(jié)非9000結(jié)尾的數(shù)據(jù)。
第二條:發(fā)送獲取銀行卡卡號(hào)的指令,借記卡和貸記卡都是:00B2011400
如果指令正確執(zhí)行會(huì)返回以70開(kāi)頭、9000結(jié)尾的數(shù)據(jù),這串?dāng)?shù)據(jù)里包含有銀行卡卡號(hào)。
ADPU指令還可以獲取手機(jī)電子錢包余額,有興趣者可以閱讀這篇文章https://blog.csdn.net/u012158332/article/details/75608212
提取卡號(hào)的方法:尋找標(biāo)識(shí)5A,5A后面一個(gè)字節(jié)為銀行卡卡號(hào)的長(zhǎng)度,緊跟著就是銀行卡卡號(hào)。需要注意的是,如果提取到的卡號(hào)最后一位為F應(yīng)舍棄掉。
▲知乎上有個(gè)問(wèn)題介紹了NFC手機(jī)獲取銀行卡信息,經(jīng)過(guò)測(cè)試結(jié)果如上圖。當(dāng)然泄露這些信息不會(huì)直接導(dǎo)致資金被盜(不過(guò)你最近交易記錄,如果老婆能查到呢,哇嘎),銀行卡要靠近手機(jī)特定NFC感應(yīng)區(qū),超過(guò)5cm讀出的概率就很低了。
目前主流NFC功能手機(jī)及可穿戴設(shè)備
蘋果:iPhone 6/6 Plus,6s/6s Plus,7/7 Plus,8/8 Plus,X/Xr/Xs/Xs Max,Apple Watch
華為:Ascend P10/P10 Plus/P20, Mate 7/8/9/10/20,榮耀 6/6 Plus高配版/8/9/10/V10/Note 10/Play/Magic2/V20,Nova 2s,麥芒6,榮耀手環(huán)4 NFC版,榮耀手表
小米:5/5s/5s Plus/6/8,Note 2/3,MIX 1/2/2s/3,小米手環(huán)3代NFC版
三星:Galaxy C5/C7/C9, Note 3/4/8/II,S5/S6/S7/S8/S9,W2018/W2019,A8s,A9 Star(Lite),J3
魅族:MX4 Pro,Pro 5/6 Plus,16s
一加:3/3T,5/5T,6/6T
HTC:One M8/M9/Max/VX/X/XL,U Play/Ultra,U11,U12+
OPPO:R17,F(xiàn)ind 7/9,A37
其他:VIVO Xplay,聯(lián)想Z5Pro,堅(jiān)果R1,努比亞Z11/Z17(s/mini),ROG 游戲手機(jī),金立M7/M2017,中興天機(jī)7s,諾基亞7/8 Sirocco,索尼Xperia XZ2,Moto Z3,LG V30,夏普S2