周 大 偉
(海軍工程大學信息安全系 湖北 武漢 430033)
基于廣播加密的P2P社交網絡方案的設計與實現
周 大 偉
(海軍工程大學信息安全系 湖北 武漢 430033)
針對當前社交網絡個人隱私信息泄露的問題,面向P2P社交網絡提出一種匿名公鑰廣播加密方案,包括初始化公鑰,分發私鑰,加密和解密。并在Android平臺下設計實現了基于廣播加密的P2P社交網絡系統,系統主要包括數據存儲模塊,移動終端模塊,安全加密模塊以及PKG管理模塊。同時對Android平臺下的P2P社交網絡在惡意用戶截獲私聊攻擊,惡意下載攻擊,篡改攻擊和重放攻擊的安全性進行了分析,分析結果表明該系統安全可靠。
P2P社交網絡 個人隱私 廣播加密
廣播加密是一種采用廣播信道來傳輸加密信息的方法[1]。在加密過程中,信息的發送者可以自由指定目標接收者集合,并產生唯一的一組密文。當且僅當用戶屬于目標集合時,才能夠正確地解密出信息。廣播加密通常需要滿足公鑰特性(任何人都可以加密),無狀態的接受者(用戶不需要更新私鑰),足夠的抗共謀性等[2]。廣播加密可以看作一個密鑰封裝機制,首先對廣播內容使用對稱加密算法進行加密,然后將加密的密鑰作為會話密鑰進行封裝。接收者在收到廣播消息后,首先將封裝結果進行解密,得到會話密鑰后,再使用該會話密鑰對廣播內容進行解密。由此,廣播加密在衛星廣播通信、無線傳感器網絡、付費電視系統、群發電子郵件等這種在不安全的信道上向多個用戶發布廣播消息的加密系統得到越來越廣泛的應用。
第一個廣播加密方案是由Naor等人[3]在2000年提出,該方案具備t-抗串謀攻擊安全性,隨后,一些方案被相繼提出。Hu等人[4]提出一種選擇密碼安全的廣播加密方案,但方案的安全性證明是在隨機預言模型下,而隨機預言模型的安全性一直飽含爭議;Waters[5]提出一個雙系統加密技術,且在標準模型下證明其安全性,但方案的密文長度呈線性遞增;隨后Lewko等人[6]又改進了其方案,提出一個短密文安全的廣播加密方案,但方案的安全性基于靜態假設;Boneh等人[7]提出一個代價較低的方案,方案基于多線性映射的簡單假設,且不依賴IO[8];Gentry等人[9]提出了一個官方較短并且適應性安全的方案,但方案公鑰存儲代價大;為了保護用戶隱私,Fazio等人[10]提出一個匿名廣播加密方案,方案基于一個弱匿名概念;Libert等人[11]提出一個自適應安全的匿名廣播加密方案,但方案的效率不高。
本文結合匿名公鑰廣播加密模型,設計與實現一個安全可靠的P2P社交網絡系統。P2P社交網絡中的用戶既是客戶端又是服務器端,可保證個人隱私的安全。該系統為用戶提供了安全的即時聊天、動態選擇接收者集合、發表日志及評論等功能。整個系統采用基于加密的訪問控制,同時采用廣播加密與對稱加密的結合,提供高性能的加密與解密,并且不受目標集合大小的影響。
系統的參與者主要分為用戶和P2P社交網絡平臺兩個部分,用戶使用P2P社交網絡平臺,同時每個用戶又在系統中充當著廣播加密信任中心的角色,為自己創建的廣播加密系統中的用戶生成必要的文件。用戶在P2P社交網絡平臺上可以進行的操作如圖1所示,用戶使用P2P社交網絡平臺來進行用戶注冊、查看個人主頁、添加好友、與聯系人私聊、在發布及查看狀態、發布及看評論等操作。系統中的用戶既是廣播加密系統中的接收方又是發送方。

圖1 用戶使用P2P社交網絡平臺用例圖
用戶作為廣播加密系統中的信任中心可以進行的操作如圖2所示,可以看出信任中心可以生成用戶私鑰和系統公鑰,接受用戶在其上的注冊等操作。
綜合采用匿名的公鑰廣播加密和對稱加密技術,設計實現P2P社交網絡系統的具體目標如下:① 滿足用戶權限設置的基本工作需求,即實現信息局部訪問,信息圖形化和信息加解密等功能;② 保障系統之間均以可靠的UDP通信為載體,實現信息的交互無障礙;③ 實現信息在不同用戶權限下透明的安全工作方式,安全模塊的添加是自動加載的,而且加載時間短,基本上不影響用戶的操作;④ 界面設計友好,系統操作簡單,用戶使用方便。使用模塊化設計,易于修改和后期升級。
1.1 系統設計
由于在P2P的系統中所有的用戶都是對等的,每個用戶即是資源提供者又是資源獲得者。因此在本系統中用戶所有的操作都是依靠自己完成的,每個用戶都維護一套屬于自己的廣播加密方案,方案體系結構如圖3所示。

