标题 | 手机支付的安全研究 |
范文 | 叶杰峰 张永晟 张涵 刘颖 摘要:新的手机支付方式的出现,改变了以往支付的格局并以井喷之势得到发展。随后,保证手机支付安全也就成了进一步发展的关键。文中从智能手机物理机制漏洞、智能手机应用程序漏洞、智能手机支付其他方面的威胁三个方面阐述手机支付潜在的威胁,并提出了利用技术手段、提高用户手机安全意识、统一标准,建立信用黑名单机制、完善相关法律制度等相应的解决措施,为手机支付的安全保驾护航。 关键词:手机支付;软硬件漏洞;无线安全;法律法规 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)19-0260-03 随着电子商务的成长,现有现金支付体系已远远满足不了电子商务成长的需求,各大金融机构开始进行网上银行等多种支付方式尝试,而手机支付由于其方便快捷的支付而受到广大用户的青睐,发展迅速。然而,在这简单的背后,其安全性也渐渐走进人们的视野,,因此我们很有必要以智能手机支付为中心分析其安全问题,并通过实际可行的方案提高手机支付的安全性。 1 智能手机支付发展的近况 自2011起,智能手机得到普及并伴随着3G网络的实现,大量应用软件从电脑端转向了手机端,手机购物也愈发得到发展。某公司推出的“光棍节”和“双12”[1]缔造惊人业绩的背后,手机购物锁占的比重越来越大,平均每七个用户在用电脑访问的同时就有一个手机用户在使用其公司推出的APP进行购物的相关操作,并渐渐地改变着人们的生活习惯,是人们的碎片时间得到了填补,人们对生活更加满意更加充满兴趣。用户只需要按其步骤进行简单的操作便可得到个人专属的应用体验,实现购物、缴费、投资、还款、转账,手机充值、出行旅游与计划安排等远程非面对面支付功能。不仅如此,它的服务更加全面,技术支持安全可靠,很好地解决了传统面对面支付的费力与繁琐。 2 智能手机支付存在的威胁 目前我国的移动支付产业还处于上升期,安全性是手机支付最核心的问题,大部分手机还没有安全软件的全方位保护,这为黑客发挥技术又是提供了更为广阔的空间。 2.1 智能手机物理机制漏洞 许多智能手机设置了原厂安装的九宫格锁,以及安装QQ、微信、支付宝等APP软件,可以通过技术手段绕过安全防护直接进入手机界面。打开手机屏幕后,要求绘制解锁图案才能打开手机。该图案由九个点组成,必须同时满足三个条件才能设置或者解锁:至少连接的点数为四、最大连接的点数为九、设置的点互斥即不重复。 解锁屏幕锁的2种方式: (1)把手机连接至电脑并安装相应的驱动程序,同时在网上下载一个名叫“刷机大师”[2]的PC端软件。因为手机未经ROOT,所以必须用刷机大师对手机进行获取最高权限即ROOT,重启以后再点击“清除锁屏密码”。之后手机屏幕锁早已经消失,焕之的是平常一样的屏幕锁,滑动即可进入主页面。 该PC软件最初的初衷是解决不会安装应用软件,为求方便、快捷忘记手机屏幕锁的一些人,但如果被特定的人利用,相册里面的含有个人信息的照片、短信、联系人特别是有亲属关系的人(通常会被备注“爸爸”“妈妈”),QQ、微信、支付宝等安全性的后果可想而知。 (2)根据手机屏幕九宫格的特点,可以明确图案的总数:4个点为9×8×7×6=3024,5个为15120,6个为60480,7个为181440,8个、9个均为36288,则总数为485824个。这个数字相对于现在的破解技术来说复杂度并不高,破解相当容易,只要一个字典进行暴力破解即可,或者直接用命令行执行RM[3]。不过为了让用户明白具体的运行机制,我们对其过程进行分析实验。 打开九宫格设置图案,随意画一个九宫格图案。虽然手机上显示给我们的是简单的图案,可智能手机已经把每个点进行转化组成一串数字并通过某种加密方式进行了存储,保存到手机系统文件夹中,即:手势图案→数字转化加密→密文存储。该系统对每个点进行了如下定义:第一个点为00,从左往右依次为01、02直至08,如图1所示。所以我们随意画的九宫格图案所构成的数字串000102050807060304。由于加密算法SHA1是不可逆的,我们只能用测试的方法进行对比求证,文本内容为000102050807060304 文本长度为18 字节。该文本的MD5为E73ED4F6CA7C3274774BFFA3C0B2F2AC,SHA1为03F0 65F391392340D3E3A45C5EF80B90B0FDEC7D。计算好密文后系统会将密文自动保存在手机的gesture,key文件中,我们利用控制台命令导出到PC端。经测试用十六制编辑器[4]打开可以正确显示密文,否则会出现乱码。与gesture,key文件中的密文进行对照03F065F391392340D3E3A45C5EF80B90B0FDEC 7D。其结果一样。 通过实验解锁手机屏幕的方式,我们已经成功地进入了手机的主界面,便可随心所欲的翻看相册、通话记录、联系人、短信、QQ、微信、支付宝,获取有价值的信息。 图1 各点的编号和所画的图案 2.2 智能手机应用程序漏洞 对手机某支付软件进行分析试验,通过修改数据库进入该支付软件的主界面,登录自己的账户及设置相应的手机密码,根据智能手机的屏幕锁的思路对其进行分析,对次数限制进行突破,用某手机助手进行文件定位。根据其文件结构及文件命名的方式和特点,lipayclient.adb可能保存有我们设置的密码,导出本地后用SQLite Expert Personal 3打开,发现userinfo保存了用户名、手势密码、手机号、输入错误次数等信息[5],显然这些都是被加密了,如图2。
图2 加密后的userinfo 我们用ApkIDE[6]对其APP进行apk解包分析,然后搜索gestureErrorNum,结果如图3所示。 图3 搜索关键字gestureErrorNum 经过分析定位,在C:\Users\凯迪\Desktop\手机安全ApkIDE3\ApkIDE\Work\com.eg. android.AlipayGphone\smali\com\alipay\mobile\framework\service\ext\security\dao下找到UserInfoDao.smali。截取了部分代码: invoke-virtual {v1, v0} ... set getGestureErrorNum (Ljava/lang/String;)V :cond_1 const-string/jumbo v0, "gestureSkip" invoke-interface {v2, v0}, Landroid/database/Cursor;-> getGestureErrorNum (Ljava/lang/String;)I move-result v0 const/4 p3, -0x1 invoke-virtual {v1, v0}, Lcom/alipay/ UserInfo;->setGestureSkip(Z)V :cond_4 invoke-interface {v2, v0}, Landroid/database/Cursor;-> getGestureErrorNum Ljava/lang/String;)I const/4 v3, -0x1 if-eq v0, v3, :cond_5 经过对比分析我们把UserInfoDao.smali文件中的p3的值改成0.保存修改文件然后进行打包安装,随意输入各种手势的密码,该支付APP始终显示“密码错了,还可以输入5次”的字样。至此,手势密码中错误限制已经被我们解除了,可以进行字典破解的方式进行获取手势密码。但为了更好地赢得打开界面的时间,我们进行gesturePwd的修改。在数据库中存在着用手势密码的存储段,搜索gesturePwd函数,经过一一排除,最终定位了e.smali的文件,在文件的69行有段关于a函数的跳转.由于代码比较长,把关键内容进行了注释: #取得UserInfo内容 #在getGesturePwd函数取得手势密码 #StringBuilder得到明文手势密码的值 #在 getUserId函数上用DES进行加密获取user id #StringBuilder取得userid #寄存器v0取得字符串,该字符串取得输入手势的密码+加密后的userid #调用sha1加密算法并得出hash值 #在getGesturePwd函数上取得手势密码 #比对输入的密码和正确的密码 ... move-result v0 if-eqz v0, :cond_1 看到最后2行,这个便是跳转的关键,若返回false便会跳转到cond_1。该cond_1的主要作用便是获取当前输入的错误次数,然后再加上1,之后再次调用函数进行重新记录。如果2个字符串相同,错误次数便被记录为0。此时在if-eqz v0, :cond_1前加patch v0保存修改编译打包,然后随意输入手势密码即可进入主界面。如果该手机开启了小额免密支付[7],这个资金已经被“消费”了。 2.3 智能手机支付其他方面的威胁 2.3.1 用户的行为习惯 用户使用手机的行为习惯很大程度地决定手机的安全机能,如果用手机经常购物,像财付通、支付宝、微信支付[8]等业务或者控件肯定处于开通状态,并绑定了手机号、银行卡、身份证信息,同时为了方便通常都是默认保存密码、默认自动登录,或把自己的身份证信息、银行开信息拍成照片保存在手机里,更有甚者连屏幕的九宫格锁都不进行设置,如此这些行为为手机支付的安全埋下了隐患,万一手机丢失这将是一种潜在的俄威胁,无形的漏洞。 2.3.2 无线网络存在不安定因素 手机支付常使用的是WAP标准和WLAN的802.11标准,WAP中的WTLS协议仅仅加密有WAP发送到WAP网关数据,数据经过SSL传至网关上有短暂时间处于明文状态[9]。 3 手机支付安全应采取的对策 3.1 利用技术手段提高安全性 手机用户应该安装手机安全软件,保护手机的安全性。手机安全软件是一套软件体系,它应具有病毒查杀、骚扰拦截、软件权限管理、手机防盗及安全防护功能,用户流量监控、空间清理、体检加速、软件管理等高端智能化功能也是现在绝大部分手机安全软件的功能。 3.2 提高用户手机安全意识 手机支付安全最大的威胁来自于用户,手机用户应加强支付安全方面的意识,对重要提醒信息应该认真阅读,切忌一键式“下一步”。同时对每个应用程序设置单独的安全性好的密码,切忌“密码一卡通”。用户可以根据应用软件的性质、结构、特征、版本号来设置密码,即一个程序一个密码。手机用户的支付要有迹可循,如果发生了支付页面跳转,中间的流程有可能无法掌握,全额赔付有待商榷[10]。
3.3 统一标准,建立信用黑名单机制 国家的相关部门应统一手机支付技术标准,划定安全技术的实施范围,督促运营商完善相关设施。建立健全支付信用等级制度和黑名单时效制度。消除信用的灰色层面,清理信用死角。 3.4 完善相关法律制度 我国虽有几部关于电子支付范畴的法律法规,如《非金融机构支付管理办法》、《电子支付指引》[11],这些法律的立法层次不高,法律体系不健全,执行起来有难度等问题,所以我国应该从横向和纵向建立相关的法律制度,为手机支付提供依靠力与执行力。 智能手机支付的优势明显,市场前景广阔,但由于手机支付的安全性制约着发展。只有手机用户的安全意识得到提高,用户养成合理安全的操作习惯,国家建立统一的手机支付技术标准和监管体系,手机支付将会迎来一个春天,为我国这个产业提供崭新的发展平台,为我国的经济长期发展做出应有的贡献。 参考文献: [1] 孟健,陈少芬.基于NFC手机支付的应用研究[J].2008(8):70-75. [2] 贾凡,佟鑫.NFC手机支付系统的安全威胁建模[J].清华大学学报,2012,52(10):1460-1464. [3] 刘亲亲,包阳阳.电子支付安全研究述评[J].东方企业文化,2010(18):229-229. [4] 杜文才,顾剑,周晓谊.解决电子商务中大众支付的安全问题关键方案[J].电子科技大学学 报,2011,36(S1): 34-36. [5] 周建华.浅谈手机移动支付中的安全问题[J].吉林工商学院学报,2012,28(5):102-105. [6] 王永刚.浅析中国手机支付业务将要面对的挑战[J].硅谷,2010(17):37-38. [7] 夏志琼,吴新民.如何保障移动支付的安全[J].中国信用卡,2012(8):62-64. [8] 十立.手机丢了网上钱包怎么保[J].大众科学,2014(4):62-63. [9] 王武.手机移动支付及应用探讨[J].电信技术,2012(S1)196-198. [10] 夏志琼,吴新民.移动支付安全拷问 尽快建立标准和产品[J].新经济,2013(7):78-79. [11] 张天白,张明天.移动支付安全业务系统设计方案[J].信息技术与标准化,2011(4):25-28. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。