基于商用密码算法的二维码验票系统的研究

2017-06-06 12:00刘思宇耿子烨北方工业大学计算机学院
数码世界 2017年5期
关键词:验票票据密钥

刘思宇 耿子烨 北方工业大学计算机学院

基于商用密码算法的二维码验票系统的研究

刘思宇 耿子烨 北方工业大学计算机学院

结合传统的二维码验票系统,通过商用密码算法的安全设计和应用,在具备快速处理能力的同时,也可以保证二维码信息在网络传输过程中的安全性。采用C/S与B/S模式相结合的架构,通过商用密码SM2、SM3、SM4算法,设计了安全保密的二维码快速验票系统,实现了票据信息的加密和签名,保证了传输安全和防伪验证安全。

商用密码 二维码 QR Code

在生产力快速发展的现代社会里,人们的生活节奏也随之加快。在这种快节奏的生活中,时间变得尤其宝贵。而在日常生活中,许多地方的验票方式却耽误了大家的宝贵时间。比如看电影时,工作人员要核对电影票,确认无误后才允许客人进入观看;搭乘飞机时,工作人员需要核对机票,确认无误后才允许客人登机;去景区游玩时,工作人员需要核对门票,确认无误后才允许客人进入游玩等等。无论哪一种门票,都采用了原始的人工验票方式,低验票效率浪费了人们许多时间。

随着科技的不断发展,一种新兴的验票方式——二维码验票诞生了。这种验票方式操作简单、使用便捷,且具有经济实惠的特点。传统的二维码验票方式是通过扫描二维码,将其含有票据号传递至服务器端,由服务器快速辨别门票的真伪控制游客的进出。然而在这种方式中没有考虑到信息的安全保密性,很容易被他人窃取信息进行仿造,鉴于此,本文提出了以二维码技术为基础,应用商用密码算法的一种新型验票系统——基于商用密码算法的二维码验票系统。本系统以商用密码算法相关技术为理论基础,确保二维码传输及认证的安全性,在大大地提高了验票的效率的同时保证了其安全性,实现了具有安全性的二维码扫描的验票方式。

1 概述

1.1 二维码

二维码将二进制字符“0”和“1”根据系统约定进行编码,形成按一定规律在水平和垂直方向的二维空间上分布的黑白相间的图形,并用其记录数据符号信息。从编码原理可以将二维码分为行排式二维条码和矩阵式二维条码两大类。行排式二维条码形态上是由多行短截的一维条码堆叠从而形成;矩阵式二维条码以矩阵的形式组成,在矩阵中暗块表示二进制“1”,亮块表示二进制“0”。

本文中采用QR Code码编码实现。QR Code码四周为空白区,内部由包括位置探测图形及其分隔符、定位图形、校正图形在内的功能图形以及包括格式信息、版本信息、数据和纠错码字在内的编码区格式组成。其结构如图1所示。

QR Code码除了可存储信息量大、可靠性高之外,还具有超高速、全方位的特点,同时还能有效地表示汉字。因此,通过QR Code码编码可以将票据相关的信息,比如票据单号、票据名称、有效日期、价格等存放在二维码中。这样一来,验票时只需通过光电扫描设备自动识读来辨别票据真伪及其有效性从而告别繁琐的人工验票,提高验票效率。但是一般的二维码缺乏安全性保障,很容易被他人窃取信息进行仿造,因此本二维码验票系统的设计运用了商用密码算法,将二维码内信息进行加密,从而提高验票的安全性。

本文采用二维码对票据信息进行编码,通过商用密码算法对票据进行加密,实现基于商用密码算法的二维码验票系统。

图1 QR Code码结构

1.2 商用密码

商用密码是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。商用密码技术是信息安全的核心,同时也是保护信息安全的主要手段。随着我国的经济不断发展和信息安全技术的不断提高,信息安全领域得到了全面的建设,同时商用密码产品被越来越广泛地应用。为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SM2、SM3、SM4、SM7、SM9算法等等。其中SM4、SM7是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。而本文主要运用了对称算法SM2,哈希算法SM3以及非对称算法SM4。

2 应用原理

2.1 数字签名

数字签名运用了SM2加密技术与数字摘要技术。在本文的系统中运用数字签名过程如图2所示,首先由管理端用单向散列函数对票据信息进行摘要得到摘要信息,然后用其产生的私钥将摘要信息进行加密,并将其与原票据信息一起发给客户端。客户端将被加密的摘要信息用管理端的公钥进行解密,然后用哈希函数对收到的原票据信息进行摘要生成摘要信息,并将其与解密的摘要信息进行对比,通过比较的结果判断消息是否被篡改。其保证了传输过程中信息的完整性,同时能认证管理端的身份并且具有不可抵赖性。

图2 数字签名过程

本文中的系统将数字签名作为加密过程中的重要一步,通过数字签名技术验证票据的有效性,确保了密钥分发过程的安全,以此提高二维码传输信息的安全性。

2.2 数字信封

数字信封中采用了SM4算法和公钥密码体制。其过程包括生成数字信封和解开数字信封,如图3所示。在本文的系统中,管理端将票据信息用对称密钥进行加密,然后用客户端的公钥加密此密钥,之后将其和加密后的票据信息一起发送给客户端。此为生成数字信封的过程。客户端先用对应的私钥数字信封得到对称密钥,然后使用对称密钥解开加密信息。此为解开数字信封的过程。

本系统通过生成和解开数字信封提高了票据信息在传输的过程中的保密性,利用数字信封技术保证了密钥分发过程的安全。

图3 数字信封过程

2.3 密钥管理

密钥管理是本文的系统中最重要的部分。其过程包括密钥生成、密钥分发、验证密钥、更新密钥、密钥存储、备份密钥以及销毁密钥。系统的安全性真正在于对密钥的保护程度而并非在于密码算法的保密程度以及对设备的保护程度。