圖3 P2P社交網絡系統的體系結構
為了更好地說明問題,我們定義更新者和接收者。更新者是指某用戶產生并更新了關于自己的一條狀態,然后此狀態會被加密并發送出去;接收者是指可以接收到更新者產生的狀態的用戶,在接收到狀態之后在自己的網頁或者客戶端進行更新,并且接收者可以對狀態進行評論。圖3中以用戶A作為更新者來進行說明,并且假定圖3中顯示的所有的用戶都已經加入了系統。由此基于匿名廣播加密的P2P社交網絡系統的具體過程可以描述如下:
(1) 可以向系統中加入用戶,用戶的基本信息會存儲在自己的配置文件中,并且每個用戶會維護一個關于自己的廣播加密具體方案;
(2) 用戶A和用戶B、C、D、E已經分別互相加為好友,此時A會頒發相對于自己的私鑰給B、C、D、E,并且B、C、D、E也會給A頒發對應的私鑰;
(3) 用戶B和用戶C、D互相加為好友;
(4) 用戶A發布了一條狀態,并選定用戶B、C、E可以閱讀此狀態,然后此狀態經過一些操作之后被廣播出去;
(5) 所有的用戶都可以獲取到此消息,但只有用戶B、C、E可以讀取此消息,他們會將此消息存儲在他們的用戶配置文件中,其余的用戶丟棄此消息;
(6) 用戶B、C、E可以選擇對用戶A的此條狀態進行評論。假設此處B選擇評論,評論完成后,此評論只有在用戶A和用戶C的共同好友處才可以顯示。
上面過程都是在所有的用戶和聯系人都在線的前提下產生的,如果用戶發布狀態的聯系人不在線的話,在用戶上線時會提醒用戶有消息更新。
1.2 系統功能
基于廣播加密的P2P社交網絡系統根據功能層次分為四個模塊成。其中,數據存儲模塊主要為上層的模塊提供存儲空間,以及為上層模塊調用數據提供接口;安全加密模塊主要包含數據交互過程中的廣播加密、對稱加密等安全加密方案,以及密鑰協商的密鑰產生方式;PKG管理模塊主要包括初始化系統并生成系統公鑰、用戶申請加入廣播加密系統以及為用戶分配廣播加密私鑰等功能;移動終端模塊主要由用戶注冊、查看個人主頁、添加好友、即時聊天、發布狀態和評論以及查看狀態評論等功能組成。系統主要實現以下功能:① 基本功能—主要實現用戶進行私聊,用戶發布狀態和評論;② 安全功能—主要實現用戶信息的隱私保護、用戶聊天的安全通信和匿名的可選擇接收者功能;③ 管理功能—主要實現與隱私保護功能相配套的輔助管理功能,包括軟件登陸權限管理、對軟件密鑰進行管理、對數據信息管理等功能。
2.1 匿名公鑰廣播加密方案
匿名公鑰廣播加密模型通常包括三個實體:信任中心,發送方和接收方。系統中的每一個成員都是同級節點,每一個成員都可以作為接收方,也都可以作為發送方。當系統中的某個成員要選定集合發送消息時,該成員就作為發送方,而被選中的成員就作為接收方。
匿名公鑰廣播加密中的實體之間相互通信過程,形成了一個簡單的通信協議,為了便于描述和理解實體間的通信過程,本文將采用表1的符號進行描述。通信過程如圖4所示。

表1 實體間通信的符號描述
協議的執行過程包括以下部分:(1)初始化時,信任中心根據系統中用戶的ID長度,運行Setup算法生成系統公鑰PK;(2)發送方向信任中心發起請求Request,請求系統公鑰和用戶私鑰;(3)信任中心根據用戶的ID運行generate算法生成該用戶的私鑰di;(4)系統公鑰和用戶的私鑰發送給發送方;(5)接收方向信任中心發起請求Request,請求系統公鑰和用戶私鑰;(6)信任中心根據用戶的ID運行generate算法生成該用戶的私鑰di;(7)系統公鑰和用戶的私鑰發送給發送方;(8)發送方隨機選取一個參數t,運行加密密鑰生成算法generateEncryptionKey,計算并生成加密密鑰K;(9) 發送方運行密文頭部生成算法generateHdr,生成密文頭Hdr;(10) 發送方使用對稱加密算法對明文消息M加密,生成密文CM;(11) 發送方將密文CM,連同密文頭Hdr等信息一起發給接收方;(12) 接收方運行解密密鑰生成算法generateDecryptionKey,計算并生成解密密鑰K′;(13) 接收方對密文CM解密,得到明文M。

