最近公司有同事刷門禁的時候用了手環,對於咱們這種見識短的農民工,B 格瞬間 MAX,據他們說公司的門禁卡是非加密卡,能夠直接模擬,那麼加密卡是否能夠模擬呢?php
產生了這樣疑問的我,懷着 Geek 精神,固然要探索一番,網上關於 NFC 設備模擬加密卡的方式已經有不少了,可是關於基礎知識及原理的解釋不多,因此藉此機會順便梳理一番。固然,若是直接想看模擬加密門禁卡的方式,能夠直接跳到後半段。html
近場通訊技術(Near-field communication,NFC)由非接觸式射頻識別(RFID)演變而來,由飛利浦半導體(現恩智浦半導體)、諾基亞和索尼共同於 2004 年研製開發,其基礎是 RFID 及互連技術。近場通訊是一種短距高頻的無線電技術,在 13.56MHz 頻率運行於 20 釐米距離內。其傳輸速度有 106 Kbit/秒、212 Kbit/秒或者 424 Kbit/秒三種。當前近場通訊已經過成爲 ISO/IEC IS 18092 國際標準、EMCA-340 標準與 ETSI TS 102 190 標準。NFC 採用主動和被動兩種讀取模式。git
每個完整的 NFC 設備能夠用三種模式工做:github
咱們要使用的最核心的功能,就是卡模擬模式,通常智能設備,好比手機、手環都有這個功能。安全
ID 卡全稱身份識別卡(Identification Card),爲低頻卡,工做頻率爲 125KHz-1000Khz(與大部分手機、智能設備工做頻率不一樣,沒法模擬),編號固定,卡號公開,不可寫入數據,逐步淘汰中編輯器
全稱集成電路卡(Integrated Circuit Card),又稱智能卡(Smart Card),工做頻率爲 13.56MHz(與大部分手機 NFC 頻率同樣,可模擬),可讀寫,容量大,可加密,在身份認證、銀行、電信、公共交通等領域獲得愈來愈多的應用post
這邊講兩個簡單方法:ui
IC 卡有從 0(你們都是從 0 開始數數的) 到 15 共 16 個扇區,每一個扇區有 0 到 3 共 4 個區塊,每一個區塊能夠保存 16 字節的內容
第 0 扇區第 0 塊由製造商寫入,前 4 個字節爲卡號(UID),第 5 個字節爲 UID 的校驗值,後面幾位爲廠商信息(大部分門禁卡只讀取 UID,不會讀取廠商信息,若是讀取廠商信息,那模擬門禁卡就沒轍了)加密
因爲 ID 卡是沒法模擬的,並且逐步被淘汰中,所以本文不作深刻探討,下面介紹一下 IC 卡的幾種類型操作系統
MIFARE Classic 是恩智浦半導體開發的可用於非接觸式智能卡,有 S20,S50(M1),S70 幾種規格。M1 卡容量 1K 字節,每張卡片都有一個 4 字節的全球惟一序列號,0 扇區不能夠修改,其餘扇區可反覆擦寫,卡上數據保存期爲 10 年,可改寫 10 萬次,讀無限次。平常使用的電梯卡、門禁卡等智能卡髮卡商所使用的都是 M1 卡,能夠理解爲物業發的原卡(母卡)。常見校園卡、公交卡等也是 M1 卡。M1 卡僅僅適合髮卡方發新卡使用。
普通 IC 複製卡,能夠重複擦寫全部扇區。UID 可被重複修改,響應後門指令(意味着可被使用後門指令檢測是否爲克隆卡的機器發現),遇到帶有防火牆的讀卡器就會失效。日常去地攤上找老大爺配的門禁卡就是這種。
UID 的升級版,可擦寫防屏蔽卡,能夠重複擦寫全部扇區,不響應後門指令(意味着不容易被反克隆系統發現),能夠繞過防火牆。
不可擦寫防屏蔽卡,此卡的特色 0 扇區只能寫入一次,寫入一次後變成 M1 卡,不能重複利用,修改後和 M1 卡徹底同樣,很難被屏蔽檢測。
高級 IC 複製卡,能夠理解爲是 UID 和 FUID 的合成卡,須要封卡操做,不封卡就是 UID 卡,封卡後就變爲 M1 卡。
CPU 卡芯片內含有一個微處理器,配合操做系統即片上 OS,能夠達到金融級別的安全等級。適用於金融、保險、交警、政府行業等多個領域。CPU 卡由 CPU 部分 7K 以及 M1 部分 1K 組成,最多破解其中 M1 部分,CPU 區域數據沒法破解。實際上因爲 CPU 部分和 M1 部分的數據會交互,因此基本上 CPU 卡沒法破解。
通常的物業公司製做門禁卡,先把採購的 M1 卡的 UID 錄入小區門禁中,隨後將一些加密數據(好比樓棟號,單元號、樓層、有效時間等等)錄入卡片,這樣在對應的刷卡機上,讀取卡片數據以後,即可執行對應的功能。
如今的卡片複製技術,其實就是複製卡片的全部扇區數據,而後將模擬卡的 UID 置爲加密卡的 UID,而後將其他扇區的數據,一併寫入 UID,不過因爲有些卡片中帶有加密時間數據,因此若是你的卡片過時以後,須要從新複製一遍數據,從新模擬。
若是你想要把一張小區門禁卡搞成萬能卡,那麼你須要解密數據,而後對解密後的數據進行修改,(好比修改小區門號、樓棟、樓層、時間等等),再加密寫入模擬卡,這就須要很高的水平,以及不少的時間和精力了,你們量力而行,若是是大佬的話忽略我。。。
因爲大部分 NFC 設備是不支持模擬加密卡的,可是支持數據寫入,可是咱們可使用曲線救國的方式,模擬一張非加密的 UID 卡,而後將加密數據複製以後,直接寫入模擬卡,就 Ok 了!
步驟如圖
看一下購買的 PN532 是串口驅動仍是已經接好了 CH430 轉接芯片,若是是 CH430 的話通常不用裝驅動,其他的可能要裝一下 PL2303 串口驅動,網上不少,隨便找一個下就行
將 PN532 用 USB 與電腦鏈接,打開 MiFareOne Tool,檢測鏈接
將門禁卡與 PN532 接觸,掃描卡片
點擊「一鍵解原卡」,讀取卡片 bump 數據,保存
卡的解密時間根據卡的加密數據會有時間的差別,好比個人運行了大約 288 秒,總之等待就行
高級操做模式 => Hex 編輯器 => 打開剛纔的 bump 數據 => 選擇扇區 0 => 複製第 0 塊的前 8 位數字(原卡的 UID)
高級操做模式 => UID 寫號 => 粘貼剛纔的 8 位數字
此時,同 UID 的普通卡已經制做完成
操做:高級操做模式 => CUID 寫
注意:此時軟件可能會卡,稍稍等一下就好最後就成功了,而後拿着卡去刷門禁吧!