PBOC/EMV 流程概述 && 要點敘述

(一)  EMV/PBOC 應用選擇

 

根據PBOC3.0的第三部分《中國金融集成電路(IC)卡規範第3部分:與應用無關的IC卡與終端接口規範》中提到的應用選擇,如下:

1.      應用選擇是觸電激活\卡片復位之後,在第一個應用功能之前執行的處理過程。

2.      應用選擇過程,使用IC卡的數據,決定終端程序與相應的IC卡應用進行交易,過程分兩個步驟:建立終端支持的IC卡應用列表,在這個候選列表中選擇一個將要運行的應用。

3.      AID由5個字節的RID加上最長11個字節的PIX。AID是唯一的,PIX可以不唯一,針對相應的AID有特定的含義;PIX前面3個字節:010101爲借記,010102爲貸記,010103爲準貸記。

4.      ADF的目錄入口可以包括‘87’:應用優先權標識符。一個字節,第一個位表明是否需要持卡人確認纔可以選擇該應用。

 

根據第四部分,《中國金融集成電路(IC)卡規範 第4部分:借記貸記應用規範》交易流程大致如下:

1.      應用選擇(M):終端檢測終端與卡片都支持的應用,或者終端根據髮卡行事先定義的優先級別自動選擇應用。SELECT選擇應用,卡片返回FCI,如果卡片支持SM2,還要返回SM2指示器:DF69.[SELECT& READ RECORD]通過前面這兩個命令,進行目錄選擇,獲取卡片支持的應用列表。終端也可以對列表中包含的每個應用對卡片發送SELECT命令,最終形成候選列表。如果超過一個應用有

2.      應用初始化(M):終端讀取卡片該應用的應用數據決定要執行的處理。[GPO]

3.      讀應用數據(M):在應用初始化提供的AFL標記了文件盒記錄號,終端讀取並保存。[READ RECORD]

4.      脫機數據認證(O):SDA或DDA或CDA。校驗卡片真實性。[如果DDA,INTERNAL ANTHENTICATE]

5.      處理限制(M):檢查交易是否允許繼續,比如:生效日期,失效日期,應用版本號,國內國外,現金或購物或服務。

6.      持卡人驗證(M):驗證持卡人身份,通過CVM lists,包括:脫機明文PIN,聯機PIN,簽名,CVM失敗,無需CVM,簽名加聯機PIN,身份證件驗證。[GET DATA & VERIFY]

7.      終端風險管理(M):終端通過數據進行最低限額檢查,頻度檢查,新卡檢查,異常文件檢查,商戶強制交易聯機,隨機選擇聯機等完成風險管理。

8.      終端行爲分析(M):根據脫機數據認證,處理限制,持卡人驗證,終端風險管理,的結果以及終端和卡片中設置的風險管理參數決定如何繼續交易:脫機批准、脫機拒絕、聯機授權。然後終端向卡片請求應用密文,TC爲批准,ARQC爲聯機,AAC爲拒絕。[GAC]

9.      卡片行爲分析(M):卡片收到密文請求時,檢查數據,決定是否要改變終端設定的交易處理並返回密文。

10.  聯機處理(O):終端將卡片產生的ARQC密文發送至髮卡行進行聯機授權。報文包括ARQC密文和生成密文的數據以及脫機處理結果的指示器。髮卡行的響應信息包括授權響應密文ARPC,也可以包括髮卡行腳本。如果授權響應包括ARPC而且支持髮卡行認證,卡片通過確認ARPC而執行髮卡行認證校驗響應是否來自真實的髮卡行。[EXTERNAL AUTHENTICATE]

11.  髮卡行腳本處理(O):終端直接發送腳本到IC卡,影響卡片後續功能。

12.  交易結束(O):除非交易前幾個步驟因異常而終止,否則必須有此步驟。卡片和終端執行此處理完成交易,卡片生成TC或AAC。如果終端在授權信息後傳送清算信息,則TC應包括在該清算信息裏面,對於髮卡行批准而卡片拒絕的交易,終端需發起衝正。[GAC]

 

下面是應用選擇細節流程:

