葉水勇
(國(guó)網(wǎng)安徽省電力有限公司黃山供電公司,安徽 黃山 245000)
所謂數(shù)據(jù)脫敏就是利用脫敏規(guī)則將一些敏感信息(如身份證號(hào)、賬號(hào)、密碼、地址、電話號(hào)碼等)進(jìn)行數(shù)據(jù)變形,從而實(shí)現(xiàn)對(duì)敏感、隱私的數(shù)據(jù)進(jìn)行可靠有效的保護(hù)[1-2]。通過數(shù)據(jù)脫敏技術(shù),有針對(duì)性地保護(hù)與當(dāng)前分析無關(guān)的信息,并保證分析挖掘的有效進(jìn)行。目前國(guó)內(nèi)大多數(shù)企業(yè)為了保護(hù)敏感數(shù)據(jù)的安全,通過設(shè)置防火墻、安裝防病毒軟件等措施來加強(qiáng)數(shù)據(jù)外圍保護(hù)。但是,這種保護(hù)方式限制了敏感數(shù)據(jù)的分析與利用。部分企業(yè)根據(jù)自身需求制定了一些以靜態(tài)脫敏為主的數(shù)據(jù)脫敏方案,其脫敏流程擴(kuò)展性差、脫敏規(guī)則固定且簡(jiǎn)單、脫敏能力有限,無法滿足規(guī)模日益增長(zhǎng)且規(guī)則日益復(fù)雜的數(shù)據(jù)脫敏需求,無法有效解決背景知識(shí)攻擊等安全威脅。
本文通過分析評(píng)估當(dāng)今主流數(shù)據(jù)脫敏技術(shù)特性,將多種脫敏方式相結(jié)合,建立敏感數(shù)據(jù)的發(fā)現(xiàn)、抽取與脫敏系統(tǒng)[3-4]。該系統(tǒng)通過對(duì)敏感數(shù)據(jù)分類,能夠快速處理大量脫敏數(shù)據(jù),支持脫敏算法與方案的配置管理,很好地適應(yīng)不同的脫敏需求。系統(tǒng)建立脫敏任務(wù)的申請(qǐng)審核機(jī)制,通過權(quán)限管理使脫敏過程更有效安全。
該算法要求對(duì)任意一行的記錄,所歸屬的相等集內(nèi)的記錄總數(shù)量不得少于k條,即最少有(k-1)條記錄的半標(biāo)識(shí)列的值與該條記錄相同。對(duì)k-Anonymity數(shù)據(jù)集內(nèi)的任意記錄,從理論上來說,攻擊者大約只有1/k的概率使被攻擊的記錄與具體的用戶進(jìn)行關(guān)聯(lián)[5-6]。
該算法的缺點(diǎn)是容易受到鏈接式攻擊,對(duì)屬性泄露風(fēng)險(xiǎn)無法進(jìn)行保護(hù)。攻擊者可通過背景知識(shí)和同質(zhì)屬性兩種攻擊方式對(duì)k-Anonymity數(shù)據(jù)集內(nèi)的用戶屬性信息進(jìn)行攻擊。對(duì)移除標(biāo)識(shí)列的數(shù)據(jù)根據(jù)半標(biāo)識(shí)列進(jìn)行分組,每組最少有k條記錄,每組中至少有(k-1)條記錄的半標(biāo)識(shí)列的值與該記錄相同。
如果任意相等集內(nèi)的所有記錄所對(duì)應(yīng)敏感數(shù)據(jù)的集合中包含有l(wèi)個(gè)合適的值,則該相等集滿足l-Deversity算法。若數(shù)據(jù)集中的所有相等集全部滿足l-Deversity算法,則該數(shù)據(jù)集滿足l-Deversity算法。
與k-Anonymity算法相比,符合l-Deversity算法的數(shù)據(jù)集,數(shù)據(jù)泄漏所造成的風(fēng)險(xiǎn)明顯降低。對(duì)l-Derversity數(shù)據(jù)集內(nèi)的任意記錄,從理論上來說,攻擊者大約只有1/l的概率使被攻擊的記錄與具體的用戶進(jìn)行關(guān)聯(lián)[7-8]。
該算法的缺點(diǎn)是可能難以實(shí)現(xiàn)且無必要實(shí)現(xiàn),且不足以阻止屬性公開。
如果敏感數(shù)據(jù)在一個(gè)相等類的分布與在全局的分布之間的距離比t小,則該相等類滿足t-Closeness算法。若數(shù)據(jù)集中的所有相等類全部滿足t-Closeness算法,則該數(shù)據(jù)集滿足t-Closeness算法。
由于t-Closeness算法對(duì)敏感信息在全局的分布與半標(biāo)識(shí)列屬性之間的聯(lián)系進(jìn)行限定。因而,減弱了特定的敏感信息與半標(biāo)識(shí)列屬性之間的聯(lián)系,從而減少了攻擊者利用敏感信息內(nèi)部的分布信息來進(jìn)行泄露攻擊的概率,但它也會(huì)造成部分?jǐn)?shù)據(jù)的丟失。因此,管理者可以通過判斷t值的大小來平衡用戶的隱私保護(hù)與數(shù)據(jù)的可用性[9]。
對(duì)時(shí)間按一定的粒度進(jìn)行向下或向上的偏移取整,保證時(shí)間數(shù)據(jù)按一定的分布特征對(duì)原始時(shí)間進(jìn)行隱藏,即通過舍棄精度使原始數(shù)據(jù)的安全性得到保證。
例如:將時(shí)間20160301 01:01:09按照5秒鐘粒度向下取整得到20160301 01:01:05。
通過對(duì)脫敏數(shù)據(jù)進(jìn)行加密處理,外部人員只能看到?jīng)]有任何意義的經(jīng)過處理后的加密數(shù)據(jù)[10]。在特定的情況下,可以給具有權(quán)限的有關(guān)人員提供密鑰,來對(duì)加密后的脫敏數(shù)據(jù)進(jìn)行解密處理。如通過利用非對(duì)稱的加密技術(shù),即利用數(shù)據(jù)請(qǐng)求方的公鑰進(jìn)行加密處理,然后數(shù)據(jù)請(qǐng)求方用私鑰對(duì)獲得的數(shù)據(jù)進(jìn)行解密處理,從而還原出被脫敏的加密數(shù)據(jù)。
例如:將編號(hào)12345加密為abcde或23456等。其安全程度取決于采用哪種加密算法,一般根據(jù)實(shí)際情況而定。
將原始數(shù)據(jù)按照特定的規(guī)則進(jìn)行重新排列,對(duì)于跨行數(shù)據(jù),采用隨機(jī)互換來打破其與本行其他數(shù)據(jù)的關(guān)聯(lián)關(guān)系,從而實(shí)現(xiàn)脫敏[11]。
例如:序號(hào)12345重排為54321,按照一定的順序進(jìn)行打亂,很像“替換”,方便在需要時(shí)還原信息,但易于破解。
舍棄必要信息來保證數(shù)據(jù)的模糊性,僅保留部分關(guān)鍵信息。這是比較常用的脫敏方法,但在生產(chǎn)方面存在一定弊端。為解決這個(gè)問題,比如對(duì)手機(jī)號(hào)碼進(jìn)行數(shù)據(jù)脫敏時(shí),可僅返回前7位數(shù)字以顯示號(hào)碼歸屬地,即將手機(jī)號(hào)碼138539102456返回為1385391,最好在保留歸屬地的情況下,結(jié)合掩碼方法進(jìn)行數(shù)據(jù)脫敏。
例如:把身份證號(hào)330184190001184115截?cái)酁?90001184115。
將數(shù)據(jù)按照大小規(guī)整到預(yù)定義的多個(gè)檔位,這是一種比較常用的脫敏方法。
例如:a)將客戶資產(chǎn)按照規(guī)模分為高、中、低3個(gè)級(jí)別,將客戶資產(chǎn)數(shù)據(jù)用這3個(gè)級(jí)別代替;b)將扣費(fèi)額按照金額多少分為高、中、低3個(gè)級(jí)別;c)將用電量按照使用量的多少分為高、中、低3個(gè)級(jí)別。
利用通用字符(如*、X等)對(duì)敏感數(shù)據(jù)的部分內(nèi)容進(jìn)行統(tǒng)一的替換,只保留部分?jǐn)?shù)據(jù)信息,這樣就可以讓敏感數(shù)據(jù)只公開部分內(nèi)容,但信息的持有者可以很容易進(jìn)行辨別。這種方法在很大程度上既可保證數(shù)據(jù)的脫敏,又可保證信息長(zhǎng)度的不變性,在數(shù)據(jù)脫敏中被廣泛使用。
例如:a)將手機(jī)號(hào)碼13500010001經(jīng)過掩碼得到135****0001;b)把身份證號(hào)330184190001184115經(jīng)過掩碼得到330184********4115。
參考原始數(shù)據(jù)的特征,重新生成數(shù)據(jù)。重寫與整體替換較為類似,但替換后的數(shù)據(jù)與原始數(shù)據(jù)通常存在特定規(guī)則的映射關(guān)系,而重寫生成的數(shù)據(jù)與原始數(shù)據(jù)則一般不具有映射關(guān)系。
例如:a)對(duì)員工工資,可使用在一定范圍內(nèi)隨機(jī)生成的方式重新構(gòu)造數(shù)據(jù);b)對(duì)身份證號(hào)碼,可在一定范圍內(nèi)按照規(guī)則隨機(jī)生成的方式重新構(gòu)造數(shù)據(jù)。
針對(duì)數(shù)值型的敏感數(shù)據(jù),在保證脫敏后數(shù)據(jù)集總值或平均值與原始數(shù)據(jù)集相同的情況下,改變數(shù)值的原始值。
例如:對(duì)客戶用電量、員工工資等采用均化的脫敏方法。
對(duì)原始數(shù)據(jù)通過散列算法取散列值,使用散列值來代替原始數(shù)據(jù)。目前應(yīng)用較多的散列算法是SHA-1和SHA-256等。
例如:使用散列算法,將客戶的密碼“123456”用其散列值“321654”來代替。對(duì)于原文空間有限的散列,還要加入隨機(jī)因子。
僅僅返回可用數(shù)據(jù)集合中一定數(shù)量的數(shù)據(jù),并且只有在拿到所有數(shù)據(jù)后才具有意義。
例如:對(duì)于客戶地址數(shù)據(jù),可在脫敏時(shí)僅返回十六字節(jié)數(shù)據(jù),如將“XX市XX區(qū)XX街XX巷X幢XXX室”返回為“XX市XX區(qū)XX街”。
數(shù)據(jù)脫敏是指在使用數(shù)據(jù)進(jìn)行信息挖掘時(shí)去除不需要的敏感信息,保證信息的安全[12-13]。如果脫敏后的數(shù)據(jù)無法用來對(duì)信息進(jìn)行分析與挖掘,那么這些脫敏數(shù)據(jù)也就無任何使用價(jià)值。因此,脫敏后的數(shù)據(jù)應(yīng)最大限度地保留信息特征與意義,確保數(shù)據(jù)可用,信息可靠。一般需保留身份證號(hào)碼、聯(lián)系方式、地址的部分字段等關(guān)鍵信息。對(duì)于脫敏后發(fā)生改變的信息,應(yīng)保留數(shù)據(jù)統(tǒng)計(jì)特征,即數(shù)據(jù)中所包含的統(tǒng)計(jì)趨勢(shì),比如用電量與用電類型的對(duì)應(yīng)關(guān)系、人口的分布密度等。
脫敏的目的就是保證數(shù)據(jù)中的信息安全。數(shù)據(jù)經(jīng)過脫敏處理后,必須能有效保護(hù)敏感信息。脫敏最基本的要求是將敏感信息移除、替換、隱藏,并且在已有數(shù)據(jù)的基礎(chǔ)上,無法通過各種手段處理來得到被保護(hù)的敏感信息[14-15],或者提高處理數(shù)據(jù)的難度與開銷,使其成本遠(yuǎn)遠(yuǎn)高于所獲取的敏感信息。
對(duì)數(shù)據(jù)進(jìn)行脫敏時(shí),雖然可以對(duì)敏感信息進(jìn)行消除,但數(shù)據(jù)的統(tǒng)計(jì)特征不能被破壞,因此需要進(jìn)行規(guī)范化脫敏。確保在數(shù)據(jù)要求一致的情況下,使脫敏的統(tǒng)計(jì)特征相同。如果結(jié)果出現(xiàn)統(tǒng)計(jì)特征的波動(dòng),會(huì)導(dǎo)致無法準(zhǔn)確定位分析結(jié)果的影響因素,從而破壞分析的準(zhǔn)確性。
在不同的數(shù)據(jù)應(yīng)用場(chǎng)景中,對(duì)數(shù)據(jù)的安全保護(hù)存在不同級(jí)別,所需的信息也各有不同。因此,需要針對(duì)不同情況配置不同的脫敏方式、脫敏內(nèi)容以及脫敏程度,以適應(yīng)不同應(yīng)用環(huán)境的脫敏需求。
數(shù)據(jù)脫敏系統(tǒng)的設(shè)計(jì)架構(gòu)由敏感數(shù)據(jù)的發(fā)現(xiàn)、敏感數(shù)據(jù)的抽取與敏感數(shù)據(jù)的脫敏3個(gè)部分組成,如圖1所示。

