行业资讯

当前位置:志荣 > 新闻中心 > 行业资讯

电子秤芯片防作弊检测系统设计

时间:2017-09-09 10:03   来源:http://www.shzrhq.com   访问量:

电子秤使用过程中存在的最为隐蔽的作弊手段是通过修改或更换芯片中的程序.为了有效检测这种隐蔽的电子秤作弊行为,维护市场公正,设计了 一套作弊检测系统.单片机系统实现 提取芯片程序,上位机从单片机获取程序后,经过循环冗余校验算法获取程序校验码,通过与远 程服务器中已存的校验码比对,确定芯片代码是否被修改.

1.系统总体结构设计

本系统借助了现有的网络传输技术实现一条 龙式的电子秤芯片检验服务系统.其主要功能如下:

1以非破坏性的手段从电子秤中提取其原有 代码,与标准代码进行比较,比对其是否相同.

2保证标准代码数据的安全,使之不会被泄 露出去.

3对已有的检测资料进行整理,能够方便地 浏览和统计.

4系统支持离线上传方式,可以在没有网络 条件的环境下,向数据库先采集数据,然后一并提 交校验.

5后台管理系统能够支持远程登录,方便执 法人员的管理工作,如查询某次的记录、生成统计 报表等

为了方便系统功能的实现,系统由以下3个部 分组成芯片代码提取器(单片机系统)、上位机 (PC)和远程服务器.其系统框图如图1所示

云网客1.jpg

在实际的检查过程中,不可避免地会在不同的 地点同时进行芯片代码验证的工作.因此,需要有 若干个代码提取器在不同的地点工作.如果在提取 芯片代码的现场,并于提取器本地进行芯片代码与 标准代码的比对工作的话,那么,标准代码就必须 保存在代码提取器中.这样既不利于保证标准代码 数据的安全,同时,当需要增加新的标准代码,或者 对标准代码进行修改时也非常不方便,数据统计等 功能则更需要牵扯许多用于协调的人力和物力. 了避免这些问题,有必要建立一个远程服务器,将 标准代码保存在服务器上,通过远程调用的手段访 问,从而达到保证系统安全性,方便进行统计查询 等功能的目的.

现行的电子秤系统大多使用单片机MCS 51系列单片机为主)作为系统的芯片,而且并非每 台电子秤都配有可与PC机连接的接口(如串行口 .如果开发一个专门的,能够连入网络的嵌入式 系统(PDA ),则需要大量经费的投入,而且在某 个检测地点,肯定有大量的电子秤需要检验.使用 PDA进行检测往往只能同时检测一个,会耗费大 量的时间.为此,我们开发了 一个单片机来对电子 秤芯片进行代码读取工作,它通过串行口与PC 进行连接,并可以实现多个子系统与PC机连通,同时进行检验,从而达到提高效率的目的.

2.芯片信息提取器的实现方案

芯片代码提取器是一个单片机系统,其主要部 件是一个40针的插座、一片存放提取程序用的可编程逻辑器件,以及一个MX232的串行传输芯片 组成.系统通过插座连接电子秤的芯片,从中提取 芯片中的存储信息(代码提取模块并解析成机器 (数据解析模块)经由数据发送模块,将提取的 机器码传输到上位机.其外观如图2所示.

云网客2.jpg

从图2可见,提取器上的操作按钮有2:开 关和复位按钮,此外还有一个提示灯(红色.使用 时,先在断电的情况下接好串口,放上芯片后,打开 电源,提示灯点亮,提取器会对目标芯片上的代码 进行提取并解析成机器码.当解析完毕,提示灯会 开始闪烁.此时,如果提取的机器码完全正确,提取 器会首先输出一个值66H的字节,表示输出的代 码是完全正确的,随后将提取出的机器代码以300 bit/s速率送入串行口,等待上位机接收;如果提取 的机器码有问题,则提取器输出的将会是乱码.

3.上位机子系统的实现方案

3.1使用CRC 32校验码作为校验依据

从提取器中提取出的机器码通常数据量要达 64 K从个体机器的角度来看并不算庞大.然而 如果将机器码直接上传到服务器端,可能会对服务 器造成很大的通讯压力,使系统不得不降低效率或 者使用配置更高端的服务器系统,从而导致系统费 用的上升.

实质上,我们所要校验的,只是电子秤芯片中 的代码是否被篡改过的事实(或者说,是否使用标 准代码的事实).如果有一种机制或者算法,可以提 取出代码中的特征信息,使得只要电子秤芯片中的 代码与标准代码不同时,如果能检测出来,有可能 传输很少的信息量就能达到我们的要求.这种机制 或者算法并不复杂,许多用于传输校验的校验码算 法就能够做到这一点,CRC算法是其中最为常用 的一种.

循环冗余码CRC检验技术广泛应用于测控及 通信领域.如在常用的网络通信协议以太网以及 TCP/IP中,就使用CRC算法来验证传输信息的 正确性.这种基于2个字节数据流使用、二进制除 法相除所得到的余数和进行信息验证的算法,具有 很高的可靠性,理论上其碰撞概率为1/40亿,已经 达到了应用需求.而且CRC算法是一个相对开放 的算法,可以根据需要设计很多新的变形算法 

3.2上位机子系统设计思路

本子系统主要由以下模块组成:

1串行数据接收模块;

2校验码计算模块;

3打包和发送数据模块;

4离线信息米集模块;

5离线信息发送模块;

6离线程序信息数据库;

7GUI模块.

3.2.1串行数据接收模块

由于芯片机能的限制,提取器发送信息是自主 发送信息的,并非由上位机(PC)告知对方后再传 输,而是提取器一次性将所有的数据传输完毕.虽然 串行传输十分稳定,但是其中所必须解决的数据缓 冲问题,并没有得到很好的解决,因此这部分的内容 必须由上位机部分来管理并实现.同时,上位机并不 知道提取器何时传输数据,为了监听端口实现一次 多机上传,也必须要有多线程系统的支持

该模块的多线程设计由两个部分组成:主线程 以及监听器线程.主线程负责相应GUI模块提出 的用户交互请求(主要是设置和查看传输信息),而 监听器线程(根据需要,可以有很多个)则监视端口 的输入情况,将输入数据重新打包,解析成需要的 流式信息,存入内存中.两个进程通过互斥量同步, 通过共享内存技术实现互相之间的通信.两者的主 要关系如图3所示

云网客3.jpg

本系统设计的串行接收模块基于.NET类库 中的Serial Port类实现,大大简化了设计.但无论 是使用何种类库,都会涉及到串行口超时的问题, 在读操作时是读超时Read Time Out)写操作时 写超时.所谓写超时,是指在使用Write指令的时 候能否成功传输到对方的输入缓存中,如果不能够 成功传输,就等待,直到超过一定时间,这个时间就 是写超时;而读超时,是指在使用Read指令时就 开始串行口的输入缓存,如果其中有内容,就读出, 如果没有就等待,直到超过一定时间读超时. 统所读到的数据都要进入输入缓存,反之,等待输 出的数据都要进入输出缓存.当发生如果写()超 时,系统都会报错(对于Serial Port类,其会异 .因此不能简单地认为系统在读写串口时会始 终阻塞主线程,必须人工编程,实现等待操作.

整个等待读操作的过程在一个循环中.当串口 发生超时,抛出异常时,使用.NET的异常处理机制 将会捕获这个异常,然后不执行任何代码(这种情况 下的Time Out Exception不能视为出错情况)就回 到原本执行的代码中.只有在满足条件的情况下(比 如用户中止或者达到别的退出情况),才进入跳出这 个环节.本模块将接收的数据存入一个64 K大的 Char型数组中,并将其传输给校验码计算模块

3.2.2校验码计算模块

本模块接收从串行数据传输模块中输出的 Char型数组(字符串),并计算其对应ASCII码的 C RC校验值,将其传输给G UI模块、发送数据模 块以及离线信息采集模块进行进一步处理.

3.2.3打包和发送数据模块

本模块首先接收从校验码计算模块中输出的 CRC校验值,将其与GUI模块中获得的芯片参数 (生产厂家、型号等)以及检查的日期与时间生成一 个XML文档.通过HTTP协议传输给远程服务 器,调用远程服务器上的一个函数(将传来的CRC 校验值与标准值对比,判断其是否正常),并获取返 回值,告知用户检测的结果.

这种实现机制称为XML RPC,它是基于 XML格式的数据传输协议13,能够实现跨平台(指 操作系统,如上位机为Windows系统、服务器为 Linux系统),跨语言(如在本系统中,上位机使用 .NET实现服务器系统则使用PHP实现),具有 很好的兼容性,能够适应多种情况.

3.2.4离线信息采集发送模块及离线程序信息数 据库

在实际执法的过程中,时常会发生无法访问网络的情形,在这种情况下,有必要先将提取的代码 信息及校验码先保存在上位机本地,待到能够访问 网络的场合,再一次性提交信息.

本系统将离线信息采集、发送所需要做的工作 分成3个模块:离线信息采集、离线信息发送和所 需的离线程序信息数据库.

离线信息采集模块与数据打包模块十分类似, 有相当部分代码可以复用.所不同的是数据完成打 包后,要将数据加密(使用诸如RSA算法可靠加密 方法并存入本地的离线程序信息数据库中.

离线信息发送模块与数据发送模块十分类似, 只是所传输的数据包是加过密的,在服务器端另需 执行一段解密代码,方能得到数据.

由于离线程序信息量并不大,因此本地的离线 程序信息数据库,可以使用文件系统组织的一个 XM L数据库实现,这样做既简单方便,又省去了 不少开发成本,也便于维护工作.

4.远程服务器的实现方案

电子秤校验系统服务器端用于管理电子秤芯 片的标准代码统计检验结果,并为上位机端提供基 XML - RPC接口的Web Service,整体架构使 用了基于PHPMVC框架Symfony此框架成 熟、灵活、扩展性强,适用于大型系统的开发,为服 务器端系统提供了坚实稳定的基础.

4. 1 Symfony框架的介绍

Symfony致力于减少重复代码的编写,以加速 Web应用的开发和维护.它需要以下软件的支持: 安装过 PHP5  Unix  Microsoft Window s 等操 作系统作为Web应用服务.Symfony与许多关系 型数据库集成得非常好,成本也较小.

Symfony致力于在企业背景下创建良好的应 用,同时也给予开发者强大的配置功能.从文件结 构到外部目录,几乎所有的东西都可以自定义. Symfony捆绑了一些诸如测试、调试和文档生成等 额外的工具来满足企业的开发过程.

4.2电子秤标准校验码数据库的设计

电子秤标准校验码的管理使用了 Symfony 供的基于PropelORM技术使得程序员可以使 用面向对象的方法对数据库进行访问,而不用手工 构造SQL代码,这也杜绝了 SQL注入的危险另外,Propel使用了 PHPPDO模块,可以 以非常方便地迁移数据库.例如在测试时,使用基 SQLite 3. x的数据库,而在实际运用中,只需要 修改一下数据库的配置文件,就可以用另外的数据 库管理系统,如MySQL, OracleSQL Server 取代,不需要对代码本身作任何修改.

Propel用一个XML文件来描述数据库的配 置,动态生成与数据库对象相关的一个PHP类, 就可以直接使用这个类来对数据库进行操作了 . Symfony中,标注名为ID的字段的将自动作为数 据库表的主键,同时具有AUTO — INCREMENT 的属性,名中以ID为后綴的字段名将自动作为数 据库表的外键.CREAT—AT则作为时间戳用 于保存创建记录时的时间.这些都是数据库设计的 默认约定,而在Symfony里加以简化,使得数据库 的创建简便规范.

目前,在项目中使用的表有两个

一个是CRC表,用于保存芯片的标准代码.由 于标准代码是芯片破解出的基本数据的循环冗余 校验和,所以用其英文简称CRC作为数据表名. CRC表中的COMPANYPRODUCT是电子秤 厂商的公司名和产品型号,而CHECKSUM字段 则用于表示具体的标准代码.

另一个是Check— Log表,用于记录检查芯片 的活动,统计检查的情况.其中SUBMITTED字段 保存上位机软件提交的校验和.

4. 3与上位机软件进行交互的XML - RPC接口 上位机软件用专用的读码器读取芯片基本代 码成功后,经过相关的计算,生成标准代码,然后再 将标准代码通过HTTP协议传给远程的服务器, 其中使用的便是XML-RPC接口.

之所以使用XML RPC,而不是SOAP,是因 XML -RPC更简单合理.SOAP复杂的设计并 不适合电子秤系统的交互,用XML RPC更清晰 简便.XML RPC有两个方面的内涵:一个主要 使用XML作为数据封装格式,XML作为业界标 准的数据交换格式,既规范又强大;另一个,本质上 是一个RPC系统,其中使用HTTP协议,而不是 其他的协议.这样就可以直接使用Web服务器来 完成,减少了额外服务器的配置.

5.实验分析

获取被测电子秤代码CRC值后,通过XM L使得数据库的操作与数据库引擎相互独立,从而可 RPC与远程服务器通信.经校验后,如果服务器端存储的标准代码的CRC值与当前被测电子秤的代 码一致,说明被测电子秤代码没有被修改过;否则, 说明被测电子秤代码已经被修改过.下面给出测试 一台AT89C52型电子秤时的实验过程.

在调用服务器端的校验方法时,上位机向服务 器端发送图4所示的XML数据.

经与服务器端标准代码的CRC值校验后,服务 器端发送图5中的数据到上位机.如果当前被测电 子秤中的代码没有被修改,boolean节返回1;如果被 测电子秤中的代码被修改过,boolean节返回0.

传输给服务器端的信息不完善或者有错误时, 服务器端将返回一个错误信息;图6所示的上位机 传给服务器端数据时,没有将被测电子秤的生产厂 家及产品编号等信息包含进去,服务器端返回的是 错误提示.

云网客6.jpg

6.结语

随着电子技术的不断发展,电子秤越来越广泛 地应用于生活的方方面面,给人们的生活带来了很 大的便利.但与此同时,也有不法商贩利用电子秤进行作弊,以谋取非法利益.

云网客7.jpg

本文针对改变电子秤中芯片代码的作弊行为, 提出一套检测方案,并实现一套软硬件结合的系统 原型.检测过程中,如果服务器端存储的标准代码的 CRC值与当前被测电子秤的代码相同,表明被测电 子秤芯片代码没有被修改过;否则,说明被测电子秤 代码被修改过.通过对一台AT 89C52型电子秤的实 验测试,可以验证当前测评方案的正确性.同时,验 证系统给出了良好的错误检验及提示信息.

本防作弊测评方案设计及实现时,只针对电子 秤产品的校验.希望以后的研究工作,能将该测评 方案扩展到其他计量器具的防作弊检验中,如出租 车计价器和加油机等产品.同时,本文所实现的电 子秤防作弊检测系统原型在功能上还不够完善,将 在以后的工作中完善该系统,并能将其应用到实际 防作弊测评中

 


关键词:电子秤,电子称,电子秤厂家,电子称厂家
TOP
在线咨询
联系电话

18930471609