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