• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      IC卡安全性研究與應用分析

      2021-09-09 07:09:08劉永清
      江蘇通信 2021年4期
      關(guān)鍵詞:讀卡器IC卡扇區(qū)

      劉永清

      國家計算機網(wǎng)絡應急技術(shù)處理協(xié)調(diào)中心江蘇分中心

      0 引言

      IC卡在生活和工作中十分常見,廣泛應用于公共交通、門禁、電子錢包等領域,具有攜帶方便、操作簡單、使用靈活、一卡多用、抗干擾性能力強、可靠性高等優(yōu)點。標準的IC卡為長方形,尺寸為85.6×53.98mm2,實際生活中使用的IC卡的外形卻是各種各樣,有卡片式和鑰匙扣等樣式。

      IC卡不但外形各異,卡片的種類也是十分繁多。根據(jù)讀卡方式可分為接觸式、非接觸式、雙界面卡;根據(jù)工作頻率可分為低頻125kHz、高頻13.56MHz、微波2.4GHz等;根據(jù)嵌入芯片可分存儲卡、邏輯加密卡、CPU卡。

      1 M1卡介紹

      在眾多種類IC卡中,Mifare 1(簡稱M1)系列IC卡價格便宜,使用最為廣泛。M1卡是一種邏輯加密卡,工作頻率為13.56MHz,讀卡距離可達10cm,與讀卡器的通信速率可達106kbps,因此,一次刷卡交易可以0.1秒內(nèi)完成。M1卡中的無線智能卡芯片是Philips公司根據(jù)ISO/IEC 14443A標準開發(fā),通訊層遵從ISO/IEC 14443A的第1、2、3部分,保密層使用經(jīng)區(qū)域驗證的Crypto-1流密碼,對M1卡的通信數(shù)據(jù)進行加密。M1卡內(nèi)置芯片有S50和S70兩種型號,S50與S70主要不同在于卡片的扇區(qū)分布和容量不同,S50容量為1K字節(jié),而S70的容量達到了4K字節(jié)。S50卡使用最廣泛,本文將重點介紹。

      1.1 M1卡的特點

      (1)無線傳送數(shù)據(jù)和能量

      M1卡中芯片連接著幾匝線圈,組成一個LC串聯(lián)諧振電路,諧振頻率13.56MHz。這些芯片及線圈嵌入到塑料中,這就形成了一張無源的無線智能卡,這種卡不需要電池。讀卡器持續(xù)向外發(fā)出一組固定頻率的電磁波,其頻率與M1卡的諧振頻率相同,在電磁波的激勵下,LC諧振電路產(chǎn)生共振,從而使諧振電容內(nèi)有了電荷,當積累的電荷達到2V以上時,即可驅(qū)動芯片工作,此時M1卡的高速RF通訊接口就可以與讀卡器傳送數(shù)據(jù)。

      (2)反沖突

      智能反沖突(Anticollision loop)功能允許同一工作區(qū)域中有不止一張M1卡同時工作,反沖突算法每次只選擇一張卡,確保對被選中的卡正確執(zhí)行操作,而且同一區(qū)域中沒有被選中的卡不會破壞數(shù)據(jù),而是回到待機狀態(tài)等待新的請求命令。

      (3)安全性

      M1卡的一個重要特點是保密,防止受到欺騙攻擊。M1卡和讀卡器之間通過三輪確認(Three Pass Authentication)進行相互認證,認證后的數(shù)據(jù)交互都進行了加密,使得IC卡應用系統(tǒng)具有一定的保密性。

      1.2 M1卡數(shù)據(jù)存儲

      (1)存儲結(jié)構(gòu)

      M1 S50卡存儲空間為1K字節(jié),分成16個扇區(qū)(Sector),每個扇區(qū)又分成4塊(Block),每塊有16個字節(jié),數(shù)據(jù)的讀寫以塊為存取單位。每個扇區(qū)有兩套獨立的48位的密鑰(KeyA, KeyB)。如圖1所示。

      圖1 M1卡存儲結(jié)構(gòu)圖

      (2)訪問權(quán)限

      除了0扇區(qū)外,每個扇區(qū)的0~2塊為數(shù)據(jù)塊,3塊為區(qū)尾(Sector Trailer)。每個扇區(qū)的區(qū)尾包括6字節(jié)KeyA、4字節(jié)存儲控制位、6字節(jié)KeyB。M1卡每個扇區(qū)的存取控制位初始值為FF078069,KeyA,KeyB初始密鑰為FFFFFFFFFFFF。

      數(shù)據(jù)塊和區(qū)尾由3個存取控制位[C1XY, C2XY, C3XY]Y=0~3來定義其讀寫權(quán)限,這些存取控制位以取反(上劃線表示)和不取反的形式保存在指定的區(qū)尾中,其中字節(jié)9保留未使用。數(shù)據(jù)塊和區(qū)尾訪問條件的定義如表1和表2所示。

      表1 數(shù)據(jù)塊訪問條件(Y=0~2)

      表2 區(qū)尾訪問條件

      (3)數(shù)據(jù)塊

      根據(jù)訪問權(quán)限,經(jīng)過密碼驗證后,就可以訪問數(shù)據(jù)塊。M1卡的數(shù)據(jù)塊根據(jù)讀寫方式又分為兩種類型:

      ①讀寫塊

      讀寫塊用作為普通讀寫的16字節(jié)數(shù)據(jù)塊,只能進行讀塊或?qū)憠K。

      ②值塊

      值塊主要用于電子錢包功能,可以讀值、加值、減值、轉(zhuǎn)存、恢復,值塊中的數(shù)據(jù)包括符號位共4字節(jié)。為了提供檢錯糾錯能力,數(shù)據(jù)被存儲3次,其中原始數(shù)據(jù)保存2次,取反數(shù)據(jù)保存1次。剩余4字節(jié)用于保存存儲段的地址,原始地址和取反地址各保存2次。

      (4)廠商塊

      0扇區(qū)0塊與其他數(shù)據(jù)塊不同,稱為廠商塊,標準M1卡的廠商塊是只讀的,有的兼容M1卡的廠商塊可以更改,這種卡稱為UID卡。廠商塊共16字節(jié),各字節(jié)的定義如下:

      0~3字節(jié)為序列號(UID, Unique IDentifier)。

      4字節(jié)為校驗字節(jié)(BCC, Byte Calculation Check),是0~3字節(jié)的異或值。

      5字節(jié)為選擇確認碼(SAK, Select AcKnowledge),S50的SAK為08,S70的SAK為18,CPU卡的SAK為20,模擬CPU卡的SAK為28。

      6~7字節(jié)為請求響應碼(ATQA, Answer To reQuest, type A),S50的ATQA為0004,表示UID長度為4字節(jié),遵守面向比特的防沖突機制,S70的ATQA為0002,有的CPU卡的ATQA為0344或0008等。

      8~15字節(jié)為廠商數(shù)據(jù)。

      1.3 M1卡通信過程

      為近一步理解M1卡的工作原理,表3列出了文獻中實驗偵聽的IC卡通信過程數(shù)據(jù)。

      表3 讀卡器與M1卡通信數(shù)據(jù)舉例

      通過分析表3的通信數(shù)據(jù)可以得出M1卡與讀卡器的通信過程如下:

      (1)讀卡器輪詢

      ①讀卡器不停地發(fā)送REQA(Request Command, Type A),以探測是否有A類型的IC卡靠近讀卡器。

      (2)IC卡響應

      ②IC卡中的LC諧振電路接收到讀卡器的電磁波,因共振產(chǎn)生電荷,給IC卡芯片供電,IC卡復位后進入空閑狀態(tài),并偵聽讀卡器發(fā)出的命令。當收到讀卡器的REQA命令后,IC卡回復ATQA碼,并進入準備狀態(tài)。

      (3)防沖突循環(huán)檢測

      ③讀卡器發(fā)出SEL NVB(Select Number of Valid Bits),以進行沖突檢測,其中NVB = 20表示有效命令為2個字節(jié)。

      ④靠近讀卡器的IC卡都會回應其UID + BCC,M1卡的UID一般為4字節(jié),BCC是一字節(jié)的校驗字,是UID的異或值。如果此時有多張IC卡同時回應,那么就可能出現(xiàn)沖突,此時讀卡器就會再次發(fā)送SEL NVB命令,直到?jīng)]有沖突出現(xiàn)。

      (4)選擇IC卡

      ⑤如果沒有檢測到?jīng)_突,那么讀卡器就發(fā)出SEL NVB UID CRC_A,以選擇指定UID的IC卡,此時NVB = 70表示有效命令為7個字節(jié)。

      M1卡的CRC_A的計算公式在ISO/IEC 13239中定義,其生成多項式為x16+x12+x5+1,記為0x11021,但是16移位寄存器的初始值不是0xFFFF,而是0x6363。

      ⑥被選中的IC卡回應SAK CRC_A,此時IC卡轉(zhuǎn)換為活動狀態(tài),沒有選中的IC卡保持準備狀態(tài),等待新的請求命令。

      (5)三輪確認認證

      ⑦讀卡器發(fā)出Auth Addr CRC_A,指定要訪問的數(shù)據(jù)塊,并選擇密鑰A或密鑰B進行認證,Auth若為60則表示選擇密鑰A認證,若為61則表示選擇密鑰B認證,然后進入三輪確認認證。

      ⑧IC卡從對應塊的區(qū)尾讀出密鑰和存儲控制位,判斷讀卡器是否為合法訪問,若為非法訪問,則卡片不會響應讀卡器;否則發(fā)送一個4字節(jié)的隨機數(shù)RB(第一輪確認)。

      ⑨讀卡器將接收到隨機數(shù)RB、自己生成的隨機數(shù)RA以及其他附加信息利用未公開的Crypto-1算法進行加密,然后將密文發(fā)給IC卡(第二輪確認)。

      ⑩IC卡對接收到的密文進行解密得到RA, RB及附加信息,檢查RB及附加信息是否正確,若檢查正確,則IC卡對讀卡器認證通過,然后將RA加密后發(fā)給讀卡器(第三輪確認)。

      (6)數(shù)據(jù)塊讀寫

      讀卡器對接收到的密文進行解密得到RA等信息,與IC卡進一步確認了隨機數(shù)RA。認證通過后,就可以對指定的數(shù)據(jù)塊進行讀寫操作,后續(xù)的數(shù)據(jù)通信都是加密傳輸?shù)摹?/p>

      由于每個扇區(qū)都有各自的密碼,如果要對其他扇區(qū)進行操作,還需進行⑦至步的三輪確認認證。

      2 M1卡破解方法

      M1卡雖然有三輪確認認證及數(shù)據(jù)加密傳輸?shù)劝踩侄?,但是M1卡存在著眾多先天不足的問題,比如:密鑰長度只有48位、密鑰核驗錯誤次數(shù)沒有限制等,可以通過不斷地重試,對M1卡進行暴力破解。早期要破解M1卡不但要對M1卡有深刻的了解,而且還要有高深的計算機技術(shù),現(xiàn)在網(wǎng)上有多種破解工具,可以輕松破解M1卡。

      2.1 PN532

      PN532是最廉價的破解方案,僅一塊簡易電路板,配合mfoc和mfcuk軟件使用,就可以滿足常規(guī)的M1卡的讀寫操作,適合有一定計算機技術(shù)的人員使用,可以用于破解M1S50卡,不能破解全加密卡(所有扇區(qū)都未使用改初始密鑰和簡單密鑰),適合破解門禁等應用簡單的IC卡。

      2.2 ACR122U

      ACR122U讀寫的主芯片也是PN532,配套有更加完善破解軟件,使用稍微簡單一些,但同樣不能破解全加密卡,對于加密了部分扇區(qū)的S70卡也較難破解,性價比一般。

      2.3 Proxmark3

      Proxmark3是一款開源的研究平臺,設計圖被公布在Proxmark3官方網(wǎng)站,在網(wǎng)上可以找到配套的軟件,另有社區(qū)可獲取對應的固件及技術(shù)支持,可破解低頻卡、S50和S70全加密卡及部分特殊卡,功能相當強大,但價格較貴。

      3 M1卡應用案例分析

      M1卡在工作與生活中使用非常廣泛,某市的公共自行車卡就是選用了M1卡。

      3.1 卡片破解

      為了分析該公共自行車卡存儲的數(shù)據(jù),筆者用ACR122U對自行車卡進行了破解,破解操作界面如圖2所示,破解完成后生成了二進制dump文件。

      圖2 ACR122U破解軟件

      3.2 數(shù)據(jù)分析

      下面分析破解生成的dump文件,查看公共自行車卡的各個扇區(qū)分別存儲了什么數(shù)據(jù)。

      (1)0扇區(qū)數(shù)據(jù)

      圖3 0扇區(qū)數(shù)據(jù)

      0扇區(qū)第0塊數(shù)據(jù)塊是廠商塊,SAK=08, ATQA=0004(先傳低字節(jié)后傳高字節(jié)),由此進一步驗證了該公共自行車卡是M1卡。第1塊數(shù)據(jù)中“20160303”是制卡時間,其他字節(jié)功能未知,最后一個字節(jié)為校驗字節(jié),是0x33與當前塊前15字節(jié)的異或值。不同自行車卡的第2塊數(shù)據(jù)都相同,可能是公共自行車卡的標識。0區(qū)的密鑰A為常用的密碼“A0A1A2A3A4A5”,密鑰B無明顯特征,存取控制位為69678969。

      (2)1扇區(qū)數(shù)據(jù)

      圖4 1扇區(qū)數(shù)據(jù)

      1扇區(qū)第1塊和第2塊數(shù)據(jù)相同,是為了數(shù)據(jù)安全存儲而進行的冗余存儲,而且這兩塊數(shù)據(jù)是作為值塊進行存儲的,數(shù)據(jù)值為0x00001324,十進制為4900,即自行車卡的余額為49.00元。

      (3)2扇區(qū)數(shù)據(jù)

      2扇區(qū)第0塊數(shù)據(jù)為自行車的卡號,采用ASCII編碼。第1塊數(shù)據(jù)為辦卡時間;第2塊數(shù)據(jù)為持卡人姓名,也是ASCII編碼。前三塊數(shù)據(jù)的最后一個字節(jié)也是校驗字節(jié)。

      卡片其他的扇區(qū),存儲數(shù)據(jù)的意義不明顯,有的扇區(qū)沒有存儲數(shù)據(jù),在此不再列舉分析。

      圖5 2扇區(qū)數(shù)據(jù)

      3.3 卡片克隆

      破解了IC卡后,就可對卡片余額等數(shù)據(jù)進行修改,也可對IC進行復制,操作很簡單,導入之前破解生成的dump文件,將該文件寫入空白的UID卡中,即可實現(xiàn)IC卡克隆。筆者測試過,復制的公共自行車卡可以正常借車。

      3.4 安全建議

      通過對某市公共自行車卡的破解可以看出,由于M1卡的先天不足,導致M1卡很容易受到非法復制、惡意修改數(shù)據(jù)等攻擊。那么如何提高M1卡的應用安全呢?有以下兩種方案:

      (1)將離線刷卡調(diào)整為在線刷卡,每次刷卡交易,讀卡器都會將卡內(nèi)數(shù)據(jù)與聯(lián)網(wǎng)查詢的后臺數(shù)據(jù)進行比較,發(fā)現(xiàn)數(shù)據(jù)不一致時,將該卡列為黑名單禁止使用。正常刷卡時,在更新IC卡內(nèi)數(shù)據(jù)時,也同步聯(lián)網(wǎng)更新后臺數(shù)據(jù)庫數(shù)據(jù)。這種方式可以降低IC卡被非法破解使用的風險,但是也存在一定弊端,每次交易都要網(wǎng)絡連接后臺數(shù)據(jù)庫,造成交易時長增加,客戶體驗下降,而且如果網(wǎng)絡中斷,那么刷卡交易將無法進行。

      (2)將公共自行車卡由M1卡更換為安全性更高的CPU卡,這種方案能夠徹底解決公共自行車卡的安全問題,但是所有客戶都要重新?lián)Q卡,自行車站點要更換CPU卡讀卡器,整個公共自行車系統(tǒng)軟件也要更新,工作量較大,需要財政投資升級系統(tǒng)。

      圖6 ACR122U復制UID卡軟件

      4 結(jié)束語

      IC卡在生活和工作中普遍使用,本文首先根據(jù)使用方式、工作頻率、嵌入芯片對IC卡進行了分類,引入了最為常見的非接觸式13.56MHz的邏輯加密卡——M1卡,M1卡因價格便宜使用最為廣泛;接著重點介紹了M1卡數(shù)據(jù)分區(qū)存儲結(jié)構(gòu)和數(shù)據(jù)通信過程,指出了當前市面上流行的破解M1卡的三種工具;最后以某市公共自行車卡作為M1的應用案例,對其進行了破解分析,并提出了改進建議。因此,可以說當前許多在用的基于M1卡的交易系統(tǒng)是不夠安全的,隨著CPU卡價格的下降,無論是政府還是企事業(yè)單位在新建IC卡應用系統(tǒng)時,建議使用CPU卡代替M1卡,以提高系統(tǒng)安全性。

      猜你喜歡
      讀卡器IC卡扇區(qū)
      分階段調(diào)整增加扇區(qū)通行能力策略
      南北橋(2022年2期)2022-05-31 04:28:07
      工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實踐
      與淘汰命運抗爭 看懂筆記本的讀卡器
      在用電梯加裝外接式IC卡運行控制系統(tǒng)設計改進
      U盤故障排除經(jīng)驗談
      一種新的無觸點IC卡的檢測方法
      電子測試(2017年15期)2017-12-18 07:19:05
      基于EMV非接通信規(guī)范的非接觸讀卡器設計
      為二維碼識別的獻禮之作——評測平治二維碼門禁讀卡器
      基于貝葉斯估計的短時空域扇區(qū)交通流量預測
      重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
      江源县| 长垣县| 中方县| 天镇县| 航空| 满洲里市| 成武县| 中西区| 双辽市| 皮山县| 黄陵县| 通海县| 贡山| 鸡东县| 土默特左旗| 垦利县| 娄烦县| 马尔康县| 铜山县| 达孜县| 通渭县| 南通市| 西青区| 永平县| 咸宁市| 琼海市| 蓝山县| 塔城市| 龙江县| 天峻县| 延安市| 宜春市| 噶尔县| 宣城市| 建宁县| 庆城县| 竹溪县| 蓬莱市| 中方县| 镇原县| 伊金霍洛旗|