随着信息技术的高速发展,作为保障信息安全的重要手段,密码技术已经逐渐渗透到我们信息生活的方方面面,无论是浏览网页、即时通讯聊天,还是银行转账和智能家居等等,都涉及了密码技术的使用。2021年11月《个人信息保护法》(以下简称《个保法》)正式实施,《个保法》第五十一条明确要求个人信息处理者采取加密等安全技术措施,确保确保个人信息处理活动符合法律、行政法规的规定,并防止未经授权的访问以及个人信息泄露、篡改、丢失。事实上,密码技术除了在个人信息的传输与存储等环节作为安全保障措施外,也是个人信息去标识化/匿名化的有效方式。
本文将首先就对称与非对称加密、摘要算法等密码学基本知识进行简要介绍,然后梳理其在个人信息处理安全保障的合规落地,并结合同态加密等最新密码技术对个人信息去标识化与匿名化进行剖析,以期为企业在合规落地的过程提供指引。
密码技术介绍
密码学是一门非常古老的学科,早在计算机出现前,就出了多种可以通过手工或者机械实现古典密码技术,如代换密码和置换密码等。但本文仅讨论在计算机语境下的现代密码技术,其主要有三个分支,分别为对称加密(Symmetric algorithm)、非对称加密(Asymmetric algorithm)与摘要算法(Message-Digest algorithm)。
密码学中有五个非常重要的概念,即明文(Plain text)、密文(Cipher text)、密钥(Key)、加密(Encryption)与解密(Decryption)。密钥是在明文加密为密文或将密文解密为明文的算法中输入的参数。根据加密算法的不同,密钥分为对称密钥与非对称密钥,分别对应对称加密算法与非对称加密算法。相比对称加密与非对称加密,摘要算法不涉及解密和密钥的概念,不同加密算法的特性具体参见下文。
(一)对称加密技术
如下图所示,对称加密技术的重要特征在于其加密明文与解密密文所用的密钥一致。
对称加密算法的优点在于加解密速度快,适用于对响应速度要求高的场景。其缺点也非常明显,即由于加解密密钥相同,因此每次数据传输前应当通过安全的通道传输密钥,显然成本非常高昂。其次,当需要与成千上万不同主体进行通信时,则需要分发n(n-1)/2个不同的密钥,如此多的密钥管理也是一个非常复杂的问题。
目前较为常见的对称加密算法主要有如下几种:
1 Data Encryption Standard(DES);
2 Triple-DES(3DES);
3 Advanced Encryption Standard(AES);
4 RC4、RC5和RC6。
(二)非对称加密技术
相比对称加密,非对称加密最大的不同在于加密密钥与解密密钥的不同。加密密钥称为公钥(Public Key),解密密钥为私钥(Private Key),通常公钥会公开,而私钥必须妥善保管仅限于所有者知道。
由于非对称加密采取了更为复杂的算法,因此其运行速度显著慢于对称加密算法,无法适用于对于速度要求较高的场景。但相比对称加密算法,非对称加密算法解决了密钥分发与密钥管理的难题,即只要确保自己的私钥不被外部知悉,那么其他人就可以用同一个公钥进行数据加密,私钥所有者可以对其进行解密,同时确保通信过程不会被窃听。
非对称加密除了用于数据加密外,还可以用于认证(Authentication)与数字签名(Digital signature)。如果用私钥对数据进行加密(签名),那么任何人均可用公钥将其解密(验证),从而可以确保加密数据一方为私钥所有者,因为私钥仅所有者知道。
常见的非对称加密算法有:
1 Rivest-Shamir-Adleman(RSA);
2 Elliptic curve cryptosystem(ECC);
3 Diffie-Hellman;
4 Digital Signature Algorithm(DSA);
(三)摘要算法
摘要算法又称消息摘要算法或哈希(Hash)算法,它表示输入任意长度的数据,都能输出固定长度的数据,且能确保相同的输入数据始终得到相同的输出,不同的输入数据尽量得到不同的输出。相比上述加密技术,摘要算法还有一个特征为加密过程无需使用密钥。目前常见的哈希算法有MD5和SHA系列算法。
摘要算法通常具有如下特点:
1正向快速:给定明文和摘要算法,在有限时间和有限资源内能计算出密文(又称为哈希值);
2逆向困难:给定(若干)哈希值,在有限时间内很难(基本不可能)逆推出明文;
3输入敏感:原始输入信息修改一点信息,产生的哈希值看起来应该都有很大不同;
4冲突避免:很难找到两段内容不同的明文,使得它们的哈希值一致(发生冲突)。即对于任意两个不同的数据块,其哈希值相同的可能性极小;对于一个给定的数据块,找到和它哈希值相同的数据块极为困难。
基于哈希算法的特性,其主要用作数据指纹。即在通信过程中,除了传输原始密文,还应当附带上密文的哈希值,待接收方接收数据后,对数据进行解密并取其哈希值,与附带的哈希值进行比较,如果一致,即代表数据没有遭受篡改。但在个人信息合规的场景下,摘要算法也是个人信息去标识化的重要技术。
密码技术在个人信息合规中的使用场景
(一)个人信息传输的保密性
《个保法》第五十一条规定,应个人信息处理者当采取相应的加密等技术措施,防止未经授权的访问以及个人信息泄露、篡改、丢失。其中一个重要义务即确保个人信息的保密性(Confidentiality),即信息不被泄露给非授权的用户或实体。对个人信息采取合理的加密措施,可以有效的保障个人信息在传输存储过程中的保密性。这也是监管部门较为关注的一个场景,2021年7月,工信部曾开展“工业和信息化部启动互联网行业专项整治行动”,重点整治企业在数据收集、传输、存储及对外提供等环节安全问题,其中就包括数据传输时未对敏感信息加密。
在个人信息的传输过程中,如果明文进行传输,个人信息很容易被抓包并获取其中的内容,对个人信息安全与隐私造成较大威胁。因此宜采取传输通道加密与字段加密措施,确保传输过程中的个人信息不会被未经授权或非法访问。对于通道加密,目前主流方案是基于传输层的HTTPS协议,即在HTTP的基础上加入了SSL/TLS协议,为客户端和服务器之间的通信建立加密通道。此外,网络层的互联网安全协议(IPsec)可以建立更为安全的传输通道,但是IPsec需要预先配置,甚至要安装客户端软件,因此使用场景较为受限。
如果传输的个人信息属于金融账户等敏感个人,在通道加密的基础上,还应当对敏感个人信息采取对称加密算法进行字段级加密,如AES加密算法等。对于对称加密的密钥,可以采取固定值或者随机生成的模式,固定值即将密钥通过硬编码的方式写死在客户端和服务器代码中,这样较为简便与高效,但存在反编译客户端源代码获取对称密码的风险。如果采取随机生成的模式,对称加密密钥可以通过非对称加密进行传输,如首先服务端传输公钥Public Key至客户端,客户端随机生成一次性对称密钥Symmetric Key,并使用Public Key对Symmetric Key进行非对称加密传输至服务端,服务端用私钥Private Key解密得到Symmetric Key,随后双方可以通过Symmetric Key进行数据传输。
(二)个人信息存储的保密性
根据《个人信息安全规范》6.3和《个人金融信息保护技术规范》6.1.3,敏感个人信息或C3类的个人金融信息的存储也应当进行加密。在服务器端,个人信息的主要存储介质为数据库。因此,在做好基本的数据库访问控制权限措施的基础上,个人信息处理者还应当对存储的敏感个人信息采用对称加密算法进行字段级加密,并妥善保管密钥。
其中较为特殊的是用户密码,多数企业仅将用户密码做Hash处理就进行存储,但是考虑到多数人的密码都较为简单,从而非常容易使用字典攻击(Dictionary Attack)进行破解。基于此,对于用户密码,宜采取加盐哈希的方式进行加密,增加破解难度,即假如密码为“a123456”,盐值为“xyz”,那么加盐哈希值为对“xyza123456”取哈希值。盐值可以是随机生成,也可以是基于用户的特定属性生成,但是如果采取随机生成,应注意分开存储盐值,避免泄露。
通常来说,个人信息处理者往往更加关注服务器端的数据存储安全,而忽略了客户端的数据存储安全,其中移动终端尤其值得关注。根据开放式Web应用程序安全项目(Open Web Application Security Project)在2016年公布的Top 10 Mobile Risks,不安全的数据存储(Insure Data Storage)排在移动安全风险的第二位。
如在Android终端上,数据存储分为内部存储与外部存储,内部存储数据仅程序本身能够访问,而外部存储所有程序均可访问。因此,建议将个人信息均存储至内部存储路径,并对敏感个人信息采取对称加密技术进行加密。对称加密密钥如果采取硬编码的模式写入代码或者配置文件中,容易通过反编译的方式获取,因此密钥最好能够变化,如采用移动终端唯一标识结合用户账号属性生成。
(三)个人信息的去标识化
《个人信息保护法》第五十一条第(三)款规定,个人信息处理者应当采取去标识化等安全技术措施。根据《个保法》第七十三条第(三)款,去标识化是指个人信息经过处理,使其在不借助额外信息的情况下无法识别特定自然人的过程。
通常来说,个人信息处理者处理个人信息时,往往会定义一个唯一标识符以标识某一特定个人,如手机号、身份ID或IMEI号等。在进行个人信息加工使用前,可以采用摘要算法,如MD5,对该唯一标识符进行加密,生成不可逆且与原标识符唯一对应的值,以取代原唯一标识符。此外,还可以使用对称加密算法对标识符进行加密处理,但需要注意保管加密密钥,以免去标识化信息遭遇未经授权的复原。
但无论是采取摘要算法还是对称加密算法进行去标识化处理,如果不是为了达到匿名化的程度,则应当注意对去标识化复原信息的存储。采取摘要算法的场景下,应分开存储原唯一标识符与哈希值的映射数据,在采取对称加密的场景下,仅单独存储加解密密钥即可。
(四)同态加密在个人信息合规中的应用
个人信息存储与传输加密,是为保障个人信息的静态存储与动态传输安全,而同态加密(Homomorphic Encryption)的发展与应用,可确保个人信息加工使用过程中的保密性与隐私安全。
那么什么是同态加密?与普通的加密算法又有何区别?通常情况下,如果对两个密文A’和B’进行加法或乘法等运算得出C’,再对C’进行解密后得出的结果C’’往往是无意义的乱码,而不会等于明文A与B直接计算得出得结果C。但是同态加密算法却不同,通过同态加密后的密文进行运算得出的结果进行解密,其值C’’与明文直接运算得出的结果C一致,具体逻辑参见下图。
同态加密算法主要可以分为如下几类:
(1)加法同态加密。如果该加密算法满足加法运算的要求,则称为加法同态,可以对密文进行加减法运算;
(2)乘法同态加密。如果加密算法满足乘法运算的要求,则称为乘法同态,可以对密文进行乘法与除法运算;
(3)全同态加密。如果加密算法支持密文同时加减乘除运算,则可以称为全同态加密。
根据《个保法》第十七条、二十一条和五十五条等规定,个人信息处理者委托处理个人信息的,有如下义务需要遵守:
(1)应当告知个人信息主体;
(2)与受托人约定委托处理相关事项;
(3)对受托人的个人信息处理活动进行监督;
(4)进行事前的个人信息保护影响评估等。
可以看出,个人信息处理者在进行个人信息委托处理时需要遵守的义务相当繁琐。如在委托第三方处理的场景下使用同态加密技术,则个人信息处理者仅需要传输加密后的密文即可,而不必将个人信息明文传输至第三方进行处理。这一场景下的密文传输是否仍属于个人信息的委托处理存在部分争议,一种观点认为受托方无法还原加密信息,因此属于匿名化信息,无需遵守《个人信息保护法》的规定;另一种观点认为,委托方仍保留解密密钥,能够进行解密还原,因此仍属于个人信息,需要遵守委托处理相关的义务。这一争论的核心在于重识别的主体标准为何,由于该争议点不是本文的讨论重点,因此不在此展开赘述。但不可置否的是,在保障个人信息安全的同时,同态加密技术无疑可以极大降低个人信息委托处理违规风险。
结语
本文首先对密码学的基本知识做了简要介绍,并就不同的加密技术在个人信息合规中的不同场景下应用落地做了粗浅分析。可以看出,个人信息合规落地,尤其是个人信息的安全保障义务,不仅仅是法律问题,更是信息安全技术问题。企业应当在充分拆解与梳理合规义务的基础上,从信息系统层面出发对其进行落地,才能有效保证个人信息的安全和企业在个人信息处理中的合法合规。
参考文献:
1.[加]Douglas R.Stinson:《密码学原理与实践》(第三版),冯登国译,电子工业出版社2016年版;
2.信息通信管理局:《工业和信息化部启动互联网行业专项整治行动》,载于中华人民共和国工业和信息化部官网,https://www.miit.gov.cn/xwdt/gxdt/ldhd/art/2021/art_942c35d37345442eb10cbce9852dddad.html;
3.牛少彰:《信息安全概念》(第3版),北京邮电大学出版社2016年版;
4.root001:《Android数据存储安全实践》,载于FreeBuf.COM,https://www.freebuf.com/articles/terminal/185320.html;