樂洪舟 何水龍 王 敬
1(信陽師范學(xué)院計算機(jī)與信息技術(shù)學(xué)院 河南信陽 464000)
2(河南省教育大數(shù)據(jù)分析與應(yīng)用重點實驗室(信陽師范學(xué)院) 河南信陽 464000)
(yuehz@xynu.edu.cn)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)社交成為一種新的時尚,一些流行的社交App已經(jīng)成為人們生活中不可缺少的一部分,為人們提供了信息交流和娛樂消遣的重要平臺.當(dāng)前很多流行的社交App都有查找共同關(guān)系的功能,2個用戶可以查看彼此之間有共同關(guān)系的人,包括共同聯(lián)系人、共同好友等.表1列出了6個具有共同關(guān)系功能的社交App.從表1中可以看出,除QQ外,其他App的用戶查看共同關(guān)系都需要滿足一定的前提,例如:微信用戶在雙方互為好友的情況下才能查看共同好友,查看的位置是微信朋友圈,朋友圈中只有共同的好友的評論和點贊才能被雙方看到.除QQ和微信以外的其他App只需要滿足一定的隱私設(shè)置即可查看共同關(guān)系.這些共同關(guān)系主要包括共同關(guān)系的數(shù)量和共同關(guān)系的用戶名單2方面的內(nèi)容,不同的App顯示共同關(guān)系的內(nèi)容不一樣,除QQ僅能顯示共同好友的數(shù)量以外,其他幾個App既能顯示共同關(guān)系的數(shù)量,也能顯示共同關(guān)系的用戶名單.我們也發(fā)現(xiàn),這些App為用戶提供查看共同關(guān)系的功能,主要目的是為了向用戶推薦潛在的好友(如QQ、抖音、Facebook、LinkedIn),然而,也有App是為了幫助用戶回避現(xiàn)實中熟悉的人,避免遇到熟人所造成的尷尬,例如探探這種陌生人交友軟件.
查找共同關(guān)系的功能在為社交媒體用戶提供便利的同時,也帶來了很多用戶隱私安全問題.例如:一些研究者發(fā)現(xiàn),已知社交網(wǎng)絡(luò)中用戶節(jié)點間共同關(guān)系的數(shù)量,可以實施友誼攻擊,挖掘和分析用戶的身份數(shù)據(jù),對用戶身份進(jìn)行識別[1-2].甚至有研究者提出,即使某些社交媒體App運用了一些匿名化方法來防御共同關(guān)系功能造成的隱私泄露問題,攻擊者也能采取一定的攻擊手法,繞過匿名化技術(shù)的安全限制,暴露匿名用戶的身份,推斷目標(biāo)用戶的社交關(guān)系[3-4].一些社交App為用戶提供了一些安全設(shè)置,使用戶能夠自主控制與共同關(guān)系有關(guān)的隱私信息,但一些研究者也提出一些攻擊方法,能夠使用戶的隱私設(shè)置失效[5].其他的與共同關(guān)系有關(guān)的安全問題還包括鄰域攻擊問題[6-8]、共謀攻擊問題[9]等.
現(xiàn)有的關(guān)于共同關(guān)系的安全問題的相關(guān)研究基本上沒有將現(xiàn)實中真實的社會群體作為研究對象,研究他們在社交媒體中所暴露的各成員之間親密關(guān)系的隱私泄露問題.本文將以中國最知名的短視頻軟件抖音為例,研究抖音App的共同聯(lián)系人功能泄露現(xiàn)實中真實群體用戶的賬號信息和群體用戶之間的親密關(guān)系的安全問題.從表1可以看出,抖音的共同聯(lián)系人查看功能可以針對任意用戶,無需雙方互為好友,這為攻擊者進(jìn)行信息收集提供了便利條件.我們發(fā)現(xiàn)了抖音共同聯(lián)系人功能存在的一個安全漏洞,在目標(biāo)用戶已經(jīng)進(jìn)行了個人信息屏蔽設(shè)置(關(guān)閉“允許將我推薦給好友”選項)的情況下,攻擊者仍然可以利用共同聯(lián)系人功能發(fā)現(xiàn)目標(biāo)用戶的賬號.

Table 1 Apps That Can Show Mutual Relationship表1 顯示共同關(guān)系的App
我們結(jié)合這個安全漏洞,在已知抖音群體用戶的電話號碼信息后,能夠獲得群體中盡可能多的用戶的抖音賬號信息,并通過群體用戶相互之間的關(guān)注信息、通信錄信息、視頻點贊和評論信息來推算群體用戶之間的親密關(guān)系信息(親密度和群體活躍度),這些親密關(guān)系信息能夠為攻擊者實施進(jìn)一步有效攻擊提供一定的輔助.我們通過對現(xiàn)實中一個真實群體的實驗,證明了通過抖音共同聯(lián)系人功能發(fā)掘群體用戶抖音賬號的有效性,并驗證了親密關(guān)系信息的計算結(jié)果的合理性.此外,我們也進(jìn)行了安全威脅分析,并提出了安全防范建議.
本文主要創(chuàng)新和貢獻(xiàn)包括3個方面:
1) 發(fā)現(xiàn)了中國最知名的短視頻軟件抖音的共同聯(lián)系人功能存在的安全漏洞,可以使用戶的相關(guān)個人隱私設(shè)置失效,使攻擊者在已知群體用戶的電話號碼信息后,利用群體用戶之間的通信錄關(guān)系,獲得群體中盡可能多的用戶的抖音賬號信息.
2) 提出了結(jié)合抖音共同聯(lián)系人安全漏洞,并通過群體用戶相互之間的關(guān)注信息、通信錄信息、視頻點贊和評論信息挖掘群體用戶之間的親密度和用戶群體活躍度的方法.該方法除了考慮到用戶之間關(guān)注關(guān)系、通信錄關(guān)系和點贊關(guān)系的連接數(shù)量,而且也把用戶之間的評論的情感考慮在內(nèi),利用基于稱謂詞詞典和情感詞典的方法計算評論的情感值,從而推算用戶之間的親密度.
3) 提出攻擊者針對群體用戶的親密度和群體活躍度的計算結(jié)果能夠為攻擊者發(fā)起針對群體用戶的進(jìn)一步有效攻擊提供一定的輔助,并分析了對群體用戶可能造成的安全威脅,給出了相應(yīng)的安全防范建議.
抖音是目前中國最知名、用戶量最大的短視頻軟件,用戶量超5億[10].用戶可以通過抖音制作和發(fā)布短視頻對外展示自己,也可以觀看其他用戶發(fā)布的視頻.抖音從2016年9月上線以來就迅速積累了大量的人氣,為各種年齡段用戶提供了娛樂和社交的平臺,贏得了廣大用戶的歡迎.抖音鼓勵用戶查看通信錄好友,在啟動App的時候甚至?xí)棿疤嵝延脩舨榭赐ㄐ配浐糜眩坏┯脩羰褂昧诉@個功能,則抖音App就會獲取用戶手機(jī)通信錄信息,由此也導(dǎo)致了一些隱私泄露的安全問題和法律糾紛[11].
圖1展示了某一抖音用戶的個人主頁,訪問者可以點擊位置①查看該用戶關(guān)注的用戶列表,點擊位置②查看該用戶發(fā)布的視頻列表,點擊位置③可以查看該用戶點贊了哪些視頻.

