- 快捷搜索
- 全站搜索
" />
行業現狀:無論是傳統的磁條卡、金融IC卡,還是移動支付技術、密碼技術在銀行卡領域中都起著關鍵與支撐的作用。銀行卡交易的敏感數據私密性應該保護,數據的完整性應當受到保護,交易的實體雙方應該得到認證。在銀行卡領域實現以上功能常用的密碼算法主要有三類,即對稱算法、非對稱算法和哈希算法。2013年,中國人民銀行發布《中國金融集成電路(IC)卡規范》(JR/T0025-2013,簡稱PBOC3.0),首次支持SM算法;2014年,中國銀聯修訂發布《中國銀聯金融IC卡技術規范》(Q/CUP0047-2014,簡稱UICS)支持SM算法。自此,金融IC卡開始試點應用SM算法并逐步規模化應用。2014年以來,中國銀聯先后修訂發布了交換系統、受理終端規范支持SM算法,并成功實施改造推廣。
金融IC卡交易的SM算法應用
在金融IC卡領域,以金融IC卡標準借貸記應用流程為例,密碼算法在金融IC卡應用主要在脫機數據認證、應用密文生成、發卡行/卡片認證、發卡行腳本處理等環節中體現,如圖1所示。

圖1 金融IC卡標準借貸記典型應用流程中的密碼算法應用
1.脫機數據認證環節。
脫機數據認證是金融IC卡交易中終端對于卡片真實性的驗證,該環節基于公鑰密碼技術(非對稱算法)的簽名驗證機制。根據PBOC3.0規范第7和17部分定義,脫機數據認證環節使用非對稱算法RSA或SM2算法進行數據的簽名和驗簽,其中也用到了哈希算法SHA-1或SM3算法來進行哈希計算。
(1)SM2算法下的證書格式與驗簽流程差異。SM2算法與SM3算法的應用在交易流程上與RSA算法和SHA-1算法并無差別,但由于SM2算法橢圓曲線算法的特性,其簽名結果需要附帶完整的被簽名數據一起傳遞。同時SM2算法本身包含了哈希算法步驟,無需重復進行哈希計算。因此,脫機數據認證環節采用SM2算法后,相關數字證書、數據格式的變化如下。
SM2證書去掉發卡行公鑰余項、發卡行公鑰指數長度、發卡行公鑰指數、填充字節等RSA算法特有字段。去掉哈希校驗過程,同時去掉哈希值及哈希算法標識字段:哈希計算SM3是SM2機制的一個步驟,因此沒有必要再進行單獨驗證。設置“公鑰參數標識”:考慮算法參數擴展需求,新增SM2算法“公鑰參數標識”。被簽名數據明文傳遞,不需要恢復:驗證簽名流程基本不變,但去掉了公鑰索引判斷。相關流程定義參見PBOC3.0第17部分第5章;具體的算法選擇過程參見本文后續分析。
(2)終端支持SM2算法。雙算法終端為適應SM算法的交易處理和根CA公鑰加載,需要進行相應的改造。對于金融IC卡交易流程處理主要參考見PBOC3.0第17部分;對于根CA公鑰加載應用SM2算法的支持,銀聯的方案定義于《銷售點終端(POS)應用規范》(QCUP009.1-2015)。
(3)其他相關內容。根CA公鑰認證技術要求、應用SM算法的IC卡數據分組要求、個人化數據模板要求參見UICS產品規范第11部分第7-9章。
2.應用密文與發卡行安全報文環節。
標準借貸記應用流程中的對稱算法使用主要有以下環節。
(1)應用密文生成與發卡行/卡片認證。AC(應用密文)用于在卡片和發卡行交易授權系統間對交易報文進行鑒別,是用過程密鑰進行報文鑒別碼MAC計算生成。應用密文類型包括ARQC、AAC、TC、ARPC等。基于SM4算法的密文計算結果和3DES一樣同為8字節,具體計算過程參見PBOC3.0第17部分第6章。
(2)發卡行安全報文保護。發卡行安全報文用于發卡后的特定交易過程中卡片和交易授權系統間的報文傳輸安全,包括了安全報文加密和完整性計算兩類,使用對稱算法。基于SM4算法的具體計算過程參見PBOC3.0第17部分第7-8章。
(3)子密鑰分散及過程密鑰生成。在上述過程中,應對報文加密和完整性保護使用不同的密鑰,包括應用密文密鑰、發卡行安全報文加密密鑰和MAC密鑰三類。每類密鑰分發卡行主密鑰IMK、卡片主密鑰MK、卡片過程密鑰SK三級,密鑰分散或生成關系,如圖2所示。基于SM4算法的計算方法參見PBOC3.0第17部分第8.1.3至8.1.4節。

