APP下载

一种基于PKI+SIM的二维码安全认证系统研究

2022-07-26龚雪冰柯树森黄庆慧胡莉琼

网络安全技术与应用 2022年7期
关键词:数字证书公钥数字签名

◆龚雪冰 柯树森 黄庆慧 胡莉琼

一种基于PKI+SIM的二维码安全认证系统研究

◆龚雪冰 柯树森 黄庆慧 胡莉琼

(中移互联网有限公司 广东 510640)

随着移动互联网的发展和普及,二维码应用已遍及人们的衣食住行,但在为大众生活带来便利的同时,其安全隐患也不容忽视,由二维码引发的安全事件时有发生。为了解决该问题,本文提出构建一种基于PKI+SIM的二维码安全认证系统,通过SIM认证技术解决用户身份认证问题,通过在二维码中嵌入用户数字签名解决二维码安全认证问题。

PKI;sim认证;二维码;安全认证

随着移动互联网的发展和普及,二维码应用已遍及人们的衣食住行,但在为大众生活带来便利的同时,其与生俱来的安全隐患也不容忽视。由二维码引发的安全事件时有发生,触动公众神经。比如,当手机用户扫描来源不明的二维码时,可能被链接到恶意网站,使手机感染病毒或被植入木马,造成不可预知的安全隐患和经济损失[1]。另一方面,二维码应用广泛,包含用户实名信息的二维码若丢弃,极易造成用户信息的泄露。

究其原因,主要是由于当前我国对二维码生成和识读工具缺乏统一管理,个人借助工具可随意生成和读取二维码,没有对二维码生成和识读形成系统化监管机制,二维码未经国家主管机关或第三方机构的认证[2]。

1 目前主要的安全防御技术

目前在二维码安全防御技术研究方面,主要有以下技术方案:

一是使用安全扫描工具或者防病毒软件,在扫描二维码时,利用手机病毒防御技术和云端病毒检测分析技术,对二维码信息进行分析检测,判断二维码是否存在钓鱼网站链接或病毒,对有害信息进行过滤,对用户进行风险提示[3]。该方案依赖于二维码病毒库的完备性和安全模型的有效性,然而,通常这两者都很难满足。更重要的是,它无法对二维码来源进行验证,从而无法保证安全。

二是提高二维码安全性能,对二维码信息加密,防止信息泄露和篡改[4-5]。但该方案只是解决了二维码信息泄露和篡改问题,仍无法证明二维码来源是否可靠。

三是引入第三方认证管理机制,建立统一的二维码注册认证中心,对二维码进行统一注册、解析和标识[1]。该方法具有较高的安全性,能够对二维码进行有效监管,但这是一种在线验证的方式,对用户身份信息审核是难题;需要服务器生成和解析二维码,在海量二维码用户的环境下,对服务器性能是一个考验。同时,也无法实现离线生成与验证二维码,因此,很难得到应用推广。

通过以上分析可以发现,现有的二维码安全技术主要是用加密编码或者手机病毒防御技术、云端分析检测技术等保障手机安全,缺乏行之有效的二维码安全认证手段。因此,为了解决二维码安全认证问题,本文提出通过引入PKI安全认证技术和基于SIM的身份认证技术,围绕二维码发布用户和扫描用户的身份认证,建立一套基于PKI+SIM的二维码生成和认证系统。

2 相关技术

2.1 QR二维码技术

二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等,同时还具有对不同行的信息自动识别功能及处理图形旋转变化等。目前比较常用的二维码有PDF417 码、Data Matrix 码、QR 码。其中QR码具有读取速度快、存储容量大、对平台和设备的兼容性高等特点,在我国具有最广泛的应用[6]。因此,本文采用QR码作为研究对象。

QR码使用四种标准化编码模式(数字、字母数字、二进制字节、汉字)将数据内容转换为二维码图形,而通过扫描识读完成数据内容输出的译码过程则为编码的逆过程。编/译码流程[7]如图1所示:

图1 二维码编码/译码流程图

编码阶段:①获取原始信息,分析其数据类型,根据分析结果选定编码效率最高的编码模式。②根据步骤1 确定的编码模式,将原始信息转换为相应的二进制比特流,完成信息编码。③根据数据量将码字分块,采用纠错编码技术按块生成相应的纠错信息码,再按照分块顺序合并为最终纠错码。④将数据内容和纠错信息码组成最终数据码,添加模式信息、版本信息、寻像图形、定位图形和校正图形等,掩模处理生成QR码图像。

