微信公众号:计算机与网络安全ID:计算机网络二维码的应用发展较早。早在20世纪80年代,日韩的快餐店和便利店就开始在传单和优惠券上使用二维码,后来逐渐发展到用二维码作为电影和演出的门票。您需要扫描特定设备上的代码才能进入。目前,扫描加密二维码注册、支付等相关应用非常普遍。2008年北京奥运会后,二维码在我国开始流行,二维码开始出现在电影票、登机牌、火车票上。尤其是随着支付宝和微信支付的普及,扫码支付已经成为日常生活的一部分。二维码的安全保护一直是研究热点。由于二维码的数据内容和制作来源难以监管,编码和解码过程完全公开,阅读软件质量参差不齐。因此,在没有统一管理标准的情况下,很容易造成信息泄露、二维码信息篡改等安全威胁。对二维码的攻击具有多样性的特点,主要包括以下四类。(1)诱导登录恶意网站:攻击者只需将伪造、欺诈、钓鱼等恶意网站的URL链接制作成二维码图形,诱导用户扫码登录后即可获取用户输入的敏感个人信息登录其网站、金融账号等。(2)木马植入:攻击者编写命令自动将恶意软件下载到二维码中。当用户在没有防护措施的情况下扫描此类二维码时,用户系统就会被悄悄植入木马和蠕虫。或者隐藏软件,攻击者可以在后台肆意破坏用户文件,窃取用户信息,甚至远程控制用户,发送付费短信等。(3)信息劫持:很多商户提供扫码支付等在线支付方式,因此在线支付平台会根据用户的订单生成二维码,方便用户扫码支付。如果攻击者劫持商户与用户的通信信息,恶意修改订单,将给用户和商户造成直接的经济损失。(4)网页(Web)攻击:随着手机浏览器功能的日益成熟,用户可以通过手机输入网站域名或提交Web表单。攻击者利用网页中的漏洞将非法的SQL语句编译成二维码。当用户使用手机扫描二维码登录网页时,会自动执行恶意SQL语句(SQL注入)。如果数据库防御机制薄弱,就会导致数据库被入侵,造成更严重的危害。除了基于密码的安全二维码方法外,还有基于信息隐藏的二维码保护算法。该算法通过在二维码中嵌入一些秘密信息来改变二维码的形状,使攻击者无法获知其内容。可以正常提取嵌入信息,无损还原二维码。基于信息隐藏的二维码保护算法将二维码图像分成若干个小块,将每个小块扫描成一维序列并嵌入1比特信息。QR码图像是二值图像,连续像素点颜色相同的概率很高。因此,对于每一行,不是直接编码每个位置的像素,而是编码颜色变化的位置和从该位置开始的连续相同颜色的数量。编码结果如图1所示:图1扫描像素编码处理算法的具体步骤如下。第一步:填充二维码的边缘,使二维码图像的像素长宽为3的倍数,将二维码分成3×3个互不重叠的小块。步骤2:将每个3×3的小块扫描成图2中b1到b9的一维序列,并对序列进行游程编码,将每个小块编码为图2中的像素值扫描顺序Step3:选择运行时间最长的第一个编码,将运行次数为奇数的代码表示为embedding1,将运行次数为偶数的代码表示为embedding0。如果运行奇偶性与嵌入信息不匹配,运行值加1。第四步:根据图像块是否被修改,对1个像素点进行奇偶校验。如果1个像素是偶数,则表示该块未被修改。如果1个像素是奇数,则表示该块已被修改。如果需要修改,更改b9像素的值。第五步:重复上述过程,直到修改完所有块。上述过程中,由于长度值为9的长度码修改后会出界,所以不作为嵌入块使用。同时,longestrun包含了b9像素值的编码,因为它的长度可能会发生变化,所以不作为embeddedblock使用。
