在2018 ISC互联网安全大会的身份安全分论坛上,《零信任网络》作者Evan Gilman以“工作负载的身份:零信任数据中心网络的基石”为题发表了演讲。
Evan从零信任的理论基础出发,提出数据中心零信任网络的信任重构依赖于全新身份标识的构建,依赖于全面的身份化。Evan重点以SPIFFE(Secure Product Identity Framework For Everyone,通用安全身份框架)和开源项目SPIRE为例,分享了这种全新的、具备高度兼容性的工作负载身份标识原理及其实现。
事实上,无论是零信任安全在数据中心的实践,还是通用的零信任安全架构实践,全面身份化都是至关重要的,是“企业边界正在瓦解,基于边界的安全防护体系正在失效”这一大背景下,构筑全新的零信任身份安全架构的基石。
本文将对“全面身份化”的必要性和范畴进行分析,并基于Evan的演讲内容,整理、分享全面身份化在零信任数据中心网络的实践。
零信任安全的本质是以身份为中心进行动态访问控制 要理解零信任安全架构下“全面身份化”的必要性,首先需要理解零信任安全是什么?其本质是以身份为中心的动态访问控制。 传统的基于边界的网络安全架构某种程度上假设、或默认了内网是安全的,认为安全就是构筑企业的数字护城河,通过防火墙、WAF、IPS等边界安全产品/方案对企业网络出口进行重重防护而忽略企业内网的安全。 在“企业边界正在瓦解,基于边界的安全防护体系正在失效”这一大背景下,零信任安全针对传统边界安全架构思想进行了重新评估和审视,并对安全架构思路给出了新的建议,其核心思想是:默认情况下不应该信任网络内部和外部的任何人/设备/系统,需要基于认证和授权重构访问控制的信任基础。零信任对访问控制进行了范式上的颠覆,引导安全体系架构从网络中心化走向身份中心化,其本质诉求是以身份为中心进行访问控制。 从技术方案层面来看,零信任安全是借助现代身份管理平台实现对人/设备/系统的全面、动态、智能的访问控制,其核心实践包括: 以身份为中心 通过身份治理平台实现设备、用户、应用等实体的全面身份化,采用设备认证和用户认证两大关键技术手段,从0开始构筑基于身份的信任体系,建立企业全新的身份边界。 业务安全访问 所有的业务都隐藏在零信任可信接入网关之后,只有认证通过的设备和用户,并且具备足够的权限才能访问业务。 动态访问控制 访问控制需要符合最小权限原则进行细粒度授权,基于尽量多的属性进行信任和风险度量,实现动态自适应访问控制。 不难看出,以身份为中心实现设备、用户、应用、系统的全面身份化是零信任安全的根基,缺少了这个根基,动态访问控制将成为无源之水无本之木。 “全面身份化”是零信任安全动态访问控制的基石 传统语境下,身份更多的是“人”的专属术语,是物理世界的人在数字世界的对等物,甚至多数情况下大家将身份等同于应用系统的账号。这不难理解,毕竟在传统的信息系统和网络世界中,人、机是主要的参与实体,机器大多可以通过机器名、网络地址等进行标识,而为了实现记账和访问控制等功能,人也需要一个标识,那就自然而然的为每一个人在系统中创建一个账号,并将这个账号等同于数字身份。 随着如今IT技术的飞速发展,这个狭义的身份范畴已经跟不上时代了,至少包括如下两个方面: 1. 身份的实体范畴不仅仅是人 在万物互联的时代,物已经成为了重要的参与实体,其基数已经远远超出了人。因此,仅仅为人创建身份是远远不够的,正如Gartner所建议的,需要建立全面的“实体”身份空间,这些“实体”包括:人、服务、设备等等。通过全面的身份化,实现对网络参与的各个实体在统一的框架下进行全生命周期管理。 2. 身份不等同于账号 虽然在一个单一的业务系统内,身份和账号存在某种一对一的关系,但是,身份并不等同于账号。一个身份在不同的业务系统内存在不同的账号,身份是唯一的,账号不是唯一的。随着云计算、移动计算的发展,应用越来越碎片化,一个实体的人/数字化的身份对应的账号越来越多,理解身份和账号的差异至关重要。 简单下个定义:身份是物理世界的人/物/系统等实体在数字世界的唯一标识,是物理世界的实体在数字世界的对等物。 事实上,在现代身份治理框架下,核心逻辑之一就是关注身份、账号、权限三个平面及其映射关系:为物理世界的人/物创建数字身份并关联对应的身份生命周期管理流程、梳理关联各业务系统账号和身份的属主关系、控制各个账号的权限分派实现基础授权。如下图所示: 另外,为了实现闭环的全面身份化治理,需要部署智能身份分析系统,对当前系统的权限、策略、角色进行智能分析,发现潜在的策略违规并触发工作流引擎进行自动、或人工干预的策略调整,实现治理闭环。 如上,在零信任安全语境下,身份是为访问控制服务的。因此,需要对参与访问控制的各主体、客体进行全面的身份化,包括:用户、设备、应用和接口等都需要具备唯一的数字身份。 Evan Gilman最新的研究方向就是工作负载的身份化,其目的就是为了基于零信任理念,解决工作负载之间的访问控制问题,建立零信任数据中心网络,是全面身份化在数据中心网络场景的创新实践。 零信任数据中心网络的工作负载身份化实践 接下来整理分享Evan关于零信任数据中心网络的工作负载身份化研究的最新成果。 Evan指出解决零信任网络信任问题最重要的机制就是认证,而认证的基础是通信双方的身份标识。随着数据中心的建立,进程与进程之间通信同样需要认证,而现今使用广泛的标识(IP地址),并不适用于进程与进程之间的通信,如:Kubernets为每个进程指派一个IP地址,但是多个软件服务可能共享同一个IP地址。同时,基于IP地址的标识机制还存在访问控制列表的规模过大、潜在的IP地址伪造等问题。 要实现进程与进程之前的安全通信,需要更细粒度的标识,需要构建工作负载特有的身份标识体系。目前,不同的软件平台对与工作负载标识的方法不同,相互之间不能兼容,且没有一个具有互操作性、能完美的与客户系统兼容的标识。如果能提供一个统一的工作负载标识框架是极具意义的,SPIFFE通用安全身份框架正是这样的框架,也是目前Evan的研究重点,除此之外,Evan还致力于基于SPIFFE的参考实现SPIRE开源项目的研发和推动。 SPIFFE(Secure Product Identity Framework For Everyone,通用安全身份框架)提供了统一的工作负载身份解决方案。SPIFFE主要包括三部分内容:SPIFFE ID规范、SVID身份标识文档标准、API规范及约束,下面简单介绍: 统一工作负载身份标识SPIFFE ID SPIFFE ID是一串形如URI的字符串,主要由两部分组成:信任域和工作负载路径。信任域和系统的信任根有关,是运行SPIFFE框架的组织、机构环境,也可以理解为工作负载身份的颁发者。工作负载路径可以标识工作负载提供的软件服务、标识服务拥有者,但更多情况下,它只是一个模糊的字符串,不会包含任何上层结构信息,但是可以通过该字符串查询有关工作负载的元数据,如地理位置、逻辑系统分区和服务等。 SVID(SPIFFE Validation Identity Document, SPIFFE身份标识文档) SPIFFE SVID是对SPIFFE ID编码后的一种可加密认证文件,是工作负载向远端系统证明自己身份的文件,主要由三部分组成:SPIFFE ID、公钥和有效签名。许多文件格式都可以满足SVID的要求,但考虑到易用性和广泛性,SPIFFE SVID目前仅采用了X.509加密认证文件格式。 工作负载身份化API 定义了与工作负载通信的标准(本地)接口,为工作负载颁发及获取SVID明确了接口规范和参考流程。SVID和工作负载API的标准化统一了工作负载身份的交互接口,将工作负载与具体运行平台解耦,为系统结构的异构化化发展起到了推动作用。 最后,简单的介绍一下开源项目SPIRE(SPIFFE 运行环境),主要由两部分组成,SPIRE服务器和SPIRE代理。SPIRE服务器主要提供三种服务:身份映射、节点认证和SVID的颁发。SPIRE代理的主要职责是提供工作负载认证和工作负载API接口。 在实际环境中,SPIRE的启动和加载过程也很简单,通过启动SPIRE服务器、启动SPIRE代理、工作负载获取SVID简单的三个步骤,即可建立从SPIRE服务器到SPIRE代理的工作负载信任链,工作负载获得能够适配各种平台的SVID,进而实现工作负载间的认证。 SPIFFE及其参考实现SPIRE是全面身份化在数据中心网络的全新实践,其出发点是构建一套标准、开放、统一的零信任数据中心网络的身份标识体系,虽然要达成这一目标颇具挑战,但是业界在构建零信任安全架构的过程中,仍然可以从这项研究成果中得到启发,在各种场景切合实际,实现能落地的全面身份化方案。 结语 零信任安全的本质是以身份为中心进行动态访问控制,全面身份化是实现零信任安全架构的前提和基石,基于全面身份化,为零信任网络的人、设备、应用、系统等物理实体建立统一的数字身份标识和治理流程,并进一步的构筑动态访问控制体系,将安全边界延伸至身份实体,实现安全架构的关口前移。 文章来源:360身份安全实验室(360 ESG Identity Security Lab)