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的名字由來是米克朗車資收費系統( MIkron FARE-collection System)組合而來,飛利浦電子公司在1998年收購了這項技術。
1994年,米克朗公司授權英飛凌 科技在MIFARE現有的基礎上開發新的機制。[1]。當時英飛凌取得的樣本規格是1K的記憶體容量 ,8、16、32位元的虛擬微處理器和USIM用的NFC設備[2]。
摩托羅拉公司曾經嘗試開發與MIFARE功能類似的接觸式晶片,原本該公司預估每個月有1百萬次的使用量,但是最後只有10萬次。以致最後放棄了這個產品 [3]。
1998年飛利浦將MIFARE Classic技術授權給了日立製作所[4],該公司在1999年至2006為日本電信電話(NTT)開發了非接觸式智慧卡的解決方案。另外為NTT開發的電話卡專案有3個合作伙伴(分別是:Tokin-Tamura-Siemens、日立製作所、電裝公司),原本規劃以MIFARE Classic授權為基礎進而開發出兩種大小不同容量的接觸式產品,但是最後只有完成大容量的產品。
2008年,NXP為日立製作所提供了包含MIFARE Plus及MIFARE DESFire2項技術,日立製作所的半導體部門也更名為瑞薩電子 [5]。
2010年,NXP把MIFARE授權給金雅拓公司(Gemalto),2011年NPX授權法國歐貝特科技使用在SIM卡上。這些授權都是用來開發NFC領域的產品。
硬體架構及工作原理
MIFARE Ultralight | MIFARE Classic | MIFARE Plus | MIFARE DESFire | ||||||
---|---|---|---|---|---|---|---|---|---|
MIFARE Ultralight EV1 | MIFARE Ultralight C | MIFARE Classic EV1 | MIFARE Plus (S/X) | MIFARE Plus SE | MIFARE DESFire EV1 | MIFARE DESFire EV2 | MIFARE DESFire EV3 | ||
射頻介面 | ISO/IEC 14443-2,TYPE A | ||||||||
通訊協定 | ISO/IEC 14443-3 | ISO/IEC 14443-3&4 | ISO/IEC 14443-4 | ||||||
UID碼 | UID:7位元組 | UID:7位元組,RID:4位元組(無UID) | UID:7位元組,RID:4位元組(無UID) | ||||||
通訊速度 | 106Kbps | 106Kbps-848Kbps | |||||||
資料儲存容量 | 48bytes | 128bytes | 144bytes | 1K、4Kbytes | 2K、4Kbytes | 256、2K、4K、8Kbytes | 2K、4K、8Kbytes | ||
驗證金鑰種類 | 無 | TDES | Crypto-1 | Crypto-1、AES | TDES、AES | ||||
機卡驗證類型 | 密碼 | 三重認證 | |||||||
機卡通訊加密類型 | 無 | Encrypted | Plain,Encrypted以及CMACed | ||||||
共同準則認證類型 (Common Criteria Certification) | 無 | EAL4+ | 無 | EAL4+ | EAL5+ |
UID:唯一識別碼(Unique Identifier), RID:安全隨機識別碼(Random Security Identifier)
區段 | 區塊 0 | 區塊 1 | 區塊 2 | 區塊 3 |
---|---|---|---|---|
0 | 製造商代碼 | 資料區 | 資料區 | 金鑰、存取權限 |
1 | 資料區 | 資料區 | 資料區 | 金鑰、存取權限 |
2 | 資料區 | 資料區 | 資料區 | 金鑰、存取權限 |
: | : | : | : | : |
14 | 資料區 | 資料區 | 資料區 | 金鑰、存取權限 |
15 | 資料區 | 資料區 | 資料區 | 金鑰、存取權限 |
- 卡片架構:卡片上面有一組唯一識別碼、通訊介面(包含天線及調變解調器)以及一個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伏特之後)驅動卡片上的電路。此時卡、機各以曼徹斯特編碼()及米勒編碼()加密通訊內容後再以振幅偏移調變(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[6]發表了部分用於MIFARE晶片演算法上的反向工程技術[7]。
2008年3月,在荷蘭的奈梅亨大學(Radboud University Nijmegen)數位安全研究群裡發表了利用反向工程複製並且修改採用MIFARE Classic技術的電子票證OV卡(ov-chipkaart)上的餘額[8]。 奈梅亨大學發表了下列三篇關於MIFARE Classic的文件:
- A Practical Attack on the MIFARE Classic(页面存档备份,存于)
- Dismantling MIFARE Classic(页面存档备份,存于)
- Wirelessly Pickpocketing a MIFARE Classic Card(页面存档备份,存于)
恩智浦半導體曾經嘗試在荷蘭的法庭提出訴訟以阻止這些文件發表,但是法官認為這屬於言論自由,便否決NXP公司所提[9][10]
2008年8月在第17屆高等計算系統協會(USENIX)中有另外一份講述如何利用反向工程的程序發表[11]
臺大電機教授示範竄改悠遊卡:2010年7月,臺灣大學電機系教授鄭振牟團隊使用改進過的監聽封包(Sniffer-Based)的攻擊手法攻擊Mifare卡。將1張正常使用中的悠遊卡,將餘額從正100多元,更改成為負五百多元[12]。
資安顧問竄改悠遊卡:2011年7月,某科技公司一名24歲資安顧問,宣稱在美國網站購買讀寫卡機,再下載美國學生破解波士頓地鐵查理卡(Charlie Card)的文章後花了四個月的時間撰寫程式,破解悠遊卡防護系統,以自製讀寫卡機為悠遊卡竄改加值成功並盜刷六次[13]。
參考
- . telecompaper. 1994-04-07 [2015-10-26]. (原始内容存档于2019-06-11).
- . Infineon. 2007-11-13 [2015-10-26]. (原始内容存档于2016-06-28).
- . Cnet. 2002-01-02 [2015-10-26]. (原始内容存档于2019-06-29).
- (PDF). Cnet. 1998-02-01 [2015-10-26]. (原始内容存档 (PDF)于2013-11-02).
- . NXP Semiconductors. 2008-11-03 [2015-10-26]. (原始内容存档于2015-09-30).
- . [2015-10-26]. (原始内容存档于2020-02-04).
- Nohl, Karsten; Henryk Plötz. . Chaos Communication Congress. [2015-10-26]. (原始内容存档于2018-11-26).
- Digital Security Group publisher=Radboud University Nijmegen. (PDF). 2008-03-12 [2015-10-26]. (原始内容存档 (PDF)于2016-12-23).
- Arnhem Court Judge Services. . Rechtbank Arnhem. 2008-07-18 [2015-10-26]. (原始内容存档于2012-02-15).
- . The Standard. 2008-07-18 [2015-10-26]. (原始内容存档于2009-01-05).
- Nohl, Karsten; David Evans. . Proceedings of the 17th USENIX Security Symposium. 2008-08-01 [2015-10-26]. (原始内容存档于2011-06-08).
- . iThome. 2010-09-01 [2015-10-26]. (原始内容存档于2019-06-13).
- . 蘋果日報. 2011-09-28 [2015-10-26]. (原始内容存档于2017-09-14).
外部連結
- MIFARE官網
- 台灣恩智浦半導體公司官網 (页面存档备份,存于)