圖2 金融IC卡對稱密鑰體系
3.算法選擇。
SM算法應用過渡期間,需要SM算法卡可以在存量終端上使用。SM算法終端要兼容受理非SM算法卡片,因此SM算法卡和新增的SM算法終端都需要支持兩套算法。根據PBOC3.0規范第17部分定義,雙算法卡在卡片個人化數據包括了RSA算法所需的所有數據元,同時包括了SM2算法所需的所有數據元。而PBOC3.0定義的單SM算法卡在實際應用不存在。對于脫機數據認證算法,卡片在接收終端應用選擇命令后,返回的PDOL數據列表中必須包括SM算法支持指示器(DF69);終端根據如支持SM算法,設置國密算法支持指示器標簽為“1”發送GPO指令至卡片,不支持SM算法的存量終端默認會填“0”。雙算法卡片根據GPO的指令參數,確定卡片的算法環境和數據返回給終端。終端根據卡片返回的AIP和AFL進行應用數據讀取、脫機認證等其他處理流程。
對于聯機數據算法,聯機報文的55域9F10第8字節指定了應用密文、聯機認證和發卡行腳本保護所用對稱密碼算法標識。
在PBOC3.0規范中,SM算法支持指示器(DF69)的值確定了脫機數據認證使用的密碼算法類型和聯機數據的對稱密碼算法類型。實際上,后者只涉及卡片和發卡行之間的數據交互,不受中間環節算法支持的影響。因此UICS規范規定了雙算法卡的應用密文、發卡行腳本加密和完整性保護僅使用SM4算法。
銀行卡交易報文敏感數據及完整性保護
為保證數據的安全傳輸,系統用對稱密碼算法對網絡中的報文進行了MAC計算,并對PIN等敏感數據進行加密。典型的銀行卡交易報文處理過程如圖3所示。

圖3 銀行卡交易報文處理加解密示意圖
網絡中POS機(密碼鍵盤)、收單系統、銀聯轉接系統(CUPS)以及發卡行系統之間組成了一個點對點的數據加解密網絡。CUPS與各聯網入網機構分別約定數據密鑰。其中,與銀聯轉接系統相連系統間的報文格式由《中國銀聯銀行卡交換系統技術規范》(Q/CUP006)規定,2015年版開始支持SM4算法;銀聯終端機具到受理方的數據處理支持SM4算法對方案尚未公開發布,各家受理機構實現的方案也可能有所差異。
1.交換系統。
交換系統的報文加密主要涉及PIN加解密、報文MAC計算。SM4算法的分組長度發生變化導致存量報文域長度不夠;此外,兼容兩種算法,需要增加算法標識。Q/CUP006規范定義了相關用法。
(1)數據域定義。針對SM4算法分組長度變長的問題,經過對現有報文域應用情況的梳理和分析,一是最終選定了更長的63域存放國產密碼PIN密文,并重新設計了PINBlock格式,原來存放PIN的52域將用0填充;二是仍然使用第128域存放MAC,以保持報文域長度不變,與ISO8583規范要求及國際卡組織處理模式保持一致,有利于SM4算法的國際推廣。
(2)雙算法兼容。針對兩種算法兼容問題,為了區分報文采用的算法,我們對比了報文頭設置算法標識與報文域設置標識的方案。認為報文域設置標識不改變報文結構,系統改動量小,各節點可按照當前的方式進行報文解包處理。方案最終在F53域設置PIN加密算法標識,在F60.3.3設置MAC算法標識。PIN加密算法標識和MAC算法標識單獨設立,支持兩者算法類型不一致的情況,具有較高的靈活性。在實際應用中,銀聯交換系統還需要根據發卡行的實際算法需求,通過配置參數的方法,區分給不同發卡行的報文密碼算法。
2.受理終端。
受理終端與受理行之間的報文加密主要涉及PIN加解密、報文MAC計算和磁道信息加密,還包括雙算法兼容、終端密鑰管理等內容。和交換系統類似,終端報文應用SM4算法同樣需要考慮SM4算法的分組長度變化帶來的問題。由于這部分規范尚未公開發布,暫不詳細介紹。
(文章來源:金融電子化雜志)
掃碼即可手機
閱讀轉發此文
我國信用卡產業將在市場經濟體制日趨合理成熟的宏觀條件下,在大數據等新理
PBOC3.0標準將最大程度地繼承現有標準框架下的技術與業務體系,但隨著移動支