CPU卡與SAM卡原理_第1頁
CPU卡與SAM卡原理_第2頁
CPU卡與SAM卡原理_第3頁
CPU卡與SAM卡原理_第4頁
CPU卡與SAM卡原理_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、CPU卡與SAM卡原理 第一部分 CPU基礎(chǔ)知識 一、為什么用CPU卡 IC卡從接口方式上分,可以分為接觸式IC卡、非接觸式IC卡及復(fù)合卡。從器件技術(shù)上分,可分為非加密存儲卡、加密存儲卡及CPU卡。非加密卡沒有安全性,可以任意改寫卡內(nèi)的數(shù)據(jù),加密存儲卡在普通存儲卡的基礎(chǔ)上加了邏輯加密電路,成了加密存儲卡。邏輯加密存儲卡由于采用密碼控制邏輯來控制對EEPROM的訪問和改寫,在使用之前需要校驗密碼才可以進(jìn)行寫操作,所以對于芯片本身來說是安全的,但在應(yīng)用上是不安全的。它有如下不安全性因素: 1、密碼在線路上是明文傳輸?shù)?,易被截?。?2、對于系統(tǒng)商來說,密碼及加密算法都是透明的。 3、邏輯加密卡是無法

2、認(rèn)證應(yīng)用是否合法的。例如,假設(shè)有人偽造了ATM,你無法知道它的合法性,當(dāng)您插入信用卡,輸入PIN的時候,信用卡的密碼就被截獲了。再如INTENET網(wǎng)上購物,如果用邏輯加密卡,購物者同樣無法確定網(wǎng)上商店的合法性。 正是由于邏輯加密卡使用上的不安全因素,促進(jìn)了CPU卡的發(fā)展。CPU卡可以做到對人、對卡、對系統(tǒng)的三方的合法性認(rèn)證。 二、 CPU卡的三種認(rèn)證 CPU卡具有三種認(rèn)證方法: 持卡者合法性認(rèn)證PIN校驗 卡合法性認(rèn)證內(nèi)部認(rèn)證 系統(tǒng)合法性認(rèn)證外部認(rèn)證 持卡者合法性認(rèn)證: 通過持卡人輸入個人口令來進(jìn)行驗證的過程。 系統(tǒng)合法性認(rèn)證(外部認(rèn)證)過程: 系統(tǒng) 卡, 送隨機(jī)數(shù)X 用指定算法、密鑰對隨機(jī)數(shù)

3、加密 用指定算法、密鑰解密Y,得結(jié)果Z 比較X,Z,如果相同則表示系統(tǒng)是合法的; 卡的合法性認(rèn)證(內(nèi)部認(rèn)證)過程: 系統(tǒng) 卡 送隨機(jī)數(shù)X 用指定算法、密鑰對隨機(jī)數(shù)加密 用指定算法、密鑰解密Y,得結(jié)果Z 比較X,Z,如果相同則表示卡是合法的; 在以上認(rèn)證過程中,密鑰是不在線路上以明文出現(xiàn)的,它每次的送出都是經(jīng)過隨機(jī)數(shù)加密的,而且因為有隨機(jī)數(shù)的參加,確保每次傳輸?shù)膬?nèi)容不同。如果截獲了沒有任何意義。這不單單是密碼對密碼的認(rèn)證,是方法認(rèn)證方法,就象早期在軍隊中使用的密碼電報,發(fā)送方將報文按一定的方法加密成密文發(fā)送出去,然后接收方收到后又按一定的方法將密文解密。 通過這種認(rèn)證方式,線路上就沒有了攻擊點,

4、同時卡也可以驗證應(yīng)用的合法性; 但是因為系統(tǒng)方用于認(rèn)證的密鑰及算法是在應(yīng)用程序中,還是不能去除系統(tǒng)商的攻擊性。 在此,我們引進(jìn)了SAM卡的概念。 無插件,無病毒 SAM卡是一種具有特殊性能的CPU卡,用于存放密鑰和加密算法,可完成交易中的相互認(rèn)證、密碼驗證和加密、解密運算,一般用作身份標(biāo)志。 由于SAM卡的出現(xiàn),我們有了一種更完整的系統(tǒng)解決方案。 在發(fā)卡時,我們將主密鑰存入SAM卡中,然后由SAM卡中的主密鑰,對用戶卡的特征字節(jié)(如:應(yīng)用序列號)加密生成子密鑰,將子密鑰注入用戶卡中。由于應(yīng)用序列號的唯一性,使每張用戶卡內(nèi)的子密鑰都不同。 密鑰一旦注入卡中,則不會在卡外出現(xiàn)。在使用時,由SAM卡

