CN111177708A - 基于tcm芯片的plc可信度量方法、系统及度量装置 - Google Patents

基于tcm芯片的plc可信度量方法、系统及度量装置 Download PDF

Info

Publication number
CN111177708A
CN111177708A CN201911393078.3A CN201911393078A CN111177708A CN 111177708 A CN111177708 A CN 111177708A CN 201911393078 A CN201911393078 A CN 201911393078A CN 111177708 A CN111177708 A CN 111177708A
Authority
CN
China
Prior art keywords
plc program
value
tcm
plc
measurement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911393078.3A
Other languages
English (en)
Inventor
于治楼
王塞塞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue CNC Electronics Co Ltd
Original Assignee
Shandong Chaoyue CNC Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue CNC Electronics Co Ltd filed Critical Shandong Chaoyue CNC Electronics Co Ltd
Priority to CN201911393078.3A priority Critical patent/CN111177708A/zh
Publication of CN111177708A publication Critical patent/CN111177708A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明实施例公开一种基于TCM芯片的PLC可信度量方法、系统及度量装置,通过拦截需要运行的PLC程序,查询PLC程序是否属于预存的可信白名单,如果属于则查询存储于本地TCM寄存器的PLC程序的完整性基准值,如果不属于则拒绝执行PLC程序,基于TCM芯片对PLC程序进行哈希计算得到度量值,比较度量值与完整性基准值是否一致,如果一致则运行PLC程序,如果不一致则查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用hash值更新完整性基准值,如果用户无管理员权限,则拒绝执行PLC程序,并对PLC程序进行可信恢复。从而实现验证需要执行的PLC程序属于白名单后,对PLC程序运行过程进行动态可信度量,防止执行过程中出现篡改等风险,提高PLC程序的安全性。

Description

