云制造系统用户认证和服务间协同高效可信安全技术
2022-11-19赵龙波李伯虎施国强
赵龙波, 李伯虎, 施国强
(1. 北京航空航天大学自动化科学与电气工程学院, 北京 100191;2. 中国航天科工集团有限公司, 北京 100048; 3. 北京仿真中心, 北京 100854;4. 北京电子工程总体研究所复杂产品智能制造系统技术国家重点实验室, 北京 100854)
0 引 言
云制造系统[1-5]是一种面向服务的数字化、网络化、智能化制造系统,集成了云计算、物联网、高性能计算、虚拟化和智能科学技术等先进信息通信技术与制造科学技术,利用虚拟化、资源池化等技术手段将制造产品、制造资源和制造能力转化为云制造服务,通过对云制造服务进行集中管理和经营,按需为用户提供各种智能制造服务。一般的制造系统是指为达到预定制造目的而构建的物理组织系统,是由制造过程、硬件、软件和相关人员组成的具有特定功能的一个有机整体。云制造系统以一般制造系统为基础,扩充了对云计算、物联网和虚拟化等新兴技术的使用,能更好为用户提供服务。安全技术是云制造系统的一类关键技术。近期,李伯虎团队基于新一代人工智能技术引领,提出了云制造系统3.0以及该系统的6层体系架构,指出安全管理贯穿于体系架构的各个层次,并将系统安全技术纳入云制造系统3.0技术体系[2]。
在云制造系统的用户认证与服务跨域协同安全技术研究方面,当前研究重点主要集中在云制造后端安全[6],尚未将前端用户与后端云制造之间的交互安全纳入研究范畴。研究人员对云服务的研究集中在计划调度和组合优化方法[7-14],并且在云制造系统中生硬地迁移使用云计算、物联网领域的安全技术[15-22]。现有研究没有考虑云制造系统中各类制造形态(车间、产线、机床等)和设备区域分布的特殊性,因此难以适应云制造系统的特性需求。以上研究工作均未考虑云制造系统异构、分布式的结构特点,尚未针对云制造网络基础设施的特殊性给出统一有效的安全建模和管控方法,未解决用户跨域访问和云服务跨域协同的高效可信安全认证难题,导致用户身份反复认证,云服务跨域协同被阻断,严重制约云制造系统高效协同,影响运行效率。
针对现有的研究现状,本文深入分析云制造系统特点,结合企业对于云制造系统的使用现状,研究适用于云制造应用场景的用户认证和服务跨域协同安全技术,对云制造实体进行统一语义描述,并建立云制造系统域间统一互信过程模型,实现用户认证安全优化和云服务跨域协同优化。
1 云制造系统传统用户认证及服务跨域协同模式的问题
在云制造系统中,根据系统分布式和异构性的特点,将处于相同组织、单位、地域的制造资源和制造能力划分为域,属于同一域内的云服务之间互相信任。基于云制造“分散资源集中使用,集中资源分散服务”[23-26]的理念,云制造系统中用户跨域访问和云服务跨域协同的情况非常普遍。
1.1 云制造系统传统用户认证模式的问题
云制造系统呈现松散的分布式特点,不同域之间的信任关系彼此孤立。当用户需要跨域访问云服务时,需要与每个域分别执行身份认证过程,才能建立起用户与各云服务所在域之间的信任关系,多次认证导致用户跨域访问云服务效率低下。如果能够建立不同域之间的信任传递关系,利用已完成身份认证的域作为中间人实现用户可信身份的跨域安全传递,就能够简化云制造系统身份认证过程,实现用户跨域访问不再需要重复执行身份认证的效果,提升用户跨域访问效率。并且相比较于一般的云服务用户认证模式,云制造系统用户认证模式增加了对系统各类制造形态(车间、产线、机床等)以及设备区域分布的特殊性的考虑。
1.2 云制造系统传统服务跨域协同模式的问题
当云服务跨域协同时,由于云制造系统中的域之间互相不信任,因此被请求域通常出于安全考虑拒接云服务跨域协同请求。而且由于陌生域之间没有建立或协商一个安全的身份验证机制,导致跨域协同过程阻力很大,跨域打通问题长期得不到解决,严重影响云制造系统服务质量。将云制造系统传统用户认证和云服务跨域协同被拒绝的情况表述如图1所示。如果能够依靠云制造系统中的可信第三方建立不同域之间的互信关系,就能够实现云服务跨域协同的安全认证和放行,避免云服务跨域协同时因访问权限限制导致协同请求受阻的情况。本文针对以上问题,打破云制造安全域之间的孤立关系,对云制造系统各类实体给出统一属性定义,并对云制造安全域进行统一互信建模,实现用户跨域认证过程优化,同时打通云服务跨域协同通道,在保证安全性的同时提升云制造系统用户认证和服务跨域协同的效率。
图1 云制造系统传统用户认证和服务跨域协同过程问题
2 面向云制造系统的属性语义描述方法
根据云制造系统的通用特征,对云制造域、云制造用户和云制造服务的属性进行形式化语义描述,将云制造域Domain属性定义为七元组,将云制造用户User属性定义为四元组,将云制造服务Service属性定义为四元组。
定义 1云制造域属性
Domain=〈ID,Name,Org,Cert,PubKey,PriKey,SecretKey〉
ID:云制造域的编号,通过云制造平台注册并发放,在云制造平台管辖的范围内具有全局唯一性。
Name:云制造域的实际名称,在云制造系统中可以重名。
Org:域所在的单位、机构、厂所等信息。
Cert:数字证书,由云制造平台签发,用于在域间互信认证时证明云制造域的合法身份。
PubKey:域公钥,作为数字证书的一部分,通过云制造平台将其与数字证书绑定在一起。
PriKey:域私钥,与数字证书中的公钥组成公/私钥对,用于在远程通信时协商加密会话通道。
SecretKey:用于对用户Token进行签名的加密密钥,不同域的该密钥不同。
定义 2云制造用户属性
User=〈ID,Name,Password,Token〉
ID:云制造用户的编号,通过云制造平台注册并发放,在云制造平台管辖的范围内具有全局唯一性。
Name:云制造用户的实际名称,在云制造系统中可以重名。
Password:当进行用户认证时,需要提供的用户口令。
Token:用户身份凭证,当用户申请访问云服务时,由云服务所在域的信任代理进行签发。
定义 3云制造服务属性
Service=〈ID,Name,Domain,Type〉
ID:云制造服务的编号,通过云制造平台注册并发放,在云制造平台管辖的范围内具有全局唯一性。
Name:云制造服务的实际名称,在云制造系统中可以重名。
Domain:云服务所在域,即云服务的单位、机构、组织等。
Type:服务类型,包括设计服务、生产服务、试验服务、仿真服务、计算服务、管理服务、集成服务等。
3 云制造系统域间互信模型
3.1 域间互信建模过程
根据信任定义,信任关系分为直接信任和间接(推荐)信任[27]。直接信任是指两个实体之间根据直接交互经验建立的一种信任关系。如果两个实体之间没有直接信任关系,则需要通过其他实体的推荐(即中间人)建立信任关系,即间接(推荐)信任。在云制造环境中,云制造平台[28]是云制造系统中各个域均信任的可信第三方,因此本文利用云制造平台作为权威机构为不同的域提供担保,提供域间互信证明,从而建立不同域之间的互信关系。在本文提出的信任模型中,信任链由担保节点和推荐节点组成,如图2所示。其中域1~域N之间通过云制造平台作为担保节点,用于担保域1~域N信任链的有效性。
图2 云制造系统域间信任链建立过程
在实际的域间互信关系建立过程中,通过域信任代理具体执行不同域之间的互信过程。本文借鉴公钥基础设施(public key infrastructure,PKI)[29]体系,由云制造平台履行证书签发机构(certification authority,CA)职能,分别为各个云制造域签发全局的数字证书Domain_Cert,经过云制造平台签发数字证书的域被认为是安全可信的。云制造平台签发数字证书之前,每个域会生成一对公钥Domain_PubKey和私钥Domain_PriKey,私钥Domain_PriKey由域自身留存,将公钥Domain_PubKey发送给云制造平台。云制造平台为域签发数字证书时,会将域的基本信息和域公钥Domain_PubKey绑定在一起进行签发。当两个不同域互相验证对方身份时,会通过验签数字证书的方式核实对方身份的真实性,同时利用数字证书中的公钥Domain_PubKey与对方以安全的方式进行加密通信。
域间互信过程算法如下。
(1) 各域生成公私钥对:{[Domain_PubKey1,Domain_PriKey1],[Domain_PubKey2,Domain_PriKey2]…[Domain_PubKeyn,Domain_PriKeyn]}。
(2) 各域将公钥Domain_PubKey发送给云制造平台。
(3) 云制造平台生成一对平台公钥和平台私钥,并将平台公钥发送给各域。
(5) 各域通过验签数字证书进行身份验证,并使用Domain_PubKey进行加密通信。
3.2 域间互信实现方法
云制造系统下,构建域间互信关系的实现方法如图3所示。
图3 域间互信实现方法
通过A和B两个域的互信过程抽象出域间互信算法,其模型过程如下。
(1) 域A信任注册请求:域A产生一对公钥和私钥(DomainA_PubKey和DomainA_PriKey),私钥DomainA_PriKey由域A自行留存,公钥DomainA_PubKey由域A发送给云制造平台。
(2) 签发域A数字证书:云制造平台使用其平台私钥为域A签发数字证书DomainA_Cert(数字证书DomainA_Cert中包含域A的公钥信息DomainA_PubKey),并将数字证书DomainA_Cert发送给域A,完成域A信任注册。
(3) 域B信任注册请求:域B产生一对公钥和私钥(DomainB_PubKey和DomainB_PriKey),私钥DomainB_PriKey由域B自行留存,公钥DomainB_PubKey由域B发送给云制造平台。
(4) 签发域B数字证书:云制造平台使用其平台私钥为域B签发数字证书DomainB_Cert(数字证书DomainB_Cert中包含域B的公钥信息DomainB_PubKey),并将数字证书DomainB_Cert发送给域B,完成域B信任注册。
(5) 域A验证域B身份合法性:域A向域B发送互信验证请求,索取域B的数字证书DomainB_Cert,使用云制造平台公钥验签域B的数字证书DomainB_Cert,确认域B的真实合法性。
虽说是印刷科班出身,但在报业浸润多年,加之多个管理岗位的历练,郭献军已习惯于从多维角度切入去分析问题。采访中,他建议我们跳出固有的思维模式,让视野更广阔一些,而不是就印刷谈印刷。所谓眼光放远格局更大,我想,关于报纸与报纸印刷的未来,正是如此!
(6) 域B验证域A身份合法性:域B向域A索取数字证书DomainA_Cert,使用云制造平台公钥验签域A的数字证书DomainA_Cert,确认域A的真实合法性。
(7) 域A和域B成功建立域间互信关系。
4 云制造系统用户认证优化
为实现云制造系统用户身份认证的安全优化,本文基于云制造系统域间互信模型,首先完成用户身份认证并建立用户与域1之间的直接信任关系,之后通过云制造平台作为担保节点在域1~域N之间建立信任链,形成安全通道,通过“数字信封”和“数字签名”技术完成用户合法身份信息在域1~域N之间的跨域安全传递,最终实现用户身份认证过程安全优化,如图4所示。
图4 用户认证安全优化过程
为实现用户身份跨域传递,需要找到一种可靠的凭证信物,作为跨域进行身份信息传递的媒介。对于用户身份凭证的选取,本文通过分析传统云制造系统单点登录过程发现,Token是用户身份认证成功的标志,当用户完成云制造服务所在域的统一身份认证时,域信任代理会发送Token给用户,因此本文使用Token作为用户身份跨域传递的媒介凭证。
目前,大部分域信任代理使用JWT机制[30](JSON web Token,一种在网络应用环境间传递声明的基于JSON的RFC7519开放标准)对Token进行签名,实现对Token的完整性保护,防止攻击者恶意篡改Token。JWT是一种特殊的Token,在JWT认证机制中,当用户完成身份认证后,信任代理会将合法用户身份信息通过密钥进行签名(一般使用HS256算法),生成一个Token发送给用户。在JWT机制中,由于不同的域信任代理使用不同的加密密钥Domain_SecretKey对Token凭证进行签名,因此每个域生成的Token不同,当用户完成N个域的身份认证时,用户端将会存储N个Token(User_Token 1~User_Token N)。
在云制造用户跨域访问过程中,如果想要实现身份凭证跨域传递,则需要借助已经完成身份认证的域Token凭证,间接计算出需要访问的云服务所在域的Token凭证,从而实现用户身份凭证跨域传递。当域A对用户完成身份认证过程后,域A的信任代理会生成User_Token A发送给用户,作为用户身份被域A认可的凭证。当用户希望借助域A作为中间人同样取得域B的认可时,首先通过云制造系统域间互信模型建立域A与域B之间的互信关系,之后由域A从User_Token A中解构出用户信息,将用户信息以安全的方式发送给域B的信任代理,帮助域B重新计算生成User_Token B并将该身份凭证发送给用户,作为用户身份被域B认可的凭证。在该过程中,域B没有重复对用户进行身份认证,而是借助域A完成对用户身份的认可,因此实现了身份认证过程的简化,达到用户跨域访问云服务时不再需要重复输入身份认证口令或口令的效果,提升用户跨域访问效率。
根据以上理论方法,设计用户身份凭证跨域传递方法,其执行过程如图5所示。
图5 用户身份凭证跨域传递执行过程
为了清晰描述用户身份凭证跨域传递方法,抽象模型如下。
(1) 当用户希望访问域A中的云服务时,将用户名User_Name、口令User_Password等身份认证信息发送给域A的信任代理,由信任代理对用户进行身份认证,身份认证通过后域A生成Token信息(User_Token A)发送给用户,作为域A认可用户身份的标志,允许用户访问域A中的云服务。
(2) 当用户希望访问域B中的云服务时,首先确认用户本地未存储域B的Token信息,之后在用户本地获取到域A的User_Token A。
(3) 用户向域A发送User_Token A以及后续待访问的域B信息,由域A验证用户发送过来的User_Token A的真实性。
(4) 域A向云制造平台验证域B的合法性,在确认域B可以信任后,向域B发起互信验证申请,建立与域B之间的互信关系。
(5) 域A从User_Token A中提取用户信息,为用户信息添加时间戳和随机数标记,使用域A私钥DomainA_PriKey对用户信息(含时间戳和随机数)进行签名,并使用域B公钥DomainB_PubKey制作数字信封。
(6) 域A将数字信封发送给域B。
(7) 域B使用自身私钥DomainB_PriKey解密数字信封,使用域A公钥DomainA_PubKey验证数字信封的合法性,判断时间戳记录的发送时间与接收时间相比是否超过一定的阈值范围(例如60 s),判断本次接收到的随机数是否与域B之前收到的随机数重叠,全部过程验证通过后提取用户身份信息,重新制作域B的Token(User_Token B)。
(8) 域B将重新制作的User_Token B发送给用户,作为域B认可用户身份的标志。
(9) 域B完成对用户的身份认证,允许用户访问域B中的云服务。
5 云制造系统服务跨域协同优化
本文基于PKI体系构建的云制造域间互信模型,通过云制造平台作为担保节点,在域1~域N之间建立信任链,协商统一的域间安全验证机制,打通跨域协同通道,完成云服务跨域协同的安全认证和无障碍放行,实现云制造服务组合交付过程的高效透明,解决因访问权限限制导致云服务跨域协同被拒绝的问题,云制造服务跨域协同过程如图6所示。
图6 云制造系统服务跨域协同示意图
为了清晰描述云制造服务跨域协同优化云制造服务,抽象算法过程如下。
(1) 域A云服务向域A信任代理发出针对域B的跨域协同请求。
(2) 域A信任代理负责向域B转发云服务的跨域协同请求。
(3) 域B信任代理收到请求消息,从收到的云服务属性元组中提取服务所在域A的相关信息(ServiceA_Domain)。
(4) 域A索取域B的数字证书DomainB_Cert,使用云制造平台公钥对域B数字证书DomainB_Cert进行验签,确认域B的真实合法性。
(5) 域B索取域A的数字证书DomainA_Cert,使用云制造平台公钥对域A数字证书DomainA_Cert进行验签,确认域A的真实合法性。
(6) 域A和域B成功建立域间互信关系,建立云服务跨域协同通道。
(7) 域B检查域A云服务的服务类型ServiceA_Type,确认允许后放行域A云服务的跨域协同请求。
为了对以上流程更清晰的阐述,将使用的协同优化方法进行表述,如图7所示。
图7 云制造系统服务跨域协同优化过程
6 应用与验证
6.1 应用示例
云仿真是云制造系统的一种典型应用方式,本文以跨企业云仿真平台为应用背景,验证经过了跨企业域间互信的用户跨域认证和云服务跨域协同优化的效果。在复杂产品研制过程中,以总体部作为研制主体,整个研制过程涉及与多个厂所的交互协同,本文搭建的跨企业云仿真平台改变了传统跨企业协同研制模式,建立了总体部与各厂所之间的域间互信体系,支持开展跨企业的系统/设备仿真优化和评估,形成了跨企业的协同仿真试验验证能力,平台结构如图8所示,平台界面如图9所示。结合用户认证安全优化方法,跨企业云仿真平台能够简化用户跨域访问云服务的身份鉴别效率,从实际应用测试效果来看,能够取得预期优化效果。以图9为例,在用户完成身份认证访问“云仿真服务A”之后,当用户希望访问位于其他企业的“云仿真服务B”时,通过用户身份凭证信任传递机制,将用户身份凭证从“云仿真服务A”所在域传递到“云仿真服务B”所在域,达到用户跨域访问云仿真服务时不再需要重复输入身份认证口令的效果,实现简化身份认证过程的目的。
图8 跨企业云仿真平台建设示意图
图9 云制造系统用户身份认证优化效果示意图
在复杂产品研制过程中,云仿真平台以总体部作为研制主体发起云仿真任务,并在任务执行过程中通过中间件申请调用其他厂所提供的云仿真协同接口,对整个云仿真过程进行控制和显示。如图10所示,在总体部云仿真任务开始前,需要对仿真参数进行设置,包括实验环境参数、目标参数等,总体部仿真过程使用界面中给定的参数进行云仿真运行。
图10 总体部云仿真任务起始执行过程
如图11所示,平台控制显示区展示了目前在线的厂所单位,同时展示了云仿真过程的流程状态进度。经过与总体部实现域间互信的厂所单位,相应的显示图标会由红色变为绿色,具体云仿真过程中,随着仿真过程的推进,流程状态机会依次改变,显示当前仿真状态和关键节点参数,直到云仿真过程结束。
图11 总体部云仿真服务跨厂所协同过程
如表1所示,以云制造的仿真为例,在相同条件下,对“域间协商”“用户认证”“云服务协同”3项大指标以及“语义描述”“域间互信”“认证次数”“认证耗时”“用户体验”“域内协同”“跨域协同”“协商时间”8项小指标进行对比,证明本文所提方法的有效性。经过与传统用户认证和云服务跨域协同方式对比,发现经过域间互信优化的用户认证和云服务跨域协同过程具备较强的时间优势和过程简化优势,能够明显提升云制造系统全生命周期的使用效率。
表1 所提方法与传统方式评价指标对比
6.2 安全可信性分析
用户认证优化和云服务跨域协同的前提是云制造系统域间互信,本文通过云制造平台作为可信第三方,基于PKI体系建立了云制造系统域间互信过程模型,能够对云制造系统中的不同安全域建立统一互信关系,并在该信任关系基础上形成域间逻辑信任链和域间信任传递机制,为云制造服务跨域协同打通安全通道,实现云制造服务跨域协同的安全性。
通过分析传统云服务身份认证过程可以发现,Token是用户身份认证成功的标志。当用户完成云服务所在域的身份认证时,域信任代理会发送Token给用户。当用户跨域访问下一个云服务时,如果不执行传统的身份认证过程,而是借助已有的Token间接计算并衍生出下一个云服务所在域信任代理的Token凭证,就省去了一次重复的身份认证过程,实现了与传统身份认证同样的认证效果。在具体执行过程中,利用已完成身份认证的云服务所在域A的信任代理生成的User_Token A,重新解构并以安全的方式生成下一个需要进行身份认证的云服务所在域B的User_Token B,就实现了与传统身份认证过程同样生成User_Token B的等价效果。从这个角度分析,本文提出的优化方法够达到与传统身份认证方式相比同等强度的身份认证安全性。
7 结 论
本文打破云制造系统不同安全域之间的孤立关系,提出了一种基于域间互信机制的用户身份认证和云制造服务跨域协同高效可信安全优化方法,实现用户可信身份跨域传递,同时解决云服务跨域协同被拒绝的问题。本文在企业搭建了云仿真试验测试平台,经过具体应用测试,证明了该安全技术能够实现云制造服务跨域组合交付的安全透明化,并达到与传统身份认证方式相比同等强度的安全防护效果。