您的位置:首页 > 移动开发 > Android开发

Android基于金融类应用程序的破解以及防护

2016-04-17 09:26 363 查看
最近在研究APP的安全问题,参考了极客学院的一个视频以及部分博友的文章后,也参考了建设银行客户端,有心记录一些心得。

安全这个词,我相信每一个中国人都非常熟悉,从小爸爸妈妈爷爷奶奶都会跟我们说,在外面玩要注意安全,早点回来、后来上了学,老师也在不断的提醒我们不要玩水,防寒保暖之类的,所以安全第一,并不是一句口号,现在互联网金融日益呈现出蓬勃发展的势头,也越来越多的人愿意把自己的积蓄拿出来投资到一些互联网金融的产品中去,在发展的同时,一些资金流失、平台被黑的的消息也已经见怪不怪,那么是否意味着互联网金融的风险要比线下金融要危险呢?互联网金融终端的安全威胁又是哪些?

那么,在接下来,我将会阐述互联网金融的安全威胁在哪。从互联网出现开始,一大批的数据安全问题就悄然出现,出现了众多的问题,无论是对于平台还是用户而言,都会造成相当的财产损失,所以,不管是为了维护平台自己的财产,还是维护用户的财产,都毫无理由的应该去修复这个漏洞。

造成用户财产损失的原因常见的是登录密码流失和个人信息流失,可能很多人觉得,我的密码从来只有我一个人知道,怎么还是会被窃取呢,那么问题来了,黑客是怎么知道用户密码的?一般情况下,有两种可能,第一种是登录的界面被劫持,第二种是登录所上传的数据被劫持。

第一种可能有的同学不太明白,什么是界面劫持啊,别急,且看我慢慢道来,界面劫持 ,顾名思义,界面被黑客劫持了,那么界面怎么会被劫持呢?是怎么被劫持的呢?我相信很多人都知道钓鱼网站,黑客做一个类似大平台的网页,然后用户把自己的信息填入进去,起到了一个盗取信息的结果,那么在Android程序中,也是这样的,他会在APP的登录注册界面的外面,披上一层透明的界面,当我们填写信息的时候,实际上我们是把数据填入了黑客的界面里面,这就是界面劫持。

第二种是截取了用户提交的数据,这种劫持很容易理解,暂时就不多说了。

刚才讲的是用户信息的安全威胁,接下来,就讲讲APK本身的安全威胁。

相信许多人都或多或少的尝试着去对别人的apk进行反编译,然后查看别人的代码是怎么写的,如果别人的代码没有 一定的防护,那被反编译是分分钟的事。其实还好,我们只是反编译看看别人的代码,要是被黑客利用了,他反编译后,加入一些恶意代码,再重新打包上传到应用市场,那给平台带来的可不仅仅是财产的损失,更是声誉的损失。由此,必须对别人的二次打包有所防备。

以上,我对App安全性的威胁进行了主要的阐述,所谓知己知彼,百战不殆,现在我们已经知道黑客破解APP的几个手段了,接下来,我会针对这些手段逐一列出对策

第一个应用被劫持的对策

App主动查询自己是否处于应用栈的最顶层,假如不在,那我们对他进行一些提示。或者弹框提示等等。输入的密码被获取,可以采用自定义密码键盘,最好是乱序的键盘。重写输入框,不参与任何的字符串逻辑。数据交互由native层处理

第二个数据被劫持的对策

我们可以对APP提交数据的方式进行一个加密,另外也可以采用一些标识类的密码进行守护

第三个应用被二次打包的对策

通过校验应用的完整性和签名的完整性,针对MD5、SHAL等进行判断,签名校验是判断应用签名是否为正版的签名,否则就进行一个提示或者退出。(这个验证最好写在Native层)

以上就是本篇文章的全部内容,只是大概的谈谈,具体的细节,以后会慢慢列出,敬请期待

文章若有不妥之处,可以批评指出,不胜感激。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: