很多时候,人们上网都处于一个裸奔的状态,个人信息已不再属于个人,时下这种事好像也见怪不怪了,不过,出现这种事大多是有内鬼。
而作为开发者的我们,能做的就是尽量避免经我们手的用户数据泄露,本章我们来讨论一下有关数据安全保护的一些话题。
38.1 数据脱敏的基本概念
38.1.1 什么是数据脱敏
数据脱敏(Data Masking)来自维基百科的解释称为数据隐蔽,或为数据混淆,是指使用修改过的内容(字符或其他数据)隐藏原始数据的过程。目前国内卫衣公开发布的文件《政府数据数据脱敏工作指南》中,描述数据脱敏是从原始环境向目标环境进行敏感数据交换的过程中,通过一定方法消除原始环境数据中的敏感信息,并保留目标环境业务所需的数据特征或内容的数据处理过程。
将脱敏技术应用于数据字段的主要原因是为了保护个人可识别数据、个人敏感数据或商业敏感数据等数据,要求这些数据须保持可用性,它还必须看起来真实和一致,将脱敏应用于企业生产系统外部显示的数据更为常见。在我们给定脱敏规则和策略的情况下,对敏感数据比如 手机号、银行卡号、企业收支细节等信息进行转换或者修改,防止敏感数据直接在不可靠的环境下使用。
政府、医疗行业、金融机构、移动运营商等行业是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄露后果是不可估量的。
数据脱敏的应用在生活中比较常见,比如我们在淘宝买东西订单详情中,商家账户信息会被用 * 遮挡,保障了商户隐私不泄露,这就是一种数据脱敏方式。
38.1.2 数据脱敏原则
为保证数据在进行脱敏之后的可用性及灵活性,遵循“保证脱敏后数据可应用"的原则,需要达到以下要求:智能化、可重复性或随机性、数据仿真性、数据相关性要求。当然,有专家认为个人的数据经匿名化之后不再适用于个人数据保护法。数据控制者对于该数据的使用处理不再受个入数据保护法的规范,例如包括知情同意原则、目的限制原则、最小化原则等都不再发挥约束作用。
任何数据脱敏或混淆所涉及的数据必须在几个层次上保待有意义。
- 数据对应用逻辑必须有意义,例如:一个地址包含的元素被混淆,城市和郊区被替换,那么,如果在应用程序中有一个验证邮政编码或邮政编码查找的特性,则必须允许该函数无错误地并按预期运行。
- 数据必须经历充分的改变,以至于不能辨别这些脱敏的数据是来自于生产数据的源头。例如:一个单位有10个高管收入都超过100万是个常识,如果单位的HR管理系统 的测试环境也包含了lO个相似的身份,那么可以通过其他相关信息拼凑逆向出一个真实 的身份。
- 当数据库中的每个数据库都包含被脱敏的特定数据元素时,可能需要在组织中的多个数据库中保持脱敏内容的一致性。这要求应用的脱敏方式是可重复的,应用的脱敏算法的相同输入值总是产生相同的输出值,还不能通过逆向返回到原始值。
38.1.3 数据脱敏类型
一般来说数据脱敏与构建测试数据紧密结合,主要分为静态脱敏和动态脱敏两种方式
1. 静态数据脱敏(Static Data Masking, SDM)
有时我们可能需要将生产环境的数据复制到到测试、开发库中,以此来排查问题或进行数据分析,但出于安全考虑又不能将敏感数据存储于非生产环境,此时就要把敏感数据从生产环境脱敏完毕之后再在非生产环境使用
静态数据脱敏(SDM)适用于将数据抽取出生产环境脱敏后分发至测试、开发、培训、数据分析等场景,可以在第三方供应商、开发或其他必要的方之间共享。
这样脱敏后的数据与生产环境隔离,满足业务需要的同时又保障了生产数据的安全。
数据脱敏过程
如上图所示,将用户的真实 姓名、手机号、身份证、银行卡号 通过 替换、无效化、乱序、对称加密 等方案进行脱敏改造。
2. 动态数据脱敏(Synamic Data Masking, SDM)
动态数据脱敏(DDM)一般用在生产环境,访问敏感数据时实时进行脱敏(通常为"边脱敏,边使用”),因为有时在不同情况下对于同一敏感数据的读取,需要做不同级别的脱敏处理,例如:不同角色、不同权限所执行的脱敏方案会不同。
在抹去数据中的敏感内容同时,也需要保持原有的数据特征、业务规则和数据关联性,保证我们在开发、测试以及数据分析类业务不会受到脱敏的影响,使脱敏前后的数据一致性和有效性。
动态脱敏有一种特殊的变种,称之为飞行数据脱敏(On-the-fly Data Masking)。这种脱敏发生在数据从一个环境传输到另一个环境的过程中,而数据在传输过程中不接触磁盘。同样的技术也适用于“动态数据掩蔽",但每次只记录一条。这种类型的数据脱敏对于执行连续部署的环境和高度集成的应用程序非常有用。采用连续部署或连续交付实践的组织没有时间创建备份,并将数据库的黄金副本及时下载。因此,不断地从生产中发送很小的脱敏测试数据是很重要的。
38.2 数据脱敏方案
数据脱敏系统可以按照不同业务场景自行定义和编写脱敏规则,可以针对库表的某个敏感字段,进行数据的不落地脱敏。
脱敏系统
数据脱敏的方式有很多种,接下来以下图数据为准一个一个的演示每种方案。
原始数据
38.2.1 无效化
无效化方案在处理待脱敏的数据时,通过对字段数据值进行截断、加密、隐藏等方式让敏感数据脱敏,使其不再具有利用价值。一般采用特殊字符(等)代替真值,这种隐藏敏感数据的方法简单,但缺点是用户无法得知原数据的格式,如果想要获取完整信息,要让用户授权查询。
截断方式
比如我们将身份证号用 替换真实数字就变成了 “220724 ** 3523”,非常简单。
隐藏方式
38.2.2 随机值
随机值替换,字母变为随机字母,数字变为随机数字,文字随机替换文字的方式来改变敏感数据,这种方案的优点在于可以在一定程度上保留原有数据的格式,往往这种方法用户不易察觉的。
我们看到 name 和 idnumber 字段进行了随机化脱敏,而名字姓、氏随机化稍有特殊,需要有对应姓氏字典数据支持。
35.2.3 数据替换
数据替换与前边的无效化方式比较相似,不同的是这里不以特殊字符进行遮挡,而是用一个设定的虚拟值替换真值。比如说我们将手机号统一设置成 “13651300000”。
38.2.4 对称加密
对称加密是一种特殊的可逆脱敏方法,通过加密密钥和算法对敏感数据进行加密,密文格式与原始数据在逻辑规则上一致,通过密钥解密可以恢复原始数据,要注意的就是密钥的安全性。
38.2.5 平均值
平均值方案经常用在统计场景,针对数值型数据,我们先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变。
对价格字段 price 做平均值处理后,字段总金额不变,但脱敏后的字段值都在均值 60 附近。
38.2.6 偏移和取整
这种方式通过随机移位改变数字数据,偏移取整在保持了数据的安全性的同时保证了范围的大致真实性,比之前几种方案更接近真实数据,在大数据分析场景中意义比较大。
比如下边的日期字段create_time中 2020-12-08 15:12:25 变为 2018-01-02 15:00:00。
数据脱敏规则在实际应用中往往都是多种方案配合使用,以此来达到更高的安全级别。
38.3 展示限制的基本概念
在各种应用场景下,以各种形式可被观察到的信息如果涉及敏感内容(包括隐私信息、密码口令信息、不宜让入知晓的其他个人信息等)泄露,就应该进行展示的限制。
展示限制,在GB/T35273—2017《信息安全技术 个人信息安全规范》7. 2中有相关说明:
涉及通过界面展示个入信息的(如显示屏幕、纸面),个人信息控制者宜对需展示 的个人信息采取去标识化处理等措施,降低个人信息在展示环节的泄露风险。例如,在个人信息展示时,防止内部非授权人员以及个人信息主体之外的其他人员未经授权获取个人信息"
根据标准的定义,要求通过界面展示信息时应进行信息的隐藏或者使非授权入员无法直接查看。这里涉及几个层面。
1. 界面展示限制
各种可以查看业务系统界面以及各显示终端界面,如平板、ATM机、柜员机、智能银行设备等都需要佳一控制。以银行领域来说,可能有不同的应用场景。个人客户在各种自操作界面,包括申请注册界面、变更个人信息界面、查看个人信息界面时,都会有必要显示个人信息,在涉及转账、电子商务寄付等场景,还可能需要输入和确认对方的个人信息,甚至一些密码、口令、找回信息等,为了防止不必要的外部人员或者内部人员在不需要时,可以看到敏感信息从而窃取账号、账号相关重要信息或者口令。
软件系统也会涉及纸面展示的领域。在对一些信息导出、打印、复制、保存时,所得到的信息也应该是对展示的个人信息进行限制的。从服务器端就应当对信息进行了限制处理,而不是仅仅在客户终端才进行了信息的转化。
2. 防范外部人员与内部管理人员
对信息的展示限制,防范的角度有两个,第一是个人用户在操作时,其身边的不怀好意的人员,可能使用肩窥、偷拍等方式记录敏感个人信息或密码,从而制作伪卡,盗取账户;另外一方面也是保护客户个人隐私, 防范客户不想被观察到隐私信息的朋友、其他在场人员等,如不想被看到身份证信息、手机号等。第二个是防范内部工作管理人员,在其所负责业务范畴内不需要相应的个人信息时, 限制展示客户信息,最大化的保护客户隐私,避免内部人员成为批量出卖个人信息的出口,封堵监管与违法的洞洞。如业务审批的账户,仅需要知道客户相关的征信记录、财产信息,并不需要知道客户本人是谁,仅需流水号或者个人信息的一部分进行核对确认就够用的情况下(如名字的最后一个字,身份证后四位等),这种情况下就可以对客户的个人信息进行隐藏或采取其他展示限制措施。
3. 去标识化的处理措施
对信息的展示限制需要采取适合、合理的处理措施,我们既要照顾隐藏后的信息的“确认信息”的需要,也要确保被处理的信息不能暴露个人有价值的信息,同时也要因地制宜的根据限制的环境,进行针对性地处理,避免产生业务上的逻辑错误。比如,部分信息在进行展示限制时,可能需要加密或以星号代替, 也有的可能需要部分信息隐藏,那么隐藏信息到底隐藏多少呢?那就得根据业务具体场景来看。
以身份证信息隐藏举例。有时候,你输入的身份证信息虽然不必要全文展示,但是有实际的核对身份证信息的必要,那么我们隐藏的信息就不能要保留部分能确定唯一性或者不容易产生重复的项,我们知道身份证前6位是籍贯信息,这6个数字隐藏就 没有什么价值,同一个籍贯的人员这串数值都是一样的,没有区分度,书生年月日一般来说重复性就比较小了,身份证最后四位的数值也基本是唯一性的,因此,在需要初步核对信息的时候,要采取处理措施时至少要保留这两者其中之一能显示。同时我们也考虑到出生日期有被作为密码的一部分的习惯或者泄露个人隐私,一般情况下可以的话应当隐藏。我们也在实际中见到过这样的逻辑错误情况,在一个界面有多处个人信息的展示,为了合规需要,系统开发人员设计把身份证的出生年月日隐藏了,但是很可惜的紧接着的一项账户信息就是出生日期。这就相当于没有隐藏,拼接出来又能得到身份证号信息。
38.4 数据去标识化
去标识化(de-identification)有时也称为“去标识化过程(de-identification process)”是指去除一组识别属性(identifying attribute)与数据主体(data principal) 之间关联的过程。个入信息去标识化(personal infonnationde-identification)是指通过对个人信息的技术处理,使其在不借助额外信息的情况下,无法识别个人信息主体(subject)的过程。个人信息去标识化的核心是利用技术手段,断开和个人信息主体的关 联。
38.4.1 去标识化过程
去标识化过程通常分为四个步骤,分别是确定目标、识别标识、处理标识和验证批 准,而监控审查则贯穿于整个过程,如下图所示:
- 确定目标
确定目标是前提。主要包括确定个人信息去标识化的对象、设定目标和制定计划。确定个人信息去标识化对象的核心任务是确定个人信息的范围,最好根据法律法规、组织要求、业务需求、和数据用途等要素确定哪些个人信息属于去标识化的对象;设定目标应考虑个人信息重标识风险与个人信息有效性之间的平衡,且设定各自的阑值;制定计划包括去标识化的目的、对象、操作人员、实施方案和进度安排等。
- 识别标识
识别标识是基础。包括查表识别法、规则判定法和人工分析法。查表识别法指预先建立个人信息的元数据表格,将待识别个人信息的各个属性名称或字段名称,逐个与个人信息元数据表中记录进行对比;规则判定法是指通过建立自动化程序,分析个人信息规律, 从中自动发现需要去标识化的标识符;人工分析法是通过人工发现和确定需要去标识化的标识符。
- 处理标识
处理标识是核心。分为预处理、选择模型技术、实施去标识化三个阶段。预处理是在对个人信息正式实施去标识化前的准备过程。预处理是对个人信息进行变化,使其有利于后期进行处理;选择模型技术主要是根据个人信息类型和业务特性选择去标识化的技术; 实施去标识化是根据己选择的去标识化技术,对个人信息进行操作。
- 验证审批
验证审批是保障。个人信息去标识化后需进行验证,以确保生成的个入信息在重标识风险和数据有用性方面都符合确定目标阶段的阙值。在验证满足目标过程中,需要对个人信息去标识化后重标识风险进行评估,并与预期可接受风险闾值进行比较,如果超出风险阙值,需继续进行调整直到满足要求。
- 监控审查
监控审计是关键。作为通用步骤,是监控审查应渗透到去标识化过程的每个阶段,对去标识化处理过程相应的操作行为进行监控,操作日志进行记录,同时应对每一阶段去标识化的效果要持续监控,以达到预期目标。
38.4.2 去标识化技术
去识别技术(de-identificationtechnique)是一种用于变换数据集的方法,其目的是减少数据与特定数据主体相关联的程度。目前常用的去标识化技术主要有:统计技术(Statistical tools)、密码技术(Cryptographic tools)、抑制技术(Suppression techniques)、假名化技术(Pseudonyrnization techniques)、泛化技术(Generalization techniques)、随机技术(Randomization techniques)、合成技术(Synthetic data)、K -匿名模型(K - anonymity model)和差分隐私模型(Differential privacy model)。每种技术下面又包含不同的方法。
38.4.3 去标识化与匿名化的区别
匿名化(anonymization) 是指实名信息不可复原的处理过程,处理之后信息控制者不能直接或间接的再次识别原有个人或组织的实名信息。去标识化和匿名化都是个人隐私安全的技术防护手段,主要区别是去标识化后的信息也属于个人信息,如果与其他额外信息结合,可以识别个人信息主体,通常也称为重标识(re - identification)。觅匿名化后的信息不属于个人信息,且无法与额外信息结合识别出个人信息主体。
38.4.4 去标识化与脱敏的区别
脱敏(desensitization) 这个词最早出现在医学领域,是用于治疗特定过敏原所致I 型超敏反应的方法,而信息安全中的脱敏(redaction)来源于ISO/IEC 27038 Information technology Security techniques Specification for digitalredaction(信息技术 安全技术 数字化修订详述),译为永久去除文档中的信息。通常所说的数据脱敏(dataredaction)是指对某些敏感信息通过脱敏规则进行变形,实现敏感隐私数据的可靠保护。
目前业界对去标识化和脱敏没有明显的区分,他们的核心都是通过技术手段对标识信息或敏感数据进行处理,实现对敏感信息数据的保护。通常脱敏的范圉则更大,某种意义上包含去标识化,去标识化是隐私安全的技术手段,脱敏是数据安全的技术手段,而隐私安全是在数据安全基础之上对个人敏感信息的安全防护。去标识化作用的对象主要是标识信息,脱敏作用的对象主要是敏感数据,一般而言,个人信息说去标识化,不说脱敏。
38.5 展示限制的原则与方法
一般来说,我们对数据进行展示限制时,应当考虑如下原则。
- 合规的原则
进行展示限制处理时一定要满足国家法律法规要求,遵循监管需要,尤其是遵从个入 信息保护相关技术规范和标准的要求,并与法律合规部等部门配合,持续跟进相关法律法规和标准规范。
- 满足业务规则原则
什么时候需要进行展示限制,限制某个部分,或采用何种方法进行限制,一定要与业务场景相匹配,不能脱离业务的需要,或者违背业务的规则,在保障业务便利、用户使用友好、提升业务效率的前提下,尽量保障个人信息的安全,灵活的采取合理、有效、适当的措施进行处理。
- 信息保密性原则
展示限制的最大作用是保证个人信息或敏感信息不被泄露,要根据信息泄露的可能性和危害程度,确定个人信息泄露的风险等级,再结合实际需要,确定展示限制方案。
- 持续改进原则
在完成去展示限制工作后须进行评估和定期重评估,对照工作目标,评估工作效果(包括重标识、追踪风险和评估处置有效性)与效率,待续改进方法、技术和工具。并就相关工作进行文档记录。
以下选取几种重要的展示限制的方式,针对不同场景,来说明一般情况下如何对常用个人信息进行展示限制:
- 姓名的展示限制
姓名是常用的身份标识,作为银行身份验证重要的四要素信息之一,除了身份标识作用,也是身份鉴别的要素之一。在不必要的情况下,可以将姓名的部分信息进行隐藏或者处理,比如通过泛化编码,使用“姓+称谓”的方式来代替全名,如张先生、王女士等,这样适合在通知或者登陆信息的时候使用。也可以直接将比较容易重复的姓隐藏,保留重 复率较低的名字的最后一个字显示,如用户“*明”。
- 身份证号的展示限制
身份证号也是常用的身份标识符号,也属千四要素信息的一部分,身份证号标准的编 码规则来源于GB 11643—1999《公民身份号码》制定的编码规则,其结构分为地址码、出生日期码、顺序码和校验码,常见的展示限制一般是除末四位外全文隐藏(即** * * * * 0315),此种情形一般适用于需要隐藏出生年月日但又需要核对确认信息的情况; 或部分信息屏蔽,比如仅隐藏出生年月日,此种清况适用于需要保密出生日期但允许对出生日期按年代作统计分析等场景下使用,比如业务场景下的大数据分析。
- 银行卡号的展示限制
银行卡号在很多应用中和个人身份密切关联,是一种常用的标识符,也属于银行四要素信息的一部分。银行卡号是有专门的编码规则的,其顺序为发卡行标识代码、自定义位和校验码。常见的展示限制方法一般是采取部分屏蔽措施,由于仅知道发卡行或者其末四位就能让客户自己核对是哪张卡,保证了信息核对和确认的需要,但中间的部分信息可以进行隐藏,避免了整张卡号信息被泄露。
- 地址的展示限制
地址是属于比较敏感的个人信息,涉及个人隐私,因此比较重要,一般情况下不对业 务人员开放,也应尽量被非业务使用必须的入能访问,以避免被扩散造成隐私泄露或者被违法售卖。一般对地址信息可能会展示到某县某乡/镇,对具体街道、门牌号等信息会进行隐藏。或者也可能全文屏蔽。
- 电话号码的展示限制
一般情况下,对手机号码采取的展示限制措施包括全文隐藏以及4一7位隐藏的方式, 考虑到手机号码不具有编号规则,手机号码目前基本各位数字都没有太多实际含义,前三位数字可能代替运营商,但将来也会模糊这个概念,允许电话号码更换运营商,因此,按照通用习惯,一般隐藏11位数字中的4—7位。
38.6 批量导出授权
在业务应用中,很多时候都需要将相关数据导出,进行类似司法提供、对账单打印、内部数据分析、大数据应用、数据交换重要记录存档备份、测试数据利用等活动,对大量含个入信息的数据的导出,有可能导致数据无意或有意被泄露、窃取,如果做好相关的安全措施,保证合法、合理、安全的导出数据,应通过对导出过程中的安全管控来保障数据导出、提取的控制。
- 应加强导出环境的安全控制措施。
导出的数据本身如果极具敏感性,则应加强 数据导出的环境的安全,包括物理环境安全、终端环境安全、网络环境安全等。网络环境安全涉及区域内是否能连接其他外部网络,将相关数据发送出去,需要有严格的非法外联和非法接入等安全控制措施,物理环境安全包括物理准入控制、安全监控和报警等,终端环境安全包括外设安全、专机专用、USB限制、防截屏、防拍照等。
- 应严格加强对导出的权限的控制。
应对导出敏感个人信息进行严格的授权和控制, 比如专人负责导出,导出敏感数据有审批流程,按照权限分离原则分别建立导出审批角 色、导出执行角色、导出复核角色、导出审计角色等。
- 应加强敏感或大批量个人信息的导出的审批或双人复核。
对于敏感或者大批量个 人信息的导出,因为影响较大,需要建立严格的审批流程,建议有专门的业务主管负责审批,并有专门的复核人员进行操作的复核,避免过量导出多余的内容或者导出后没对部分信息隐藏。
- 应对敏感情景下的导出建立监控和报警策略。
事前的控制措施之外,还应当建立事中的监控和事后的报警措施,对非工作时间、职责外内容导出、导出内容数矗、导出频度、导出终端来源等建立安全审计阙值策略和报警策略,并根据业务情况灵活调整,动态发现违规导出,并以多种方式及时进行警报。
此外,有些安全措施也可以作为补充,例如,使用技术手段对终端的批量导出执行严格的访问控制,实现对操作人员身份的真实性和合法性的保证;提供客户信息在导入导出过程中的数据加密手段,确保数据在导入导出过程中的保密性;检查导入导出通道的数据缓存情况,及时删除缓存数据,保证导入导出过程中涉及的数据不被恶意恢复。业务部门如需导出涉及个人客户信息的相关报告,需要执行严格的审批流程,且对导出的文件进行加密存储。
38.7 重要说明
任何一种数据保护手段的目的都是为了防止隐私数据的滥用或泄露。除了应具有数据保护的观念并在开发过程中贯彻执行以外,所有工程师都应该知道“不泄露数据”是最起码的守法行为。
版权说明:本文由北京朗思云网科技股份有限公司原创,向互联网开放全部内容但保留所有权力。