巧用二维码反验票务系统数据的可靠性

作 者:

作者简介:
范芹,杨俊宏,湖北省武汉市审计局

原文出处:
中国审计

内容提要:

02


期刊代号:V3
分类名称:审计文摘
复印期号:2019 年 05 期

关 键 词:

字号:

      笔者在对某项目票务系统进行调查了解时发现,一般情况下,票务系统管理员对数据库有较高的操作权限,如果有人利用系统管理员的ID对系统数据做出一些修改,是难以及时被发现的。而票务系统后台数据库中记录了票种标识、人员数量、交易时间等一系列重要信息,是反映真实业务情况的重要记录,如果信息被篡改,势必影响其他业务指标的评判,甚至被人利用非法获利。那么,在获取系统数据后,如何验证该数据的真实性、完整性、可靠性,便成了票务系统审计第一道亟待攻克的难关。

      笔者所在审计组经过反复讨论研究,决定将二维码作为一个关键的突破口。在产生门票销售订单时,会由票务系统编码自动生成一个唯一对应的二维码,二维码对应的是一段十六进制的字符串,字符串中同样包含票种标识、人员数量、售票时间等重要信息,而基于系统设计的字符串生成机制和校验机制,除系统编码人员,其他人在程序之外只能看到结果,一般无法知晓字符串所包含的对应信息,而且这些字符串通过非对称密钥加密,即使了解编码结构也无法对数据进行修改。因此,销售订单一旦生成二维码后,再想通过修改这段十六进制的字符串,生成相应的信息与数据库中对应字段相匹配几乎是不可能的。也就是说,二维码或者十六进制代码一旦生成,其对应的数据库系统记录数据就是唯一的,如果后期更改系统数据,其生成的二维码或者十六进制代码必然与修改前的原始数据生成的二维码及十六进制代码不一致。因此,审计人员可以通过已经生成的二维码或十六进制代码反推出数据库原始数据,然后与数据库中对应的现有数据进行对比,如果不一致,即可认定现有数据是被篡改过的,以此来验证票务系统数据的可靠性。

      首先,采集预制门票、电子门票、电子门票交易信息的关键数据,生成三张数据表。预制门票的数据元素有门票编号、票种标识、二维码信息、门票状态、锁。电子门票的数据元素有门票编号、已确认订单号、票种标识、二维码信息、门票状态、锁、顺序号。电子门票交易信息的数据元素有门票编号、确认订单号、机构代码、交易类型、票种标识、交易时间、时间段、区域标识、操作员编号、终端设备标识、终端流水号、设备型号核准号码、人数、交易金额、支付方式、原门票编号、原票种标识、现金金额、卡金额。

      其次,从票务系统的后台数据库中取得二维码信息的十六进制字符串集合,以及直接存放的门票交易订单信息。先从解析二维码开始,通过数据库取得解析字符串对应的信息,截取对应信息的数据映射字符串,再对数据字节的顺序进行调整,以取得对应信息的合序数据,对数据进行编码转换,得到对应信息的数值,生成票面解码信息。二维码数据反向解析功能流程如图1所示。

      

      最后,将通过二维码解析生成票面解码信息,与数据库当前的订单信息数据进行比对,通过匹配门票编号、门票类型、时序逻辑以及人数等信息,比较判断二维码信息与库表中数据的一致性。

相关文章: