钮佳超,李林森
(上海交通大学 网络空间安全学院,上海200240)
近年来,彩码标签作为一种新型的物联网感知技术正在快速发展[1]。彩码标签由几种可见光形成的矩形彩色色块组成,具有识别效率高、定位精确的独特优势[2],现被广泛应用于电子票证、商品防伪、身份识别等领域。其安全性能问题逐渐凸显出来,主要包括篡改攻击、空中接口攻击、结构攻击和移动终端攻击等攻击威胁[3],其中的篡改攻击对物联网系统造成极大的威胁。对此,本文提出了一种基于校验信息隐藏的彩码抗篡改攻击方法,该方法通过对彩码色块的宽度进行适量的变动来嵌入校验信息,从而识别彩码是否被篡改。最终,进行信息隐藏后的彩码标签具备了安全性高、容易提取、结构简单等优点。文中针对提出的隐藏技术进行了仿真,其结果表明本方法具有可行性,能够识别彩码标签的篡改攻击。
彩码标签是一种无芯片极简三维结构,由彩色色块排列构成,具有横向、纵向及色彩3个维度[4]。图1为彩码的结构,主要包括三部分:(a)定位色块(b)标志色块(c)数据色块。定位色块为位于(1,1)的红色色块、(1,6)的黄色色块、(3,1)的蓝色色块;起始标志为位于(1,2)的黄色色块、(1,3)的黄色色块、(1,4)的红色色块;结束标志为位于(3,4)的蓝色色块、(3,5)的蓝色色块、(3,6)的黄色色块;数据色块为位于(1,5)的蓝色色块、(2,1)的黄色色块、(2,2)的黄色色块、(2,3)的蓝色色块、(2,4)的红色色块、(2,5)的蓝色色块、(2,6)的黄色色块、(3,2)的红色色块、(3,3)的黄色色块。每一个色块为长宽比为1:1的正方形。
由于彩码标签的识别是基于平面,因此色块在允许范围内的误差仍然可以正确识别。色块允许误差主要包括两部分[5,6]:色块垂直错位允许值(∆w),以黄色色块为例,如图2所示。色块水平错位允许值(∆L),如图3所示。
图1 彩码结构
图2 垂直错位允许值
图3 水平错位允许值
由上面分析可知,允许误差范围内的彩码标签仍然被可以正确识读。本研究利用色块宽度允许误差进行隐藏信息嵌入,并且能够正确地读取打印后的彩码原始信息以及隐藏信息。
本研究中采用高效并且轻量级的校验算法进行校验,验证算法如下[7]。
颜色权值设定如下:
gR=0
gY=1
gB=2
对应checksum值计算方式如下:
其中N代表每一行中对应色块的个数,g为设定的权值,checksum为每行色块需要嵌入的隐藏信息。
依次计算每行的checksum值,确定每一行的嵌入信息。本研究以图1所示的彩码为例进行隐藏信息研究。第一行中红色色块有两个,黄色色块有3个,蓝色色块有一个,则checksum值计算如下:
第二行有两个红色色块、两个黄色色块、两个蓝色色块,checksum值计算如下:
第三行有一个红色色块、两个黄色色块,三个蓝色色块,checksum值计算如下:
每一行的校验值转化为二进制,则第一行嵌入隐藏信息为0101,第二行嵌入隐藏信息为0110,第三行嵌入隐藏信息为1000。
本步骤计算得到的校验值,将作为下一步嵌入彩码中的隐藏信息。若提取的隐藏信息与计算的校验值不一致,则判断标签已被篡改;反之,则不能确定已被篡改。
在彩码结构中,隐藏信息的区域为标志色块和数据色块,不改变定位标志的色块宽度,通过此种做法可实现盲提取隐藏信息。
2.2.1 “1”的嵌入
如果需要嵌入的信息为“1”,则将隐藏信息的色块宽度增加适量的误差∆w,色块与色块之间的黑色填充区域相应的减少∆w,因此对于彩码标签来说,宽度并没有改变。
2.2.2 “0”的嵌入
如果需要嵌入的信息为“0”,则将隐藏信息的色块宽度减少适量的误差∆w,色块与色块之间的黑色填充区域相应的增加∆w,因此对于彩码标签来说,宽度并没有改变。研究中以图1所示彩码为例,隐藏信息嵌入后的结果如图4所示:位置为(1,2)、(1,3)、(1,4),(1,5)的色块嵌入了第一行色块校验信息,位置为(2,1)、(2,2)、(2,3)、(2,4)的色块嵌入了第二行色块校验信息,位置为(3,2)、(3,3)、(3,4),(3,5)的色块嵌入了第三行色块校验信息。
图4 彩码嵌入隐藏信息
隐藏信息提取为盲检测过程,即不需要知道原始彩码标签的信息。计算变形后定位色块宽度的平均值w,作为色块的标准宽度。
其中,定位色块由左下角、左上角和右下角的三个色块构成,wi表示第i个色块的宽度,由于在使用过程中可能会有形变,因此取平均值作为标准宽度。
计算色块标准宽度w与色块实际宽度w´的差,得到每一个色块的误差值∆w。
研究中除定位色块外每个色块嵌入1位隐藏信息。为排除打印等对色块宽度的影响,研究中采用误差占标准宽度的比例作为阈值进行判断,比例计算公式如下:
其中p的范围在[0.2,0.5]判断隐藏的信息为“0”,p的范围在[-0.5,-0.2]判断隐藏的信息为“1”。
本研究提出的彩码信息隐藏技术的仿真是在visual studio[8]平台结合opencv图像识别技术进行[9]。
篡改单个色块颜色。攻击者将图4中的红色色块篡改为蓝色色块。篡改红色色块仿真结果如图5所示。结果显示,第二行中的校验值由0110改变为1000,嵌入的隐藏信息未发生改变,校验值与隐藏信息不同,彩码标签被篡改。
图5 篡改红色色块仿真结果
将嵌入不同信息的两个色块交换位置。攻击者将图4中第三行中的红色色块和黄色色块交换位置。篡改后仿真结果如图6所示。结果显示,第三行的checksum值未发生改变,但嵌入的隐藏信息改变为0100,校验值与隐藏信息不同,因此可判断彩码标签已被篡改。
图6 篡改色块颜色和嵌入信息仿真结果
将嵌入相同信息的两个色块交换位置。攻击者将图4中第二行的黄色色块与蓝色色块位置交换。篡改后仿真结果如图7所示。结果显示,由于第二行中色块的个数未发生改变,因此checksum值也未发生改变,嵌入信息未发生改变,校验值与嵌入信息相同,因此无法判断彩码标签已被篡改。
图7 篡改两个色块颜色仿真结果
本研究基于校验信息隐藏提出了一种彩码抗篡改攻击的全新技术,其一方面能够识别色块交换的结构攻击,另一方面能够识别改变色块颜色的篡改攻击,提供了一种解决彩码标签篡改攻击的新思路,提升了彩码标签的安全性。其缺点在于不能识别交换嵌入相同信息色块位置的攻击,且不能抵御复制攻击,是下一步研究的重点。