MIFARE

**MIFARE** 是恩智浦半導體公司（NXP Semiconductors）擁有的一系列非接觸式智慧卡和近傍型卡技術的註冊商標。

MIFARE 包括一系列依循 ISO/IEC 14443-A 規格，利用無線射頻識別（頻率為 13.56MHz）的多種非接觸式智慧卡專有解決方案。這項技術是最早是 1994 年由米克朗集團（Mikron Group）開發，在 1998 年轉售給飛利浦電子公司（2006 年拆分成為恩智浦半導體公司）。近年來 MIFARE 已經普遍在日常生活當中使用，如大眾運輸系統付費、商店小額消費、門禁安全系統、借書證等。

## 發展歷史

* 1994 — MIFARE Classic 1K，非接觸式讀取技術開發成功。
* 1996 — 韓國首爾市地鐵成為首個採用 MIFARE 的商轉系統。
* 1997 — MIFARE Pro，相容接觸與非接觸式的智慧卡，並採用了 3DES 的協同處理器（coprocessor）機制。
* 1999 — MIFARE Pro X，開發完成公開金鑰基礎建設（PKI）機制。
* 2001 — MIFARE UltraLight 規格開發成功。
* 2002 — MIFARE DESFire，開發以微處理器（microprocessor）為基礎的產品。
* 2004 — MIFARE DESFire SAM，增強了 MIFARE DESFire 的安全基礎架構連接。
* 2006 — MIFARE DESFire EV1，第一個支援 128bit 進階加密標準（AES）的產品。
* 2008 — MIFARE Plus，替換 MIFARE Classic 使用的 128bit AES。
* 2008 — MIFARE Ultralight C，內建有三重數據加密演算法驗證的紙質票證 IC（Paperticket IC）。
* 2010 — MIFARE SAM AV2，加入可讀取進階加密標準（AES）、三重數據加密演算法（3DS）、公開金鑰基礎架構（PKI）等安全密鑰的驗證機制。
* 2012 — MIFARE Ultralight EV1，與 MIFARE Ultralight 相同的規格但是取消了加密功能。
* 2013 — MIFARE DESFire EV2，更好的效能、保密性並且支援多種加密程式。

MIFARE 的名字由來是米克朗車資收費系統（ **MI**kron **FARE**-collection System）組合而來，飛利浦電子公司在 1998 年收購了這項技術。

1994 年，米克朗公司授權英飛凌 科技在 MIFARE 現有的基礎上開發新的機制。。當時英飛凌取得的樣本規格是 1K 的記憶體容量 ，8、16、32 位元的虛擬微處理器和 USIM 用的 NFC 裝置。

摩托羅拉公司曾經嘗試開發與 MIFARE 功能類似的接觸式晶片，原本該公司預估每個月有 1 百萬次的使用量，但是最後只有 10 萬次。以致最後放棄了這個產品
。

1998 年飛利浦將 MIFARE Classic 技術授權給了日立製作所，該公司在 1999 年至 2006 為日本電信電話（NTT）開發了非接觸式智慧卡的解決方案。另外為 NTT 開發的電話卡專案有 3 個合作夥伴（分別是：Tokin-Tamura-Siemens、日立製作所、電裝公司），原本規劃以 MIFARE Classic 授權為基礎進而開發出兩種大小不同容量的接觸式產品，但是最後只有完成大容量的產品。

2008 年，NXP 為日立製作所提供了包含 MIFARE Plus 及 MIFARE DESFire2 項技術，日立製作所的半導體部門也更名為瑞薩電子
。

2010 年，NXP 把 MIFARE 授權給金雅拓公司（Gemalto），2011 年 NPX 授權法國歐貝特科技使用在 SIM 卡上。這些授權都是用來開發 NFC 領域的產品。

## 硬體架構及工作原理

UID：唯一識別碼（Unique Identifier）， RID：安全隨機識別碼（Random Security Identifier）

* 卡片架構：卡片上面有一組唯一識別碼、通訊介面（包含天線及調變解調器）以及一個 ASIC 裡面包含了通訊邏輯電路、加密控制邏輯電路與資料儲存區（ EEPROM），可以作為電子錢包或其它門禁、差勤考核、借書證等用途。
  * 資料儲存區塊：可分 16 個區段（sector 0-15）， 每個區段由 4 個區塊（block 0-3）組成，而每個區塊都是獨立的單元，每 1 個區塊的容量有 16Byte。而每個區段的最後一個區塊則用來存放 2 組金鑰（KeyA、KeyB），以及金鑰對應各自的存取權限（Access bit）。
  * 每張卡片第一區段的第一區塊（sector 0，block 0）只能讀取無法寫入資料，稱為製造商代碼（Manufacturer Code）, 第 1－4byte 為 UID。第 5byte 為位元計數檢查碼（bit count check)，其餘的存放卡片製造商的資料。所以每張卡片實際能使用的只有 15 個區段，即便如此也可用於 15 個不同的應用。
