一种可信工控终端及其构建方法

文档序号:6544109阅读:156来源:国知局
一种可信工控终端及其构建方法
【专利摘要】本发明涉及一种可信工控终端及其构建方法。在工控终端建立信任根,信任根作为终端的信任源,保证启动代码和系统内核可信,将信任扩展到启动代码、系统内核;系统内核保证中间件和应用可信,进一步将信任扩展到中间件、应用。通过两级信任扩展,即构建工控终端从信任根到应用的信任。本发明充分结合工控终端的实际运行及应用情况,在不影响工控终端正常运转的前提下,设计了信任根功能模块,从信任根建立到终端应用安全,可以有效保证工控终端的安全,为增强工控系统安全提供技术支撑。
【专利说明】一种可信工控终端及其构建方法
【技术领域】
[0001]本发明属于工控系统安全领域,主要涉及工控系统终端安全,更确切地是涉及一种可信工控终端及其构建方法。
【背景技术】
[0002]随着工业化与信息化进程的不断交叉融合,越来越多的信息技术应用到了工业领域。工业控制系统越来越开放,打破了其原有的物理环境相对封闭性以及工业控制系统软、硬件专用性,其安全受到了前所未有的威胁。而工业控制系统作为国家关键基础设施的重要组成部分,其安全势必关系到国家的战略安全,为此各国都越来越重视工业控制系统安全。工业控制系统主要包含有数据采集与监视控制SCADA系统,以及可编程逻辑控制器PLC、远程终端单元RTU等控制器设备终端,其中SCADA系统构成过程控制和监控网络,控制器终端构成控制系统网络。目前,有关工控系统安全的研究重点主要都集中在管理体制和标准规范建立,以及SCADA系统安全和网络通信安全等技术方面。实际上,工控终端设备位于工程现场,直接完成现场的大部分控制功能和数据采集功能,是SCADA系统操控以及获取数据的源,为此工控终端安全也是工控系统安全中不可或缺的一环。
[0003]可信计算技术是一种全新的解决终端安全的革命性技术,从体系结构出发,通过引入硬件芯片作为终端信任根,构建终端可信计算环境,达到从根本上提高终端安全的目的。国际可信计算组织TCG定义硬件芯片为可信平台模块TPM,中国可信计算工作组TCMU定义硬件芯片为可信密码模块TCM,TPM与TCM的主要不同在于支持的密码算法不同(TPM只支持RSA密码操作,不支持对称密码算法,TCM主要支持国内密码算法包括SM2、SM3和SMS4),其他内部功能模块(如密钥管理体系、平台配置寄存器PCR的操作使用等)大体类似,其对外都能提供终端信任链构建、数据封装存储、终端身份和状态证明等可信计算功能。TCG和TCMU也分别针对TPM和TCM推出了相应的规范,并且市场上都已推出了相关产品。
[0004]然而,上述TPM/TCM芯片都是针对传统PC终端的。与传统PC终端相比,工控终端所处的物理环境更为复杂恶劣,其终端应用功能更为单一,而且终端硬件资源也比较稀缺,直接将TPM/TCM芯片应用到工控终端作为其信任根来增强其安全并不可取,TPM/TCM内部复杂的功能机制对于工控终端而言是个负担,将严重影响其正常运行。工控终端直接放置在工程现场,其上只运行涉及现场控制、数据采集功能的应用,对于工控终端而言根本不涉及多个用户操作使用的场景,且其应用功能单一、数量不多,也不需要涉及复杂的密钥管理体系,所以TPM/TCM中的这部分相关功能对于工控终端的信任根是过量的。此外,为保证安全方便操作,工控终端应用可能还需要信任根提供公钥操作、证书操作等功能,而这些都是TPM/TCM所不具备的。为此,必须保证在不影响工控终端正常运转的前提下,充分结合其实际运行及应用情况,设计信任根功能模块,为工控终端建立信任根,然后基于该信任根构建终端可信运行环境,保证终端运行代码、数据的安全,从而保障工控终端的安全。

