專利名稱:一種實現(xiàn)ic卡安全交易的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IC卡應(yīng)用領(lǐng)域,特別是涉及一種售前交易的IC卡安全認證實現(xiàn)方法。
目前,IC卡的應(yīng)用越來越普及,范圍也越來越廣泛,由于其使用方便、便于攜帶、運行快捷、安全可靠等特點而越來越受到更多使用者的歡迎,特別是在自助的環(huán)境下。
但是,現(xiàn)有的采用IC卡的支付系統(tǒng)針對的主要是售后交易,即支付方在支付后獲得服務(wù),如商場購物。而對售前交易,即支付方先獲得服務(wù)后支付,如IC卡加油,則在安全保證上存在有漏洞,尤其是自助環(huán)境下的售前服務(wù)?,F(xiàn)以IC卡加油為例作進一步說明依照現(xiàn)有的一般IC卡支付系統(tǒng),在用IC卡加油時,其流程為用戶插卡、IC卡與終端的雙向認證、用戶加油、加油結(jié)束、終端從IC卡扣款。從上面的流程中可以看出,在從用戶開始加油到終端從IC卡扣款成功這一段較長的時間內(nèi),如果出現(xiàn)IC卡被從讀卡器中拔出、中途斷電或終端意外故障等情況,引起終端對IC卡扣款操作無法進行下去(這種情形統(tǒng)稱逃卡)時,會引起一系列的問題。而加油環(huán)境下受其行業(yè)的防爆規(guī)范限制,采用全吞式讀卡器,成本很高,難以推廣。
為解決這一問題,現(xiàn)有的IC卡加油支付系統(tǒng)均引入了灰鎖的概念?;益i是指在IC卡上作一個特定的標記,以標識IC卡在上次使用時的使用情況。若IC卡上的灰鎖標記(簡稱灰標記)被清除,說明這張IC卡在上次交易中正常結(jié)束操作,可以繼續(xù)使用;若IC卡上存在灰鎖標記,則說明在上次使用時,交易并沒有正常結(jié)束,這張IC卡(稱為灰卡)若要繼續(xù)使用,必須先將該灰鎖標記清除(解灰鎖,簡稱解灰),如果上次沒有從這張卡上扣除所需的金額,則還需先補扣上次交易金額來平帳。
因此,上述的IC卡加油交易流程就變?yōu)橛脩舨蹇?、IC卡與終端的雙向認證、判斷是否灰卡、若不是灰卡則灰鎖IC卡、用戶加油、加油結(jié)束、終端從IC卡扣款、終端對IC卡解灰鎖。同時增加了解灰交易,其流程為若IC卡是灰卡,查找相應(yīng)的灰記錄,判斷灰記錄與IC卡的匹配,若存在與IC卡相匹配的灰記錄,則補扣灰記錄中的交易額(如果需要),解灰鎖。在上述交易流程中,由于扣款和解灰是分開操作的,因此仍存在有安全隱患若能夠僅僅操作灰標記而不進行扣款的話,對持卡人而言就能獲利,而對發(fā)卡方而言就會蒙受損失。在此,引入“交易的獲益方”這一概念加以深入說明。
根據(jù)對IC卡隨意操作時的收益方,將交易(或?qū)C卡的操作)分為正方交易和負方交易。正方交易(或?qū)C卡的操作)是指那些如果可以隨意操作的話,會對持卡人有利或?qū)Πl(fā)卡人不利的交易(或?qū)C卡的操作),如圈存、更改透支限額、個人密碼(PIN)解鎖、更改IC卡上受保護的文件等;負方交易(或?qū)C卡的操作)是指那些如果可以隨意操作的話,會對持卡人不利或?qū)Πl(fā)卡人有利的交易(或?qū)C卡的操作),如消費等。一般而言,正方交易的保護密鑰存放在發(fā)卡方主機上,而負方交易的保護密鑰可以存放在終端內(nèi),現(xiàn)有的常用方式是存放在終端的PSAM卡上。
根據(jù)正方交易和負方交易的定義,可以看出扣款操作是負方操作,密鑰是可以存放在PSAM卡上的,而解灰操作是正方操作,密鑰應(yīng)保存在發(fā)卡方主機上。但是在正常的交易流程中又必須有解灰操作,且不可能聯(lián)機進行,所以就出現(xiàn)了矛盾。解灰操作的密鑰如果存放在PSAM卡上的話,由于PASM卡是一張IC卡,它只能用密鑰被動的計算和認證,對解灰操作而言并不存在約束,這樣就有PSAM被使用于非法解鎖灰卡的可能。
現(xiàn)有技術(shù)的應(yīng)用中,是將解灰密鑰存放在終端的加密模組中,或?qū)⒔饣颐荑€一部分存放在終端的加密模組中,一部分存放在終端的PSAM卡上。由于加密模組內(nèi)部可以存放程序,具有一定的自主性,所以將解灰的操作內(nèi)建在加密模組中,由它來實現(xiàn)對解灰的安全控制。為了實現(xiàn)加密模組對解灰的安全控制,就必須在服務(wù)前鎖卡,即建立IC卡的灰鎖標記。如果在中途發(fā)生逃卡,由終端通過網(wǎng)絡(luò)將逃卡金額及當(dāng)前余額上報,在解灰時就需要根據(jù)灰鎖的標記及通過網(wǎng)絡(luò)下發(fā)的脫逃金額及余額來判斷補扣的金額,并在補扣后將IC卡解灰。這時又存在了新的問題(1)IC卡無法判斷補扣金額的合法性,補扣金額的安全保障以只能由網(wǎng)絡(luò)和終端來提供,所以存在較薄弱的安全環(huán)節(jié);(2)如前所述,解鎖操作是正方交易,而正方保護密鑰不得不存放在不受發(fā)卡方控制的應(yīng)用環(huán)境下,對這部分密鑰的安全管理對發(fā)卡方而言也是一個問題。
到目前為止,還沒有一個徹底的解決方法來處理這種較為特殊的情況下的IC卡售前交易。
本發(fā)明的目的就在于提出一種通過對鎖卡來源的判斷識別而實現(xiàn)IC卡安全交易的方法。
本發(fā)明進一步的目的就在于提出上述的IC卡安全交易方法,通過操作在IC卡上建立的灰鎖標記,使IC卡的某些操作權(quán)限受到限制。
本發(fā)明的再一目的是提出上述的IC卡安全交易方法,更將扣款操作和解灰鎖操作合并為IC卡上的一步操作,徹底有效地解決上述問題,極大提高IC卡交易的安全性。
本發(fā)明一種實現(xiàn)IC卡安全交易的方法,是在IC卡上建立起至少一個的灰鎖標記,該等灰鎖標記是與IC卡某些操作的權(quán)限相關(guān)的。例如,當(dāng)操作該灰鎖標記使IC卡灰鎖時,IC卡將禁止執(zhí)行除與解灰鎖相關(guān)的操作以外的其他任何可能引起IC卡上電子存折(錢包)余額變化的IC卡操作,如普通的扣款操作等。
本發(fā)明一種實現(xiàn)IC卡安全交易的方法,在灰鎖IC卡時,即對灰鎖標記操作的同時,將鎖卡的來源記入IC卡;在解灰鎖的同時或之前,IC卡需執(zhí)行對該鎖卡來源以及解灰鎖合法性的判斷。鎖卡來源貫穿整個交易流程。
這里所述的解灰鎖合法性的判斷,可以是指對扣款金額合法性的判斷,對其判斷的依據(jù)可以是基于上述的鎖卡來源。
根據(jù)本發(fā)明技術(shù)方案,所述的鎖卡來源可以是在IC卡上建立的一條過程密鑰,該過程密鑰至少與一IC卡臨時生成的偽隨機數(shù)相關(guān)。
根據(jù)本發(fā)明技術(shù)方案,更進一步的可將扣款操作和解灰鎖操作合并為IC卡上的一步操作,即IC卡執(zhí)行對所述的鎖卡來源及扣款金額合法性的判斷成功之后,執(zhí)行扣款解灰鎖操作。
根據(jù)本發(fā)明技術(shù)方案,更進一步的可在主機上保存有一條可以實現(xiàn)強制解灰鎖操作的密鑰,使灰鎖后的IC卡可在聯(lián)機的終端上通過聯(lián)機方式實現(xiàn)強制解灰鎖操作;再進一步的可在執(zhí)行強制解灰鎖操作的同時實現(xiàn)扣款操作。例如,如果終端出現(xiàn)故障而引起無法扣款或數(shù)據(jù)不能上傳或這次記錄丟失,該卡可以在聯(lián)機的終端上通過聯(lián)機方式將灰標記清除。
上述的灰鎖IC卡是指IC卡根據(jù)其鎖卡的來源生成一認證碼,同時將產(chǎn)生該鎖卡來源的所需參數(shù)傳遞給終端,由終端采用與IC卡相同的機制產(chǎn)生另一鎖卡來源碼,并使用該鎖卡來源碼生成另一認證碼,將該認證碼送入IC卡,IC卡判斷與上述IC卡自身生成的認證碼是否相同,若相同時執(zhí)行灰鎖操作并將這次產(chǎn)生的一灰鎖特征碼返回給終端,該灰鎖特征碼是根據(jù)包括鎖卡來源及相應(yīng)信息在內(nèi)的數(shù)據(jù)生成。
上述的扣款解灰鎖是指終端根據(jù)其鎖卡來源和扣款所需的參數(shù)生成一認證碼,將該認證碼與相應(yīng)參數(shù)一并送入IC卡,IC卡內(nèi)部采用其自身的鎖卡來源和相同的參數(shù)通過相同的機制產(chǎn)生另一認證碼,判斷該認證碼與終端產(chǎn)生的認證碼一致就從IC卡的電子存折(錢包)上實現(xiàn)扣款,扣款成功的同時將灰鎖標記清除。
終端更進一步可將扣款時所需的認證碼、這次的逃卡金額及灰鎖特征碼共同作為這次灰記錄的部分信息保存起來,并上傳給中心機;如果某次交易過程未完整結(jié)束的未被扣款解灰的IC卡,下一次在任何一個保存有該灰記錄的終端上使用時,終端可先驗證該灰鎖特征碼以確定IC卡上的鎖卡來源與計算該條灰記錄中的扣款認證碼的鎖卡來源相同,通過后執(zhí)行補扣款解灰鎖操作。
根據(jù)本發(fā)明技術(shù)方案,所述的過程密鑰可以是過程消費密鑰(SESPK)=3DES(DPK,DATA),其中DPK是IC卡上電子存折(錢包)的消費密鑰,是由電子存折(錢包)消費主密鑰(MPK)根據(jù)該IC卡的應(yīng)用序號分散得到,DATA是特定的參數(shù),包括有所述的IC卡臨時生成的偽隨機數(shù)(ICC)、電子存折(錢包)的交易序號(CTC)、終端交易序號(TTC)的最后兩個字節(jié)??梢娒看谓灰椎腟ESPK由于IC卡的應(yīng)用序號及DATA不同而各不相同,所以可以用SESPK得到可靠的灰鎖來源。
根據(jù)本發(fā)明技術(shù)方案構(gòu)思,將灰鎖標記并入IC卡上電子存折(錢包)的屬性參數(shù)中,構(gòu)成一特殊的加油電子存折(錢包)時,除具備通常的讀余額、圈存、圈提、消費/取現(xiàn)、改透支限額等功能外,同時增加了加油消費、本地解灰鎖和聯(lián)機解灰鎖功能;描述該加油電子存折(錢包)的狀態(tài)除通常的空閑狀態(tài)、圈存狀態(tài)、消費/取現(xiàn)狀態(tài)、圈提狀態(tài)、修改狀態(tài)外,還存在預(yù)加油狀態(tài)、灰鎖狀態(tài)、和解灰鎖狀態(tài),并在加油電子存折(錢包)通常的命令集中增加了加油初始化、加油鎖卡、加油消費、解鎖初始化、解鎖、讀取狀態(tài)命令,其中,加油初始化命令用于初始化加油消費交易,加油鎖卡命令用于灰鎖加油消費電子存折(錢包),加油消費命令用于本地加油消費交易同時解灰鎖,解鎖初始化命令用于初始化聯(lián)機解灰鎖消費交易,解鎖命令用于聯(lián)機解灰鎖交易同時補扣加油消費,讀取狀態(tài)命令用于讀取灰鎖狀態(tài)并啟動本地解灰鎖交易。
采用本發(fā)明技術(shù)方案徹底解決了以往的問題由于本發(fā)明將一灰鎖標記與IC卡某些操作的權(quán)限相關(guān),使操作該灰鎖標記達到禁止IC卡執(zhí)行除與解灰鎖相關(guān)的操作以外的其他任何可能引起IC卡上電子存折(錢包)余額變化的操作,使交易可以安全實現(xiàn)。
再者,本發(fā)明引入的鎖卡來源,在灰鎖IC卡時將其記入IC卡,解灰鎖時執(zhí)行對該鎖卡來源以及解灰鎖合法性的判斷,該鎖卡來源貫穿整個交易流程,可更加安全實現(xiàn)交易過程。
本發(fā)明更進一步的將解灰和扣款操作合二為一,正常操作的解灰密鑰的管理隱患不再存在,可以本著負方交易的原則而存放在PSAM上。而在聯(lián)機解灰時其操作的密鑰本著正方交易的原則存放在主機上,它的管理隱患也不復(fù)存在。
由于解灰和扣款操作合二為一,非法解灰的問題一方面轉(zhuǎn)變成了終端扣款準確性的問題,即只要認可終端執(zhí)行扣款的金額是合法的,解灰就是合法的。在另一方面,當(dāng)出現(xiàn)逃卡后補扣時,由于只有IC卡和出現(xiàn)逃卡的終端的PSAM才知道可以執(zhí)行這次補扣的過程密鑰SESPK,而且終端的PSAM在交易結(jié)束后將不再保留SESPK,所以在補扣時只有IC卡才可獲知(內(nèi)部恢復(fù))這條密鑰,扣款操作時的扣款認證碼是產(chǎn)生逃卡的終端的PSAM在SESPK被清除之前計算好保存下來的,任何篡改這個認證碼或用以計算這個認證碼的參數(shù)(如逃卡金額等)的舉動都會造成補扣失敗,而且IC卡的內(nèi)部應(yīng)用鎖定機制又能防止外界的惡意試探,所以這轉(zhuǎn)變成了IC卡的安全機制的問題,與應(yīng)用徹底無關(guān)。
綜上所述,整個解灰的問題轉(zhuǎn)變成了終端和IC卡的可靠性的問題,而這兩點都是能有效管理的,并且與現(xiàn)有的終端和IC卡的安全機制不存在沖突。
下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
圖1為本發(fā)明實施例加油電子存折加油交易流程示意圖。
圖2為本發(fā)明實施例加油電子存折聯(lián)機解灰鎖交易流程示意圖。
圖3為本發(fā)明實施例加油電子存折本地解灰鎖交易流程示意圖。
以IC卡加油支付系統(tǒng)為例。將在IC卡上需要與灰鎖關(guān)聯(lián)的電子存折與灰鎖合并成為一個特殊的電子存折-加油電子存折,這個電子存折除具備一般電子存折的一切功能--讀余額、圈存、圈提、消費/取現(xiàn)、改透支限額等,同時針對使用IC卡進行脫機加油消費存在灰鎖的情形增加了加油消費、本地解灰鎖和聯(lián)機解灰鎖的功能,解決了非法解鎖包括直接去鎖和篡改逃卡金額的問題,從而保證加油消費這種售前交易的順暢安全進行。
加油電子存折的基本應(yīng)用與一般電子存折的應(yīng)用完全相同,在此請恕不予贅述。而加油消費、本地解灰鎖和聯(lián)機解灰鎖作為基本應(yīng)用的外延,使加油電子存折應(yīng)用增加了新的范疇,下面通過對其命令和交易流程的分別描述加以詳細的說明。
在應(yīng)用執(zhí)行過程中,卡片總是處于某種狀態(tài)之一,在一種狀態(tài)下,只有某些命令能執(zhí)行。卡片具有的狀態(tài)有空閑狀態(tài)、圈存狀態(tài)、消費/取現(xiàn)狀態(tài)、圈提狀態(tài)、修改狀態(tài)、預(yù)加油狀態(tài)、灰鎖狀態(tài)、解灰鎖狀態(tài),其中的預(yù)加油狀態(tài)、灰鎖狀態(tài)和解灰鎖狀態(tài)是加油電子存折特有的狀態(tài)。
當(dāng)應(yīng)用選擇完成后,應(yīng)用首先進入空閑狀態(tài)。當(dāng)卡片從終端收到一條命令后,它必須檢查當(dāng)前狀態(tài)是否允許。命令成功完成以后,卡片根據(jù)表1所示進入另一個狀態(tài)(或同一個)。如果命令沒有成功執(zhí)行,卡片進入空閑狀態(tài)。
表1說明了命令成功執(zhí)行后的狀態(tài)變化。第一行描述了命令發(fā)出時卡片的當(dāng)前狀態(tài),第一列描述了發(fā)出的命令,而整張表給出了命令執(zhí)行成功后的狀態(tài)。
陰影部分指出命令在卡片處于相應(yīng)狀態(tài)時是無效的,在這種情況下,卡片不執(zhí)行命令,并回應(yīng)終端,6901’狀態(tài)----命令不接受(無效)狀態(tài)。由于命令不能成功執(zhí)行,所以若卡片原來處于灰鎖,結(jié)果狀態(tài)仍是灰鎖,若卡片原來處于其他狀態(tài),結(jié)果狀態(tài)是空閑。
表1命令執(zhí)行成功后的狀態(tài)變化
表2定義了命令類別和命令字節(jié)的編碼,以及加油電子存折應(yīng)用使用的參數(shù)P1和P2。在該命令集中,除通常電子存折所具有的命令外,新增加了加油初始化、加油鎖卡、加油消費、解鎖初始化、解鎖、讀取狀態(tài)命令,其中,加油初始化命令用于初始化加油消費交易,加油鎖卡命令用于灰鎖加油消費電子存折,加油消費命令用于本地加油消費交易同時解灰鎖,解鎖初始化命令用于初始化聯(lián)機解灰鎖消費交易,解鎖命令用于聯(lián)機解灰鎖交易同時補扣加油消費,讀取狀態(tài)命令用于讀取灰鎖狀態(tài)。下面分別對該等新增加的命令以及響應(yīng)作出詳細描述。而其它常規(guī)的命令與現(xiàn)有技術(shù)應(yīng)用相同,請恕不再贅述。
表2命令的類別字節(jié)和指令字節(jié)
1、加油初始化(INITIALIZE FOR PETROL)命令I(lǐng)NITIALIZE FOR PETROL命令用于初始化加油消費交易,其命令報文見表3,命令報文的數(shù)據(jù)域見表4。此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表5。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。此命令執(zhí)行成功的響應(yīng)報文的狀態(tài)碼是‘9000’。表6描述了IC卡可能回送的錯誤狀態(tài)。其中ED為電子存折。
表3 INITIALIZE FOR PETROL命令報文
表4 INITIALIZE FOR PETROL命令報文數(shù)據(jù)域
表5 INITIALIZE FOR PETROL響應(yīng)報文數(shù)據(jù)域
表6 INITIALIZE FOR PETROL錯誤狀態(tài)
2、加油鎖卡(LOCK FOR PETROL)命令LOCK FOR PETROL命令用于灰鎖加油消費電子存折。其命令報文見表7。命令報文的數(shù)據(jù)域見表8。此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表9。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。此命令執(zhí)行成功的狀態(tài)碼是‘9000’。表10描述了IC卡可能回送的錯誤狀態(tài)。
表7 LOCK FOR PETROL命令報文
表8 LOCK FOR PETROL命令報文數(shù)據(jù)域
表9 LOCK FOR PETROL響應(yīng)報文數(shù)據(jù)域
表10 LOCK FOR PETROL錯誤狀態(tài)
3、加油消費(DEBIT FOR PETROL)命令DEBIT FOR PETROL命令用于本地加油消費交易,同時解灰鎖。其命令報文見表11。命令報文的數(shù)據(jù)域見表12。此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表13。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。此命令執(zhí)行成功的狀態(tài)碼是‘9000’。表14描述了IC卡可能回送的錯誤狀態(tài)。
表11 DEBIT FOR PETROL命令報文
表12 DEBIT FOR PETROL命令報文數(shù)據(jù)域
表13 DEBIT FOR PETROL響應(yīng)報文數(shù)據(jù)域
表14 DEBIT FOR PETROL錯誤狀態(tài)
4、解鎖初始化(INITIALIZE FOR UNLOCK)命令I(lǐng)NITIALIZE FOR UNLOCK命令用于初始化聯(lián)機解灰鎖消費交易。其命令報文見表15。命令報文的數(shù)據(jù)域見表16。此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表17。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。此命令執(zhí)行成功的狀態(tài)碼是‘9000’。表18描述了IC卡可能回送的錯誤狀態(tài)。
表15 INITIALIZE FOR UNLOCK命令報文
表16 INITIALIZE FOR UNLOCK命令報文數(shù)據(jù)域
表17 INITIALIZE FOR UNLOCK響應(yīng)報文數(shù)據(jù)域
表18 INITIALIZE FOR UNLOCK錯誤狀態(tài)
5、解鎖(DEBIT FOR UNLOCK)命令DEBIT FOR UNLOCK命令用于聯(lián)機解灰鎖交易,同時補扣加油消費。其命令報文見表19。命令報文的數(shù)據(jù)域見表20。此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表21。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。此命令執(zhí)行成功的狀態(tài)碼是‘9000’。表22描述了IC卡可能回送的錯誤狀態(tài)。
表19 DEBIT FOR UNLOCK命令報文
表20 DEBIT FOR UNLOCK命令報文數(shù)據(jù)域
表21 DEBIT FOR UNLOCK響應(yīng)報文數(shù)據(jù)域
表22 DEBIT FOR UNLOCK錯誤狀態(tài)
6、讀取狀態(tài)(GET GREY STATUS)命令GET GREY STATUS命令用于獲得存折的灰狀態(tài)。其命令報文見表23。命令報文的數(shù)據(jù)域不存在。此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表24。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。此命令執(zhí)行成功的狀態(tài)碼是‘9000’。表25描述了IC卡可能回送的錯誤狀態(tài)。
表23 GET GREY STATUS命令報文
表24 GET GREY STATUS響應(yīng)報文數(shù)據(jù)域
MAC3和TAC是GREY LOCK時IC卡返回的值。
表25 GET GREY STATUS錯誤狀態(tài)
下面分別再對作為基本應(yīng)用外延的加油消費、本地解灰鎖和聯(lián)機解灰鎖的交易流程加以詳細的說明。
1、加油交易加油交易允許持卡人使用加油電子存折在卡-機聯(lián)動的IC卡加油機上進行加油。此交易可以脫機進行。加油交易要求提交個人密碼(PIN)。參見附圖1所示。
步驟1.1終端發(fā)出INITIALIZE FOR PETROL命令啟動加油交易。
步驟1.2IC卡收到INITIALIZE FOR PETROL命令后,處理INITIALIZE FOR PETROL命令,包括(1)檢查IC卡是否處于灰鎖狀態(tài),如果是,返回狀態(tài)碼‘6901’(不支持的密鑰索引)且不返回其他數(shù)據(jù);(2)檢查命令中包含的密鑰索引是否被IC卡支持,如果不支持,返回狀態(tài)碼‘9403’(不支持的密鑰索引)且不返回其他數(shù)據(jù);(3)通過以上檢查之后,IC卡將產(chǎn)生一個偽隨機數(shù)ICC、過程密鑰SESPK及報文鑒別代碼MAC1,過程密鑰SESPK被用于加油電子存折的加油交易,過程密鑰按照SESPK=3EDS(DPK,DATA)機制產(chǎn)生,其中DPK是加油電子存折的消費密鑰,DATA數(shù)據(jù)包括偽隨機數(shù)ICC、加油電子存折脫機交易序號CTC、終端交易序號TTC的最右兩個字節(jié),3DES是指3倍長的DES運算。
SESPK作用于以下數(shù)據(jù)進行MAC1的計算(按所列順序)——加油電子存折余額——交易類型標識(加油交易為‘10’)——終端機編號(發(fā)出LOCK FOR PETROL命令的終端)步驟1.3驗證MAC1
使用偽隨機數(shù)ICC和IC卡返回的加油電子存折脫機交易序號,加油消費安全認證模塊PSAM將產(chǎn)生一樣的過程密鑰SESPK并驗證MAC1是否有效,如果MAC1有效,交易處理將執(zhí)行步驟1.5,如果MAC1無效,交易處理繼續(xù)執(zhí)行步驟1.4。
步驟1.4回送錯誤狀態(tài),終端應(yīng)中止加油交易并采取相應(yīng)的措施。
步驟1.5產(chǎn)生MAC2終端確認能夠進行加油交易后,將產(chǎn)生一個報文認證碼MAC2,供IC卡來驗證PSAM的合法性。
SESPK作用于以下數(shù)據(jù)進行MAC2的計算(按所列順序)——交易類型標識(加油交易為‘10’)——終端機編號(發(fā)出LOCK FOR PETROL命令的終端)——交易日期(發(fā)出LOCK FOR PETROL命令的終端)——交易時間(發(fā)出LOCK FOR PETROL命令的終端)步驟1.6終端發(fā)出LOCK FOR PETROL命令。
步驟1.7驗證MAC2收到LOCK FOR PETROL命令后,IC卡要驗證MAC2的有效性,如果MAC2是有效的,交易處理將繼續(xù)執(zhí)行步驟1.8,如果MAC2是無效的,錯誤狀態(tài)‘9302’(MAC無效)被返回給終端。
步驟1.8加油鎖卡處理IC卡將偽隨機數(shù)ICC、終端機編號、終端交易序號、交易日期和交易時間寫入內(nèi)部文件,以備加油中途IC卡掉電后的數(shù)據(jù)恢復(fù),并將加油電子存折置于灰鎖狀態(tài),禁止除加油消費和解灰鎖以外的其他可能引起加油電子存折中余額變化的IC卡操作(如圈存、圈提、消費/取現(xiàn)、更改透支限額等)。當(dāng)終端發(fā)送上述相關(guān)命令時,錯誤狀態(tài)‘6989’(卡已被灰鎖)被返回給終端。
IC卡將加油電子存折脫機交易序號加1。
IC卡產(chǎn)生一個報文鑒別碼MAC3供PSAM對IC卡合法性進行檢查,并同時將MAC3寫入內(nèi)部文件。MAC3將包含在從卡傳送到PSAM(通過終端)LOCK FOR PETROL的命令響應(yīng)報文和GET GREY STATUS的命令響應(yīng)報文中。作為計算MAC3的輸入,SESPK作用于以下數(shù)據(jù)進行MAC3計算——加油電子存折余額——加油電子存折脫機交易序號(加1前)——交易類型標識(加油交易為‘10’)
——終端機編號(發(fā)出LOCK FOR PETROL命令的終端)——交易日期(發(fā)出LOCK FOR PETROL命令的終端)——交易時間(發(fā)出LOCK FOR PETROL命令的終端)IC卡也應(yīng)采用相同的機制直接用交易認證密鑰DTK產(chǎn)生一個交易簽名TAC。并同時將TAC寫入內(nèi)部文件。TAC將包含在從卡傳送到PSAM(通過終端)LOCK FOR PETROL的命令響應(yīng)報文和GET GREY STATUS的命令響應(yīng)報文中。如果出現(xiàn)逃卡等意外情況使交易無法進行下去,TAC將被寫入終端交易明細,以便后來傳給主機進行鎖卡交易驗證。下面是用來生成TAC的要素——加油電子存折余額——加油電子存折脫機交易序號(加1前)——交易類型標識——終端機編號——交易日期(終端)——交易時間(終端)步驟1.9驗證MAC3終端要驗證MAC3的有效性,如果MAC3是有效的,交易處理將繼續(xù)執(zhí)行步驟1.10,如果MAC3是無效的,終端將采取相應(yīng)措施。
步驟1.10持卡人加油在加油過程中,IC卡允許被下電。若下電以后,IC卡重新上電,經(jīng)過交易預(yù)處理(驗證密碼,選擇應(yīng)用)后應(yīng)可以繼續(xù)執(zhí)行步驟1.11而不受影響。
步驟1.11產(chǎn)生GMAC加油消費安全認證模塊PSAM用過程密鑰SESPK產(chǎn)生一個報文認證碼GMAC,供IC卡來驗證PSAM的合法性。
SESPK作用于以下數(shù)據(jù)進行GMAC的計算(按所列順序)——加油交易金額步驟1.12終端發(fā)出DEBIT FOR PETROL命令。
步驟1.13驗證GMAC收到DEBIT FOR PETROL命令后,IC卡先驗證終端提交的IC卡脫機交易序號CTC是否匹配,若失敗直接出錯返回,不影響出錯計數(shù)器。
IC卡要驗證GMAC的有效性,如果GMAC是有效的,交易處理將繼續(xù)執(zhí)行步驟1.14,如果GMAC是無效的,錯誤狀態(tài)‘9302’(MAC無效)被返回給終端,同時IC卡內(nèi)部出錯計數(shù)器減一,若出錯計數(shù)器減到0則永久鎖死IC卡以防止惡意試探。
步驟1.14交易處理IC卡從卡上的加油電子存折余額中減去加油消費的交易金額,并將加油電子存折從灰鎖狀態(tài)下恢復(fù)為正常狀態(tài)。IC卡必須全部成功地完成以上幾個步驟或者一個也不完成,如果余額的更新或加油電子存折狀態(tài)的恢復(fù)沒有成功,交易明細也不應(yīng)被更新。
IC卡產(chǎn)生一個報文驗證碼MAC4供PSAM對IC卡合法性進行檢查。MAC4包含在從IC卡傳送到PSAM(通過終端)的DEBIT FOR PETROL命令響應(yīng)報文中。作為計算MAC4的輸入,DPK作用于這些數(shù)據(jù)進行MAC4計算——加油交易金額——交易類型標識——終端機編號——交易日期(主機)——交易時間(主機)IC卡也應(yīng)采用相同的機制直接用交易認證密鑰DTK產(chǎn)生一個交易簽名TAC。TAC將被寫入終端交易明細,以便后來傳給主機進行交易驗證。下面是用來生成TAC的要素——交易金額——交易類型標識——終端機編號(發(fā)出DEBIT FOR PETROL命令的終端)——終端交易序號(發(fā)出DEBIT FOR PETROL命令的終端)——交易日期(發(fā)出DEBIT FOR PETROL命令的終端)——交易時間(發(fā)出DEBIT FOR PETROL命令的終端)IC卡將用以下數(shù)據(jù)組成的一個記錄更新交易明細。
——加油電子存折脫機交易序號——交易金額——交易類型標識——終端機編號(發(fā)出DEBIT FOR PETROL命令的終端)——交易日期(發(fā)出DEBIT FOR PETROL命令的終端)——交易時間(發(fā)出DEBIT FOR PETROL命令的終端)步驟1.15驗證MAC4收到從IC卡(經(jīng)過終端)傳來的MAC4后,PSAM要驗證MAC4的有效性。MAC4驗證的結(jié)果被傳送到終端以便采取必要的措施。
2、聯(lián)機解灰鎖交易聯(lián)機解灰鎖交易允許持卡人將IC卡上被灰鎖的加油電子存折補扣解鎖(恢復(fù)到正常狀態(tài))。本交易必須在聯(lián)機的銀行終端上進行。持卡人必須提交PIN來完成解灰鎖交易。
步驟2.1終端發(fā)出INITIALIZE FOR UNLOCK命令啟動加油交易。
步驟2.2IC卡收到INITIALIZE FOR UNLOCK命令后,處理INITIALIZE FOR UNLOCK命令,包括(1)檢查IC卡是否處于灰鎖狀態(tài),如果不是,返回狀態(tài)碼‘6901’(無效的命令)且不返回其他數(shù)據(jù)。(2)檢查命令中包含的密鑰索引是否被IC卡支持,如果不支持,返回狀態(tài)碼‘9403’(不支持的密鑰索引)且不返回其他數(shù)據(jù)。(3)通過以上檢查之后,IC卡將產(chǎn)生一個偽隨機數(shù)ICC、過程密鑰SESULKK和一個報文認證碼MAC1,供主機來驗證解灰鎖交易和IC卡的合法性。過程密鑰SESULKK被用于加油電子存折的解灰鎖交易。過程密鑰SESULKK是用解灰密鑰DULKK與產(chǎn)生消費過程密鑰相同的機制產(chǎn)生。用來產(chǎn)生過程密鑰SESULKK的輸入數(shù)據(jù)如下SESULKK偽隨機數(shù)ICC‖加油電子存折聯(lián)機交易序號‖‘8000’SESULKK作用于以下數(shù)據(jù)進行MAC1的計算(按所列順序)——加油電子存折余額——交易類型標識(解灰鎖交易為‘11’)——終端機編號IC卡將把INITIALIZE FOR UNLOCK命令的響應(yīng)報文送給終端處理,如果IC卡返回的狀態(tài)不是‘9000’,終端將終止交易。
在收到INITIALIZE FOR UNLOCK命令的響應(yīng)報文后,終端將包含表17中數(shù)據(jù)的解灰鎖許可請求報文送往發(fā)卡方主機。
步驟2.3驗證MAC1主機將生成SESULKK并且確認MAC1是否有效,如果MAC1有效,交易處理將繼續(xù)執(zhí)行步驟2.5,如果MAC1無效,交易處理將執(zhí)行步驟2.4。
步驟2.4回送錯誤狀態(tài)如果出現(xiàn)使解灰鎖交易不能被接受的條件,則主機會通知終端。終端應(yīng)采取相應(yīng)的措施。
步驟2.5主機處理在確認能夠進行圈存交易后,主機會產(chǎn)生一個報文驗證碼MAC2,供IC卡對主機合法性進行檢查。SESULKK作用于以下數(shù)據(jù)進行MAC2計算(按所列順序)——補扣的交易金額
——交易類型標識——終端編號——交易日期(主機)——交易時間(主機)主機發(fā)送一個解鎖交易接受報文給終端,其中包括MAC2、交易日期(主機)和交易時間(主機)。
步驟2.6終端收到主機的解鎖交易接受報文后,終端會發(fā)出DEBIT FOR UNLOCK命令給IC卡以更新卡上加油電子存折余額并將加油電子存折恢復(fù)到正常狀態(tài)。
步驟2.7驗證MAC2收到DEBIT FOR UNLOCK命令后,IC卡要驗證MAC2的有效性,如果MAC2是有效的,交易處理將繼續(xù)執(zhí)行步驟步驟2.8,如果MAC2是無效的,錯誤狀態(tài)‘9302’(MAC無效)被返回給終端。
步驟2.8交易處理IC卡從卡上的加油電子存折余額中減去補扣的交易金額,將加油電子存折聯(lián)機交易序號加1,并將加油電子存折從灰鎖狀態(tài)下恢復(fù)為正常狀態(tài)。IC卡必須全部成功地完成以上幾個步驟或者一個也不完成,如果余額或序號的更新或加油電子存折狀態(tài)的恢復(fù)沒有成功,交易明細也不應(yīng)被更新。IC卡產(chǎn)生一個報文驗證碼MAC3供主機對IC卡合法性進行檢查。MAC3包含在從卡傳送到主機(通過終端)的DEBIT FOR UNLOCK命令響應(yīng)報文中。SESULKK作用于以下數(shù)據(jù)進行MAC3計算——加油電子存折余額——加油電子存折聯(lián)機交易序號(加1前)——補扣金額——交易類型標識——終端機編號——交易日期(主機)——交易時間(主機)IC卡也應(yīng)采用相同的機制直接用交易認證密鑰DTK產(chǎn)生一個交易簽名TAC。TAC將被寫入終端交易明細,以便后來傳給主機進行交易驗證。下面是用來生成TAC的要素——加油電子存折余額——加油電子存折聯(lián)機交易序號(加1前)——補扣金額
——交易類型標識——終端機編號——交易日期(主機)——交易時間(主機)IC卡用以下數(shù)據(jù)組成的一個記錄更新交易明細——加油電子存折聯(lián)機交易序號——補扣金額——交易類型標識——終端機編號——交易日期(主機)——交易時間(主機)步驟2.9驗證MAC3主機收到從IC卡(經(jīng)過終端)傳來的MAC3后,要驗證MAC3的有效性,MAC3驗證成功則繼續(xù)步驟2.10,否則主機發(fā)給終端錯誤報文。
步驟2.10返回確認在成功完成步驟2.9后,主機做相應(yīng)的處理。
3、本地解灰鎖交易本地解灰鎖交易允許持卡人將IC卡上被灰鎖的加油電子存折補扣解鎖(恢復(fù)到正常狀態(tài))。本交易必須在擁有上次逃卡記錄的終端上進行。持卡人必須提交PIN來完成解灰鎖交易。
步驟3.1終端發(fā)出GET GREY STATUS命令啟動本地解灰鎖交易。
步驟3.2IC卡收到GET GREY STATUS命令后,處理GET GREY STATUS命令,IC卡將電子存折的灰標志狀態(tài)(GREY FLAG)、電子存折的余額、電子存折的聯(lián)機交易序號、電子存折的脫機交易序號、鎖卡時的MAC3和TAC通過GET GREY STATUS命令的響應(yīng)報文返回給終端。
步驟3.3驗證MAC3終端判斷IC卡的電子存折是灰鎖的情況下,將得到MAC3后與逃卡記錄中的MAC3比較。
步驟3.4終端發(fā)出DEBIT FOR PETROL命令。
步驟3.5驗證GMAC收到DEBIT FOR PETROL命令后,IC卡先驗證終端提交的IC卡脫機交易序號CTC是否匹配,若失敗直接出錯返回,不影響出錯計數(shù)器。
IC卡要驗證GMAC的有效性,如果GMAC是有效的,交易處理將繼續(xù)執(zhí)行步驟3.6,如果GMAC是無效的,錯誤狀態(tài)‘9302’(MAC無效)被返回給終端,同時IC卡內(nèi)部出錯計數(shù)器減一,若出錯計數(shù)器減到0則永久鎖死IC卡以防止惡意試探。
SESPK作用于以下數(shù)據(jù)進行GMAC的計算——加油交易金額步驟3.6交易處理IC卡從卡上的加油電子存折余額中減去加油消費的交易金額,并將加油電子存折從灰鎖狀態(tài)下恢復(fù)為正常狀態(tài)。IC卡必須全部成功地完成以上幾個步驟或者一個也不完成,如果余額的更新或加油電子存折狀態(tài)的恢復(fù)沒有成功,交易明細也不應(yīng)被更新。
IC卡產(chǎn)生一個報文驗證碼MAC4供PSAM對IC卡合法性進行檢查。MAC4包含在從卡傳送到PSAM(通過終端)的DEBIT FOR PETROL命令響應(yīng)報文中,作為計算MAC4的輸入,DPK作用于這些數(shù)據(jù)進行MAC4計算——加油交易金額IC卡也應(yīng)采用相同的機制直接用交易認證密鑰DTK產(chǎn)生一個交易簽名TAC。TAC將被寫入終端交易明細,以便后來傳給主機進行交易驗證。下面是用來生成TAC的要素——交易金額——交易類型標識——終端機編號(發(fā)出DEBIT FOR PETROL命令的終端)——終端交易序號(發(fā)出DEBIT FOR PETROL命令的終端)——交易日期(發(fā)出DEBIT FOR PETROL命令的終端)——交易時間(發(fā)出DEBIT FOR PETROL命令的終端)IC卡將用以下數(shù)據(jù)組成的一個記錄更新交易明細。
——加油電子存折脫機交易序號——交易金額——交易類型標識——終端機編號(發(fā)出DEBIT FOR PETROL命令的終端)——交易日期(發(fā)出DEBIT FOR PETROL命令的終端)——交易時間(發(fā)出DEBIT FOR PETROL命令的終端)步驟3.7驗證MAC4收到從IC卡(經(jīng)過終端)傳來的MAC4后,PSAM要驗證MAC4的有效性。MAC4驗證的結(jié)果被傳送到終端以便采取必要的措施。
在本加油電子存折應(yīng)用中,數(shù)據(jù)元定義包括1、交易類型標識10——加油消費11——解灰鎖12——本地解灰鎖其他交易類型標識與現(xiàn)有技術(shù)同。
2、密鑰關(guān)系用于加油電子存折的特殊密鑰,均為雙倍長DEA密鑰(128比特長)。
其他的密鑰關(guān)系請參照現(xiàn)有技術(shù)定義。
IC卡內(nèi)部指令狀態(tài)變化包括1、加油電子存折的內(nèi)部文件每一個加油電子存折都有一個內(nèi)部文件與其對應(yīng),該文件用于存放灰鎖時的偽隨機數(shù)ICC、終端機編號、終端交易序號、交易日期、交易時間和MAC2,該文件的內(nèi)容應(yīng)不受IC卡電源的影響,以供本地解鎖時恢復(fù)鎖卡時的密鑰狀態(tài)。
操作加油電子存折2、IC卡在收到對加油電子存折操作的命令后需要增加的內(nèi)部操作——檢查該加油電子存折是否處于灰鎖狀態(tài)。如果不是,進入空閑狀態(tài)。
——如果是灰鎖狀態(tài),IC卡從內(nèi)部文件中恢復(fù)上次鎖卡時的偽隨機數(shù)ICC、終端機編號、終端交易序號、交易日期、交易時間和MAC2,并通過恢復(fù)的數(shù)據(jù)和相同的機制恢復(fù)過程密鑰SESPK。
權(quán)利要求
1.一種實現(xiàn)IC卡安全交易的方法,其特征在于在IC卡上建立至少一個灰鎖標記,該等灰鎖標記是與IC卡某些操作的權(quán)限相關(guān)的;在灰鎖IC卡時,即對灰鎖標記操作的同時,將鎖卡的來源記入IC卡;在解灰鎖的同時或之前,IC卡需執(zhí)行對該鎖卡來源以及解灰鎖合法性的判斷。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的解灰鎖合法性的判斷可以是扣款金額合法性的判斷,對其判斷的依據(jù)可以是基于所述的鎖卡來源。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于所述的鎖卡來源為在IC卡上建立的一條過程密鑰,該過程密鑰至少與一IC卡臨時生成的偽隨機數(shù)相關(guān)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的IC卡某些操作的權(quán)限可以是在灰鎖IC卡時,IC卡禁止執(zhí)行除與解灰鎖相關(guān)的操作以外的其他可能引起IC卡上電子存折(錢包)余額變化的IC卡操作。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于更進一步的可將扣款操作和解灰鎖操作合并為IC卡上的一步操作,即IC卡執(zhí)行對所述的鎖卡來源及扣款金額合法性的判斷成功之后,執(zhí)行扣款解灰鎖操作。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于更進一步的可在主機上保存有一條可以實現(xiàn)扣款、強制解灰鎖操作的密鑰,使灰鎖后的IC卡可在聯(lián)機的終端上通過聯(lián)機方式實現(xiàn)補扣款及強制解灰操作。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于更進一步的可在主機上保存有一條可以實現(xiàn)強制解灰鎖操作的密鑰,使灰鎖后的IC卡可在聯(lián)機的終端上通過聯(lián)機方式實現(xiàn)強制解灰鎖操作。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于所述的灰鎖IC卡是指IC卡根據(jù)其鎖卡的來源生成一認證碼,同時將產(chǎn)生該鎖卡來源的所需參數(shù)傳遞給終端,由終端采用與IC卡相同的機制產(chǎn)生另一鎖卡來源碼,并使用該鎖卡來源碼生成另一認證碼,將該認證碼送入IC卡,IC卡判斷與上述IC卡自身生成的認證碼是否相同,若相同時執(zhí)行灰鎖操作并將這次產(chǎn)生的一灰鎖特征碼返回給終端,該灰鎖特征碼是根據(jù)包括鎖卡來源及相應(yīng)信息在內(nèi)的數(shù)據(jù)生成。所述的扣款解灰鎖是指終端根據(jù)其鎖卡來源和扣款所需的參數(shù)生成一認證碼,將該認證碼與相應(yīng)參數(shù)一并送入IC卡,IC卡內(nèi)部采用其自身的鎖卡來源和相同的參數(shù)通過相同的機制產(chǎn)生另一認證碼,判斷該認證碼與終端產(chǎn)生的認證碼一致就從IC卡的電子存折(錢包)上實現(xiàn)扣款,扣款成功的同時將灰鎖標記清除。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于終端更進一步可將扣款時所需的認證碼、這次的逃卡金額及灰鎖特征碼共同作為這次灰記錄的部分信息保存起來,并上傳給中心機;如果某次交易過程未完整結(jié)束的未被扣款解灰的IC卡,下一次在任何一個保存有該灰記錄的終端上使用時,終端可先驗證該灰鎖特征碼以確定IC卡上的鎖卡來源與計算該條灰記錄中的扣款認證碼的鎖卡來源相同,通過后執(zhí)行補扣款解灰鎖操作。
10.根據(jù)權(quán)利要求3所述的方法,其特征在于所述的過程密鑰為過程消費密鑰(SESPK)=3DES(DPK,DATA),其中DPK是IC卡上電子存折(錢包)的消費密鑰,是由電子存折(錢包)消費主密鑰(MPK)根據(jù)該IC卡的應(yīng)用序號分散得到,DATA是特定的參數(shù),包括有所述的IC卡臨時生成的偽隨機數(shù)(ICC)、電子存折(錢包)的交易序號(CTC)、終端交易序號(TTC)的最后兩個字節(jié)。
11.根據(jù)權(quán)利要求1所述的方法,其特征在于將灰鎖標記并入IC卡上電子存折(錢包)的屬性參數(shù)中,構(gòu)成一特殊的加油電子存折(錢包)時,除具備通常的讀余額、圈存、圈提、消費/取現(xiàn)、改透支限額等功能外,同時增加了加油消費、本地解灰鎖和聯(lián)機解灰鎖功能;描述該加油電子存折(錢包)的狀態(tài)除通常的空閑狀態(tài)、圈存狀態(tài)、消費/取現(xiàn)狀態(tài)、圈提狀態(tài)、修改狀態(tài)外,還存在預(yù)加油狀態(tài)、灰鎖狀態(tài)、和解灰鎖狀態(tài),并在加油電子存折(錢包)通常的命令集中增加了加油初始化、加油鎖卡、加油消費、解鎖初始化、解鎖、讀取狀態(tài)命令,其中,加油初始化命令用于初始化加油消費交易,加油鎖卡命令用于灰鎖加油消費電子存折(錢包),加油消費命令用于本地加油消費交易同時解灰鎖,解鎖初始化命令用于初始化聯(lián)機解灰鎖消費交易,解鎖命令用于聯(lián)機解灰鎖交易同時補扣加油消費,讀取狀態(tài)命令用于讀取灰鎖狀態(tài)并啟動本地解灰鎖交易。
全文摘要
本發(fā)明系關(guān)于一種實現(xiàn)IC卡安全交易的方法,其特征在于:在IC卡上建立至少一個灰鎖標記,該等灰鎖標記是與IC卡某些操作的權(quán)限相關(guān)的;在灰鎖IC卡時,即對灰鎖標記操作的同時,將鎖卡的來源記入IC卡;在解灰鎖的同時或之前,IC卡需執(zhí)行對該鎖卡來源以及解灰鎖合法性的判斷。對解灰鎖合法性的判斷可以是對扣款金額合法性的判斷,判斷的依據(jù)即為該鎖卡來源。更進一步的可將扣款操作和解灰鎖操作合并為IC卡上的一步操作,即IC卡執(zhí)行對所述的鎖卡來源及扣款金額合法性的判斷成功之后,執(zhí)行扣款解灰鎖操作。從而徹底有效地解決非法解鎖的問題,使IC卡的消費交易過程更加安全順暢。
文檔編號G06K19/073GK1287338SQ9911898
公開日2001年3月14日 申請日期1999年9月6日 優(yōu)先權(quán)日1999年9月6日
發(fā)明者李東聲 申請人:李東聲