圖4 實體之間的通信過程
2.2 通信協議與存儲結構
2.2.1 網絡傳輸數據包消息格式
P2P社交網絡中要傳輸的數據都需要被分割并封裝在一個固定的數據消息格式中,用以區別其他網絡傳輸數據和P2P社交網絡的數據。同時整個系統統一使用AllPackage數據包進行數據傳輸,保證每次固定傳輸長度為1 024 bits的數據。該網絡傳輸數據包消息格式如表2所示。
在網絡傳輸數據包消息格式AllPackage中前8個字節為特征數據“#P2PSON#”;第9個字節為數據分包標識符flag,當flag為0時代表數據包的第一個子包,flag為1時代表中間的子包;Size代表還有多少數據沒有發送;random為標識該條數據包的隨機數;data存儲的是每次發送的數據,長度為1 008個字節。

表2 網絡傳輸數據包AllPackage消息格式
2.2.2 報頭消息格式
每個消息傳輸格式中都包含一個報頭格式,用以區分該傳輸格式的消息內容是什么數據。該報頭格式如表3所示。報頭格式PackageHead的前4個字節存儲的是nPackageType,用來標識消息格式中存儲的是什么類型的內容;nIP存儲數據發送源的IP地址,占8個字節。

表3 報頭PackageHead消息格式
2.2.3 用戶私聊消息格式
用戶之間進行即時聊天需要互相傳送私聊內容,用戶私聊消息格式中存儲用戶ID和加密后的私聊內容。該消息格式如表4所示。用戶私聊消息格式ChatInformation中前8個字節是報頭格式的對象;sUserId是用戶ID,占20個字節;*data是指向私聊消息內容的指針,占4個字節。

表4 用戶私聊ChatInformation消息格式
2.2.4 密鑰協商消息格式
用戶登陸到系統后就要與其他在線用戶進行密鑰協商。其中type為0時表示數據是由第一方傳給第二方,type為1時表示數據是由第二方傳給第一方。密鑰協商消息格式如表5所示。

表5 密鑰協商KeyConsult消息格式
密鑰協商消息格式KeyConsult中前8個字節是報頭格式的對象;sUserId是用戶的ID,占20個字節;agdata是D-H密鑰協商過程中的交換數據,占64個字節;type為0時表示數據是由第一方傳給第二方,type為1時表示數據是由第二方傳給第一方。
2.2.5 存儲結構
由于P2P社交網絡沒有中央服務提供者,用戶可以對自己的信息和數據完全的控制。那么從用戶的創建開始,到添加好友以及發布評論等操作,用戶都要在自己的本地存儲個人信息以及好友的信息。因此,存儲結構的設計就顯得格外重要。基于廣播加密的P2P社交網絡采用分層的存儲結構。由于每個用戶可能同時擁有多個賬號,那就需要為每個賬號非配一個存儲空間。對于每個用戶賬號存儲空間來說需要。
存儲密鑰管理文件,個人信息管理文件,狀態及評論管理文件,好友管理文件及消息通知文件。而每個用戶賬號都應該為每一個好友創建一個存儲空間,存儲好友的密鑰管理文件,個人信息管理文件,日志及評論管理文件。
2.3 廣播加密模塊
2.3.1 初始化
初始化的目的是為廣播加密體系生成公鑰和主密鑰。在P2P社交網絡中,每一個用戶都可以創建一個廣播加密體系,該用戶即作為廣播加密體系中的信任中心,又做為體系中的一員。當用戶創建一個廣播加密體系時,他會為體系中的所有用戶生成廣播加密公鑰。Pbc和NTL都是開源的庫,其中提供了選取橢圓曲線的點,計算橢圓曲線點的冪次方,計算雙線性配對以及計算多項式乘積等功能。如圖5所示為初始化流程圖。

