地鐵公司二維碼乘車安全解決方案

2019-06-13 01:54:19 網絡空間安全 2019年1期

摘? ?要:某地鐵公司上線二維碼乘車系統,乘客通過手機APP產生二維碼,在閘機口通過掃碼方式過閘乘車,為保障掃碼乘車過程的安全,將同步規劃、建設二維碼乘車安全解決方案。此安全方案以國產SM2/3/4密碼算法為核心,建設一套PKI可信身份認證體系,在二維碼申請、發放、產生、驗證等重要環節使用數字簽名技術,防止乘車二維碼被非法篡改、復制、盜刷及確保每筆交易的可追溯性,數據在傳輸過程中采用國密的SSL/TLS加密技術,確保乘車交易數據在互聯網環境中明文不落地,實現數據的安全可控。

關鍵詞:地鐵;二維碼;可信身份;移動安全;國密算法

中圖分類號:TP 520.1060? ? ? ? ? 文獻標識碼:B

Abstract: A subway company put the QR barcode riding system into operation, passengers generate a QR code through the mobile phone APP and take a ride through the gate by scanning the QR code In order to ensure the safety of the riding process, we will plan and construct safe solution for QR code riding synchronously. the heart of this security schemes is domestic SM2/3/4 cipher algorithm, and constructing a PKI trusted identity authentication system, using digital signature technology in QR code application, distribution, formation, validation, and other important link to prevent a QR code to be unauthorized modification, copied, unauthorized and ensure the traceability of every transaction. In the process of data transmission, SSL/TLS encryption technology with state secrets is adopted to ensure that the data of bus transactions are not written in plain text in the Internet environment, so as to realize the safety and control of data.

Key words: metro; QR code; trusted identity; mobile security; the secret algorithm

1 引言

隨著手機移動支付的發展,移動支付作為國家戰略新興產業及行業信息化的重要組成部分,不僅改變了傳統的支付手段和模式,也促進了公眾消費習慣和生活方式的變革,是交通行業移動互聯的發展趨勢。近年來,地鐵已經成為人們日常出行重要的公共交通工具,購票難、乘車難已成為一種常態,為緩解高峰期乘客排隊購票現象,提升乘客搭乘地鐵體驗和出行效率,2018年10月某省會城市地鐵公司上線二維碼乘車系統,乘客不需到站排隊購票,只需提前安裝并注冊地鐵公司的乘車APP,在乘地鐵過閘機時直接打開手機APP產生的二維碼,在閘機口通過掃碼方式即可方便地過閘乘車。乘客可在首次使用APP注冊時通過關聯微信、支付寶、銀行卡等方式完成實名認證后,實現先消費、后支付,無需提前買票,極大地提高了地鐵通行的便利性。

根據《移動互聯網金融APP信息安全現狀白皮書》提供的報告顯示,當前國內移動互聯網金融 APP 信息安全存在著十大安全隱患:信息數據明文發送、通信數據可解密、敏感數據本地可破解、調試信息泄漏、敏感信息泄漏、密碼學誤用、功能泄露、可二次打包、可調試、代碼可逆向等。地鐵二維碼乘車系統建立在移動智能手機基礎之上,將面臨上述高危安全問題, 一旦被攻擊將面臨乘客身份被冒用,交易信息被非法竊聽,乘客隱私信息泄露,乘車二維碼被非法偽造、盜刷等安全風險。

2? 二維碼乘車安全解決方案

2.1 概述

為保障掃碼乘車交易過程中的安全性,在方案規劃和建設階段同步設計了以密碼技術為核心的安全基礎支撐平臺,建設了地鐵集團公鑰基礎設施PKI體系,為地鐵機構和乘客分別發放數字證書,通過數字證書建立了一套可信身份認證體系,并采用具有專利技術的密鑰分散和協同簽名技術來確保乘客手機APP內證書密鑰的安全性,在二維碼申請、發放、驗證等重要環節使用數字簽名技術,防止乘車二維碼被非法篡改、復制、盜刷及確保每筆交易的可追溯性。數據傳輸全程采用SSL/TLS加密技術,確保乘車交易數據在互聯網環境中明文不落地。數字簽名及加密傳輸采用國產密碼SM2/3/4系列算法,保障數據的安全可控。地鐵掃碼過閘兼容交通部的《交通一卡通二維碼支付技術規范-JT/T1179》,在支持交通部二維碼支付技術規范體系內,能夠實現在全國交通行業二維碼支付的互信互通,真正實現“一碼在手,全國漫游”。

