本文將首先就對(duì)稱與非對(duì)稱加密、摘要算法等密碼學(xué)基本知識(shí)進(jìn)行簡(jiǎn)要介紹,然后梳理其在個(gè)人信息處理安全保障的合規(guī)落地,并結(jié)合同態(tài)加密等最新密碼技術(shù)對(duì)個(gè)人信息去標(biāo)識(shí)化與匿名化進(jìn)行剖析,以期為企業(yè)在合規(guī)落地的過(guò)程提供指引。
密碼技術(shù)介紹
密碼學(xué)是一門(mén)非常古老的學(xué)科,早在計(jì)算機(jī)出現(xiàn)前,就出了多種可以通過(guò)手工或者機(jī)械實(shí)現(xiàn)古典密碼技術(shù),如代換密碼和置換密碼等。但本文僅討論在計(jì)算機(jī)語(yǔ)境下的現(xiàn)代密碼技術(shù),其主要有三個(gè)分支,分別為對(duì)稱加密(Symmetric algorithm)、非對(duì)稱加密(Asymmetric algorithm)與摘要算法(Message-Digest algorithm)。
密碼學(xué)中有五個(gè)非常重要的概念,即明文(Plain text)、密文(Cipher text)、密鑰(Key)、加密(Encryption)與解密(Decryption)。密鑰是在明文加密為密文或?qū)⒚芪慕饷転槊魑牡乃惴ㄖ休斎氲膮?shù)。根據(jù)加密算法的不同,密鑰分為對(duì)稱密鑰與非對(duì)稱密鑰,分別對(duì)應(yīng)對(duì)稱加密算法與非對(duì)稱加密算法。相比對(duì)稱加密與非對(duì)稱加密,摘要算法不涉及解密和密鑰的概念,不同加密算法的特性具體參見(jiàn)下文。
(一)對(duì)稱加密技術(shù)
如下圖所示,對(duì)稱加密技術(shù)的重要特征在于其加密明文與解密密文所用的密鑰一致。
對(duì)稱加密算法的優(yōu)點(diǎn)在于加解密速度快,適用于對(duì)響應(yīng)速度要求高的場(chǎng)景。其缺點(diǎn)也非常明顯,即由于加解密密鑰相同,因此每次數(shù)據(jù)傳輸前應(yīng)當(dāng)通過(guò)安全的通道傳輸密鑰,顯然成本非常高昂。其次,當(dāng)需要與成千上萬(wàn)不同主體進(jìn)行通信時(shí),則需要分發(fā)n(n-1)/2個(gè)不同的密鑰,如此多的密鑰管理也是一個(gè)非常復(fù)雜的問(wèn)題。
目前較為常見(jiàn)的對(duì)稱加密算法主要有如下幾種:
1 Data Encryption Standard(DES);
2 Triple-DES(3DES);
3 Advanced Encryption Standard(AES);
4 RC4、RC5和RC6。
(二)非對(duì)稱加密技術(shù)
相比對(duì)稱加密,非對(duì)稱加密最大的不同在于加密密鑰與解密密鑰的不同。加密密鑰稱為公鑰(Public Key),解密密鑰為私鑰(Private Key),通常公鑰會(huì)公開(kāi),而私鑰必須妥善保管僅限于所有者知道。
由于非對(duì)稱加密采取了更為復(fù)雜的算法,因此其運(yùn)行速度顯著慢于對(duì)稱加密算法,無(wú)法適用于對(duì)于速度要求較高的場(chǎng)景。但相比對(duì)稱加密算法,非對(duì)稱加密算法解決了密鑰分發(fā)與密鑰管理的難題,即只要確保自己的私鑰不被外部知悉,那么其他人就可以用同一個(gè)公鑰進(jìn)行數(shù)據(jù)加密,私鑰所有者可以對(duì)其進(jìn)行解密,同時(shí)確保通信過(guò)程不會(huì)被竊聽(tīng)。
非對(duì)稱加密除了用于數(shù)據(jù)加密外,還可以用于認(rèn)證(Authentication)與數(shù)字簽名(Digital signature)。如果用私鑰對(duì)數(shù)據(jù)進(jìn)行加密(簽名),那么任何人均可用公鑰將其解密(驗(yàn)證),從而可以確保加密數(shù)據(jù)一方為私鑰所有者,因?yàn)樗借€僅所有者知道。
常見(jiàn)的非對(duì)稱加密算法有:
1 Rivest-Shamir-Adleman(RSA);
2 Elliptic curve cryptosystem(ECC);
3 Diffie-Hellman;
4 Digital Signature Algorithm(DSA);
(三)摘要算法
摘要算法又稱消息摘要算法或哈希(Hash)算法,它表示輸入任意長(zhǎng)度的數(shù)據(jù),都能輸出固定長(zhǎng)度的數(shù)據(jù),且能確保相同的輸入數(shù)據(jù)始終得到相同的輸出,不同的輸入數(shù)據(jù)盡量得到不同的輸出。相比上述加密技術(shù),摘要算法還有一個(gè)特征為加密過(guò)程無(wú)需使用密鑰。目前常見(jiàn)的哈希算法有MD5和SHA系列算法。
摘要算法通常具有如下特點(diǎn):
1正向快速:給定明文和摘要算法,在有限時(shí)間和有限資源內(nèi)能計(jì)算出密文(又稱為哈希值);
2逆向困難:給定(若干)哈希值,在有限時(shí)間內(nèi)很難(基本不可能)逆推出明文;
3輸入敏感:原始輸入信息修改一點(diǎn)信息,產(chǎn)生的哈希值看起來(lái)應(yīng)該都有很大不同;
4沖突避免:很難找到兩段內(nèi)容不同的明文,使得它們的哈希值一致(發(fā)生沖突)。即對(duì)于任意兩個(gè)不同的數(shù)據(jù)塊,其哈希值相同的可能性極小;對(duì)于一個(gè)給定的數(shù)據(jù)塊,找到和它哈希值相同的數(shù)據(jù)塊極為困難。
基于哈希算法的特性,其主要用作數(shù)據(jù)指紋。即在通信過(guò)程中,除了傳輸原始密文,還應(yīng)當(dāng)附帶上密文的哈希值,待接收方接收數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行解密并取其哈希值,與附帶的哈希值進(jìn)行比較,如果一致,即代表數(shù)據(jù)沒(méi)有遭受篡改。但在個(gè)人信息合規(guī)的場(chǎng)景下,摘要算法也是個(gè)人信息去標(biāo)識(shí)化的重要技術(shù)。
密碼技術(shù)在個(gè)人信息合規(guī)中的使用場(chǎng)景
(一)個(gè)人信息傳輸?shù)谋C苄?/span>
《個(gè)保法》第五十一條規(guī)定,應(yīng)個(gè)人信息處理者當(dāng)采取相應(yīng)的加密等技術(shù)措施,防止未經(jīng)授權(quán)的訪問(wèn)以及個(gè)人信息泄露、篡改、丟失。其中一個(gè)重要義務(wù)即確保個(gè)人信息的保密性(Confidentiality),即信息不被泄露給非授權(quán)的用戶或?qū)嶓w。對(duì)個(gè)人信息采取合理的加密措施,可以有效的保障個(gè)人信息在傳輸存儲(chǔ)過(guò)程中的保密性。這也是監(jiān)管部門(mén)較為關(guān)注的一個(gè)場(chǎng)景,2021年7月,工信部曾開(kāi)展“工業(yè)和信息化部啟動(dòng)互聯(lián)網(wǎng)行業(yè)專項(xiàng)整治行動(dòng)”,重點(diǎn)整治企業(yè)在數(shù)據(jù)收集、傳輸、存儲(chǔ)及對(duì)外提供等環(huán)節(jié)安全問(wèn)題,其中就包括數(shù)據(jù)傳輸時(shí)未對(duì)敏感信息加密。
在個(gè)人信息的傳輸過(guò)程中,如果明文進(jìn)行傳輸,個(gè)人信息很容易被抓包并獲取其中的內(nèi)容,對(duì)個(gè)人信息安全與隱私造成較大威脅。因此宜采取傳輸通道加密與字段加密措施,確保傳輸過(guò)程中的個(gè)人信息不會(huì)被未經(jīng)授權(quán)或非法訪問(wèn)。對(duì)于通道加密,目前主流方案是基于傳輸層的HTTPS協(xié)議,即在HTTP的基礎(chǔ)上加入了SSL/TLS協(xié)議,為客戶端和服務(wù)器之間的通信建立加密通道。此外,網(wǎng)絡(luò)層的互聯(lián)網(wǎng)安全協(xié)議(IPsec)可以建立更為安全的傳輸通道,但是IPsec需要預(yù)先配置,甚至要安裝客戶端軟件,因此使用場(chǎng)景較為受限。
如果傳輸?shù)膫€(gè)人信息屬于金融賬戶等敏感個(gè)人,在通道加密的基礎(chǔ)上,還應(yīng)當(dāng)對(duì)敏感個(gè)人信息采取對(duì)稱加密算法進(jìn)行字段級(jí)加密,如AES加密算法等。對(duì)于對(duì)稱加密的密鑰,可以采取固定值或者隨機(jī)生成的模式,固定值即將密鑰通過(guò)硬編碼的方式寫(xiě)死在客戶端和服務(wù)器代碼中,這樣較為簡(jiǎn)便與高效,但存在反編譯客戶端源代碼獲取對(duì)稱密碼的風(fēng)險(xiǎn)。如果采取隨機(jī)生成的模式,對(duì)稱加密密鑰可以通過(guò)非對(duì)稱加密進(jìn)行傳輸,如首先服務(wù)端傳輸公鑰Public Key至客戶端,客戶端隨機(jī)生成一次性對(duì)稱密鑰Symmetric Key,并使用Public Key對(duì)Symmetric Key進(jìn)行非對(duì)稱加密傳輸至服務(wù)端,服務(wù)端用私鑰Private Key解密得到Symmetric Key,隨后雙方可以通過(guò)Symmetric Key進(jìn)行數(shù)據(jù)傳輸。
(二)個(gè)人信息存儲(chǔ)的保密性
根據(jù)《個(gè)人信息安全規(guī)范》6.3和《個(gè)人金融信息保護(hù)技術(shù)規(guī)范》6.1.3,敏感個(gè)人信息或C3類的個(gè)人金融信息的存儲(chǔ)也應(yīng)當(dāng)進(jìn)行加密。在服務(wù)器端,個(gè)人信息的主要存儲(chǔ)介質(zhì)為數(shù)據(jù)庫(kù)。因此,在做好基本的數(shù)據(jù)庫(kù)訪問(wèn)控制權(quán)限措施的基礎(chǔ)上,個(gè)人信息處理者還應(yīng)當(dāng)對(duì)存儲(chǔ)的敏感個(gè)人信息采用對(duì)稱加密算法進(jìn)行字段級(jí)加密,并妥善保管密鑰。
其中較為特殊的是用戶密碼,多數(shù)企業(yè)僅將用戶密碼做Hash處理就進(jìn)行存儲(chǔ),但是考慮到多數(shù)人的密碼都較為簡(jiǎn)單,從而非常容易使用字典攻擊(Dictionary Attack)進(jìn)行破解。基于此,對(duì)于用戶密碼,宜采取加鹽哈希的方式進(jìn)行加密,增加破解難度,即假如密碼為“a123456”,鹽值為“xyz”,那么加鹽哈希值為對(duì)“xyza123456”取哈希值。鹽值可以是隨機(jī)生成,也可以是基于用戶的特定屬性生成,但是如果采取隨機(jī)生成,應(yīng)注意分開(kāi)存儲(chǔ)鹽值,避免泄露。
通常來(lái)說(shuō),個(gè)人信息處理者往往更加關(guān)注服務(wù)器端的數(shù)據(jù)存儲(chǔ)安全,而忽略了客戶端的數(shù)據(jù)存儲(chǔ)安全,其中移動(dòng)終端尤其值得關(guān)注。根據(jù)開(kāi)放式Web應(yīng)用程序安全項(xiàng)目(Open Web Application Security Project)在2016年公布的Top 10 Mobile Risks,不安全的數(shù)據(jù)存儲(chǔ)(Insure Data Storage)排在移動(dòng)安全風(fēng)險(xiǎn)的第二位。
如在Android終端上,數(shù)據(jù)存儲(chǔ)分為內(nèi)部存儲(chǔ)與外部存儲(chǔ),內(nèi)部存儲(chǔ)數(shù)據(jù)僅程序本身能夠訪問(wèn),而外部存儲(chǔ)所有程序均可訪問(wèn)。因此,建議將個(gè)人信息均存儲(chǔ)至內(nèi)部存儲(chǔ)路徑,并對(duì)敏感個(gè)人信息采取對(duì)稱加密技術(shù)進(jìn)行加密。對(duì)稱加密密鑰如果采取硬編碼的模式寫(xiě)入代碼或者配置文件中,容易通過(guò)反編譯的方式獲取,因此密鑰最好能夠變化,如采用移動(dòng)終端唯一標(biāo)識(shí)結(jié)合用戶賬號(hào)屬性生成。
(三)個(gè)人信息的去標(biāo)識(shí)化
《個(gè)人信息保護(hù)法》第五十一條第(三)款規(guī)定,個(gè)人信息處理者應(yīng)當(dāng)采取去標(biāo)識(shí)化等安全技術(shù)措施。根據(jù)《個(gè)保法》第七十三條第(三)款,去標(biāo)識(shí)化是指?jìng)€(gè)人信息經(jīng)過(guò)處理,使其在不借助額外信息的情況下無(wú)法識(shí)別特定自然人的過(guò)程。
通常來(lái)說(shuō),個(gè)人信息處理者處理個(gè)人信息時(shí),往往會(huì)定義一個(gè)唯一標(biāo)識(shí)符以標(biāo)識(shí)某一特定個(gè)人,如手機(jī)號(hào)、身份ID或IMEI號(hào)等。在進(jìn)行個(gè)人信息加工使用前,可以采用摘要算法,如MD5,對(duì)該唯一標(biāo)識(shí)符進(jìn)行加密,生成不可逆且與原標(biāo)識(shí)符唯一對(duì)應(yīng)的值,以取代原唯一標(biāo)識(shí)符。此外,還可以使用對(duì)稱加密算法對(duì)標(biāo)識(shí)符進(jìn)行加密處理,但需要注意保管加密密鑰,以免去標(biāo)識(shí)化信息遭遇未經(jīng)授權(quán)的復(fù)原。
但無(wú)論是采取摘要算法還是對(duì)稱加密算法進(jìn)行去標(biāo)識(shí)化處理,如果不是為了達(dá)到匿名化的程度,則應(yīng)當(dāng)注意對(duì)去標(biāo)識(shí)化復(fù)原信息的存儲(chǔ)。采取摘要算法的場(chǎng)景下,應(yīng)分開(kāi)存儲(chǔ)原唯一標(biāo)識(shí)符與哈希值的映射數(shù)據(jù),在采取對(duì)稱加密的場(chǎng)景下,僅單獨(dú)存儲(chǔ)加解密密鑰即可。
(四)同態(tài)加密在個(gè)人信息合規(guī)中的應(yīng)用
個(gè)人信息存儲(chǔ)與傳輸加密,是為保障個(gè)人信息的靜態(tài)存儲(chǔ)與動(dòng)態(tài)傳輸安全,而同態(tài)加密(Homomorphic Encryption)的發(fā)展與應(yīng)用,可確保個(gè)人信息加工使用過(guò)程中的保密性與隱私安全。
那么什么是同態(tài)加密?與普通的加密算法又有何區(qū)別?通常情況下,如果對(duì)兩個(gè)密文A’和B’進(jìn)行加法或乘法等運(yùn)算得出C’,再對(duì)C’進(jìn)行解密后得出的結(jié)果C’’往往是無(wú)意義的亂碼,而不會(huì)等于明文A與B直接計(jì)算得出得結(jié)果C。但是同態(tài)加密算法卻不同,通過(guò)同態(tài)加密后的密文進(jìn)行運(yùn)算得出的結(jié)果進(jìn)行解密,其值C’’與明文直接運(yùn)算得出的結(jié)果C一致,具體邏輯參見(jiàn)下圖。
同態(tài)加密算法主要可以分為如下幾類:
(1)加法同態(tài)加密。如果該加密算法滿足加法運(yùn)算的要求,則稱為加法同態(tài),可以對(duì)密文進(jìn)行加減法運(yùn)算;
(2)乘法同態(tài)加密。如果加密算法滿足乘法運(yùn)算的要求,則稱為乘法同態(tài),可以對(duì)密文進(jìn)行乘法與除法運(yùn)算;
(3)全同態(tài)加密。如果加密算法支持密文同時(shí)加減乘除運(yùn)算,則可以稱為全同態(tài)加密。
根據(jù)《個(gè)保法》第十七條、二十一條和五十五條等規(guī)定,個(gè)人信息處理者委托處理個(gè)人信息的,有如下義務(wù)需要遵守:
(1)應(yīng)當(dāng)告知個(gè)人信息主體;
(2)與受托人約定委托處理相關(guān)事項(xiàng);
(3)對(duì)受托人的個(gè)人信息處理活動(dòng)進(jìn)行監(jiān)督;
(4)進(jìn)行事前的個(gè)人信息保護(hù)影響評(píng)估等。
可以看出,個(gè)人信息處理者在進(jìn)行個(gè)人信息委托處理時(shí)需要遵守的義務(wù)相當(dāng)繁瑣。如在委托第三方處理的場(chǎng)景下使用同態(tài)加密技術(shù),則個(gè)人信息處理者僅需要傳輸加密后的密文即可,而不必將個(gè)人信息明文傳輸至第三方進(jìn)行處理。這一場(chǎng)景下的密文傳輸是否仍屬于個(gè)人信息的委托處理存在部分爭(zhēng)議,一種觀點(diǎn)認(rèn)為受托方無(wú)法還原加密信息,因此屬于匿名化信息,無(wú)需遵守《個(gè)人信息保護(hù)法》的規(guī)定;另一種觀點(diǎn)認(rèn)為,委托方仍保留解密密鑰,能夠進(jìn)行解密還原,因此仍屬于個(gè)人信息,需要遵守委托處理相關(guān)的義務(wù)。這一爭(zhēng)論的核心在于重識(shí)別的主體標(biāo)準(zhǔn)為何,由于該爭(zhēng)議點(diǎn)不是本文的討論重點(diǎn),因此不在此展開(kāi)贅述。但不可置否的是,在保障個(gè)人信息安全的同時(shí),同態(tài)加密技術(shù)無(wú)疑可以極大降低個(gè)人信息委托處理違規(guī)風(fēng)險(xiǎn)。
結(jié)語(yǔ)
本文首先對(duì)密碼學(xué)的基本知識(shí)做了簡(jiǎn)要介紹,并就不同的加密技術(shù)在個(gè)人信息合規(guī)中的不同場(chǎng)景下應(yīng)用落地做了粗淺分析。可以看出,個(gè)人信息合規(guī)落地,尤其是個(gè)人信息的安全保障義務(wù),不僅僅是法律問(wèn)題,更是信息安全技術(shù)問(wèn)題。企業(yè)應(yīng)當(dāng)在充分拆解與梳理合規(guī)義務(wù)的基礎(chǔ)上,從信息系統(tǒng)層面出發(fā)對(duì)其進(jìn)行落地,才能有效保證個(gè)人信息的安全和企業(yè)在個(gè)人信息處理中的合法合規(guī)。
參考文獻(xiàn):
1.[加]Douglas R.Stinson:《密碼學(xué)原理與實(shí)踐》(第三版),馮登國(guó)譯,電子工業(yè)出版社2016年版;
2.信息通信管理局:《工業(yè)和信息化部啟動(dòng)互聯(lián)網(wǎng)行業(yè)專項(xiàng)整治行動(dòng)》,載于中華人民共和國(guó)工業(yè)和信息化部官網(wǎng),https://www.miit.gov.cn/xwdt/gxdt/ldhd/art/2021/art_942c35d37345442eb10cbce9852dddad.html;
3.牛少彰:《信息安全概念》(第3版),北京郵電大學(xué)出版社2016年版;
4.root001:《Android數(shù)據(jù)存儲(chǔ)安全實(shí)踐》,載于FreeBuf.COM,https://www.freebuf.com/articles/terminal/185320.html;