楊 陽,李曉宇
(1.鄭州大學(xué) 信息工程學(xué)院,鄭州 450001;2.天津市和平區(qū)網(wǎng)格化管理中心,天津 300041)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,用戶在使用網(wǎng)絡(luò)通信的過程中對自身隱私信息的保護意識不斷增強。在用戶使用網(wǎng)絡(luò)進行舉報的過程中,如何進行安全舉報、保障舉報人的隱私等安全問題日益凸顯,成為人們關(guān)注的重點之一。當前,主流的加密技術(shù)是通過對信息進行加密的方式,使得信息內(nèi)容能夠得到有效隱藏,從而保護了網(wǎng)絡(luò)傳輸過程中信息內(nèi)容的安全性,但是信息的發(fā)送者和接收者的相關(guān)信息,如身份、位置等隱私信息卻不能被隱藏。在網(wǎng)絡(luò)舉報過程中要想實現(xiàn)對發(fā)送節(jié)點身份和位置信息的保護,可將匿名通信技術(shù)應(yīng)用并貫穿到用戶的整個舉報過程中。
匿名通信[1]是指采用一定的方法將網(wǎng)絡(luò)通信中的節(jié)點身份信息和通信關(guān)系進行隱藏,使得攻擊者無法通過分析流量或竊聽的方式來倒推出節(jié)點間的關(guān)系,并無法追蹤到節(jié)點的通信過程,從而實現(xiàn)通信節(jié)點身份信息和位置信息的保密性和安全性。文獻[2]提出一種匿名通信技術(shù),即Mix 技術(shù),該技術(shù)通過采用隨機選擇、固定轉(zhuǎn)發(fā)策略完成通信重路由路徑的建立,從而使竊聽者無法獲取消息的傳輸路徑。為實現(xiàn)移動通信中位置的隱私保護。為實現(xiàn)移動通信中位置的隱私保護,文獻[3]基于空間混淆提出一種位置隱私保護方法,并提出位置隱私區(qū)域的生成算法,但該算法在需要提供高質(zhì)量通信服務(wù)時,位置的模糊程度被限制,因而不能有效地保護位置信息隱私保護。文獻[4]提出一種基于差分擾動的均衡增量近鄰查詢方法來實現(xiàn)隱私保護。該方法通過將可控的拉普拉斯噪聲添加到用戶的真實位置中,并生成干擾位置,再將干擾位置作為錨點,發(fā)送給位置服務(wù)商,這樣用戶的隱私性便得到了保證。文獻[5-7]介紹了其他一些匿名通信方案。
在線匿名舉報是有效保護舉報人身份的一個重要途徑,被舉報人甚至舉報受理機構(gòu)都不可能獲取舉報人身份,從而消除舉報人的后顧之憂,鼓勵大家積極舉報,是反腐敗、反瀆職和反商業(yè)犯罪的威力強大的手段。文獻[8]提出一種支持懸賞的匿名舉報方案,文獻[9]對該方案的安全性進行了分析并給出系統(tǒng)設(shè)計框架。文獻[10]提出一種基于比特承諾的可撤銷的匿名電子檢舉方案。文獻[11]提出一種利用基于身份的密碼體制的匿名電子舉報方案。文獻[12-14]提出一些匿名舉報方案并且對其在現(xiàn)實中的應(yīng)用進行分析。
上述匿名舉報方案主要著眼于保證舉報者在發(fā)送舉報消息過程中不泄露身份信息,但是沒有考慮到現(xiàn)實中舉報受理機構(gòu)(或者其他攻擊者)可以通過追蹤舉報消息的來源而確定舉報者的IP 地址和地理位置,進而通過線下手段獲取舉報人的身份。為克服上述問題,本文提出一種基于匿名通信技術(shù)的匿名秘密舉報方案。用戶使用匿名通信技術(shù)將舉報信息發(fā)送給服務(wù)器,保證用戶的身份和位置信息不會被包括舉報受理機構(gòu)在內(nèi)的任意個人或者機構(gòu)獲取,且舉報信息絕對保密,只有舉報受理機構(gòu)可以讀取。該方案所有用戶所在的終端都加入到網(wǎng)絡(luò)中并以對應(yīng)的節(jié)點表示,在整個通信過程中采用混合加密技術(shù)[5]加密消息、隨機選擇節(jié)點轉(zhuǎn)發(fā)消息的策略來實現(xiàn)通信過程的匿名性和舉報消息的保密性,通過使用隨機的轉(zhuǎn)發(fā)路徑來防止流量分析和追蹤攻擊。
為實現(xiàn)匿名秘密舉報,本文主要采取了以下3 個技術(shù)要點:1)使用匿名通信算法通過中轉(zhuǎn)節(jié)點來進行消息的轉(zhuǎn)發(fā),實現(xiàn)了對舉報人身份、位置信息、舉報內(nèi)容等隱私的保護;2)舉報方案依賴于公開密鑰系統(tǒng),但是公開密鑰算法的加密/解密效率相對較低,使用舉報受理機構(gòu)的公開密鑰直接來加密舉報內(nèi)容(可能是大量的數(shù)據(jù))是不合適的,因此,采用混合加密技術(shù)用對稱密鑰算法對明文消息進行加密解密操作,用公開密鑰對所用到的對稱密鑰進行加密解密操作,從而保證了這些舉報信息的安全可靠、不可泄露和不可偽造等特性;3)設(shè)計一種具有獎勵機制的舉報方案,以鼓勵用戶舉報。
匿名秘密舉報方案的基本思路是舉報人采用匿名通信機制向舉報受理機構(gòu)發(fā)出舉報信息,除舉報受理機構(gòu)外,其他任何人都不能獲得舉報信息的內(nèi)容,并且任何人包括舉報受理機構(gòu)都無法獲知發(fā)送舉報人的身份和位置信息[15-17]。匿名舉報方案可以使舉報人能夠完全隱藏自己的身份及位置信息,以防遭到別人的惡意報復(fù)。若舉報內(nèi)容被證明屬實,舉報受理機構(gòu)會給予舉報人獎勵,在獎勵過程中,同樣采用匿名通信機制實現(xiàn)對舉報人身份信息和位置信息的保密,確保這些信息不會被任何人包括舉報受理機構(gòu)獲得。同時,舉報受理機構(gòu)能夠核實舉報信息確實來自舉報人,并對真正的舉報人進行獎勵,任何人不能假冒舉報人領(lǐng)獎。
在初始時網(wǎng)絡(luò)中所有節(jié)點(含舉報受理機構(gòu)的服務(wù)器)加入到一個RSA 公開密鑰系統(tǒng)中。作為公開密鑰系統(tǒng)的成員,各個節(jié)點使用RSA 算法生成一對密鑰:一個私有密鑰Ski和一個公開密鑰PKi。所有節(jié)點的私有密鑰自己絕對保密,而公開密鑰都保存在密鑰管理中心,節(jié)點通過ID 號查詢密鑰管理中心便可以獲得到其他節(jié)點的公開密鑰。此外,服務(wù)器的身份和位置是公開的,而其他節(jié)點真實身份和位置則是保密的。
當發(fā)送節(jié)點采用匿名通信協(xié)議向服務(wù)器發(fā)送消息時主要有以下3 個步驟:
1)先加密消息。采用對稱加密和非對稱加密的混合加密來完成對消息的加密操作。
2)轉(zhuǎn)發(fā)加密后的消息。利用隨機選擇的中轉(zhuǎn)節(jié)點進行消息的轉(zhuǎn)發(fā),消息經(jīng)過多次轉(zhuǎn)發(fā)最后到達服務(wù)器。因為消息是加密的,所以除服務(wù)器外,每一個中轉(zhuǎn)節(jié)點都不能獲取消息的內(nèi)容。
3)返回確認的消息。服務(wù)器回復(fù)發(fā)送節(jié)點的消息是按照原消息路徑進行返回,最后到達發(fā)送節(jié)點。
這個協(xié)議可以確保任意中轉(zhuǎn)節(jié)點和服務(wù)器都不知道該消息的發(fā)送者是哪個節(jié)點,從而保護了發(fā)送節(jié)點的身份和位置隱私,真正實現(xiàn)了匿名通信。匿名通信模型如圖1 所示。
圖1 匿名通信模型Fig.1 Anonymous communication model
在本文方案中,每一個中轉(zhuǎn)節(jié)點接收到消息再轉(zhuǎn)發(fā)都是一個抽出舉報信息(密文)后重新選擇轉(zhuǎn)發(fā)目標的過程,是在應(yīng)用層實現(xiàn)的,所以是一次新的通信過程。因此,通過發(fā)路由表、源地址、目的地址等方法實現(xiàn)溯源最多只能溯源到上一個轉(zhuǎn)發(fā)節(jié)點,不可能找到最初的發(fā)送者。
1.1.1 發(fā)送節(jié)點發(fā)送消息過程
發(fā)送節(jié)點將要發(fā)送的消息記作P,并為該消息生成序列碼s,該序列碼隨機產(chǎn)生。
首先發(fā)送節(jié)點r0用AES 算法生成兩個對稱密鑰K0和K1。K0用于對消息P 進行加密,形成密文m,用服務(wù)器的公開密鑰PKs加密對稱密鑰K0,將這兩者與序列碼s 組合在一起形成報文mk。發(fā)送節(jié)點r0用對稱密鑰K1對報文進行加密,作為發(fā)送消息的第1 個部分。發(fā)送節(jié)點r0隨機選擇下一個節(jié)點r1,r1是不同于服務(wù)器和r0的其他中轉(zhuǎn)節(jié)點。然后用第1 個中轉(zhuǎn)節(jié)點r1的公開密鑰PK1對密鑰K1進行加密,形成發(fā)送消息的第2 個部分。將這2 個部分組合起來,便可得到發(fā)送節(jié)點r0最終要發(fā)送的消息。
算法1發(fā)送節(jié)點發(fā)送消息算法
1.1.2 中轉(zhuǎn)節(jié)點轉(zhuǎn)發(fā)消息過程
發(fā)送節(jié)點r0將消息先發(fā)送給中轉(zhuǎn)節(jié)點r1。當節(jié)點r1收到消息后,先用節(jié)點r1的私有密鑰SK1對消息的第2 部分c2進行解密操作,得到對稱密鑰K1,再用K1解密消息的第1 部分c1,得到報文,并將序列號s和發(fā)送節(jié)點r0的IP 地址存入到路由表t1中,如表1 所示(所有節(jié)點i都有一個相對應(yīng)的表格ti),并對路由表進行更新。最后中轉(zhuǎn)節(jié)點r1以概率pf發(fā)給服務(wù)器,或者以概率1-pf發(fā)給除r1和r0之外的節(jié)點中隨機選出的中轉(zhuǎn)節(jié)點r2。
表1 路由表Table 1 Routing table
無論中轉(zhuǎn)節(jié)點ri發(fā)給除服務(wù)器外的哪個節(jié)點,都是先用隨機選擇一個AES 對稱密鑰Ki對報文進行加密,作為消息的第1 部分,并用該節(jié)點的公開密鑰PKi+1對密鑰Ki進行加密,作為消息的第2 個部分,然后將這兩部分內(nèi)容組成最終要發(fā)送的消息,再進行轉(zhuǎn)發(fā)操作。
中轉(zhuǎn)節(jié)點r2收到消息后進行和中轉(zhuǎn)節(jié)點r1同樣的操作,并將記錄下的序列號s、上一個節(jié)點r1的IP地址存入表t2中,同時更新路由表。然后以相同的概率將消息發(fā)送給服務(wù)器或者中轉(zhuǎn)節(jié)點r3。當中轉(zhuǎn)節(jié)點r3收到消息之后,重復(fù)上述過程。經(jīng)過多個中轉(zhuǎn)節(jié)點的轉(zhuǎn)發(fā)操作之后,消息最終到達服務(wù)器。
因此,消息不是直接發(fā)給服務(wù)器,而是經(jīng)過一組中轉(zhuǎn)節(jié)點r1,r2,…,rk的多次轉(zhuǎn)發(fā),最終被服務(wù)器接收到。
算法2中轉(zhuǎn)節(jié)點對消息進行轉(zhuǎn)發(fā)算法
1.1.3 服務(wù)器發(fā)送回復(fù)消息過程
如果服務(wù)器要回復(fù)消息給發(fā)送節(jié)點,則執(zhí)行以下步驟:
1)服務(wù)器根首先據(jù)序列號s 找到轉(zhuǎn)發(fā)該消息給自己的節(jié)點(即最后一個中轉(zhuǎn)節(jié)點),接著服務(wù)器回復(fù)發(fā)送節(jié)點的消息作P1,服務(wù)器向中轉(zhuǎn)節(jié)點發(fā)送的消息記作ANSr0,它由2 個部分組成:第1 個部分是用解密得到的發(fā)送節(jié)點r0的密鑰K0加密消息P1,產(chǎn)生密文,然后將原序列碼s 和密文組合起來,用服務(wù)器的對稱密鑰Ks對組合起來的內(nèi)容進行加密操作;第2 個部分是采用序列碼s 所對應(yīng)節(jié)點的公開密鑰PKi加密服務(wù)器的對稱密鑰Ks,利用序列碼s 查找簡易路由表,得到轉(zhuǎn)發(fā)消息給自己的上一個節(jié)點ri。
2)中轉(zhuǎn)節(jié)點ri收到服務(wù)器發(fā)來的消息后,用私有密鑰SKi對消息進行解密操作,得到服務(wù)器的對稱密鑰Ks,再用解密得到的Ks去解密消息的第1 個部分,從而得到序列碼和密文。用節(jié)點的對稱密鑰Ki加密序列碼和密文,然后查找路由表ti,選擇此消息序列碼所對應(yīng)的節(jié)點的公開密鑰PKi-1去加密節(jié)點的對稱密鑰Ki。將路由表中查到的IP 地址發(fā)送給節(jié)點ri-1,同時將表中的該項記錄刪除。
3)若中轉(zhuǎn)節(jié)點ri-1接收到消息,那么重復(fù)步驟2,繼續(xù)轉(zhuǎn)發(fā)回復(fù)消息;直到消息到達最初的發(fā)送節(jié)點r0。
4)發(fā)送節(jié)點r0收到消息后,用自己的私有密鑰SKr0對消息進行解密,從而得到對稱密鑰Ki,再用Ki繼續(xù)解密消息,獲得序列碼和密文。最后發(fā)送節(jié)點用自己的密鑰K0解密密文,便可得到服務(wù)器發(fā)送的回復(fù)消息P1。
算法3服務(wù)器發(fā)送回復(fù)消息算法
舉報人利用匿名通信技術(shù)實現(xiàn)匿名舉報的基本過程如下:
1)舉報人利用匿名通信協(xié)議將舉報信息發(fā)送給舉報受理機構(gòu)。
2)舉報受理機構(gòu)收到舉報信息后,記錄舉報信息并且利用匿名通信協(xié)議向舉報人回復(fù)一條確認信息。
3)舉報人收到回復(fù)消息,確認自己的舉報已經(jīng)被受理,且舉報信息未被篡改。
1.2.1 舉報人舉報信息的發(fā)送
舉報人發(fā)送舉報信息過程如下:
1)假定舉報人位于節(jié)點r0,使用AES 算法生成密鑰K0。舉報人作為初始發(fā)送節(jié)點發(fā)送舉報信息。發(fā)送的舉報信息包含兩部分內(nèi)容:第1 個部分先生成AES 密鑰K0對將要發(fā)送的明文舉報信息P 進行加密,形成密文c;第2 個部分用舉報受理機構(gòu)s 的公開密鑰PKs對發(fā)送節(jié)點r0的對稱密鑰K0進行加密。
2)舉報人調(diào)用匿名通信協(xié)議算法將舉報信息發(fā)送至舉報受理機構(gòu)。
算法4舉報人發(fā)送舉報消息算法
1.2.2 舉報受理機構(gòu)確認信息的回復(fù)
舉報受理機構(gòu)收到最后一個中轉(zhuǎn)節(jié)點rk發(fā)送的SENDr0后,用私有密鑰SKs解密得到發(fā)送節(jié)點r0的密鑰K0,用密鑰K0再次解密,得到舉報信息P,最后用密鑰K0對將要回復(fù)的內(nèi)容進行加密。
舉報受理機構(gòu)向舉報人回復(fù)確認信息的具體實現(xiàn)過程如下:
1)舉報受理機構(gòu)收到舉報信息P 之后,先給該舉報信息P 分配一個唯一的信息標識號IDp,同時利用SHA-1 算法作用于舉報信息P,生成舉報信息摘要MA,其密鑰為Ka,即MA=Ka(P)。再將信息摘要MA、信息標識號IDp、Ka組合在一起,并用舉報受理機構(gòu)的私有密鑰SKs對其進行加密得到確認信息MAI,即MAI=E_SKs(MA,IDp,Ka)。
2)舉報受理機構(gòu)調(diào)用算法3 將MAI 返回給發(fā)送節(jié)點。
3)舉報受理機構(gòu)調(diào)用匿名通信協(xié)議中的服務(wù)器回復(fù)確認信息算法將確認信息返回給發(fā)送節(jié)點r0。
4)發(fā)送節(jié)點r0收到該信息后,則用自己的私有密鑰SKr0解密得到對稱密鑰K2i,再用K2i解密信息,得到密文,最后用本身的密鑰K0對密文進行解密,得到信息摘要MA、舉報信息標識號IDp、密鑰Ka,再用Ka解密得到舉報信息P。到此,舉報人確認自己的舉報已被受理,而且舉報信息未被篡改。
同時,舉報人以Ka為密鑰,使用SHA-1 算法作用于舉報信息P,生成摘要MA1,即MA1=Ka(P)。如果MA1=MA,則舉報人確認舉報信息未被篡改。
至此,舉報人利用匿名通信協(xié)議完成了匿名舉報,并得到了舉報受理機構(gòu)的回復(fù)。在整個過程中,每個節(jié)點(包括舉報受理機構(gòu))都只知道發(fā)送信息給自己的上一個節(jié)點,無法知道發(fā)送舉報信息的節(jié)點是誰。中轉(zhuǎn)節(jié)點r1雖然知道發(fā)送節(jié)點r0的位置,但是無法知道r0就是舉報人,實現(xiàn)了對舉報人身份和位置隱私的保護。
算法5舉報受理機構(gòu)發(fā)送回復(fù)消息算法
若舉報信息被證實為真,舉報受理機構(gòu)要給予舉報人獎勵。
1)舉報受理機構(gòu)在自己網(wǎng)站上的公告板上公布PM=<IDp,其中,IDp為舉報信息標識號為使用K0對隨機字符串s 加密后的結(jié)果。
2)真正的舉報人可以根據(jù)自己的舉報信息標識號IDp檢索公告板得到PM,然后利用K0解密即可得到s。
3)舉報人得到s 之后,仍然使用匿名通信協(xié)議將信息“s+安全的收款款方式”發(fā)送給舉報受理機構(gòu)。其中,安全的收款方式可能是一個匿名轉(zhuǎn)賬賬戶,收到匯款時自動轉(zhuǎn)給舉報人的賬戶,也可能是一家金融代理機構(gòu)的賬戶,它再轉(zhuǎn)給舉報人賬戶。相關(guān)法律保證了匿名轉(zhuǎn)賬賬戶經(jīng)營者或者金融代理機構(gòu)必須保證客戶隱私,不得將匯款去向透露給包括舉報受理機構(gòu)在內(nèi)的任何組織和個人。因此,不可能通過追蹤獎金去向而發(fā)現(xiàn)舉報人身份。
4)舉報受理機構(gòu)收到之后,先進行解密,驗證s和IDp,以確認舉報人真實性,再將獎金根據(jù)該收款的要求匯出,至此完成了對舉報人的獎勵。
算法6獎勵舉報人算法
舉報消息在傳送過程中,所有的相關(guān)節(jié)點都是對等的,不存在需要依賴的某些特殊節(jié)點。因此,如果網(wǎng)絡(luò)中任意節(jié)點發(fā)生故障,不會對舉報消息的正常發(fā)送產(chǎn)生影響,這是因為該方案具有完全自組織、無中心的特點。同時,任何一個節(jié)點出現(xiàn)問題都不會對整個舉報消息的發(fā)送過程產(chǎn)生影響,即使存在惡意節(jié)點的合謀攻擊,也無法得到完整的通信線路,除非攻擊者與節(jié)點中除舉報人節(jié)點和舉報受理機構(gòu)以外的所有節(jié)點一起合謀,顯然這是一個極小概率事件。舉報消息要發(fā)送到舉報受理機構(gòu),舉報受理機構(gòu)的回復(fù)消息要返回給舉報人,那么成功建立一條通信路徑至關(guān)重要。通信路徑的可達和可靠是該方案有效的一個前提。
該方案以固定的轉(zhuǎn)發(fā)概率完成重路由路徑選擇,記轉(zhuǎn)發(fā)概率為pf,路徑長度為L=k+1,k為轉(zhuǎn)發(fā)次數(shù)(中轉(zhuǎn)節(jié)點個數(shù))。經(jīng)過k次轉(zhuǎn)發(fā),信息仍未發(fā)送到舉報受理機構(gòu)的概率為:
取pf=1/2,L=8,則:
舉報人發(fā)送的舉報信息經(jīng)過較少幾次(不超過7 次)轉(zhuǎn)發(fā)之后,仍然不能到達舉報受理機構(gòu)的概率僅為0.78%,這個概率基本上可以忽略不計。
為保障舉報信息百分之百到達舉報受理機構(gòu)獲得受理,可以約定舉報者等待一段時間TA之后仍然未收到舉報服務(wù)器的確認,則重發(fā)舉報信息,TAC稱為重發(fā)閾值。由于現(xiàn)實中對于舉報者而言,重要的是舉報受理機構(gòu)確定收到舉報信息,而獲得舉報服務(wù)器快速乃至實時回復(fù)并不是必要的,因此,TA可以選取相對較長的一段時間,例如1 h,這樣可以避免舉報者多次發(fā)送重復(fù)的信息。容易看到,最多經(jīng)過幾次重發(fā),舉報者收到舉報受理機構(gòu)的確認信息的概率接近于100%。
綜上所述,該方案可以有效地實現(xiàn)舉報人將舉報消息發(fā)送給舉報受理機構(gòu),具有很好的可行性。
設(shè)轉(zhuǎn)發(fā)概率為pf,一次消息發(fā)送過程的路徑長度為L=k+1。根據(jù)概率論,路徑長度恰好為L的概率如下:
則平均路徑長度如下:
容易看到,平均路徑長度只和轉(zhuǎn)發(fā)概率有關(guān),轉(zhuǎn)發(fā)概率越大,平均路徑長度越長。
在本文的匿名舉報方案中,所有的中轉(zhuǎn)節(jié)點都是隨機選出來的,不依賴于網(wǎng)絡(luò)中任何特定的節(jié)點,因此不會因為任何節(jié)點的故障或者性能瓶頸導(dǎo)致舉報消息無法順利發(fā)送。理論上講,無論網(wǎng)絡(luò)中有多少個節(jié)點出現(xiàn)故障,只要還有少數(shù)n個節(jié)點(n大于等于平均路徑長度)正常工作,舉報消息仍然可以正常發(fā)送。因此,該方案具有很好的健壯性。
基于匿名通信技術(shù)的匿名舉報方案主要涉及3 種隱私的安全性保護,分別是舉報人身份隱私、舉報人位置隱私和舉報內(nèi)容隱私。其中,舉報人身份和位置的隱私是指在舉報的全過程中,舉報受理機構(gòu)、任意中轉(zhuǎn)節(jié)點和攻擊者都不能獲取舉報人的身份和地理位置信息。舉報內(nèi)容的隱私是指在舉報消息的轉(zhuǎn)發(fā)過程中,任意中轉(zhuǎn)節(jié)點和攻擊者都無法獲得舉報消息內(nèi)容[18-20]。
定理1舉報人身份信息是保密的,包括舉報受理機構(gòu)在內(nèi)的任何人都無法獲取。
證明舉報人將經(jīng)過加密的舉報消息進行發(fā)送,在舉報消息中不包含任何與自己身份有關(guān)的內(nèi)容。舉報受理機構(gòu)只能獲取舉報消息而不能獲取舉報人的身份信息。任意的中轉(zhuǎn)節(jié)點或者攻擊者只能得到舉報消息的密文,因為沒有舉報機構(gòu)的私有密鑰,所以無法解密密文,也無法獲取任何有用信息,包括舉報人的身份信息。
定理2舉報人位置是保密的,包括舉報受理機構(gòu)在內(nèi)的任何人都無法獲取。
證明舉報受理機構(gòu)收到舉報信息后,能夠確定的只是把舉報消息發(fā)給它的那個節(jié)點(即最后一個轉(zhuǎn)發(fā)消息的節(jié)點),根據(jù)匿名通信協(xié)議,顯然這個節(jié)點一定不是舉報者。即使該節(jié)點與舉報受理機構(gòu)合謀,它們?nèi)匀粺o法確定舉報者,因為該節(jié)點知道的也只是上一個轉(zhuǎn)發(fā)消息給自己的節(jié)點,根據(jù)匿名通信協(xié)議,它可能是舉報節(jié)點,更可能只是倒數(shù)第2 個中轉(zhuǎn)節(jié)點。而且由于中轉(zhuǎn)節(jié)點都是隨機選擇的,因此舉報受理機構(gòu)想得到任意一條轉(zhuǎn)發(fā)路徑中的所有中轉(zhuǎn)節(jié)點的支持來回溯舉報者是一個概率極小的事件,在現(xiàn)實中不可能發(fā)生。而且,即使整個消息轉(zhuǎn)發(fā)路徑上的所有中轉(zhuǎn)節(jié)點都參與合謀,舉報受理機構(gòu)能夠沿著轉(zhuǎn)發(fā)路徑回溯到第一個轉(zhuǎn)發(fā)節(jié)點,仍然無濟于事。因為第一個轉(zhuǎn)發(fā)節(jié)點只知道消息是上一個節(jié)點(事實上的舉報者)發(fā)給自己的,但是并不能確定該節(jié)點就是舉報者。
如果一個中轉(zhuǎn)節(jié)點想要獲取舉報者的位置信息,它所知道的也只是上一個轉(zhuǎn)發(fā)消息給自己的節(jié)點,能做的事情也只是如上述舉報受理機構(gòu)一樣地設(shè)法回溯(獲取路徑前方所有中轉(zhuǎn)節(jié)點支持的前提下)。這不但是極其困難(實質(zhì)上不可行),而且即使回溯到第1 個中轉(zhuǎn)節(jié)點,仍然無法確定發(fā)送者。
任意的外來攻擊者只能監(jiān)聽信道上傳輸?shù)臄?shù)據(jù),而這些數(shù)據(jù)都是加密的,它不可能得到任何有意義的信息。另一方面,即使外來攻擊者攻破了部分乃至全部中轉(zhuǎn)節(jié)點,也只是相當于部分(后者全部)節(jié)點與攻擊者合謀,根據(jù)上面的論證可以看出,攻擊者仍然無法獲取舉報者的位置信息。
定理3舉報消息內(nèi)容是秘密的,除了舉報受理機構(gòu)外,任意中轉(zhuǎn)節(jié)點和攻擊者都不可能獲得舉報消息的內(nèi)容。
證明第i個中轉(zhuǎn)節(jié)點接收到上一個節(jié)點發(fā)送的消息SENDr0=(c1,c2,c3)=(Ki(s,K0(P)),PKs(K0),PKi(Ki))后,經(jīng)過解密,只能得到序列號s、加密的密文K0(P)以及Ki,其中,經(jīng)過加密的密文中包含舉報人的舉報信息P,但是加密的密文K0(P)需用密鑰K0才能解密,而K0是由舉報受理機構(gòu)的公有密鑰加密,由公開密鑰算法可知,K0只能由舉報受理機構(gòu)的私有密鑰才能解密。因此,中轉(zhuǎn)節(jié)點不能獲得舉報人發(fā)送的舉報消息的內(nèi)容P。
任意的攻擊者只能截獲在信道中傳輸?shù)臄?shù)據(jù)報,而根據(jù)匿名通信方案,舉報消息是經(jīng)過發(fā)送者的密鑰K0和中轉(zhuǎn)節(jié)點的密鑰Ki的雙重加密的。攻擊者不可能得到這兩個密鑰,因而沒有辦法恢復(fù)出舉報消息原文。
可以證明舉報受理機構(gòu)發(fā)給舉報者的確認消息也是秘密的。中轉(zhuǎn)節(jié)點收到舉報受理機構(gòu)發(fā)送的回復(fù)確認消息ANSr0=(Ks(s,K0(P1)),PKi(Ks))后,通過解密該消息,中轉(zhuǎn)節(jié)點可以獲取該消息的序列號s 和密文K0(P1)。由對稱密鑰算法可知,密文只能通發(fā)送節(jié)點的對稱密鑰K0才能解密,而K0只有舉報人和舉報受理機構(gòu)才有。因此,中轉(zhuǎn)節(jié)點不能獲取舉報機構(gòu)的回復(fù)確認消息的內(nèi)容。同理,攻擊者也不可能獲取。
在匿名舉報方案中,舉報消息至少經(jīng)過一個節(jié)點的轉(zhuǎn)發(fā)才能到達舉報受理機構(gòu),一般情況下是經(jīng)過多個中轉(zhuǎn)節(jié)點轉(zhuǎn)發(fā)的。因此,舉報受理機構(gòu)可以斷定發(fā)送舉報消息給自己的節(jié)點一定不是舉報者。如果舉報受理機構(gòu)想要獲取舉報者的身份,它可能與中轉(zhuǎn)節(jié)點合謀,設(shè)法沿著轉(zhuǎn)發(fā)路徑回溯到舉報節(jié)點。當然,對于忠實可靠的中轉(zhuǎn)節(jié)點來說,它會拒絕與舉報受理機構(gòu)合謀,導(dǎo)致舉報機構(gòu)的企圖失敗。然而,舉報受理機構(gòu)有可能事先在網(wǎng)絡(luò)中安排若干數(shù)量的惡意節(jié)點,如果這些節(jié)點被選為中轉(zhuǎn)節(jié)點,它就可以借助這些惡意節(jié)點的同謀來回溯舉報者。
假定網(wǎng)絡(luò)中共有N個可能的中轉(zhuǎn)節(jié)點(除舉報受理機構(gòu)和舉報者外),其中有K個節(jié)點是惡意節(jié)點。如果一次舉報過程中路徑長度為L=2,即只有一個中轉(zhuǎn)節(jié)點,而這個節(jié)點恰巧是惡意節(jié)點,那么舉報受理機構(gòu)與該節(jié)點合謀,就可以確定舉報者就是發(fā)送消息給該惡意節(jié)點的上一個節(jié)點,從而發(fā)現(xiàn)了舉報者的身份。由于中轉(zhuǎn)節(jié)點是隨機選擇的,因此一個惡意節(jié)點被選中的概率是K/N,而根據(jù)式(3),路徑長度為2 的概率為(1-pf),所以,舉報代理機構(gòu)獲取舉報者身份的概率為K(1-pf)/N。推對于任意的路徑長度L≥2,舉報代理機構(gòu)發(fā)現(xiàn)舉報者身份的概率如下:
因此,在一般情況下,舉報代理機構(gòu)發(fā)現(xiàn)舉報者身份的平均概率如下:
定義匿名度如下:
假定節(jié)點總數(shù)N=100,圖2 給出了匿名度隨惡意節(jié)點個數(shù)的變化曲線??梢钥吹剑谝欢ǖ霓D(zhuǎn)發(fā)概率下,惡意節(jié)點數(shù)量越多,匿名度就越低,這是符合預(yù)期的,因為惡意節(jié)點越多,與舉報代理機構(gòu)同謀的節(jié)點就越多,后者獲得舉報者身份的概率就越大,相應(yīng)地,匿名度越低。另一方面,當惡意節(jié)點數(shù)量確定時,轉(zhuǎn)發(fā)概率越大,匿名度就越高,因為轉(zhuǎn)發(fā)概率越大,舉報消息在到達舉報代理機構(gòu)之前經(jīng)過的轉(zhuǎn)發(fā)次數(shù)就越多,轉(zhuǎn)發(fā)路徑越長,相應(yīng)地,舉報代理機構(gòu)回溯到舉報者的概率就越低。最后,當惡意節(jié)點數(shù)量為50 時,即網(wǎng)絡(luò)中惡意節(jié)點數(shù)量達到了全部節(jié)點數(shù)量的50%,這在現(xiàn)實中是不可能出現(xiàn)的,但3 種轉(zhuǎn)發(fā)概率下的匿名度都超過了0.5。而當惡意節(jié)點數(shù)量為10 時(比例為10%),3 種轉(zhuǎn)發(fā)概率下的匿名度都超過了0.9,當轉(zhuǎn)發(fā)概率為0.75 時,匿名度達到了0.95。在現(xiàn)實中,舉報代理機構(gòu)面向全社會接受舉報,網(wǎng)絡(luò)中惡意節(jié)點的比例通常遠小于10%,匿名度還會進一步提高??梢?,本文方案能夠有效地保證舉報者的身份隱私。
圖2 匿名度與惡意節(jié)點個數(shù)的關(guān)系Fig.2 Relationship between anonymity degree and number of malicious nodes
實驗的 硬件環(huán) 境:CPU 為Intel?Pentium?CPU i5-8265U @ 1.80 GHz;內(nèi)存為24.00 GB;操作系統(tǒng)為Windows 10。實驗的軟件環(huán)境:基于Eclipse Mars,x64 平臺,jdk-8.0.2。
圖3 給出當轉(zhuǎn)發(fā)概率pf分別等于0.25、0.50、0.75時,隨著網(wǎng)絡(luò)節(jié)點總數(shù)的不斷增加舉報消息的平均路徑長度的變化??梢钥闯觯骄窂介L度在恒定值上下小范圍波動,沒有明顯變化。這與3.2 節(jié)關(guān)于平均路徑長度的理論計算是一致的。從圖3 還可以看出,在節(jié)點數(shù)一定的情況下,轉(zhuǎn)發(fā)概率不同,節(jié)點的平均轉(zhuǎn)發(fā)路徑長度也不同。當轉(zhuǎn)發(fā)概率為0.25時,平均路徑長度較短,約為2.3;當轉(zhuǎn)發(fā)概率為0.50時,平均路徑長度適中,約為3;當轉(zhuǎn)發(fā)概率為0.75時,平均路徑長度同樣較長,大概為5。顯然,平均路徑長度越長,方案的匿名性越好,相應(yīng)地,通信時間會延長,網(wǎng)絡(luò)負載會更重。在現(xiàn)實中采用哪一個轉(zhuǎn)發(fā)概率,要根據(jù)實際情況而定。
圖3 節(jié)點數(shù)與平均路徑長度的關(guān)系Fig.3 Relationship between number of nodes and average path length
響應(yīng)時間表示在正常通信過程中節(jié)點發(fā)送消息,舉報代理機構(gòu)處理一次消息所用的時間,即從舉報者發(fā)送舉報消息開始到發(fā)送者接收到舉報代理機構(gòu)的確認消息為止的總時間。平均響應(yīng)時間為一段時間內(nèi)所有舉報者的響應(yīng)時間的平均值。假定網(wǎng)絡(luò)中共有n個節(jié)點,每一個節(jié)點都在同一時刻發(fā)送消息,假定xi是節(jié)點發(fā)送消息的次數(shù),是舉報代理機構(gòu)收到第j個節(jié)點發(fā)送的第xi次消息并對其進行處理所用的時間,m是所有節(jié)點共同發(fā)送消息的次數(shù)。其中,m=x1+x2+…+xn,且m≠0。平均響應(yīng)時間如下:
圖4 表示當轉(zhuǎn)發(fā)概率pf分別等于0.25、0.50、0.75時,隨著網(wǎng)絡(luò)節(jié)點總數(shù)的不斷增加平均響應(yīng)時間的變化趨勢。可以看出,當節(jié)點數(shù)目確定時,轉(zhuǎn)發(fā)概率越大,平均響應(yīng)時間越長。這是因為平均路徑長度隨著轉(zhuǎn)發(fā)概率的增大而增大,導(dǎo)致舉報消息經(jīng)過更多次轉(zhuǎn)發(fā),平均響應(yīng)時間自然隨之增加。當轉(zhuǎn)發(fā)概率確定時,隨著節(jié)點數(shù)目增加,平均響應(yīng)時間也隨之增加。這是因為網(wǎng)絡(luò)中有更多的舉報者發(fā)送舉報消息,每一個節(jié)點需要承擔(dān)更多的轉(zhuǎn)發(fā)任務(wù),舉報受理機構(gòu)也需要接受更多的舉報消息及回復(fù),同時網(wǎng)絡(luò)信道上的負載也更大,導(dǎo)致完成一次舉報和確認過程的時延相應(yīng)增加。然而,無論在哪一種轉(zhuǎn)發(fā)概率下,平均響應(yīng)時間基本上是線性增長,并沒有出現(xiàn)平均響應(yīng)時間急劇增長導(dǎo)致系統(tǒng)反應(yīng)緩慢乃至癱瘓的情況。因此,該方案是穩(wěn)定和可靠的。
圖4 節(jié)點數(shù)與平均響應(yīng)時間的關(guān)系Fig.4 Relationship between number of nodes and average response time
圖5 表示當轉(zhuǎn)發(fā)概率分別為0.25、0.50、0.75 時,每一個節(jié)點的平均轉(zhuǎn)發(fā)流量。從圖5 可以看出,當轉(zhuǎn)發(fā)概率確定時,隨著節(jié)點數(shù)目的增加,節(jié)點的平均轉(zhuǎn)發(fā)流量基本維持不變,只有小幅度的波動,其原因是網(wǎng)絡(luò)節(jié)點數(shù)量增加,則舉報者數(shù)量也增多,舉報消息相應(yīng)增加。但是,參與轉(zhuǎn)發(fā)的節(jié)點數(shù)量也隨之則增加,通過平均,每一個節(jié)點轉(zhuǎn)發(fā)的消息流量基本保持恒定。因此,本文方案可以均衡地分配網(wǎng)路流量,避免因為某些節(jié)點負載過大而造成的網(wǎng)絡(luò)擁塞。另一方面,當網(wǎng)絡(luò)節(jié)點數(shù)量確定時,隨著轉(zhuǎn)發(fā)概率的增大,節(jié)點的平均轉(zhuǎn)發(fā)流量也增加,原因是轉(zhuǎn)發(fā)概率增大,意味著每條舉報消息被轉(zhuǎn)發(fā)的次數(shù)也相應(yīng)增加,網(wǎng)絡(luò)中轉(zhuǎn)發(fā)的總流量也相應(yīng)增加,所以節(jié)點平均轉(zhuǎn)發(fā)流量隨之增加。
圖5 節(jié)點數(shù)與平均轉(zhuǎn)發(fā)流量的關(guān)系Fig.5 Relationship between number of nodes and average forwarding traffic
表2 是在軟硬件配置環(huán)境一致的情況下本文方案與已有的其他方案的性能對比??梢钥闯?,本文方案在轉(zhuǎn)發(fā)概率取0.50、0.75 時,平均響應(yīng)時間均比已有的匿名舉報方案更短,性能更優(yōu)。
表2 不同方案的平均響應(yīng)時間對比Table 2 Comparison of average response time of different schemes ms
本文提出一個基于匿名通信的在線匿名秘密舉報方案。匿名舉報者使用匿名通信技術(shù)將舉報信息發(fā)送給受理機構(gòu),舉報受理機構(gòu)、中轉(zhuǎn)節(jié)點以及任意的攻擊者都不可能獲得舉報者的身份信息和地理位置,除舉報者和舉報受理機構(gòu)之外的任意第三方也無法獲取舉報信息。舉報被證實后,舉報人可以獲得獎勵,同時仍然保持身份隱私。該方案不依賴于網(wǎng)絡(luò)中的特定節(jié)點,對網(wǎng)絡(luò)流量的負載能夠?qū)崿F(xiàn)有效均衡,健壯性比較好。實驗結(jié)果表明,隨著通信過程中節(jié)點數(shù)目增多,系統(tǒng)的平均響應(yīng)時間不會出現(xiàn)急劇增長以至于發(fā)生系統(tǒng)癱瘓的情況,具有良好的可靠性和穩(wěn)定性。本文沒有考慮中轉(zhuǎn)節(jié)點可能掉線引起的舉報確認信息無法返回給舉報者情況,下一步擬采用多路由轉(zhuǎn)發(fā)方案,以確保舉報確認信息到達舉報者。