Fig. 1 TikTok user personal homepage圖1 抖音用戶個人主頁示例
然而,抖音(以2020年發(fā)布的11.6.0版本為例)中有表2所示的設(shè)置選項,可以使用戶有權(quán)決定是否公開某些信息.如果某用戶對這些選項不進(jìn)行設(shè)置,那么這4個選項都會是默認(rèn)設(shè)置,即其他用戶可以看到該用戶的關(guān)注用戶列表、粉絲列表、點贊視頻列表,并且可以通過“查詢通信錄好友”的功能找到他.
如果用戶進(jìn)行了設(shè)置,例如,當(dāng)把“誰可以看我對作品的點贊”選項設(shè)置為“僅自己和作者”時,僅視頻作者和用戶自己可以看到用戶對某視頻的點贊行為.當(dāng)把“誰可以看我的關(guān)注、粉絲列表”選項設(shè)置為“僅自己”時,只有用戶自己可以看他的關(guān)注和粉絲列表.當(dāng)把“允許將我推薦給好友”選項設(shè)置為關(guān)閉時,其他用戶將不能通過“查找通信錄好友”功能找到他.當(dāng)“私密賬號”選項設(shè)置為“開”時,其他用戶將不能看該用戶的關(guān)注用戶列表、粉絲列表、點贊視頻列表等信息.
經(jīng)過研究發(fā)現(xiàn),大多數(shù)用戶不會專門對這些選項進(jìn)行設(shè)置,這便給攻擊者收集用戶的相關(guān)信息提供了便利.

Table 2 Options of TikTok User Personal Setting表2 抖音用戶個人設(shè)置選項

Fig. 2 The mutual contacts function of TikTok圖2 抖音共同聯(lián)系人功能
抖音提供了“查找通信錄好友”的功能,當(dāng)某用戶向服務(wù)器發(fā)送“查找通信錄好友”請求后,服務(wù)器會返回該用戶的通信錄好友對應(yīng)的抖音用戶列表,然而,如第1節(jié)中所提到的那樣,若用戶設(shè)置“允許將我推薦給好友”選項為關(guān)閉時,其他用戶將不能通過“查找通信錄好友”功能找到他.
然而,抖音中有個共同聯(lián)系人功能能夠讓設(shè)置了“允許將我推薦給好友”選項為關(guān)閉的用戶賬號(抖音ID)也通過電話號碼被查詢出來.抖音中的共同聯(lián)系人功能是為了向用戶推薦存在共同聯(lián)系人關(guān)系的用戶,增加用戶之間的關(guān)聯(lián).然而,如果用戶a和用戶b存在共同聯(lián)系人,那么抖音在向a,b進(jìn)行相互推薦的時候,不但可以向a,b展示共同聯(lián)系人的數(shù)量,而且可以展示共同聯(lián)系人的姓名和抖音ID,如圖2所示,而不管共同聯(lián)系人是否設(shè)置“允許將我推薦給好友”選項為關(guān)閉.除了可以獲取抖音的推薦用戶與攻擊者的共同好友信息以外,抖音的共同聯(lián)系人功能的相關(guān)接口甚至允許攻擊者查詢?nèi)我挥脩襞c攻擊者的通信錄的共同聯(lián)系人,這是一個明顯的安全漏洞.
共同聯(lián)系人功能存在的這個安全漏洞給攻擊者提供了挖掘群體用戶隱私的有利條件.由于一個社會群體中的用戶一般相互間會保留對方的聯(lián)系方式,因此如果一個社會群體(如學(xué)生班級群體、單位職工群體)的電話號碼信息被攻擊者竊取,那么攻擊者將可能獲得群體用戶中盡可能多的抖音ID,建立群體用戶電話號碼和抖音ID的對應(yīng)關(guān)系.方法是:攻擊者首先把群體用戶的手機(jī)號碼存儲在通信錄,并通過“查詢通信錄好友”功能查詢通信錄好友的抖音ID,如果只能查找到部分通信錄好友的抖音ID,那么攻擊者可以通過“共同聯(lián)系人”的功能接口向服務(wù)器發(fā)送請求,獲取這些抖音ID對應(yīng)的每一位用戶與攻擊者的共同聯(lián)系人的ID,新獲得的抖音ID還可以繼續(xù)被拿來查詢共同聯(lián)系人,如此迭代往復(fù),就可以把群體里面盡可能多的用戶對應(yīng)的抖音ID獲取到.
圖3通過實例展示了群體用戶抖音ID迭代查詢的過程,圖3中假設(shè)群體用戶編號為1~10,他們的電話號碼都被攻擊者存放到通信錄,攻擊者通過查看通信錄好友功能只能查到編號為1~5的抖音用戶.然而,由于用戶2的通信錄中存儲了用戶7,8,則攻擊者通過查詢與用戶2的共同好友就可以查到用戶7,8的抖音ID.在得到了新的用戶7,8的ID后,攻擊者繼續(xù)查詢與用戶7,8的共同好友關(guān)系.由于用戶8的通信錄中存儲了用戶6,9,則攻擊者通過查詢與用戶8的共同好友就可以查到用戶6,9的抖音ID.因此最終攻擊者可以獲取到群體中用戶1~9的抖音ID,僅僅只有用戶10是查不到抖音ID的.

Fig. 3 Iterative query of group users’ TikTok IDs based on mutual contacts function圖3 基于共同聯(lián)系人功能的群體用戶抖音賬號迭代查詢
群體用戶既然是一個社會群體,那么他們之間肯定有密切的關(guān)系,如果一個攻擊者既能獲得群體用戶的抖音賬號信息,又能利用抖音賬號信息推算出這個群體中的用戶之間的親密關(guān)系,知道哪些用戶在群體中較為活躍、人緣好等信息,那么對他實施進(jìn)一步攻擊會帶來很大的輔助作用.例如,攻擊者偽裝為某用戶身邊的朋友對該用戶進(jìn)行詐騙,或者重點對群體活躍性較高的用戶進(jìn)行攻擊,再借助于他們影響周圍的人等.
在第1節(jié)中已經(jīng)介紹了攻擊者可以從抖音用戶主頁獲得用戶的關(guān)注用戶列表、粉絲列表、點贊視頻列表等信息.在第2節(jié)中也討論了攻擊者可以利用查找通信錄好友和共同好友的功能獲得群體中盡可能多的用戶的抖音ID.攻擊者可以通過分析這些信息來挖掘用戶之間的關(guān)系.本文在這里討論2種用戶關(guān)系分析:親密度分析和群體活躍度分析.
親密度分析是討論群體中任意2個用戶之間的親密關(guān)系.可以這樣假設(shè):如果一個用戶a關(guān)注了另一個用戶b,或在a的通信錄中保存了用戶b的聯(lián)系電話,或者a對b發(fā)布的視頻點贊或評論過,那么二者之間可能存在親密關(guān)系.而如果攻擊者能夠?qū)θ后w用戶相互之間的關(guān)注、通信錄、點贊和評論關(guān)系進(jìn)行合理分析,則可能大致推算出群體用戶相互之間的親密關(guān)系.
本文首先根據(jù)用戶之間的關(guān)注、通信錄、點贊、評論4種關(guān)系計算4種親密分量,每種親密分量都被分為單向親密分量和雙向親密分量,然后將這4種親密分量加權(quán)求和,計算用戶之間的親密度.
3.1.1 關(guān)注關(guān)系親密分量計算


