MIFARE Classic S50技術詳解

Mifare Classic 簡介

  MIFARE Classic是恩智浦半導體開發的可用於非接觸式智能卡,符合ISO/IEC 14443 A類標準。用於公共交通票證等應用,還可用於各種其餘應用有S20,S50(M1),S70幾種規格,主要是根據存儲器容量劃分,存儲器容量分別有320B,1K,4K。具備如下防干擾、輕鬆簡便以及安全等特性:算法

  • 防干擾

  智能防干擾功能容許同時有多張卡在現場工做。防干擾算法分別選擇每一張卡,並確保選定的卡正確執行交易,不會受到現場另外一張卡的干擾。編程

  • 輕鬆集成,使用簡便

  針對輕鬆集成和使用簡便而設計,容許在不到100 ms的時間內完成整個票證交易。安全

  • 安全

· 每器件具備製造商編程的7字節UID或4字節NUID標識符less

· 支持隨機ID網站

· 三道雙向認證(ISO/IEC DIS 9798-2)編碼

· 每扇區提供兩組獨立的密鑰,支持多用途密鑰體系加密

  本文以S50進行着重講解,對於S20及S70可訪問官方網站詳細瞭解。設計

邏輯框圖

  對於S50來講,芯片由1KB E2P,非接接口,數字控制單元組成。其中:3d

  • 非接接口(RF Interface),包括:

· 調制解調器(Modulator/demodulator)rest

· 整流器(Rectifier)

· 時鐘再生器(Clock regenerator)

· 上電覆位(Power-On Reset )

· 電壓調節器(Voltage regulator)

  • 防衝突管理
  • 認證管理
  • 控制和算術邏輯單元
  • 存儲器及訪問接口:對於S50來講,存儲器(E2P)只須要1KB分爲16個扇區,每一個扇區爲4塊,每塊16個字節,以塊爲存取單位。
  • 加密單元

執行流程

執行流程包括三個部分,分別是初始化及選擇過程,認證過程以及數據操做過程,以下圖所示:

· 呼叫

  讀卡器發送 REQA/WUPA 命令,卡返回 ATQA 的過程。

· 防衝突循環

  在防衝突循環過程當中將讀取卡片的ID,若是存在多張卡,則經過ID進行區別,並選擇一張卡進一步處理,其它卡回到 IDLE 狀態等待REQA/WUPA 命令。

· 選卡

  讀寫器發送 SELECT,卡返回 SAK 的過程, SAK 指示當前卡是否支持 14443-4 協議和 UID 是否完整。

· 三輪認證

  選卡後,讀寫器指定後續讀寫的存儲器位置,並用相應密鑰進行三輪認證。認證成功後,全部的存儲器操做都是加密的。

· 存儲器操做

  認證後可執行下列操做:

  • 讀塊
  • 寫塊
  • 減值:減小數值塊內的值,並將結果保存在數據寄存器中。
  • 加值:增長數值塊內的值,並將結果保存在數據寄存器中。
  • 恢復:將數據塊內容移入數據寄存器。
  • 轉存:將數據寄存器的內容寫入數值塊。

數據存儲結構

  • 廠商代碼塊

  這是第 0 區的第 0 塊存儲製造商代碼,它含有 UID 和廠商數據,只讀。若是是4字節UID,則0~3字節爲序列號,第4字節爲校驗字節(異或值),第5字節國卡片容量,第六、7字節爲卡片類型。

  • 數據塊

  全部扇區都由3個塊組成,每一個塊由16字節用於存儲數據(扇區0只有兩個數據塊,一個只讀的廠商數據塊)。數據塊能夠設置爲:

· 讀寫塊,例如用於非接觸門禁管理,有效命令: read, write

· 數值塊,例如用於電子錢包。

  •  數值塊

  數值塊容許執行電子錢包功能(有效的命令是:讀、寫增量、減量、恢復、轉移)。數值塊有一個固定的數據格式容許錯誤檢測和校訂和備份管理。

· 數值:有符號 4 字節數值。數值的最低字節存儲在最低地址字節。負值以標準的 2 的補碼形式存儲。數值存儲三次,兩次不取反,一次取反。

· 地址( Adr): 1 字節絕對地址,當進行備份管理時,可用於保存塊的地址(即地址不必定與當前的塊號相同)。地址保存四次,兩次取反,兩次不取反。在 increment、decrement、 restore 和 transfer 操做中,地址保持不變。它只能經過 write。

  例:

  對於十進制數1234567,地址17來講,首先十進制數轉成十六進制爲0x0012D687,低字節存儲在第0字節,高字節爲第3字節,補碼爲0xFFED2978,低字節存儲在第4字節,高字節存儲在第7字節。對於十六進制的地址0x11來講,補碼爲0xEE。存儲結果以下表所示:

  • 尾塊

  各區均有一個尾塊,存有:

· 密鑰 A 和 B(可選):卡片發行時,全部的密鑰被設置爲 FFFFFFFFFFFF。若是讀密鑰的權限不知足則讀出的密鑰值爲全 0.