5、的主密鑰生成子密鑰存放在RAM區(qū)中,用于加密、解密數(shù)據(jù)。 上述的認(rèn)證過程就成為如下形式: 系統(tǒng)合法性認(rèn)證(外部認(rèn)證)過程: SAM卡 系統(tǒng) 卡 送隨機(jī)數(shù)X SAM卡生成子密鑰對隨機(jī)數(shù)加密 解密Y,得結(jié)果Z 比較X,Z,如果相同則表示系統(tǒng)是合法的; 卡的合法性認(rèn)證(內(nèi)部認(rèn)證)過程: SAM卡 系統(tǒng) 卡 送隨機(jī)數(shù)X 用指定算法、密鑰對隨機(jī)數(shù)加密 SAM卡解密Y,得結(jié)果Z 比較X,Z,如果相同則表示卡是合法的; 這樣在應(yīng)用程序中的密鑰,就轉(zhuǎn)移到了SAM卡中,認(rèn)證成為卡卡的認(rèn)證,系統(tǒng)商不再存在責(zé)任。 三、 線路保護(hù) 卡與外界進(jìn)行數(shù)據(jù)傳輸時,若以明文方式傳輸,數(shù)據(jù)易被載獲和分析。同時,也可以對傳輸?shù)臄?shù)據(jù)

6、進(jìn)行竄改,要解決這個問題,CPU卡提供了線路保護(hù)功能。 線路保護(hù)分為兩種,一是將傳輸?shù)臄?shù)據(jù)進(jìn)行DES加密,以密文形式傳輸,以防止截獲分析。二是對傳輸?shù)臄?shù)據(jù)附加MAC(安全報文鑒別碼),接收方收到后首先進(jìn)行校驗,校驗正確后才予以接收,以保證數(shù)據(jù)的真實性與完整性。 四、 硬件結(jié)構(gòu)圖 EEPROM用于存放用戶數(shù)據(jù);ROM中用于存放COS操作系統(tǒng),而RAM區(qū)中用于存放COS運行時的中間變量。 COS(chip operation system),就是芯片操作系統(tǒng),類似于DOS和WINDWOS,沒有COS的CPU卡就象沒有DOS和WINDOWS的PC機(jī)一樣無法使用。 無需注冊 COS是在芯片出廠時由芯片

7、供應(yīng)商固化到ROM區(qū)的,這個過程就稱之為掩膜。 COS是CPU卡的核心部分,它和硬件一起實現(xiàn)CPU卡的安全性。 、第二部分 SmartCOS簡介 SmartCOS是由明華公司自主開發(fā)的芯片操作系統(tǒng),于1999年6月通過了人行認(rèn)證。 COS主要分為四部分:一、 SMARTCOS的文件系統(tǒng) CPU卡是以文件方式來管理SmartCOS支持如下文件系統(tǒng)。 1、文件可分為MF文件、DF文件、EF文件 MF:主控文件,是整個文件系統(tǒng)的根,是唯一的,相當(dāng)于根目錄; DF:專用文件,相當(dāng)于子目錄,可用于存儲某個應(yīng)用的所有文件,DF下不可再建立DF。一個DF可以是一個應(yīng)用,也可以多個DF用于同一個應(yīng)用。 EF:

8、基本文件,用于存儲各種應(yīng)用數(shù)據(jù)和管理信息。 2、EF從存儲內(nèi)容上分為兩種: 安全基本文件:用于存放密鑰,每個目錄下只能建立一個安全基本文件,密鑰文件不能通過文件選擇來選取,密鑰內(nèi)容不可以讀出,但在滿足條件時可使用和修改。 工作基本文件:用于存放應(yīng)用的實際數(shù)據(jù),個數(shù)及大小只受空間限制。在滿足條件時可讀寫。 3、基本文件結(jié)構(gòu) 基本文件的結(jié)構(gòu)可分為以下四種: 二進(jìn)制文件: 數(shù)據(jù)以字節(jié)為單位進(jìn)行讀寫,每次讀寫的長度不能超過110字節(jié);可用于存儲無序的數(shù)據(jù)。 線性定長記錄文件: 每條記錄為固定長度,可以通過記錄號訪問記錄,記錄范圍不超過254; 每條記錄的長度不超過110字節(jié),密鑰文件就是線性定長記錄文

9、件,其每條記錄長度固定為25外字節(jié)。可用于存放有規(guī)律定長的數(shù)據(jù)。 無需注冊 線性變長記錄文件: 每條記錄的長度可以各不相同,但最大長度不能超過110 字節(jié),可以通過記錄號來訪問。 循環(huán)定長記錄文件結(jié)構(gòu): 相當(dāng)于一個環(huán)形記錄隊列,按照先進(jìn)先出的原則存儲,最新寫入的記錄號為1,上一次寫入的記錄號為2,以此類推,記錄寫滿后自動覆蓋最早的記錄。 4、文件結(jié)構(gòu)圖 在MF下可建立EF和DF; 在DF下不可再建立DF,只能建立EF; KEY文件:用于控制MF下的文件的創(chuàng)建及讀寫 數(shù)據(jù)文件 密鑰文件: 用于控制DF下的文件的創(chuàng)建及訪問 數(shù)據(jù)文件(如錢包文件等) 5、文件空間的計算 MF的頭文件長度為10個字節(jié)

10、+文件名長度(5-16個字節(jié)) DF的頭文件長度為10個字節(jié)+文件名長度 EF文件所占空間: 定義記錄和循環(huán)記錄文件的空間=文件頭空間(10字節(jié))+記錄數(shù)*記錄長度 變長記錄結(jié)構(gòu)文件的空間=文件頭空間(10個字節(jié))+建立時申請的空間 密鑰文件所占空間=文件頭空間(10個字節(jié))+密鑰個數(shù)*25個字節(jié) 錢包文件的空間=文件頭(10個字節(jié))+文件體(17個字節(jié)) 存折文件的空間=文件頭(10個字節(jié))+文件體(20個字節(jié)) 建立了文件系統(tǒng),那么怎樣才能保證文件的安全,下面講述安全系統(tǒng)。 二、SMARTCOS的安全系統(tǒng) 1、 狀態(tài)機(jī)即安全狀態(tài): 是指卡在當(dāng)前所處的一種安全級別,具有(0-F)16種安全狀

11、態(tài)。復(fù)位后自動設(shè)為0,當(dāng)前應(yīng)用的安全狀態(tài)在被成功地選擇或復(fù)位后自動清0。安全狀態(tài)的改變必須通過密鑰的認(rèn)證來實現(xiàn)。 *只有當(dāng)前目錄下的PIN核對和外部認(rèn)證才能改變安全狀態(tài)。 2、 安全屬性即訪問權(quán)限 訪問權(quán)限是在建立文件的時候指定的。 它是一個區(qū)間的概念,例如,描述一個文件的讀權(quán)限為XY,則表示當(dāng)前應(yīng)用的狀態(tài)機(jī)(安全狀態(tài))M必須滿足X=M=Y。如讀權(quán)限設(shè)為2F,就表示當(dāng)前的狀態(tài)機(jī)(安全狀態(tài))達(dá)到2及以上就可以讀這個文件。 3、 密鑰與安全狀態(tài)的關(guān)系 每個密鑰在建立的時候都定義了后續(xù)狀態(tài),即通過密鑰認(rèn)證后能達(dá)到的安全狀態(tài),在各種密鑰中,只有PIN認(rèn)證和外部認(rèn)證才能改變當(dāng)前目錄的安全狀態(tài)。 4、安全