3.1.2 通信錄關(guān)系親密分量計算


3.1.3 點贊關(guān)系親密分量計算


(1)


3.1.4 評論關(guān)系親密分量計算
本文通過計算評論內(nèi)容的情感值來計算用戶之間評論關(guān)系的親密分量,評論內(nèi)容的情感值包括稱謂的情感值和語義的情感值2個方面.這樣設(shè)計的原因是基于2點:1)如果用戶a對用戶b的評論中有比較親密的稱謂,則說明a與b的親密度較高;2)如果a對b的正面的評論多,負(fù)面的評論少,則也能反映a對b的親密程度高.
本文首先構(gòu)建稱謂語詞典和情感詞典,然后利用這2個詞典對評論的情感值進(jìn)行計算:
1) 稱謂語詞典構(gòu)建
本文以吉常宏編著的《漢語稱謂大詞典》[12]為基準(zhǔn),結(jié)合劉靜敏[13]、吳超[14]、徐爽[15]關(guān)于漢語稱謂語的研究成果,整理出一個稱謂詞詞典.根據(jù)稱謂詞的親密程度,將稱謂詞分為6個等級,親密度最高級別R1為具有親屬關(guān)系的稱謂,不同的親密級別所賦予的親密分值不同,表3展示了稱謂語詞典中各親密級別的部分稱謂詞信息.

Table 3 Examples of Appellation Words Dictionary表3 稱謂詞詞典示例
2) 情感詞典構(gòu)建
本文通過基于情感詞典的方法來計算評論的情感值.通過對臺灣大學(xué)中文情感極性詞典(NTUSD)[16]、知網(wǎng)HowNet詞典[17]、大連理工大學(xué)中文情感詞匯本體庫(DUTIR)[16]、清華大學(xué)李軍中文褒貶義詞典[18]和BosonNLP情感詞典[19]進(jìn)行整合和篩選,構(gòu)建了包含情感詞、程度副詞和否定詞的情感詞典,所構(gòu)建的情感詞典的部分信息如表4所示.此外,本文還采用了結(jié)巴詞典[20]對句子進(jìn)行分詞.

Table 4 Examples of Sentiment Words Dictionary表4 情感詞詞典示例
情感詞詞典中包含6 094個正面情感詞和11 445個負(fù)面情感詞,將每個正面情感詞的分值設(shè)為1,負(fù)面情感詞的分值設(shè)為-1.程度副詞用于對情感詞進(jìn)行修飾,增強(qiáng)或減弱情感.本文將程度副詞劃分為6個類別:over,most,very,more,ish,insufficiently,權(quán)值分別為2,1.75,1.5,1.25,0.75,0.5.同時選取了58個否定詞,每個否定詞的權(quán)值設(shè)為-1,否定詞作用在情感詞前面,可能導(dǎo)致情感發(fā)生變化(奇數(shù)個否定詞),也可能不改變情感(偶數(shù)個否定詞).
3) 評論的情感值計算
對于某一條評論句S,求其情感值的步驟:
首先,以標(biāo)點符號和情感詞為基準(zhǔn),將評論S分為分句S1,S2,…,Sn,每個分句最多只包含一個情感詞.
然后,對于每一個分句Si,求分句的情感值.具體步驟有5步.
① 用結(jié)巴詞典對分句進(jìn)行分詞.
② 從分詞中尋找稱謂詞,并通過稱謂詞詞典獲取稱謂詞的情感值q1,若沒有稱謂詞,則q1為0.
③ 查找分句的情感詞,并根據(jù)情感詞典判斷其為正面還是負(fù)面的情感,獲取情感詞的情感分值q2,q2的值可能為1或-1(正面或負(fù)面的情感).
④ 尋找修飾情感詞的程度副詞,記錄程度副詞的數(shù)量m,并根據(jù)情感詞典確定各程度副詞的權(quán)值ω1,ω2,…,ωm
⑤ 向情感詞前方尋找否定詞,統(tǒng)計否定詞出現(xiàn)的次數(shù),記否定詞的個數(shù)為n.
于是,對于由多個程度副詞修飾的情感詞,采取求程度副詞的幾何平均數(shù)的方法確定程度副詞的權(quán)值,分句Si的情感值PSi為
(2)
最后,求整條評論句S的情感值PS,一條評論句的情感值等于各個分句的情感值之和:
(3)
舉例說明:如果某條評論的內(nèi)容為“玲兒今天穿的真漂亮,視頻拍得很好看,就是光線有點兒暗.”,其中,“玲”為姓名中的一個字,則這條評論的情感值計算過程為
首先,將評論分為3個分句:“玲兒今天穿的真漂亮”(S1),“視頻拍得很好看”(S2),“就是光線有點兒暗”(S3).
然后,計算各分句的情感值,S1中包含正面形容詞“漂亮”(分值1)和程度副詞“真”(權(quán)重1.25),并且還包含有親密稱謂“玲兒”(分值1.5);S2中包含正面形容詞“好看”(權(quán)重1)和程度副詞“很”(權(quán)重1.5);S3中包含負(fù)面形容詞“暗”(權(quán)重-1)和程度副詞“有點兒”(權(quán)重0.75).
于是,各分句的情感值為
PS1=1.5+1×1.25=2.75;
PS2=1×1.5=1.5;
PS3=-1×0.75=-0.75.
4) 評論關(guān)系的親密分量計算
得到每條評論的情感值后,采取如下方法計算評論關(guān)系的親密分量:


3.1.5 親密度計算


(4)
Qab=α×QFab+β×QCab+γ×QLab+δ×QTab.
(5)
攻擊者在獲得了群體各用戶之間的親密度后,也可以通過分析這些親密度信息大致分析出某一用戶在群體中是否活躍,在實施攻擊時可以重點針對一些群體活躍性較高的用戶.例如:重點對這一部分人灌輸一些有害的信息(欺騙性質(zhì)的商業(yè)宣傳、不健康行為、惡意軟件的安裝與使用等),再通過他們影響周圍的人,借助于這些群體活躍用戶在群體中的影響力,可能取得更好的有害信息傳播效果.
本文將群體活躍度分為被動活躍度和主動活躍度2種情況來討論.
1) 被動活躍度分析
某一用戶的被動活躍度是指群體中其他用戶對該用戶的單向親密度的匯總,反映了群體中其他用戶對該用戶的親密程度(或者說是受歡迎程度).例如,如果某個用戶很少被群體中的其他人放在通信錄,或者即使發(fā)布了很多抖音視頻,也很少有人關(guān)注他,很少有人給他點贊和評論,則可以近似認(rèn)為該用戶的被動活躍度低,受歡迎程度低.相反,如果一個用戶被群體中的很多人放在通信錄,或者即使發(fā)布了很少的抖音視頻,但卻有很多人關(guān)注他,很多人給他點贊和評論,則可以近似認(rèn)為該用戶的被動活躍度高,受歡迎程度高.
對于用戶a來說,如果群體中所有關(guān)注a的用戶為{x1,x2,…,xi},群體中把a(bǔ)放在通信錄的用戶為{y1,y2,…,yj},群體中對a發(fā)布的視頻點贊過的用戶為{z1,z2,…,zm},群體中對a發(fā)布的視頻評論過的用戶為{u1,u2,…,un},a發(fā)布的視頻數(shù)為va,則a的被動活躍度Ha可以計算為