· 該區四個塊(或16個塊)的讀寫條件,存儲在字節 6 至 9 。讀寫控制位也指定了數據塊的類型(讀寫塊或數值塊)。

  若是不須要密鑰 B,尾塊的最後 6 字節能夠用做數據字節。尾塊的字節 9 可用於用戶數據。此字節享有與字節 六、 七、 8 相同的讀寫權限。對於訪問條件,參考後面章節的詳細說明。

訪問控制

  任何內存操做以前,卡必須選擇和驗證,對一個特定的塊的訪問,依賴於驗證過程當中的密鑰以及存儲在當前的扇區尾部的訪問條件。內存操做以下表所示:

  • 訪問條件

  每一個數據塊和尾塊的訪問條件是由3位數據組成,在訪問條件及其補碼形式存儲在指定塊的尾塊中。

  訪問控制位使用密鑰A和密鑰B控制內存的訪問,訪問條件可能會改變,只要知道相關的密鑰和當前訪問條件即容許此操做。以下圖所示:

  • 控制位的組成

  • 尾塊訪問條件

  根據尾塊的訪問控制位,對於key的讀/寫訪問的權限包括:never,keyA,keyB或者keyA|B。

卡片發行時的控制字節爲: FF078069,即:

C10 C20 C30=000,塊 0 的讀、寫、增、減、恢復、傳送的權限都是 key A 或 keyB

C11 C21 C31=000,塊 1 的讀、寫、增、減、恢復、傳送的權限都是 key A 或 keyB

C12 C22 C32=000,塊 2 的讀、寫、增、減、恢復、傳送的權限都是 key A 或 keyB

C13 C23 C33=001,塊 3 的 keyA 讀權限 never, keyA 的寫權限、 Access bits 和 keyB 的讀寫權限都是 keyA。

 

例一: C11 C21 C31=010,即塊 1 的讀權限爲 keyA/keyB,寫、增、減、恢復、傳送的權限爲never。修改尾塊的值爲: FFFFFFFFFFFFDF078200FFFFFFFFFFFF

例二: C1x C2x C3x=111,即數據塊的全部權限都爲 never,尾塊的讀控制字節權限爲 keyA|B,

其它權限爲 never。

修改尾塊的值爲: FFFFFFFFFFFF00F0FF00FFFFFFFFFFFF

  • 數據塊訪問條件

  根據訪問控制位的數據塊(塊0~2),讀/寫訪問被指定爲「從不」,「KeyA」,「KeyB」或「KeyA| B」。訪問控制位定義了應用程序和相應的適用的命令。

•讀/寫塊:容許讀和寫操做。

•數值塊:容許額外的值操做,增量、減量、轉移和恢復。

•製造商塊:只讀,不受訪問控制位設置影響!

•密鑰管理:在運輸時配置必須用於身份驗證的KeyA

執行命令

  MIFARE Classic卡激活遵循ISO / IEC 14443 TypeA,MIFARE Classic卡被選中後,它可使用ISO / IEC 14443命令停用,或能夠執行MIFARE Classic命令。

  • ACK與NAK

  Mifare classic 使用4位ACK/NAK,以下表所示:

  • 我的化

  • SET_MOD_TYPE命令

  • 認證命令

  • 讀命令

  • 寫命令

  •  增、減、恢復命令

  • 轉存命令

安全與保護

  •  數據完整性

  如下機制在非接通信過程當中於讀卡器與卡片之間實現,卡片確保數據正確性:

•每一個數據塊有16位CRC

•爲每一個字節奇偶校驗位

•位數檢查

•位編碼區分「1」,「0」和「無信息」

•監測信道(協議序列和位流分析)

  •  三輪認證

1. 卡從指定扇區的尾塊讀出密鑰和訪問權限,併產生 4 字節隨機數發送給讀卡器。

2. 讀卡器使用密鑰加密收到的隨機數,把加密結果連同本身產生的隨機數一塊兒發送給卡(共 8 字節)。

3. 卡使用第 1 輪中讀出的密鑰驗證讀卡器返回的加密數據,如正確則把收到的隨機數加密後發送給讀卡器,不然不發送數據。

  • RF接口

  RF-interface根據非接觸式智能卡ISO / IEC 14443標準實現。兩個方向的數據通訊在每一幀的開始只有一個起始位。每一個字節一位校驗位(奇校驗)。選擇塊的最低(LSB)的字節最選傳輸,最大幀長度爲163位(16字節數據+ 2 CRC字節= 16´2´9 + 9 + 1起始位)。

資料參考

1.官方網站:http://www.nxp.com

2.MIFARE Classic EV1 1K - Mainstream contactless smart card IC for fast and easy solution development.pdf Rev. 3.0

3.MIFARE Platform Update &Infrastructure Introduction. Steven CJ Chang 2012.Feb.27

4.《智能卡技術》

相關文章
相關標籤/搜索