12、狀態(tài)與訪問權(quán)限的關(guān)系 (安全狀態(tài)) 使用權(quán)限-密鑰的使用-后續(xù)狀態(tài)-文件讀寫取限 5、安全狀態(tài)只在當(dāng)前目錄下有效,一旦選擇別的應(yīng)用,狀態(tài)機(jī)自動跳到最低權(quán)限0。各個目錄之間的安全都是獨立的。 四、復(fù)位應(yīng)答 符號 字節(jié)內(nèi)容 內(nèi)容解釋 TS 3B 正向約定 T0 6C TB1和TC1存在,歷史字符為12個 TB1 00 無需額外的編程電壓 TC1 02 需2個額外的保護(hù)時間 T1-TC XX 歷史字符 SMARTCOS 歷史字符的特定意義: 符號 字節(jié)內(nèi)容 內(nèi)容解釋 T1 XX SMARTCOS 的版本號 T2 XX 卡狀態(tài)字節(jié) T3 86 明華公司IC卡制造機(jī)構(gòu)標(biāo)識號 T4 38 T5-TC XX

13、 卡唯一序號 卡狀態(tài)字節(jié)描述如下: B7 B6 B5 B4 B3 B2 B1 B0 狀態(tài) 011 XXX XXX 001 XXX XXX XXX XXX 該卡已初始化,并成功該卡未被初始化該卡初始化過程被鎖 0 0 0 0 0 0 X X 該卡未個人化 PCB下載站 0 0 1 0 X X X X 該卡個人化未結(jié)束 0 1 1 0 X X X X 該卡個人化成功 0 0 0 1 X X X X 該卡個人化沒有成功,卡被鎖 0 1 1 1 X X X X 該卡個人化成功,卡被鎖 卡片狀態(tài)字節(jié)中有關(guān)于初始化、個人化的概念,我們從卡片的生命周期來看這兩個概念,卡片的生命周期一般包括如下幾部分: 芯片

14、 芯片生產(chǎn)商掩膜COS 芯片生產(chǎn)商 封裝成卡片 卡片生產(chǎn)商 卡片的初始化(COS啟用) 卡片生產(chǎn)商 傳輸密碼保護(hù) 卡片的個人化 卡片發(fā)行商 卡片的使用 卡片的使用者 卡片的回收 卡片發(fā)行商 初始化過程就是激活COS,定義COS版本,經(jīng)過這個過程COS才可以使用。 個人化過程是指建立文件,寫入用戶數(shù)據(jù)等操作。 卡片生產(chǎn)商在進(jìn)行初始化后交付卡片發(fā)行商使用時,有傳輸密碼保護(hù)。 IC卡必須支持T=0或T=1的協(xié)議,但不是同時支持這兩種協(xié)議,而終端則必須同時支持T=0和T=1的協(xié)議。 T=0通訊協(xié)議是異步半雙工字符傳輸協(xié)議; T=1通訊協(xié)議是異步半雙工塊傳輸協(xié)議; 在ISO7816-3標(biāo)準(zhǔn)中,具體規(guī)定了

15、這兩種協(xié)議; IC卡所用的協(xié)議在TD1中指定,如果在復(fù)位應(yīng)答信息中沒有TD1,則表示用T=0的協(xié)議進(jìn)行通訊。在復(fù)位應(yīng)答后,IC卡和終端之間即用IC卡指定的協(xié)議進(jìn)行通訊。 五、 指令解析 在此,我們以一個電子錢包的應(yīng)用為例,講解SmartCOS的指令。 1、文件結(jié)構(gòu): 在人行規(guī)范中定義了如下文件結(jié)構(gòu): 1)電子存折ED/電子錢包EP應(yīng)用的公共應(yīng)用基本數(shù)據(jù)文件 jixie163com 文件結(jié)構(gòu): 文件標(biāo)識(SFI) 21(十進(jìn)制) 文件類型 透明 文件大小 30 文件存取控制 讀=自由 改寫=需要安全信息 字節(jié) 數(shù)據(jù)元 長度 1-8 發(fā)卡方標(biāo)識 8 9 應(yīng)用類型標(biāo)識 1 10 應(yīng)用版本 1 11-

