二维码又叫二维条码,是一种特殊的记录数据符号信息的图形,相比于传统的一维码,它继承在识读方式、编码设计、校验原理方面的特点,同时也在方向上比一维码存储更多信息,也能表达更多的数据类型。
但由于二维码使用方便、价格低廉、易于获取,使很多不法分子利用二维码诈骗钱财、窃取他人私人信息。因此,本文将对二维码的生成原理进行研究,并对二维码支付的风险深入分析以及提出应对支付风险的策略。
一、二维码的生成原理
1、二维码的尺寸
对于二维码的尺寸,官方称谓是“Version”。最小的Version1是一个21×21矩阵,每增加一个版本,每条边增加四个模块。计算公式为 (Version-1)×4+21。例如:Version4的计算方法就是 (4-1)×4+21= 33,即Version4就是一个33×33的矩阵。
2、数字与字符的编码
数字编码是将数字分成区间从0到9,需要编码的数字每三位为一组,然后转换成10bits的二进制,如若不足三位,剩几位自成一组。字符编码包括{$}{%}{*}{+}{-}{.}{/}{:}{空格}、数字0到9、大写的A到Z。字符是两个为一组,将其转换成字符索引表中对应的45进制的数,然后再转成11bits的二进制,如果尾部出现单数,则将其转换成6bits的二进制。字符索引表如图1所示。
图1 二维码字符索引表
例如,将数字编码“24689”在Versionl版本下进行编码。步骤如下:
首先,将“24689”每三位分成一组,不足三位的自成一组。分组后为:{246}和{89}:
表1 Version5纠错特性
其次,将数字编码转换为10bits的二进制。将{246}转换为二进制结果是:0011110110,将{89}转换成二进制结果是:1011001;
再次,由于“24689”的数字个数为5,于是将“5”转换成10bits的二进制,其结果是:0000000101;
最后,在{246}和{89}的二进制编码前加上模式指示符和数字个数的二进制,结果为0001 0000000101 0011110110 1011001。
3、纠错码
纠错机是为了使一些污损残缺的二维码能够正确的识读出来。纠错水平可以分为四个级别,分别是L、M、Q、H。在一串数据中添加纠错码时,需要先对数据码进行分组,以Version5为例,码子总数、纠错级别、纠错码字数和纠错块个数如表1所示。其中,纠错码块(x,y,z)中x为码字总数,y为数据码个数,z为纠错码容量。
4、最终编码
最终的编码是由数据码和纠错码组成,将数据码按块从上到下从左到右的顺序组合到一起。先取出每一块的第一个数据,按照从上到下的顺序排列,然后取出每块的第二个数据,同样按照从上到下的顺序排在之前数据的后边,接着依序排列至结束。同样的方法也适用于纠错码,排列在数据码后边,数据区就这样形成。
二、二维码绘制与组成
一个二维码的绘制需要以下几个要素组成,分别为:位置探测图形、定位图形、分隔符、版本信息和格式信息等。
位置探测图形用于标记二维码的方向,一般情况下位于二维码的三个角。有了这三个位置,无论从哪个方向读取二维码,信息都可以被识别。即使将二维码图形旋转,也能够正常读取内容。由于个三点就可以确定一个平面,所以用节省出的一个角可以嵌入更多信息。
二维码的每个组成部分都有其特殊意义,不仅仅是我们肉眼所见的一些混杂的几何图形,还有一些组成部分是看不出的,例如:分隔符和定位图形等。分隔符顾名思义就是起到分隔的作用,是将符号的其余部分与位置探测图形分隔开。定位图形则是起到坐标的作用。
还有两个图形肉眼也难以发现,位于左下角位置探测图形上面的是“版本信息”,每个二维码都有一个版本号,我们常说的V1.0、V2.0就是版本;包围在三个位置探测图形周边的则是“格式信息”,这指的是这个二维码采用的编码格式。二维码图形绘制组成如图2所示。
图2 二维码绘制组成
三、支付安全与风险
二维码作为一种新型的方便快捷的支付方式,其自身是存在漏洞的,正是这些漏洞使不法分子有机可乘,制造出多种诈骗手段,进而使使用二维码的消费者和商户眼花缭乱,也是近年来的诈骗案件不断增多。然而,在很多安全问题上,最为普遍损伤最大的就是诈骗行为,而且诈骗行为造成的损失难以追回。
2018年安徽工程大学对于关于二维码支付风险进行了调查问卷。其结果显示,在受访者中,至今还没有遇到过扫码支付诈骗手段的只有16.54%;最常用的的扫码领红包是受访者遇到的最多的支付诈骗手段,为39.23%;其次就是手机病毒,占比38.50%;再其次就是恶意软件和骗取付款码,分别为30.75%和1.01%;遇到诈骗手段是二维码以假换真的受访者占23.77%;遇到诈骗占比最少的就是钓鱼网站,其占比占受访者的24.03%。调查结果如图3所示。
图3 关于二维码支付风险的调查结果
调查结果显示,由于二维码支付自身存在的漏洞,使80%以上的二维码支付用户都曾经遭遇过不同形式的诈骗手段。
四、二维码支付的漏洞表现
1、病毒和恶意代码
当今互联网有着传播速度快传播范围广的优点,但对于扫描违规二维码的消费者来说却是缺点,因为当消费者扫到违规二维码时,会在短时间内造成大范围的影响,即扫码诈骗。与此同时,扫码后出现的网站不会出现确认的界面,这样一来短时间内,消费者无法阻止不良网站的跳转和病毒的入侵,就会直接导致手机客户端被病毒攻击或者泄露信息等各种损失。
二维码在生成过程中非常容易使不良信息、病毒以及恶意代码混入其中,以至于二维码违法使用的事件不断增加,尽管生成二维码的协议中声明,不得将将生成二维码用于伪造、诱导、欺诈、违规代理等不法用途当中,但是二维码的审核并不严格,因此并不能使违法使用二维码事件减少。
2、二维码被替换
在日常活动中,静态二维码常作为小商户的收款媒介,所以静态二维码在大众的生活中十分普遍。由于静态二维码需要循环使用、不可随机产生、具有极高的针对性,很容易被非法分子替换、伪造、涂改、覆盖,成为自己诈骗牟利的手段。如若被犯罪分子得逞,商户的盈利将会进入不法分子的腰包。
静态二维码投入市场使用以来,经常在商户收款、共享单车付款等模式中被诈骗者替换,这种问题的频发使得央行在2008年4月1日规定静态二维码的日交易金额不可超过500元,这虽然保证了商户的利益安全但却降低了消费者使用的便利,也没有解决其基层逻辑问题,即静态二维码安全性的问题。
3、泄漏个人信息
在使用者扫入不明二维码时,很有可能已经陷入了欺诈者精心设计的圈套。他们将非法网站乔装成相关正规机构的官网对消费者实施欺诈,盗取其银行账号、密码等个人隐私。这种卑劣的手段常常通过伪装相关正规机构的URL地址以及其内容,在某些界面中插入有安全隐患的脚本代码,将消费者玩弄于股掌之中。
站在支付平台的视角来看,平台方的运营不当往往是消费者信息泄露的主要原因。消费者的手机号、身份信息以及绑定的各种账户信息会在其使用支付平台时被缓存。如若支付平台的安保系统不够严密如内部人员的泄密或出售个人信息活动、遭受黑客与病毒非法网络攻击,用户的个人隐私将处于极其危险的状态。
五、二维码支付安全的应对措施
1、增强安全防范意识
对于静态二维码的使用者,商家与消费者而言,商家需极其谨慎地张贴自己的静态二维码,防止他人非法更改、覆盖,商家需要定期定时地检查静态二维码的个人信息真实性。消费者也要在扫码时多加留意,一定要核实该静态二维码是否来自于商家,更不可轻信页面的跳转提示、谨慎支付、不随意同意不明协议。在商家和消费者的联合确认下,定会大幅减少这种财务损失。
2、提供安全技术支持
要想减少二维码在支付过程中给消费者带来损失,可以加强客户端先进技术的应用和研究。为了保障支付时的安全,避免不良网站的入侵,客户端可以可以设置屏障风险网站或者下载安全保证书。使更换二维码变得困难,提高二维码本身使用过程的验证、生成技术的安全风险防范能力。
3、加强二维码获取资格与管理
目前想要获得一张二维码非常容易,也就出现了套现等消费者扫描二维码后损坏利益的情况。
商户申请收款二维码的流程是:点击支付宝中的“扫一扫”功能,扫描官方网站的申请二维码,在手机客户端选择自行打印或寄送的方式,点击“同意协议并申请/打印”即可获取收款二维码。可见目前在支付宝中商户的收款二维码申请极其简单。
因此,支付平台在提供二维码服务之前,一定要获得申请二维码这个人的真实身份并对申请者身份进行基础的核实。平台可以依据二维码的运用方向和所申请的业务要求申请人提交详细的相关资料留存。政府可以设置年检专柜并且指定专门部门负责二维码业务等,提高二维码的获取准入门槛,加强对支付二维码背后商户的质量筛选。