Posted on 2006-06-29 16:49
奔跑的阿甘 閱讀(996)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
ATM Technology/EMV Notes
ICC的數(shù)據(jù)存儲(chǔ)
Michael 2006/06/29
ICC卡支持多應(yīng)用,每個(gè)應(yīng)用都存儲(chǔ)著相關(guān)的信息,這些信息像操作系統(tǒng)的文件結(jié)構(gòu)一樣存儲(chǔ)。
最小的信息單位是數(shù)據(jù)元素,它包含數(shù)據(jù)元素名稱、內(nèi)容描述、格式和編碼,比如:
Name??????????|??????????Description???????????????|???Source??|???????Format??????????|Template |?Tag???|????Length
Application?|?Valid cardholder account number?| ICC?| cn var. up to 19 |??'70' or '77' |?'5A'?|?var. up to 10
Primary Account
Number (PAN)
數(shù)據(jù)對(duì)象,由TAG、LENGTH、VALUE組成,每個(gè)數(shù)據(jù)對(duì)象由一個(gè)該應(yīng)用范圍內(nèi)唯一的TAG進(jìn)行標(biāo)識(shí)。和OS的文件夾類似,一個(gè)數(shù)據(jù)對(duì)象可僅僅包含數(shù)據(jù)元素,或者子數(shù)據(jù)對(duì)象,如果該數(shù)據(jù)對(duì)象值為數(shù)據(jù)元素,則被稱作“原始數(shù)據(jù)對(duì)象(Primitive Data Object)”;如果該數(shù)據(jù)對(duì)象值為其他(一個(gè)或多個(gè))數(shù)據(jù)對(duì)象,則它被稱作“組合數(shù)據(jù)對(duì)象(Constructed Data Object)”,相應(yīng)地,它的值被稱作“模板(Template)”。這兩類數(shù)據(jù)對(duì)象的TAG是不一樣的,所以,從TAG可以知道它屬于哪一種類型。例如,77099F1A0208409F350101,它是一個(gè)組合對(duì)象,TAG='77',組合對(duì)象的長(zhǎng)度為9個(gè)字節(jié),組合對(duì)象的值為"9F1A0208409F350101",即它包含兩個(gè)原始數(shù)據(jù)對(duì)象,分別是對(duì)象"9F1A"(LEN=02, VALUE=0840)和"9F35"(LEN=01, VALUE=01)。
上面我們討論了一些邏輯概念,現(xiàn)在讓我們具體看看ICC中對(duì)上述概念是如何存儲(chǔ)的。
每個(gè)應(yīng)用包含一個(gè)或多個(gè)文件(Files),它是ICC中信息的存儲(chǔ)格式,文件中包含大量的記錄(Records),記錄就是模板(即它存放了一個(gè)或多個(gè)數(shù)據(jù)對(duì)象)。關(guān)于他們之間的關(guān)系,我們可以做個(gè)形象的比喻,文件就像數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)庫(kù),記錄如同數(shù)據(jù)庫(kù)中的表,數(shù)據(jù)對(duì)象則似表中的每條記錄。
那么如何訪問(wèn)文件呢?
文件有三種類型:AEF(Application Elementary File)、ADF(Application Definition File)、DDF(Directory Definition File)。對(duì)于ADF和DDF,采用文件名稱進(jìn)行訪問(wèn),文件不可以重名,它在卡中必須是獨(dú)一無(wú)二的。對(duì)于AEF,采用一個(gè)整數(shù)標(biāo)識(shí)(范圍從1-30)即SFI(Short File Identifier)進(jìn)行訪問(wèn),同樣地,該標(biāo)識(shí)不可以重復(fù),它在同一應(yīng)用中是獨(dú)一無(wú)二的。
我們?cè)賮?lái)看看終端通過(guò)哪些命令來(lái)和ICC交互。
不同的發(fā)卡行對(duì)IC卡的定義是不一樣的,在EMV標(biāo)準(zhǔn)中,定義了以下命令集,除此之外,發(fā)卡行可以定義針對(duì)自身的命令集。
終端發(fā)給ICC的命令集合(共13個(gè)):
命令類別 ? 指令碼 ? 含義
‘8x’ ?? ?? ? ‘1E’ ??? APPLICATION BLOCK
‘8x’ ??? ??? ‘18’ ??? APPLICATION UNBLOCK
‘8x’ ?? ?? ? ‘16’ ??? CARD BLOCK
‘0x’ ?? ?? ? ‘82’ ??? EXTERNAL AUTHENTICATE【請(qǐng)求ICC校驗(yàn)ISSUER AUTHENTICATION DATA】
‘8x’ ?? ?? ? ‘AE’ ??? GENERATE APPLICATION CRYPTOGRAM【返回CID(Cryptogram Information Data),?ATC
?????????????????????????????????????(Application??Transaction Counter, AC(Application Cryptogram)數(shù)據(jù)】
‘0x’ ?? ?? ? ‘84’?? ? GET CHALLENGE【獲取隨機(jī)數(shù)】
‘8x’ ? ??? ? ‘CA’ ??? GET DATA【限于讀取ATC(tag '9F36'), Last Online ATC Register(tag '9F13'), PIN Try
?????????????????????????????????????Counter(tag '9F17')】
‘8x’ ??? ? ? ‘A8’?? ? GET PROCESSING OPTIONS【返回AIP(Application Interchange Profile)和AFL
????????????????????????????????????(Application?File Locator)】
‘0x’ ?? ?? ? ‘88’?? ? INTERNAL AUTHENTICATE【請(qǐng)求ICC計(jì)算并返回Signed Dynamic Application Data】
‘8x’ ? ??? ? ‘24’?? ? PERSONAL IDENTIFICATION NUMBER (PIN)CHANGE/UNBLOCK【激活PIN,
????????????????????????????????????重設(shè)PIN RETRY Counter】
‘0x’ ?? ?? ? ‘B2’?? ? READ RECORD【讀取RECORD數(shù)據(jù),如Application Expiration Date, Application PAN,?
???????????????????????????Card Risk?Managemt Data Object List1, Card Risk Management Data Object List2, etc】
‘0x’ ? ??? ? ‘A4’?? ? SELECT
‘0x’ ?? ?? ? ‘20’?? ? VERIFY【要求ICC進(jìn)行脫機(jī)密碼校驗(yàn)(Transaction PIN & Reference PIN)】
‘8x’ ? ??? ? ‘Dx’?? ? RFU for the payment systems
‘8x’ ? ??? ? ‘Ex’?? ? RFU for the payment systems
‘9x’ ? ??? ? ‘xx’?? ? RFU for manufacturers for proprietary INS coding
‘Ex’ ?? ?? ? ‘xx’?? ? RFU for issuers for proprietary INS coding
終端發(fā)給ICC的命令由4個(gè)字節(jié)的命令包頭和命令碼以及相關(guān)參數(shù)組成。ICC返回給終端的數(shù)據(jù)是我們?cè)谇懊嫣岬降?b>數(shù)據(jù)對(duì)象或模板,再添加2個(gè)字節(jié)的命令執(zhí)行狀態(tài)。
到這里,我們知道了ICC中有哪些數(shù)據(jù),以及它們?nèi)绾未鎯?chǔ),終端如何訪問(wèn)它們。