16、20 應(yīng)用序列號 10 21-24 應(yīng)用啟用日期 4 25-28 應(yīng)用有效日期 4 29-30 發(fā)卡方自定義FCI數(shù)據(jù) 2 2)電子存折ED/電子錢包EP應(yīng)用的持卡者基本數(shù)據(jù)文件 文件標(biāo)識(SFI) 22(十進(jìn)制) 文件類型 透明 文件大小 39 文件存取控制 讀=自由 改寫=需要安全信息 字節(jié) 數(shù)據(jù)元 長度 1 卡類型標(biāo)識 1 2 本行職工標(biāo)識 1 3-22 持卡人姓名 20 23-38 持卡人證件號碼 16 39 持卡人證件類型 1 3)電子存折ED交易明細(xì)文件 文件標(biāo)識(SFI) 24(十進(jìn)制) 文件類型 循環(huán) 文件存取控制 讀=PIN保護(hù) 改寫=不允許 記錄大小 23 字節(jié) 數(shù)據(jù)元 長

17、度 1-2 ED或EP聯(lián)機(jī)或脫機(jī)交易序號 2 3-5 透支限額 3 6-9 交易金額 4 10 交易類型標(biāo)識 1 11-16 終端機(jī)編號 6 專業(yè)軟件下載 17-20 交易日期(終端) 4 21-23 交易時間(終端) 32、安全設(shè)計如下: 1) 核對口令后可以進(jìn)行外部認(rèn)證; 2) 01號外部認(rèn)證密鑰用于控制電子錢包的圈存; 3) 02號外部認(rèn)證密鑰用于控制基本文件的修改、密鑰的修改; 4) 核對口令后可以進(jìn)行消費。 KEY文件安裝如下密鑰: KEY類型 標(biāo)識KID 使用權(quán)限 后續(xù)狀態(tài) 該KEY作用描述 0B 01 0F 1 個人密碼PIN,用于個人密碼校驗 08 01 11 2 外部認(rèn)證密鑰

18、,用于電子錢包圈存 08 02 1F F 外部認(rèn)證密鑰,用于基本文件的修改、密鑰的修改 01 01 22 無圈存密鑰,用于產(chǎn)生圈存MAC 00 02 01 無電子錢包消費密鑰,用于產(chǎn)生錢包消費MAC 02 01 03 無TAC密鑰,用于產(chǎn)生圈存、消費、取現(xiàn)、修改透支限額的TAC 05 01 33 無應(yīng)用維護(hù)密鑰,用于產(chǎn)生應(yīng)用鎖定、應(yīng)用解鎖、卡片鎖定、卡片鎖定和讀、更新二進(jìn)制、記錄命令的MAC 3、指令序列: 1) 發(fā)卡過程,在卡上建立文件及安裝密鑰 Create MF APDU命令:80(CLA) e0(INS) 00(P1) 00(P2) 18(Lc) ff ff ff ff ff ff f

19、f ff (8字節(jié)傳輸代碼) ff (在MF下建立文件的安全屬性) 01(目錄文件的短文件標(biāo)識符) 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31(創(chuàng)建的文件名稱) jixie163com Create DF APDU命令:80(CLA)E0(INS)01(P1) 00(P2) 0D (Lc信息長度)2F 01(文件標(biāo)識符)ff(建立文件權(quán)限) 00(COS保留) A0 00 00 00 03 86 98 07 01(ADF名稱) 建立DF下密鑰文件Create File APDU命令:80(CLA) E0(INS)02(P1) 00(P2) 07(文件信息

20、長度) 6F 02(密鑰文件標(biāo)識 )05(文件類型) FF(增加新密鑰的權(quán)限)00(COS保留) 09(記錄數(shù)) 19(記錄長度): 安裝個人密碼PIN Write Key APDU命令:80(CLA) E8(INS) 00(P1) 00(P2) 0A (密鑰信息長度)01(密鑰標(biāo)識符)01(密鑰版本號) 00(算法標(biāo)識)0B(密鑰類型)0F(使用權(quán)限) 01(后續(xù)狀態(tài))2F(修改權(quán)限)33 (錯誤計數(shù)器)12 34(個人密碼) 安裝外部認(rèn)證密鑰(DEAK)Write Key APDU命令:80 (CLA)E8(INS) 00(P1) 00(P2) 18(密鑰信息長度) 01(密鑰標(biāo)識符) 0

