張玉梅
(武警天津市總隊 天津300011)
社交類APP的通訊安全測試
張玉梅
(武警天津市總隊 天津300011)
嘗試給出有關(guān)即時通訊類APP通訊安全方面的一個測試方法,并按照該測試方法對1個較有代表性的社交類通訊軟件——微信進(jìn)行測試,結(jié)合測試結(jié)果對相關(guān)社交類通訊軟件的通訊安全進(jìn)行了討論。使用等價劃分法、組合測試以及錯誤推測法等應(yīng)用于PC端軟件測試的理論方法,對社交類通訊APP消息傳遞安全的保護(hù)是否能滿足基本要求進(jìn)行了驗證。
通訊 社交 APP 測試 安全
1.1 研究背景及意義
在智能手機(jī)高度普及的今天,社交類通訊APP隨著智能機(jī)的普及滲透到人們生活與工作的方方面面,很多大中型企業(yè)的職員也更傾向于使用社交軟件就工作內(nèi)容進(jìn)行通訊與交流,而通訊時有關(guān)通訊內(nèi)容的安全性問題卻很少得到大多數(shù)人的關(guān)注。
由于國內(nèi)移動端通訊運(yùn)營商對網(wǎng)絡(luò)流量的收費(fèi)不菲,在很多情況下,當(dāng)外界存在公共無線網(wǎng)絡(luò)時,多數(shù)人都傾向于連接公共網(wǎng)絡(luò)上網(wǎng)以節(jié)省流量費(fèi)用。盡管通過近些年媒體的相關(guān)報道與知識普及,我們已經(jīng)知道在使用公共網(wǎng)絡(luò)進(jìn)行上網(wǎng)時,容易遇到釣魚網(wǎng)站或者網(wǎng)銀被盜等問題,大多數(shù)用戶也已經(jīng)了解在使用公眾網(wǎng)絡(luò)進(jìn)行上網(wǎng)時盡量不輸入重要的賬戶密碼。但同時,在多數(shù)人連接公共網(wǎng)絡(luò)使用社交類APP進(jìn)行通訊的時候,如果該社交類APP并沒有對相關(guān)消息進(jìn)行很好地加密,一旦不法分子對公共網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)監(jiān)聽,那么用戶的個人隱私、重要的商業(yè)機(jī)密甚至是國家機(jī)密就有可能被竊取,后果不堪設(shè)想。因此,社交類APP的通訊安全顯得格外重要。
另一方面,在軟件測試領(lǐng)域中,對PC端的軟件進(jìn)行測試的方法以及理論已經(jīng)相當(dāng)成熟,而針對移動端的軟件測試方法以及理論并沒有一個完善的體系。本文通過對特定場景下使用社交類APP的通訊安全情況進(jìn)行了測試,在沒有源碼即無法進(jìn)行白盒測試時,基于等價類劃分測試等不同的測試思想,并采取黑盒測試方法與監(jiān)聽抓包相結(jié)合的方式,得出了對移動端APP通訊安全比較方便有效的一款測試方法。
1.2 相關(guān)網(wǎng)絡(luò)知識介紹
無線局域網(wǎng)由無線接入點(diǎn)、無線網(wǎng)卡、通訊設(shè)備和相關(guān)拓?fù)湓O(shè)備組成。有線網(wǎng)絡(luò)先連接到無線接入點(diǎn),所有通訊設(shè)備收發(fā)網(wǎng)絡(luò)報文都經(jīng)由自己的無線網(wǎng)卡收發(fā)數(shù)據(jù),無線接入點(diǎn)接收、發(fā)送設(shè)備需要收發(fā)的網(wǎng)絡(luò)報文,再通過有線網(wǎng)絡(luò)實現(xiàn)與因特網(wǎng)的交互。
在這個過程中,無線數(shù)據(jù)的收發(fā)并非是精準(zhǔn)的點(diǎn)到點(diǎn)傳播,而是局限在一個范圍之內(nèi)的信號傳輸,所以在這個無線范圍內(nèi)的任何用戶都可以接收其他用戶發(fā)送的無線信號,通過特定軟件對報文進(jìn)行分析,通過對數(shù)據(jù)包的解析完成監(jiān)聽。
大部分社交通訊類APP使用的是HTTP協(xié)議來傳輸數(shù)據(jù),在測試當(dāng)中發(fā)現(xiàn)微信也是使用HTTP協(xié)議來進(jìn)行收發(fā)數(shù)據(jù),而大多數(shù)抓包監(jiān)聽軟件支持對該協(xié)議的分析,所以可以利用抓包監(jiān)聽軟件對APP的數(shù)據(jù)流進(jìn)行監(jiān)聽與分析。
1.3 微信軟件介紹
微信是騰訊公司于2011年推出的一款智能機(jī)即時通訊類軟件,2014年微信月活躍賬戶突破4億。其擁有的發(fā)送即時文字、語音、表情消息,傳遞圖片,推送網(wǎng)頁消息,語音通話,視頻通話,朋友圈等核心功能讓廣大的客戶群對其產(chǎn)生了強(qiáng)大的依賴性,帶動了微商、公眾號、微信電影等相關(guān)模塊的發(fā)展,已經(jīng)完美地滲透到人們生活的各個方面。微信軟件作為推廣力度最大、使用人數(shù)最多的即時通訊類軟件,是本次測試的首選實驗對象。本次測試使用微信6.2.2版本進(jìn)行測試。
1.4 抓包軟件介紹
Fiddle為一款方便快捷的HTTP調(diào)試軟件,同時也可以作為手機(jī)通訊的代理來抓取手機(jī)通訊報文進(jìn)行分析。在抓取微信的通訊報文時,首先將微信軟件所在的手機(jī)設(shè)置Fiddle軟件為其通訊代理,即所有微信的通訊報文都要經(jīng)過Fiddle的代理,通過Fiddle所在的電腦進(jìn)行通訊??梢允褂肍iddle自帶的篩選功能通過對服務(wù)器地址的篩選來選擇需要的通訊報文,同時使用微信進(jìn)行重復(fù)單一的操作,再從微信的通訊報文中找到操作相應(yīng)的一系列報文,通過觀察報文是否進(jìn)行加密來判斷微信是否對其進(jìn)行了基本的通訊安全保護(hù)。
1.5 智能機(jī)系統(tǒng)介紹
在這里本次測試使用了用戶群比較廣泛、具有一定代表性的iPhone作為測試用機(jī),iOS,8.1.2作為測試機(jī)的操作系統(tǒng)。iOS的流暢性較好,且其權(quán)限機(jī)制可以使系統(tǒng)上的軟件在最大程度上發(fā)揮自己功能的同時受到來自系統(tǒng)權(quán)限的限制,讓用戶的隱私與手機(jī)安全性得到良好的保障。這也是很多用戶更傾向于選擇蘋果手機(jī)而不是安卓手機(jī)的主要原因之一。在本測試中選擇以流暢度更好的iOS系統(tǒng)作為實驗系統(tǒng)。
1.6 代理端系統(tǒng)介紹
在測試過程中,使用了Win,7操作系統(tǒng)作為Fiddle代理端所在的操作系統(tǒng)。作為替代Windows XP的操作系統(tǒng),Win,7系統(tǒng)以其更好的效率和更簡單易用的功能按鈕得到了更多用戶的青睞,在逐漸變得更加穩(wěn)定成熟的同時,Win,7已實現(xiàn)逾50%,的使用率,從而成為最受歡迎的操作系統(tǒng)。本次測試使用穩(wěn)定性更好的Win,7系統(tǒng)作為實驗平臺來保證測試的順利完成。
首先,在測試機(jī)中安裝微信軟件,登陸常用的微信賬號,設(shè)置Fiddle軟件作為測試機(jī)的通訊代理。測試過程中,對微信進(jìn)行單一的重復(fù)操作,例如傳遞各種形式的消息、瀏覽公眾號文章、刷新朋友圈等,確保通訊報文中存在相應(yīng)操作的通訊報文,并同時使用Fiddle查看通訊服務(wù)器以及報文格式、內(nèi)容等信息,對通訊報文進(jìn)行篩選以得出相應(yīng)的通訊報文,測試部分如下:
2.1 文字消息傳遞
在眾多消息傳遞方式中,文字消息傳遞是最普通、最常見也是被應(yīng)用最多的消息傳遞方式,現(xiàn)在很多組織已經(jīng)依賴微信的群聊天功能作為發(fā)送通知的主要手段之一,但如果文字消息本身并沒有進(jìn)行加密處理,在使用公共場所的網(wǎng)絡(luò)環(huán)境進(jìn)行消息收發(fā)的同時,很可能被第三方竊取,造成商業(yè)機(jī)密甚至是國家機(jī)密的泄露。因此,我們將文字消息的測試放在最首要的位置。
首先,登陸微信賬戶,向指定微信好友發(fā)送消息,并重復(fù)進(jìn)行消息發(fā)送,這些消息包含純中文、純英文、符號以及各種混合消息,使用Fiddle軟件按照Host地址進(jìn)行分類,查看相應(yīng)報文,使用微信好友賬號向本賬號發(fā)送不同格式的文字消息,使用Fiddle軟件按照Host地址進(jìn)行分類并查看相應(yīng)報文,部分報文截圖如圖1所示。
從報文的內(nèi)容可以看出,在發(fā)送、接收文字消息時,微信對相應(yīng)的消息所在報文進(jìn)行了基本的加密處理,使用公共網(wǎng)絡(luò)環(huán)境進(jìn)行通訊,即使我們聊天的相關(guān)報文被輕易抓取、監(jiān)聽,也不必?fù)?dān)心聊天內(nèi)容會被輕易破譯。從最基本的通訊安全角度上來說,微信軟件做到了應(yīng)有的消息保護(hù)。
2.2 語音消息傳遞
語音消息傳遞是最直接方便的信息傳輸途徑之一,在文字不能輕易解釋清楚或是文字輸入不方便時,更多人傾向于語音輸入。微信留言形式的語音消息輸入讓接收者擁有了更多的選擇,其類似留言信箱,但同時擁有即時性的功能得到了大規(guī)模的應(yīng)用,所以本測試也將語音消息輸入作為測試對象。
圖1 文字輸入報文截圖Fig.1 Screenshot of character input message
在測試過程中,登陸賬號并向指定好友發(fā)送重復(fù)、單一的語音消息,這些語音消息長短從幾秒鐘至幾十秒不等,使用Fiddle軟件按照Host地址進(jìn)行報文分類,查看相應(yīng)報文信息,使用該好友賬號向本賬號重復(fù)發(fā)送長短不同的語音消息,分類、篩選、查看相應(yīng)報文,報文內(nèi)容與圖1類似,均為已加密報文。從報文的內(nèi)容可以看出,微信在對語音消息的傳輸上進(jìn)行了基本的加密處理,我們在使用公共網(wǎng)絡(luò)環(huán)境時可以相對放心地使用語音傳遞消息。
2.3 圖片消息傳遞
圖片消息傳遞可以更直觀地表達(dá)語言與文字難以表現(xiàn)的信息,例如座次表、值班安排表等,因而在實際工作與生活中得到了用戶的青睞。圖片消息的通訊加密處理同樣是一個比較重要的測試項目。
在測試過程中,使用本微信號重復(fù)發(fā)送圖片至指定微信號,這些圖片包括高清圖片和大小只有十幾kb的小型圖片,使用微信好友賬號向本賬號重復(fù)發(fā)送圖片,使用Fiddle篩選、查看報文信息,報文內(nèi)容與圖1類似。從報文的內(nèi)容可以看出,微信中圖片消息的發(fā)送已經(jīng)經(jīng)過加密處理。
2.4 表情消息傳遞
表情消息是微信功能中相對其他通訊軟件做得更好的部分,微信支持自定義表情以及添加表情,其特有的表情庫方便用戶使用表情來代替生硬的文字回復(fù)消息,這也是微信被普遍使用的重要原因之一。
在測試過程中,選擇向指定微信號重復(fù)發(fā)送特定表情,這些表情包含了微信系統(tǒng)自帶表情、微信商店購買表情以及用戶自定義的靜態(tài)表情和動態(tài)表情;使用微信好友賬號向本賬號重復(fù)發(fā)送不同類別的表情,使用Fiddle進(jìn)行分類、篩選,可得部分報文為網(wǎng)絡(luò)鏈接形式的明文報文,從中篩選出網(wǎng)絡(luò)鏈接部分,其鏈接如下:
http://emoji.qpic.cn/wx_emoji/6NaItiaqXxvtvzjQ AldnnzX9fB4MG02l7PTLj7nSI2Q7iacTibBth3UkQ/?ra ndid=6905
使用任意瀏覽器點(diǎn)擊該鏈接可以得到如圖2的表情。
圖2 表情截圖Fig.2 An icon
從報文的內(nèi)容可以看出,微信對表情消息的加密并不完全,微信沒有對表情消息的通訊報文進(jìn)行加密,這是其安全性能的漏洞之一。
2.5 網(wǎng)頁鏈接消息傳遞
網(wǎng)頁鏈接消息可以將第三方消息輕而易舉的轉(zhuǎn)發(fā)給另外一個用戶,從而實現(xiàn)消息共享,網(wǎng)頁鏈接同樣是人們常用的分享信息的重要途徑之一。
在測試過程中,使用自己的賬戶向微信好友重復(fù)發(fā)送網(wǎng)絡(luò)消息鏈接,該鏈接包括內(nèi)網(wǎng)鏈接以及外網(wǎng)鏈接,之后使用微信好友賬戶重復(fù)發(fā)送網(wǎng)頁鏈接,使用Fiddle對報文進(jìn)行分類、篩選,對選定報文觀察報文的內(nèi)容。在報文中,可以看到形如網(wǎng)絡(luò)鏈接的明文報文,其具體鏈接如下:
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.
使用任意瀏覽器打開該鏈接,會得到鏈接的具體內(nèi)容,部分截圖如圖3所示。
從鏈接指向的報文內(nèi)容可以看出,微信對含有鏈接消息的報文加密并不完全。網(wǎng)頁鏈接消息是人們傳遞重要信息的途徑之一,盡管保密程度較高的內(nèi)網(wǎng)網(wǎng)絡(luò)鏈接通過外部網(wǎng)絡(luò)環(huán)境無法訪問,但是在使用公共網(wǎng)絡(luò)時,第三方完全可以捕捉到特定人所看的特定網(wǎng)頁,這在個人隱私和商業(yè)機(jī)密方面存在著很大的問題,這是該測試版本微信的通訊安全漏洞之一。
圖3 網(wǎng)絡(luò)鏈接內(nèi)容截圖Fig.3 Content of web links
2.6 語音通話
語音實時通話是微信實時溝通的最方便快捷的方式,使用打電話的溝通方式來進(jìn)行在線溝通方便快捷,同時又無需支付通訊費(fèi)用,受到了用戶的喜愛。在測試過程中,使用本微信號重復(fù)與特定微信好友進(jìn)行語音聊天,聊天的時間從幾秒種到幾十分鐘;之后使用微信好友賬號向本賬號重復(fù)發(fā)送通訊時間長短不等的語音聊天邀請,使用Fiddle篩選、查看報文信息,報文內(nèi)容與圖1類似,從報文的內(nèi)容可以看出,微信中實時的語音通訊已經(jīng)經(jīng)過加密處理。
2.7 視頻通話
視頻實時通話是微信的創(chuàng)舉之一,其可視化和實時通訊讓視頻通話在家人、朋友之間得到了廣泛的應(yīng)用。在測試過程中,我們使用本微信號重復(fù)與特定微信好友進(jìn)行視頻通話,視頻通話的時間從幾秒種到幾十分鐘不等;之后使用微信好友賬號向本賬號重復(fù)發(fā)送視頻聊天邀請,使用Fiddle篩選、查看報文信息,報文內(nèi)容與圖1類似,從報文的內(nèi)容我們可以看出,微信中視頻聊天的通訊已經(jīng)經(jīng)過相應(yīng)的加密處理。
2.8 朋友圈更新
朋友圈是微信社交的重要突破之一。在測試當(dāng)中使用測試微信賬號發(fā)布朋友圈,使用微信好友的賬號更新朋友圈,使用Fiddle對通訊報文進(jìn)行分類、篩選,通過對報文內(nèi)容的查看可以看到含有不同鏈接形式的明文報文,部分鏈接內(nèi)容如下:
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
同時我們也捕捉到了含有如下鏈接的明文報文,鏈接內(nèi)容如下:
http://203.205.151.203/mmsns/4376ae1e0cf0ccce d233def9ad1560d0dec29d64941ab85a3a2822dd793a4fa 8a86b5cbf2b10ba2f466a38daa0b6db49f448fcac9c4b03 5d/0?tp=webp&length=1334&width=750.
使用任意瀏覽器點(diǎn)擊該鏈接并查看即可得到如圖5所示圖片。
圖5 朋友圈背景截圖Fig.5 A background of the Moments
通過觀察可以看出,該圖片為好友朋友圈的背景圖片。
同時,在操作過程中捕獲到了含有形似網(wǎng)絡(luò)鏈接的明文報文,其鏈接如下:
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
觀察朋友圈更新可以看出,該圖片為更新朋友圈其中一位好友的微信頭像。
從得到的報文來看,微信在朋友圈功能中對傳遞消息報文的保護(hù)工作做得極不到位,我們在使用公共網(wǎng)絡(luò)環(huán)境時可以很輕易地被第三方捕捉到朋友圈中的好友頭像、好友朋友圈背景圖以及好友更新圖片。朋友圈的更新應(yīng)該是擁有相應(yīng)瀏覽權(quán)限的人才可以看到,但在實際操作中捕捉到通訊報文提取其中有意義的鏈接即可,從這個角度來說,微信軟件對于個人隱私的保護(hù)是不夠充分的,這一點(diǎn)是該測試版本微信軟件存在的較大通訊安全漏洞。
從上面的測試所得報文中可以看出,在部分情況下,微信在傳遞報文的過程中對報文的保密性已經(jīng)進(jìn)行了基本的設(shè)置,但在用戶傳遞網(wǎng)頁鏈接消息、發(fā)送表情消息、刷新朋友圈更新內(nèi)容時,報文中部分內(nèi)容并沒有進(jìn)行應(yīng)有的加密處理,而通過報文中的明文鏈接可以清楚地看到報文的具體內(nèi)容。如果我們在通訊過程中使用公共網(wǎng)絡(luò)環(huán)境,第三方可以很輕易地截獲報文內(nèi)容,很容易泄露用戶的個人隱私甚至是公司、工作單位的機(jī)密消息。
本文通過對微信軟件的測試,給出了對手機(jī)端APP通訊安全測試的一個可行思路。在社交類APP越來越多的今天,旨在引發(fā)更多的針對移動端軟件的測試,希望測試領(lǐng)域在手機(jī)APP的通訊方面可以有新的標(biāo)準(zhǔn)與思路,在未來的測試中可以有更系統(tǒng)、更完整的測試評價方式。
[1] 聶長海. 軟件測試的概念與方法[M]. 1版,北京:清華大學(xué)出版社,2013.
[2] 郭衛(wèi)香. 手機(jī)軟件系統(tǒng)測試方法分析與實踐[D]. 北京:北京郵電大學(xué),2007.
[3] 王希. 智能手機(jī)的黑盒測試設(shè)計及實現(xiàn)[D]. 北京:北京交通大學(xué),2005.
[4] 林璇. 手機(jī)軟件的測試過程研究[D]. 上海:同濟(jì)大學(xué),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