关键词:门限方案,条形码保密,条形码容错,条形码认证与防伪造。
经历过初期两个小项目的探索,我们项目团队积累了一定的项目研究经验,在老师和16级学长的帮助下,我们把研究方向转到了门限方案的实际应用上。结合市面上用9张合并的条形码提高条形码的容错能力的操作,我们在保留一定的容错能力的基础上提高条形码的安全性,具体而言就是条形码的保密性和容错能力。
背景
依托于信息技术和电子商务的发展,条码技术,作为当今十分流行的一种自动识别与数据采集技术,在商品流通领域被广泛应用。但是在身份识别等应用场景下,传统的条形码不仅易被他人伪造,而且容易导致信息泄露;在恶劣的生产环境中,传统的条形码极有可能因污染损坏导致误读甚至无法识别;此外,常有因传统条形码被覆盖、遮挡或内装物品的安放而造成的条形码弯曲,扫描器无法识别的情况。因此,传统条形码的保密性显得不足,可靠性受到考验。人们急需冗余度高且具有保密能力的条形码,以及在此基础上的自动化扫码系统的大规模使用。
主要问题
目前传统的一维条形码的使用范围依然很广。 一维条形码的应用可以提高信息录入的速度,减少差错率,而且标签简单实用易于制作,成本几乎为零。但是一维码的设计从未考虑到保密性和防伪造的问题,以至于所有的消息用手机一扫就明文可见,并且输入同样的明文就可以产生相同的条形码。而且,对于所有条形码而言,冗余度低,破损后无法识别的问题普遍存在。
同时,几乎所有的条形码都面临一个问题——冗余度为0,破损或污染以后即无法识别。
解决方案
针对传统一维条形码中存在的冗余度的问题,一些企业把条码重复拼接,以提高条形码的冗余度。这种做法的确大大的提高了条形码的冗余度和可靠性,值得肯定。但是在条码无一例外的重复的同时,我们是否能做一件手到拈来的事情呢?我们可以通过在重复的条形码中加入一些门限方案以及验证条形码,在保证条码可靠性的基础上,顺势达到保密性和防伪造的作用。
为解决以上问题,本团队结合 shamir 门限方案与信息隐藏技术,在保障信息安全的基础上提出了基于门限方案的条形码容错与保密技术,旨在解决破损条形码无法扫描识别与传统条形码保密性差、易被伪造等信息安全问题,并且设计制作了一整套生成高保密新型条形码、读码的客户端软件——SaferBar。
实现原理
本方案依托操作简易的手机APP——SaferBar,可以根据客户需求将传统条形码转换成不同冗余度的门限条形码,极大地提高了条形码的容错率与保密性。另外,我们在原有明文的基础上拼接条形码的认证密钥,以达到防止伪造的效果。而且,基于图像识别技术,它同时采集处理多个条形码信息,并同时识别含多个子条形码的新型条形码,提高扫码效率,实现传统条形码与新型条形码的无缝衔接,极大程度地提高了条形码的容错率,防止了信息泄露和信息伪造,保障了商品财产及信息安全。具体流程如下:
生成认证密钥
APP为每一类商品都设置一个随机生成的认证密钥key,并上传存储在数据库中。通过字符串拼接在原有明文的基础上拼接条形码的认证密钥,以达到防止伪造的效果。解密的时候需要验证key的值是否正确,只有当key值正确时才连接数据库获取商品信息。
编码与加密
编码环节需要从多方面考虑来确定,如实际的信息量、所选条码的码数限制, 所载信息的可靠性与冗余量的相互取舍关系等。
在条形码选择上,采用 CODE 39 码。这是一种双向扫描的非定长码,即条形码字符个数不是固定的,编码信息可以是数字也可以是大写英文字母码并自带校验码。条形码由九条不同的排列线条编码而得。基于信息冗余提高数据可靠性的思想,每段条形码的最后一位均附带上此条形码的校验位。
生成门限条形码时,初始密钥x为原始的条形码编号。子密钥公式为:
f (x)=m+a1x+a2x2+…+ak-1xk-1 mod p
以(5,9)型条形码为例:
由(5,9)门限方案可知要将条形码分割成由九块条形码组成的门限条形码,n=9。
扫描时只要扫描出5块完整内容就可能得到完整的数据,即门限值k=5。
把编码 x 代入,依次可算出8个门限值yi=f(i),i=1-9;利用条形码换算公式,将 y1-y9 换算成对应的条形码,形成由九部分组成的门限条形码。如图:
译码环节
机器扫描门限条形码的过程中,将未被损坏的部分子条形码识别出来,将这些门限值yi 代入拉格朗日,根据Shamir 的门限秘密共享方案的性质可知,最终一定能得出拼接后的条形码 x,其中包括商品编号以及认证密钥。
服务器验证与商品信息显示
在拼接后的条形码中获取认证密钥,发送到后端进行校验。服务器中数据库存储格式如下:
若校验成功,则连接数据库获取商品信息。
项目的意义
项目创新性的提出了基于门限方案的条形码保密及容错方案,推出了一款集保密,防伪造,防污损等功能于一体的新型一维条形码。有以下几项重大意义:
1.解决了一维条形码没有任何保密性和冗余度的现状。
2.使得一维条形码可以在身份认证等应用场景流通。
3.只需其中若干子条形码完整,即可可靠识别出原条形码的信息。
4.可以一次性识别出多条条形码信息,即可一次识别出门限条形码,更加快捷。
5.推广价值。本方案不仅限于条形码,还可用于其他相似领域,如二维码。
- 文章链接: https://life-extension.github.io/2020/04/30/基于门限方案的条形码保密及容错技术/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
-
ACTF2020密码学部分writeup
六月 5日, 2020
编写的项目文件请参考项目链接。同时欢迎大家访问ACTF2020的所有赛题。喜欢的话请多多资瓷一下,给我们实验室的项目加个Star或者Fork,谢谢。 为了保护服务器的同时不给选手带来更多困难,密码学部分的交互题开了pow算力检测,我也...
-
通过python脚本自动插入汇编反调试代码
五月 20日, 2020
研究背景在之前OLLVM项目的研究过程中,我们发现反调试技术对反混淆脚本有一定的干扰作用,如果可以在OLLVM的中间代码中自动化插入反调试代码,那么就可以给OLLVM的代码混淆增加一层保障。 方案分析探讨多种方案以后,我认为最适合在汇...
-
2020新年原创脚本-其中的小把戏你清楚吗
四月 26日, 2020
关键词:随机数素数生成,新年祝福小程序。 脚本创作这是我在大年三十写的一个程序,当时我正准备去伯克利交流,但由于疫情的缘故,出国变数增大,所以我就打算通过随机数“未卜先知”。以下就是我的脚本: 12345678910111213141...
-
基于CRT的物流信息安全处理方案
四月 15日, 2020
关键词:中国剩余定理,密钥分发技术,隐私保护。 引言在2018年11月份的时候,段老师在密码学课上讲到了密钥分发协议,我当时就觉得这个协议很有意思也很有应用前景。后来老师还很主动地分享了一下它的idea,其中一部分就是有关物流单上的信...
-
基于CRT的新型群文件共享系统
四月 13日, 2020
关键词:隐私保护,权限管理,身份认证,中国剩余定理,密钥分发,密钥更新。 这个项目的是在2019年寒假期间进行的,4月份在中南大学信息安全作品赛答辩,但是由于功能只实现了主体部分,加之我在台上比较胆怯紧张,所以只获得团队三等奖,但是当...
-
安卓反混淆软件探索-deobf
三月 19日, 2020
关键词:代码混淆,代码反混淆及其原理,代码反混淆软件测试与性能对比。 前言我们的大创项目其实是分两方面进行的,一方面,我们从代码混淆的角度比较各种软件对安卓程序的加固能力;另一方面,我们着重针对OLLVM进行反混淆测试。OLLVM集成...
-
记一次安卓代码加固软件的测试过程
三月 13日, 2020
关键词:代码加固,软件测试,原理分析,过程分析。 在大创项目的实践中,我们对市面上的一些安卓代码加固软件进行了采集,经过搜集,发现了几类代码加固方法并分组进行研究。我发现很多代码加固软件都是对java字节码进行混淆与加固,另外一些则选...
-
OLLVM代码加固机制分析
二月 24日, 2020
我们通过自己编写测试代码,再用OLLVM的不同指令进行加固,并逆向查看加固效果,加深对代码加固机理的了解。OLLVM目前提供的功能包括控制流平坦化(fla指令),指令替代(sub指令),代码虚拟化(bcf指令)以及虚假控制流(obf指...
-
对音频缓存加密的探讨
二月 17日, 2020
关键词:缓存解密,批量自动执行脚本,版权保护相关建议。 前段时间,某音乐被爆其缓存文件只使用了简单的异或加密,且容易得到加密密钥为0xa3。原文链接点击这里。以下是我的延伸探讨。 1.对音频缓存的批量解密攻击抱着好奇的心理,我把手机...