天天看點

《中國金融內建電路(IC)卡規範第6部分(借記貸記應用終端規範)》--筆記



1.指令鍵顔色:确認-綠色 取消-紅色 清除-黃色

 PIN長度:4-12位

 賬戶長度:11-19位

 AID長度:5-16

 RSA公鑰最大長度:1984(248位元組)

2.應用選擇的卡片資料:

DDF: 目錄定義檔案。--比如PSE;

ADF: 應用定義檔案。-包含AEF入口和應用相關的資訊,比如應用名稱,應用首選名,優先訓示器,PDOL.;

AEF: 應用基本檔案。-應用處理過程中所用到的資料元;

AID :應用辨別符, AID = RID(注冊的應用提供商辨別)+PIX(擴充的專用應用辨別符);

應用優先訓示器:最高位表示是否需要持卡人确認,後四個位元組表示優先級。0表示無優先級,1-15,1的優先級最高;

3.終端應用資料:

AID: ‘9F06’,應用辨別符,RID +PIX;

ASI: 應用選擇訓示器,訓示應用選擇時終端上的AID與卡片中的AID 是完全比對[值為1]

(長度和内容都必須一樣),還是部分比對[值為0](卡片AID 的前面部分與終端AID 相同,長度可以更長)。終端支援的應用清單中的每個AID 僅有一個應用選擇訓示器。

終端支援的應用清單:終端通過一組AID 來維護所支援的應用清單。

PSE 檔案名:PSE 的名稱“1PAY.SYS.DDF01”,如果終端支援目錄選擇,PSE用于應用選擇的入口。

4.應用選擇的指令:SELECT,RECORD

 SELECT可以選擇PSE目錄選擇方法或者AID清單選擇方法

  READ RECORD讀取支付系統目錄,與PSE相關聯的基本檔案。

5. 目錄選擇方法:“1PAY.SYS.DDF01”搜尋樹型卡片檔案結構,得到比對的候選應用清單;(卡片可選,終端必須支援。終端先嘗試使用目錄選擇方法。)

選擇PSE後,如果卡片傳回不支援或讀取目錄入口為空,則使用AID清單方法選擇。

先選取PSE,根據卡片對PSE傳回的SFI逐個讀取記錄,根據入口對應的ADF和選擇訓示器(部分比對或全比對)加入候選清單。

6.AID清單選擇方法:依次SELECT,如果卡片也支援,則加入候選應用清單。

發送第一個AID作為檔案名進行SELECT,如果6A81,指令不支援,則不再選擇;

如果傳回6283或其他則重新選擇下一個;

如果傳回9000成功而且DF名與AID長度相同,則加入候選清單并選擇下一個。

如果傳回9000但DF名稱比AID長度長,先檢查選擇訓示器是否支援部分比對,如果支援則添加FCI資訊到候選清單,然後将指令中P2參數設定為02表明選擇下一個,直到卡片傳回非 9000 62xx 63xx 則使用下一個AID進行選擇。如此輪詢整個AID清單。

7.終端自動選擇應用:終端如果支援顯示應用名,則必須同時支援持卡人确認功能。隻有一個應用的時候,可自動選擇或持卡人确認。如果多個應用,按照優先級别顯示,等待持卡人确認,如果未确認一個應用,交易終止。如果優先級一樣,應用順序可以按讀出順序或自行安排順序。

8. 選擇一個應用後,終端再向卡片發送select指令,擷取FCI資料,如果卡片沒有傳回成功,則重新選擇。

9.  PSE為DDF,讀取記錄,擷取入口後,得到ADF,終端也支援,就将此ADF的應用加入候選清單。

10.SELECT應用後,卡片傳回FCI,如果PDOL存在,傳回PDOL。PDOL決定了GPO的響應資料,GPO的應答應該包含AFL和AIP。根據卡片對GPO的應答是否為9000,如果成功,則執行讀取應用資料。否則清除該應用,重新回到選擇應用階段。

11.卡片的GPO中響應了AFL,AFL決定要從卡片讀取的交易資料記錄,每個AFL項(四個位元組)代表了卡片一個檔案中的連續記錄。每個AFL項(四個位元組),從第一個記錄開始,讀到最後一個記錄。最後一個記錄是指卡片的狀态傳回值不是 9000。期間如果有不能識别的TAG,POS不應該終止交易,而是保留準備後用。

12. 讀取記錄過程中,同一個标簽現在或者以前已經存在、缺少必須有的資料、資料格式錯、狀态字不是9000—以上三種情況應該終止交易。

13. 對于傳回的持卡人姓名,或者持卡人姓名擴充,長度不需要做合法性判斷,同時傳回也可接收。