1.        應用選擇的卡片數據:ADF,AEF,AID,FCI,PSE,PDOL,LOG ENTRY,SFI

2.        終端數據:AID,選擇指示器(是否匹配)。

3.        使用SELECT和READ RECORD指令,獲取卡片支持的應用信息,如果有PDOL,在應用初始化時處理PDOL。

4.        終端先建立應用列表,可以使用目錄選擇方法(卡片可以不支持)或者使用AID列表選擇方法。得到共同支持的應用之後,如果支持,可以通過此案客人選擇應用或者確認應用,通過最高優先級別確定選擇的應用。終端可以支持持卡人對應用的選擇和確定。

5.        總體流程描述:終端通過目錄選擇或者AID選擇,得到共同支持的應用列表。終端如果支持持卡人選擇應用,則根據優先級別顯示並要求持卡人選擇,如果持卡人不選擇,則終止交易,否則選定應用。如果不支持選擇應用,但支持確認應用,則根據優先級別供持卡人確認,根據共同列表直到確認成功。如果終端不支持持卡人選擇也不支持確認,則判斷該應用是否可以直接選定,如果可以,根據共同列表,直到選定成功。

6.        應用選擇後,終端使用GPO命令響應中由卡片提供的AFL,確定從卡片讀取哪些應用數據以及哪些應用數據要用到脫機數據認證中。通過AIP,確定卡片是否支持脫機數據認證、持卡人驗證,髮卡行認證。

 

下面是讀應用數據細節流程:

1.        終端讀取交易處理的必要的卡片數據,並決定靜態數據認證或動態數據認證中使用的數據。

2.        終端讀取卡片記錄,並記錄相關記錄用於脫機數據認證,直到AFL的最後一條記錄,並把所有AFL都讀完。

 

脫機數據認證過程:(脫機數據認證是終端使用非對稱公鑰技術認證來自卡片數據的處理過程)

1.        脫機數據共有兩種形式:SDA / DDA。

2.        支持脫機交易的終端應支持靜態數據認證,和動態數據認證,複合數據認證可選。支持脫機交易的卡片應支持DDA,CDA可選支持。

3.        任何交易只執行一次脫機數據認證方法。優先權從CDA->DDA->SDA。

4.        靜態數據認證使用的終端數據:CA,CA索引,RID,TVR。卡片數據:CA索引,CA證書,公鑰指數,公鑰餘項,失敗指示器,靜態應用數據。

5.        靜態數據認證中,卡片並不執行任何的處理。

6.        終端認證過程:終端從認證中心獲取認證中心公鑰和公鑰索引以及相關信息。從卡片獲取當前使用的公鑰索引。使用認證中心公鑰驗證髮卡行公鑰證書,從證書中獲取髮卡行公鑰。然後使用髮卡行公鑰驗證簽名靜態應用數據,進行哈希值的比較,並設置終端驗證結果中的指示器。

7.        脫機動態數據認證,終端先使用髮卡行公鑰和認證中心公鑰驗證卡片的靜態數據,處理過程與SDA相似。驗證了靜態數據之後,終端向卡片申請動態簽名,使用內部認證實現標準動態數據認證,以及使用第一個AC生成命令實現複合動態數據認證/應用密文的生成。

8.        卡片用IC卡私鑰對終端隨機數和來自卡片的動態數據進行簽名,生成一個數據簽名,叫簽名動態數據認證。複合動態數據認證生成的簽名數據包括應用密文。卡片把動態簽名發給終端。

9.        動態數據認證中使用的終端數據除了靜態數據認證中用到的數據以外,還包括DDOL,和隨機數。IC卡的卡片數據除了動態數據認證以外,包括動態數據認證失敗指示器,DDOL,IC卡動態數字,IC卡私鑰,IC卡公鑰證書,IC卡的指數和餘項。對於複合動態數據認證,卡片的數據還包括應用密文(由GAC得到),和密文數據類型。

10.    在動態數據認證過程中,動態簽名由卡片生成,其餘由終端執行。