2.2 整體方案設計

系統的整體架構如圖1所示,系統縱向分為接入層、網關層、業務層、服務層和存儲層。前端的接入層主要完成手機APP數據的采集,包括手機APP、智能讀寫器和藍牙設備等。網關層分為安全網關和業務網關,主要完成業務系統的統一發布和安全的統一準入等。業務層是交易訂單處理的中臺,由系統管理人員完成訂單信息的統計及狀態修改等功能。服務層提供用戶的賬戶管理、二維碼的管理、訂單信息管理等核心功能。整個業務系統橫向還包括CA基礎設施、支付渠道和運維支撐。

掃碼過閘安全方案以可信的身份認證為核心、以數字證書技術為基礎、以數字簽名技術為保障,將應用貫穿于整個APP登錄,二維碼申請、發放、驗證、乘車數據記錄、扣款交易記錄、地鐵和第三方支付公司的結算等關鍵流程中。通過數字證書的安全策略在地鐵信任域內建立一套完善、安全的身份識別體系,結合數字簽名技術、SSL/TLS安全傳輸技術,保障地鐵APP過閘使用過程中的身份認證、數據安全傳輸、關鍵數據的完整性和操作不可否認性等問題。

2.3 數據流程設計

當乘客首次使用地鐵APP注冊開通掃碼過閘功能的同時,將為乘客簽發一張有效的個人網絡電子身份證(數字證書),數字證書與乘客手機硬件信息及賬戶信息進行綁定,APP在與后臺服務平臺進行通信傳輸數據時會通過數字證書進行安全認證。

安全方案的具體數據流程參考圖2邏輯部署圖,主要的數據流程包含數字證書的下載、獲取二維碼申請授權、產生二維碼數據、驗證二維碼數據等。

具體數據流程分為八個步驟。

1) 乘客注冊地鐵APP時自動申請并下發數字證書,證書私鑰在用戶手機端產生,并且通過密鑰分散技術分散在多個地方保存,保證私鑰的安全。

2) 用戶在登錄APP時自動進行發碼申請,發碼申請采用用戶數字證書私鑰對用戶賬戶等信息做數字簽名,并將簽名信息發送到票卡業務系統。

3) 票卡業務系統收到發碼申請請求后,調用簽名驗簽服務器對發碼請求數據進行數字簽名驗證。驗證通過后,票卡業務系統調用簽名驗簽服務器,用地鐵機構證書對發碼授權包進行數字簽名。

4) 票卡業務系統將授權響應包通過TLS加密方式發送到乘客手機乘車APP端,加密協議采用國產密碼算法的TLS協議。

5) 用戶需要掃碼過閘時,APP使用乘客數字證書私鑰對當前時間戳做數字簽名,簽名完成后生成二維碼原文,并將二維碼原文數據轉換成二維碼,顯示在手機屏幕上。乘客通過閘機時將二維碼對準閘機的二維碼信息采集口即可。

6) 閘機采集到二維碼信息后,將二維碼轉換為原文數據。閘機驗證地鐵機構的數字簽名和用戶的數字簽名,驗簽通過后開閘放行。

7) 用戶在掃碼過地鐵閘機時的位置信息、扣款交易信息等通過數字證書進行數字簽名來保障交易數據的完整性、不可否認性及事后的可追溯性。

8)地鐵與支付公司的通信采用數字證書的方式做身份認證,清算數據全部采用數字簽名的方式校驗。地鐵機構與支付寶及財付通的對接簽名接口使用硬件的簽名驗簽服務器,保證了簽名私鑰的安全性及簽名運算的高效性。

2.4 掃碼過閘安全特性設計

1) 發碼請求數據采用用戶的私鑰做數字簽名,可以對乘客身份進行真實性鑒別,并防止乘客端的發碼請求數據被非法篡改的風險發生。