基于TCM芯片的PLC可信度量方法、系统及度量装置
技术领域
本发明涉及PLC安全领域,尤其涉及一种基于TCM芯片的PLC可信度量方法、系统及度量装置。
背景技术
近年来国际竞争加剧,将关键核心技术掌握在自己手中,能够从根本上保障国家经济安全、国防安全和其他安全。随着国内密码学的发展进步,在 PLC(ProgrammableLogic Controller,可编程逻辑控制器)领域,国内的TCM (Trusted CryptographyModule,可信密码模块)芯片已经能够完全替代国外的 TPM(Trusted Platform Module,可信赖平台模块)芯片,能够达到自主可控的目标效果,对密码设备进行国产化替代是一种可行的手段。
但是,替换为国内自主密码设备TCM后,如何应用国内自主密码设备TCM 构建PLC动态可信度量,提高PLC运行过程中用户控制逻辑的安全性,是当前需要解决的技术问题。
发明内容
本发明实施例提供一种基于TCM芯片的PLC可信度量方法、系统及度量装置,能够对PLC程序运行过程进行监控,提高PLC程序的安全性。
本发明实施例采用如下技术方案:
一种基于TCM芯片的PLC可信度量方法,所述方法应用于TCM芯片,所述方法包括:
S1、拦截需要运行的PLC程序,查询所述PLC程序是否属于预存的可信白名单,如果属于则执行S2,如果不属于则拒绝执行所述PLC程序;
S2、查询存储于本地TCM寄存器的所述PLC程序的完整性基准值;
S3、基于所述TCM芯片对所述PLC程序进行哈希计算得到度量值,比较所述度量值与所述完整性基准值是否一致,如果一致则运行所述PLC程序,如果不一致则执行S4;
S4、查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
可选的,S1包括:
基于TCM的HASH算法将需要的执行文件加入所述可信白名单;
调用TCM的HASH算法对所述PLC程序执行文件进行度量计算,得到对应的文件预期值并存储;
当所述PLC程序需要运行时,如果所述PLC程序执行文件不在可信白名单中,则禁止执行所述PLC程序;
基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,在HOOK点对可执行文件进行哈希运算得到度量值,将所述度量值与所述预期值的比对,如果比对失败则禁止执行所述PLC程序。
可选的,根据所述PLC程序每一页内容进行度量,计算得到所述完整性基准值。
可选的,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
基于TCM芯片应用TCM COS对所述PLC程序每一页内容进行哈希计算得到度量值。
可选的,所述查询用户管理权限包括:
获取用户提供的口令,配合TCM对用户进行密码和绑定关系验证,确定用户管理权限;
或者,获取用户生物特征,基于所述生物特征应用TCM识别用户身份,确定用户管理权限;
或者,基于USB key识别用户身份,应用TCM确定用户管理权限。
可选的,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
根据Hi=H(Hprev,Ni)对所述PLC程序进行哈希计算得到第一hash值,其中H代表哈希计算函数,Hi代表度量值,Hprev代表前一轮的度量值,Ni代表所述PLC程序。
一种基于TCM芯片的PLC可信度量系统,包括基于TCM构建的用户安监模块、基于TCM构建的内核度量模块;
所述用户安监模块包括:
度量对象收集单元,用于收集所述PLC程序的用户控制逻辑;
度量值定义单元,用于根据哈希算法确定所述用户控制逻辑的度量值;
预期值收集单元,用于存储所述度量值;
动态度量进程单元,用于管理所述PLC程序进程;
所述内核度量模块包括:
度量程序单元,用于对所述PLC程序进行度量,计算得到hash值,将所述hash值与所述度量值比对,如果一致,则所述PLC程序未被修改,执行所述PLC程序;根据变量的地址获取变量的变量值,判断所述变量值是否超过预设范围,判定所述PLC程序进程的状态是否合法;
日志管理单元,用于根据PLC时间模块,记录度量结果,并将所述度量结果发送至所述内核度量模块,使得所述内核度量模块将所述度量结果显示于液晶显示屏上或传递给其他装置或软件;
进程控制单元,用于所述PLC程序进程的状态不合法时,根据用户操作发出控制命令,对所述PLC程序进程进行管控。
可选的,所述度量值定义单元确定的所述度量值对应所述PLC程序的每一页;
所述度量程序单元,用于根据所述PLC程序每一页内容进行度量,计算得到所述hash值。
一种基于TCM构建的内核度量装置,所述内核度量装置接收监控设备发送的进程pid、策略信息、通知告警信息;所述进程pid为被动态度量的PLC 程序的程序进程号;所述策略信息为所述PLC程序进程的程序的度量值,所述hash值对应所述PLC程序的每一页;所述通知警告信息为所述监控设备返回的消息,以及用户发送的对所述PLC程序进程的控制信息;
所述装置执行以下步骤:S1、拦截需要运行的可编程逻辑控制器PLC程序,查询所述PLC程序是否属于预存的可信白名单,如果属于则执行S2,如果不属于则拒绝执行所述PLC程序;
S2、查询存储于本地TCM寄存器的所述PLC程序的完整性基准值;
S3、基于TCM芯片对所述PLC程序进行哈希计算得到度量值,比较所述度量值与所述完整性基准值,如果一致则运行所述PLC程序,如果不一致则执行S4;
S4、获取用户管理权限,如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
可选的,S1包括:
基于TCM的哈希算法将需要的执行文件加入所述可信白名单;
调用TCM的哈希算法对所述PLC程序执行文件进行度量计算,得到对应的文件预期值并存储;
当所述PLC程序需要运行时,如果执行文件不在可信白名单中,则禁止执行所述PLC程序;
基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,在HOOK点对可执行文件进行哈希运算得到度量值,将所述度量值与所述预期值的比对,如果比对失败则禁止执行所述PLC程序。
基于上述技术方案的基于TCM芯片的PLC可信度量方法、系统及度量装置,拦截需要运行的PLC程序,查询PLC程序是否属于预存的可信白名单,如果属于则查询存储于本地TCM寄存器的PLC程序的完整性基准值,如果不属于则拒绝执行PLC程序,基于TCM芯片对PLC程序进行哈希计算得到度量值,比较度量值与完整性基准值是否一致,如果一致则运行PLC程序,如果不一致则查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用hash值更新完整性基准值,如果用户无管理员权限,则拒绝执行PLC程序,并对PLC程序进行可信恢复。从而验证需要执行的PLC程序属于白名单后,对PLC程序运行过程进行动态可信度量,防止执行过程中出现篡改等风险,提高PLC程序的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例提供的基于TCM芯片的PLC可信度量方法的流程图;
图2为本发明实施例提供的TCM COS架构图之一;
图3为本发明实施例提供的TCM COS架构图之二;
图4为本发明实施例提供的TCM COS运行流程图;
图5为本发明实施例提供的基于TCM芯片的PLC可信度量系统的结构示意图;
图6为图5中内核度量模块52处理流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明实施例基于自主TCM密码芯片对PLC系统进行动态可信度量,在可信白名单功能的基础上,增加关注进程运行中和运行后两个阶段的可信动态度量方案,避免了缓冲区攻击、恶意代码攻击等安全威胁可能造成应用运行过程中执行代码被篡改、应用运行行为异常或用户程序完整性被破坏等问题。从而实现基于自主密码设备TCM构建PLC程序动态可信度量,提高PLC程序运行过程中用户控制逻辑的安全性,打造更加安全的PLC设备的使用环境。
实施例1
如图1所示,本实施例提供一种基于TCM芯片的PLC可信度量方法,所述方法应用于TCM芯片,所述方法包括:
11、拦截需要运行的PLC程序。
12查询该PLC程序是否属于预存的可信白名单,如果属于则执行S2,如果不属于则拒绝执行所述PLC程序。
13、查询存储于本地TCM寄存器的该PLC程序的完整性基准值。
14、基于所述TCM芯片对所述PLC程序进行哈希计算得到度量值。
15、比较所述度量值与所述完整性基准值是否一致,如果一致则运行所述 PLC程序,如果不一致则执行16。
16、查询用户是否有管理权限。
17、如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值。
在一个实施例中,计算hash值的方式为,调用TCM计算hash值,如果和下载程序时计算的到的数字不一致,则根据权限进行后续操作。如果是管理员,则说明程序被合法修改,用现在的hash值更新代替老的hash值。如果不是管理员则说明程序被非法篡改,新的程序为运行的程序,即运行后发现hash 值和预设值不一致的这个程序。如果hash值没改变说明是老程序。
18、如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC 程序进行可信恢复。
上述基于TCM芯片的PLC可信度量方法,拦截需要运行的PLC程序,查询PLC程序是否属于预存的可信白名单,如果属于则查询存储于本地TCM 寄存器的PLC程序的完整性基准值,如果不属于则拒绝执行PLC程序,基于 TCM芯片对PLC程序进行哈希计算得到度量值,比较度量值与完整性基准值是否一致,如果一致则运行PLC程序,如果不一致则查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用hash值更新完整性基准值,如果用户无管理员权限,则拒绝执行PLC程序,并对PLC程序进行可信恢复。从而验证需要执行的PLC程序属于白名单后,对PLC程序运行过程进行动态可信度量,防止执行过程中出现篡改等风险,提高PLC程序的安全性。
在一个实施例中,可选的,S1包括:
基于TCM的HASH算法将需要的执行文件加入所述可信白名单;
调用TCM的HASH算法对所述PLC程序执行文件进行度量计算,得到对应的文件预期值并存储;
当所述PLC程序需要运行时,如果所述PLC程序执行文件不在可信白名单中,则禁止执行所述PLC程序;
基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,在HOOK点对可执行文件进行哈希运算得到度量值,将所述度量值与所述预期值的比对,如果比对失败则禁止执行所述PLC程序。
具体的,可信白名单功能基于TCM的HASH算法实现所述PLC程序静态度量,预先将所述PLC程序可执行文件加入可信白名单,在加入可信白名单的同时,调用TCM的HASH算法对所述PLC程序进行静态度量,并将度量值存储为对应的文件预期值;可信白名单功能基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,所述PLC程序在执行时,如果该文件不在可信白名单中,则禁止执行,可信白名单功能在HOOK点对可执行文件进行杂凑运算,进行度量值和预期值的比对,如果比对失败则禁止所述 PLC程序执行。
在一个实施例中,可选的,根据所述PLC程序每一页内容进行度量,计算得到所述完整性基准值。
在一个实施例中,可选的,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
基于TCM芯片应用TCM COS(TCM Chip Operating System,TCM芯片操作系统)对所述PLC程序每一页内容进行哈希计算得到度量值。
具体的,调用TCM COS实现TCM主动度量功能。如图2所示,TCM COS 主要包括安全功能库21、密码算法驱动库22、基础支持库23。安全功能库21 由在TCM COS基础支持库23基础上进行二次开发,主要实现开机主动度量、端口控制等功能;密码算法驱动库22基于基础支持库23实现基础功能及密码驱动,并提供密匙算法,如私匙算法、杂凑(哈希)算法、公匙算法。
该实施例中,TCM COS(Chip Operating System)的架构如图3所示,包括主控模块31、接口管理模块32、初始化模块33、存储管理模块34、密码服务模块35、可信服务与管理模块36等功能模块。在主控模块通信调度下,各模块相互配合实现密码服务、可信服务、端口控制和资源管理等功能。如图3 所示,各个模块的详细功能为,主控模块31用于解析命令服务响应和任务调度通信,接口管理模块32管理PCI-E(Peripheral ComponentInterconnect Express,高速串行计算机扩展总线标准)接口、GPIO(General-purposeinput/output,通用输入/输出口)接口、SPI(Serial Peripheral interface,串行外围设备接口)接口,初始化模块33用于上电/复位自检、寄存器设置、外部接口设置、系统加载,存储管理模块34用于flash管理、SRAM管理、寄存器管理,密码服务模块35用于构建杂凑(哈希)算法函数库、对称密码函数数据库、ECC(Elliptic curve cryptography,椭圆加密算法)公匙算法函数库,可信服务与管理模块36用于TCM管理、可信服务、主动度量、端口控制。TCM COS的运行流程如图4所示。
在一个实施例中,可选的,所述查询用户管理权限包括:获取用户提供的口令,配合TCM对用户进行密码和绑定关系验证,确定用户管理权限。
如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
在一个实施例中,可选的,所述查询用户管理权限包括:获取用户生物特征,基于所述生物特征应用TCM识别用户身份,确定用户管理权限。
如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
在一个实施例中,可选的,所述查询用户管理权限包括:基于USB key识别用户身份,应用TCM确定用户管理权限。
如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
在一个实施例中,可选的,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
根据Hi=H(Hprev,Ni)对所述PLC程序进行哈希计算得到第一hash值,其中H代表哈希计算函数,Hi代表度量值,Hprev代表前一轮的度量值,Ni代表所述PLC程序。
本实施例的基于TCM芯片的PLC可信度量方法,拦截需要运行的PLC 程序,查询PLC程序是否属于预存的可信白名单,如果属于则查询存储于本地TCM寄存器的PLC程序的完整性基准值,如果不属于则拒绝执行PLC程序,基于TCM芯片对PLC程序进行哈希计算得到度量值,比较度量值与完整性基准值是否一致,如果一致则运行PLC程序,如果不一致则查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用hash值更新完整性基准值,如果用户无管理员权限,则拒绝执行PLC程序,并对PLC程序进行可信恢复。从而验证需要执行的PLC程序属于白名单后,对PLC程序运行过程进行动态可信度量,防止执行过程中出现篡改等风险,提高PLC程序的安全性。
实施例2
本实施例提供一种基于TCM芯片的PLC可信度量系统,如图5所示,该系统包括基于TCM构建的用户安监模块51、基于TCM构建的内核度量模块 52;
所述用户安监模51块包括:
度量对象收集单元511,用于收集所述PLC程序的用户控制逻辑。
度量值定义单元512,用于根据哈希算法确定所述用户控制逻辑的度量值。
预期值收集单元513,用于存储所述度量值。
动态度量进程单元514,用于管理所述PLC程序进程。
所述内核度量模块52包括:
度量程序单元521,用于对所述PLC程序进行度量,计算得到hash值,将所述hash值与所述度量值比对,如果一致,则所述PLC程序未被修改,执行所述PLC程序;根据变量的地址获取变量的变量值,判断所述变量值是否超过预设范围,判定所述PLC程序进程的状态是否合法。
日志管理单元522,用于根据PLC时间模块,记录度量结果(例如所述 PLC程序进程的状态是否合法),并将所述度量结果发送至所述内核度量模块 52,使得所述内核度量模块52将所述度量结果显示于液晶显示屏上或传递给其他装置或软件(例如监控组态软件)。
进程控制单元523,用于所述PLC程序进程的状态不合法时,根据用户操作发出控制命令,对所述PLC程序进程进行管控。
在一个实施例中,内核度量模块52的处理流程可以参照图6所示步骤实现。
在一个实施例中,可选的,所述度量值定义单元确定的所述度量值对应所述PLC程序的每一页;
所述度量程序单元,用于根据所述PLC程序每一页内容进行度量,计算得到所述hash值。
需要说明的是,本实施例的基于TCM芯片的PLC可信度量系统可以用于实现上述实施例的基于TCM芯片的PLC可信度量方法,具体实现过程可以参照上述基于TCM芯片的PLC可信度量方法实施例详细描述。
本实施例的基于TCM芯片的PLC可信度量系统,根据哈希算法确定用户控制逻辑的度量值,根据变量的地址,获取到变量的变量值,根据变量值是否超过预设范围判定所述PLC程序进程的状态是否合法,根据用户操作发出控制命令,对不合法PLC程序进程进行管控。
实施例3
本实施例提供一种基于TCM构建的内核度量装置,所述内核度量装置接收监控设备发送的进程pid、策略信息、通知告警信息;所述进程pid为被动态度量的PLC程序的程序进程号;所述策略信息为所述PLC程序进程的程序的度量值,所述hash值对应所述PLC程序的每一页;所述通知警告信息为收到的内核消息(所述监控设备向所述内核度量装置返回的消息),以及用户向所述内核度量装置发送的对所述PLC程序进程的控制信息;
所述装置执行步骤:S1、拦截需要运行的可编程逻辑控制器PLC程序,查询所述PLC程序是否属于预存的可信白名单,如果属于则执行S2,如果不属于则拒绝执行所述PLC程序;
S2、查询存储于本地TCM寄存器的所述PLC程序的完整性基准值;
S3、基于TCM芯片对所述PLC程序进行哈希计算得到度量值,比较所述度量值与所述完整性基准值,如果一致则运行所述PLC程序,如果不一致则执行S4;
S4、获取用户管理权限,如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
上述步骤拦截需要运行的PLC程序,查询PLC程序是否属于预存的可信白名单,如果属于则查询存储于本地TCM寄存器的PLC程序的完整性基准值,如果不属于则拒绝执行PLC程序,基于TCM芯片对PLC程序进行哈希计算得到度量值,比较度量值与完整性基准值是否一致,如果一致则运行PLC程序,如果不一致则查询用户管理权限,如果用户有管理员权限,则计算得到hash 值,应用hash值更新完整性基准值,如果用户无管理员权限,则拒绝执行PLC 程序,并对PLC程序进行可信恢复。从而验证需要执行的PLC程序属于白名单后,对PLC程序运行过程进行动态可信度量,防止执行过程中出现篡改等风险,提高PLC程序的安全性。
在一个实施例中,可选的,S1包括:
基于TCM的哈希算法将需要的执行文件加入所述可信白名单;
调用TCM的哈希算法对所述PLC程序执行文件进行度量计算,得到对应的文件预期值并存储;
当所述PLC程序需要运行时,如果执行文件不在可信白名单中,则禁止执行所述PLC程序;
基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,在HOOK点对可执行文件进行哈希运算得到度量值,将所述度量值与所述预期值的比对,如果比对失败则禁止执行所述PLC程序。
具体的,可信白名单功能基于TCM的HASH算法实现所述PLC程序静态度量,预先将所述PLC程序可执行文件加入可信白名单,在加入可信白名单的同时,调用TCM的HASH算法对所述PLC程序进行静态度量,并将度量值存储为对应的文件预期值;可信白名单功能基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,所述PLC程序在执行时,如果该文件不在可信白名单中,则禁止执行,可信白名单功能在HOOK点对可执行文件进行杂凑运算,进行度量值和预期值的比对,如果比对失败则禁止所述 PLC程序执行。
在一个实施例中,可选的,根据所述PLC程序每一页内容进行度量,计算得到所述完整性基准值。
在一个实施例中,可选的,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
基于TCM芯片应用TCM COS对所述PLC程序每一页内容进行哈希计算得到度量值。
具体的,调用TCM COS实现TCM主动度量功能。如图2所示,TCM COS 主要包括安全功能库21、密码算法驱动库22、基础支持库23。安全功能库21 由在TCM COS基础支持库23基础上进行二次开发,主要实现开机主动度量、端口控制等功能;密码算法驱动库22基于基础支持库23实现基础功能及密码驱动,并提供密匙算法,如私匙算法、杂凑(哈希)算法、公匙算法。
该实施例中,TCM COS(Chip Operating System)的架构如图3所示,包括主控模块31、接口管理模块32、初始化模块33、存储管理模块34、密码服务模块35、可信服务与管理模块36等功能模块。在主控模块通信调度下,各模块相互配合实现密码服务、可信服务、端口控制和资源管理等功能。如图3 所示,各个模块的详细功能为,主控模块31用于解析命令服务响应和任务调度通信,接口管理模块32管理PCI-E接口、GPIO接口、SPI接口,初始化模块33用于上电/复位自检、寄存器设置、外部接口设置、系统加载,存储管理模块34用于flash管理、SRAM管理、寄存器管理,密码服务模块35用于构建杂凑(哈希)算法函数库、对称密码函数数据库、ECC公匙算法函数库,可信服务与管理模块36用于TCM管理、可信服务、主动度量、端口控制。TCM COS的运行流程如图4所示。
在一个实施例中,可选的,所述查询用户管理权限包括:获取用户提供的口令,配合TCM对用户进行密码和绑定关系验证,确定用户管理权限。
如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
在一个实施例中,可选的,所述查询用户管理权限包括:获取用户生物特征,基于所述生物特征应用TCM识别用户身份,确定用户管理权限。
如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
在一个实施例中,可选的,所述查询用户管理权限包括:基于USB key识别用户身份,应用TCM确定用户管理权限。
如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
在一个实施例中,可选的,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
根据Hi=H(Hprev,Ni)对所述PLC程序进行哈希计算得到第一hash值,其中H代表哈希计算函数,Hi代表度量值,Hprev代表前一轮的度量值,Ni代表所述PLC程序。
本实施例的基于TCM构建的内核度量装置,拦截需要运行的PLC程序,查询PLC程序是否属于预存的可信白名单,如果属于则查询存储于本地TCM 寄存器的PLC程序的完整性基准值,如果不属于则拒绝执行PLC程序,基于 TCM芯片对PLC程序进行哈希计算得到度量值,比较度量值与完整性基准值是否一致,如果一致则运行PLC程序,如果不一致则查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用hash值更新完整性基准值,如果用户无管理员权限,则拒绝执行PLC程序,并对PLC程序进行可信恢复。从而验证需要执行的PLC程序属于白名单后,对PLC程序运行过程进行动态可信度量,防止执行过程中出现篡改等风险,提高PLC程序的安全性。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于TCM芯片的PLC可信度量方法,其特征在于,所述方法应用于可信密码模块TCM芯片,所述方法包括:
S1、拦截需要运行的可编程逻辑控制器PLC程序,查询所述PLC程序是否属于预存的可信白名单,如果属于则执行S2,如果不属于则拒绝执行所述PLC程序;
S2、查询存储于本地TCM寄存器的所述PLC程序的完整性基准值;
S3、基于所述TCM芯片对所述PLC程序进行哈希计算得到度量值,比较所述度量值与所述完整性基准值是否一致,如果一致则运行所述PLC程序,如果不一致则执行S4;
S4、查询用户管理权限,如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
2.根据权利要求1所述的方法,其特征在于,S1包括:
基于TCM的HASH算法将需要的执行文件加入所述可信白名单;
调用TCM的HASH算法对所述PLC程序执行文件进行度量计算,得到对应的文件预期值并存储;
当所述PLC程序需要运行时,如果所述PLC程序执行文件不在可信白名单中,则禁止执行所述PLC程序;
基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,在HOOK点对可执行文件进行哈希运算得到度量值,将所述度量值与所述预期值的比对,如果比对失败则禁止执行所述PLC程序。
3.根据权利要求1或2所述的方法,其特征在于,根据所述PLC程序每一页内容进行度量,计算得到所述完整性基准值。
4.根据权利要求1或2所述的方法,其特征在于,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
基于TCM芯片应用TCM COS对所述PLC程序每一页内容进行哈希计算得到度量值。
5.根据权利要求1或2所述的方法,其特征在于,所述查询用户管理权限包括:
获取用户提供的口令,配合TCM对用户进行密码和绑定关系验证,确定用户管理权限;
或者,获取用户生物特征,基于所述生物特征应用TCM识别用户身份,确定用户管理权限;
或者,基于USB key识别用户身份,应用TCM确定用户管理权限。
6.根据权利要求1或2所述的方法,其特征在于,所述基于TCM芯片对所述PLC程序进行哈希计算得到度量值包括:
根据Hi=H(Hprev,Ni)对所述PLC程序进行哈希计算得到第一hash值,其中H代表哈希计算函数,Hi代表度量值,Hprev代表前一轮的度量值,Ni代表所述PLC程序。
7.一种基于TCM芯片的PLC可信度量系统,其特征在于,包括基于TCM构建的用户安监模块、基于TCM构建的内核度量模块;
所述用户安监模块包括:
度量对象收集单元,用于收集所述PLC程序的用户控制逻辑;
度量值定义单元,用于根据哈希算法确定所述用户控制逻辑的度量值;
预期值收集单元,用于存储所述度量值;
动态度量进程单元,用于管理所述PLC程序进程;
所述内核度量模块包括:
度量程序单元,用于对所述PLC程序进行度量,计算得到hash值,将所述hash值与所述度量值比对,如果一致,则所述PLC程序未被修改,执行所述PLC程序;根据变量的地址获取变量的变量值,判断所述变量值是否超过预设范围,判定所述PLC程序进程的状态是否合法;
日志管理单元,用于根据PLC时间模块,记录度量结果,并将所述度量结果发送至所述内核度量模块,使得所述内核度量模块将所述度量结果显示于液晶显示屏上或传递给其他装置或软件;
进程控制单元,用于所述PLC程序进程的状态不合法时,根据用户操作发出控制命令,对所述PLC程序进程进行管控。
8.根据权利要求5所述的装置,其特征在于,所述度量值定义单元确定的所述度量值对应所述PLC程序的每一页;
所述度量程序单元,用于根据所述PLC程序每一页内容进行度量,计算得到所述hash值。
9.一种基于TCM构建的内核度量装置,其特征在于,所述内核度量装置接收监控设备发送的进程pid、策略信息、通知告警信息;所述进程pid为被动态度量的PLC程序的程序进程号;所述策略信息为所述PLC程序进程的程序的度量值,所述hash值对应所述PLC程序的每一页;所述通知警告信息为所述监控设备返回的消息,以及用户发送的对所述PLC程序进程的控制信息;
所述装置执行以下步骤:S1、拦截需要运行的可编程逻辑控制器PLC程序,查询所述PLC程序是否属于预存的可信白名单,如果属于则执行S2,如果不属于则拒绝执行所述PLC程序;
S2、查询存储于本地TCM寄存器的所述PLC程序的完整性基准值;
S3、基于TCM芯片对所述PLC程序进行哈希计算得到度量值,比较所述度量值与所述完整性基准值,如果一致则运行所述PLC程序,如果不一致则执行S4;
S4、获取用户管理权限,如果用户有管理员权限,则计算得到hash值,应用所述hash值更新所述完整性基准值;如果用户无管理员权限,则拒绝执行所述PLC程序,并对所述PLC程序进行可信恢复。
10.根据权利要求9所述的装置,其特征在于,S1包括:
基于TCM的哈希算法将需要的执行文件加入所述可信白名单;
调用TCM的哈希算法对所述PLC程序执行文件进行度量计算,得到对应的文件预期值并存储;
当所述PLC程序需要运行时,如果执行文件不在可信白名单中,则禁止执行所述PLC程序;
基于Linux的HOOK机制在所述PLC程序执行过程中设置HOOK点,在HOOK点对可执行文件进行哈希运算得到度量值,将所述度量值与所述预期值的比对,如果比对失败则禁止执行所述PLC程序。
CN201911393078.3A 2019-12-30 2019-12-30 基于tcm芯片的plc可信度量方法、系统及度量装置 Pending CN111177708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911393078.3A CN111177708A (zh) 2019-12-30 2019-12-30 基于tcm芯片的plc可信度量方法、系统及度量装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911393078.3A CN111177708A (zh) 2019-12-30 2019-12-30 基于tcm芯片的plc可信度量方法、系统及度量装置