11.    具體的動態數據認證步驟:終端通過公鑰索引以及卡片的RID獲取從後臺下發的相應的認證中心公鑰以及相關信息。通過認證中心公鑰驗證髮卡行公鑰證書,並從髮卡行公鑰證書中獲取髮卡行公鑰。通過髮卡行公鑰驗證IC卡公鑰證書,並取出IC卡公鑰。終端發送包括隨機數的INTERNAL AUTHENTICATE命令到卡片,卡片響應此命令,生成一個動態簽名,傳遞到終端。終端使用IC卡公鑰驗證動態簽名。對於複合動態數據認證而言,終端使用GAC命令生成動態密文,對密文的要求和認證包括動態簽名的生成和動態簽名的校驗。

12.    如果複合動態數據認證失敗而且卡片GAC返回的密文是ARQC,則終端發送第二個GAC請求AAC。如果複合動態數據認證失敗且返回的應用密文是TC,則交易被脫機拒絕,而且不要求第二個GAC。

 

處理限制過程:

1.        終端對應用版本,生效日期和失效日期以及交易點條件進行檢查。

2.        處理限制中卡片數據包括:應用版本號,應用用途控制,髮卡行國家代碼,應用生效日期,應用失效日期。終端處理限制的數據包括:應用版本號,終端性能,終端國家代碼,交易日期,交易類型。

3.        處理限制的檢查包括:應用版本號的檢查,應用用途控制的檢查,應用生效日期,失效日期的檢查。處理限制的結果會在TVR中體現,不會直接影響交易結果。

 

持卡人驗證描述:

1.        持卡人驗證用於確保持卡人是合法的,卡片不是丟失或被盜。驗證方法有:脫機明文PIN驗證,聯機PIN驗證,簽名,CVM失敗,無需CVM,簽名與脫機明文PIN組合,身份證件驗證。

2.        持卡人驗證方法列表相關的卡片數據:AIP,CVM列表。脫機PIN驗證處理的卡片數據:應用缺省行爲,卡片驗證結果,PIN重試次數計數器,Pin重試次數上限,參考PIN.終端在持卡人驗證處理的終端數據:加密個人PIN數據,密碼鍵盤保密密鑰,終端性能,終端驗證結果,個人PIN.

3.        脫機PIN的處理:GET DATA & VERIFY.終端通過get data獲取PIN從重試次數,如果獲取失敗,則認爲可以繼續進行脫機PIN驗證。Verify用於脫機明文PIN驗證,卡片驗證PIN並返回下面三種情況之一:PIN匹配,PIN不匹配並目前剩下的嘗試次數,先前的交易中PIN的輸入次數已經超過了。

4.        持卡人驗證處理分爲:持卡人驗證方法列表處理和執行持卡人驗證。

5.        在列表處理中,卡片提供數據,終端進行處理。終端判斷AIP和持卡人驗證方法列表,決定是否執行持卡人驗證。從CVM的第一個列表開始,終端檢查持卡人驗證條件是否複合,CVM代碼是否可以識別,如果可以識別,則執行持卡人驗證方法。如果執行成功,則終端進行終端風險管理。如果無法識別,或者執行驗證識別,則檢查是否可以繼續處理下一個CVM,直到最後一個CVM條目。最後確定此案客人驗證成功或失敗。

 

終端風險管理描述:

1.        終端風險管理使大額交易聯機授權,並確保芯片交易能週期性地聯機。

2.        髮卡行被強制要求在應用交互特徵AIP中將改位設置成1以觸發終端風險管理,但終端應執行終端風險管理而不必考慮卡片的設置情況。

