伴随科技创新引领数字化浪潮席卷全球,数据成为企业发展的核心生产要素。像Google、Facebook等高科技公司,通过提供免费、优秀的软件和服务,接入大量的用户,并基于数据资源驱动,获得了巨大的商业成功。然而,在高速发展的同时,公司对数据却疏于治理,引起了大量的数据泄漏、算法滥用以及隐私相关的问题。这种危机伴随着Facebook的“剑桥分析”丑闻、2020年美国大选等标志性事件,推向了高潮。基于对数据安全和隐私的担忧,欧盟的GDPR领衔的现代隐私合规出台,随后风靡全球,成为又一不可逆转的潮流。
摆在企业面前是两条路,既要通过数据科技创新保证生存发展,又要保证用户数据的安全。在这两条路的选择与平衡上,有些企业倒下了,有些企业存活下来,并迸发出新的勃勃生机。
由此可见,唯有转变思路,勇于创新,才能化危为机,长远发展。我们要认清转折趋势:数字化时代从上半场粗放、低效,大水漫灌式碳增长,向基于高效数据管理、治理能力的高质量、高效率的数据碳中和转变。企业要在这个转变中生存并脱颖而出,科技创新是重要的抓手,而重点是把握两大核心思想:
在数字化应用环境下,数据具有如下特征:
传统模式下,数据以明文形式在系统中流通,数据暴露性巨大。攻击者通过应用程序、存储、主机系统入口,以及攻击系统的授权账户等多种渠道获取大量数据。
在数字化场景中,数据将在数以万计的应用、任务中传递。每个应用都有自身逻辑,让所有应用合规成本巨大。在如此广泛、复杂的环境下要保护数据安全,如果采用传统以系统为中心的防御模式,必将造成防御战线过长,攻强守弱的格局,让数据安全治理长期处于不利地位。必须转变思路,创造出一种数据内生的安全机制,在数据业务高速扩张环境下,安全防护能力也随之增长,这就是以数据为中心的安全防御创新机制。
Token化方案参考现实世界的银行系统。银行体系出现前,市面上经济活动主要以现金交易为主。现金的过度暴露,产生了大量的盗窃、抢劫案件,虽然镖局生意盛行,但只有少数富豪才雇佣得起,因此社会资产大量流失。银行体系应运而生:用户获得现金后,第一时间去银行将现金兑换成存款(等价代替物),随后在整个社会中流通的都是这个代替物-电子现金,只有在极个别场景兑换成现金。随着银行系统的渗透,加上各类线上支付应用的普及,这种现金使用场景越来越少。要想抢钱,只能到银行去,而银行是经过重点防护。
同样,数据作为核心资产,可以通过方案在个人敏感数据数据(PII)刚进入组织业务系统时,就将明文数据(P)替换成与其一一对应的假名-Token。在随后的整个组织应用环境中以Token高效流通。因为Token与明文是一一对应的,可以在生命周期绝大多数场景代替明文传输、交换、存储和使用,而Token只有通过安全可靠的Token化服务,才能兑换成明文。黑客和内外部恶意攻击者即便拿到了也毫无用处(不可见)。由于Token的自带安全属性,只要在组织内控制住主要数据源和数据枢纽只使用Token流通。新的明文数据需主动换成Token,实现数据默认安全,也就从根本上解决了个人敏感数据的治理难题。
如上图3所示,我们通过推广Token化,可将实际可访问明文的服务压缩到2位数,数据服务暴露性降低到1%以内。
如上图4所示,Token化改造后,敏感数据做到0存储、0缓存,0接口,0数仓;只有在少量具有解密权限主机内存,以及UI才可能获取明文数据访问权。UI通过后续细粒度访问控制和审计风控等措施,实现风险可控。对于少量的内存数据,因其数量有限,可通过特定的加固和风控措施,进行强化。如果实现全面Token化,敏感数据整体风险控制能力也可大大增强。
Token化(Tokenization)是通过不敏感的数据等价替代物Token来替换个人敏感数据,在业务系统中流通来降低数据风险和满足隐私合规的方案。Token化属于去标识化技术的一种。最早出现在支付卡行业(PCI)场景替换银行卡(PANs),目前有趋势替换通用数字化场景中的个人敏感信息(PII)。
1. 可用性实现
a)大数据分析场景利用Token的唯一性,实现数据挖掘、加工、分析等场景的去重、统计、关联等功能。
b)信息传递,在其他所有场景,Token利用其唯一性,可以完全替代明文数据在整个体系中流通,解决交换、关联、查询、匹配等环节的数据使用。
c)敏感功能使用:在必须使用明文数据场景,可以通过Token化服务换回明文,实现可用性兜底。
2. 不可见性实现
Token化本身的安全性是整个方案的安全基础。因此Token化从设计、到实现必须保证其安全,来防止非法者利用Token获得对应的原始明文,导致数据泄漏。详细请参考第四章节——Token化安全性实现。
为满足复杂场景下数据保护能力,要求Token化方案满足几个主要架构要求:
Token化的逻辑是,在企业范围内,为敏感数据生成全局唯一的ID-Token。通常有3种方案实现ID生成。
1. 随机化 :Token完全随机生成,并通过保存一一映射关系表(这种是狭义的Token化生成方式)。因为Token与明文没有算法关系,只能通过Token化服务才能进行正、反向关联,因此是最安全的方案。但这个方案的缺点是,为保证Token的高度一致性,新Token生成逻辑不能并发,否则会出现一对多的一致性问题。为保证数据一致性,将牺牲一定的分布式能力、性能。无形增加了可用性风险,尤其是远程异地场景。
2. MAC方式:通过统一的加盐哈希HMAC算法,任何进程、任何位置都能生成相同的Token,保证一致性。生成后的Token与明文的映射关系落表,实现反Token化能力。该方式优点是可以跨地域实现分布式,缺点是牺牲了一定的安全性。攻击者一旦获得了盐,就可以用算法批量计算Token。我们可以通过对盐采取适当的保护机制(采用与加密密钥相同保护策略),可以获得安全与可用性的平衡。
3. 确定性加解密:通过确定性加密算法,如(AES-SIV),或者格式保留加密(FPE),将明文加密,生成可逆Token。该算法破坏了加密的安全技术-随机性,但目前的算法普遍存在漏洞,不建议使用。此外,该算法还存在一个天然的漏洞,就是密钥无法轮换。
Token化服务需要满足全业务场景兼容性、安全性和可用性,主要通过多种接入集成方案。并集成必要的安全措施。Token化服务按逻辑分为接入层、服务层和存储层。
组件说明:
1. 线上数据源
敏感数据的主要数据来源,一进入公司需要对接Token化服务API兑换成Token,并落库存储。一定场景,数据也会接入数仓。数据源另外角色是向下游提供分享敏感数据,可通过API、MQ或共享存储如S3等媒介。
2. 数仓数据源
直接倒入或来自线上,敏感数据进入数仓,需要启用Token化任务,将明文转换成Token,并随后向下游其他大数据应用提供。
3. Token化服务
a)Token化线上服务通过API为线上交易、事实任务提供明文换Token服务。
b)Token化离线Hive,为大数据任务提供离线数据清洗服务,将明文转换成Token。
4. KMS和加解密
a)为Token化派发加密密钥,并将明文加密形成密文字段。
b)为所有具有解密权限应用派发解密密钥,进行解密。
5. 数据应用
a)常规中间应用:基于Token就能完成业务功能的服务。从数据源获取Token,并向下游传递。
b)解密应用:按业务需求,满足安全基线前提下,用Token换取密文,并对接加解密模块进行解密,获取明文。
Token化安全性假定就是Token和明文的无关性,如果任何一个人或系统非法保存、构造了一份Token与明文的对照字典或者具有构造这个字典的能力,Token化的安全机制就彻底破坏了,因此Token化安全的核心就是防止这个表的生成。
1. Token化服务本身安全风险和控制
a)Token生成逻辑安全:随机Token生成的唯一ID是最安全方式,需要采用可信的随机数生成器,条件允许可采用基于硬件的密码机生成随机数。如通过软件实现,需要采用基于加密的伪随机数生成机制。如果采用HMAC方式生成,需要确保盐的安全。
① 只能通过KMS等可信机制进行创建、分发和存储;
② 只能在Token化服务运行时内使用;
③ 定期进行盐的轮换,建议每日或每周,用过的盐进行安全删除;
④ 确保采用安全的Hash算法,如SHA-256或SM3。
b)Token化运行时安全:Token化服务采用专用系统,并且进行过特殊加固。
c)Token化存储安全:考虑到大数据场景以及多种存储需求,要求Token化存储本身不保存敏感信息,只包含索引、Token 和密文。同时,Token化存储需要进行严格的访问控制。
d)Token化接入安全:
① API需要进行可靠的服务鉴权,建议MTLS + Oauth2 票据,同时启用访问日志审计;
② Token 换明文逻辑只返回密文,由请求服务利用KMS本地进行解密,集中控制解密权限;
③ UI提供用户人工进行Token与明文,加解密的能力。要求必须经过IAM,并支持基于ABAC的细粒度、基于风控的访问控制。
2. 生态上下游服务、应用产生的次生安全
不论数据源,还是下游的明文数据消费方,因具有Token化接口访问授权, 技术上是可以远程调用接口,遍历出全量的Token和明文的映射关系。因此,安全措施需要延伸到这些系统和用户,保证不会因为这些错误行为或程序漏洞导致的数据泄漏。
a)构建数据应用安全基线,约束上下游数据使用行为;
b)严格禁止任何形式的非法明文,尤其是Token与明文的映射关系数据转发转存行为;
c)禁止设置代理,必须由数据服务主体直接对接Token化服务;
d)所有生态系统必须进行完整的安全评审,包括后续的变更。确保基线合规;
e)对上下游所有的服务,纳入监控体系,包括其存储、数据接口以及应用代码逻辑、血缘;
f)全局监控、扫描,确保所有不合规的处理及时发现、处理。
Token化服务从设计上并不复杂,一旦实施,将彻底改变组织数据使用习惯,从根本上解决数据使用效率与安全合规间的矛盾。
然而,其强大的防护效力是基于对数据使用逻辑的改造,打破旧有的明文数据使用习惯,落地过程面临在巨大的挑战,包括疏于维护应用代码,冗余的、混乱的历史数据、复杂混乱的访问逻辑,这些问题都会为系统改造带来障碍。需要所有涉及敏感数据的业务配合改造,这种规模项目,必须从流程规划、组织保障和技术支撑等多方面统筹,在美团推进公司的改造过程中也积累了大量经验可以进行参考。
后续,数据安全治理还将继续延伸。
在数据层面,Token化没有解决类似图片、视频等非结构化数据。可能需要直接通过加密。Token化没有解决跨企业信任边界的数据交换问题,这部分需要隐私计算、多方安全计算等新技术。Token化主要对象是存在DB、Hive中的结构化PII信息。对于隐藏的在JSON中的半结构化数据和日志、文件中的非结构化PII数据并没有处理,需要配合强大的数据发现和数据治理工具完成。
在整个数据安全体系中,PII只是沧海一粟,Token化实际上也仅仅解决企业内部数据使用场景,但却开了一个默认安全和设计安全的先河。由于PII信息是个人敏感信息的核心数据,功过Token化,上可以溯源到数据采集、下可以延伸到三方数据交换。此外,通过Token去关联,可以实现无损数据删除等能力。
数据安全是一个巨大的课题,尤其是在数字化变革的强大发展需求下,面对纷繁复杂的数据应用,网络安全需要更多的技术创新,我们希望通过Token化“抛砖引玉”,激发出更多数据安全的创新之路。
志刚,美团安全架构师,密码学、云原生和DevOPS安全,数据安全和隐私合规专家。