(6)
計算被動活躍度的時候,需要考慮到一個用戶發(fā)布的視頻數(shù)(也可以認(rèn)為是抖音的使用程度)對群體活躍度的影響,有的用戶雖然視頻數(shù)很多,但其他用戶對其親密度卻很低,那他很可能在群體中不活躍,而有的用戶雖然視頻數(shù)很少,但其他用戶對其親密度卻很高,那么他可能在群體中很活躍.因此,我們將用戶關(guān)注、點贊和評論關(guān)系的親密度之和除以系數(shù)ln(視頻數(shù)+2),加2是為了避免視頻數(shù)為0的情況.
2) 主動活躍度分析
某一用戶的主動活躍度是指該用戶對群體中的其他用戶的單向親密度的匯總,反映了用戶對群體中其他用戶的親密程度(或者說是熱情程度).如果某個用戶的通信錄中很少有群體中的其他人,或者很少在抖音上關(guān)注其他人,很少給其他人的視頻發(fā)表評論,則我們可以近似認(rèn)為該用戶的主動活躍度低,對他人的熱情程度低.相反,如果一個用戶把群體中的很多人放在通信錄,或者在抖音上關(guān)注了很多人,給很多人的視頻發(fā)表了評論,則我們可以近似認(rèn)為該用戶的主動活躍度高,對他人的熱情程度高.
對于用戶a來說,如果a關(guān)注的該群體中的所有用戶為{x1,x2,…,xi},a的通信錄中包含的該群體中的用戶為{y1,y2,…,yj},該群體中被a點贊過的用戶為{z1,z2,…,zm},該群體中被a評論過的用戶為{u1,u2,…,un},則a的主動活躍度Ha為

(7)
無論是被動活躍度還是主動活躍度,都可以反映一個用戶在群體中是否活躍、人緣好不好,群體活躍度分析的結(jié)果可以為攻擊者實施進(jìn)一步有效攻擊提供輔助.
攻擊者要想實現(xiàn)第3節(jié)中介紹的親密度分析和群體活躍度分析,必須對群體用戶的關(guān)注、通信錄、點贊和評論信息進(jìn)行收集.在第1節(jié)中已經(jīng)介紹過,攻擊者可以通過收集用戶主頁上的信息獲知一個用戶關(guān)注了哪些其他用戶,點贊過哪些視頻,該用戶發(fā)布的視頻被哪些人評論過,可以通過查找通信錄好友和共同聯(lián)系人的功能獲得盡可能多的群體用戶的抖音ID.攻擊者可以將這些收集到的群體用戶的信息,匯總為5張數(shù)據(jù)表:群體用戶身份信息數(shù)據(jù)表、群體用戶關(guān)注信息數(shù)據(jù)表、群體用戶通信錄信息數(shù)據(jù)表、群體用戶點贊信息數(shù)據(jù)表和群體用戶評論信息數(shù)據(jù)表.這5張表的建立過程如圖4所示(圖4中的加粗菱形即表示為數(shù)據(jù)表):

Fig. 4 The collecting process of TikTok user data圖4 抖音用戶數(shù)據(jù)采集過程
攻擊者首先將已經(jīng)獲得的群體用戶電話號碼存入手機(jī)的通信錄,通過“查找通信錄好友”功能向抖音后臺同步手機(jī)通信錄,或者通過自動化的方式、以欺騙的手段向抖音服務(wù)器上傳通信錄,或讓抖音服務(wù)器獲知該用戶的通信錄發(fā)生了更新.通過查找通信錄好友獲得所有可以發(fā)現(xiàn)抖音ID的通信錄好友用戶集合(以A表示),并通過共同聯(lián)系人接口自動發(fā)送數(shù)據(jù)包,逐一查找攻擊者與這些用戶的共同好友列表,并通過第2節(jié)中介紹的迭代查詢的方法獲得這個群體中的用戶的盡可能多的抖音ID集合(以B表示).在這個過程中,攻擊者可以獲知每一位用戶的通信錄上有群體中的哪些人,由此建立“群體用戶通信錄信息數(shù)據(jù)表”,并獲得群體中盡可能多的用戶身份信息集合,由此建立“群體用戶身份信息數(shù)據(jù)表”.
然后,通過自動化程序發(fā)送請求,對B中的任意一位用戶u,查詢其關(guān)注列表(被關(guān)注者ID集合),根據(jù)被關(guān)注者ID集合,篩選出屬于本群體的被關(guān)注者,建立“群體用戶關(guān)注信息數(shù)據(jù)表”.查詢u發(fā)布的視頻列表(視頻號、視頻標(biāo)題),獲取其視頻列表中的每個視頻的評論信息(評論者ID、評論內(nèi)容等),根據(jù)評論者ID集合篩選出屬于本群體的用戶的評論,建立“群體用戶評論信息數(shù)據(jù)表”.查詢u點贊過的視頻列表(視頻發(fā)布者ID、視頻號、視頻標(biāo)題),根據(jù)發(fā)布者ID或視頻號,篩選出屬于本群體用戶的視頻,建立“群體用戶點贊信息數(shù)據(jù)表”.
經(jīng)過分析發(fā)現(xiàn),抖音App采用了基于客戶端加密的反爬蟲策略,所有的請求都需要攜帶X-Gorgon參數(shù),X-Gorgon是對Url, Postdata, Cookies, SesseionID進(jìn)行多次MD5加密后組成的字符串,而X-Gorgon的加密計算在客戶端就可以完成,不需要服務(wù)器端的參與.Android版抖音App的X-Gorgon的加密計算在libcms.so庫中完成,為了消除破解libcms.so的麻煩,本文采取直接利用抖音App中的libcms.so庫的方法.方法是先從抖音App中取出libcms.so,然后開發(fā)一個App,編寫Java代碼通過JNI機(jī)制調(diào)用libcms.so中的X-Gorgon的加密計算函數(shù).然后將App放在Android設(shè)備中安裝并運行,這個App通過開放端口的辦法,接收外來請求,并為請求者計算并返回X-Gorgon.