3.        終端風險管理中的卡片數據:PAN,ATC,上次ATC寄存器,連續脫機交易下限,連續脫機交易上限。(PAN用於檢查異常文件,ATC終端頻度檢查,上次聯機ATC寄存器用於頻度檢查或者新卡檢查,連續脫機交易下限用於檢查交易必須聯機之前所允許的最大連續脫機交易筆數,連續脫機交易上限用於脫機交易必須拒絕之前所允許的最大連續脫機交易筆數。

4.        終端風險管理中與終端相關的數據:授權金額:用於最低限額檢查;偏置隨機選擇的最大目標百分數:用於隨機選擇交易聯機處理;隨機選擇的目標百分比:隨機選擇交易聯機的處理;終端最低限額:用於最低限額檢查和隨機選擇交易聯機處理;TVR:記錄終端風險管理檢查的結果;偏置隨機選擇與閾值:用於隨機選擇交易聯機處理的數值;交易日誌:用於終端最低限額檢查;交易狀態信息:標明是否已經執行終端風險管理。

5.        終端風險管理過程:如果先前沒有,則通過GET DATA從卡片中獲取上次聯機交易ATC寄存器和應用交易計數器。終端異常文件檢查-》商戶是否強制交易聯機-》最低限額檢查(使超過終端最低限額的交易執行聯機授權。如果終端包含交易日誌,終端就檢查同一張卡片之前的交易金額加上現在的交易金額是否超過了最低限額)-》隨機交易選擇(隨機選擇脫機和聯機交易)-》終端頻度檢查(終端必須讀取到連續脫機交易上限和連續脫機交易下限,通過GET DATA 獲取上次聯機ATC和交易計數器ATC,如果ATC減去上次聯機ATC大於連續脫機交易下限,將”超過連續脫機交易下限”設置爲1,如果ATC減去上次聯機ATC大於連續脫機上限,將”超過連續脫機交易下限”設置爲1.)-》新卡檢查(終端檢查上次聯機ATC寄存器,如果爲0,則置新卡位爲1)

 

終端行爲分析:

1.        終端把髮卡行設置在卡片裏及收單行設置在終端裏的規則應用於脫機處理結果,決定交易應該是脫機批准或脫機拒絕或聯機授權。

2.        行爲分析牽涉到兩個步驟:檢查脫機處理結果、請求密文處理。

3.        檢查脫機處理結果卡片的數據:髮卡行行爲代碼IAC;要求密文處理的卡片數據:卡片風險管理數據對象列表1CDOL1.

4.        檢查脫機處理結果終端的數據:終端行爲代碼TAC和終端驗證結果TVR;要求密文處理的終端數據:終端數據元(在卡片風險管理數據對象列表1中得以詳細說明的終端數據元包括在GAC命令中)。

5.        涉及的命令包括GAC。該命令指明瞭下列應用密文中的一種:TC、AAC和ARQC。

6.        使用髮卡行行爲代碼和終端行爲代碼與終端驗證結果共同使用決定交易處理過程。終端脫機處理的結果決定是否交易需要聯機、脫機批准或脫機拒絕。該處理結果的步驟決定了將申請的密文類型:脫機批准、聯機授權和脫機拒絕。

 

卡片行爲分析:

1.        卡片收到終端發送的GAC,開始卡片行爲分析,最終決定本次交易的結果。

2.        卡片風險管理行爲包括:上次交易行爲,新卡檢查,頻度檢查。然後卡片響應交易結果:如果終端請求脫機,卡片可返回脫機,聯機,拒絕;如果終端請求聯機,卡片可返回聯機,拒絕;如果終端請求拒絕,卡片必須返回拒絕。

3.        如果終端在GAC中表明執行CDA,而且卡片在GAC的響應中返回的密文類型是TC或者ARQC。則卡片用IC卡私鑰將應用密文、密文信息數據以及其他數據簽名在GAC的響應數據返回給終端。

 

聯機交易:

1.        處理流程包括聯機請求、聯機響應。如果需要,可以執行髮卡行認證,如果已經執行CDA,處理過程還包括動態數據的驗證。

2.        涉及命令:外部認證External Authenticate。如果執行了髮卡行認證,終端應使用從髮卡行請求到的髮卡行認證數據通過外部認證命令驗證授權響應密文的正確性。

3.        如果在GAC中標識執行CDA,同時返回的密文類型是ARQC或TC。終端將使用IC卡公鑰驗證動態密文。如果驗證不正確,CDA失敗並轉至完成處理;如果驗證正確則進行標準聯機處理。

4.        卡片在GAC返回ARQC,如果終端具備聯機能力則終端發出聯機授權報文,否則轉至完成處理。

5.        收到後臺的響應報文,如果包括ARQC,則完成外部認證,卡片與終端都需要記住外部認證的結果。

 

髮卡行腳本處理:

1.        髮卡行腳本處理使得髮卡行不用二次髮卡就可以改變卡片個人化數據。支持的腳本命令包括:更改卡片參數、應用鎖定和解鎖、卡片鎖定、重置PIN計數和修改脫機PIN。

2.        MAC Key用到三個密鑰:由髮卡行確定的唯一雙倍長對稱密鑰MAC主密鑰;在個人化時由MAC主密鑰分散後寫入卡片的雙倍長對稱密鑰MAC子密鑰;在交易過程中通過MAC子密鑰產生的MAC過程密鑰。

3.        使用MAC過程密鑰產生腳本命令的MAC碼。

4.        如果腳本中包含敏感數據,還會使用到數據加密密鑰。比如脫機PIN。與MAC Key一樣包括有數據加密主密鑰,子密鑰,過程密鑰。分散過程與MAC Key一樣。

5.        腳本處理中,卡片使用的計數器和指示器:應用交易計數器,卡片驗證結果,髮卡行腳本命令計數器,髮卡行腳本失敗指示器.

6.        終端使用的數據元:髮卡行腳本結果(此結果要包括在清算報文和下次聯機授權中),終端驗證結果(最後一次GAC之前和之後髮卡行腳本是否成功),終端狀態信息。

7.        髮卡行的聯機響應數據:髮卡行腳本命令(按照BER-TLV格式,用86開始),髮卡行腳本標識(髮卡行用來標識髮卡行腳本),髮卡行腳本模板2(當前僅支持腳本模板2).

8.        處理流程包括:髮卡行腳本、命令執行和安全報文。

9.        髮卡行把腳本發到收單方,如果包括標誌“72”,在最終GAC後才執行該腳本。卡片收到腳本後,檢查安全報文。

 

交易結束

1.        如果要求聯機,但終端不支持聯機或者聯機無法完成,則終端和卡片通過其他的分析決定加以是否可以脫機完成或拒絕。

2.        如果終端CDA失敗,--如果卡片請求ARQC,則終端第二次GAC的時候請求AAC;--如果卡片請求TC,則終端拒絕並返回響應碼。

3.        髮卡行的聯機確認結果可能因爲髮卡行認證結果和卡片的選項而變成拒絕交易。

4.        第二次GAC也可以標識成需要執行CDA.GAC指令包含在卡片的CDOL2中詳細描述的終端數據元,CDOL2數據包含髮卡行聯機返回的授權響應碼或在聯機授權無法完成的情況下由終端返回的授權響應碼。

5.        具體流程:卡片行爲分析後,已經得出:脫機批准、拒絕交易或聯機授權。聯機處理時,聯機授權已經成功完成或由於通訊原因未完成。

6.        當卡片行爲分析執行第一個GAC命令返回TC或者AAC時,則交易脫機接受或者拒絕。第一次GAC返回TC,如果CDA成功或不執行,則脫機批准;如果第一次GAC返回TC而CDA失敗,則拒絕交易。如果第一次GAC返回ARQC且CDA失敗,則在第二次GAC中請求AAC。如果第一次GAC返回AAC,則終端直接拒絕交易。當卡片行爲分析第一個GAC返回ARQC,如果由於終端不支持或者連接失敗,終端向卡片請求產生AAC或者TC。如果聯機授權完成,終端向卡片發送第二個GAC請求TC或者AAC。

7.        終端分析第一次GAC返回數據,如果是返回TC或者ARQC,則終端根據卡片返回結果以及CDA執行結果確定爲脫機批准或拒絕。

8.        如果終端第一次GAC返回ARQC,如果聯機失敗,則通過缺省的IAC和TAC執行終端行爲分析,設置授權響應碼。如果聯機完成,授權響應碼源於後臺。然後得到授權響應碼,設置密文爲TC或AAC,併發出最終GAC。根據卡片的響應,得到最終結果。如果有腳本,則執行腳本。

 

安全、密鑰和數字證書

借記貸記安全相關:SDA/CDA/GAC/安全報文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章