二维码自普及以来,无论是从它的便捷性,还是其安全问题,一直都是公众关注的焦点问题。“码”时代来势迅猛,不可阻挡,似乎一夜之间,二维码即遍布各电商平台、商场、网站、杂志、甚至车票上,二维码迅速成为移动互联网时代的新宠儿。
与此同时,借助二维码进行传播的手机病毒、恶意程序也日益增加,由于二维码技术已经相对成熟,普通用户即可通过网上的二维码转换软件,任意合成二维码,并且从外观上并不能判断其安全性,这就更加方便了黑客针对二维码进行各种非法操作,用户一旦扫描了嵌入病毒链接的二维码,其个人信息、银行账号、密码等就可能完全暴露在黑客面前,酿成的后果可想而知。而随着2014年三月份央行紧急叫停二维码支付,二维码的安全问题被推向高潮。
下面结合笔者对几个金融类手机客户端中关于二维码功能的安全性分析,来看一下二维码支付存在的典型安全漏洞。
(一)某著名股份制银行二维码漏洞
该银行中关于二维码的功能有两处,一处是扫一扫功能,另一处是我要收款中的二维码功能。如下图所示(左:扫一扫功能;右:我要收款功能)
下面从这两方面对二维码安全展开分析:
1、扫码分析:
扫码逻辑暴露后,扫码劫持变得非常简单,黑客可以在用户进行扫描付款的客户端中插入恶意代码,进行交易数据篡改,使本该流向商户的资金流向黑客。扫码攻击如下图所示:
2、我要收款
虽然该银行对收款的二维码存储的信息进行了加密,但还是不够安全,仍然存在一定的安全隐患,黑客可以利用二维码的特性和该APK的其他漏洞,进行一些非法的活动,下图模拟了该应用可能存在的安全隐患。
(二)支付宝付款码
支付宝钱包做了两种付款码,条形码和二维码,下面对二维码的生成逻辑进行了简单的分析。
支付宝付款码存在的安全漏洞如下所示:
图1 二维码生成攻击
图2 扫码攻击
(三)某大行扫码威胁
该银行手机客户端获取二维码有两种方式,一是从手机相册中获取二维码图片;二是进行扫码获取二维码信息。
该银行手机客户端扫码安全漏洞如下图所示:
二维码作为登录凭证、流量入口、身份凭证、支付凭证等,在日常生活中的应用比比皆是,其漏洞问题也远不止以上阐述的这些,而这些安全问题一天不得到解决,我们的隐私安全、财产安全等就一天得不到可靠保证,随时都要担心自己的账号是否“被”登录?手机银行绑定的银行卡是否被黑客攻击等等。
因此,如何为二维码安全打造一套可靠的解决方案,让二维码支付在安全的环境下恢复使用,是当下亟待解决的重要问题。