Fig. 5 Construction method of TikTok legitimaterequest data圖5 抖音合法請求數(shù)據(jù)構(gòu)造方法
發(fā)送請求的方法如圖5所示.我們讓PC端電腦和Android設(shè)備處于同一個局域網(wǎng)WiFi中,PC端程序負(fù)責(zé)構(gòu)造發(fā)送給抖音服務(wù)器的請求,包括Url, Postdata, Cookies, SesseionID等信息,并向Android設(shè)備中的服務(wù)App發(fā)送計算X-Gorgon請求(請求中攜帶上一步中構(gòu)造的Url, Postdata, Cookies, SesseionID),服務(wù)App收到計算X-Gorgon請求后,計算并返回X-Gorgon,PC端收到X-Gorgon后,重新構(gòu)造發(fā)送給抖音服務(wù)器的Web請求數(shù)據(jù),并向抖音服務(wù)器發(fā)送請求.抖音服務(wù)器收到請求后,驗證X-Gorgon參數(shù)合法,便會把該請求當(dāng)做合法請求對待.
為了驗證基于抖音共同聯(lián)系人的群體用戶關(guān)系分析的準(zhǔn)確性,我們選擇了3個真實的社會群體進(jìn)行了實驗,本節(jié)將分實驗1和實驗2對這3個社會群體分別進(jìn)行實驗和分析.
實驗1選擇了某一個學(xué)校的某一個班級的72位學(xué)生做實驗,做實驗之前我們已經(jīng)告知學(xué)生實驗的細(xì)節(jié),并征得了學(xué)生的同意.我們將學(xué)生的手機(jī)號碼添加到手機(jī)通信錄,并通過“查看通信錄好友”功能同步到抖音服務(wù)端.實驗中有61人的手機(jī)號和抖音ID的對應(yīng)關(guān)系被找到,其中有35人通過手機(jī)聯(lián)系人找到,26人通過共同聯(lián)系人找到,說明這26人設(shè)置了“允許將我推薦給好友”選項為關(guān)閉.能獲得抖音ID的61人中有6人的關(guān)注列表不能瀏覽,說明這6人設(shè)置了“誰可以看我對作品的點贊”選項為“僅自己和作者”.有5人的點贊視頻列表不能瀏覽,說明這5人設(shè)置了“誰可以看我對作品的點贊”為“僅自己和作者”.這些被屏蔽的信息會導(dǎo)致實驗對群體用戶的關(guān)系分析不全面的問題,但所涉及數(shù)據(jù)不多,對總體影響并不大.
72人中有11人不能通過手機(jī)號碼獲得抖音ID.通過與學(xué)生的交流,我們了解到其中有8人沒有將自己的手機(jī)通信錄同步到抖音App,還有3人沒有用過抖音,即沒有抖音賬號.這些缺失的群體用戶抖音信息也會導(dǎo)致對群體用戶的關(guān)系分析不全面的問題,因此,本實驗只針對群體中能找到抖音ID的61人之間的相互關(guān)系進(jìn)行分析,不把此11人考慮在內(nèi).
圖6所示為61個用戶相互間的關(guān)注關(guān)系,圖6中的單向箭頭從關(guān)注者指向被關(guān)注者,雙向箭頭表示雙方相互關(guān)注.圖7所示為61個用戶相互間的通信錄關(guān)系,圖7中的單向箭頭從某一用戶指向其手機(jī)通信錄中的用戶,雙向箭頭表示雙方都在對方的通信錄上.圖8所示為61個用戶相互間的點贊關(guān)系,圖8中的單向箭頭從點贊者指向被點贊者,箭頭上的數(shù)字代表點贊者對被點贊者發(fā)布的視頻點贊了多少次.雙向箭頭表示雙方相互進(jìn)行了點贊,箭頭上的數(shù)字代表雙方分別點贊了多少次,例如:用戶54和55雙方相互進(jìn)行了點贊,箭頭上的數(shù)量4∶3代表用戶54向用戶55點贊了4次,用戶55向用戶54點贊了3次.圖9所示為61個用戶相互間的評論的親密分量的計算結(jié)果信息,圖9中的單向箭頭從評論者指向被評論者,箭頭上的數(shù)字代表評論者對被評論者發(fā)布的視頻的評論的親密分量.雙向箭頭表示雙方相互進(jìn)行了評論,箭頭上的數(shù)字代表雙方評論的親密分量分別是多少,例如:用戶21和22雙方相互進(jìn)行了評論,箭頭上的數(shù)量2.25∶3代表用戶21對用戶22的評論親密分量為2.25,用戶22對用戶21的評論親密分量為3.

Fig. 6 The following relationship between group users圖6 群體用戶相互之間的關(guān)注關(guān)系

Fig. 7 The contacts relationship between group users圖7 群體用戶相互之間的通信錄關(guān)系

Fig. 8 The video like relationship between group users圖8 群體用戶相互之間的點贊關(guān)系
我們按照式(5)對群體用戶之間的雙向親密度進(jìn)行了計算,為了將用戶之間的親密度限制在1以內(nèi),我們設(shè)置α,β,γ,δ系數(shù)的值為保證每個類別的最大雙向親密度之和為1.在確定系數(shù)的取值之前,我們對300個用戶進(jìn)行了問卷調(diào)查,讓參與調(diào)查的人選出3種其認(rèn)為的最能體現(xiàn)親密度的親密分量,關(guān)注、通信錄、點贊和評論所得的票數(shù)如表5所示,化簡比例173∶186∶262∶279為2∶2.15∶3.03∶3.23,近似為2∶2∶3∶3的關(guān)系.因此我們設(shè)置α,β,γ,δ系數(shù)的值分別為保證這4種類別的最大雙向親密度為0.2, 0.2, 0.3, 0.3,以平衡4種親密分量關(guān)系.這4個數(shù)值也代表了4種親密分量在用戶關(guān)系分析上所占的比重.例如:對于關(guān)注類別的親密度,若雙方互為關(guān)注,則親密分量為2,為最大值,那么我們將α設(shè)置為0.2/2=0.1,此時,關(guān)注類別的最大親密度為0.2.表6所示為各系數(shù)的取值說明.

Table 5 Survey Results on the Importance of Intimacy表5 親密分量重要性調(diào)查結(jié)果

Table 6 Value of Intimacy Component Coefficient表6 親密分量系數(shù)取值
圖10所示為親密度的計算結(jié)果,圖10中線條(邊)的粗細(xì)代表親密程度,線條越粗代表雙方關(guān)系越親密.圖10右邊展示了親密度值0.1~0.9的圖例,群體中用戶之間親密度最大值為0.73,最小值為0.1.

Fig. 10 Calculation results of two-way intimacy ofgroup users圖10 群體用戶雙向親密度計算結(jié)果
為了驗證親密度計算結(jié)果的準(zhǔn)確性,我們對班級的學(xué)生進(jìn)行了問卷調(diào)查,問卷的問題之一是“你和你們班關(guān)系最好的3個人是誰?”,要求每位學(xué)生填寫與自己關(guān)系最好的3個同班同學(xué).由于這61人相互間的親密度分布在0.1~0.8之間,因此實驗對圖10中不同親密度值對應(yīng)的邊進(jìn)行單獨統(tǒng)計,分析不同親密度值對應(yīng)的邊與問卷調(diào)查結(jié)果匹配的程度,方法如下:
1) 將每位學(xué)生的回答結(jié)果形成3條邊,分別是從學(xué)生自己指向他(她)填寫的3位同學(xué),例如:用戶28的問卷調(diào)查結(jié)果為{28,[29,46,66]},則可以形成3條邊(28,29), (28,46), (28,66),本文稱這些邊為實際邊,若學(xué)生的回答結(jié)果中包含11個未獲得抖音ID的用戶,則不參與匹配.
2) 將圖10中的邊形成雙向關(guān)系,例如:邊(1,37)形成2條邊(1,37), (37,1),并將這些邊按照親密度值進(jìn)行歸類,本文稱這些邊為測試邊.
3) 將實際邊與測試邊進(jìn)行匹配,看不同親密度值范圍對應(yīng)的測試邊分別有多少條被匹配,并計算匹配比例.例如:親密度為0.7~0.8之間的4條測試邊為(21, 22),(22, 21),(28, 46),(46, 28),編號為21,22,28,46的用戶回答問卷的結(jié)果為:{21,[23,43,57]},{22,[21,26,54]},{28,[29,46,66]},{46,[1,28,33]}.則親密度為0.7~0.8之間的4條測試邊中有3條邊匹配,只有(21, 22)沒有匹配,則匹配率為75%.
測試結(jié)果如表7所示,從表7中可以看出,總體上親密度值越高的邊被匹配的比例越高,說明實驗對群體用戶的親密度計算結(jié)果是有效的.