14.  讀取記錄後,SDA,DDA,CDA用讀應用資料時建立的靜态認證資料清單驗證帶簽名的靜态資料。

15.支援脫機資料認證,終端應支援非對稱密碼算法和雜湊演算法。所支援的RSA公鑰長度最大可至248位元組。

16.脫機資料認證方法:SDA:驗證卡内資料的正确性;DDA:驗證卡内資料的正确性和卡的合法性;CDA:指DDA和應用密文生成結合,提供對卡内資料,卡片本身,交易安全的認證。--在一個交易中,最多執行一種脫機資料認證方法。卡片支援的脫機認證方法在AIP中訓示,終端支援的脫機認證方法在終端性能中訓示。根據這兩個訓示得到的共同支援情況決定本次交易采用的脫機資料認證,優先次序為:CDA>DDA>SDA。

17.  TSI:交易狀态資訊,包含訓示執行了某種脫機資料認證方法的标志位。

TVR:終端驗證結果,包含訓示沒有任何一種脫機資料認證方法被執行的标志位

18. 靜态資料認證:

SDA之前,POS從收單行處得到CA公鑰,從卡片讀取到RID,CA公鑰索引,發夾行公鑰證書、指數和餘項,簽名的靜态應用資料(SAD),靜态資料認證清單,需要認證的靜态資料。

過程如下:

POS通過RID和索引定位使用的CA公鑰,使用CA公鑰驗證發夾行公鑰證書并擷取發夾行公鑰。通過發夾行公鑰對簽名的靜态應用資料進行驗證。執行了此步驟,TSI(交易狀态資訊)中的“脫機認證被執行”置1,如果失敗,TVR中的“脫機靜态資料認證失敗”置1。

19.動态資料認證:DDA之前,POS得到的資料除了上面SDA的資料以外,還多了:IC卡公鑰證書在、指數和餘項,簽名動态應用資料—以上四項是卡片處擷取到的。此外還有POS自身的資料參與運算,包括DDOL,不可預知數。使用内部認證指令發送DDOL請求動态簽名。

過程如下:

       POS通過RID和索引定位使用的CA公鑰使用CA公鑰驗證發夾行公鑰證書并擷取發夾行公鑰。通過發夾行公鑰驗證IC卡公鑰證書并擷取IC卡公鑰。終端向卡片發送内部 認證指令,獲得簽名的動态應用資料。終端利用IC卡公鑰驗證簽名的動态應用資料。如果執行了DDA,TSI(交易狀态資訊)中的“脫機資料認證被執行”位設為1。如果DDOL中不包含不可預知數,則DDA失敗。如果DDA 失敗,TVR中的“脫機動态資料認證失敗”位設為1。

20.  複合動态資料認證:CDA。與DDA的差別在于簽名的動态應用資料不是通過内部認證指令進行,而是通過生成應用密文指令産生。驗證時比較應用密文。CDA驗證失敗如果發生在第一次的GAC後,卡片傳回TC則終端馬上拒絕交易,卡片傳回ARQC則執行第二次GAC并結束交易。如果CDA的驗證失敗發生在第二次GAC後,終端拒絕交易。

21.脫機資料認證完成後,進行處理限制。--包括應用版本号,用途控制的檢查,應用生效日期,失效日期的檢查,發夾行國家代碼的檢查。

22.選擇應用,脫機認證,處理限制。下一步是持卡人驗證。通過卡片提供的CVM清單,根據卡片和終端對持卡人驗證方法的支援能力,執行相應的持卡人驗證方法。目前包括:脫機明文PIN,聯機PIN,簽名,CVM失敗,無需 CVM,簽名和脫機明文PIN組合,持卡人證件出示。持卡人驗證中如果使用脫機明文PIN,需要使用GET DATA 和 VERIFY這兩個指令。

23. PIN輸入次數隻剩下一次的時候,終端應顯示“最後一次PIN輸入”。

24. 最低限額用于控制交易目前交易金額或同一張卡片連續幾筆交易累積金額超過某個數值時則要求聯機授權。

25.持卡人驗證後,進行終端風險管理。終端需要從卡片獲得的資料包括:應用主賬号,交易計數器,聯機計數器寄存器,連續脫機交易下限和上限。還有終端自身資料:授權金額,用于偏置随機選擇的最大目标百分比,随機選擇的目标百分比,終端最低限額,TVR,偏置随機選擇閥值,交易日志,交易狀态資訊。

26.終端風險管理包括:異常檔案檢查,商戶強制交易聯機,最低限額,随機交易選擇(終端根據目前交易的金額随機決定交易是否聯機授權。交易金額小于偏置随機選擇閥值,則執行随機選擇。比較終端随機數與目标百分比,随機數大于目标百分數,則不作聯機處理。交易金額大于偏置随機選擇閥值,小于終端最低限額,應用進行偏置随機選擇。根據插值因子計算交易百分比與随機數相比。交易金額大于終端最低限額的,不進行随機選擇,而是進行最低限額檢查而進行聯機處理。),頻度檢查(如果連續脫機交易次數下限和連續脫機交易次數上限都存在,終端應執行頻度檢查。終端向卡片發送指令取上次聯機ATC寄存器和ATC,如果這兩個數的內插補點大于連續脫機交易次數下限,設定“超過連續脫機交易次數下限”位為“1”,上限也一樣。),新卡檢查(如果上次聯機ATC寄存器的值為0,則置新卡位,要求聯機處理)。

27. 支援脫機交易的聯機終端必須支援頻度檢查,要求卡片在連續脫機交易一定次數後要求進行一次聯機交易。

28.  終端行為分析是指根據終端和卡片的設定決定如果出現以下的情況該如何處理:卡片出現在異常檔案,商戶強制交易聯機,交易超過最低限額,交易被随機進行聯機處理,頻度檢查交易筆數超限,本卡為新卡。

29 .  終端行為分析過程,終端分别應用發夾行在卡片中和收單行在終端中設定的規則,判斷脫機處理的結果,以決定交易是否可用脫機準許、脫機拒絕或者聯機授權。

包括兩個步驟:

首先檢查TVR中的脫機處理結果決定交易是否脫機準許,脫機拒絕或聯機授權,需要TVR與發夾行行為代碼(IAC)和收單行的終端行為代碼(TAC)進行比較,得到結果後,執行第二步:請求相應的應用密文。

30.  終端行為分析中的交易拒絕和聯機請求都不成立,則終端請求脫機準許的應用密文,請求交易證書。

31.  終端行為分析後,根據比較IAC/TAC/TVR的結果,向IC卡發送第一次GAC指令,請求适當的密文。終端請求的密文類型即終端目前對交易結果的判斷不是最終的,還要通過GAC指令得到卡片對交易的評估結果。

32.  如果交易要求進行複合動态資料認證(CDA),且卡片決定傳回TC或ARQC,則GAC傳回簽名資料後終端要進行CDA處理。

 對于第一次GAC的結果,如果卡片傳回ARQC,終端則向主機發送聯機封包,封包中包含ARQC。

33.  如果收到聯機響應後需要進行發夾行認證,則終端必須向卡片發送外部認證指令進行發夾行認證。發夾行認證是指:發夾行的傳回資料可以包括對卡片的發行後更新指令和發夾行生成的密文,該密文可以用于卡片對發夾行的合法性進行認證。

34.  如果終端需要進行CDA,卡片在GAC中相應AAC,則直接拒絕交易。如果卡片相應TC或ARQC,終端執行CDA并成功後,進行标準的聯機處理。

35.  在執行了第一次GAC後,如果GAC中請求了TC或ARQC而卡片傳回了ARQC,而且終端具有聯機處理能力,則發送聯機請求道背景。如果終端請求AAC而卡片傳回ARQC或TC,或者在終端請求ARQC的時候,卡片傳回TC,這兩種情況之一終端都必須終止交易。下面的任何一個情況則需要執行交易結束功能:CDA執行了但失敗,卡片相應AAC或TC,卡片相應ARQC但終端沒有聯機處理能力。

36.  如果第一次GAC後卡片相應ARQC,以下兩個條件同時滿足,則執行發夾行認證:聯機授權響應中包含發夾行認證資料,AIP顯示卡片支援發夾行認證。但如果滿足下面任一條件則需要進行交易結束處理:聯機授權響應中不包括發夾行認證資料,AIP表明卡片不支援發夾行認證。第一個GAC指令中IC卡傳回TC或AAC,則交易脫機授權準許或拒絕。如果第一個GAC傳回TC且CDA不執行或成功,授權響應碼為Y1,脫機準許。如果第一個GAC傳回TC或ARQC且CDA失敗,授權響應碼為Z1,脫機拒絕。如果第一個GAC傳回AAC,授權響應碼為Y1,脫機拒絕。

37.  終端獲得收單行的傳回資料,包括授權碼,授權響應代碼,發夾行認證資料,發夾行代碼等。

38.  收單行在相應封包中收到發夾行腳本,則必須向終端發送發夾行腳本。目前借記貸記規範中支援最多一個發夾行腳本,但一個發夾行腳本中可以包含多條指令。無論發夾行,卡片是否準許交易,終端應該執行發夾行腳本。正常情況下,終端不應該收到多個腳本,也不應該收到标簽為“71”的腳本。腳本處理完成後,終端才能顯示交易結果。

