中國銀聯(lián)IC卡應用規(guī)范 第九部分 多用途互聯(lián)網(wǎng)終端規(guī)范.
《中國銀聯(lián)IC卡應用規(guī)范 第九部分 多用途互聯(lián)網(wǎng)終端規(guī)范.》由會員分享,可在線閱讀,更多相關《中國銀聯(lián)IC卡應用規(guī)范 第九部分 多用途互聯(lián)網(wǎng)終端規(guī)范.(92頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、JR/T 0025.12—×××× 中國銀聯(lián)股份有限公司 發(fā)布 2012-01-01實施 2011-11-20發(fā)布 中國銀聯(lián)金融集成電路IC卡應用規(guī)范 第九部分 多用途互聯(lián)網(wǎng)終端規(guī)范 Unionpay Integrated Circuit Card Specifications Part 9 Multipurpose Internet Terminal Specification Q/CUP 041.9—2011 Q/CUP 中國銀聯(lián)股份有限公司企業(yè)標準 ICS 備案號: 1 Q/CUP 041.9—2011 目 錄
2、 1 范圍 1 2 規(guī)范性引用文件 1 3 術語和定義 2 3.1 集成電路卡(IC卡) integrated circuit(s) card (ICC) 2 3.2 卡片 card 2 3.3 響應碼 respond number 2 3.4 電子現(xiàn)金 2 4 符號和縮略語 2 5 終端硬件規(guī)范需求 3 5.1 終端安全要求 3 5.2 硬件組成 3 5.3 終端類型 4 6 一般需求 4 6.1 交易類型 4 6.2 交易輸入方式 4 6.3 下載管理 5 7 終端個人化 5 7.1 終端個人化數(shù)據(jù)說明 5 7.2 終端證書生成機制 6 7.3
3、 終端預個人化流程 6 8 安全體系 7 8.1 證書系統(tǒng) 7 8.2 證書類型 8 8.3 安全通道 10 9 終端交易流程 17 9.1 查詢余額交易 17 9.2 消費交易 17 9.3 電子現(xiàn)金圈存交易 18 9.4 行業(yè)卡交易 18 9.5 終端開通注冊 18 10 終端接口協(xié)議 22 10.1 CCID格式 22 11 終端命令集 22 11.1 管理命令 24 11.2 安全通道命令 31 11.3 交易命令 51 附 錄 A 終端類型 67 附 錄 B 終端數(shù)據(jù)表 68 附 錄 C 證書格式表 69 附 錄 D 命令狀態(tài)碼
4、列表 71 附 錄 E 算法 74 E.1 RSA加密算法 74 E.2 RSA簽名算法 74 E.3 對稱加密算法 75 E.4 基于分組算法的MAC 77 E.5 基于HASH算法的HMAC 78 附 錄 F 發(fā)卡銀行中文名稱和簡稱 79 附 錄 G 密鑰編號 80 III 前 言 本標準是依據(jù)中國金融集成電路卡借記貸記規(guī)范JR/T 0025.4~10以及其它相關的標準制定。 本標準闡述了金融IC卡多用途互聯(lián)網(wǎng)終端的相關內容。 本標準由中國銀聯(lián)股份有限公司提出。 本標準由中國銀聯(lián)股份有限公司產品創(chuàng)新部組織制定。 本標準主要起草單位:中
5、國銀聯(lián)產品創(chuàng)新部。 本標準主要起草人:劉風軍、肖波、李春歡、海濤、回春野、蔣焜、馬天舒、于維、王紅劍。 1 范圍 本規(guī)范描述了PBOC金融IC卡多用途互聯(lián)網(wǎng)終端,在終端硬件需求、接口協(xié)議、命令集、個人化以及安全體系方面作出了相關要求和規(guī)定。 本規(guī)范適用于受理由中華人民共和國境內發(fā)行使用的PBOC金融IC卡和其它行業(yè)應用IC卡的各種互聯(lián)網(wǎng)終端設備。使用對象主要是與金融IC卡應用相關的卡片設計、制造、管理、發(fā)行、受理以及應用系統(tǒng)的研制、開發(fā)、集成和維護等相關部門(單位)。 2 規(guī)范性引用文件 下列文件中的條款通過本規(guī)范的引用而成為本規(guī)范的條款。凡是注日期的引用文件,其隨
6、后所有的修改單(不包括勘誤的內容)或修訂版均不適用于本規(guī)范,然而,鼓勵根據(jù)本規(guī)范達成協(xié)議的各方研究是否可使用這些文件的最新版本。凡是不注日期的引用文件,其最新版本適用于本規(guī)范。 GB/T 2312-1980 信息交換用漢字編碼字符集基本集 GB/T 4943-1995 信息技術設備(包括電氣事務設備)的安全 GB/T 6833.2~6833.6-1987 電子測量儀器的電磁兼容性試驗規(guī)范 GB/T 9254-1988 信息技術設備的無線電干擾極限值和測量方法 GB/T 14916-1994 識別卡物理特性 GB/T 15120.1-.5-1994 識別卡 記錄技術 GB/T 15
7、150-1994 銀行卡交換報文規(guī)范 GB/T 15150-94 產生報文的銀行卡交換報文規(guī)范金融交易內容(ISO8583-1987) GB/T 15694.1-1995 識別卡 發(fā)卡者標識編號體系 GB/T 17552-1998 識別卡 金融交易卡 JR/T 0008-2000 銀行卡發(fā)卡行標識代碼及卡號(2001-01-01實施) JR/T 0003-2001 銀行卡聯(lián)網(wǎng)聯(lián)合安全規(guī)范 JR/T 0001-2009《銀行卡銷售點(POS)終端規(guī)范》 《中國金融集成電路(IC)卡借記/貸記規(guī)范》第1部分:卡片規(guī)范(V1.0) 《中國金融集成電路(IC)卡借記/貸記規(guī)范》第2部分
8、:終端規(guī)范(V1.0) 《中國金融集成電路(IC)卡借記/貸記規(guī)范》第3部分:應用規(guī)范(V1.0) 《中國金融集成電路(IC)卡借記/貸記規(guī)范》第4部分:安全規(guī)范(V1.0) 《銀聯(lián)卡業(yè)務運作規(guī)章》第二卷《業(yè)務規(guī)則》 Q/CUP 006-2009《中國銀聯(lián)銀行卡聯(lián)網(wǎng)聯(lián)合技術規(guī)范V2.1》 ANSI X9.8 銀行業(yè)——個人標識碼的管理和安全 ISO 7812-2:1993 識別卡 發(fā)卡方的標識 ISO 8859 8位單字節(jié)編碼圖形字符集 EMV 2000 Integrated Circuit Card Specification for Payment Systems,Vers
9、ion 4.0, Book 1, Application Independent ICC to Terminal Interface Requirements EMV 2000 Integrated Circuit Card Specification for Payment Systems,Version 4.0, Book 2, Security and Key Management EMV 2000 Integrated Circuit Card Specifications for Payment Systems,Version 4.0, Book 3, Application S
10、pecification EMV 2000 Integrated Circuit Card Specifications for Payment Systems,Version 4.0, Book 4, Cardholder,Attendant and Acquirer InterfaceRequirements 3 術語和定義 下列術語和定義適用于本規(guī)范。 3.1 集成電路卡(IC卡) integrated circuit(s) card (ICC) 內部封裝一個或多個集成電路用于執(zhí)行處理和存儲功能的卡片。 3.2 卡片 card 本規(guī)范中“卡片”一詞是指具有接觸式和
11、非接觸式支付應用、與支付終端交互的消費者設備。 3.3 響應碼 respond number 也稱為應答碼,是接收方接收到請求或通知后,返回給發(fā)送方表示處理結果的代碼。 3.4 電子現(xiàn)金 基于借記/貸記應用上小額支付的一種實現(xiàn)。在借記卡上可以解釋為預付,在貸記卡上可以解釋為預先授權。預付的金額或預授權額度在卡片中體現(xiàn)為可脫機消費的金額,也就是電子現(xiàn)金余額。 4 符號和縮略語 以下符號和縮略語表示使用于本規(guī)范。 AID 應用標識符(Application Identifier) ATC 應用交易計數(shù)器(Application Transaction Counter)
12、BCD 二進制編碼的十進制表示法(Binary Coded Decimal) CLA 命令報文的類別字節(jié)(Class Byte of the Command Message) Terminal 終端,在本規(guī)范中指PBOC金融IC卡多用途聯(lián)網(wǎng)終端 5 終端硬件規(guī)范需求 5.1 終端安全要求 金融IC卡多用途互聯(lián)網(wǎng)終端使用硬件加密模塊保證個人標識代碼(PIN)、卡號、卡片驗證碼、有效期等敏感信息的安全輸入和加密處理,支持與平臺之間建立通訊安全通道,對與外部交互的數(shù)據(jù)進行加、解密運算及合法性、完整性驗證。終端能夠安全地存儲密鑰,禁止對密鑰的直接訪問和輸出,通過有效的安全機制防止密
13、鑰被非法注入、替換和使用。應保證終端的固件和軟件不被非法注入或更新。 終端不以明文方式存儲、轉發(fā)銀行卡卡號、卡片驗證碼、PIN及卡片有效期等敏感信息。 持卡人在終端上鍵入密碼時,只顯示星號,不顯示明文。 設備處于交易模式時,終端鍵盤上輸入的任何數(shù)據(jù)不允許以明文方式向外部發(fā)送。 設備只有在安全訪問環(huán)境下才能進入管理模式。 設備中存儲密鑰和證書的安全存儲空間不小于6K字節(jié)。 5.2 硬件組成 5.2.1 IC讀卡器 金融IC卡互聯(lián)網(wǎng)終端內置接觸式和非接觸式IC卡讀卡器,用來接受IC卡進行命令數(shù)據(jù)傳遞通訊。該IC讀卡器模塊包括機械、電氣和邏輯協(xié)議等部分,詳細要求參見《中國金融集成
14、電路(IC)卡規(guī)范》相關部分。 終端在IC卡讀卡器插槽附近有明顯的標記,用來指示如何插入IC卡。 金融IC卡互聯(lián)網(wǎng)終端必須支持接觸式讀卡器和非接觸式讀卡器。 IC卡讀卡器插拔次數(shù)應大于10,000次。 5.2.2 顯示屏 可顯示ASCII可視字符。 漢字顯示符合國家標準GB/T 2312漢字。 5.2.3 鍵盤 鍵盤至少應具有10個數(shù)字鍵和若干功能鍵,功能鍵應必須包括確認、更正和取消三種功能。至少包括余額查詢鍵或功能鍵加上、下鍵的組合鍵。 鍵盤使用壽命可達到每鍵可敲擊100,000次以上。 5.2.4 與上位機通訊 通訊端口至少支持以下一種通訊方式: l USB(
15、推薦) l 紅外 l 藍牙 l 其它 5.2.5 電源 支持USB方式供電和內置電池供電。電源電壓應為DC 5V±5%,整機消耗電流小于300mA。 5.2.6 電磁兼容性 無線電干擾極限值應符合GB/T 9254中的A級ITE規(guī)定。 電磁敏感度應符合GB/T 6833.2~6833.6的規(guī)定。 5.2.7 可靠性 除非特殊部件另有規(guī)定,平均無故障連續(xù)工作時間不低于50,000小時。 5.3 終端類型 終端類型和命名規(guī)則請參見附錄A 終端類型。對各種終端類型的硬件要求見表1。 表1 終端類型的硬件要求 序號 硬件設備 通用接觸式讀寫器 具有LCD和鍵盤
16、的接觸讀寫器 通用雙界面讀寫器 具有LCD和鍵盤的雙界面讀寫器 通用非接觸讀寫器 具有LCD和鍵盤的非接觸讀寫器 1 鍵盤 無 必備 無 必備 無 必備 2 顯示屏 無 有 無 必備 無 必備 3 IC讀卡器 必備 必備 必備 必備 必備 必備 4 主機通信安全模塊 必備 必備 必備 必備 必備 必備 6 一般需求 6.1 交易類型 終端可承載的交易類型由金融IC卡支持的交易類型決定,如圈存交易、消費交易、查詢電子現(xiàn)金余額等、查詢借貸記主賬戶余額交易等。 6.2 交易輸入方式 終端支持PBOC金融IC卡和行
17、業(yè)應用IC卡,不支持磁條卡。 6.3 下載管理 終端應能夠提供對密鑰、證書、參數(shù)等數(shù)據(jù)的下載、更新和刪除。下載的通訊端口為USB通訊端口。下載方式為聯(lián)機遠程下載。 終端應保證下載控制的安全。只有經過授權或認可的一方才能向終端下載數(shù)據(jù),未經授權,不得更 改終端中的內容。終端還應能夠確認下載數(shù)據(jù)的安全,能驗證終端下載程序的完整性和正確性,確保敏感關鍵的密鑰數(shù)據(jù)在下載過程中不會泄漏。 對于終端程序,廠商可自行確定是否通過終端自動下載的方式對終端程序進行更新,并對相應更新流程自行制定。 7 終端個人化 7.1 終端個人化數(shù)據(jù)說明 終端個人化數(shù)據(jù)包括終端號、終端公鑰證書、終
18、端私鑰、終端CA根公鑰證書、PIN加密公鑰號。 7.1.1 終端序列號 終端序列號(簡稱“終端號”)由共計23位數(shù)字代碼組成,信息包括:所屬機構編碼、所屬廠商編號,生產日期,終端標識碼。終端序列號應當在設備出廠時全部寫入,不允許更改。其命名規(guī)則如下: l 所屬機構編碼:由8位數(shù)字代碼組成,編碼規(guī)則:銀行代碼+地區(qū)代碼,銀行代碼遵循現(xiàn)有機構代碼表規(guī)則,若后四位地區(qū)代碼無明確定義則填寫0000,如00010000銀聯(lián),01020000工行,01030000農行,01040000中行, 01050000建行,03010000交行等,(具體可參考附錄F) l 廠商編號規(guī)則:由3位數(shù)字代碼
19、組成,編碼如下:001 支付通,002聯(lián)迪,003 百富;如有新廠商申請將由銀聯(lián)統(tǒng)一分配 l 生產日期:即終端生產后的出廠日期,由4位數(shù)字代碼組成,編碼格式為:YYMM,如終端生產日期為;2011年8月,即為1108; l 終端標識碼:由8位字符(數(shù)字和或字母)代碼組成,終端標識碼由終端所屬機構向銀聯(lián)申請,銀聯(lián)統(tǒng)一分配。并由所屬機構將所申請的終端標識碼,交由終端廠商進行終端個人化。 7.1.2 終端公鑰證書、私鑰 由廠商向根CA中心申請,并由根CA中心簽發(fā)的X.509格式的證書,用于標識終端屬于哪個廠商而簽發(fā)的公鑰證書,其公、私鑰對由終端產生,私鑰由廠商以安全的方式保存在終端內,
20、不可導出。 7.1.3 銀聯(lián)終端根公鑰證書 由CA中心簽發(fā)的509格式證書,用于在交易過程中驗證交易服務器證書的根公鑰證書。 7.1.4 敏感信息加密公鑰 不同長度(1024、2048比特)的兩條PBOC格式的公鑰,由中國銀聯(lián)加密機生成,用于持卡人PIN加密。 7.2 終端證書生成機制 經過中國銀聯(lián)審核后的合法第三方機構建立金融IC卡多用途互聯(lián)網(wǎng)終端CA中心,該中心負責終端證書的簽發(fā)。 終端證書由生產廠商本地所建的RA進行申請,可采用單一證書申請或批量證書申請方式,證書的DN規(guī)則參見8.1.2。 7.3 終端預個人化流程 終端預個人化是將終端個人化信息預先寫入終端的過
21、程,其中CA系統(tǒng)根證書、敏感數(shù)據(jù)加密公鑰需要從指定服務器下載。終端預個人化流程如下圖所示: 圖1 終端預個人化流程 具體步驟如下: 1. 向終端設備中安裝終端CA系統(tǒng)根公鑰證書; 2. 向終端設備中安裝由中國銀聯(lián)提供的公鑰,用于加密敏感信息; 3. 向終端設備中安裝設備證書。 4. 向終端寫入終端號; 8 安全體系 8.1 證書系統(tǒng) 8.1.1 終端CA系統(tǒng)結構 銀聯(lián)互聯(lián)網(wǎng)終端根CA 終端證書注冊系統(tǒng)(RA) 終端證書 銀聯(lián)CA根證書 PIN加密公鑰 高級渠道證書 普通渠道證書 圖 2 銀聯(lián)CA根證書、PIN加密公鑰存放在RA系統(tǒng)中,為
22、終端廠商提供下載;終端證書注冊系統(tǒng)建設在終端生產廠商內,用于廠商向根CA中心申請所需要的證書 8.1.2 DN規(guī)則 1. DN屬性及含義參見表2。 表2 DN屬性 DN屬性 含義 備注 C 公司所在國家名稱 C = CN O 證書頒發(fā)機構 如CFCA OU 證書申請機構 終端設備廠商 OU 證書類型 如CUP Reader CN 證書持有者(終端設備)的通用名稱 1、 單位機構證書中可為證書主體單位的標準簡稱 2、 服務器證書可為證書主體設備的域名或IP 3、 終端證書為終端設備編碼 2. 擴展域 擴展域的內容包括三部分: l 證書鏈發(fā)布地
23、址 l 證書服務URL l OCSP URL 3. 私有擴展域 私有擴展域的內容包括兩部分: l 證書類型定義 —— 證書設備 —— 服務器證書 l 唯一標識 —— 設備標識碼 —— 服務器IP 8.1.3 密鑰算法 證書公、私鑰生成算法為1024位RSA算法,需要支持2048位擴展。 簽名算法使用的是SHA-1,可支持SHA256的擴展。對于密鑰算法,可支持國產SM2和SM3算法。 8.2 證書類型 終端CA系統(tǒng)能夠簽發(fā)終端證書、渠道證書。 8.2.1 終端證書 終端證書是標識終端設備身份的數(shù)字證書,每一個終端設備在預個人化時均會產生唯一的設備證書。此
24、證書的公、私鑰由終端設備本身產生,私鑰存儲在終端設備的敏感區(qū)內,不可導出。 1. 終端證書模扳 終端證書可以用來驗證設備的真?zhèn)危乐菇K端設備被假冒,并在與服務器進行安全通訊時證明設備的身份,設備證書采用標準X.509證書,證書格式內容參見附錄C證書格式表。 2. 終端證書發(fā)放參考流程如圖3所示。 圖3 終端證書發(fā)放流程 8.2.2 渠道證書 渠道證書是標識商業(yè)銀行網(wǎng)銀系統(tǒng)和合法第三方機構網(wǎng)銀系統(tǒng)渠道服務器的身份數(shù)字證書,每一個渠道服務器均配置唯一的渠道證書。渠道證書可以用來驗證渠道服務器的真?zhèn)?,防止服務器被假冒,并在與終端設備進行安全通訊時證明服務器的身份。 渠道證書分為兩
25、種,分別為支持PBOC根證書更新的渠道證書和不支持PBOC根證書更新的的渠道證書。證書采用標準X.509證書,證書格式內容參見附錄C證書格式表。 l 支持PBOC根證書更新的渠道證書DN內容參見表3: 表3 支持PBOC根證書更新的渠道證書DN C 國家 CN O 機構 頒發(fā)機構 OU 渠道機構 XX銀行或XX機構 OU 證書類型 CUP Super Server CN 服務器名稱 域名或IP l 不支持PBOC根證書更新的渠道證書DN內容參見表4: 表4 不支持PBOC根證書更新的渠道證書DN C 國家 CN O 機構 頒發(fā)機構 OU 渠
26、道機構 XX銀行或XX機構 OU 證書類型 CUP Server CN 服務器名稱 域名或IP 8.3 安全通道 金融IC卡多用途互聯(lián)網(wǎng)終端通過與其連接的聯(lián)網(wǎng)設備(如PC)接入到互聯(lián)網(wǎng)后臺服務器,并通過聯(lián)網(wǎng)設備采用密碼協(xié)議與互聯(lián)網(wǎng)后臺服務器建立端到端的邏輯安全通道。其總體架構如圖4所示。 圖4 安全通道示意圖 安全通道的建立協(xié)議由握手協(xié)議和記錄層協(xié)議兩部分組成。其中握手協(xié)議用于完成終端與服務器的雙向身份認證和會話密鑰的交換過程。記錄層協(xié)議用于完成應用數(shù)據(jù)的加密傳輸。 8.3.1 消息編碼 協(xié)議交互過程中的基本數(shù)據(jù)單元稱為消息。消息包括消息類型、消息體長度和消息
27、體內容三部分。本規(guī)范中消息編碼的定義采用類C語言的格式進行描述。基本消息單元的定義如下: struct { MessageType msg_type; WORD length; BYTE body[ ]; } Message; 其中,消息類型msg_type為一個字節(jié)枚舉類型值,消息長度length為兩個字節(jié)非負整數(shù),消息體body為變長數(shù)據(jù)結構,根據(jù)消息類型的不同分別定義。消息類型定義如下: enum{ client_hello = 0x80, server_hello = 0x81, server_certificate = 0x
28、82, client_certificate = 0x83, certificate_verify = 0x84, client_key_exchange = 0x85, server_finished = 0x86, client_finished = 0x87, error_message= 0x88, application_data = 0x89 } MessageType; 按照消息在協(xié)議交互過程中的不同作用,可將消息分為握手協(xié)議消息、錯誤信息消息和記錄協(xié)議消息三類。 (一) 握手協(xié)議消息 握手協(xié)議消息用于完成終端和互聯(lián)網(wǎng)服務器間的雙向身份認證和會話密鑰的交換過
29、程,定義如下: struct { MessageType msg_type; WORD length; switch ( MessageType ) { case client_hello : ClientHello; case server_hello: ServerHello; case server_certificate: ServerCertificate; case client_certificate: ClientCertificate; case certificate_verify: CertificateVerif
30、y; case client_key_exchange: ClientKeyExchange; case server_finished: ServerFinished ; case client_finished: ClientFinished; } body; } Message; l ClientHello 消息 終端生成的32字節(jié)隨機數(shù)random定義如下,密碼算法參見表7cipherSuite。 struct { BYTE random[32]; BYTE cipherSuite[2]; } ClientHello; 本規(guī)范中使用第1個字節(jié)。第2個字節(jié)
31、保留。cipherSuite第1個字節(jié)的定義參見表7。 表7 cipherSuite B7 B6 B5 B4 B3 B2 B1 B0 算法 X X X X * * X 1 RSA X X X X * * 1 X ECC X X X 1 * * X X 3DES X X 1 X * * X X AES-128 X 1 X X * * X X 3DES 1 X X X * * X X AES-128 說明:cipherSuite字節(jié)中B2、B3位保留。ClientHe
32、llo中相應位置為1表示終端可支持的密碼算法集。ServerHello同理,相應位置為1表示服務器端選擇的密碼算法。ServerHello消息定義如下: l ServerHello 消息 服務器端生成的32字節(jié)隨機數(shù)如下,密碼算法參見表7cipherSuite。 struct { BYTE random[32]; BYTE cipherSuite; } ServerHello; l ClientCertificate消息 終端的X.509證書certificate定義如下。包含客戶端的RSA公鑰,用來驗證CertificateVerify消息。 struct { BYT
33、E certificate[ ]; } ClientCertificate; l ServerCertificate消息 服務器端的X.509身份證書certificate定義如下,包含服務器的RSA公鑰,客戶端使用這個公鑰加密共享秘密。 struct { BYTE certificate[ ]; } ServerCertificate; l CertificateVerify消息 客戶端使用RSA私鑰對ClientHello和ServerHello消息連接后的結果進行簽名。簽名算法參見附錄E.2。簽名結果signature = Sign (ClientHello||Serv
34、erHello)作為消息主體。 struct { BYTE signature[ ]; } CertificateVerify; l ClientKeyExchange消息 使用服務器端證書公鑰加密的48字節(jié)master_secret。加密算法參見附錄E.1。 struct { BYTE encryptedSharedSecret[ ]; } ClientKeyExchange; l ServerFinished消息 服務器端對握手過程的驗證消息定義如下: message_MAC = HMAC(master_secret, Finish_label || Hash(han
35、dshake_messages)) HAMC的計算方法參見附錄E.5。其中master_secret為主秘密,F(xiàn)inish_label為6個字節(jié)的ASCII碼值“SERVER”,Hash算法選用SHA-1。Handshake_messages為握手消息的連接: handshake_messages = (ClientHello||ServerHello|| Hash(ServerCertificate)|| Hash(ClientCertificate)|| CertificateVerify||ClientKeyExchange); struct { BYTE messa
36、ge_MAC[32]; } ServerFinished; l ClientFinished消息 客戶端對握手過程的驗證消息定義如下: message_MAC = HMAC(master_secret, Finish_label || Hash(handshake_messages)) HAMC的計算方法參見附錄E.5。其中master_secret為主秘密,F(xiàn)inish_label為6個字節(jié)的ASCII碼值“CLIENT”, Hash算法選用SHA-1。Handshake_messages為握手消息的連接: handshake_messages = (ClientHello
37、||ServerHello|| Hash(ServerCertificate)|| Hash(ClientCertificate)|| CertificateVerify||ClientKeyExchange); struct { BYTE message_MAC [32]; } ClientFinished; (二) 錯誤信息消息 錯誤信息消息用于協(xié)議交互過程中的出錯處理。定義如下: struct { MessageType msg_type = error_message; WORD length; BYTE body
38、; } Message; 其中,消息類別msg_type和消息體body的定義參見表8: 表8 錯誤信息消息體定義 消息體名稱 消息體編碼 消息體定義 ClientCiperSuiteError 01 由服務器端發(fā)送,表示終端密碼算法cipherSuite錯誤。 ServerCiperSuiteError 02 由終端發(fā)送,表示服務器端密碼算法cipherSuite錯誤。 ClientCerttificateError 03 由服務器端發(fā)送,表示終端證書驗證錯誤。 ServerCertificateError 04 由終端發(fā)送,表示服務器端證書驗證錯誤,
39、 ClientHandshakeError 05 由服務器端發(fā)送,表示終端發(fā)送的握手認證錯誤。 ServerHandshakeError 08 由終端發(fā)送,表示服務器端發(fā)送的握手認證錯誤。 RecordError 09 由服務器端或終端發(fā)送,表示記錄層協(xié)議數(shù)據(jù)傳輸錯誤。 (三) 記錄層協(xié)議消息 握手協(xié)議完成密鑰協(xié)商后,進入記錄層協(xié)議。記錄層消息用于應用數(shù)據(jù)傳輸,定義如下: struct { MessageType msg_type = application_data; WORD length; BYTE encryptedD
40、ata [ ]; BYTE dataMac[8]; } Record; 其中encryptedData為加密后在安全信道中傳輸?shù)膽脭?shù)據(jù)。數(shù)據(jù)加密算法參見附錄E.1。dataMac為數(shù)據(jù)的8字節(jié)消息認證碼。消息認證碼算法參見附錄E.2。length為encryptedData和dataMac長度之和。 8.3.2 握手協(xié)議工作原理 握手協(xié)議用于完成終端和服務器之間的雙向身份認證和會話密鑰的交換過程。本規(guī)范中客戶端為PBOC金融IC卡互聯(lián)網(wǎng)終端,服務器為遠程支付網(wǎng)銀網(wǎng)關。 (一)握手協(xié)議基本流程 圖5 握手協(xié)議消息序列圖 (二)握手協(xié)議工作步驟 1. 客戶端產生3
41、2字節(jié)隨機數(shù)ClientHello.random,根據(jù)終端的算法支持設置ClientHello.cipherSuite,向服務器端發(fā)送ClientHello消息,啟動握手協(xié)議; 2. 服務器端產生32字節(jié)隨機數(shù)ServerHello.random,根據(jù)接收的ClientHello.cipherSuite選定可用的密碼算法,設置ServerHello. cipherSuite; 3. 服務器端使用服務器證書設置ServerCertificate.certificate; 4. 服務器端發(fā)送ServerHello和ServerCertificate消息; 5. 客戶端驗證收到的服務器端證書
42、,如果驗證不通過,則發(fā)送ServerCertificateError消息,結束鏈接;否則,客戶端產生48字節(jié)隨機數(shù)作為共享主秘密master_secret,設置ClientKeyExchange.encryptedSharedSecret為使用服務器端證書公鑰加密的master_secret; 6. 客戶端使用客戶端證書設置ClientCertificate.certificate,使用客戶端私鑰生成CertificateVerify.signature = Sign (ClientHello||ServerHello)。簽名算法參加附錄E。發(fā)送ClientCertificate、Certi
43、ficateVerify和ClientKeyExchange到服務器端; 7. 服務器端檢驗客戶端證書合法性,驗證客戶端證書簽名CertificateVerify。若驗證不通過,則發(fā)送ClientCertificateError消息,結束鏈接。否則,從ClientKeyExchange消息中解密得到共享主秘密master_secret; 8. 服務器端發(fā)送握手驗證消息ServerFinished; 9. 客戶端驗證接收到的ServerFinished消息,若驗證不成功,則發(fā)送ServerHandshakeError消息,結束鏈接;否則,發(fā)送客戶端握手驗證消息ClientFinished;
44、 10. 服務器端驗證接收到的ClientFinished消息。驗證失敗,則發(fā)送ClientHandshakeError消息,結束鏈接。 11. 上述握手過程成功后,雙方使用如下方法計算會話密鑰: X = HMAC(master_secret, key_label||ClientHello.random||ServerHello.random) 其中key_label為3字節(jié)ASCII碼“KEY”,HMAC算法參見附錄E.5。 令X1X2…X32分別為X的第1個至第32字節(jié), 則加密密鑰SKey為: SKey = X1X2…X16, MAC密鑰MKey為: MKey = X1
45、7X18…X32。 12. 握手過程結束。 8.3.3 記錄層協(xié)議工作原理 握手成功之后,雙方可在建立的安全通道上進行數(shù)據(jù)傳輸。 (一)記錄層協(xié)議的數(shù)據(jù)加密方法 在傳輸?shù)臄?shù)據(jù)Data前添加數(shù)據(jù)塊長度Length,構成數(shù)據(jù)塊D = (Length||Data)。使用加密密鑰SKey按照ServerHello.cipherSuite中指定的加密算法對D進行加密。即: Record.encryptedData = ESKey(D); 加密步驟參見附錄E。 (二)記錄層協(xié)議的數(shù)據(jù)完整性保護方法 在記錄層協(xié)議的傳輸過程中,為雙端每個發(fā)送和接收記錄指定記錄序列號。其初始值Seq0的設置
46、為: 令R1R2…R32是ClientHello.random的第1到32字節(jié),并令Q1Q2…Q32是ServerHello.random的第1到32字節(jié),則: Seq0 = R1R2…R8 || Q1Q2…Q8 每發(fā)送或接收一幀記錄信息后,記錄序列號加1,雙端要保持發(fā)送接收序列號的同步: Seqi = Seqi-1 + 1 雙方交互的應用數(shù)據(jù)的完整性使用消息認證碼MAC進行保護,MAC的生成方法為: Record.dataMAC = MAC( MKey, Seqi || Record. encryptedData) 其中Record.encryptedData是所傳輸?shù)募用軕?/p>
47、數(shù)據(jù),Seqi是當前的記錄序列號。MAC的計算方法參見附錄E.4??蛻舳嘶蚍掌鞫私邮盏綌?shù)據(jù)后,首先驗證MAC的正確性,如果正確則進行處理;否則,發(fā)送RecordError消息。連續(xù)3次校驗錯誤則需結束當前鏈接,重啟握手協(xié)議。 9 終端交易流程 9.1 查詢余額交易 查詢余額交易分為兩種情況,分別為借記/貸記主賬戶余額查詢和電子現(xiàn)金余額查詢。 l 借記/貸記主賬戶余額查詢 借記/貸記主賬戶余額查詢交易流程如下: 1. 將金融IC卡插入終端; 2. 終端通過安全通道接入UPOP前置,執(zhí)行PBOC借記/貸記應用流程中的查詢余額命令; 3. PC上提示請查看終端屏幕,余額查詢結果
48、顯示在顯示屏上; l 電子現(xiàn)金余額查詢 電子現(xiàn)金余額查詢交易流程如下: 1. 將金融IC卡插入終端; 2. 通過終端鍵盤上的功能按鈕或接口命令查詢電子現(xiàn)金余額; 3. 余額查詢結果顯示在顯示屏上; 注:該交易為脫機余額查詢。 9.2 消費交易 消費交易流程如下: 1. 將金融IC卡插入終端; 2. 終端接收到消費指令后,提示持卡人輸入交易PIN; 3. 持卡人輸入交易PIN; 4. 金融IC卡執(zhí)行PBOC借記/貸記消費流程,生成命令報文; 5. 終端通過安全通道將經過簽名后的金融IC卡命令報文發(fā)送至互聯(lián)網(wǎng)端; 6. 終端獲得應答報文后,顯示交易執(zhí)行結果。 9
49、.3 電子現(xiàn)金圈存交易 金融IC卡電子現(xiàn)金圈存交易采用PBOC腳本處理方式更新電子現(xiàn)金余額。 交易流程中僅增加終端自行計算最大圈存金額環(huán)節(jié),即點擊充值網(wǎng)頁按鈕,控件下發(fā)至終端電子現(xiàn)金余額查詢指令(不顯示的余額查詢指令版本)后,終端先讀卡片電子現(xiàn)金余額,根據(jù)固化的電子現(xiàn)金上限計算最大圈存金額,并在終端顯示:您此次可充值最大金額為xxx元,后續(xù)按照傳統(tǒng)業(yè)務流程處理。 需要注意:電子現(xiàn)金圈存必須判斷腳本只能有一個(可以包含多個APDU命令),當存在多個腳本時,腳本處理結果置為失敗。并且,電子現(xiàn)金余額與下發(fā)腳本內所含金額總和不能大于電子現(xiàn)金限額。 9.4 行業(yè)卡交易 終端支持行業(yè)卡交易,
50、如水卡、電卡、燃氣卡、交通卡的充值等。交易流程如下: 1. 終端完成金融IC卡的消費; 2. 按照各行業(yè)卡接口,插入接觸式行業(yè)卡或將卡片放在非接觸讀卡區(qū)域并完成行業(yè)卡的充值交易; 3. 顯示交易執(zhí)行結果及余額。 上述交易流程中第一步也可通過銀聯(lián)快捷支付完成。關于行業(yè)卡交易的支持,將通過終端程序更新的方式予以支持,行業(yè)應用的文件結構參數(shù)可通過附加配置信息下載到終端中。 9.5 終端開通注冊 9.5.1 終端注冊需求 終端具備網(wǎng)上注冊開通功能。終端在初次注冊使用時,,須在終端插入銀聯(lián)標準IC卡,并輸入聯(lián)機PIN以進行持卡人驗證。驗證通過后,注冊用戶、終端及卡片建立相關關聯(lián)關系后可
51、使用。 9.5.2 終端注冊開通流程 持卡人登陸中國銀聯(lián)指定網(wǎng)站注冊開通終端(用戶注冊流程參照現(xiàn)有互聯(lián)網(wǎng)用戶注冊流程,若用戶選擇綁定終端,則遵循IC卡互聯(lián)網(wǎng)終端開通流程),流程參見圖6: 通過 通過 是 否 未通過 未通過 未通過 未通過 未通過 通過 通過 是 將終端連接到PC 插入金融IC卡 選擇設備證書 登陸服務器 終端證書 有效性驗證 服務器證書 有效性驗證 建立安全通道 提取終端數(shù)據(jù) 終端是否在 系統(tǒng)中注冊 終端數(shù)據(jù) 完整性驗證 檢查是否插入IC卡 讀取IC卡信息 IC卡驗證 持卡人實名驗證 持卡人 和終端號綁定
52、 注冊成功 注冊失敗 圖6 終端網(wǎng)上注冊開通流程 具體步驟如下: 1. 持卡人將終端設備連接到個人計算機,并插入金融IC卡; 2. 使用終端設備證書登錄指定注冊服務器; 3. 驗證終端設備證書有效性,包括有效期、根證書、CRL列表等。如果驗證成功,則進入下一步;如果驗證失敗,則注冊失敗; 4. 服務器獲取終端號; 5. 驗證終端是否已經綁定。如果驗證成功,則注冊完成;如果驗證失敗,則進入下一步; 6. 檢測是否插入IC卡,如果檢測到IC卡,則下一步;未檢測到;提示請插入IC卡; 7. 服務器通過終端提取卡片信息; 8. 服務器對IC卡進行合法性、綁定關系驗證。如果驗證
53、成功,則進入下一步;如果驗證失敗,則注冊失敗; 9. 持卡人輸入聯(lián)機PIN,服務器通過余額查詢交易對持卡人進行實名驗證。如果驗證成功,則進入下一步;如果驗證失敗,則注冊失敗; 10. 服務器將持卡人信息與終端設備信息進行綁定; 11. 注冊完成。 9.5.3 注冊信息 持卡人綁定互聯(lián)網(wǎng)終端時,需要在終端輸入聯(lián)機PIN,其他注冊綁定信息包括并不僅限于以下信息: 1. 終端設備序列號:系統(tǒng)從終端設備證書中自動獲?。? 2. 銀行卡密碼:,用于驗證持卡人有效性; 3. 4. IC卡卡號:系統(tǒng)從終端設備自動讀取。 9.5.4 身份驗證 身份驗證包括IC卡合法性驗證和持卡人實名驗
54、證兩部分。 l IC卡合法性驗證 IC卡驗證的目的是驗證IC卡的合法性,驗證流程參見圖7: 否 是 獲取IC卡信息 進行IC卡查詢 驗證失敗 驗證成功 IC卡存在 圖7 終端合法性驗證 具體步驟如下: 1. 服務器從終端設備中讀取IC卡信息; 2. 服務器連接銀行系統(tǒng)查詢IC卡合法性; 3. 如果IC卡不存在、IC卡屬于黑名單、或IC卡使用狀態(tài)不正常,則IC卡驗證失??;如果IC卡合法有效,則驗證通過; l 持卡人實名驗證 持卡人實名驗證的目的是對對持卡人卡片真實性進行驗證。驗證流程參見圖8: 否 是 用戶輸入聯(lián)機PIN 余額查詢 驗證失敗 驗證成
55、功 發(fā)卡行密碼驗證 圖8 終端合法性驗證 具體步驟如下: 1. 持卡人在終端輸入已插入終端的金融IC卡聯(lián)機PIN; 2. 按照傳統(tǒng)的金融IC卡借貸記主賬戶余額查詢交易,向發(fā)卡行發(fā)送余額查詢請求; 3. 發(fā)卡行驗證持卡人聯(lián)機PIN,如果密碼正確,則驗證通過;如果密碼不正確,則驗證失敗。 9.5.5 綁定關系 終端與持卡人綁定關系如下: 1. 終端設備第一次注冊時必須插入IC卡; 2. 終端設備信息在注冊服務器中只能進行一次綁定,即終端設備與持卡人是一一對應的關系; 3. 終端設備綁定的銀行卡需通過持卡人輸入聯(lián)機PIN并通過主賬戶余額查詢交易進行驗證; 4、需要修改端
56、設備綁定的銀行卡時,需進行解綁后再次執(zhí)行綁定流程,, 10 終端接口協(xié)議 10.1 CCID格式 建議終端使用USB接口,采用CCID協(xié)議。CCID發(fā)送到終端的命令格式參見表9: 表9 CCID發(fā)送到終端的命令格式 信息域 標識 字節(jié)長度 含義 通信數(shù)據(jù)頭 Type 1 CCID指令 Length 4 Abdata的長度 Slot 1 卡槽號 Bseq 1 結果號 bBwi 1 塊等待時間 Level Param 2 選擇通訊方式 指令 Abdata 發(fā)送給CCID的數(shù)據(jù)(APDU命令) 金融IC卡讀取隨機數(shù)命令舉例: 6
57、F 05000000 00 F1 00 0000 0084000008 ↓ ↓ ↓ ↓ ↓ ↓ ↓ Type Length Slot Bseq bBwi Level Abdata 11 終端命令集 終端命令APDU格式和響應APDU格式遵循《中國金融集成電路(IC)卡規(guī)范》,具體要求參考《JR/T 0025.1—2005》6.2.1和6.2.2部分。 終端命令集包括兩部分:特殊命令集和透明命令集。 l 特殊命令:指在本規(guī)范中所有命令報文的命令類別(CLA)為7E或7F的APDU命令。其中,7E表示
58、透明傳輸數(shù)據(jù);7F表示加密傳輸數(shù)據(jù),并采用銀聯(lián)公鑰對命令報文的數(shù)據(jù)域(Data)進行加密。根據(jù)特殊命令的功能,將特殊命令分為三類,分別為管理命令、安全通道命令和交易命令。 l 透明命令:指除本規(guī)范規(guī)定的特殊命令以外的其它APDU命令。 注:透明命令不包含SELECT AID命令。 終端命令集參見表10。 表10 終端命令集 編號 命令名稱 CLA INS 功能描述 必選(M)/可選(O) 1 READ TERMINAL INFO 7E/7F 10 用于獲取終端號和終端在線卡號,包括固件信息、版本號、設備狀態(tài)等。。 M 2 MANAGE BUZZER 7E/
59、7F 11 用于控制蜂鳴器的狀態(tài)。 O 3 MANAGE LED 7E/7F 12 用于控制LED的狀態(tài)。 M 4 CONFIG DISPLAY FORMAT 7E/7F 13 用于設置顯示屏上提示信息的顯示格式。 O 5 ADD CERTIFICATE 7E/7F 20 用于為終端增加公鑰證書。 M 6 UPDATE CERTIFICATE 7E/7F 21 用于更新終端中的公鑰證書。 M 7 DELETE CERTIFICATE 7E/7F 22 用于回收(刪除)終端中的公鑰證書,一次只能回收(刪除)一個公鑰證書。 M 8
60、 READ CERTIFICATE 7E/7F 23 用于讀取證書。 M 9 GET CERT RESPONSE 7E/7F 24 讀取證書數(shù)據(jù)(連續(xù)操作)。 10 GET CLIENT HELLO 7E/7F 25 獲取Hello信息。 M 11 HASH SERVER CERTIFICATE 7E/7F 26 服務器證書信息摘要操作。 M 12 VERIFY SERVER CERTIFICATE 7E/7F 27 服務器證書簽名驗證。 M 13 CLIENT SIGN 7E/7F 28 終端簽名。 M 14 EXP
61、ORT MASTERKEY 7E/7F 29 密文導出MasterKey。 M 15 HMAC (GetHMAC、VerifyHMAC、DeriveSessionKey) 7E/7F 2A HMAC操作,用于ClientFinished、ServerFinished、DeriveSession等步驟的HMAC生成、驗證等功能。 M 16 TRANSMIT ENCRYPTED COMMAND 7E/7F 2B 用于傳輸加密后的APDU包指令。 M 17 RESET SECURE CHANNEL 7E/7F 2C 終止安全隧道。 18 READ
62、NON-PBOC PIN 7E/7F 2D 金融IC卡或金融賬戶的PIN不允許讀取,本命令用于讀取非金融行業(yè)IC卡的PIN值。 O 19 GET REVERSE INFO 7E/7F 2E 用于讀取最近一筆圈存的信息(后臺沖正)。 M 20 CREDIT FOR LOAD 7E/7F 40 用于支持金融IC卡的圈存交易,允許將金融IC卡內主賬戶的資金劃入電子現(xiàn)金賬戶,并完成電子現(xiàn)金卡的充值操作。 M 21 DEBIT FOR PURCHASE 7E/7F 41 用于支持金融IC卡的消費交易,允許持卡人使用金融IC卡完成互聯(lián)網(wǎng)交易及獲取相關服務。 M
63、 22 GET ELECTRONIC CASH BALANCE 7E/7F 42 用于查詢電子現(xiàn)金余額。持卡人通過終端讀取電子現(xiàn)金余額,此交易支持脫機方式。 O 23 GET PRIMARY BALANCE 7E/7F 43 用于持卡人通過終端讀取借記/貸記主賬戶余額。此交易聯(lián)機進行。 M 24 SET APP PARAMETERS 7E/7F 44 用于設置PBOC交易參數(shù)。 M 25 GET PBOC TAG VALUE 7E/7F 45 用于根據(jù)標簽長度序列獲取終端PBOC定義的標簽值。 M 注1:INS = 00~0F保留,本規(guī)范
64、未予定義。 注2:表10中編號8-15行(灰色底紋)為建立安全通道需要涉及的指令,這些指令可通過透明傳輸給終端。其他指令(除8-15行)都必須建立安全通道后,通過TRANSMIT ENCRYPTED COMMAND指令加密后在通道中傳輸。 11.1 管理命令 11.1.1 READ TERMINAL INFO命令 11.1.1.1 定義和范圍 READ TERMINAL INFO命令用于獲取終端廠商信息,包括固件信息、版本號、安全狀態(tài)等。 11.1.1.2 命令報文 READ TERMINAL INFO命令報文編碼參見表12: 表11 READ TERMINAL INF
65、O命令報文 代碼 值 CLA 7E/7F INS 10 P1 00 P2 00/01 Lc 不存在 Data 不存在 Le 見說明 CLA=‘7E’:透明傳輸 CLA=‘7F’:加密傳輸 Le=‘00’:表示需要最大字節(jié)數(shù)(256字節(jié)) 11.1.1.3 命令報文數(shù)據(jù)域 命令報文數(shù)據(jù)域不存在。 11.1.1.4 響應報文數(shù)據(jù)域 P2=0x00:表示獲取設備總體狀態(tài),返回1字節(jié)狀態(tài)信息,Le=0x01。狀態(tài)字節(jié)bit位定義如下: 表12 狀態(tài)字節(jié)定義 B7 B6 B5 B4 B3 B2 B1 B0 備注
66、 x 是否寫入終端號 x 是否寫入銀聯(lián)根CA公鑰證書 x 是否寫入PBOC根CA公鑰 x 是否寫入敏感信息加密公鑰 x 是否寫入設備證書 x x 設備狀態(tài) 00:通電 01:設備管理(Super普通服務器驗證成功) 10:交易允許(普通服務器驗證成功) 11:保留 保留 P2=0x01:表示獲取終端號、固件版本號和讀取終端當前在卡槽的IC卡號,終端號即終端生產編號由“設備所屬機構代碼(3B)+廠商代碼(3B)+出廠日期(4B YYMM)+終端標識碼(8B)”構成。輸出長度Le為00,表示需要最大字節(jié)(256字節(jié))。輸出數(shù)據(jù)采用TLV格式,Tag值定義如下: Tag值 定義 01 終端生產編號(18個字節(jié)) 02 終端固件版本號(6字節(jié)) 03 公鑰版本號(2個字節(jié),從00-99) 04 IC卡卡號 05 沖正標識位(0x30表示無沖正信息,0x31
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。