圖5 初始化流程圖
2.3.2 添加用戶到廣播加密體系
添加一個好友時,作為信任中心的用戶需要根據好友的身份ID為其生成對應的私鑰。實現過程中,要求只有雙方都是在線情況才能添加對方為好友。當得到好友的ID后,將進行generate操作,生成該好友的私鑰。使用be_generate方法,首先要使用binarystring函數將用戶的ID轉化為二進制;之后選取隨機數,分別計算di1、di2。通過判斷ID的二進制表示中有哪些位數是1來選取相應的ui。之后根據計算式得到di1、di2。
2.3.3 通過廣播加密體系進行加密
當用戶想要選擇集合S發布狀態時,就需要使用廣播加密體系中的be_encrypt方法,計算得到對稱密鑰K和頭部Hdr。首先選取隨機數,計算得到對稱加密密鑰。之后根據得到的接收者集合S,根據NTL庫提供的計算多項式相乘的方法計算fi(x)。之后通過NTL庫中的獲取多項式系數的方法得到所有aij,并計算得到Ti。繼而得到Hdr=

圖6 加密流程圖
2.3.4 通過廣播加密體系進行解密
當用戶想要查看他人通過廣播加密處理發送的消息時,需要通過廣播加密之解密方法得到對稱加密的密鑰。首先得到對方傳過來的Hdr,PK以及自己的ID和私鑰,再將自己的ID轉化成二進制形式,接下來計算得到δi,最終得到:
3.1 安全性分析
基于廣播加密的P2P社交網絡系統主要會受到惡意用戶截獲私聊攻擊,惡意下載攻擊,惡意登陸攻擊,篡改攻擊,重放攻擊,UDP通信惡意丟包攻擊等幾類攻擊形式,并提出相應的解決方案。
3.1.1 惡意用戶截獲私聊攻擊
系統提供用戶進行即時聊天功能,系統中的用戶之間在上線之后通過橢圓曲線上的D-H密鑰交換進行密鑰協商。當任意兩個用戶即時聊天時,雙方使用協商后的對稱密鑰通過AES加密算法加密聊天內容。如果有第三方惡意截獲發送的聊天內容也不能得到聊天內容得明文,杜絕了惡意用戶讀取他人聊天的可能性。惡意用戶截獲私聊流程如圖7所示。

圖7 惡意用戶截獲私聊
3.1.2 惡意查看狀態攻擊
用戶選擇接收者集合S后發布狀態,通過使用廣播加密將接收者S隱藏并將狀態內容加密。加密后狀態內容被廣播發送出去,所有人都可能接收到,但匿名公鑰廣播加密機制提供了只有接收者集合里的用戶才能將狀態成功解密出來,從而杜絕了非接收者集合的用戶惡意查看狀態的可能性。惡意查看狀態流程如圖8所示。

圖8 惡意查看狀態
3.1.3 惡意登陸攻擊
由于終端設備存在遺失和被偷竊的風險,因此在移動終端上添加安全密碼解鎖機制能夠有效保證終端上信息的安全性,在用戶首次使用應用時,需要設置手勢密碼。
在移動終端上,我們實現了圖案解鎖的機制,每當用戶啟動或恢復應用時,都需要輸入密碼使得終端應用能夠正常工作。當用戶不小心遺失設備且被他人拾獲時,在拾獲者不知道密碼的情況下,被無法使用該用戶賬號,且當拾獲者在連續5次輸入錯誤密碼后,系統會被鎖住。這樣就能有效防止賬號被人惡意登陸。
3.1.4 篡改攻擊
有惡意用戶在用戶發送出消息后,將消息截獲并進行惡意的篡改,如在消息末尾添加數據等。系統采用了數字簽名這種完整性校驗機制用來防止惡意篡改攻擊。利用數字簽名防御惡意篡改的中間人攻擊的流程如圖9所示。

圖9 利用數字簽名防御惡意篡改的中間人攻擊
3.1.5 重放攻擊
防御重放攻擊的方法主要有時間戳與挑戰應答方式,我們綜合使用時間戳、數字簽名、隨機數等方法來防止重放攻擊。利用時間戳技術防御重放攻擊流程如10所示。

圖10 利用時間戳技術防御重放攻擊
3.2 性能分析
3.2.1 目標集合大小對加密時間的影響
選取目標接收者集合大小分別為10、20、30、40、50、60、70、80、90,測試AES加密和匿名公鑰廣播加密的加密運算的用時,結果如圖11所示。

圖11 不同大小的目標集合對加密時間的影響
由圖11可以看出,在AES加密中,加密所耗費的時間,都是隨著接收者集合的增大而增加的,因為算法需要遍歷接收者集合中的每一個成員。匿名公鑰廣播加密方案在接收者集合大小較小時,效率表現與AES加密相仿;但隨著接收者集合大小的不斷變大,耗費時間要比aes上升緩慢。
3.2.2 目標集合大小對傳輸成本的影響
選取目標接收者集合大小分別為10、20、30、40、50、60、70、80、90,測試AES加密和匿名公鑰廣播加密的傳輸成本,結果如圖12所示。