21、1(密鑰版本號) 00(算法標(biāo)識) 08(密鑰類型) 11(使用權(quán)限) 02(后續(xù)狀態(tài)) FF(修改權(quán)限) 33 (錯誤計數(shù)器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密鑰內(nèi)容)安裝外部認(rèn)證密鑰(DEAK)Write Key APDU命令:80 (CLA)E8(INS) 00(P1) 00(P2) 18(密鑰信息長度) 02(密鑰標(biāo)識符) 01(密鑰版本號) 00(算法標(biāo)識) 08(密鑰類型) 1F(使用權(quán)限) 0F(后續(xù)狀態(tài)) FF(修改權(quán)限) 33 (錯誤計數(shù)器)XX XX XX XX XX XX XX XX XX XX XX XX

22、XX XX XX XX(密鑰內(nèi)容)。安裝電子錢包EP的消費密鑰DPK。Write Key APDU命令:80 (CLA)E8(INS) 00(P1) 00(P2) 18(密鑰信息長度) 02(密鑰標(biāo)識符) 01(密鑰版本號) 00(算法標(biāo)識) 00(密鑰類型) 01(使用權(quán)限) 00(后續(xù)狀態(tài)) FF(修改權(quán)限) 00 (錯誤計數(shù)器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密鑰內(nèi)容) 安裝電子錢包的圈存密鑰DLK Write Key APDU命令:80 (CLA )E8(INS) 00(P1) 00(P2) 18(密鑰信息長度) 01(密

23、鑰標(biāo)識符) 01(密鑰版本號) 00(算法標(biāo)識) 01(密鑰類型) 22(使用權(quán)限) 00(后續(xù)狀態(tài)) FF(修改權(quán)限) 00 (錯誤計數(shù)器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密鑰內(nèi)容)安裝消費/取現(xiàn)中用來生成TAC的密鑰DTKWrite Key APDU命令:80 (CLA)E8(INS) 00(P1) 00(P2) 18(密鑰信息長度) 01(密鑰標(biāo)識符) 01(密鑰版本號) 00(算法標(biāo)識) 07(密鑰類型) 0F(使用權(quán)限) 00(后續(xù)狀態(tài)) FF(修改權(quán)限) 00 (錯誤計數(shù)器)XX XX XX XX XX XX XX X

24、X XX XX XX XX XX XX XX XX(密鑰內(nèi)容) 安裝應(yīng)用維護(hù)密鑰DAMKWrite Key APDU命令:80 (CLA)E8(INS) 00(P1) 00(P2) 18(密鑰信息長度) 01(密鑰標(biāo)識符) 01(密鑰版本號) 00(算法標(biāo)識) 05(密鑰類型) 0F(使用權(quán)限) 00(后續(xù)狀態(tài)) FF(修改權(quán)限) 00 (錯誤計數(shù)器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密鑰內(nèi)容) 建立公共應(yīng)用基本文件Create File APDU命令:80(CLA) E0(INS) 02(P1) 00(P2) 07(Lc信息長度)

25、 00 15 (文件標(biāo)識符)00 (二進(jìn)制文件類型)0F(讀權(quán)限)FF(更新權(quán)限)00 1e(文件長度) 建立持卡者基本數(shù)據(jù)文件Create File APDU命令:80(CLA) E0(INS) 02(P1) 00(P2) 07(文件信息長度) 00 16 (文件標(biāo)識符)00(二進(jìn)制文件類型)0F(讀權(quán)限)FF(更新權(quán)限) 00 27(文件長度) 建立交易明細(xì)文件Create File APDU命令:80(CLA) E0(INS) 02(P1) 00 (P2)07 (文件信息長度)00 18(文件標(biāo)識符) 03(循環(huán)記錄文件類型)1F(讀權(quán)限)10(更新權(quán)限)0a 17(文件長度) 寫公共應(yīng)