Publications (1)

Publication Number Publication Date
CN111177708A true CN111177708A (zh) 2020-05-19

Family

ID=70655976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911393078.3A Pending CN111177708A (zh) 2019-12-30 2019-12-30 基于tcm芯片的plc可信度量方法、系统及度量装置

Country Status (1)

Country Link
CN (1) CN111177708A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113219895A (zh) * 2021-05-10 2021-08-06 上海交通大学宁波人工智能研究院 一种使能边缘控制器安全可信的装置和方法
CN113438654A (zh) * 2021-06-23 2021-09-24 杭州电子科技大学 一种plc程序防盗取装置及防盗方法
CN113626772A (zh) * 2021-09-03 2021-11-09 大唐高鸿信安(浙江)信息科技有限公司 一种进程的动态可信度量方法、装置、系统及终端
CN114818012A (zh) * 2022-06-29 2022-07-29 麒麟软件有限公司 基于白名单列表的Linux文件完整性度量方法
CN115081034A (zh) * 2022-07-21 2022-09-20 南方电网数字电网研究院有限公司 多重冗余方式实现的可信处理器芯片及片内可信度量方法
CN115906100A (zh) * 2022-11-29 2023-04-04 江苏云涌电子科技股份有限公司 一种确保微控制单元固件可信的系统及方法
CN117195205A (zh) * 2023-11-06 2023-12-08 西安热工研究院有限公司 可信dcs上位机程序动态验证方法、系统、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436566A (zh) * 2012-01-12 2012-05-02 冶金自动化研究设计院 一种动态可信度量方法及安全嵌入式系统
CN102945343A (zh) * 2012-09-25 2013-02-27 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN104298917A (zh) * 2014-11-14 2015-01-21 北京航空航天大学 一种基于tpm的虚拟机内应用程序完整性度量方法
CN104517057A (zh) * 2014-12-22 2015-04-15 中国人民解放军信息工程大学 基于可信计算的软件混合度量方法
CN104573516A (zh) * 2014-12-25 2015-04-29 中国科学院软件研究所 一种基于安全芯片的工控系统可信环境管控方法和平台
CN105912929A (zh) * 2016-04-08 2016-08-31 山东超越数控电子有限公司 一种基于国产tcm的动态度量方法
CN106775716A (zh) * 2016-12-15 2017-05-31 中国科学院沈阳自动化研究所 一种基于度量机制的可信plc启动方法
CN108229132A (zh) * 2017-12-27 2018-06-29 北京和利时系统工程有限公司 一种安全启动方法和装置、终端

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436566A (zh) * 2012-01-12 2012-05-02 冶金自动化研究设计院 一种动态可信度量方法及安全嵌入式系统
CN102945343A (zh) * 2012-09-25 2013-02-27 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN104298917A (zh) * 2014-11-14 2015-01-21 北京航空航天大学 一种基于tpm的虚拟机内应用程序完整性度量方法
CN104517057A (zh) * 2014-12-22 2015-04-15 中国人民解放军信息工程大学 基于可信计算的软件混合度量方法
CN104573516A (zh) * 2014-12-25 2015-04-29 中国科学院软件研究所 一种基于安全芯片的工控系统可信环境管控方法和平台
CN105912929A (zh) * 2016-04-08 2016-08-31 山东超越数控电子有限公司 一种基于国产tcm的动态度量方法
CN106775716A (zh) * 2016-12-15 2017-05-31 中国科学院沈阳自动化研究所 一种基于度量机制的可信plc启动方法
CN108229132A (zh) * 2017-12-27 2018-06-29 北京和利时系统工程有限公司 一种安全启动方法和装置、终端

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113219895A (zh) * 2021-05-10 2021-08-06 上海交通大学宁波人工智能研究院 一种使能边缘控制器安全可信的装置和方法
CN113219895B (zh) * 2021-05-10 2022-06-10 上海交通大学宁波人工智能研究院 一种使能边缘控制器安全可信的装置和方法
CN113438654A (zh) * 2021-06-23 2021-09-24 杭州电子科技大学 一种plc程序防盗取装置及防盗方法
CN113626772A (zh) * 2021-09-03 2021-11-09 大唐高鸿信安(浙江)信息科技有限公司 一种进程的动态可信度量方法、装置、系统及终端
CN114818012A (zh) * 2022-06-29 2022-07-29 麒麟软件有限公司 基于白名单列表的Linux文件完整性度量方法
CN115081034A (zh) * 2022-07-21 2022-09-20 南方电网数字电网研究院有限公司 多重冗余方式实现的可信处理器芯片及片内可信度量方法
CN115081034B (zh) * 2022-07-21 2022-11-25 南方电网数字电网研究院有限公司 多重冗余方式实现的可信处理器芯片及片内可信度量方法
CN115906100A (zh) * 2022-11-29 2023-04-04 江苏云涌电子科技股份有限公司 一种确保微控制单元固件可信的系统及方法
CN117195205A (zh) * 2023-11-06 2023-12-08 西安热工研究院有限公司 可信dcs上位机程序动态验证方法、系统、设备及介质
CN117195205B (zh) * 2023-11-06 2024-01-26 西安热工研究院有限公司 可信dcs上位机程序动态验证方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN111177708A (zh) 基于tcm芯片的plc可信度量方法、系统及度量装置
US11176255B2 (en) Securely booting a service processor and monitoring service processor integrity
US10397230B2 (en) Service processor and system with secure booting and monitoring of service processor integrity
US11093258B2 (en) Method for trusted booting of PLC based on measurement mechanism
CA3006003C (en) Dual memory introspection for securing multiple network endpoints
CN105069353B (zh) 一种基于Docker的可信容器安全加固方法
TWI559166B (zh) 應用程式的威脅程度評估
US20190363894A1 (en) Method and system for protecting computing devices from malwares
US9436827B2 (en) Attesting a component of a system during a boot process
US10956575B2 (en) Determine malware using firmware
US9129103B2 (en) Authenticate a hypervisor with encoded information
CN109076063A (zh) 在云环境中保护动态和短期虚拟机实例
US10915632B2 (en) Handling of remote attestation and sealing during concurrent update
US9154299B2 (en) Remote management of endpoint computing device with full disk encryption
EP2831787A1 (en) Method and system for preventing and detecting security threats
CN100390753C (zh) 终端控制装置以及终端控制方法
US9930064B1 (en) Network management security and protection system
KR20200041639A (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
US20200244461A1 (en) Data Processing Method and Apparatus
CN104243457A (zh) 移动终端的可信性衡量方法及系统
WO2015131607A1 (zh) 可信环境创建方法和装置及基站异常恢复方法和装置
Powers et al. Whitelist malware defense for embedded control system devices
WO2023029835A1 (zh) 内核线程的保护方法、终端和计算机可读存储介质
CN116956276A (zh) 异常行为的校验方法、装置和存储介质及电子设备
Persson Improving smartphone security with remote attestation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200519

RJ01 Rejection of invention patent application after publication