2) 采用地鐵機構證書對發碼授權包進行數字簽名,確保只有合法授權的乘客才能生成乘車二維碼,防止非法偽造乘車二維碼。

3) 二維碼原始數據整合時間戳,并使用乘客數字證書私鑰進行數字簽名,可以確保過閘操作由用戶操作完成,防止乘車二維碼被非法復制、篡改、重放使用。

4) 閘機通過兩次驗簽放行,確保了數據流程中有機構數字簽名和乘客數字簽名,整個流程的操作數據符合電子簽名法,具有法律效應。

5) 手機端地鐵APP到后臺票卡系統的傳輸采用國密算法的TLS加密協議,保障了乘車數據在互聯網環境中傳輸的機密性。

6) 密碼算法采用標準化成熟產品,所有密碼產品均獲得國家批準資質。

7) 密碼算法采用國密SM2/3/4系列算法,確保了在重要領域實現密碼算法的安全可控。

8) 密鑰安全性高,數字證書密鑰對由設備特征值信息、用戶信息、用戶PIN碼等信息結合密鑰派生函數派生,使用時臨時生成,使用完成后即時銷毀,保證了密鑰的安全性。

3 安全方案關鍵技術

地鐵掃碼過閘安全方案將構建端-管-云的全方位的掃碼乘車安全防護體系,終端提供數據加密、安全隔離、移動威脅感知,管道提供國密算法傳輸加密方案,后臺云端提供用戶行為畫像、數據建模、機器深度學習、從用戶數據的輸入、顯示、感知、存儲、傳遞、分析等數據全流程進行保護,如圖3所示。

3.1 APP安全加固

采用一種基于云計算服務的密碼技術,將地鐵APP與加密服務SDK相結合,使得應用數據存在于加密服務的安全容器中,應用被Java程序代碼混淆、C/C++代碼混淆、底層接口加殼進行加固,產生的數據均使用專利加密技術進行加密,從而保證地鐵APP數據的安全,與安全容器外進行隔離。

SDK組件Native層采取字符串混淆、控制流混淆、代碼隱藏、代碼加密、指令插花等多種安全保護設計。

字符串混淆:將有意義的字符串改變為無意義的字符串,增加黑客的分析難度。

控制流混淆:在程序中插入迷惑黑客的控制流程,讓黑客難以找到正確的程序執行流程,以保障用戶的數據安全。

代碼隱藏:將程序指令放在隱蔽地方,使黑客難以找到,以此保障用戶的數據安全。

代碼加密:對程序進行加密,使得黑客無法找到正確的指令,以此保障用戶的數據安全。

指令插花:通過插入干擾指令到生成的代碼中,大大增加黑客分析用戶程序的難度,保障用戶數據安全。

3.2 安全的密鑰保護機制

為確保可信身份體系的安全性,服務端加密和數字簽名功能均采用專用的加密硬件完成,保障了密鑰的安全性。考慮到地鐵APP的易用性和推廣普及性,沒有使用定制的硬件芯片存儲用戶的數字證書,方案采用了更安全便捷的協同簽名技術,密鑰安全級別達到了《密碼模塊安全檢測要求》第二級安全等級。證書私鑰在乘客手機移動端不存儲,使用時也不完整出現在手機內存中,避免黑客攻擊獲取乘客私鑰。信安世紀移動數字證書集成秘密分享技術、零知識證明技術和門限密碼技術進行構建設計,具體為由各參與實體(用戶、設備、服務器等)各自形成和維護自己的分散私鑰片段,公開自己的公鑰片段,需要參與簽名運算時,各分散私鑰片段獨立計算得到分段簽名結果,由門限簽名算法負責將分段簽名結果整合成完整簽名結果,如圖4所示。

移動數字證書密鑰管理方案采用秘密分享方案、終端無密鑰存儲方案和門限密碼技術進行構建設計,由各參與實體(用戶、設備、服務器等)各自形成和維護自己的分散私鑰片段,公開自己的公鑰片段。需要參與簽名運算時,各分散私鑰片段獨立計算得到分段簽名結果,由門限簽名算法負責將分段簽名結果整合成完整簽名結果。