圖1 數(shù)據(jù)脫敏系統(tǒng)框架
4.2.1 敏感數(shù)據(jù)的發(fā)現(xiàn)方法
敏感數(shù)據(jù)的發(fā)現(xiàn)方法就是對(duì)系統(tǒng)內(nèi)的所有數(shù)據(jù)先進(jìn)行梳理,并從中對(duì)敏感數(shù)據(jù)進(jìn)行識(shí)別,然后再對(duì)識(shí)別后的敏感數(shù)據(jù)進(jìn)行標(biāo)識(shí)。對(duì)云環(huán)境下海量的數(shù)據(jù)進(jìn)行梳理,需要自動(dòng)化手段來完成[16-17]。
在進(jìn)行數(shù)據(jù)脫敏前,必須先對(duì)數(shù)據(jù)整體進(jìn)行梳理。以國(guó)家敏感信息保護(hù)有關(guān)法律法規(guī)為依據(jù),參考國(guó)內(nèi)外敏感信息保護(hù)相關(guān)標(biāo)準(zhǔn),將敏感信息分成6類,如表1所示。

表1 敏感信息分類Table 1 Classification of sensitive information
在敏感信息分類的基礎(chǔ)上,系統(tǒng)利用自動(dòng)化敏感數(shù)據(jù)識(shí)別工具執(zhí)行數(shù)據(jù)發(fā)現(xiàn)工作,并降低該過程對(duì)生產(chǎn)系統(tǒng)的影響。
1)定義數(shù)據(jù)脫敏工作執(zhí)行的范圍,在該范圍內(nèi)執(zhí)行敏感數(shù)據(jù)的發(fā)現(xiàn)工作。
2)系統(tǒng)錄入敏感數(shù)據(jù)樣本后,敏感數(shù)據(jù)識(shí)別工具提取樣本數(shù)據(jù)的數(shù)據(jù)表名稱、字段名稱、數(shù)據(jù)記錄內(nèi)容、數(shù)據(jù)表備注、數(shù)據(jù)文件內(nèi)容等特征信息,對(duì)這些特征信息進(jìn)行統(tǒng)計(jì)記錄,存儲(chǔ)在敏感特征識(shí)別庫(kù)中。
3)敏感數(shù)據(jù)識(shí)別工具對(duì)目標(biāo)數(shù)據(jù)進(jìn)行敏感數(shù)據(jù)識(shí)別,根據(jù)從樣本數(shù)據(jù)獲取的敏感數(shù)據(jù)特征信息,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行直接匹配或正則表達(dá)式匹配,對(duì)匹配的目標(biāo)數(shù)據(jù)進(jìn)行標(biāo)記。該標(biāo)記與敏感數(shù)據(jù)一起流動(dòng),無法刪除和篡改,從而可以對(duì)敏感數(shù)據(jù)進(jìn)行有效跟蹤,以確保敏感數(shù)據(jù)的安全合規(guī)性。
4)敏感數(shù)據(jù)識(shí)別工具具有擴(kuò)展機(jī)制,可根據(jù)業(yè)務(wù)需要自定義敏感數(shù)據(jù)的發(fā)現(xiàn)邏輯。同時(shí)系統(tǒng)可以固化常用的敏感數(shù)據(jù)發(fā)現(xiàn)規(guī)則,例如身份證號(hào)、手機(jī)號(hào)等敏感數(shù)據(jù)的發(fā)現(xiàn)規(guī)則,避免重復(fù)定義數(shù)據(jù)發(fā)現(xiàn)規(guī)則。
4.2.2 敏感數(shù)據(jù)的抽取方法
在實(shí)際數(shù)據(jù)運(yùn)用場(chǎng)景中,往往對(duì)數(shù)據(jù)有不同的需求,并不需要提供所有數(shù)據(jù)。因此,需要根據(jù)使用需求及脫敏要求,對(duì)數(shù)據(jù)進(jìn)行抽取,以提高信息密度。
數(shù)據(jù)抽取有以下3種方法:
1)字段分列:截取某一字段的部分信息。
2)字段合并:將某幾個(gè)字段合并為一個(gè)新字段。
3)字段匹配:將原數(shù)據(jù)表沒有、但其他數(shù)據(jù)表中有的字段,有效地匹配過來。
4.2.3 敏感數(shù)據(jù)的脫敏方法
對(duì)數(shù)據(jù)進(jìn)行脫敏前,需要先根據(jù)實(shí)際情況確定脫敏需求,制定脫敏方案,完成敏感數(shù)據(jù)的脫敏。
1)對(duì)那些已經(jīng)被識(shí)別出來的敏感數(shù)據(jù)按照產(chǎn)生—采集—使用—交換—銷毀的生命周期進(jìn)行流程的梳理,明確用戶在生命周期的各階段對(duì)數(shù)據(jù)的訪問權(quán)限及訪問需求,并進(jìn)行設(shè)置,同時(shí)整理、分析出需要對(duì)數(shù)據(jù)進(jìn)行脫敏的業(yè)務(wù)需求。例如,在梳理過程中,會(huì)發(fā)現(xiàn)存在對(duì)敏感數(shù)據(jù)的訪問需求和訪問權(quán)限不匹配的情況(用戶僅需獲取敏感數(shù)據(jù)中部分內(nèi)容即可,但卻擁有對(duì)敏感數(shù)據(jù)內(nèi)容全部的訪問權(quán)限),因此,該業(yè)務(wù)場(chǎng)景就有對(duì)敏感數(shù)據(jù)進(jìn)行數(shù)據(jù)脫敏的需求。
2)業(yè)務(wù)場(chǎng)景被明確后,系統(tǒng)按照最小夠用的原則,對(duì)不同類別的敏感信息明確其脫敏要求、脫敏規(guī)則及該業(yè)務(wù)在服務(wù)水平方面的需求,以便于脫敏方案的制定。
3)脫敏方案制定后,數(shù)據(jù)脫敏工具自動(dòng)完成敏感數(shù)據(jù)的脫敏工作。數(shù)據(jù)脫敏工具提供擴(kuò)展機(jī)制,讓用戶可根據(jù)需求自定義脫敏方法。同時(shí)系統(tǒng)可以對(duì)敏感數(shù)據(jù)常用的脫敏規(guī)則進(jìn)行固化,從而可以避免數(shù)據(jù)脫敏規(guī)則的重復(fù)定義,確保數(shù)據(jù)脫敏項(xiàng)目的順利實(shí)施。
該系統(tǒng)以三層框架為基礎(chǔ),建立了一個(gè)完善的數(shù)據(jù)脫敏體系結(jié)構(gòu)。系統(tǒng)提供與監(jiān)控系統(tǒng)對(duì)接接口,可以建立起脫敏操作的監(jiān)管審計(jì)體系[18-19],如圖2所示。

圖2 數(shù)據(jù)脫敏系統(tǒng)架構(gòu)
當(dāng)需要發(fā)起脫敏操作時(shí),脫敏操作發(fā)起人通過統(tǒng)一登錄平臺(tái)接口進(jìn)入脫敏系統(tǒng),脫敏系統(tǒng)從目標(biāo)數(shù)據(jù)源獲取目標(biāo)數(shù)據(jù),脫敏操作發(fā)起人根據(jù)脫敏需求選擇脫敏方案,提出脫敏任務(wù)申請(qǐng)。該申請(qǐng)上傳至OA系統(tǒng)審批通過后,系統(tǒng)開始對(duì)目標(biāo)數(shù)據(jù)進(jìn)行敏感數(shù)據(jù)發(fā)現(xiàn)、數(shù)據(jù)抽取以及數(shù)據(jù)脫敏操作,并將脫敏后的數(shù)據(jù)輸出至目標(biāo)環(huán)境以供使用。
系統(tǒng)提供數(shù)據(jù)源與算法配置的管理,能夠適應(yīng)復(fù)雜的脫敏環(huán)境,完成不同的脫敏任務(wù),具有較高的適用性與可擴(kuò)展性。系統(tǒng)內(nèi)置用戶權(quán)限管理,不同職責(zé)的人員擁有不同的系統(tǒng)操作權(quán)限。用戶無法未經(jīng)脫敏任務(wù)審核直接發(fā)起數(shù)據(jù)脫敏操作,有效杜絕了脫敏方案過于簡(jiǎn)單導(dǎo)致的敏感數(shù)據(jù)外泄問題。同時(shí)系統(tǒng)可以與郵件系統(tǒng)、消息平臺(tái)對(duì)接,便于用戶的使用。
數(shù)據(jù)脫敏系統(tǒng)的應(yīng)用案例如表2所示。

表2 運(yùn)用案例表Table 2 Application cases
通過對(duì)3種主流脫敏算法進(jìn)行分析與評(píng)估,結(jié)合多種脫敏方式,構(gòu)建了能夠滿足大數(shù)據(jù)時(shí)代下電力數(shù)據(jù)脫敏需求的系統(tǒng)。
1)該系統(tǒng)通過敏感信息分類,有效規(guī)范了脫敏流程;
2)內(nèi)置多種脫敏策略,滿足日常脫敏需求,在面對(duì)復(fù)雜的脫敏需求時(shí),可以進(jìn)行脫敏策略的自定義與拓展;
3)通過精準(zhǔn)的敏感信息定位標(biāo)志、高適應(yīng)性的脫敏策略,滿足了保留所需要信息與保護(hù)敏感信息的兩大要求。