26、用基本數(shù)據(jù)文件Update Binary APDU命令:00(CLA)D6(INS)95(P1)00(P2)1E(信息長度)A0 00 00 00 03 00 00 01(發(fā)卡方標(biāo)識)03(應(yīng)用類型標(biāo)識)01(應(yīng)用版本) 00 00 19 98 08 15 00 00 00 01(應(yīng)用序列號) 20 00 10 01 (應(yīng)用啟用日期)20 02 12 31(應(yīng)用有效日期)55 66 (發(fā)卡方自定義FCI數(shù)據(jù)) 無需注冊 寫卡持有者基本數(shù)據(jù)文件Update Binary APDU命令:00(CLA) D6(INS) 96(P1) 00(P2) 27(文件信息長度) 00(卡類型標(biāo)識) 00(本行

27、職工標(biāo)識) 53 41 4d 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00(持卡人姓名) 31 31 30 31 30 38 37 30 30 33 31 37 31 38 39 00(持卡人證件號碼) 00 (持卡人證件類型) 建立電子錢包EP文件Create File APDU 命令:80(CLA)E0(INS)02(P1)00(P2)07(Lc)00 01(文件標(biāo)識符)06(文件類型)00(權(quán)限1)00(權(quán)限2)00(LEN1)00(LEN2)結(jié)束建立應(yīng)用(DF)Create End APDU命令:80(CLA) E0(INS) 0

28、1(P1) 01(P2) 02 (文件標(biāo)識符長度)2F 01(文件標(biāo)識符) 結(jié)束建立MF Create End APDU命令:80(CLA) E0(INS) 00(P1) 01(P2) 02 (文件標(biāo)識符長度)3F 00(文件標(biāo)識符) 2) 交易過程 在此,我們以圈存過程及消費過程為例: A、 圈存將金額存入卡中 在圈存前必須先校對個人口令及01號外部認(rèn)證; 選擇應(yīng)用Select FileAPDU命令:00(CLA)A4(INS)00(P1)00(P2)02(長度)2F 01(文件標(biāo)識符) 校驗PINVerify APDU命令:00(CLA) 20(INS) 00(P1) 00(P2) 02(

29、長度) 12 34(PIN) 外部認(rèn)證: 取隨機(jī)數(shù)Get Challenge APDU命令:00(CLA) 84(INS) 00(P1) 00(P2) 08 用01號外部認(rèn)證密鑰對隨機(jī)數(shù)進(jìn)行3DES加密; 外部認(rèn)證External Authentication APDU命令:00(CLA) 82(INS) 00(P1) 01 (P2) 08(長度)XX XX XX XX XX XX XX XX (加密后的隨機(jī)數(shù)) 圈存: 初始化圈存Initalize For Load APDU命令:80(CLA) 50(INS) 00(P1) 02(P2) 0B(長度) 01(密鑰標(biāo)識符) 00 00 10

30、00(交易金額) 00 00 00 00 00 01(終 端機(jī)編號)如果初始化圈存成功,則應(yīng)答數(shù)據(jù)域內(nèi)容: 說明 長度(字節(jié)) 電子存折或電子錢包舊余額 4 電子存折或電子錢包聯(lián)機(jī)交易序號 2 密鑰版本號 1 算法標(biāo)識 1 偽隨機(jī)數(shù)ICC 4 MAC1 4 用圈存對應(yīng)答內(nèi)容(4字節(jié)偽隨機(jī)數(shù)ICC+2字節(jié)電子存折或電子錢包聯(lián)機(jī)交易序號+80 00)進(jìn)行3DES加密生成過程密鑰; 圈存Credit For LoadAPDU命令:80(CLA)52(INS)00(P1)00(P2)0B(LC) YY YY MM DD (交易日期)HH MM SS (交易時間)XX XX XX XX(MAC2) MA

31、C2的計算: 初始值:00 00 00 00 00 00 00 00 密鑰:上面生成的過程密鑰 生成MAC2的數(shù)據(jù):00 00 10 00(4字節(jié)交易金額)02(交易類型標(biāo)識)00 00 00 00 00 01(6字節(jié)終端機(jī)編號)YY YY MM DD (交易日期)HH MM SS (交易時間) 如果圈存交易成功,電子錢包文件的聯(lián)機(jī)交易序號加1,交易金額加在電子錢包的余額上,并且在交易明細(xì)文件中增加一條記錄。 B、消費過程: 在消費之前先校驗PIN: 校驗PINVerify APDU命令:00(CLA) 20(INS) 00(P1) 00(P2) 02(長度) 12 34(PIN) PCB下載