39.  如果請求了聯機處理但終端不支援聯機處理或聯機處理未能完成,則終端和卡片進行附加的分析決定脫機準許或拒絕。

40.  在執行了CDA且執行失敗,終端進行以下處理:如果第一次GAC請求的是TC,則終端必須脫機拒絕交易。如果第一次GAC請求的是ARQC,則在第二次GAC中請求AAC。

41.  聯機授權成功完成,終端向卡片發送第二個GAC指令請求附加卡片分析和最終應用密文。如果發夾行準許交易,終端請求TC。如果同時脫機資料認證要求執行CDA,則第二次GAC指令的P1參數中設定要求執行CDA。如果發夾行請求參考,終端提示打電話請求授權,根據授權結果請求相應密文,如果終端不支援參考,則終端請求AAC。如果授權響應碼未指明,則請求AAC。

42.  終端必須在腳本處理完成以後再向持卡人顯示交易準許或者拒絕。如果進行了腳本處理,終端必須在适當的時候向發夾行主機發送封包。

43.  在脫機資料認證階段要求執行CDA且在第二個GAC指令中設定了CDA位,終端處理CDA,如果IC卡相應AAC,終端不認為CDA失敗而結束交易,如果卡片相應TC,終端用IC卡公鑰驗證簽名,如果不正确,CDA失敗,對TVR置位。

44.  如果第二個GAC中請求AAC,無論卡片相應如何,終端均拒絕交易。

45.  如果第二個GAC,卡片響應TC,不執行CDA情況下,準許交易并交易結束;需要CDA的情況下,CDA成功則準許,否則拒絕。如果卡片響應AAC,終端拒絕并結束交易。

46.  如果要求聯機交易,但終端不支援聯機或者聯機不成功,終端根據(發夾行行為代碼)IAC預設和(終端行為代碼)TAC預設進行行為分析,然後根據結果向IC卡發第二個GAC.

47.  終端分析第一次GAC的響應,如果是AAC,拒絕并結束交易。如果是TC且CDA失敗,拒絕并結束交易。如果是TC且CDA成功,準許并結束交易。如果是ARQC,意味着會有第二次GAC。如果ARQC且CDA失敗,置授權響應碼,然後發第二次GAC。如果CDA非失敗,即進行聯機處理,聯機成功則對GAC的P1置TC或AAC,如果無法聯機或聯機失敗,根據IAC(預設)、TAC(預設)、TVR置響應碼。然後發第二次GAC。第二次GAC後,先處理發夾行腳本。第二次GAC後,終端請求TC,或者卡片響應TC,或者執行CDA失敗,終端都拒絕并結束交易,否則準許交易。

48.  資料元格式:

a-每個位元組包含一個字元的字母(a-z A-Z); 左對齊,右補0;

an-字母或數字(a-z,A-Z, 0-9); 左對齊,右補0;

        ans-字母數字和特殊字元;

b-二進制或位的組合;

cn-壓縮數字,BCD碼,左對齊,右補F;

n-數字,BCD碼,右對齊,左補0;

var-可變資料。

49.下面的資料在首次安裝時初始化:終端性能,終端附加性能,終端IFD序号,終端國家代碼,終端辨別,終端類型,終端交易貨币,終端貨币指數。

50. 下面的資料允許終端布放後通過下載下傳更新:終端支援應用AID清單,CA公鑰,終端行為代碼TAC,最低限額,随機選擇閥值,随機選擇目标百分數,偏置随機選擇最大目标百分數,商戶辨別,商戶分類碼和收單行辨別。

51.終端應支援的交易指令:

外部認證(EXTERNAL AUTHENTICATE):用于發夾行認證;

生成應用密文(GENERATE AC):用于卡片行為分析;

取資料(GET DATA):用于從IC卡中擷取交易資料(應用交易計數器,上次聯機ATC寄存器,PIN重試次數)

擷取處理選項(GPO):應用選擇後擷取IC卡支援功能以及應用檔案定位器;

内部認證(INTERNAL AUTHENTICATE):用于動态資料認證;

讀記錄(READ RECORD):用于讀取應用資料檔案;

選擇(SELECT):用于應用選擇;

驗證(VERIFY):用于PIN驗證。

具體指令可參考連結:​​javascript:void(0)​​

授權響應碼:Y1: 脫機準許; Z1: 脫機拒絕;Y3: 無法聯機,脫機被準許;Z3:無法聯機,脫機被拒絕。