leeechsh

leeechsh

M1卡

淺談 M1 卡(水卡、飯卡、開水卡和門禁卡等)的破解與複製 —— 理論知識篇#

聲明:破解卡片只為科學研究所用,並探討數據加密升級的必要性。

本文只作技術研究、學習交流之用,切勿用於非法用途,否則後果自負!!!

前言
最近一直在研究單片機及硬件相關的知識(非本專業,純屬個人愛好),偶然間看到網友發了破解學校水卡相關的帖子。於是就想着研究(破解)一下學校的一卡通安全,順便記錄一下過程。

注:全文分為 6 個篇章,本文為 [理論知識篇],後續我會持續更新。

由於篇幅較長,重點部分我已 [加粗標出]。

1. 概述
首先,在破解卡片之前,有必要先了解一下目前市面上常見卡片的相關知識,即 IC 卡與 ID 卡。

1)IC 卡(Integrated Circuit Card),也稱智能卡 (Smart Card)、微芯片卡。常見的 IC 卡有二代身份證、手機 SIM 卡、校園一卡通等。分為非接觸式 IC 卡與接觸式 IC 卡。本文中 M1 卡為非接觸式 IC 卡。

M1 卡

2)ID 卡(Integrated Circuit Card),即身份識別卡。ID 卡無法寫入數據,只有固定的 ID 編號,無任何保密功能 。

總結:ID 卡是只讀的,僅僅記錄卡號,無法加密,故安全性低;IC 卡可以讀寫,可以加密,IC 卡數據的讀取、寫入等操作需相應的密碼認證,卡片內每個區塊有不同的密碼保護(後文會詳細講解)。

2.IC 卡的分類
作為準備工作,首先需要確認卡片的類型,這關係到卡片是否能破解。

此處採用手機 App 查看卡片數據最為方便,前提是手機支持 NFC 功能。或者直接使用 PN532、ACR122u 讀卡器(後續破解用到的設備)。當然,可以採取簡單粗暴的方式 —— 通過觀察卡片的外觀來判斷(方法請自行上網搜索,不再贅述),不過不一定準確。

通過 SAK,可以判斷卡的類型,如下圖所示:

紅色方框內即為 SAK 信息
(使用 Mifare Classic Tool 軟件查看,文末會給出下載鏈接)
其中:

SAK:08 為 M1 卡或 S50 卡 —— 通常可以破解

SAK:18 為 S70K 卡 —— 通常可以破解

SAK:20 為 CPU 卡 —— 無法破解

SAK:28 為 CPU 模擬卡 —— 模擬 M1 卡結構,極少部分可解

本文中所提到的 M1 卡,全稱 NXP Mifare1 系列卡片,屬於非接觸式 IC 卡,常用於一卡通,公交等系統。常見的有卡式和鑰匙扣式。如下圖所示:

左為卡式,右為鑰匙扣式
M1 卡的容量通常為 1KB(注意這裡的單位是 bytes,而非 bit,換算為位的話應該是 8Kb)。雖然存儲空間比較小,但 M1 卡的結構仍較為複雜。

3. 扇區與塊
M1 卡共有 16 個扇區(0~15 扇區),每個扇區有 4 個塊(0~3),每個塊可以保存 16 字節的內容。即 16 (扇區)*4 (每個扇區有 4 個塊)*16 (每塊為 16 字節)=1024bytes=8192bits;

如下圖所示:

某空白 M1 卡的第 4、5 扇區
其中第 0、1、2 個塊用來存放數據,第 3 個塊用來存放密鑰。如上圖所示,塊的序號已用紅色字體標註。密鑰分為密鑰 A 與密鑰 B,密鑰 A、B 中間的為控制位。

[控制位決定該塊的訪問權限,讀者可自行查閱相關資料,本文不再贅述]

例如扇區 5 中塊 3:其中”FF078069” 为控制位,左右側密鑰 A 與 B 相同,即”000000000000”(本例中所用的 M1 卡為空白卡,無任何數據和密鑰)。

通常情況,只要知道了某扇區的塊 3,就可以掌握本扇區的控制權限(讀、寫數據等)。同時,M1 卡的每個扇區都可以設置不同的密鑰。

還有,每個 M1 卡都有唯一的序列號(UID),存放在 0 扇區 0 塊中。其中,前 4 個字節為卡的 UID,第 5 個字節是校驗位,剩下則為廠商數據,並且該塊無法被修改(也有可修改的卡片,後文中將會提到)。

所以,若要讀取和修改 M1 卡數據,首先必須先獲得各個扇區的密鑰,除非該卡片未加密。具體方法後文會詳細闡述。

由此可見,能否破解 M1 卡密鑰是破解整卡的關鍵因素。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。