熊剛 熊長聰
摘要:隨著移動終端與計算機網絡技術的迅猛發(fā)展,帶動著移動支付逐漸邁向成熟。以支付寶、微信錢包為代表的移動支付方式,在生活中占據著重要位置。但是,我們在享受移動支付帶給便捷的同時,大部分行業(yè)仍然在使用傳統(tǒng)的紙質收據和發(fā)票,并且?guī)砹艘幌盗械馁Y源浪費問題和個人信息安全問題。在此背景下,本文設計了一種基于SM2和區(qū)塊鏈的移動支付電子收據系統(tǒng)。系統(tǒng)主要由PC端、服務器端和客戶端三部分組成。PC端生成電子賬單,發(fā)票二維碼,并添加用戶的標識信息,使用公鑰加密算法SM2先簽名、后加密,再發(fā)送給服務器端;服務器對賬單身份認證和發(fā)票二維碼解密后,添加相關標識信息并使用私鑰進行數字簽名,然后將賬單和電子發(fā)票儲存在云端數據庫;客戶端可隨時查看數據庫中的加密賬單和電子發(fā)票,經過認證和解密后得到詳盡的賬單信息,解密發(fā)票二維碼生成電子發(fā)票;同時加入區(qū)塊鏈技術,可以使消費者了解商品從生產、加工、運輸、銷售到消費者手中,使整個過程透明化。整個系統(tǒng)可以大幅度提高電子支付的效率,使移動支付更加安全、便捷,同時也便于商家和個人的查詢,使得商家交稅、個人報銷的快捷化。
關鍵詞:移動支付;數字簽名機制;電子賬單
一、概述
近年來,隨著互聯網以及移動終端技術的發(fā)展,移動支付得到普及。以微信錢包、支付寶為代表的移動支付的發(fā)展,已滲透到了生活的方方面面,然而在享受移動支付便捷的同時,大部分行業(yè)卻仍在使用傳統(tǒng)的紙質收據,帶來許多不好的影響[1]。紙質收據含有BPA的致癌物質,影響身體健康;無法回收,浪費資源,污染環(huán)境;容易丟失損壞,不利長時間保存;存在泄露個人信息等缺陷和不足[2]。因此,設計一款電子收據系統(tǒng)對人們特別重要的具有實際意義。
將移動支付技術與電子收據融合在一起,組合成一種高效的、實用的系統(tǒng)可以給人們帶來許許多多的好處[3]。其一是電子收據的快捷高效,省去了紙質收據打印的時間,提高了工作效率;其二是電子收據不用再擔心收據易損壞,易丟失,紙質收據信息泄露;其三是國密算法SM2提供了可靠的信息安全支撐[4],也為雙方可能產生的糾紛提供了仲裁的方便等等?;诖耍疚脑O計了一種基于SM2和區(qū)塊鏈的移動支付電子收據系統(tǒng)。系統(tǒng)主要由PC端、服務器端和客戶端三部分組成。PC端生成電子賬單,發(fā)票二維碼,并添加用戶的標識信息,使用公鑰加密算法SM2先簽名、后加密,再發(fā)送給服務器端;服務器對賬單身份認證和發(fā)票二維碼解密后,添加相關標識信息并使用私鑰進行數字簽名,然后將賬單和電子發(fā)票儲存在云端數據庫;客戶端可隨時查看數據庫中的加密賬單和電子發(fā)票,經過認證和解密后得到詳盡的賬單信息,解密發(fā)票二維碼生成電子發(fā)票;同時加入區(qū)塊鏈技術,可以使消費者了解商品從生產、加工、運輸、銷售到消費者手中,使整個過程透明化。整個系統(tǒng)可以大幅度提高電子支付的效率,使移動支付更加安全、便捷,同時也便于商家和個人的查詢,使得商家交稅、個人報銷的快捷化。
二、基于國密算法SM2和信息溯源的電子收據系統(tǒng)
(一)系統(tǒng)總體方案設計
移動支付電子收據系統(tǒng)由PC端,服務器端,客戶端三個模塊組成。
(1)PC端功能
PC端由聯網PC機和掃描器(掃描包含條形碼、二維碼)組成。主要完成購買商品的掃描和數據錄入,統(tǒng)計相關商品的購買信息并保存于本地數據庫,同時開具電子發(fā)票,便于報稅,并將電子發(fā)票通過加密生成二維碼,和信息簽名、加密送到服務器中。
■ 生成發(fā)票二維碼
■ 生成電子賬單
■ 簽名電子賬單
■ 加密電子賬單
■ 結算收款
(2)服務器端功能
服務器采用的個人服務器+騰訊云存儲的混合模型,具有強大的數據計算處理能力和網絡收發(fā)能力。主要負責對PC端發(fā)送的加密賬單進行身份認證和數字簽名,同時整合數據信息,全面統(tǒng)計分析,并負責電子賬單系統(tǒng)的權限管理。同時,將收到的發(fā)票二維碼解密成電子發(fā)票存儲起來,并將發(fā)票二維碼發(fā)送給客戶端。此外,服務器還設立仲裁認證模塊,當消費產生糾紛時,可對賬單信息作出仲裁,維護雙方的合法利益。
■ 驗證電子賬單簽名
■ 處理公鑰請求響應
■ 處理發(fā)票二維碼
■ 存儲加密賬單
■ 提供仲裁服務
■ 加密傳輸
(3)客戶端功能
客戶端即移動支付終端,主要實現電子賬單的生成和查詢功能,以可視化的形式清晰展示消費記錄,并提供加密上傳服務器,為用戶提供全方位的消費跟蹤記錄、建議提示、統(tǒng)計分類、消費指南。同時,將接收的發(fā)票二維碼解密生成電子發(fā)票,并存儲在本地,便于報銷。
■ 解密賬單密文
■ 自動分類處理賬單
■ 賬單信息可視化
■ 申請賬單認證
■ 生成電子發(fā)票
■ 二維碼支付
(二) SM2算法應用
在公共網絡中傳輸電子賬單,賬單信息必須是不可抵賴的、不可仿冒的,才能保證安全,因此系統(tǒng)需要添加數據加密機制和數字簽名算法[5]。若本系統(tǒng)采用對稱加密方式,將對密鑰管理帶來極大的威脅,而且安全性相對較弱,容易被有心人破解,達不到系統(tǒng)設計的目的。所以綜合各類算法,本系統(tǒng)決定采用基于SM2的公鑰密碼體制算法。選擇SM2作為系統(tǒng)的加密方案,主要是考慮到它的實用性,能夠滿足本系統(tǒng)加密和數字簽名的雙重要求,無需再選擇其他簽名算法,且安全性強。在整個系統(tǒng)中,我們采用的關鍵參數如表所示:
(三)密鑰存儲管理方案
密鑰存儲管理是密碼技術中的重要環(huán)節(jié),本系統(tǒng)密鑰包括私鑰存儲管理和公鑰存儲管理,在系統(tǒng)的三個模塊中均涉及到密鑰的存儲管理,任何模塊出現問題,都可能帶來損失[6]。對于服務器產生公/私鑰對,每個客戶端/PC端都可以請求獲得服務器的公鑰。PC端/客戶端產生的公鑰通過網絡同步到服務器,以便其他用戶訪問獲取用于加密。私鑰是通過加密存儲在本地的,任何網絡請求都不能訪問到其私鑰。用戶可以更新其密鑰對,但是更新之后必須同步達到服務器,以便向其他用戶提供自己的最新的公鑰。
(四)數字簽名方案
數字簽名在身份認證、數據完整性、不可否認性以及匿名性等方面有重要的作用。在本系統(tǒng)中主要是對賬單信息進行簽名,以確保賬單的完整性、不可否認性,保證商家和消費者的合法利益不受損害[7]。簽名時使用到了各自的私鑰,因此電子賬單也具有相應的法律效力。本系統(tǒng)采用的是一種基于公鑰密碼體制的仲裁方式數字簽名方案。
具體過程如下:
①商家X在電腦端掃描商品后,生成賬單消息M。使用PC端X的私鑰KSX,使用公鑰加密算法SM2加密消息得到密文SM2KSX(M)。
②對第①步產生的密文進一步使用SM2算法加密,使用的是Y的公鑰KPY。這樣賬單明文就經過了雙層加密SM2KPY(SM2Ksx(M)),形成了一個帶有簽名、保密的消息。
③商家X將該信息以及自己的身份標志IDx一起用KSX簽名得到SM2KSX(IDX||SM2KPY(SM2KSX(M)))。
④商家X將該消息和自己的身份標志IDx一起發(fā)送給服務器A:
X—>A:IDx||SM2KSX(IDX||SM2KPY(SM2KSX(M)))
⑤服務器A收到商家X的消息后,使用和商家X公鑰KPX解密接收到的簽名,判斷解密的IDX和消息中的IDX是否相等。由于這里服務器處理的是經過客戶端Y公鑰KPY加密的消息,而且服務器不知道Y的私鑰KSY,因此服務器只能驗證消息的密文而不能獲取到具體內容。從而保證的機密性。
⑥如果通過第⑤步的驗證,服務器保存消息到數據庫。同時服務器A將從X收到的所有內容IDX||SM2KPY(SM2KSX(M)加上一個時間戳T,然后使用服務器A的私鑰KSA加密消息后發(fā)送給Y:
A—>Y:SM2KSA[IDX||SM2KPY(SM2KSX(M)||T]
其中時間戳T用于向Y表示所發(fā)送的消息是即時的而非重放的。
⑦客戶端Y收到服務器A發(fā)送來的經過驗證的消息之后。使用A的公鑰KPA解密得到IDX、SM2KPY(SM2KSX(M))、T。
⑧使用自己的私鑰KSY解密SM2KPY(SM2KSX(M))得到賬單信息SM2KSX(M)。
⑨使用X的公鑰KPY解密SM2KSX(M)得到賬單M。
如果出現爭議??蛻舳薡可以聲稱自己受到的賬單密文SM2KPY(SM2KSX(M))的確來自商家X。并將SM2KSA[IDX||SM2KPY(SM2KSX(M)||T]發(fā)送給服務器(仲裁)A,由A仲裁。因為服務器(仲裁)對賬單進行認證,認證通過后才發(fā)送給客戶端Y,同時在服務器端有相關記錄,客戶端Y經過查詢即可驗證簽名,保證了賬單的真實性,為消費糾紛的仲裁提供法律依據。另一方面,假設在T時刻,商家X向仲裁申訴自己的私鑰被竊取。服務器會記錄下這個時候,當仲裁在驗證T以后時刻的消息時,就不會承認賬單的真實性,保護了商家的利益。
三、實驗及分析
(一)客戶端軟件測試
對于客戶端軟件測試,使用GT調測工具,它是騰訊開放給用戶的一款隨身調測平臺,是可在手機上直接運行的"集成調測環(huán)境"。其優(yōu)勢是:在沒有與電腦連接的情況下也可以對軟件app的性能測試(包括CPU性能、內存運行、流量、幀率/流暢度等),也可以查看開發(fā)日志、Crash日志、以及對網絡數據包的抓取;還可以利用GT提供的基礎API自行開發(fā)有其他功能的GT插件,用以解決困難的APP調試、測試問題。如圖所示,本系統(tǒng)對客戶端進行了測試,對相關參數進行了測試。從測試曲線可以看出,客戶端的功耗、CPU占用、內存消耗都在指標要求范圍內,性能表現良好。
(二)PC端響應時間、內存開銷分析
使用實用型功耗分析平臺進行綜合分析和評估。整個支付,以及查詢消費記錄等操作過程中,內存開銷、響應時間、卡頓現象等方面測試如下。
(1)響應時間
系統(tǒng)響應時間為操作軟件的反饋時間,這與軟件代碼和后天設置直接相關。本軟件在保證數據正確性的前提下,其平均響應時間為89ms,并且經過多次調試與校正,本軟件最快響應時間達到63ms,完全滿足在功耗存儲正確率的情況下,達到較好的使用體驗。
(2)內存開銷
內存開銷是指將滿足在功能和存儲正確率的情況下,占用的內存空間。根據內存開銷,我們可以分析代碼效率、響應時間等。本系統(tǒng)安全性基于SM2算法,并添加了認證簽名機制,一定程度上增加了計算量,導致內存開銷也大幅增加。因此本系統(tǒng)在線程上進行了優(yōu)化,并行算力增加,極大降低了內存功耗。
(3)卡頓現象
卡頓現象是出現在電子設備中的畫面滯幀、延遲增加等現象,也就是通常人們所說的“卡”。PC端測試全程沒有出現卡頓現象。
(三)服務器性能測試
服務器測試主要使用騰訊的WeTest質量開放平臺進行測試。本系統(tǒng)在啟動服務器后,需要對服務器的收發(fā)包率、內存和swap交換、網卡讀寫包量、磁盤IO讀寫四個方面進行了測試,隨機選取的時間段測試結果如圖所示。通過測試和對比,本系統(tǒng)服務器性能穩(wěn)定,信息傳輸效率完全滿足用戶的使用峰值要求。
(四)結論
通過對系統(tǒng)的各個模塊進行獨立測試,發(fā)現每個模塊都能夠很好的完成響應的功能,客戶端操作簡單,功耗小、CPU和內存占用少;PC端能夠便捷完成各種操作,速度快,內存占用少;服務器端能夠承受住較大的模擬負載能力,且具有較好的并發(fā)能力。總體來說,本系統(tǒng)運行良好,安全性高,操作簡單,性能穩(wěn)定,在測試過程中無BUG出現,各部分功能上手簡單、操作容易、交互便捷,達到了預期目的。
四、總結
本系統(tǒng)從實際出發(fā),結合當前移動支付紙質收據的不足,著眼于實際需求和社會現狀,不斷創(chuàng)新,設計了保密性強、成本低、效率高、界面友好、分析結果直觀的系統(tǒng),系統(tǒng)可以大幅度提高電子支付的效率,使移動支付更加安全、便捷,同時也便于商家和個人的查詢,使得商家交稅、個人報銷的快捷化,具有很強的實用性和應用價值。
參考文獻:
[1]馮登國,張敏,李昊, 大數據安全與隱私保護. 計算機學報, 2014. 37(7).
[2]馮登國,趙險峰, 信息安全技術概論(第二版). 電子工業(yè)出版社, 2013.
[3]安進, 張.J., ():, 基于RFID和圖像識別的食品追溯信息查詢算法. 科技通報, 2017. 05: p. 142-145.
[4]李兆斌,劉丹丹,黃鑫, 基于國密算法的安全接入設備設計與實現. 信息網絡安全, 2016. 11: p. 19-27.
[5]呂述望, SM4 分組密碼算法綜述. 信息安全研究, 2016. 2(11): p. 995-1007.
[6]程鳳偉, 基于國密算法SM2的IPSecVPN技術. 太原學院學報(自然科學版), 2016. 34(1): p. 37-40.
[7]賈大云, 計算機網絡安全的現狀和防御技術. 技術研發(fā), 2014. 1(145): p. 38-39.