孙夏声,王远强
(中国电子科技集团公司第三十研究所,四川 成都 610041)
传统网络采用的是“边界”防护的安全模型,“内网”是假定无条件安全和可信的。这种安全模型存在问题:一方面,边界防护无法防护企业内网的非法访问行为;另一方面,一旦边界被突破,攻击者就可以畅通无阻地访问企业内网的所有资源。Google公司针对这种情况,部署实施了一种新的企业安全方法——BeyondCorp。本文借鉴其设计思路,基于可信密码模块(Trusted Cryptographic Module,TCM)的可信计算平台,通过使用多种安全认证和授权手段,提出了一套轻量化的、适用于企业内网的安全访问模型。
2014年12月,Google陆续发表了5篇BeyondCorp 论文,全面介绍了BeyondCorp的结构和实施情况[1]。BeyondCorp的核心思想是摒弃企业特权网络,即“零信任网络”概念:不信任任何网络,访问只依赖于设备和用户凭证,不再关心网络位置。用户可以从任何网络发起访问,除网络延迟以外,对企业资源的本地和远程访问体验基本一致。
BeyondCorp的关键组件包括:(1)安全识别设备,包括设备清单数据库、设备标识;(2)安全识别用户,包括用户和群组数据库、单点登录系统;(3)从网络中消除信任,包括部署无特权网络、有线和无线网络接入的802.1x认证;(4)外化应用和工作流,包括面向互联网的访问代理、公共的DNS记录;(5)实现基于清单的访问控制,包括对设备和用户的信任推断、访问控制引擎、访问控制引擎的消息管道。
BeyondCorp的组件和访问流如图1所示。
图1 BeyondCorp组件和访问流
BeyondCorp的核心在业务,关注的是数据,是网络流量的不可信。Google从2011年开始实施和部署BeyondCorp,投入了大量资源,是小公司和机构无法负担的。本文借鉴其安全设计思路,剥离主要用于互联网的访问代理、信任推断以及更高阶的自学习自适应,保留关键组件中的验证用户、验证设备和权限控制,将其引用到传统的内网安全访问中,形成一种轻量化的网络安全访问模型,即基于TCM的网络安全访问模型。
国际上通用的可信计算规范由可信计算组织(Trusted Computing Group,TCG)制定,核心是可信平台芯片(Trusted Platform Module,TPM)和可信软件栈(Trusted Software Stack,TSS)。TCM对应TPM,是我国具有自主知识产权的可信芯片。对应TSS的是TCM服 务 模 块(TCM Service Module,TSM)。 TCM和TPM的主要区别如表1所示[2],其中TCM存储主密钥(Storage Master Key,SMK)独创性地使用了对称密钥。
表1 TCM和TPM的区别
基于TCM和TSM,对本地进行软硬件可信度量后的计算环境称为TCM可信计算平台。可信度量的依据是信任链传递:每一步的度量值作为下一步度量输入的一部分,逐步计算出最后的度量结 果[3]。信任链传递的过程如图2所示。
图2 信任链传递
度量初始值记录在TCM可信存储区中,设备完成初始度量后的每次开启过程执行度量比对,比对不一致则认为设备不再可信。
可信网络接入(Trusted Network Connect,TNC) 是TCG在网络安全方面提出的可信接入控制技术,主要基于802.1x接入控制协议,实现基于端口的网络接入控制,架构如图3所示。
图3 TNC体系架构
TNC架构中,PDP负责对终端进行平台身份认证和完整性验证,PEP根据PDP的验证结果进行授权访问控制。基于TCM和TNC实现的可信交换机可以充当PEP和PDP的角色,满足终端接入可信网络的应用需求[4]。可信交换机应用方式如图4所示。
图4 可信交换机应用方式
2000年,ITU X.509(2000)颁布(RFC3281),其中完整定义了属性证书(Attribute Certificate,AC), 该标准也被称为X.509 V4。AC将持有者的名字和一系列“属性”绑定,这些属性用来表明证书持有人的用户群组身份、角色以及安全权限等。
基于AC的访问控制机制有基于角色的访问控制(Role-Based Access Control,RBAC)[5]和 基 于属性的权限控制(Attribute-Based Access Control,ABAC)[6]等。两者实现较为复杂,在内网环境中可采用基于属性证书实现的安全访问服务方案[7]。该方案的应用体系结构如图5所示。
图5 基于属性证书的应用体系结构
借鉴Google的BeyondCorp架构,基于TCM可惜计算平台,结合可信交换机、用户公钥证书(Public Key Certificate,PKC)验证和基于属性证书的访问控制技术,构建了一个轻量化的基于TCM的网络安全访问模型,模型架构如图6所示。
图6 基于TCM的网络安全访问模型架构
3.1.1 人员
人事部门根据人员、部门以及业务等信息,制定“用户/组数据库”,同时为每一个员工配发唯一的TCM模块。证书权威(Certificate Authority,CA)依据用户/组数据库信息,为每一个用户签发PKC,这是用户的唯一标识。PKC作为模块证书,存储在TCM中。所有的PKC同步在PKC目录服务器上,供对外查询使用。
3.1.2 设备
全部设备均由企业统一采购,预装TSM,并建立设备资产库。资产库建立设备和人员的绑定关系。CA为每一台设备签发设备证书,设备证书作为平台身份证书写入到与人员配对的TCM中。
TCM接插到设备上,第一次加电启动完成初始化度量,完成TCM和设备的强绑定。经过可信度量的设备被记录到可信设备白名单中。可信设备白名单可动态管理设备状态,如已报失的设备将被至为不可信/挂失,该设备将不再具有安全访问能力。
3.1.3 权限
企业根据人员、业务和安全考虑,制定用于资源访问的资源库。资源库统一管理企业内网中的应用服务资源。根据粒度不同,资源可以是服务器级别的、服务级别的,也可以是微服务架构中“微服务。
CA为属性权威(Attribute Authority,AA)授权。AA根据用户/组和资源信息,为每个用户签发属性证书。属性证书中详细定义用户访问每个资源的权限。
系统初始化完成后,当新的终端需要接入企业内网时,要进行一次完整的安全访问过程,包括设备认证、用户认证和访问控制请求。统一认证核心负责整个安全访问请求的调度和判决。统一认证过程(不包括TNC)交互如图7所示。
图7 安全访问过程
3.2.1 设备认证
终端设备接入可信交换机,即进行TNC接入认证过程。认证使用的是终端上TCM中的平台身份证书。TNC认证通过后,终端可向应用服务发起连接请求。应用服务接收到请求后,首先要求终端(TSM实现客户端代理功能)回复TCM模块的唯一标识(TCM Identity,TCMID),然后向统一认证发送安全访问请求。安全访问请求至少包含要求网络访问的终端TCMID和被访问的资源信息。
统一认证根据TCMID在可信设备白名单中查询该终端的相关信息,并以此判断终端设备是否合法。设备认证成功后,继续用户认证过程,否则返回判决失败。
3.2.2 用户认证
完成设备认证后,统一认证向请求网络访问的用户终端发送挑战请求,请求中包含挑战码。终端使用TCM平台加密私钥对挑战码等信息进行签名,然后作为挑战应答回复给统一认证。
统一认证收到挑战应答后,向PKC目录服务请求TCMID对应的PKC,使用该PKC验证挑战应答报文。如果查询PKC失败或者验证挑战应答失败,则向应用服务返回判决失败,否则继续进行下一步的访问控制过程。
3.2.3 访问控制
统一认证根据终端TCMID和资源信息,向AC目录服务查询对应的属性证书。统一认证根据获得的AC,验证用户是否具有所授资源的权限,最终将判决结果返回应用服务器。应用服务器根据判决结果确定是否响应用户发起的访问请求。
在安全访问过程的每一个协议包中,都设置时间戳(timestamp)和随机数(nonce)。随机数保证数据包不被重放,时间戳用来设置一个时间间隔如60 s,以缩小nonce的规模。60 s的取值来源于HTTP请求的常见延迟时间。
在保留原有X.509有效期的同时,为了降低CRL撤销列表带来的复杂性,通过PKC/AC目录服务,将过期的证书直接做删除索引处理。这样既可以减少证书验证的时间,也可以有效实现身份/权限撤销。
使用TCM平台加密证书对属性证书中的涉密属性进行加密,只有能够解密该属性的验证者,才能获知属性的内容,降低属性外泄造成损失的风险。
基于TCM的网络安全访问模型,是对Beyond Corp框架的思考和探索。模型中的组件已经具备成熟的技术和工程实现,如TCM计算平台和可信交换机;授权过程独立使用AC,可以不必改造现有证书系统,不影响原有PKC的签发和使用。轻量化的实现思路,易于系统的构建、移植和部署,在保证安全性的同时,提供了较强的可用性。