二维码的应用发展得比较早。早在20世纪80年代开始,日本和韩国就有快餐店和便利店在宣传单和优惠券上使用二维码,后来又逐步发展到将二维码作为电影和表演的入场券,观众只需在特定设备上扫码即可进入。目前通过扫描加密二维码进行登记、付费等的相关应用已经非常普遍了。
2008年北京奥运会以后,二维码在我国开始普及,电影票、登机牌、火车票等都开始出现二维码。特别是随着支付宝和微信支付的普及,扫码付款已经成为日常生活的一部分。
二维码的安全保护一直是一个研究热点。由于二维码的数据内容与制作来源难以监管,编码、译码过程完全开放,识读软件质量参差不齐,因此在缺乏统一管理规范的前提下,易造成二维码信息泄露和信息涂改等安全威胁。
针对二维码的攻击方式呈现出了多样性的特点,主要包括以下4类。
(1)诱导登录恶意网站:攻击者只需将伪造、诈骗或钓鱼等恶意网站的网址链接制作成二维码图形,即可在诱导用户扫码登录其网站后,获取用户输入的个人敏感信息、金融账号等。
(2)木马植入:攻击者将自动下载恶意软件的命令编入二维码,当用户在缺少防护措施的情况下扫描该类二维码时,用户系统就会被悄悄植入木马、蠕虫或隐匿软件,攻击者在后台就可以肆意破坏用户文件、偷窃用户信息,甚至远程控制用户、群发收费短信等。
(3)信息劫持:很多商家都提供扫码支付等在线支付手段,因此网络支付平台会根据用户订单生成二维码,以方便用户扫描支付。若攻击者劫持了商家与用户之间的通信信息,并恶意修改订单,那么将对用户和商家造成直接的经济损失。
(4)网页(Web)攻击:随着手机浏览器功能的日趋成熟,用户能够通过手机输入网站域名或提交Web表单。攻击者利用Web页面的漏洞,将非法SQL语句编入二维码,当用户使用手机扫描二维码登录Web页面时,恶意SQL语句就会自动执行(SQL注入)。若数据库防范机制脆弱,则会造成数据库被侵入,进而导致更严重的危害。
除了基于密码的安全二维码方法外,还有基于信息隐藏的二维码保护算法。该算法通过在二维码中嵌入一些秘密信息,改变二维码的形态,从而使攻击者无法获知其内容。嵌入的信息可以被正常提取以无损地恢复二维码。
基于信息隐藏的二维码保护算法将二维码图像分成若干小块,将每个小块扫描成一维序列后嵌入1 bit信息。二维码图像是一种二值图像,连续像素具有同种颜色的概率很高。因此,针对每一行,不再直接对每个位置具有的像素进行编码,而是对颜色变化的位置和从该位置开始的连续同种颜色的个数进行编码。图1所示的编码结果为:
图1 扫描后像素的编码过程
算法的具体步骤如下。
第1步:将二维码边缘部分进行填充,使得二维码图像的像素长宽都为3的倍数,把二维码分成互不重叠的3×3小块。
第2步:将每个3×3小块按照图2所示从b1到b9的一顺序扫描成维序列,并对该序列进行行程编码,每个小块编码为
图2 像素值扫描顺序
第3步:选出第一个行程最长的编码,将行程为奇数的表示为嵌入1,行程为偶数的表示为嵌入0。如果行程奇偶性与嵌入信息不符,则将行程值加1。
第4步:根据该图像块是否被修改过,对1 像素进行奇偶校验,1 像素为偶数表示该块未被修改过,1像素为奇数表示该块被修改过,如须修改,则改变b9像素的值。
第5步:重复上述过程,直到所有分块均被修改。
上述过程中,由于行程值为9的行程编码修改后将越界,故其不作为嵌入块。同时,最长行程包含b9像素值的编码,由于其长度可能会发生变化,故其也不作为嵌入块。
责编AJX
责编AJX
-
物联网
+关注
关注
2909文章
44567浏览量
372809 -
二维码
+关注
关注
7文章
424浏览量
26452 -
隐私保护
+关注
关注
0文章
298浏览量
16440
发布评论请先 登录
相关推荐
评论