蔣清紅,蘭鑫毅,林 東,2,莫宏培,2,寧湘媚,黃婷婷,陸章林,陳玉敏,黃芷錕,姚靜怡,陳長順,何東源
(1.廣西師范大學,廣西 桂林 541004;2.桂林原動力科技有限公司,廣西 桂林 541004)
物聯網的快速發展為人們的生活帶來了翻天覆地的變化,尤其是對用戶數據的采集及后續使用帶來了極大的便利,但同時也對用戶數據隱私帶來了極大困擾。目前,用戶數據在隱私方面存在的問題主要有:
數據的采集和掌控。許多用戶數據由企業開發的物聯網產品進行采集,相應企業可能會在用戶不知情的情況下對數據進行分析,甚至用來與其他企業進行資源互換、融資、出售。
數據的存儲。由于用戶數據,包括敏感身份信息部分,都是存儲在企業自己的服務器中,數據安全完全依靠該企業在技術上對服務器的安全防范,如果遭到黑客攻破,容易造成用戶數據被一鍋端的情況。
數據的使用。用戶在電商平臺的訂單數據和商品搜索瀏覽記錄、網絡社交關系、在搜索引擎和音視頻內容平臺上的使用記錄等,用戶不能對其加以二次使用,包括數據提取導出、進行多源數據融合分析等。
針對個人數據隱私方面的問題,劉煒等人分析并總結了區塊鏈在隱私保護領域的研究發展現狀,指出區塊鏈作為去中心化、匿名、不可篡改的分布式賬本技術的優點,為解決醫療場景中的隱私保護問題提供了新的思路[1-3]。然而,目前區塊鏈存在的問題也顯而易見,其中共識機制是區塊鏈的核心技術,傳統的共識機制需要進行大量的計算,會造成時間、電力、物力等資源浪費的現象,不完全適用于資源有限的物聯網設備[4-5]。此外,由于區塊鏈隨著轉賬交易的增加而容量增大,由此引來存儲壓力[6]。
(1)脫敏需求:用戶期望對某些敏感信息進行脫敏處理,實現敏感隱私數據的可靠保護。(2)數據存儲安全:主要指數據不會出現竊取、丟失、冗余度過大等問題。提供存儲服務的服務提供商在內部技術人員管理、設備故障、外部入侵防御方面應具有堅實的防護措施。(3)多源融合需求:大數據具有5V的特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性),數據多源融合有助于消除數據孤島,是用戶對其自身數據進行大數據分析的前提之一。(4)交付托管分析:用戶期望能夠方便地將數據進行移交托管并分析。常見的數據分析場景包括偵查、風險控制、綜合應用等,通常應用知識圖譜技術實現知識抽取和業務建模,基于業務場景對數據進行深度關聯分析。此通常會有相應領域的第三方數據分析服務提供商專門提供相應的專業服務,如營銷領域的數據分析服務提供商有友盟、百度統計、Google Analytics等。
為了滿足上述需求,提出如下脫敏-溯源的數據處理方案,整體方案圖如圖1所示。
圖1 脫敏-溯源的整體方案圖
整體方案主要由采集器、脫敏器、溯源器、溯源服務、分布式云存儲、數據索引服務等構成。通過數據采集器c1對用戶u1的數據進行采集,得到數據u1_c1,然后交給脫敏器進行脫敏處理得到數據t_u1_c1,再將脫敏后的數據交給溯源服務進行處理得到數據d_z11,溯源服務為每個用戶的每個采集器生成并保存一個追蹤屑z11,接著將隱去來源的數據d_z11分散地存儲在分布式云存儲服務中,不同使用者可通過溯源服務向用戶申請全部或部分數據的使用授權,授權通過后,由溯源服務向數據索引服務發起數據關聯操作,并將關聯后的數據交給相應的使用者,使用者可對數據進行挖掘、分析后將結果通知到溯源服務,溯源服務在一定合理范圍內發起通知,由用戶主動決定是否作出回應。
數據采集器,是能夠對用戶進行屬性信息或行為信息采集的物聯網設備,它可能是公共IOT設備(如小區公共監控攝像頭、高速公路ETC設備),也可能是用戶的私有人體IOT設備(如智能手環、智能電子體溫貼等),還有可能是為用戶提供服務的各個手機App、PC軟件及Web網站等。
用戶數據的脫敏處理,分為可逆和不可逆兩種需求場景。其中可逆的需求場景,一般采取數據加密或者字典替換。一般而言,數據脫敏處理通常是不可逆的,對于此類需求場景,常見的方法包括:
(1)部分遮掩法,即使用特殊字符(如*等)對敏感數據的文本進行部分替換。例如各類社交軟件賬號將其中部分字符替換為“*”,最后變成諸如“z***i”的形式。
(2)數據模糊法,即對數據的精度進行截斷。例如大健康場景下的年齡、身高、體重等數據可以對其進行精度截斷并分段歸類處理,舉例如下:年齡21歲歸類到(20-25)歲,身高172cm歸類到(170-175)cm,體重62kg歸類到60kg級。
(3)非結構化數據脫敏,一般需要根據數據的具體情況進行逐一分析和脫敏處理。例如音頻文件可對人聲進行伸縮與變調處理,視頻和圖像可對其中人臉及人體識別后進行部分或整體馬賽克處理。
本文中,首先將用戶數據分為嚴格保密信息和可脫敏信息。其中嚴格保密信息需要進行加密處理,并采用秘密共享技術對密鑰進行保護。
數據的追蹤,由每一組流通的數據生成與數據擁有者相對應的追蹤屑負責。追蹤屑z1由用戶名u1、采集器標識c1、用戶秘鑰s1、隨機混淆椒鹽fusesalt共同生成。具體可以使用秘鑰s1對u1+c1+fusesalt的組合進行加密之后再交給某一哈希散列函數生成一串碼值,該碼值作為數據的追蹤屑z1,以此隱藏真實用戶,同時又保留了用戶主動追蹤認領數據的能力。
分布式云存儲主要考慮的是將用戶的數據在數據結構上拆分存儲,不同來源的數據分散存儲在不同的虛擬服務器上,使得數據存儲服務的管理者不能夠單方面獲取某一用戶的數據。數據索引服務則在用戶授權后,通過數據攜帶的追蹤屑,協同溯源器一起,將分散的數據重新關聯起來。
為實現由用戶主動溯源,溯源服務在通知用戶時不應該能夠直接觸達用戶,而是構建一個提供給用戶查詢的結果集。該服務在查詢效率上必須足夠高效,本文使用布隆過濾器來實現用戶主動溯源的服務。布隆過濾器(Bloom Filter)是一種高效的概率型數據結構,可以快速檢索數據是否屬于某個集合,而不用直接與數據進行匹配。布隆過濾器不需要存儲元素本身,非常適用于一些具有隱私保護需求、對保密要求非常嚴格的場合。
首先構建一個具有M個比特位的數組BF[M],其中每一位的初始值都為0。過濾器的構建過程,是將所有需要檢索的數據,也即用戶的追蹤屑zi,在比特數組中進行哈希映射的過程。在進行哈希映射時,對于追蹤屑集合{z1,z2,…,zn}中的任意元素zi,使用k個相互獨立的哈希函數{h1,h2,…,hk},將zi映射到M位布隆過濾器中,其中被映射到的位置標記為1,其余保持為0,映射示意圖如圖2所示。
圖2 追蹤屑在布隆過濾器中的映射示意圖
當進行檢索時,首先將檢索值zi進行k次哈希映射,如果在布隆過濾器對應的映射位置都是1,則說明檢索值zi有可能在集合中,否則有任一映射位置為0,則該檢索值不在集合中。當用戶實際上不在集合中,但布隆過濾器的判別結果是存在,則為假陽性誤判。
假陽性誤判數的期望值計算方式為:
其中M為比特數組的長度,k為hash函數的個數,Z為追蹤屑數量,u為第u個插入的追蹤屑。
假陽性誤判率為:
為求得p(k)的極值,考慮到M和Z為給定值,則可在上式(3)上設化簡為,進一步地,兩邊取對數并對k求導可得:
因此,為維持一定的誤判率p,則可根據追蹤屑數量Z來控制比特數組的長度M即可。
為方便分析探討,選取比特數組長度M為33,也即以1GB內存大小的布隆過濾器為例,現將假陽性誤判率fps隨hash函數個數k和用戶數量Z的變化以圖示形式呈現為如圖3所示。在應用中,由發起通知的第三方應用在溯源服務器上構建與該通知對應的布隆過濾器,根據追蹤屑的數量Z來控制fps維持在一定數值,使得用戶在進行主動溯源時可高效檢索并將自身隱藏在一定的誤判數內。
圖3 fps誤判數隨hash函數個數和追蹤屑數量變化情況
由于布隆過濾器的存儲空間和插入/刪除操作時間都是常數O(k)級別的復雜度,因此具有較好的空間效率和時間效率。
本文探討通過以上數據的采集、存儲、使用、溯源相分離,使用戶在數據溯源上掌握主動權,同時又將數據以脫敏后的形式貢獻出來,以便對不同用戶的多源數據進行大數據的挖掘和分析處理,為數據的多源融合以及隱私保護提供一種參考方案。