Table 7 Validation of Intimacy Calculation Results表7 親密度計算結(jié)果驗證

Fig. 11 Calculation results of group users’ group-activeness圖11 各群體用戶群體活躍度計算結(jié)果
我們按照式(6)(7)對群體用戶的群體活躍度進(jìn)行了計算,結(jié)果如圖11所示,圖11展示了各用戶的主動活躍度和被動活躍度.為了驗證群體活躍度計算結(jié)果的準(zhǔn)確性,我們對學(xué)生進(jìn)行的問卷調(diào)查的問題之二是“你們班最合群的3個人是誰?”(“合群”可以近似認(rèn)為是對1個人的群體活躍性的一種表述,易于被調(diào)查人員理解),我們對各位學(xué)生的得票數(shù)進(jìn)行了統(tǒng)計,其中得票數(shù)最高的10人如表8所示,表8中列出了這些人的得票數(shù)、視頻數(shù)、主動活躍度和被動活躍度,得票數(shù)排名前10用戶都在前述61人之中.

Table 8 Information about the Most Group-Active 10 Users表8 群體中最活躍的10位用戶的相關(guān)信息
結(jié)合表8和圖11可以看出,這些用戶的主動活躍度和被動活躍度都較高,說明實驗對用戶的群體活躍度的計算結(jié)果是有效的.編號為33,35,43的用戶雖然沒有在抖音上發(fā)視頻,但仍然具有很高的群體活躍度和得票數(shù),而編號為46和54的用戶雖然發(fā)布抖音視頻很多,但群體活躍度和得票數(shù)并沒有排在最前面,說明用戶的人緣好壞、在群體中是否活躍與發(fā)布抖音視頻多少沒有直接關(guān)系.
在實驗2中,我們選擇2個社會群體進(jìn)行了實驗,群體1為某公司的員工群體,總?cè)藬?shù)68人;群體2為某興趣愛好團(tuán)體,總?cè)藬?shù)92人.在征得用戶同意的情況下,我們采取與實驗1相同的方式收集了群體用戶的電話號碼,并添加到手機(jī)通信錄,通過“查看通信錄好友”功能同步到抖音服務(wù)端.
群體1有54人的手機(jī)號和抖音ID的對應(yīng)關(guān)系被找到,群體2有76人的手機(jī)號和抖音ID的對應(yīng)關(guān)系被找到.我們采取和實驗1相同的方法對用戶之間的親密度進(jìn)行了計算.由于實驗1中親密度小于0.2的2個用戶之間的親密關(guān)系預(yù)測成功率較低,因此實驗2主要對0.2以上的親密度進(jìn)行分析,對親密度大于0.2的2個用戶設(shè)置問卷調(diào)查.群體1中親密度在0.2以上的邊數(shù)為76條,群體2中親密度在0.2以上的邊數(shù)為112條.
我們制作了網(wǎng)頁版的調(diào)查問卷,并通過微信群消息的形式邀請用戶參與問卷調(diào)查.問卷的問題設(shè)置與實驗1有所不同,主要包括2個問題:1)在本團(tuán)體(單位)中你與以下幾個人關(guān)系比較親密;2)在本團(tuán)體(單位)中以下幾個人與其他人關(guān)系處理得最好.問題1主要用來分析親密度計算結(jié)果的有效性,在問題1中我們會給出與被調(diào)查用戶親密度在0.2以上的用戶選項供用戶選擇,用戶對選項進(jìn)行正確與否的判斷.問題2主要用來分析群體活躍度計算結(jié)果的有效性,在問題2中我們會給出群體活躍度最高(主動活躍度和被動活躍度的和最高)的10位用戶供用戶選擇,用戶同樣對選項進(jìn)行正確與否的判斷.
群體1中實際有42人參與了問卷調(diào)查,所涉及的親密度在0.2以上的邊數(shù)為50條,形成問題1的選項數(shù)為50項.群體2中實際有63人參與了問卷調(diào)查,所涉及的親密度在0.2以上的邊數(shù)為86條,形成問題1的選項數(shù)為86項.我們對問卷調(diào)查中問題1的結(jié)果進(jìn)行了整理,結(jié)果如表9所示.從表9可以看出,總體上親密度值越高的邊(選項)被用戶認(rèn)可的可能性越高,說明實驗對群體用戶的親密度計算結(jié)果是有效的.

