社交类APP的通讯安全测试
2016-06-23张玉梅
张玉梅
(武警天津市总队 天津300011)
社交类APP的通讯安全测试
张玉梅
(武警天津市总队 天津300011)
尝试给出有关即时通讯类APP通讯安全方面的一个测试方法,并按照该测试方法对1个较有代表性的社交类通讯软件——微信进行测试,结合测试结果对相关社交类通讯软件的通讯安全进行了讨论。使用等价划分法、组合测试以及错误推测法等应用于PC端软件测试的理论方法,对社交类通讯APP消息传递安全的保护是否能满足基本要求进行了验证。
通讯 社交 APP 测试 安全
1 背 景
1.1 研究背景及意义
在智能手机高度普及的今天,社交类通讯APP随着智能机的普及渗透到人们生活与工作的方方面面,很多大中型企业的职员也更倾向于使用社交软件就工作内容进行通讯与交流,而通讯时有关通讯内容的安全性问题却很少得到大多数人的关注。
由于国内移动端通讯运营商对网络流量的收费不菲,在很多情况下,当外界存在公共无线网络时,多数人都倾向于连接公共网络上网以节省流量费用。尽管通过近些年媒体的相关报道与知识普及,我们已经知道在使用公共网络进行上网时,容易遇到钓鱼网站或者网银被盗等问题,大多数用户也已经了解在使用公众网络进行上网时尽量不输入重要的账户密码。但同时,在多数人连接公共网络使用社交类APP进行通讯的时候,如果该社交类APP并没有对相关消息进行很好地加密,一旦不法分子对公共网络进行网络监听,那么用户的个人隐私、重要的商业机密甚至是国家机密就有可能被窃取,后果不堪设想。因此,社交类APP的通讯安全显得格外重要。
另一方面,在软件测试领域中,对PC端的软件进行测试的方法以及理论已经相当成熟,而针对移动端的软件测试方法以及理论并没有一个完善的体系。本文通过对特定场景下使用社交类APP的通讯安全情况进行了测试,在没有源码即无法进行白盒测试时,基于等价类划分测试等不同的测试思想,并采取黑盒测试方法与监听抓包相结合的方式,得出了对移动端APP通讯安全比较方便有效的一款测试方法。
1.2 相关网络知识介绍
无线局域网由无线接入点、无线网卡、通讯设备和相关拓扑设备组成。有线网络先连接到无线接入点,所有通讯设备收发网络报文都经由自己的无线网卡收发数据,无线接入点接收、发送设备需要收发的网络报文,再通过有线网络实现与因特网的交互。
在这个过程中,无线数据的收发并非是精准的点到点传播,而是局限在一个范围之内的信号传输,所以在这个无线范围内的任何用户都可以接收其他用户发送的无线信号,通过特定软件对报文进行分析,通过对数据包的解析完成监听。
大部分社交通讯类APP使用的是HTTP协议来传输数据,在测试当中发现微信也是使用HTTP协议来进行收发数据,而大多数抓包监听软件支持对该协议的分析,所以可以利用抓包监听软件对APP的数据流进行监听与分析。
1.3 微信软件介绍
微信是腾讯公司于2011年推出的一款智能机即时通讯类软件,2014年微信月活跃账户突破4亿。其拥有的发送即时文字、语音、表情消息,传递图片,推送网页消息,语音通话,视频通话,朋友圈等核心功能让广大的客户群对其产生了强大的依赖性,带动了微商、公众号、微信电影等相关模块的发展,已经完美地渗透到人们生活的各个方面。微信软件作为推广力度最大、使用人数最多的即时通讯类软件,是本次测试的首选实验对象。本次测试使用微信6.2.2版本进行测试。
1.4 抓包软件介绍
Fiddle为一款方便快捷的HTTP调试软件,同时也可以作为手机通讯的代理来抓取手机通讯报文进行分析。在抓取微信的通讯报文时,首先将微信软件所在的手机设置Fiddle软件为其通讯代理,即所有微信的通讯报文都要经过Fiddle的代理,通过Fiddle所在的电脑进行通讯。可以使用Fiddle自带的筛选功能通过对服务器地址的筛选来选择需要的通讯报文,同时使用微信进行重复单一的操作,再从微信的通讯报文中找到操作相应的一系列报文,通过观察报文是否进行加密来判断微信是否对其进行了基本的通讯安全保护。
1.5 智能机系统介绍
在这里本次测试使用了用户群比较广泛、具有一定代表性的iPhone作为测试用机,iOS,8.1.2作为测试机的操作系统。iOS的流畅性较好,且其权限机制可以使系统上的软件在最大程度上发挥自己功能的同时受到来自系统权限的限制,让用户的隐私与手机安全性得到良好的保障。这也是很多用户更倾向于选择苹果手机而不是安卓手机的主要原因之一。在本测试中选择以流畅度更好的iOS系统作为实验系统。
1.6 代理端系统介绍
在测试过程中,使用了Win,7操作系统作为Fiddle代理端所在的操作系统。作为替代Windows XP的操作系统,Win,7系统以其更好的效率和更简单易用的功能按钮得到了更多用户的青睐,在逐渐变得更加稳定成熟的同时,Win,7已实现逾50%,的使用率,从而成为最受欢迎的操作系统。本次测试使用稳定性更好的Win,7系统作为实验平台来保证测试的顺利完成。
2 测试过程及结果
首先,在测试机中安装微信软件,登陆常用的微信账号,设置Fiddle软件作为测试机的通讯代理。测试过程中,对微信进行单一的重复操作,例如传递各种形式的消息、浏览公众号文章、刷新朋友圈等,确保通讯报文中存在相应操作的通讯报文,并同时使用Fiddle查看通讯服务器以及报文格式、内容等信息,对通讯报文进行筛选以得出相应的通讯报文,测试部分如下:
2.1 文字消息传递
在众多消息传递方式中,文字消息传递是最普通、最常见也是被应用最多的消息传递方式,现在很多组织已经依赖微信的群聊天功能作为发送通知的主要手段之一,但如果文字消息本身并没有进行加密处理,在使用公共场所的网络环境进行消息收发的同时,很可能被第三方窃取,造成商业机密甚至是国家机密的泄露。因此,我们将文字消息的测试放在最首要的位置。
首先,登陆微信账户,向指定微信好友发送消息,并重复进行消息发送,这些消息包含纯中文、纯英文、符号以及各种混合消息,使用Fiddle软件按照Host地址进行分类,查看相应报文,使用微信好友账号向本账号发送不同格式的文字消息,使用Fiddle软件按照Host地址进行分类并查看相应报文,部分报文截图如图1所示。
从报文的内容可以看出,在发送、接收文字消息时,微信对相应的消息所在报文进行了基本的加密处理,使用公共网络环境进行通讯,即使我们聊天的相关报文被轻易抓取、监听,也不必担心聊天内容会被轻易破译。从最基本的通讯安全角度上来说,微信软件做到了应有的消息保护。
2.2 语音消息传递
语音消息传递是最直接方便的信息传输途径之一,在文字不能轻易解释清楚或是文字输入不方便时,更多人倾向于语音输入。微信留言形式的语音消息输入让接收者拥有了更多的选择,其类似留言信箱,但同时拥有即时性的功能得到了大规模的应用,所以本测试也将语音消息输入作为测试对象。
图1 文字输入报文截图Fig.1 Screenshot of character input message
在测试过程中,登陆账号并向指定好友发送重复、单一的语音消息,这些语音消息长短从几秒钟至几十秒不等,使用Fiddle软件按照Host地址进行报文分类,查看相应报文信息,使用该好友账号向本账号重复发送长短不同的语音消息,分类、筛选、查看相应报文,报文内容与图1类似,均为已加密报文。从报文的内容可以看出,微信在对语音消息的传输上进行了基本的加密处理,我们在使用公共网络环境时可以相对放心地使用语音传递消息。
2.3 图片消息传递
图片消息传递可以更直观地表达语言与文字难以表现的信息,例如座次表、值班安排表等,因而在实际工作与生活中得到了用户的青睐。图片消息的通讯加密处理同样是一个比较重要的测试项目。
在测试过程中,使用本微信号重复发送图片至指定微信号,这些图片包括高清图片和大小只有十几kb的小型图片,使用微信好友账号向本账号重复发送图片,使用Fiddle筛选、查看报文信息,报文内容与图1类似。从报文的内容可以看出,微信中图片消息的发送已经经过加密处理。
2.4 表情消息传递
表情消息是微信功能中相对其他通讯软件做得更好的部分,微信支持自定义表情以及添加表情,其特有的表情库方便用户使用表情来代替生硬的文字回复消息,这也是微信被普遍使用的重要原因之一。
在测试过程中,选择向指定微信号重复发送特定表情,这些表情包含了微信系统自带表情、微信商店购买表情以及用户自定义的静态表情和动态表情;使用微信好友账号向本账号重复发送不同类别的表情,使用Fiddle进行分类、筛选,可得部分报文为网络链接形式的明文报文,从中筛选出网络链接部分,其链接如下:
http://emoji.qpic.cn/wx_emoji/6NaItiaqXxvtvzjQ AldnnzX9fB4MG02l7PTLj7nSI2Q7iacTibBth3UkQ/?ra ndid=6905
使用任意浏览器点击该链接可以得到如图2的表情。
图2 表情截图Fig.2 An icon
从报文的内容可以看出,微信对表情消息的加密并不完全,微信没有对表情消息的通讯报文进行加密,这是其安全性能的漏洞之一。
2.5 网页链接消息传递
网页链接消息可以将第三方消息轻而易举的转发给另外一个用户,从而实现消息共享,网页链接同样是人们常用的分享信息的重要途径之一。
在测试过程中,使用自己的账户向微信好友重复发送网络消息链接,该链接包括内网链接以及外网链接,之后使用微信好友账户重复发送网页链接,使用Fiddle对报文进行分类、筛选,对选定报文观察报文的内容。在报文中,可以看到形如网络链接的明文报文,其具体链接如下:
https://mp.weixin.qq.com/s?__biz=MzA3Mz Uz Mzg4OA==&mid=211025190&idx=1&sn=1a 00c66fa829dc3800d3bbbecbd7c346&scene=1&srcid=v706Ur4CThiRAmZzLZKP&key=dffc561732c2265 1915becde12dcd6907a56b1a2fe6e864c0470a30eb3ae8c ae780d103791862f42ebb7fea6e7e29cf7&ascene=14& uin=MzgxOTg2MTc1&devicetype=iPhone+OS8.1.2 &version=16020211&nettype=WIFI&fontScale=100 &pass_ticket=TQkTUsS9TrHWEScM3QeIZODs%,2F 4s2a4dlWGNwo7jI2p0f6GOcYwfhJBxYtwl0rOVV.
使用任意浏览器打开该链接,会得到链接的具体内容,部分截图如图3所示。
从链接指向的报文内容可以看出,微信对含有链接消息的报文加密并不完全。网页链接消息是人们传递重要信息的途径之一,尽管保密程度较高的内网网络链接通过外部网络环境无法访问,但是在使用公共网络时,第三方完全可以捕捉到特定人所看的特定网页,这在个人隐私和商业机密方面存在着很大的问题,这是该测试版本微信的通讯安全漏洞之一。
图3 网络链接内容截图Fig.3 Content of web links
2.6 语音通话
语音实时通话是微信实时沟通的最方便快捷的方式,使用打电话的沟通方式来进行在线沟通方便快捷,同时又无需支付通讯费用,受到了用户的喜爱。在测试过程中,使用本微信号重复与特定微信好友进行语音聊天,聊天的时间从几秒种到几十分钟;之后使用微信好友账号向本账号重复发送通讯时间长短不等的语音聊天邀请,使用Fiddle筛选、查看报文信息,报文内容与图1类似,从报文的内容可以看出,微信中实时的语音通讯已经经过加密处理。
2.7 视频通话
视频实时通话是微信的创举之一,其可视化和实时通讯让视频通话在家人、朋友之间得到了广泛的应用。在测试过程中,我们使用本微信号重复与特定微信好友进行视频通话,视频通话的时间从几秒种到几十分钟不等;之后使用微信好友账号向本账号重复发送视频聊天邀请,使用Fiddle筛选、查看报文信息,报文内容与图1类似,从报文的内容我们可以看出,微信中视频聊天的通讯已经经过相应的加密处理。
2.8 朋友圈更新
朋友圈是微信社交的重要突破之一。在测试当中使用测试微信账号发布朋友圈,使用微信好友的账号更新朋友圈,使用Fiddle对通讯报文进行分类、筛选,通过对报文内容的查看可以看到含有不同链接形式的明文报文,部分链接内容如下:
http://103.7.31.165/mmsns/2kpMNDYsSfACnXG KUcd8lhicQNzP3Ocf8VmhWUpVS5iaVDSHbDB70v o67DaDZOLeeSH5ll24lA2uQ/0?tp=webp&length=1334&width=750
使用任意浏览器查看该链接可得到如图4所示图片。
通过观察可以看出,该图片为好友朋友圈中更新的图片。
图4 朋友圈更新截图Fig.4 An update in the Moments
同时我们也捕捉到了含有如下链接的明文报文,链接内容如下:
http://203.205.151.203/mmsns/4376ae1e0cf0ccce d233def9ad1560d0dec29d64941ab85a3a2822dd793a4fa 8a86b5cbf2b10ba2f466a38daa0b6db49f448fcac9c4b03 5d/0?tp=webp&length=1334&width=750.
使用任意浏览器点击该链接并查看即可得到如图5所示图片。
图5 朋友圈背景截图Fig.5 A background of the Moments
通过观察可以看出,该图片为好友朋友圈的背景图片。
同时,在操作过程中捕获到了含有形似网络链接的明文报文,其链接如下:
http://wx.qlogo.cn/mmhead/ver_1/ySpUST6gp6ze 10ZicicJVDBeiaE2icoEAFLSibxHWJToSCdm3zHJrI8 mchdgNjPMJeyTeSX46P2weeGQZicqIXypbRYD0Des bsxjmCjcGUbVlXXmc/132?randid=142
使用任意浏览器可以得到该链接所示信息,如图6所示。
图6 朋友圈好友头像截图Fig.6 A friend’s head portrait in the Moments
观察朋友圈更新可以看出,该图片为更新朋友圈其中一位好友的微信头像。
从得到的报文来看,微信在朋友圈功能中对传递消息报文的保护工作做得极不到位,我们在使用公共网络环境时可以很轻易地被第三方捕捉到朋友圈中的好友头像、好友朋友圈背景图以及好友更新图片。朋友圈的更新应该是拥有相应浏览权限的人才可以看到,但在实际操作中捕捉到通讯报文提取其中有意义的链接即可,从这个角度来说,微信软件对于个人隐私的保护是不够充分的,这一点是该测试版本微信软件存在的较大通讯安全漏洞。
3 测试结果与展望
从上面的测试所得报文中可以看出,在部分情况下,微信在传递报文的过程中对报文的保密性已经进行了基本的设置,但在用户传递网页链接消息、发送表情消息、刷新朋友圈更新内容时,报文中部分内容并没有进行应有的加密处理,而通过报文中的明文链接可以清楚地看到报文的具体内容。如果我们在通讯过程中使用公共网络环境,第三方可以很轻易地截获报文内容,很容易泄露用户的个人隐私甚至是公司、工作单位的机密消息。
本文通过对微信软件的测试,给出了对手机端APP通讯安全测试的一个可行思路。在社交类APP越来越多的今天,旨在引发更多的针对移动端软件的测试,希望测试领域在手机APP的通讯方面可以有新的标准与思路,在未来的测试中可以有更系统、更完整的测试评价方式。
[1] 聂长海. 软件测试的概念与方法[M]. 1版,北京:清华大学出版社,2013.
[2] 郭卫香. 手机软件系统测试方法分析与实践[D]. 北京:北京邮电大学,2007.
[3] 王希. 智能手机的黑盒测试设计及实现[D]. 北京:北京交通大学,2005.
[4] 林璇. 手机软件的测试过程研究[D]. 上海:同济大学,2006.
A Communication Security Test for a Social Networking App
ZHANG Yumei
(People’s Armed Police Tianjin Corps,Tianjin 300011,China)
It is tried to give a testing method for instant messaging Apps and this method was used in a typical application,WeChat.On the basis of testing results,communication safety of the relevant social networking App was discussed.In this paper,theories and methods involved in PC software testing,including equivalence partitioning,combination testing,error guessing and other testing methods were used to test whether the social communications App is able to satisfy the safety requirements of message transmission.
communication;social networking;application(APP);testing;security
TJ768.4
:A
:1006-8945(2016)05-0086-05
2016-04-22