余永紀,成 靜,余永元
(1.云南南天電子信息產業股份有限公司, 昆明 650000; 2.信陽供電公司, 河南 信陽 464000)
一種互聯網個人支付終端的設計與實現
余永紀1,成 靜1,余永元2
(1.云南南天電子信息產業股份有限公司, 昆明 650000; 2.信陽供電公司, 河南 信陽 464000)

介紹一種基于ARM的雙界面讀卡器,采用USB通信方式,它除了具有基本IC卡讀寫器功能之外,還具有金融IC卡交易的功能,并實現相應的算法與機制來保證數據通信的安全與可靠性,可以應用于互聯網個人金融支付、銀行柜面交易等應用場景。相比于傳統的支付終端,它具有操作簡單、支付更加安全、可擴展性更強等特點。
互聯網; 金融支付; 讀卡器; 算法
基于支付安全的考慮,中國人民銀行規定自2015年1月1日起終止發行單一的磁條卡。并以安全性更高、擴展能力更強的金融IC卡逐步取代磁條卡[1-2]。同時,隨著互聯網經濟興起,金融支付方式也發生了較大的變革,以前傳統的卡號密碼、U盾等網絡支付方式已無法充分發揮出金融IC卡的特性[3]。因此,設計和實現一種更安全、更方便互聯網支付終端十分必要。本文根據中國銀行發布的中國金融集成電路(IC)卡規范(V3.0),并采用了USB 通信協議及RSA、DES、國密等算法,基于ARM的支持雙界面智能卡的讀寫系統,設計出一種新型的多功能互聯網個人金融支付終端。除具有一般雙界面讀卡系統基本操作卡片功能外,還具有讀卡信息、讀卡片交易日志、支持聯機及脫機認證、聯機及脫機金融支付等功能。相比傳統支付終端,操作更加便捷、支付更加安全、并具有較好的可擴展性,是金融IC卡互聯網支付的一個新方向。
終端的硬件主要包括CPU控制模塊、外圍電路、IC讀卡模塊、密碼鍵盤模塊、USB通信模塊和LCD顯示模塊等,系統框圖如圖1所示。本系統的CPU控制器采用STM32F103RVBT6芯片,它是基于ARM Cortex-M3內核的32位高性能處理器,它具有高性能、低功耗、接口資源豐富等特點,特別是擁有支持USB 2.0規范的全速接口,只需搭建簡單的外圍電路就可實現USB通信電路,在滿足高速數據處理的同時,使USB的開發更為簡單。

圖1 系統框圖
IC卡讀卡模塊分為非接觸式與接觸式兩種模塊,接觸式IC卡讀卡接口芯片采用的是安森美半導公司的NCN8025A芯片,此芯片是一款高性價比的緊湊型單智能卡接口的IC芯片,完全支持 ISO 7816-3、EMV 4.2、UICC 及相關標準,電路實現也比較簡單。非接觸式IC卡讀卡模塊采用恩智浦半導體(NXP)公司的MFRC531芯片,該芯片是應用于13.56MHz非接觸式通信的高集成讀寫卡芯片,內部發送器在不需要增加有源電路就可以滿足100 mm 距離內的通信要求,有效簡化了硬件設計。非接觸式IC卡讀卡電路如圖2所示,RC531的數據輸入、輸出管腳與CPU控制器的SPI口相連,并由CPU控制器提供SPI時鐘信號,用于同步CPU控制器SPI與RC531之間的數據傳輸。

圖2 非接觸式IC卡讀卡電路圖
系統功能強大,軟件設計采用模塊化的設計思想。整個系統軟件分為3個層次結構,底層基礎模塊層、中間功能模塊層及上層應用層。底層基礎模塊程序包括USB通信、LCD液晶顯示、密碼鍵盤、接觸及非接觸式IC卡讀寫模塊等。中間層功能模塊程序包括安全認證接口及IC卡指令接口,主要實現終端安全通道及IC卡通信接口。上層應用程序由終端安全管理及IC卡金融交易兩部分組成。軟件架構如圖3所示,由于STM32F103RVBT6控制器自帶了全速USB2.0,可參照CCID協議完成底層固件開發,接觸式及非接觸式IC卡讀寫模塊可參照ISO7816及ISO4443協議開發[4-6],故本文不再詳述底層基礎模塊軟件的實現。

圖3 軟件架構圖
3.1指令功能模塊
終端的安全管理與交易都是通過指令來進行的,終端命令設計包括兩部分,專用命令集與普通命令集。普通命令集是一般IC卡操作指令,專用指令集包括終端管理類指令、安全通道類指令、交易類指令及其他特殊指令等。
除提供上述的對外指令外,終端內部還根據PBOC3.0的要求實現了選擇應用、讀記錄、外部認證、內部認證、獲取應用密文、驗證等交易功能指令[7-8]。
3.2安全管理模塊
金融交易必須在高度安全的環境下進行[9-10],為了保證終端交易過程中數據的安全性,終端與處理中心的數據傳輸采用安全通道的機制,數據以密文的形式展現。在安全通道建立之前,需要對終端進行個人化,下載終端信息、證書及加密密鑰等。
在安全通道建立和交易過程中涉及到的加解密算法都由系統內部實現,包括RSA算法、DES/3DES算法、哈希SHA-1算法及國密SM4算法等。在滿足加密及安全的同時,能很好地節省硬件成本。
(1) 終端個人化。根據終端安全管理的要求,在終端出廠前應該進行終端個人化,個人化數據至少包括終端信息數據、終端證書、CA證書和PIN加密證書[11]。終端個人化流程如圖4所示,終端程序在初始化之后進行自檢,自檢通過后會判斷是否已經個人化,如果沒有則進行個人化,如果已經個人化,則提示是否重新進行。其中終端的公、私證書由終端向CA中心申請,申請過程中產生的公私鑰對由終端產生,并不可導出。

圖4 個人化流程圖
(2) 交易數據的安全機制。終端通過互聯網與銀行處理中心建立聯系,金融交易的數據在這兩個端點之間傳輸,為了保證交易數據的安全性與完整性,終端與處理中心的數據傳輸采用邏輯安全通道的機制。安全通道建立完成后,終端與服務器端都生成一個會話密鑰,終端數據在發送前用會話密鑰進行加密,并生成一個消息認識碼。服務器收到數據后驗證認證碼來判斷數據的完整性,然后解密,得到終端傳輸的數據。安全通道的建立及數據傳輸過程示意圖如圖5所示。

圖5 安全通道建立過程示意圖
3.3金融交易功能模塊
根據金融應用的需求[12-15],系統設計了金融交易的基本功能接口,接口包括:初始化應用環境、獲取應用候選列表、選擇應用、應用初始化、讀取IC卡應用數據、脫機數據認證、處理限制、持卡人驗證、終端風險管理、終端行為分析、結束交易、讀取交易日志、讀取圈存日志等,所有金融交易都可以通過調用這些接口來實現。
在基本功能接口的基礎上,系統實現了讀取IC卡信息、讀取交易日志、讀取圈存日志、獲取ARQC(授權應用密文)、校驗ARPC(授權響應密文)及寫腳本、電子現金交易等功能。其中獲取ARQC、校驗ARPC及寫腳本主要應用于聯機交易處理,聯機交易可以不進行脫機數據認證。電子現金交易是在脫機的情況下進行的,所以交易中不涉及聯機的認證過程。聯機交易的流程如圖6所示。

圖6 聯機交易流程圖
本文提出一種互聯網支付終端的設計方案,該終端采用了USB 通信設計,內部集成了RSA算法、DES算法、國密算法等各種算法程序和交易應用程序,相比于傳統支付終端,該終端具有便捷、安全、功能強大等優點,并具有讀卡信息、支持聯機及脫機認證、聯機及脫機交易等功能,具有較大的市場應用價值。
[1] 關于推進金融IC卡應用工作的意見[S].中國人民銀行,2011.
[2] 中國人民銀行成都分行辦公室課題組.我國移動金融發展趨勢及其思考[J].互聯網金融,2016(6):3-7.
[3] 胡 博,嚴斌峰,仇劍書,等.基于SIM卡的金融應用移動數字簽名業務研究[J].電信科學,2015(6):12-17.
[4] EMV4.2,EMV Integrated CircuitCard Specifications for Payment Systems[S].
[5] ISO/IEC 7816,International Standard Cards With Contacts-Electrical interface and Transmission protocols[S].
[6] 楊玲玲,謝 星,孫 玲,等.基于MSP430的雙界面讀卡器設計[J].現代電子技術,2014(16):18-20.
[7] 中國人民銀行.中國金融集成電路(IC)卡規范第6部分:借記貸記應用終端規范[S].
[8] 張 蒙.基于LINUX的PBOC3.0關鍵讀卡技術的研究與應用[J].電子設計工程,2015(8):188-192.
[9] 范曉紅,吳今培,張其善.智能卡文件系統的安全訪問機制[J].微計算機應用,2004(1):39-42.
[10] 陳 曦.移動金融終端安全研究[J].信息安全與通信保密,2014(11):106-110.
[11] 袁 琦.互聯網金融發展推動下的支付安全[J].移動通信,2014(23):9-11.
[12] 中國人民銀行.中國金融集成電路(IC)卡規范第16部分:IC卡互聯網終端規范[S].
[13] 張 騰,徐 欽.多功能互聯網金融個人終端的研究與設計[J].信息安全與通信保密,2013(11):105-107.
[14] 徐 飛,曹奇英.PBOC2.0 新型金融IC卡讀卡器的設計與開發[J].單片機與嵌入式系統應用,2012(1):38-41.
[15] 婁 浩.基于linux和ARM9的RFID讀卡器設計與實現[D].南京:南京理工大學,2012.
Design and Realization of an Internet Individual Payment Terminal
YUYongji1,CHENGJi1,YUYongyuan2
(1.Yunnan Nantian Electronics Information Co.,Ltd.,Kunming 650000,China; 2.Xinyang Power Supply Company,Xinyang 464000,Henan,China)
This essay introduces an ARM-based dual-interface card reader,which communicates the net via USB.Besides basic functions of card reading,it has also functions of financial IC card that it can transact with relevant algorithm and mechanism to ensure the security and reliability of data communication.The card reader can be applied in the Internet individual financial payments and bank counter transactions.Compared with traditional payment terminals,the card reader is easy to use,more secure to pay,and has better expansibility.
Internet; payment; card reader; algorithms
2016-10-18
余永紀(1984- ),男,河南羅山人,碩士,工程師,主要從事軟件應用、嵌入式系統方面的研究。
Tel.:0871-68279525;E-mail:274762311@qq.com
TP 393
:A
1006-7167(2017)07-0148-03