Table 9 Results of Two Groups’ Intimacy Questionnaire表9 2個群體的親密度問卷調(diào)查結(jié)果
我們也對問題2的結(jié)果進(jìn)行了統(tǒng)計,群體1中參與調(diào)查的42人共對420個選項(每個用戶對10個活躍度最高的用戶進(jìn)行正確性判斷)進(jìn)行選擇,其中281個選項被用戶判斷為正確,正確率為66.90%.群體2中參與調(diào)查的63人共對630個選項進(jìn)行選擇,其中379個選項被用戶判斷為正確,正確率為60.16%.群體活躍度的判斷準(zhǔn)確率均超過60%,說明實驗對群體活躍度的計算結(jié)果是有效的.群體1的正確率高于群體2,我們推測原因是群體1(單位)的成員相互之間的聯(lián)系緊密程度高于群體2(興趣愛好團(tuán)體).
通過第5節(jié)中的實驗可以了解到,抖音泄露共同聯(lián)系人的安全漏洞為攻擊者挖掘群體用戶的關(guān)系提供了可能,為攻擊者對群體用戶實施進(jìn)一步的網(wǎng)絡(luò)攻擊提供了有力的輔助,給用戶造成了一定的安全威脅.本文將可能造成的安全威脅概括為3個方面:
1) 抖音群體用戶的抖音賬號被暴露.攻擊者在獲得群體用戶的電話號碼信息后,能夠獲得群體中盡可能多的用戶的抖音賬號信息,使用戶對自己的隱私設(shè)置失效(關(guān)閉“允許將我推薦給好友”選項).
2) 攻擊者偽裝為某一用戶的親密朋友的身份對該用戶進(jìn)行詐騙.攻擊者通過計算用戶之間的親密度,能夠大致掌握某一用戶在群體中的社交關(guān)系,找到與其較為親密的朋友.攻擊者通過某些攻擊手段,偽裝為該用戶的親密朋友,對該用戶進(jìn)行詐騙,可能導(dǎo)致攻擊更容易取得成功.例如,攻擊者可以通過植入惡意軟件的方法,以親密朋友的QQ或微信賬號的身份向該用戶發(fā)送信息進(jìn)行詐騙.
3) 攻擊者對一些群體活躍性較高、人緣較好的用戶進(jìn)行重點攻擊.通過群體活躍度分析,攻擊者能夠了解到群體中哪些用戶群體活躍度較高,群體活躍度較高的用戶可能對周圍的用戶更具有影響力.因此攻擊者針對這些用戶實施攻擊,并借助于他們將攻擊擴(kuò)散到群體中的其他用戶,可能更易使攻擊效果擴(kuò)大化.
為了防御這種安全問題,我們分別從廠商和普通用戶的角度提出了安全防范建議.
1) 從抖音廠商的角度.抖音App開發(fā)者不應(yīng)當(dāng)把共同聯(lián)系人的賬號信息向用戶展示出來(如圖2所示),而是只向用戶展示共同聯(lián)系人的數(shù)量即可.如果必須要展示的話,也應(yīng)當(dāng)禁止展示那些把“允許將我推薦給好友”選項設(shè)置為關(guān)閉的用戶.此外,由于抖音App基于客戶端加密的反爬蟲策略已經(jīng)被實驗證明是無效的,因此,抖音App開發(fā)者應(yīng)當(dāng)采取有效的服務(wù)器端防爬蟲措施來防止攻擊者大量收集用戶數(shù)據(jù)的行為,而不應(yīng)當(dāng)僅僅依靠客戶端參數(shù)加密來防爬蟲.
2) 從用戶的角度.我們認(rèn)為用戶應(yīng)當(dāng)謹(jǐn)慎地使用“查找通信錄好友”的功能,盡量不要將自己的通信錄信息傳給抖音服務(wù)器,不僅給自己帶來潛在的危害,也可能損害通信錄好友的利益.此外,用戶在從事各種網(wǎng)絡(luò)活動時,也應(yīng)當(dāng)保護(hù)好自己的手機(jī)號碼信息,防止被惡意攻擊者所利用.
與本文研究社交App群體用戶的用戶關(guān)系類似,一些研究者在社交網(wǎng)絡(luò)的用戶關(guān)系強(qiáng)度、用戶親密度等研究方面做過一些相關(guān)工作.
社交網(wǎng)絡(luò)用戶之間的關(guān)系強(qiáng)弱可以通過用戶關(guān)系強(qiáng)度來度量,目前關(guān)于社交網(wǎng)絡(luò)用戶關(guān)系強(qiáng)度的研究主要建立在3種模型基礎(chǔ)上:圖模型、相似度模型和概率模型.在圖模型方面,Zhuang等人[21]提出一個基于核的學(xué)習(xí)算法來推斷社交媒體Flickr用戶的社交關(guān)系強(qiáng)度,利用核函數(shù)成對學(xué)習(xí)法來估算社會關(guān)系強(qiáng)度.Zhao等人[22]提出了一個綜合考慮用戶個人信息、交互活動和活動域來衡量用戶之間關(guān)系強(qiáng)度的通用框架.Zhong等人[23]提出了一個基于用戶特征和交互信息的潛在特征來推算用戶社會關(guān)系強(qiáng)度的模型,將矩陣分解與多核函數(shù)相結(jié)合.Guo等人[24]將多視圖下的用戶關(guān)系學(xué)習(xí)和關(guān)系強(qiáng)度建模耦合到一個過程框架中來發(fā)現(xiàn)潛在的用戶社會關(guān)系強(qiáng)度.針對因隱私設(shè)置或是數(shù)據(jù)丟失等問題導(dǎo)致的節(jié)點之間的關(guān)系不可見的問題,一些研究者運用邊緣權(quán)重預(yù)測的方法來分析社交網(wǎng)絡(luò)中節(jié)點之間的關(guān)系強(qiáng)度.Aicher 等人[25]提出了一種加權(quán)隨機(jī)塊模型,將隨機(jī)塊模型推廣到具有任意指數(shù)族分布的邊權(quán)的網(wǎng)絡(luò),推斷鏈接和邊緣權(quán)重的存在.Zhu等人[26]提出了一種新的基于局部網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)值預(yù)測方法,形成每個節(jié)點的鄰居集,能夠預(yù)測在部分鏈接權(quán)重信息丟失的情況下的鏈路權(quán)值.S等人[27]基于有監(jiān)督的機(jī)器學(xué)習(xí)進(jìn)行節(jié)點鏈接預(yù)測,使用權(quán)值來改善有監(jiān)督的鏈接預(yù)測的相關(guān)性.在相似度模型方面,Singla等人[28]提出搜索主題的相關(guān)性高的用戶之間存在較強(qiáng)的用戶關(guān)系.Yu等人[29]通過對微博用戶興趣的研究發(fā)現(xiàn),微博用戶之間的關(guān)系強(qiáng)度與興趣相似性正相關(guān).隨著基于位置服務(wù)的興起,一些研究者提出通過分析用戶軌跡相似度來挖掘移動社交網(wǎng)絡(luò)中的用戶關(guān)系強(qiáng)度的方法[30-31].在概率模型方面,Pham等人[32]根據(jù)用戶在時間和空間上的共現(xiàn)關(guān)系,構(gòu)建熵模型來計算用戶關(guān)系強(qiáng)度.He等人[33]提出多元逐步線性回歸模型,利用樸素貝葉斯分類器計算用戶關(guān)系強(qiáng)度.還有一些研究者提出隱變量模型,通過用戶之間的交互行為隱變量計算用戶關(guān)系強(qiáng)度[34-35].Xiong 等人[36]提出了一個概率圖模型來衡量社會網(wǎng)絡(luò)中不同用戶之間的關(guān)系強(qiáng)度,該模型考慮了用戶特征之間的相似性、用戶名的共現(xiàn)性和不同活動域中的交互活動.
在社交網(wǎng)絡(luò)用戶親密度的研究方面,一些研究者提出了利用社交網(wǎng)絡(luò)用戶親密度進(jìn)行社交社區(qū)發(fā)現(xiàn)的方法.劉瑤等人[37]提出了有向加權(quán)社交網(wǎng)絡(luò)中節(jié)點之間的親密度定義,在此基礎(chǔ)上設(shè)計了一種基于節(jié)點親密度和度的社區(qū)結(jié)構(gòu)檢測方法,為無向無權(quán)、有向無權(quán)、無向加權(quán)、有向加權(quán)等社交網(wǎng)絡(luò)的社區(qū)劃分提供了統(tǒng)一的解決方法.Zheng等人[38]針對移動社交網(wǎng)絡(luò)中高效的數(shù)據(jù)轉(zhuǎn)發(fā)所面臨的網(wǎng)絡(luò)連通性的不確定性的難題,提出了一種基于地理親密度的移動社交網(wǎng)絡(luò)(mobile social networks, MSNs)數(shù)據(jù)轉(zhuǎn)發(fā)方案,通過一種新的度量地理親密度的方法,對社交節(jié)點的地理信息和節(jié)點之間的友誼進(jìn)行量化.Wang等人[39]提出了一種基于節(jié)點間非對稱親密度的分層社區(qū)檢測算法.在有向加權(quán)網(wǎng)絡(luò)中,利用節(jié)點聚類算法有效地檢測出社群結(jié)構(gòu),生成一組最優(yōu)的社群,并采用了一個新的非對稱參數(shù)來度量節(jié)點之間的密切關(guān)系.Kong等人[40]提出了一種基于用戶親密度的社區(qū)發(fā)現(xiàn)算法,利用社交網(wǎng)絡(luò)局部拓?fù)湫畔?gòu)造一個親密度矩陣來度量節(jié)點間的親密度,通過計算節(jié)點的重要性,保證節(jié)點按特定的順序更新,并在標(biāo)簽傳播過程中評估標(biāo)簽對更新節(jié)點的影響.Chen等人[41]提出了一種基于親密度進(jìn)化聚類的動態(tài)社區(qū)結(jié)構(gòu)檢測算法,利用時間加權(quán)相似度矩陣,計算出社群演化過程中的時間變化,并利用微分方程來學(xué)習(xí)親密度演化行為,在交互過程中根據(jù)迭代模型更新節(jié)點間的親密度.
以上相關(guān)研究工作在計算用戶之間的關(guān)系強(qiáng)度或親密度時都沒有考慮到用戶之間的文本交流內(nèi)容的情感值,沒有如本文類似的工作,即采用社交媒體評論的文本情感分析來計算用戶之間的關(guān)系強(qiáng)度和親密度,因此,本文的研究工作是對已有研究工作的一種創(chuàng)新.
本文提出攻擊者利用群體用戶之間的關(guān)系能夠?qū)嵤└行У墓簦c之類似,一些研究者也提出過關(guān)于攻擊者利用社交網(wǎng)絡(luò)用戶之間的關(guān)系進(jìn)行攻擊的安全問題和相應(yīng)的安全防御方法.
Wondracek等人[42]提出利用社交網(wǎng)絡(luò)上的用戶所屬組的成員身份信息,可以唯一地標(biāo)識一位匿名用戶,實施反匿名攻擊.Tai等人[1]提出利用社交網(wǎng)絡(luò)中2個相連接的用戶節(jié)點的度數(shù)進(jìn)行友誼攻擊,對已發(fā)布的社交網(wǎng)絡(luò)數(shù)據(jù)集中的相關(guān)受害者進(jìn)行識別.Sun等人[2]在Tai等人[1]的工作的基礎(chǔ)上進(jìn)行了擴(kuò)展,提出了一種基于2個用戶的共同聯(lián)系人數(shù)量的攻擊的新方式,并提出了一種k次非負(fù)矩陣分解(k-degree non-negative matrix factorization,k-NMF)匿名性方法保護(hù)用戶共同好友數(shù)據(jù).Macwan等人[3]提出一種基于共同朋友序列的匿名化方法來防御共同好友攻擊,保證了在共同好友序列中至少有k個元素具有相同的值,增加一條邊的共同好友數(shù)量能夠降低其他邊的共同好友匿名化要求.Jin等人[5]發(fā)現(xiàn),在社交網(wǎng)站LinkedIn和Google Plus中,即使用戶通過隱私設(shè)置限制了其他用戶訪問共同好友列表,攻擊者也可以采取某些方法發(fā)起隱私竊取攻擊,識別目標(biāo)用戶的朋友和遠(yuǎn)程鄰居.他們也提出了一種通過用戶好友列表進(jìn)行友誼識別和推斷的友誼識別推斷(friendship identification and inference, FII)攻擊[4],可以利用用戶的偏好沖突導(dǎo)致的策略不一致來識別和推斷目標(biāo)用戶的很多好友.Liu等人[9]提出了一種利用朋友搜索引擎挖掘社交網(wǎng)絡(luò)用戶的好友關(guān)系的共謀攻擊方式,通過一個精心設(shè)計的由多個惡意請求者協(xié)同發(fā)起的查詢序列能夠使受害者用戶的友誼隱私設(shè)置失效.此外,一些研究者提出了利用社交網(wǎng)絡(luò)用戶節(jié)點之間的關(guān)系實施鄰域攻擊的方法[6-8],在攻擊者對目標(biāo)受害者在社交網(wǎng)絡(luò)上的鄰居節(jié)點和鄰居之間的關(guān)系有一定了解的基礎(chǔ)上,鄰域攻擊可以使攻擊者突破傳統(tǒng)的匿名技術(shù)來識別受害者的身份.為了防御鄰域攻擊,研究者們提出了一些新的匿名方法,包括K-匿名(K-anonymity)方法[6]、基于鄰域鄰接矩陣(ONAM)的匿名方法[7]、動態(tài)l-分集(dynamic-l-diversity)的匿名方法[8]等.
通過對這些研究工作的分析,可以發(fā)現(xiàn)這些研究工作所提出的攻擊者利用社交網(wǎng)絡(luò)用戶之間的關(guān)系進(jìn)行攻擊的方式都沒有把實際的社會群體作為攻擊對象,而本文所提出的攻擊手法是在攻擊者已知的社會群體的電話號碼等信息的基礎(chǔ)上,通過社交媒體來挖掘群體中用戶之間的關(guān)系,從而為攻擊者實施有效的攻擊提供輔助,是對已有研究工作的一種創(chuàng)新.
本文提出了抖音共同聯(lián)系人功能存在的泄露群體用戶的抖音賬號的安全問題,攻擊者還可以利用收集到的群體用戶相互之間的關(guān)注信息、通信錄信息、視頻點贊和評論信息,計算群體用戶之間的親密度和用戶的群體活躍度信息,這些信息能夠為攻擊者實施對群體用戶的進(jìn)一步有效攻擊提供一定的輔助.本文給出了具體的計算用戶親密度和群體活躍度的方法,并通過實驗驗證了所計算的群體用戶的親密度和群體活躍度信息的有效性,同時提出了這種安全問題對群體用戶可能造成的安全威脅,給出了相應(yīng)的安全防范建議.
本文的研究工作也存在一些局限性,例如,本文只是針對抖音App進(jìn)行了研究,實際上這項研究還可以擴(kuò)展到更多的App上,綜合運用更多的App來分析群體用戶的隱私泄露問題,不過由于我們在其他社交App上難以找到類似的安全漏洞,并且多個App之間通過什么形式進(jìn)行關(guān)聯(lián)依然是一個待解決的難題,這將是我們未來的研究工作需要解決的問題.此外,由于本文的實驗對象是現(xiàn)實中真實的用戶群體,考慮到群體用戶的個人隱私問題,因此,實驗規(guī)模和驗證力度有限,未來我們將尋找到既能有效驗證所提出的理論,又不危害測試人員個人隱私安全的有效實驗驗證方法.
作者貢獻(xiàn)聲明:樂洪舟提出研究思路,負(fù)責(zé)實驗方案設(shè)計、實驗數(shù)據(jù)分析和論文撰寫;何水龍負(fù)責(zé)實驗方案的具體實施、程序設(shè)計和測試;王敬負(fù)責(zé)實驗數(shù)據(jù)采集、算法設(shè)計和論文校對.