本文的系统中用到了常见的三级简化密钥管理结构,其优点在于能自动化管理密钥。在此结构中,密钥管理系统将按照协议对各级密钥进行自动分配。首先,在客户购票时客户端自动生成公钥与私钥同时将生成的公钥上传至密钥管理系统中进行储存。在提高了密钥传输效率的同时也确保了传输过程中的安全。而管理端掌握着的系统密钥与客户购票的密钥相互之间不直接接触,二者分别保护属于自己的私钥,提高了传输过程的安全性。

3 设计与实现

3.1 系统架构

本文所设计的系统结合了管理端、客户端以及验票端,系统组成图如图3所示。系统管理端运用了简化的Linux系统,同时采用B/ S架构模式与C/S架构模式。管理端通过CGI+HTML进行B/S架构管理系统的开发;验票端通过C#语言进行开发,通过和管理端进行通信交互实现票据鉴别;客户端通过在网上在线购票实现与管理端的密钥交互。

3.2 票务流程与实现

3.2.1 客户购票

客户在线购票后数据将传送到管理端,管理端将使用随机数产生一组密钥,并将密钥信息加入原有的本地存储的密钥信息中;同时使用随机生成的密钥保护密钥对此密钥进行SM4加密,并对密钥进行数字签名;用客户端的公钥使用SM2加密算法对密钥保护密钥进行加密,形成数字信封;最后将数字信封下发至客户端。

3.2.2 管理端接收密钥

在接收了管理端传送过来的信息后,首先客户端需要用管理端产生的公钥对传送过来的信息进行验签,确保签名正确后客户端需要用自己的私钥解密被管理端加密了的保护密钥,得到未加密的保护密钥,之后用得到的未加密的保护密钥解密由密钥加密的信息,从而获得真正需要的密钥。

3.2.3 二维码生成

本文中的系统将二维码作为信息的载体进行传递。客户端生成的二维码包含用户身份信息以及所购票据信息。客户端将收到的信息用客户端的公钥加密的密钥进行解密后,用管理端的公钥进行二次加密并生成字节串,利用所生成的字节串产生二维码。

3.2.4 验票

客户将生成的二维码票据放到验票端下进行二维码扫描,读取二维码信息。用管理端的私钥对读取到的二维码信息进行解密,解密完后,与管理端中原有信息进行比较以辨别客户的票据真伪。如果比较之后信息一致则票据真实有效,客户可以通行,否则拒绝客户通行。

3.3 关键技术实现

本系统管理端实现结构图如图4所示。业务层的主要作用为将接口解析出来的信息通过不同的模块进行相应的操作。比如购票模块需要进行票据信息的加密,而验票模块则需要进行信息的比对等。而数据层需要存储本系统的所有票据信息。

管理端接受来自客户端的请求时的主要流程机制是当客户在线购票并且支付成功后,管理端将自动对产生订单中的各类信息包括票据信息、时间等存储到数据库内。同时管理端将使用随机数产生一组密钥,并将密钥信息加入原有的本地存储的密钥信息中;并使用随机生成的密钥保护密钥对此密钥进行SM4加密,且对密钥进行数字签名;用客户端的公钥使用SM2加密算法对密钥保护密钥进行加密,形成数字信封;最后将数字信封下发至客户端。

图4 管理端架构图

当管理端接受来自验票端的请求时,主要流程机制是管理端通过验票端的请求获取到需要检验的票据的二维码,通过对二维码内存储的信息进行解密,将解密后的信息与数据库中存储的原票据信息进行比对,通过比较二者是否相同后将结果反馈至验票端进行处理。如果二者信息相同,则允许客户通行,否则客户不能通行。

4 结束语

对于传统的验票方式来说,不但花费了大量时间而且验票结果错误率也相对较高。本文的系统设计灵感源于现有的验票系统的不完善,故而将商用密码算法与二维码二者相结合,形成一个更加安全同时又具备高效率的基于商用密码算法的二维码验票系统。本文主要的技术核心对二维码存储的信息进行加密。二维码的可存储信息量大、可靠性高同时还具有超高速、全方位的特点,本文采用了数字签名、数字信封以及密钥管理技术,保证了二维码传输过程中的保密性以及认证的安全性,在大大地提高了验票的效率的同时保证了其安全性,实现了具有安全性的二维码扫描的验票方式。

[1]徐辉.QR Code二维条码编解码系统的应用研究[D].南京:南京邮电大学,2011

[2] GM/T 0002-2012.SM4分组密码算法[S].中国:国家商用密码管理办公室,2012

[3]许辉.二维条码QR码的分析和编解码设计[D].北京:北京邮电大学,2007

[4]陈飞雄.通用设备采集的二维条码自动识读技术的研究[D].西安:西安理工大学,2005

[5]薛红.条码技术[M].北京:中国轻工业出版社,2008

[6]康春颖.基于二维码技术的电子票务系统的研究[J].哈尔滨商业大学学报(自然科学版),2009,25(2):2-13

[7]谢仁康.非对称加密二维码防伪系统的设计[D].电子科技大学,2013

[8]卢镔.QR码识别方法研究及应用[D].南京理工大学,2013

[9] GM/T 0003-2012.SM2椭圆曲线公钥密码算法[S] .中国:国家商用密码管理办公室,2012

[10]刘雪娇.多功能电子票务系统的设计与实现[J].微计算机应用,2006,27(3):327-331

猜你喜欢
验票票据密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
TPM 2.0密钥迁移协议研究
2016年11月底中短期票据与央票收益率点差图
2016年10月底中短期票据与央票收益率点差图
2016年9月底中短期票据与央票收益率点差图
2015年8月底中短期票据与央票收益率点差图