译码阶段:①通过寻像图形和定位图形确定QR 码的方向和位置,校正图像,确定采样网络。②识别深浅模块,读取格式信息与版本信息,消除掩模,恢复数据内容和纠错信息码,用纠错码进行错误检查。③纠错后将数据信息解码。④输出数据内容。

2.2 PKI技术

2.2.1 PKI的概念与功能

PKI 是 Public Key Infrastructure 首字母的缩写,即公钥基础设施。实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。PKI体系是计算机软硬件、权威机构及应用系统的结合。它为实施电子商务、电子政务、办公自动化等提供了基本的安全服务,从而使那些彼此不认识或距离很远的用户能通过信任链安全地交流[8]。

2.2.2公钥密码技术

公钥密码体制涉及到一对非对称密钥,即公钥和私钥,公钥可以对外公开给任何人知道,在PKI 体系中,公钥由CA 管理供所有个人和机构合法查询,而私钥则是由用户自己保存,一般储存在USB key等智能硬件中,只有用户本人知道和使用。在数字签名的过程中,签名方使用私钥进行加密签名,验证方使用公钥进行解密。在信息加密过程中,信息发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。

2.2.3公钥管理策略

PKI体系中,采用数字证书管理公钥,数字证书由CA管理和分发,主要内容包括用户的公钥和身份信息,为了确定数字证书的真实性,还需要加上CA的数字签名。通过数字证书,确定了公钥与其拥有者的身份之间的匹配关系,为数字签名的认证提供的安全保证基础。

2.2.4 SIM卡身份认证技术

SIM卡又叫用户身份识别卡,其内部由大规模电路集成的智能卡,用来保存用户的身份识别数据和相关数据。包括国际移动用户识别号IMSI、鉴权密钥KI等,可以通过SIM卡从移动运营商获取手机用户的身份认证服务,包括手机号码有效性校验和实名制信息查询等。SIM卡身份认证是指基于运营商特有的数据网络、短信网关对SIM卡对应的手机号码进行有效性校验,同时为应用提供号码状态查询、实名制查询等服务。

3 基于PKI+SIM的二维码认证系统方案研究

本文通过SIM认证方式,利用运营商的身份认证平台,解决认证平台对用户身份的快速认证问题;通过在二维码中加入数字证书和签名解决对发布者的身份认证问题;通过对称加密和非对称加密等方法解决对扫描者的身份认证问题,从而确保二维码信息的安全保密。

3.1 系统原理

本方案中,用户通过客户端用手机号码注册,认证平台将手机号发给移动运营商身份认证平台请求实名信息,运营商身份认证平台与该用户确认后,返回该用户的实名制信息。认证平台比对用户注册信息和实名制信息,审核通过后生成数字证书,连同平台跟证书和用户私钥一起发送给用户。

二维码发布用户在二维码中添加自身数字证书和数字签名信息。二维码扫描用户扫描二维码并验证二维码发布用户的证书和签名,确认证书和签名真实后,读取二维码信息。

系统原理图如图2所示:

图2 系统原理图

3.2 系统组成

本系统由安全认证平台和安全认证客户端两部分组成。

3.2.1认证平台

认证平台是本系统的核心,包括 CA(证书中心)、RA(注册中心)、密钥管理中心(KMC)、PKI存储库等。CA是用于签发并管理证书;RA用于个人身份审核、CRL管理、KMC提供用户加密密钥的生成及管理服务等;PKI存储库包括LDAP目录服务器和普通数据库,用于对用户申请、证书、密钥、CRL和日志等信息进行存储和管理,并提供一定的查询功能。CA、RA、KMC可独立部署,也可部署在同一服务器。

3.2.2客户端

认证客户端主要负责认证证书申请、二维码生成和读取,包括证书管理组件、二维码生成组件、二维码读取组件、密钥管理组件、加密解密组件等。证书管理组件负责向认证平台申请、撤销、查询、下载、存储、读取数字证书、二维码生成组件负责对二维码承载信息进行数据分析、信息编码、纠错编码、生成二维码图像。二维码读取组件负责扫描识读、图形定位、纠错解码、信息解码和信息展示。密钥管理组件负责存储读取用户密钥对。加密解密组件负责对二维码承载信息、认证证书、数字签名信息进行加密和解密。

3.3 数字证书设计

按照X.509证书格式创建数字证书,如表1所示。该证书符合ITU-T X.509国际标准,可以被其他符合X.509标准的应用使用,增强了系统的扩展性。本方案X.509版本采用最新的v3版,签名算法采用SHA1 with RSA1024。

表1 数字证书格式