【发明内容】
[0005]本发明的目的在于提供一种可信工控终端及其构建方法,为工控终端建立信任根,信任根作为终端的信任源,具有对外提供安全保护的能力,依赖该信任根可以自保证终端启动、运行代码的安全,同时基于信任根为终端应用的数据存储等提供安全保障。
[0006]本发明采用的技术方案如下:
[0007]一种可信工控终端,其包括:
[0008]信任根,用于计算工控终端系统启动代码、内核文件的完整性,并保证启动代码、内核文件的可信;
[0009]中间件,为应用提供访问信任根功能的服务,并保证终端应用的数据安全;
[0010]系统内核,基于信任根计算中间件、应用代码的完整性,并保证中间件、应用代码的可信。
[0011]进一步的,所述信任根通过硬件芯片技术保证其安全可信。
[0012]进一步的,所述信任根是工控终端启动运行的最起始部件,其功能模块主要包括信任根管理模块、密钥管理模块、证书管理模块、密码运算管理模块、完整性管理模块,分别定义如下:
[0013]所述信任根管理模块的功能操作主要包括设置信任根状态,以及信任根自检操作;
[0014]所述密钥管理模块的功能操作主要包括生成对称密钥、非对称密钥,以及获取非对称密钥的公钥;
[0015]所述证书管理模块的功能操作主要包括导入、导出公钥证书;
[0016]所述密码运算管理模块的功能操作主要包括生成随机数、对称密钥加解密、非对称密钥加解密、签名和验证,以及哈希操作;
[0017]所述完整性管理模块的功能操作主要包括完整性存储、完整性参考值导入、完整性验证、完整性证明。
[0018]一种构建上述可信工控终端的方法,其步骤包括:
[0019]I)建立工控终端的信任根,组建信任根的功能模块,主要包括信任根管理模块、密钥管理模块、证书管理模块、密码运算管理模块、完整性管理模块;
[0020]2)信任根基于其密码运算管理模块计算工控终端系统启动代码、内核文件的完整性,并基于其完整性管理模块保证启动代码、内核文件的可信;
[0021]3)构建中间件,为应用提供访问信任根功能的服务;
[0022]4)系统内核基于信任根的密码运算管理模块计算中间件、应用代码的完整性,并基于信任根的完整性管理模块保证中间件、应用代码的可信;
[0023]5)基于中间件服务保证终端应用的数据安全。
[0024]进一步的,所述信任根还有以下特性:
[0025]所述信任根状态值有两种,一种是Enabled,在该状态下信任根可正常运转,另一种是Disabled,在该状态下信任根不可用;
[0026]所述信任根内置的密钥槽数量有限,每个密钥槽由一个密钥句柄标识,对应不同的对称密钥和非对称密钥;
[0027]所述信任根执行生成对称密钥和非对称密钥操作时,需指定密钥句柄,密钥生成后将直接放置在该密钥句柄对应的密钥槽中,若密钥槽中已有密钥则直接用新生成的密钥替换已有密钥;
[0028]所述信任根密钥中有一特殊的非对称密钥对即身份密钥,用来标识工控终端身份;
[0029]所述信任根中的公钥证书主要是指对应于身份密钥的身份证书,以及验证完整性参考值签名的证书;
[0030]所述信任根中的完整性是指对代码或数据执行哈希操作的结果;
[0031]所述信任根内置有完整性参考值列表,其中分别列出了启动代码、内核文件、中间件以及应用可信时对应的完整性值作为参考标准;
[0032]所述信任根中的完整性参考值可以通过完整性参考值导入操作来更新,将第三方发布的完整性参考值导入信任根之后,先用相应的证书验证其确由可信方发布,然后再替换信任根内置的完整性参考值。
[0033]进一步的,所述信任根与终端系统其他部件的交互方式有两种:
[0034]I)所述信任根的功能模块提供的各操作都以命令接口的形式对外提供,主要是用于物理现场操作信任根和供系统内核调用;
[0035]2)所述信任根之上封装一层即所述中间件,通过中间件对外提供部分功能操作接口,主要是供系统应用调用。
[0036]进一步的,所述信任根在执行命令操作时只能以单线程的方式处理。
[0037]进一步的,所述中间件向应用提供的功能接口主要包括密钥生成、加解密、签名验证、完整性证明。
[0038]进一步的,所述中间件以系统服务的形式存在,具有以下特性:
[0039]所述中间件是终端应用访问所述信任根的唯一入口 ;
[0040]所述中间件屏蔽了所述信任根的命令接口细节,提供的操作接口更抽象,具有更好的语义性;
[0041]所述中间件支持接口的多进程并发调用,并通过资源管理协调完成对所述信任根功能的串行调用。
[0042]进一步的,保证工控终端运行可信的方法如下:
[0043]I)所述信任根判定启动代码、内核文件可信后,运行启动代码加载系统内核进入系统,否则系统重启;
[0044]2)所述系统内核判定中间件、应用代码可信后,启动运行中间件服务以及相应的应用,否则不运行。
[0045]进一步的,判定运行代码可信的方法如下:
[0046]I)所述信任根以代码为命令输入数据,执行密码运算管理模块的哈希操作,其输出为该代码的完整性值;
[0047]2)所述信任根执行完整性管理模块的完整性存储操作,将代码的完整性值存储在信任根内部;
[0048]3)所述信任根执行完整性管理模块的完整性验证操作,将存储的代码的完整性值与内置的完整性参考值列表中相应的值进行比较验证,若一致则认为代码可信,否则认为代码不可信。
[0049]进一步的,终端应用涉及的关键数据可以通过中间件服务提供的加解密功能来安全存储,其加密密钥位于信任根密钥槽,加密时指定密钥句柄即可。
[0050]进一步的,终端应用在与SCADA系统交互时,可以通过中间件服务提供的完整性证明功能来证明终端状态的可信以保证交互顺利,其证明主要通过身份密钥对存储在信任根内的完整性值签名来完成。
[0051]本发明的有益效果:
[0052]本发明提出了一种构建可信工控终端的方法,从信任根建立到终端应用安全,可以有效保证工控终端的安全,为增强工控系统安全提供技术支撑。本发明充分结合工控终端的实际运行及应用情况,在不影响工控终端正常运转的前提下,设计了信任根功能模块,基于信任根功能保证系统运行代码可信,同时以系统服务的形式构建了中间件为应用提供访问信任根的功能接口,并基于中间件保证应用数据安全。
【专利附图】

