小米手環 4 NFC 添加加密門禁卡

背景

最近公司有同事刷門禁的時候用了手環,對於咱們這種見識短的農民工,B 格瞬間 MAX,據他們說公司的門禁卡是非加密卡,能夠直接模擬,那麼加密卡是否能夠模擬呢?php

產生了這樣疑問的我,懷着 Geek 精神,固然要探索一番,網上關於 NFC 設備模擬加密卡的方式已經有不少了,可是關於基礎知識及原理的解釋不多,因此藉此機會順便梳理一番。固然,若是直接想看模擬加密門禁卡的方式,能夠直接跳到後半段。html

相關知識

什麼是 NFC

近場通訊技術(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

  • 卡模擬模式(Card emulation mode)
  • 讀卡器模式(Reader/Writer mode)
  • 點對點模式(P2P mode)

咱們要使用的最核心的功能,就是卡模擬模式,通常智能設備,好比手機、手環都有這個功能。安全

NFC 卡片分類

ID 卡

ID 卡全稱身份識別卡(Identification Card),爲低頻卡,工做頻率爲  125KHz-1000Khz(與大部分手機、智能設備工做頻率不一樣,沒法模擬),編號固定,卡號公開,不可寫入數據,逐步淘汰中編輯器

IC 卡

全稱集成電路卡(Integrated Circuit Card),又稱智能卡(Smart Card),工做頻率爲  13.56MHz(與大部分手機 NFC 頻率同樣,可模擬),可讀寫,容量大,可加密,在身份認證、銀行、電信、公共交通等領域獲得愈來愈多的應用post

如何區分 ID 卡和 IC 卡

這邊講兩個簡單方法:ui

  1. 要是扣卡外觀刻有數字 00 開頭的 十、八、18 位數字,可斷定此卡是 ID 卡
  2. 帶 NFC 功能的安卓手機,會對 IC 卡產生感應,由此能夠用來分辨 IC 卡和 ID 卡

IC 卡數據存儲簡介

IC 卡有從 0(你們都是從 0 開始數數的) 到 15 共 16 個扇區,每一個扇區有 0 到 3 共 4 個區塊,每一個區塊能夠保存 16 字節的內容


第 0 扇區第 0 塊由製造商寫入,前 4 個字節爲卡號(UID),第 5 個字節爲 UID 的校驗值,後面幾位爲廠商信息(大部分門禁卡只讀取 UID,不會讀取廠商信息,若是讀取廠商信息,那模擬門禁卡就沒轍了)加密




每一個扇區第 3 塊(尾塊)由 A 密鑰(前 6 個字節)+控制位(中間 4 個字節)+B 密鑰(後 6 個字節)組成,其中控制位用於管理兩個密鑰的用途,及該扇區各塊讀寫權限


扇區的其他區塊,則是用來存儲各式各樣的數據的,好比樓棟號,單元號、樓層、有效時間等等。

IC 卡類型

因爲 ID 卡是沒法模擬的,並且逐步被淘汰中,所以本文不作深刻探討,下面介紹一下 IC 卡的幾種類型操作系統

Mifare S50(M1)

MIFARE Classic 是恩智浦半導體開發的可用於非接觸式智能卡,有 S20,S50(M1),S70 幾種規格。M1 卡容量 1K 字節,每張卡片都有一個 4 字節的全球惟一序列號,0 扇區不能夠修改,其餘扇區可反覆擦寫,卡上數據保存期爲 10 年,可改寫 10 萬次,讀無限次。平常使用的電梯卡、門禁卡等智能卡髮卡商所使用的都是 M1 卡,能夠理解爲物業發的原卡(母卡)。常見校園卡、公交卡等也是 M1 卡。M1 卡僅僅適合髮卡方發新卡使用。

UID 卡

普通 IC 複製卡,能夠重複擦寫全部扇區。UID 可被重複修改,響應後門指令(意味着可被使用後門指令檢測是否爲克隆卡的機器發現),遇到帶有防火牆的讀卡器就會失效。日常去地攤上找老大爺配的門禁卡就是這種。

CUID 卡

UID 的升級版,可擦寫防屏蔽卡,能夠重複擦寫全部扇區,不響應後門指令(意味着不容易被反克隆系統發現),能夠繞過防火牆。

FUID 卡

不可擦寫防屏蔽卡,此卡的特色 0 扇區只能寫入一次,寫入一次後變成 M1 卡,不能重複利用,修改後和 M1 卡徹底同樣,很難被屏蔽檢測。

UFUID 卡

高級 IC 複製卡,能夠理解爲是 UID 和 FUID 的合成卡,須要封卡操做,不封卡就是 UID 卡,封卡後就變爲 M1 卡。

CPU 卡

CPU 卡芯片內含有一個微處理器,配合操做系統即片上 OS,能夠達到金融級別的安全等級。適用於金融、保險、交警、政府行業等多個領域。CPU 卡由 CPU 部分 7K 以及 M1 部分 1K 組成,最多破解其中 M1 部分,CPU 區域數據沒法破解。實際上因爲 CPU 部分和 M1 部分的數據會交互,因此基本上 CPU 卡沒法破解。

模擬原理

門禁卡通常製做流程

通常的物業公司製做門禁卡,先把採購的 M1 卡的 UID 錄入小區門禁中,隨後將一些加密數據(好比樓棟號,單元號、樓層、有效時間等等)錄入卡片,這樣在對應的刷卡機上,讀取卡片數據以後,即可執行對應的功能。

複製流程

如今的卡片複製技術,其實就是複製卡片的全部扇區數據,而後將模擬卡的 UID 置爲加密卡的 UID,而後將其他扇區的數據,一併寫入 UID,不過因爲有些卡片中帶有加密時間數據,因此若是你的卡片過時以後,須要從新複製一遍數據,從新模擬。

若是你想要把一張小區門禁卡搞成萬能卡,那麼你須要解密數據,而後對解密後的數據進行修改,(好比修改小區門號、樓棟、樓層、時間等等),再加密寫入模擬卡,這就須要很高的水平,以及不少的時間和精力了,你們量力而行,若是是大佬的話忽略我。。。

因爲大部分 NFC 設備是不支持模擬加密卡的,可是支持數據寫入,可是咱們可使用曲線救國的方式,模擬一張非加密的 UID 卡,而後將加密數據複製以後,直接寫入模擬卡,就 Ok 了!

步驟如圖



須要設備

  1. PN532(淘寶自行搜索)
  2. 空白 CUID 卡
  3. 加密的門禁卡
  4. 一臺 WINDOWS 電腦
  5. PN532 驅動
  6. MifareOne Tool 1.7

步驟

安裝 PN532 驅動

看一下購買的 PN532 是串口驅動仍是已經接好了 CH430 轉接芯片,若是是 CH430 的話通常不用裝驅動,其他的可能要裝一下 PL2303 串口驅動,網上不少,隨便找一個下就行

掃描加密門禁卡

將 PN532 用 USB 與電腦鏈接,打開 MiFareOne Tool,檢測鏈接

將門禁卡與 PN532 接觸,掃描卡片

點擊「一鍵解原卡」,讀取卡片 bump 數據,保存

卡的解密時間根據卡的加密數據會有時間的差別,好比個人運行了大約 288 秒,總之等待就行

製做同 UID 的普通卡

  • 把空白卡放到 PN532 上,掃描卡片
  • 複製加密卡的 UID

高級操做模式 => Hex 編輯器 => 打開剛纔的 bump 數據 => 選擇扇區 0 => 複製第 0 塊的前 8 位數字(原卡的 UID)

  • 將加密卡的 UID 寫到空白卡內:

高級操做模式 => UID 寫號 => 粘貼剛纔的 8 位數字

此時,同 UID 的普通卡已經制做完成

小米手環模擬門禁卡

  • 使用小米手環模擬剛製做完的普通卡
  • 將手環放到 PN532 上,掃描卡片,此時能夠檢測到普通卡片
  • 將剛纔保存的原卡 bump 數據寫到手環中

操做:高級操做模式 => CUID 寫

注意:此時軟件可能會卡,稍稍等一下就好最後就成功了,而後拿着卡去刷門禁吧!

後記

  1. 小米手環模擬非加密卡的時候,也很容易失敗,好比咱們公司的門禁卡,其餘同事都模擬成功了,但我模擬的時候一直顯示不能模擬加密卡,反正多試幾回,就成功了。
  2. 聽說 PN532 有時候會過熱,能夠用冰箱降溫。。 --源自diygod.me/pn532/

參考文獻

  1. Wikipedia. (n.d.). 近場通信. [online]. Available at: zh.wikipedia.org/wiki/%E8%BF…
  2. hceng Blog. (n.d.). NFC 手機模擬加密門禁卡. [online]. Available at: hceng.cn/2019/07/12/…
  3. DZRAB. (n.d.). IC 卡簡介. [online]. Available at: pn532.com/portal.php?…
  4. Yearito Blog. (n.d.). Type A 卡存儲結構與通訊. [online]. Available at: yearito.cn/posts/stora…
相關文章
相關標籤/搜索