32、站 初始化消費Initialize For Purchase APDU命令:80(CLA) 50(INS) 01(P1) 02(P2) 0B(長度) 01(消費密鑰標(biāo)識符)00 00 00 01(消費金額)00 00 00 00 00 01(終端機(jī)編號) 如果初始化消費成功,則應(yīng)答數(shù)據(jù)域內(nèi)容: 說明 長度(字節(jié)) 電子存折或電子錢包舊余額 4 電子存折或電子錢包聯(lián)機(jī)交易序號 2 透支限額 3 密鑰版本號 1 算法標(biāo)識 1 偽隨機(jī)數(shù)ICC 4 消費Debit For PurchaseAPDU命令:80(CLA)54(INS)01(P1)00(P2)0F(LC) YY YY YY YY (終端交易

33、序號)YY YY MM DD(終端交易日期)HH MM SS (交易時間)XX XX XX XX(MAC1) 用消費/取現(xiàn)密鑰對(4字節(jié)偽隨機(jī)數(shù)ICC+2字節(jié)電子存折或電子錢包聯(lián)機(jī)交易序號+終端交易序號的最后2個字節(jié))進(jìn)行3DES加密生成過程密鑰; MAC1的計算: 初始值:00 00 00 00 00 00 00 00 00(8個字節(jié)) 密鑰:過程密鑰 生成MAC碼的數(shù)據(jù):4字節(jié)交易金額+1字節(jié)交易類型標(biāo)識+6字節(jié)終端機(jī)編號+4字節(jié)終端交易日期+3字節(jié)終端交易時間 如果消費交易成功,電子錢包文件的聯(lián)機(jī)交易序號加1,電子錢包減去交易金額,并且在交易明細(xì)文件中增加一條記錄。 無插件,無病毒 六、

34、其它指令解析 以下指令在使用過程中有較多的疑問,解釋如下: 1、密鑰的密文安裝過程: 在3.2版本中對密鑰的密文安裝會有所不同,它的過程如下: 1)建立密鑰文件: 建立密鑰文件時,有關(guān)的文件信息如下表: Lc 有關(guān)文件信息 07 文件標(biāo)識符 (2字節(jié)) 文件類型 (1字節(jié)) 權(quán)限1 (1字節(jié)) 權(quán)限2(1字節(jié)) Len1(1字節(jié)) Len2 (1字節(jié)) 權(quán)限1指明增加新密鑰的權(quán)限,權(quán)限2指明用何種方式安裝密鑰。權(quán)限2設(shè)為80h,表示以密文方式安裝。 2)使用上一層的應(yīng)用主控密鑰(SmartCOS 3.2中規(guī)定:密鑰標(biāo)識為01的外部認(rèn)證密鑰為應(yīng)用主控密鑰)對密鑰信息進(jìn)行加密(密鑰信息為:明文密鑰

35、信息長度+密鑰信息+80 00 00 00 00 00 00),對密鑰信息的加密方式按標(biāo)準(zhǔn)的Triple DES或Single DES,如果密鑰為16字節(jié),則用Triple DES加密,如果為8字節(jié),則用Single DES加密。 3)生成MAC碼,初始值為:4個字節(jié)的隨機(jī)數(shù)+00 00 00 00,生成MAC碼的數(shù)據(jù)為:5個命令頭+加密后的密鑰信息。 4)其它密鑰的密文安裝都使用應(yīng)用主控密鑰加密安裝。 5)密文安裝MF下的應(yīng)用主控密鑰時,則使用卡片的傳輸密鑰進(jìn)行安裝。 2、采用安全報文寫二進(jìn)制文件 無插件,無病毒 1) 在建立二進(jìn)制文件時,文件類型的第4位為1表示采用安全報文。 2)LC為寫入的字節(jié)數(shù)+4 3)安全報文(MAC)的計算: 初始值為:4個字節(jié)的隨機(jī)數(shù)+00 00 00 00 密鑰為:應(yīng)用維護(hù)密鑰代碼 值 CLA 04 INS D6 P1 Xx P2 Xx Lc 寫入數(shù)據(jù)長度+4 DATA 寫入數(shù)據(jù)+4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論