用戶私鑰設備分散片段由密鑰管理算法采集設備硬件特征值(包含但不限于MAC地址、CPUinfo、IMEI等)、設備系統特征值等信息,調用密鑰派生函數派生得到。該私鑰分散片段不保存,使用時由密鑰管理算法自動采集派生參與計算。

用戶私鑰用戶分散片段根據用戶因子信息(用戶PIN碼、用戶行為特征值等)、采集的設備硬件特征值(包含但不限于MAC地址、CPUinfo、IMEI等)等信息調用密碼派生函數派生。該私鑰分散片段不保存,用戶需要使用時采集用戶因子臨時派生參與計算。

用戶私鑰服務端片段由服務器生成和保存。在用戶申請數字證書時,根據用戶行為特征,生成隨機數作為用戶私鑰服務端片段。用戶需要使用該私鑰分散片段參與計算時,由服務器根據用戶行為特征分析結果確定該私鑰分散片段是否參與運算,返回運算結果。

在需要用戶私鑰進行數字簽名或解密時,用戶向服務端發起服務端私鑰片段參與運算請求,由服務端根據用戶行為特征分析結果確定是否使用用戶服務端私鑰參與數字簽名運算或解密運算,如果是,返回相應計算結果,如果否,拒絕該請求。終端各密鑰分散片段分別對原文進行數字簽名或對密文進行解密,得到相應的分段簽名結果或分段解密結果,由(n,n)門限簽名算法或(n,n)門限解密算法對分段簽名結果或分段解密結果進行整合,形成完整的數字簽名值或明文。

數字簽名采用多因素協作生成完整簽名信息,任何一方均不能生成完整簽名信息。生成簽名計算過程中,移動端不會出現用戶完整私鑰,避免用戶私鑰暴露,如圖5所示。

在需要用戶私鑰進行數字簽名時,用戶向服務端發起服務端私鑰片段參與運算請求,由服務端根據用戶行為特征分析結果確定是否使用用戶服務端私鑰參與數字簽名運算,如果是,返回相應計算結果,如果否,拒絕該請求;終端各密鑰分散片段分別對原文進行數字簽名,得到相應的分段簽名結果,由(n,n)門限簽名算法對分段簽名結果進行整合,形成完整的數字簽名值。

3.3 用戶行為模型及機器深度學習

數字證書采用用戶PIN碼和用戶行為感知相結合的身份認證方式,移動安全SDK的功能主要包括收集訓練數據、收集認證數據并請求認證、重置訓練模型,并將乘客的擊鍵行為數據發送到后臺云端,后臺云端利用平時獲得的用戶擊鍵行為習慣數據,構建數據模型和機器學習模型,為每個用戶構建擊鍵行為特征畫像,對用戶身份進行鑒別。

通過在系統使用過程中逐步采集日常乘客行為習慣、行為特征并歸納出用戶畫像的優勢,通過數據挖掘、機器學習等人工智能算法持續分析,構建數據模型和機器學習模型,為每個乘客構建擊鍵行為特征畫像,對用戶身份進行鑒別,并將這一機制應用到地鐵掃碼過閘系統中,分析千萬級用戶的行為特征并利用大數據技術進一步對用戶行為特征進行細致研究,不斷完善用戶行為特征畫像,提高身份鑒別的準確率,通過大數據的建模分析,最終實現用戶無感知的身份認證方式,如圖6所示。

3.4 終端異常交易感知

地鐵掃碼過閘使用的是C/S架構,有大量的邏輯運算在乘客手機端完成,其邏輯、代碼和接口容易泄露。另外,乘客手機端碎片化現象嚴重、運行環境復雜。乘客群體龐大,為保障手機掃碼乘車的安全,引入移動終端安全交易監測平臺,實時監測地鐵APP終端安全態勢,并把采集的數據發送到監測平臺,由平臺對收到的海量安全、交易數據通過大數據、人工智能技術進行分析,系統能夠智能感知二維碼掃碼乘車過程中終端安全異常、交易異常行為,并進行主動告警。