* 讀寫卡機架構：讀卡機包含 CPU、電源模組、讀（寫）模組、記憶模組、控制模組等，有些還有顯示模組、定時模組等其他模組。
* 工作流程：當卡片接近讀寫卡機進入通訊天線的感應範圍（約 2.5 公分至 10 公分）之後，讀寫卡機便會提供微量電力（約達 2 伏特之後）驅動卡片上的電路。此時卡、機各以曼徹斯特編碼（MANCHESTER Encoding）及米勒編碼（Miller encoding）加密通訊內容後再以振幅偏移調變（Amplitude Shift Keying，ASK）透過調變解調器收發無線電波訊號互相驗證是否為正確卡片，如果驗證結果正確讀寫卡機就會確認要存取的資料儲存區塊，並對該區塊進行密碼校驗，在卡、 機三重認證無誤之後，就可以透過加密進行實際工作通訊。這個過程大約只需要 0.1 秒就可以完成。如果同時有多張卡片進入讀寫卡機感應範圍，讀寫卡機會將卡 片編號並選定 1 張卡片進行驗證直到完成所有卡片驗證（稱為防碰撞機制）或是離開感應範圍為止。
  * 卡 機三重認證步驟：1. 卡片產生一個亂數 RB 傳送到讀卡機。2. 讀卡機會將接收到的亂數 RB 依公式加密編碼後的 TokenAB 數值並傳送回卡片。3. 卡片接 收到 TokenAB 後，會把加密部份解譯出來然後比對參數 B、亂數 RB。同時並依據收到的亂數 RA，參照公式編碼後產生 TokenBA 傳送回讀卡機。4. 讀卡機接收到 TokenBA 後，又把加密過的部份解譯，比較亂數 RB，RA 與 TokenBA 中解出之 RB、RA 是否相符，正確的就可以完成指令（扣款、打 開門鎖或是登記其他事項）。

## 攻擊事件

2007 年 12 月，在騷亂交流大會上 Henryk Plötz 和 Karsten Nohl 發表了部分用於 MIFARE 晶片演算法上的逆向工程技術。

2008 年 3 月，在荷蘭的奈梅亨大學（Radboud University Nijmegen）數位安全研究群裡發表了利用逆向工程複製並且修改採用 MIFARE Classic 技術的電子票證 OV 卡（ov-chipkaart）上的餘額。
奈梅亨大學發表了下列三篇關於 MIFARE Classic 的檔案：

* A Practical Attack on the MIFARE Classic（頁面存檔備份，存於網際網路檔案館）
* Dismantling MIFARE Classic（頁面存檔備份，存於網際網路檔案館）
* Wirelessly Pickpocketing a MIFARE Classic Card（頁面存檔備份，存於網際網路檔案館）

恩智浦半導體曾經嘗試在荷蘭的法庭提出訴訟以阻止這些檔案發表，但是法官認為這屬於言論自由，便否決 NXP 公司所提

2008 年 8 月在第 17 屆高等計算系統協會（USENIX）中有另外一份講述如何利用逆向工程的程式發表

臺大電機教授示範竄改悠遊卡：2010 年 7 月，臺灣大學電機系教授鄭振牟團隊使用改進過的監聽封包（Sniffer-Based）的攻擊手法攻擊 Mifare 卡。將 1 張正常使用中的悠遊卡，將餘額從正 100 多元，更改成為負五百多元。

資安顧問竄改悠遊卡：2011 年 7 月，某科技公司一名 24 歲資安顧問，宣稱在美國網站購買讀寫卡機，再下載美國學生破解波士頓地鐵查理卡（Charlie Card）的文章後花了四個月的時間撰寫程式，破解悠遊卡防護系統，以自製讀寫卡機為悠遊卡竄改加值成功並盜刷六次。

## 相關條目

* RFID
* NFC
* FeliCa
* Legic
* 智慧卡
* 悠遊卡 (台灣)
* iPASS 一卡通 (台灣)

## 參考

## 外部連結

* MIFARE 官網
* 台灣恩智浦半導體公司官網 （頁面存檔備份，存於網際網路檔案館）