地铁公司二维码乘车安全解决方案
- 来源:网络空间安全 smarty:if $article.tag?>
- 关键字:二维码,可信身份,移动安全 smarty:/if?>
- 发布时间:2019-07-07 23:09
摘 要:某地铁公司上线二维码乘车系统,乘客通过手机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-),男,汉族,湖北黄冈人,本科,北京信安世纪科技股份有限公司,高级工程师;主要研究方向和关注领域:密码技术、信息安全。