X.509版本号证书持有人公钥证书序列号 证书持有者信息(CN、OU、O、C等)证书有效期 证书颁发者名称证书颁发者签名签名算法标识

3.4 二维码设计

相比其他类型的二维码,QR二维码具有数据容量大、读取速度快等优点,得到广泛应用。因此,本方案采用QR二维码作为信息载体,在二维码中加入认证信息。最终的二维码信息包括业务信息(文字、网址、图片、视频等)、发布者的数字证书以及发布者对业务信息(哈希值)的数字签名。经验证,采用本方案的数字证书和数字签名,将占用不超过15%左右的二维码数据容量。

3.5 认证流程和方法

3.5.1证书申请

用户(包括二维码发布用户和扫描用户)首先通过客户端用电话号码在认证平台注册。认证平台用手机号码,通过移动运营商的认证平台对用户注册信息进行查询,人工审核通过后下发用户数字证书、认证平台数字证书和用户密钥对。

证书申请流程如图3所示。

图3 证书申请流程示例

3.5.2二维码生成

二维码发布用户发布二维码信息时,用私钥签名,并将数字证书和签名信息写入二维码中,如果需要对扫描者身份验证,则在二维码条码编码前,用扫描者的公钥(如果没有,可通过扫描者电话号码在认证平台上查询)进行加密,然后再用Base64编码算法对加密后的二进制数据进行编码(否则无法打印)[9]。

二维码生成流程如图4所示。

3.5.3二维码扫描

二维码扫描用户扫描二维码时,如需验证身份,先采用Base64编码算法进行解码,然后用私钥解密出包含发布者数字证书和数字签名的二维码。如无需验证身份,扫描者获取二维码信息后,先利用已安装的认证服务器的根证书(公钥)验证发布者证书的真伪,如果真实则再利用数字证书中二维码发布者的公钥验证发布者的数字签名,如果真实,则解析二维码业务信息。如果证书或数字签名不真实,则发出“未认证二维码”的风险提示,让用户选择是否继续解析。在整个二维码扫描过程中无需服务器参与认证发布者和扫描者的身份,实现了离线和双向认证功能。

二维码扫描流程如图5所示。

图4 二维码生成流程示例

图5 二维码扫描流程示例

4 结束语

二维码已经在大众生活中得到了极其广泛的应用,为人们带来便捷的同时也带来了严峻的信息安全问题。本文提出的基于PKI+SIM的二维码安全认证系统利用运营商提供的SIM身份认证功能,快速获取用户实名信息,有效解决用户身份信息在线审核难题。在二维码中加入认证平台的数字证书和二维码发布者的数字签名信息,将二维码扫描者对二维码来源的验证转为对认证平台数字证书有效性的验证,有效解决二维码来源无法追溯的难题。对于需要验证扫描者身份的场景,采用扫描者的数字证书中公钥进行非对称加密,有效解决二维码信息安全保密和对扫描者身份验证的问题。有别于在线式生成和认证方案,本系统可以实现离线生成和认证功能,并可基于PKI信任模型进行扩展,具有较高的应用价值。

[1]张彬,王岳.二维码的安全技术研究[J].信息安全与通信保密,2015(10):198-199.

[2]徐霖,毕桂.谈谈二维码安全问题[J].河北农机,2019(4):84.

[3]钟敏,吴晓凌,陈乐.二维码安全识别系统的研究与设计[J].电脑知识与技术,2020,16(22):198-199.

[4]QRCodeStickers.org,Encrypted QR Codes and Parts of a QR Code[OL].http://www.qrcodestickers.org/qr-code-articles/encrypted-qr-codes.html.

[5]高彦受.QR 二维码的安全实现与设计分析[D].南京:南京理工大学,2012:19-26.

[6]王望羊.基于证书的二维码生成和认证系统的研究[D].成都:电子科技大学,2016:8-10.

[7]林佳华,杨永,任伟.QR二维码的攻击方法与防御措施[J].信息网络安全,2013(5):29-32.

[8]赵振洲.信息安全管理与应用[M].北京:中国财富出版社,2015.

[9]梁英宏,刘义春.基于PKI的二维条码电子消费券及其系统设计[J].计算机应用研究,2012,29(6):2161-2164.

猜你喜欢

数字证书公钥数字签名
交通运输行业数字签名系统的设计与实现分析
神奇的公钥密码
数字签名技术在计算机安全防护中的应用
国密SM2密码算法的C语言实现
关于电子商务中安全数字签名的研究
基于身份的聚合签名体制研究
PKI技术在SSLVPN中的应用
数字签名保护Word文档
掌握方法用好数字签名
一种公开密钥RSA算法的实现