【附图说明】
[0053]图1为本发明实施例工控终端信任构建示意图。
[0054]图2为本发明实施例中工控终端信任根功能调用示意图。
【具体实施方式】
[0055]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056]如图1所示,是本发明实施例中工控终端信任构建示意图。信任根是终端的信任源,信任根保证启动代码和系统内核可信,将信任扩展到启动代码、系统内核;系统内核保证中间件和应用可信,进一步将信任扩展到中间件、应用。通过两级信任扩展,即构建工控终端从信任根到应用的信任。
[0057]信任根是以硬件芯片的方式实现,其功能模块如图2所示。信任根管理模块是最基本的功能模块,其信任根状态设置等功能操作保证信任根可正常运行。密钥管理模块负责密钥生成及管理功能,证书管理功能模块负责公钥证书的导入导出功能,密码运算管理模块负责各类密码运算功能,完整性管理模块负责完整性值的存储、验证、证明以及完整性参考值的导入功能。所有功能模块的功能操作都可以物理现场操作或者供系统内核调用,而部分密钥管理模块、密码运算管理模块以及完整性管理模块的功能操作可以通过中间件供应用调用。
[0058]所述密钥管理模块生成的密钥都直接内置于信任根的密钥槽中,通过密钥槽对应的密钥句柄来进行管理。密钥槽对应的密钥句柄有身份密钥公钥、身份密钥私钥、完整性参考值发布方公钥,以及四个对称密钥。密钥管理模块在接收到生成密钥的指令时,必须指定相应的密钥句柄,在密钥生成后将新密钥放置在该密钥句柄对应的密钥槽中与该密钥句柄相绑定。对于工控终端而言,其密钥使用主要是终端应用用于数据安全处理,涉及的是对称密钥。由于工控终端的专用性以及功能的唯一性,通常一个终端上运行的应用只有一两个。密钥槽中的对称密钥句柄直接对应于具体的终端应用,应用通过中间件发出创建新密钥的指令,信任根则新生成一个密钥并与其密钥句柄绑定。密钥槽中的身份密钥一般在工控终端信任根初始化时就内置好了,并与相应的密钥句柄相绑定。
[0059]所述证书管理模块将公钥证书导入信任根或者从信任根导出时都需要指定该公钥对应的密钥句柄。信任根中存储的公钥证书主要是身份证书以及完整性参考值发布方证书,其中身份证书一般在信任根初始化时内置,并与身份密钥公钥句柄关联,工控终端需要向远程交互方证明自己身份时,需先向信任根发出导出身份密钥公钥对应证书的指令,然后将导出的身份证书发送给交互方;而完整性参考值发布方证书既可在信任根初始化时内置,也可在后期导入,在导入时需指定密钥句柄为完整性参考值公钥句柄,以建立导入证书与密钥句柄之间的关联。
[0060]所述密码运算管理模块实现的是国密标准密码算法,包括SM2、SMS4等。杂凑运算主要用在验证代码的可信性时,其对代码的杂凑结果即为该代码的完整性值。对称密码加解密运算主要用在终端应用对关键数据的保护时,应用通过中间件发出加解密操作指令时需指定使用的密钥句柄,即密钥槽中的对称密钥句柄。非对称密码运算包括加解密和签名验证运算,其中使用较多的是签名验证运算,主要用在终端证明自身身份时,执行操作时指定的密钥句柄为身份密钥句柄。
[0061]所述完整性管理模块记录终端启动运行涉及的各代码完整性值,并基于完整性参考值验证代码完整性值的正确性。代码的完整性值存储在信任根的平台配置寄存器PCR中,一个代码对应一个PCR。信任根中内置的完整性参考值列表,列出了每个PCR的标准参考值,通过比较各PCR值与标准值的相符性即可判定相应代码的可信性。完整性参考值可以在信任根初始化时内置,也可以后期导入更新,导入由发布方签名的完整性参考值,经由信任根中存储的完整性参考值发布方证书验证其正确性之后,将替换现有参考值列表中的相应值。工控终端应用需要向远程交互方证明自身状态时,通过中间件发出完整性证明指令,即用身份密钥对存储的完整性值签名,然后将签名结果以及身份证书一并发送给远程方,远程方在验证终端身份之后即可验证终端状态。
[0062]以上通过简单的说明描述了本发明提供的可信工控终端构建方案,本领域的技术人员应该理解,在不超出本发明实质和范围的情况下,可以进行修改。
【权利要求】
1.一种可信工控终端,其特征在于,包括: 信任根, 用于计算工控终端系统启动代码、内核文件的完整性,并保证启动代码、内核文件的可信; 中间件,为应用提供访问信任根功能的服务,并保证终端应用的数据安全; 系统内核,基于信任根计算中间件、应用代码的完整性,并保证中间件、应用代码的可?目。
2.如权利要求1所述的可信工控终端,其特征在于:所述信任根通过硬件芯片技术保证其安全可信,是工控终端启动运行的最起始部件,所述信任根包括如下模块: 信任根管理模块,用于设置信任根状态,以及信任根自检操作; 密钥管理模块,用于生成对称密钥、非对称密钥,以及获取非对称密钥的公钥; 证书管理模块,用于导入、导出公钥证书; 密码运算管理模块,用于生成随机数、对称密钥加解密、非对称密钥加解密、签名和验证,以及哈希操作; 完整性管理模块,用于完整性存储、完整性参考值导入、完整性验证以及完整性证明。
3.一种可信工控终端的构建方法,其步骤包括: 1)建立工控终端的信任根,组建信任根的功能模块,主要包括信任根管理模块、密钥管理模块、证书管理模块、密码运算管理模块、完整性管理模块; 2)信任根基于其密码运算管理模块计算工控终端系统启动代码、内核文件的完整性,并基于其完整性管理模块保证启动代码、内核文件的可信; 3)构建中间件,为应用提供访问信任根功能的服务; 4)系统内核基于信任根的密码运算管理模块计算中间件、应用代码的完整性,并基于信任根的完整性管理模块保证中间件、应用代码的可信; 5)基于中间件服务保证终端应用的数据安全。
4.如权利要求3所述的方法,其特征在于,所述信任根具有以下特性: 所述信任根状态值有两种,一种是Enabled,在该状态下信任根可正常运转,另一种是Disabled,在该状态下信任根不可用; 所述信任根内置的密钥槽数量有限,每个密钥槽由一个密钥句柄标识,对应不同的对称密钥和非对称密钥; 所述信任根执行生成对称密钥和非对称密钥操作时,需指定密钥句柄,密钥生成后将直接放置在该密钥句柄对应的密钥槽中,若密钥槽中已有密钥则直接用新生成的密钥替换已有密钥; 所述信任根密钥中有一特殊的非对称密钥对即身份密钥,用来标识工控终端身份;所述信任根中的公钥证书主要是指对应于身份密钥的身份证书,以及验证完整性参考值签名的证书; 所述信任根中的完整性是指对代码或数据执行哈希操作的结果; 所述信任根内置有完整性参考值列表,其中分别列出了启动代码、内核文件、中间件以及应用可信时对应的完整性值作为参考标准; 所述信任根中的完整性参考值可以通过完整性参考值导入操作来更新,将第三方发布的完整性参考值导入信任根之后,先用相应的证书验证其确由可信方发布,然后再替换信任根内置的完整性参考值。
5.如权利要求3所述的方法,其特征在于,所述信任根与其他部件的交互方式有两种:所述信任根的功能模块提供的各操作都以命令接口的形式对外提供,用于物理现场操作信任根和供系统内核调用;所述信任根之上封装一层即所述中间件,通过中间件对外提供部分功能操作接口,供系统应用调用。
6.如权利要求3所述的方法,其特征在于,所述中间件以系统服务的形式存在,具有以下特性: 所述中间件是终端应用访问所述信任根的唯一入口 ; 所述中间件屏蔽了所述信任根的命令接口细节,提供的操作接口更抽象,具有更好的语义性; 所述中间件支持接口的多进程并发调用,并通过资源管理协调完成对所述信任根功能的串行调用。
7.如权利要求6所述的方法,其特征在于,所述中间件向应用提供的功能接口主要包括密钥生成、加解密、签名验证、完整性证明。
8.如权利要求3所述的方法,其特征在于,保证工控终端运行可信的方法是:所述信任根判定启动代码、内核文件可信后,运行启动代码加载系统内核进入系统,否则系统重启;所述系统内核判定中间件、应用代码可信后,启动运行中间件服务以及相应的应用,否则不运行。
9.如权利要求3所述的方法,其特征在于,判定运行代码可信的方法是: a)所述信任根以代码为命令输入数据,执行密码运算管理模块的哈希操作,其输出为该代码的完整性值; b)所述信任根执行完整性管理模块的完整性存储操作,将代码的完整性值存储在信任根内部; c)所述信任根执行完整性管理模块的完整性验证操作,将存储的代码的完整性值与内置的完整性参考值列表中相应的值进行比较验证,若一致则认为代码可信,否则认为代码不可信。
10.如权利要求3所述的方法,其特征在于:终端应用涉及的关键数据通过中间件服务提供的加解密功能来安全存储,其加密密钥位于信任根密钥槽,加密时指定密钥句柄即可;终端应用在与SCADA系统交 互时,通过中间件服务提供的完整性证明功能来证明终端状态的可信以保证交互顺利,其证明通过身份密钥对存储在信任根内的完整性值签名来完成。
【文档编号】G06F21/57GK103902915SQ201410154970
【公开日】2014年7月2日 申请日期:2014年4月17日 优先权日:2014年4月17日
【发明者】汪丹, 徐震, 于爱民 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1