圖12 不同大小的目標集合對傳輸成本的影響
由圖12可以看出,AES加密中傳輸所消耗的成本,是隨著接收者集合的增大而增加的,因為算法需要發送每一個不同接收者的密文。而對于匿名公鑰廣播加密方案來說,不管接收者集合有多大它只需要發送一份數據即可,只是隨著接收者集合大小的增加,數據頭部Hdr會相應的變大,因此整個趨勢趨于平穩。
結合匿名廣播加密技術和信息加密技術,設計實現了基于廣播加密的P2P社交網絡隱私保護方案。方案中包括:設計了適用于P2P社交網絡的匿名廣播加密系統;實現了P2P社交網絡系統,實現了用戶的注冊、用戶查看個人主頁、用戶即時聊天、用戶選擇接受者集合發表日志,以及用戶對日志進行評論等功能;將基于廣播加密的P2P社交網絡系統移植到Andriod平臺上,實現移動平臺的安全可信的社交網絡。所提出的基于廣播加密的P2P社交網絡隱私保護方案能夠較好地解決社交網絡個人信息隱私泄露問題,具有良好的應用前景。
[1] 張逢喆, 陳進, 陳海波, 等. 云計算中的數據隱私性保護與自我銷毀[J]. 計算機研究與發展, 2011, 48(7):1155-1167.
[2] 孫瑾. 標準模型下可證明安全的公鑰廣播密碼研究[D]. 西安:西安電子科技大學, 2012.
[3] Naor M, Pinkas B. Efficient trace and revoke schemes[C]//Proceedings of the 4th International Conference on Financial Cryptography. Springer, 2000:1-20.
[4] Hu L, Liu Z L, Cheng X C. A chosen-ciphertext secure identity-based broadcast encryption scheme[C]//2009 International Conference on Machine Learning and Cybernetics, 2009:3556-3560.
[5] Waters B. Dual system encryption: realizing fully secure IBE and HIBE under simple assumptions[C]//Proceedings of the 29th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2009:619-636.
[6] Lewko A, Waters B. New techniques for dual system encryption and fully secure HIBE with short ciphertexts[C]//Proceedings of the 7th International Conference on Theory of Cryptography. Springer, 2010:445-479.
[7] Boneh D, Waters B, Zhandry M. Low overhead broadcast encryption from multilinear maps[C]//Proceedings of the 34th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2014:206-223.
[8] Boneh D, Zhandry M. Multiparty key exchange, efficient traitor tracing, and more from indistinguishability obfuscation[C]//Proceedings of the 34th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2014:480-449.
[9] Gentry C, Waters B. Adaptive security in broadcast encryption systems (with short ciphertexts)[C]//Proceedings of the 29th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2009:171-188.
[10] Fazio N, Perera I M. Outsider-anonymous broadcast encryption with sublinear ciphertexts[C]//Proceedings of the 15th International Conference on Practice and Theory in Public Key Cryptography. Springer, 2012:225-242.
[11] Libert B, Paterson K G, Quaglia E A. Anonymous broadcast encryption: adaptive security and efficient constructions in the standard model[C]//Proceedings of the 15th International Conference on Practice and Theory in Public Key Cryptography. Springer, 2012:206-224.
DESIGN AND IMPLEMENTATION OF P2P SOCIAL NETWORK SCHEME BASED ON BROADCAST ENCRYPTION
Zhou Dawei
(DepartmentofInformationSecurity,NavalUniversityofEngineering,Wuhan430033,Hubei,China)
Aiming at the problem of personal privacy information disclosure in social network, an anonymous public key encryption scheme is proposed for P2P social network. The scheme includes public key initialization, private key dispensation, encryption and decryption. And the P2P social network system based on broadcast encryption is designed and implemented in the Android platform. The system mainly includes data storage module, mobile terminal module, security encryption module and PKG management module. At the same time, it analyzes the security of P2P social network in the Android platform in the malicious user intercepting the private chat attack, malicious download attack, tamper attack and replay attack, and the results show that the system is safe and reliable.
P2P social network Personal privacy Broadcast encryption
2016-03-29。博士后基金項目(2012M512132);總裝預研基金項目(9140A06040313JB11084);信息保障技術重點實驗室開放基金項目(KJ-14-104)。周大偉,講師,主研領域:入侵檢測與不確定性推理。
TP393
A
10.3969/j.issn.1000-386x.2017.05.052