4 方案專利技術使用情況

采用《一種數字證書的快速處理方法》(證書快速解析)和《一種數字證書有效性的驗證方法及裝置》(CRL快速解析)來提高二維碼掃碼乘車過程中證書處理和狀態驗證速度。

采用專利《一種基于國密算法的數字簽名方法及裝置》(簽名數據預處理)高效實現SM2簽名過程中的消息預處理,大幅提升乘車碼的申請、生成、驗證過程中的簽名、驗簽效率。

采用專利《一種基于安全套接層協議特征的負載分發方法》,基于不同算法的SSL協議過程增強了系統的處理性能和安全性;能夠對SSL握手過程中使用的算法進行高效區分,提升數據加密處理性能。

采用專利技術《一種秘密數據分割的方法及裝置》增強乘客手機端數字證書私鑰的安全性,并結合專利技術《一種客戶端和服務端協作生成數字簽名的方法》通過SM2算法協同簽名/解密計算方法,保證證書私鑰始終不在乘客手機端完整出現,確保密鑰的安全。

5 經驗效果

二維碼乘車為乘客提供一個全新的便捷乘車體驗。乘客下載注冊地鐵APP,不用預付押金,無須預先充值,先使用,后扣費,覆蓋面廣,乘客只需配備iOS和Android智能機便能安全享受到掃碼進、出站的方便與快捷。

地鐵二維碼乘車安全標準兼容交通部的《交通一卡通二維碼支付技術規范-JT/T1179》,能夠支持在全國交通行業二維碼支付的互信互通, 實現跨城市、跨系統也可使用地鐵APP乘車及消費。

地鐵二維碼乘車方式的應用,推動并加快了移動支付的發展,在地鐵公司后續規劃中,地鐵的停車場、地鐵的商圈中都將采用地鐵APP掃碼方式消費,助力地鐵商圈產業融合發展。

6 結束語

地鐵涉及國計民生領域,與人民群眾日常出行及地區經濟發展息息相關,已成為驅動區域經濟社會發展的強勁動力。地鐵信息系統是國家重要基礎設施的組成部分,地鐵信息化安全建設是國家“十三五”網絡安全和信息化工作的重頭戲,是保證國家重要基礎設施信息化建設健康發展的需要。

二維碼乘車安全項目的建設進一步落實了地鐵信息安全戰略和產業發展規劃,促進了我國信息安全產業在技術、市場、服務、品牌的整體提升。項目的實施將提高我國自主品牌的產品在交通等重點領域與國外產品抗衡的實力,為國民經濟的信息安全保駕護航;項目的實施促進了地鐵周邊產業的融合,帶動交通地鐵行業在信息安全相關產業的共同發展。

參考文獻

[1] 交通一卡通二維碼支付技術規范[S].JT1179.

[2] 商用密碼知識與政策干部讀本[M].2018.

[3] 陳小松. 密碼學及信息安全基礎[M].2018.

[4] GM-T 0024-2014_國密標準_SSL VPN技術規范[S].

[5] GMT 0003.2-2012 SM2橢圓曲線公鑰密碼算法—數字簽名算法[S].

[6] GMT 0003.3-2012 SM2橢圓曲線公鑰密碼算法—密鑰交換協議[S].

[7] GMT 0003.4-2012 SM2橢圓曲線公鑰密碼算法—公鑰加密算法[S].

[8] GM/T 0034-2014基于SM2密碼算法的證書認證系統密碼及其相關安全技術規范[S].

作者簡介:

梅中雷(1988-),男,漢族,湖北黃岡人,本科,北京信安世紀科技股份有限公司,高級工程師;主要研究方向和關注領域:密碼技術、信息安全。

福建36选7走势图幸
篮球赛 海南4+1论坛 广东福彩36选7好彩3 单机美女四人麻将 四川快乐十二最大遗漏 3d试机号金码 上海天天选四走势图 南京麻将技巧 sg飞艇开奖规律 股票推荐群是不是真的 如何下载股票行情数 微乐麻将贵阳捉鸡 河南快三开奖软件下载 北京pk10计划5 辽宁35选7开奖结果查询 pc蛋蛋qq群