马俊明
(中电科鹏跃电子科技有限公司,山西 太原 030028)
随着云计算、大数据、物联网、5G、工业互联网等新兴技术的不断兴起,企业IT架构逐渐从“有边界”向“无边界”转变,传统的安全边界逐渐瓦解,与此同时,秉承“去边界化”安全理念的零信任逐渐进入人们的视野,成为解决新时代网络安全问题的新理念、新架构。2010年,Forrester分析师约翰·金德维格首次正式提出“零信任”概念[1],零信任安全理念基于身份认证和授权重新构建访问控制的信任基础,从而确保终端安全、链路安全和访问控制安全。
密码技术作为身份认证和加密通信的核心技术,在零信任安全体系建设中起着不可替代的作用。2019年10月26日,全国人大常委会表决通过《中华人民共和国密码法》,自2020年1月1日起正式施行,密码法的制定是密码工作历史上具有里程碑意义的大事,同时密码法的实施也必将推动基于商业密码技术在零信任解决方案的应用研究落地。
为了更好地了解基于标识密码(Identity-Based Cryptography,IBC)的零信任安全解决方案,首先介绍与之相关的概念及基础知识。
零信任(Zero Trust,ZT)是一个全新的安全机制和构想,代表了新一代的网络安全防护理念,“从不信任,始终校验”是零信任的核心思想。默认不信任企业网络内外的任何人、设备和系统,基于身份认证和授权重新构建访问控制的信任基础,从而确保身份可信、设备可信、应用可信和链路可信。基于零信任原则,可以保障网络系统的3个“安全”,分别是终端安全、链路安全和访问控制安全。在NIST SP 800-207《零信任架构》标准草案中描述了零信任访问模型,如图1所示[2]。
在抽象模型中,当用户或计算机需要访问企业资源时,其需要通过策略决策点(Policy Decision Point,PDP)和相应的策略执行点(Policy Enforcement Point,PEP)授予访问权限。零信任访问系统必须确保用户可信且请求合法。PDP/PEP会做出合适的判断以允许主体访问资源。
目前实现零信任理念的3大关键技术,可以归纳为“SIM”组合,分别为软件定义边界(Software Defined Perimeter,SDP)、身份识别与访问管理(Identity and Access Management,IAM)和微隔离(Micro-Segmentation,MSG)[3]。不同的企业需要根据自身需求以及不同方法的优缺点来选择适合自己的网络安全规划。
1984年,Shamir提出了标识密码的概念[4],在标识密码系统中,用户的私钥由密钥生成中心(Key Generation Centre,KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,由标识管理者保证标识的真实性。与基于证书的公钥密码系统(Public Key Infrastructure,PKI)相比,标识密码系统中的密钥管理环节可以适当简化,避开复杂的数字证书管理环节,使系统更易于部署和使用[5]。
SM9算法是我国独立设计的一种基于标识密码体系的商密算法。2016年3月,由国家密码管理局发布系列行业标准GM/T 0044—2016《SM9标识密码算法》,2020年4月,由国家标准化管理委员会正式发布国家标准GB/T 38635.2—2020《信息安全技术 SM9标识密码算法 第2部分:算法》[6]。SM9算法主要包括密钥和算法两个部分。密钥部分包括主密钥对(公钥和私钥)和用户私钥;算法部分包括签名验签算法、密钥封装解封算法、加密解密算法和密钥交换算法。
在商用密码体系中,SM9主要用于用户的身份认证,据公开报道,SM9的加密强度等同于3072位密钥的RSA加密算法[7]。
零信任安全的核心思想是构建系统中访问主体、客体及相关资源设备之间的可信关系,并通过持续鉴权来确保系统安全。基于IBC的零信任网络安全防护架构(以下简称防护架构)如图2所示。
设计方案中的防护架构参照NIST零信任访问模型的基本结构,依据实际应用场景(主要适用于关键信息基础设施安全防护和工业信息控制系统安全防护)做了适应性的调整。在调整过程中,主要特点就是使用以标识密码为核心的安全认证服务系统。防护架构由以下几个模块组成:访问主体、标识密钥基础设施、策略管理系统、零信任访问控制网关、微隔离逻辑端口控制器、访问客体(资源池、应用服务等)。
基于IBC的零信任网络安全防护系统设计要遵循零信任安全7条基本原则[2],以搭建面向实际应用的安全防护为目标。参照系统防护构架,安全防护系统至少包含4大核心组件:一是密钥基础设施;二是动态访问控制网关;三是策略管理系统;四是微隔离控制系统。除此之外,在具体设计环节中,还应该增加系统实施中必须包含的标识管理系统和资源池配置管理系统。系统各组件的详细功能设计如下文所述。
网络资产安全是确保网络安全的基本要求之一,其包含访问主体、客体和相关设备及服务。理清系统中的网络资产并对其进行逐一标识是基于标识密码算法实施身份认证和加密传输的基本条件。标识管理系统分为标识定义和标识管理两部分。
(1)统一标识定义和编码规则:清点系统内资产,逐一登记注册并分配唯一身份标识码(ID),ID编码可选规则如下:编码为16位字符型,大类编码如设备、用户等网络资源大类(占4位,可以是字符与数字组合),部门编码(占4位,可以是字符与数字组合),每类中资产序列号(占8位,可以是从00000001~99999999的数字)。样例1:办公室办公主机1的ID为BGZJ000100000001;样例2:技术部员工张三用户ID为YH01000300000012。
(2)标识管理服务:在系统中设置一台标识生成管理服务器,主要提供标识的登记注册、查询、注销等服务,其中,因IBC密钥系统具有特殊性,注销的ID号不能重新注册。
密钥基础设施是系统进行身份认证和加密通信的核心组件,主要负责系统主密钥生成管理、主公钥及参数发布、用户密钥生成下发等。在IBC密钥管理系统设计中使用的密码算法和相关参数都须符合国密算法SM9标准中的相关要求。IBC密钥基础设施功能结构如图3所示。
IBC密钥基础设施主要包括标识生成管理服务器、登录注册机和密钥管理服务器3个模块,此外,由于IBC密码系统基于身份的特点,用户之间无须交换私钥和公钥,所以在IBC密钥基础设施中没有公共的证书服务器。密钥基础设施主要功能和工作原理如下文所述。
(1)标识生成管理服务器:系统依据编码规则为用户生成标识并进行相关管理服务,同时可以对注册成功的用户提供标识密钥私钥申请的服务。
(2)登录注册机:主要负责系统用户的登录注册,提供用户认证签名,用户注册后通过标识生成管理服务器和密钥管理服务器申请生成用户私钥并安全下发用户私钥。
(3)密钥管理服务器:主要负责密钥系统初始化,对主密钥生成、安全存储、备份、恢复及更新等进行管理,同时提供公用参数查询下载、用户密钥生成和安全下发等服务。
(4)密钥生成原理及主要步骤:密钥生成主要使用的是SM9算法。SM9密码算法的理论基础和数学工具是有限域群上椭圆曲线的点群运算的性质及双线性对运算特性,SM9算法使用的是256位的BN曲线,椭圆曲线方程为y2=x3+b,曲线参数t=60000000 0058F98A,迹tr(t)=6t2+1,基域特征q(t)=36t4+36t4+24t2+6t+1,方程参数b=5,群的阶N(t)=36t4+36t3+18t2+6t+1,循环子群G1和G2的阶N(N为大于 2191的素数),余因子cf=1,嵌入次数k=12,扭曲线的参数β,群G1的生成元P1=(xP1,yP1),群G2的生成元P2=(xP2,yP2),双线性对的识别符eid=0x04[8],其他参数详见SM9算法标准[4],其密钥生成原理及步骤如下文所述。
第一步,签名主密钥和加密主密钥的生成:签名主私钥ks由随机数发生器产生,ks∈[1,N-1],计算签名主公钥Ppub-s=ks×P2;加密主密钥ke由随机数发生器产生,ke∈[1,N-1],计算加密主公钥Ppub-e=ke×P1。
第二步,以用户A(公钥为IDA)为例计算A的签名私钥dsA:密钥管理中心首先选择并公开用一个字节表示的私钥生成函数识别符hid,然后在有限域FN上计算t1=H1(IDA||hid,N)+ks,其中H1( )为辅助密码函数,若t1=0,则需重新产生签名主私钥,计算和公开加密主公钥,并更新已有用户的签名私钥;否则计算t2=ks×t1-1,然后计算dsA=t2×P1。
第三步,以用户A(公钥为IDA)为例计算A的加密私钥deA:密钥管理中心首先在有限域FN上计算t1=H1(IDA||hid,N)+ke,若t1=0,则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算t2=ke×t1-1,然后计算deA=t2×P2。
零信任访问控制网关是零信任系统的核心组成,是访问策略的执行部件,区别于普通安全网关,防护架构模型中的零信任访问控制网关包含统一身份认证入口功能组件,零信任访问控制网关主要功能包括身份认证、访问授权(策略执行)、访问控制和安全审计等。
(1)基于标识密码的身份认证:以访问主体A(标识为IDA)访问零信任网关为例,在IBC体系中标识即公钥,所以主体A的公钥为IDA,设主体A的签名私钥为dsA,存在IDA=dsA×G,其中G(x,y)为IBC体系所选曲线的基点,阶为n。
网关对访问主体A的身份认证过程如下文所述。
主体A私钥签名:选择随机数r∈[1,n-1],计算点rG;根据随机数r、消息M的哈希值h、私钥dsA,计算;将消息M和签名{rG,s}发给网关。
公钥验证签名:网关收到消息M和签名{rG,s};根据消息求哈希值h;使用发送方公钥IDA计算,计算结果与rG进行比较,如相等即验签成功,(签名原理如下:访问主体A的身份得到控制网关确认。
反之,访问主体A也可对网关进行身份验证。另外,在实际使用中可以通过添加账户口令、生物特征或其他方式实现多元身份认证。
(2)访问授权/策略执行:访问主体A身份认证验证通过后,零信任网关根据当前IDA的ID值从策略管理系统中获得相应访问授权策略。
(3)访问控制:访问控制网关对照访问授权策略,分配给当前访问主体A连接控制器逻辑端口,通过端口控制实现主体对资源的精准授权访问控制。
(4)安全审计:零信任网关对身份认证、访问控制授权等安全操作的每一步骤都做了详细的日志记录并以安全的方式保存到日志数据库中,安全日志为网络安全审计提供了必要的数据信息支撑。
策略管理系统的主要任务是建立信任评估体系,实施信任评估并与策略执行系统进行交互,共同完成持续鉴权。策略管理系统以访问主体通过系统身份认证为前提条件,以用户角色、环境信息、设备清单、威胁情报等辅助安全信息采集系统为信任和风险评估组件,在搭建信任体系模型的同时利用信任评估算法对当前访问主体安全凭证进行信任评估,并根据评估结果变更安全策略、调整访问授权。由于各信任评估组件的信任评估基础数据来源于系统实时采集且数据随时间动态变化,因而实现了策略管理的自动化。策略管理系统功能结构如图4所示。
策略管理系统功能主要有安全策略制定及管理、安全凭证获取、信任评估、策略下发等。
(1)安全策略制定:安全策略主要包含物理安全策略、访问控制策略、信息加密策略和网络安全管理策略等。基于零信任动态策略的理念,安全策略的制定应以访问客体的安全等级为基准,参照网络安全等级保护2.0标准中相关要求,制定符合系统的安全策略,并安全保存于数据库中。同时建立策略映射表并添加初始数据。先整理现有系统中所有资源,并梳理主体对资源的访问情况,然后创建和配置访问角色,同时在映射表中添加记录,每个记录至少包含ID值及授权角色,ID与授权角色之间存在映射关系(一对一或一对多,即一个ID可以拥有1个或者多个角色),实现ID与授权角色的映射管理。
(2)安全凭证获取:策略管理系统通过零信任网关获取当前会话的安全凭证,每个安全凭证在数据库中对应一个授权角色记录。
(3)信任评估:搭建信任模型实施信任评估是策略管理的关键环节。系统需要建立访问主体、访问环境、访问设备、访问行为等方面的多维度、全场景信任链,通过对身份、活动等数据的持续监测和信任评估,实现动态策略管理及授权,确保业务访问的动态安全[9]。Blaze等人[10]在1996年首次提出信任管理(Trust Management,TM)的概念。信任管理要解决的问题是通过相关模型和验证算法计算安全凭证集C是否能证明请求r满足本地策略集P。为解决该问题,Blaze等人提出了一个基于信任管理引擎的信任管理模型及验证算法,依据输入的r、C、P和输出结果判断是否满足信任。
基于验证算法,结合方案中部署的辅助安全信息采集系统(实施中可根据应用场景增加或减少附加安全信息采集系统,验证算法所选取的参数和算法也有待进一步的研究优化),信任值设为T(T介于0到1之间),参照模型算法信任值T的估值为所有附加安全信息项信任值的加权平均值,设fi为各项权重,得出
计算完毕后,策略管理系统依据信任值判断安全凭据是否符合当前安全策略,不符合时应及时调整安全策略。
(4)策略下发:信任评估结束后,策略管理系统依据评估结果,调整当前会话的安全策略(即调整数据库中ID与授权角色的映射表),策略管理器同时给零信任控制网关下发策略变更指令,最终完成资源访问安全策略的动态调整。
为方便实现集中化、自动化访问控制管理,微隔离逻辑控制器设计采用虚拟化技术,将系统物理资源(如CPU、内存、磁盘空间等)转变成可以动态管理的“资源池”[11],根据访问需求划分逻辑端口,并对每个细分服务提供服务对接接口,在实施方案中也可以设计资源服务访问代理,访问代理安装部署在零信任访问控制网关的资源侧。数据访问控制流程为访问主体先通过零信任网关进行身份认证,然后从策略管理系统获取对访问客体的访问授权,经由网关转发访问数据到与之匹配的服务端口实现数据的安全访问对接。
(1)端口虚拟化:使用虚拟化技术将微隔离逻辑端口控制器物理端口虚拟为多个逻辑端口(即图2中的口1、口2……口n),端口数量对应于访问客体中的细分资源数量。
(2)东西向访问控制:微隔离控制器各外联逻辑端口间设置为相互隔离不能互相访问,控制器外联端口与系统资源端口存在一一对应连接关系(如图2右侧所示)。
(3)南北向访问控制:微隔离控制器依据访问主体对资源的单次访问需求和当前访问策略分配所需端口,当单次会话完毕后关闭分配的端口,实现动态配置端口访问控制功能。
零信任是以数据安全为中心的,因此对资源池的细化和管理也是防护方案设计的关键环节,资源池配置管理系统包含资源池配置管理和资源池数据安全访问两部分。
(1)资源池配置管理:本设计方案中资源池是指访问客体,主要包括系统能提供的服务、数据和应用等。依据访问配置,在相应服务端配置相应服务IP及端口号,每个资源对应一个服务,资源配置的精细化处理有利于实现最小权限管理,基于策略的网络控制减少了服务暴露面,有效隔离了东西向流量,同时增强系统细粒度访问控制能力。
(2)资源池数据安全访问:在访问客体与访问主体间建立连接后可以通过协商密钥的方式实现数据的加密传输,密钥协商可采用SM9算法,数据传输加密可采用SM4算法,密码技术的使用确保了资源池数据访问的安全。
安全方案的落地必须选择适合的场景,在特定安全等级下,适度的信任和自动化是降低成本、提升效率的良好途径[12]。基于IBC的零信任安全解决方案是以身份认证为中心构建访问认证体系,通过策略管理系统的自动化进行持续信任评估,实现了系统对访问主体的动态访问控制,并为其设定了访问所需的最小权限,从而提升了系统的整体安全性。此外,安全方案的实施在增加IBC密钥基础设施的同时还需对系统资源进行标识服务,在解决安全问题时,也牵涉了更多的人力和物力资源,但基于IBC的零信任安全方案相比传统基于PKI技术的零信任安全方案,还是有着系统结构相对简单和投入成本低的优势。
总之,在国家加速推进网络强国战略的大背景下,随着国产商用密码的广泛应用,基于国产商用密码的零信任解决方案必然迎来新的发展契机。