CN109993002B - 一种数据完整性保护方法和装置 - Google Patents
一种数据完整性保护方法和装置 Download PDFInfo
- Publication number
- CN109993002B CN109993002B CN201711488506.1A CN201711488506A CN109993002B CN 109993002 B CN109993002 B CN 109993002B CN 201711488506 A CN201711488506 A CN 201711488506A CN 109993002 B CN109993002 B CN 109993002B
- Authority
- CN
- China
- Prior art keywords
- control
- integrity protection
- digest
- control component
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000008859 change Effects 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000000712 assembly Effects 0.000 claims 1
- 238000000429 assembly Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
- G05B23/0224—Process history based detection method, e.g. whereby history implies the availability of large amounts of data
- G05B23/024—Quantitative history assessment, e.g. mathematical relationships between available data; Functions therefor; Principal component analysis [PCA]; Partial least square [PLS]; Statistical classifiers, e.g. Bayesian networks, linear regression or correlation analysis; Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
- G06F16/345—Summarisation for human users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Emergency Protection Circuit Devices (AREA)
Abstract
提供一种数据完整性保护方法和设备,用于保护工业控制系统中控制组件中关键数据,该方法包括:建立一个工业控制系统内的多个控制组件之间的相关性;基于与所述多个控制组件中的第一控制组件具有相关性的其它控制组件的身份特征与数据特征,确定指示所述第一控制组件中的待保护数据完整性的摘要,其中所述数据特征用于标识控制组件中的待保护数据,其中所述第一控制组件是所述多个控制组件中的任一个。由于任一控制组件中数据的安全是建立其它相关控制组件之上,因此可以有效地保护控制组件中的关键数据。
Description
技术领域
本发明涉及工业控制领域,尤其涉及一种保护工业控制系统数据安全的方法和装置。
背景技术
工业控制系统在电力、运输、火灾控制等工业中具有非常重要的作用。在工业控制系统中,通常由控制组件完成工业过程的控制。这些控制组件可包括但不限于:可编程逻辑控制器(PLC)、数据采集与监控系统(SCADA)、统一架构对象链接和嵌入进程控制系统(OPCUA)等。
而在这些控制组件中通常存在二种非常重要的文件,即固件与配置文件。固件作为系统最基础最底层工作的软件,决定着硬件设备的功能及性能。在工业控制系统的运行过程中,一些控制组件的固件需要经常在内部网络中传送或更新,并且多数情况下未经保护或不支持保护,因此这些固件很可能在传输中受损,而且还可能由于会受到恶意攻击而被篡改或被破坏,进而使得整个工业控制系统受到攻击。而配置文件包含着有关控制策略的指令集等关键信息,以确保系统按照预定的策略与进程正常运行,对整个系统的安全至关重要,如果受到损坏或恶意操纵则可能会导致整个工业控制系统崩溃。因此在工业控制系统中对这些控制组件中诸如上述文件等的数据的安全保护至关重要。
目前,通常对数据文件的机密性与完整性的保护采用数字签名,利用数字指纹对文件进行签名并验证。在加密过程中,通常需要产生公钥与私钥对并需要采用来自第三方的数字证书。显然该方案的保障程度取决于对私钥与数字证书的保护,一旦这些信息被截获,那么数字签名就很容易被撤销。
发明内容
有鉴于此,本发明提供一种方法和装置,用以实现对工业控制系统中各控制组件的关键数据的完整性保护。本发明的方案将一个控制组件的安全性与其它控制组件关联起来,通过确定控制组件中待保护数据的完整性来实现对数据保护。
按照本发明第一方面,本发明实施例提供一种方法,包括:建立一个工业控制系统内至少二个控制组件之间的相关性;基于与所述多个控制组件中的第一控制组件具有相关性的其它控制组件的身份特征与数据特征,确定指示所述第一控制组件中的待保护数据完整性的摘要,其中所述数据特征用于标识控制组件中的待保护数据,其中所述第一控制组件是所述多个控制组件中的任一个。由于本发明中任一个控制组件的数据完整性保护的摘要是基于与其具有相关性的其它控制组件的身份特征与数据特征而确定的,而建立控制组件之间的相关性可以是任意规则,因此,如果非法用户希望攻击任一个控制组件中的数据文件,例如固件或配置文件,其必须了解有哪些其它控制组件与该控制组件相关联;而且,即使是知道了与该控制组件关联的其它控制组件,也必须要知道利用了这些相关控制组件的哪些特征来确定的该控制组件的完整性保护摘要。因此对于非法用户完成攻击来说,其所需要的计算量是巨大的,因此可以有效地保护控制组件中的待保护数据。
按照本发明的一个优选方案,确定指示所述第一控制组件中的待保护数据完整性的摘要包括:确定对于第一控制组件特定的第一完整性保护摘要,仅用于指示所述第一控制组件中的待保护数据的完整性,以及确定对于包括所述第一控制组件在内的所述多个控制组件共用的第二完整性保护摘要,用于指示所述多个控制组件中的待保护数据的完整性。利用该方案,当任一个控制组件中的待保护数据受到攻击或损坏时,利用第二完整性保护摘要,可以检测到工业控制系统内的任一个控制组件中的数据发生异常,而利用第一完整性保护摘要则可以确定具体哪个控制组件的受保护数据受到攻击或损坏。
按照本发明的一个优选方案,建立一个工业控制系统内所述多个控制组件之间的相关性包括:对所述多个控制组件进行排序;其中所述确定第一完整性保护摘要进一步包括:基于经过排序的紧邻所述第一控制组件之前的第二控制组件的第一完整性保护摘要以及所述第一控制组件的所述身份特征与所述数据特征,确定所述第一控制组件的第一完整性保护摘要,并同时将所述第一完整性保护摘要存储于紧随所述第一控制组件之后的一个控制组件中,其中所述第二控制组件的第一完整性保护摘要是基于所述第一控制组件之前的所有其它控制组件的身份特征与数据特征确定的。利用该方案,由于仅基于事先确定的前一控制组件的完整性保护摘要来确定当前控制组件的完整性保护摘要,不但简化了计算量,同时仍满足了将当前控制组件的安全性建立在与其相关的控制组件的特征之上。
按照一个实施例,基于所述多个控制组件中每一个控制组件的所述身份特征与所述数据特征,确定所述第二完整性保护摘要并分发给所述多个控制组件中的每一个控制组件。用于标识控制组件中的待保护数据的数据特征可以包括每个控制组件中的待保护数据,例如控制组件的固件或配置文件,还可以进一步包括配置文件或固件的创建时间即时间戳、版本号等信息。因此在工业控制系统中,无论是更换了控制组件(必然导致身份特征变更)或者是修改了文件,利用所述第二完整性保护摘要都可以进行验证。而且通过存储于每个控制组件中,则每个控制组件都可以配置成实现对整个工业控制系统的监控。
按照一个实施例,在基于所有控制组件的身份特征与数据特征确定所述第二完整性保护摘要时包括如下处理:将所述多个控制组件分成至少一个组,基于每个组内的各控制组件的所述身份特征与所述数据特征生成该组控制组件的临时完整性保护摘要;基于所生成的各个组的临时完整性保护摘要确定所述第二完整性保护摘要。由于完整性保护摘要的值取决于分组的规则,因此进一步增加了破解了难度。
按照一个实施例,当有新的控制组件集成到工业控制系统中时,按照本发明的一个优选实施例,执行以下处理:执行重新排序处理,以将该新的控制组件排列在所述多个控制组件之后;基于排在最后的一个控制组件的第一完整性保护摘要,确定该新的控制组件的第一完整性保护摘要,并保存于该新的控制组件,并且作为所述第二完整性保护摘要保存在所述位于排序的起始位置的控制组件中。利用本发明的方案,即使是系统中增加新的控制组件时,也不必对系统结构进行调整,该方案不对系统中其它控制组件的第一完整性保护摘要产生影响,同时仅需要基于原系统中最后一个控制组件的第一完整性保护摘要就可确定新的控制组件的第一完整性保护摘要,从而将该新的控制组件的安全性与其它控制组件关联起来。因此该方案简单、高效,具有良好的伸缩性。
按照一个实施例,在执行数据完整性验证时,执行以下操作:提取所述工业控制系统内所有控制组件中的所述数据特征与所述身份特征;重新确定所述第二完整性保护摘要;如果所重新确定的第二完整性保护摘要与所预先确定的第二完整性保护摘要的不一致,则确定所述工业控制系统内所述多个控制组件中的部分或全部控制组件中的待保护数据发生变化。而且当不一致时,重新确定所述多个控制组件中每一个控制组件的所述第一完整性保护摘要;根据重新确定的各个控制组件的所述第一完整性保护摘要,确定所述多个控制组件中待保护数据发生了变化的控制组件。由于第二完整性保护摘要的唯一性,因此对待保护数据的任何改变均会导致第二完整性保护摘要差异,因此可以快速地判断系统中是否有控制组件的数据文件受到攻击或损坏。同时利用第一完整性保护摘要可以准确地判断出哪个控制组件中的待保护数据发生变化,并进一步可基于所提取的身份特征而向用户报告发生异常的控制组件。
此外,按照一个实施例,本发明的方法还包括:检测对所述第一控制组件中的待保护数据的改变操作,其中所述改变操作将导致在所述第一控制组件中生成更新的待保护数据;响应于所述改变操作,读取所述第二控制组件中的所述第一完整性保护摘要;基于所述第一控制组件的所述身份特征、所述更新的待保护数据的数据特征以及所述第二控制组件的所述第一完整性保护摘要,重新确定所述第一控制组件中的所述第一完整性保护摘要,当所重新确定的第一完整性保护摘要与预先确定的第一完整性保护摘要不相符时,则拒绝所述所述待保护数据的更新。这里的改变操作例如可以利用新的待保护数据,例如配置文件或固件,替换控制组件中原有的待保护数据,或直接对控制组件中的原有的待保护数据进行修改。利用本方案,如果确定所用来替换的待保护数据或修改操作所导致的新的待保护数据(以下统一称为‘更新的待保护数据’)未能通过完整性验证,则可以拒绝替换操作或对原数据的修改,因此可以避免对控制组件中的固件或配置文件的恶意攻击错误载入。
按照一个实施例,本发明的方法包括:维持存储所述工业控制系统内各个控制组件的所述第一完整性保护摘要与所述第二完整性保护摘要的一个列表;当所述第一控制组件的所述身份特征或所述数据特征变化时,重新确定所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的所述第一完整性保护摘要以及所述第二完整性保护摘要;利用所重新确定的所述第一完整性保护摘要以及所述第二完整性保护摘要来更新所述列表中对应所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的相应值。该方案的优点在于,通过利用一个中央节点或控制组件来维持第一完整性保护摘要与第二完整性保护摘要的列表,可以实现对各个控制组件的集中控制与验证,便于维护系统。
按照本发明的第二方面,本发明的实施例提供一种数据完整性保护装置,包括:一个相关性建立模块,用于建立一个工业控制系统内的多个控制组件之间的相关性;一个摘要生成模块,用于基于与所述多个控制组件中的第一控制组件具有相关性的其它控制组件的身份特征与数据特征,确定指示所述第一控制组件中的待保护数据完整性的摘要,其中所述数据特征用于标识控制组件中的待保护数据的特征,其中所述第一控制组件是所述多个控制组件中的任一个。
在一个优选实施例中,所述摘要生成模块包括:用于确定对于第一控制组件特定的第一完整性保护摘要的模块,仅用于指示所述第一控制组件中的待保护数据的完整性,以及用于确定对于包括所述第一控制组件在内的所述多个控制组件共用的第二完整性保护摘要的模块,用于指示所述多个控制组件中的待保护数据的完整性。
在一个优选实施例中,所述相关性建立模块包括:用于对所述多个控制组件进行排序的模块;并且所述摘要生成模块进一步基于经过排序的紧邻所述第一控制组件之前的第二控制组件的第一完整性保护摘要以及所述第一控制组件的所述身份特征与所述数据特征,确定所述第一控制组件的第一完整性保护摘要,并同时将所述第一完整性保护摘要存储于紧随所述第一控制组件之后的一个控制组件中,其中所述第二控制组件的第一完整性保护摘要是基于所述第一控制组件之前的所有其它控制组件的身份特征与数据特征确定的。
在一个优选实施例中,所述摘要生成模块进一步包括将所述多个控制组件中最后一个控制组件的第一完整性保护摘要作为所述第二完整性保护摘要存储于位于所述排序的起始位置的控制组件中的模块。
在一个优选实施例中,所述摘要生成模块进一步包括用于基于所述多个控制组件中每一个控制组件的所述身份特征与所述数据特征,确定所述第二完整性保护摘要并分发给所述多个控制组件中的每一个控制组件的模块。
在一个优选实施例中,所述摘要生成模块进一步包括:一个第一模块,用于将所述多个控制组件分成至少一个组,基于每个组内的各控制组件的所述身份特征与所述数据特征生成该组控制组件的临时完整性保护摘要;以及,一个第二模块,用于基于所生成的各个组的临时完整性保护摘要确定所述第二完整性保护摘要。
在一个优选实施例中,所述摘要生成模块进一步包括:一个提取模块,用于提取所述工业控制系统内所有控制组件中的所述数据特征与所述身份特征;一个第一重新确定模块,用于重新确定所述第二完整性保护摘要;以及一个比较模块,用于如果所重新确定的第二完整性保护摘要与所预先确定的第二完整性保护摘要的不一致,则确定所述工业控制系统内所述多个控制组件中的部分或全部控制组件中的待保护数据发生变化。
在一个优选实施例中,当所重新确定的第二完整性保护摘要与所存储的第二完整性保护摘要不一致时,所述摘要生成模块进一步包括:一个第二重新确定模块,用于重新确定所述多个控制组件中每一个控制组件的所述第一完整性保护摘要;以及一个确定模块,用于根据重新确定的各个控制组件的所述第一完整性保护摘要,确定所述多个控制组件中待保护数据发生了变化的控制组件。
在一个优选实施例中,所述数据完整性保护装置进一步包括:一个检测模块,用于检测对所述第一控制组件中的待保护数据的改变操作,其中所述改变操作将导致在所述第一控制组件中生成更新的待保护数据;一个读取模块,响应于所述改变操作,读取所述第二控制组件中的所述第一完整性保护摘要;以及一个确定模块,用于基于所述第一控制组件的所述身份特征、所述更新的待保护数据的数据特征以及所述第二控制组件的所述第一完整性保护摘要,重新确定所述第一控制组件中的所述第一完整性保护摘要,当所重新确定的第一完整性保护摘要与预先确定的第一完整性保护摘要不相符时,则拒绝所述所述待保护数据的更新。
在一个优选实施例中,所述数据完整性保护装置进一步包括:一个维护模块,用于维持存储所述工业控制系统内各个控制组件的所述第一完整性保护摘要与所述第二完整性保护摘要的一个列表;一个重新确定模块,用于当所述第一控制组件的所述身份特征或所述数据特征变化时,重新确定所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的所述第一完整性保护摘要以及所述第二完整性保护摘要;以及一个更新模块,用于利用所重新确定的所述第一完整性保护摘要以及所述第二完整性保护摘要来更新所述列表中对应所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的相应值。
按照本发明的第三方面,本发明实施例提供一种工业控制系统,包括第一控制组件以及至少一个第二控制组件,其中所述第一控制组件被编程为执行本发明的完整性保护摘要的生成与验证方法。从而在不需要外部设备介入的情况下,可利用工业控制系统本身实现自身的安全保护。此外,按照本发明一个实施例,所述工业控制系统还可以包括一个中央节点,其耦合到所述第一控制组件与第二控制组件,将所述中央节点编程为执行本发明的完整性保护摘要的生成与验证方法。
按照本发明的第四方面,本发明实施例提供一种数据完整性保护装置,包括:至少一个存储器,用于存储可执行指令,以及至少一个处理器,配置成通过执行所述指令来执行本发明的方法来实现数据完整性保护摘要的生成与验证。可选地,数据完整性保护装置可以由中央节点或控制组件来实现。采用中央节点实现时,可以便于对工业控制系统的集中维护,减小各控制组件的负担。而且还可以对关键工艺流程中的关键组件的实时监控,避免重大故障的发生。而利用控制组件实现时可以设计成对工业控制系统中各控制组件的关键数据的定期维护与检查。
按照本发明的第五方面,本发明实施例提供一种机器可读介质,包括:其中存储有指令,当由机器执行时使机器执行本发明的方法。
附图说明
图1为示出了根据一个实施例的工业控制系统内各控制组件之间相关性示意图;
图2示出了根据一个实施例的完整性保护系统示意图;
图3示出了根据一个实施例的建立工业控制系统内各控制组件之间相关性的示意图;
图4示出根据一个实施例的分组计算完整性保护摘要的示意图。
图5示出根据一个实施例的计算完整性保护摘要的流程图。
图6示出根据另一个实施例的计算完整性保护摘要的流程图。
图7-8示出根据另一个实施例的分组计算完整性保护摘要的示意图。
图9示出根据一个实施例的验证完整性保护摘要的流程图。
图10示出根据一个实施例的数据完整性保护装置的示意图。
其中附图标记列表:
N1,N2,N3…Nn:工业控制系统中的第1、2、3…n个控制组件,
NL,NM:新增加到工业控制系统中的第L、M个控制组件,
300:工业控制系统的根哈希值,
301:对所有控制组件执行哈希运算,
3001,3002,…300n-1:各控制组件N1,N2…Nn-1的哈希值,
4001,4002,4003,…400n:控制组件N1,N2…Nn的的身份特征与数据特征。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
在工业控制系统中,通常在生产线上存在多个控制组件(或者称为控制节点),例如PLC、OPC UA以及SCADA等。为了更好地保护这些控制组件中的数据安全,例如防止损坏的固件、配置文件被使用或固件、配置文件被篡改,本发明提出的数据完整性保护方案将一个控制组件的数据安全建立在与其相关的其它控制组件的特征之上,利用其它控制组件的固有特征信息来生成指示当前控制组件中的待保护数据的完整性的摘要。这里需要指出的是,这里的‘相关性’并不是必须指在生产线上的各控制组件之间的必然的操作流程上的关联,而是可以预先任意指定。
完整性摘要生成处理
按照本发明,为建立工业控制系统及系统中每个控制组件的完整性保护摘要,需要建立工业控制系统内各个控制组件之间的相关性。如图1所示,作为示例,以网格形式示出工业控制系统(ICS)中的n个控制组件,以其中控制组件N4为例,与其具有相关性的控制组件既可以选择性定义为N1、N3、N5,也可以选择地定义为N3、N2、N1,也可以选择为前后相邻的二个控制组件N3、N5。而在按照预定选择方式,确定了控制组件N4的相关控制组件之后,就可以基于这些相关控制组件的固有特征来计算控制组件N4的、用于指示制组件N4中的待保护数据的完整性的指纹或摘要。这里需要指出的是,用于计算N4的指纹所依据的其它相关控制组件的固有特征包括但不限于身份特征或数据特征,也可以是基于这些身份特征与数据特征而生成的其它特征信息。身份特征是指用于唯一地识别控制组件的标识特征,例如设备ID、网络MAC地址等。而数据特征则可用于标识控制组件中的待保护数据,例如可以是唯一地标识控制组件中的待保护数据的特征,这里的待保护数据可以是固件以及配置文件等,而数据特征可以是固件/配置文件的内容、版本号和/或时间戳等的一种或几种的组合,这里的时间戳可以是指固件生成时间或配置文件的建立或修改时间。在以下说明中,作为一个示例,采用固件内容、配置文件的内容、版本号以及时间戳的组合来表示控制组件的数据特征。
此外,在本发明中,用于指示待保护数据的完整性的指纹或摘要可以采用本领域已知的技术生成,例如采用散列函数对控制组件的身份特征与文件特征计算哈希值来实现,这样的散列函数例如可以是本领域已知的任何单向函数,例如MD5,DES,RSA等。在以下公开内容中,均以哈希值为例来说明本发明的实施例。
图2公开了根据一个实施例的数据完整性保护系统示意图。如图所示,该系统包括中央节点N0以及控制组件N1、N2、N3、…Nn。该中央节点N0可通过有线或无线方式连接到每一个控制组件,并且可以访问每个控制组件中存储的信息,该信息包括每个控制组件的身份特征以及数据特征。由中央节点N0对这n个控制组件进行排序,如图中N1、N2、……Nn之间的箭头所示。经过排序后,每个控制组件与排在其前面的所有控制组件相关。随后,中央节点N0可以基于N1的自身的特征来计算N1的哈希值,以此作为N1的完整性保护摘要。中央节点N0可以基于N1的特征来计算N2的哈希值,以此作为N2的完整性保护摘要。中央节点N0可以基于N1、N2的特征来计算N3的哈希值,以此作为N3的完整性保护摘要。中央节点N0可以基于N1、N2、N3的特征来计算N4的哈希值,以此作为N4的完整性保护摘要。以此类推,最后一个控制组件Nn的哈希值则是基于前面所有控制组件的特征来计算的。显然,对于越靠后的控制组件,其计算时所依赖的前面的控制组件数量越多,因此计算量越大,但同时也增加了数据被篡改的难度。例如,相比于控制组件N2仅需要N1的特征信息,计算N4控制组件的完整性保护摘要则不但需要N1、N2的信息,还需要N3的信息,因此增加了破解的难度。
为了避免因计算量过大而增加了中央节点N0的负担,同时不降低安全程度,在本发明的优选示例中,中央节点利用针对前一控制组件的生成的完整性保护摘要来计算后一控制组件的完整性保护摘要。如图3所示,在本例中以标记400统一地示出了各控制组件的身份特征以及控制组件中作为待保护数据的固件或配置文件的数据特征。中央节点N0利用哈希函数对控制组件N1的身份特征例如ID以及数据特征例如固件内容、配置文件内容及其时间戳T1、版本号V1(如图中标记4001所示)计算哈希值H(N1),即H(N1)=Hash(T(N1)∣T(N1)),这里T(N1)是身份特征例如ID 1以及固件内容FW 1、配置文件内容CF 1和其时间戳T1、版本号V1的函数,例如按照一定规则由ID 1以及固件/配置文件的内容及其时间戳T1、版本号V1生成的符号表述或列表。中央节点N0利用单向哈希函数将该符号表述或列表生成与数据文件生成时间相关联的完整性保护摘要H(N1),并存储该哈希值H(N1)作为第一个控制组件N1的完整性保护摘要。作为一个选择,第一个控制组件N1的哈希值H(N1)还可存储于第一控制组件N1中,同时也存储于第二控制组件N2中,如图中3001所示。
随后针对控制组件N2,中央节点N0对第一个控制组件N1的哈希值H(N1)以及对控制组件N2的身份特征ID2以及固件内容FW 2、配置文件内容CF 2及其时间戳T2、版本号V2(如图中标记4002所示)计算哈希值H(N2),即H(N2)=Hash(H(N1)∣T(N2))。然后,中央节点N0将第二个控制组件N2的哈希值H(N2)作为第二控制组件N2的完整性保护摘要存储于第二控制组件N2中,同时也可以存储于第二控制组件N3中,如图中3002所示。中央节点N0重复上述过程,直到最后一个节点Nn,中央节点N0在利用H(Nn)=Hash(H(Nn-1)∣T(Nn))计算出Nn的哈希值后,作为最一个组件Nn的完整性保护摘要,同时最一个控制组件Nn还存储了前一个控制组件Nn-1的哈希值300n-1。由于每个控制组件的身份特征及数据特征的差异以及哈希函数的特点,因此为每个控制组件所生成的哈希值H(N)各不相同。此外,由于每个控制组件的哈希值H(N)实质上均是基于排在前面的各控制组件的身份特征与数据特征经过逐级哈希运算得到,因此,位于前面的任一个控制组件的数据变化均会导致在后的各个控制组件的哈希值差异,即数据完整性发生变化。
在另一实施例中,中央节点N0除了为每个控制组件生成其专门的完整性保护摘要H(N)之外,还可以进一步为工业控制系统中所有的控制组件生成共用的完整性保护摘要H(C),该H(C)反映了所有控制组件的特征,特别是各个组件中的待保护数据。为此,作为一个示例,中央节点N0将最后一个控制组件Nn的哈希值H(Nn)作为该工业控制系统的完整性保护摘要H(C),并将其存储到第一个组件N1中,此时的第一组件也称为头节点,并且所存储的哈希值记为根哈希值,如图中300所示。而在另一示例中,如图3所示,中央节点N0可以对所有的n个控制组件的身份特征与数据特征重新执行哈希运算,如301所示。中央节点可以将计算后的完整性保护摘要H(C)分发给控制组件N1,N2…Nn中的一个或全部,以便后期执行数据完整性校验。
图4示出根据本发明一个实施例的中央节点N0利用分组运算处理方法来基于所有的n个控制组件的身份特征与数据特征计算H(C)的示例。为便于说明,图中示出了共8个控制组件。如图所示,中央节点首先进行第一次分组,将这8个组件两两分组,共分成四组。随后中央节点分别对每组的二个控制组件的身份特征与数据特征计算其哈希值,得到第一层的各组的临时特征哈希值Hash(N1∣N2)、Hash(N3∣N4)、Hash(N5∣N6)、Hash(N7∣N8)。随后,中央节点再次执行迭代哈希运算,对得到的各组的哈希值进行第二次分组,并对第一层中第一组中临时哈希值Hash(N1∣N2)、Hash(N3∣N4)以及第二组临时哈希值Hash(N5∣N6)、Hash(N7∣N8)再次执行哈希计算,从而得到第二层的临时哈希值:
Hash(((Hash(N1∣N2))∣(Hash(N3∣N4))),以及
Hash(((Hash(N5∣N6))∣(Hash(N7∣N8)))。
最后,中央节点基于第二层的二个哈希值迭代计算出一个根哈希值H(C)=Hash((Hash(((Hash(N1∣N2))∣(Hash(N3∣N4))))∣(Hash(((Hash(N5∣N6))∣(Hash(N7∣N8)))))。可以看到,最终计算出的根哈希值H(C)包含了所有控制组件的特征,因此任一个控制组件中的待保护数据的变化均会导致所计算出的根哈希值的差异,即数据的完整性遭到破坏。
图5示例性地示出了为控制组件生成完整性保护摘要的流程图。如图所示,首先在步骤S501,对工业控制系统内的多个控制组件进行排序,以此来指定每一个控制组件的完整性依赖于排在前面的一个或多个控制组件。在步骤S502,针对当前的第m个控制组件(m≤n),读取在先的控制组件的特征。这里的特征可以是作为控制组件固有特征的身份特征和数据特征,在这种情况下,所读取的在先的控制组件的特征应当是当前组件之前的所有m-1个相关控制组件的特征。或者,所读取的在先的控制组件的特征也可以是完整性保护摘要,在这种情况下,则仅需要读取紧邻该当前控制组件的第m-1个组件的完整性保护摘要。
在步骤S503,基于所读取的在先控制组件的特征以及当前控制组件的身份特征与数据特征计算该当前控制组件的哈希值。在所读取的在先的控制组件的特征是当前组件之前的所有m-1个相关控制组件的身份特征与数据特征的情况下,可以利用前面描述的分组运算方法来计算当前控制组件的哈希值。而在所读取的特征是第m-1个控制组件的哈希值的情况下,则直接对前一个控制组件的哈希值H(Nm-1)与当前控制组件的身份特征与数据特征计算该当前控制组件的哈希值H(Nm)。
在步骤S504,将计算的当前控制组件的哈希值H(Nm)存储于控制组件m和控制组件m+1中。随后在步骤S505,确定当前控制组件是否是最后一个组件。如果还没有到达最后一个组件,则将所计算的当前控制组件的哈希值H(Nm)存储于下一个控制组件m+1中,并继续计算下一个控制组件即第m+1个组件的哈希值,并回到步骤S502读取第m+1个组件的特征,以重复执行步骤S502至步骤S505,直到计算出最后一个控制组件的哈希值H(Nn)。如果在步骤505确定已经到达最后一个控制组件并计算出了哈希值H(Nn),则进入步骤506。在该步骤中将哈希值H(Nn)作为根哈希值存储于第一个控制组件N1中,并且处理过程结束。可选地,在步骤506中,也可以通过执行前面描述的分组运算处理,对所有的n个组件的身份特征与数据特征,执行哈希运算,从而确定一个不同的根哈希值H(C),并将该根哈希值H(C)分发给第一个或所有的控制组件。
增加新控制节点处理
图6示出了当有新的控制组件添加到工业控制系统时生成安全性保护摘要的流程图。如图所示,在步骤S601,将新的控制组件加入到原控制系统的n个控制组件集合中。在步骤S602,建立该新的控制组件与其它控制组件的相关性,在本例中,将该新的组件排在n个组件的末端,并指定为第n+1个组件。然后在步骤S603,计算该第n+1个组件的第一完整性保护摘要,例如通过对第n个组件的第一完整性保护摘要与第n+1个组件的身份特征与数据特征执行哈希运算H(Nn+1)=Hash(H(Nn)∣T(Nn+1)),从而生成该第n+1个组件的第一完整性保护摘要。然后,在步骤S604,利用H(Nn+1)来更新存储在控制组件N1中的根哈希值300,即第二完整性保护摘要。
在另一个实施例中,当有新的控制组件添加到工业控制系统时也可以采用如前所述的分组运算处理来计算该工业控制系统的根哈希值RH。如图7所示,作为示例,其示出工业控制系统中存在四个控制组件的情况,这四个控制组件经过二层迭代的哈希运算得到控制系统的根哈希值H(C)=Hash(((Hash(N1∣N2))∣(Hash(N3∣N4)))。因此对于新加入的控制组件,同样需要执行二次哈希运算。如图7所示,当仅有一个新控制组件(以NM表示)希望加入到该工业控制系统时,利用该新控制组件的特征与其自身执行哈希运算,得到第一层哈希计算值Hash(NM∣NM)。然后,再对第一层哈希计算值Hash(NM∣NM)执行其自身的第二层哈希运算,即Hash((Hash(NM∣NM))∣(Hash(NM∣NM)))。最后,对该新控制组件的第二层哈希值与工业控制系统的原根哈希值再次执行哈希运算即
H’(C)=Hash((Hash(((Hash(N1∣N2))∣(Hash(N3∣N4))))∣(Hash((Hash(NM∣NM))∣(Hash(NM∣NM)))))。利用该新的哈希值H’(C)更新原H(C),作为新的工业控制系统的根哈希值300。
在另一个实施例中,如图8所示,当有二个新控制组件(如NL、NM表示)希望加入到该工业控制系统时,则将该新控制组件的特征分成一组,计算二者的哈希值,得到第一层哈希计算值Hash(NM∣NL)。然后,再对第一层哈希计算值Hash(NM∣NL)执行其自身的第二层哈希运算,即Hash((Hash(NM∣NL))∣(Hash(NM∣NL)))。最后,对这二个新控制组件的第二层哈希值与工业控制系统的原根哈希值再次执行哈希运算即
H’(C)=Hash((Hash(((Hash(N1∣N2))∣(Hash(N3∣N4))))∣(Hash((Hash(NM∣NL))∣(Hash(NM∣NL))))。利用该新的哈希值H’(C)更新原H(C),作为新的工业控制系统的根哈希值300。不难理解,对于增加多个新控制组件的情形,仍可按照上述分组方式进行处理。
完整性验证处理
在中央节点N0为每个控制组件N1-Nn生成专属的第一完整性保护摘要与共用的第二完整性保护摘要后,中央节点N0或控制组件就可以利用这些完整性保护摘要来检验所要保护的数据的完整性。
在一个实施例中,如图4所示,当希望验证生产线位置N4处的配置文件或固件等数据是否发生变化或损坏时,控制组件N4根据用户的指示利用其所存储的前一控制组件N3中的第一完整性保护摘要与控制组件N4中包含待保护数据的数据特征与身份特征,重新计算控制组件N4的第一完整性保护摘要。如果重新计算的第一完整性保护摘要与所存储的第一完整性保护摘要不一致,则表明控制组件N4中的数据发生变化,例如损坏或篡改。上述利用第一完整性保护摘要来验证控制组件N4中数据是否发生变化的过程是由控制组件N4自己来完成,显然也可以由中央节点来实现。而且,按照本发明的实施例,由控制组件执行验证可以是在控制组件检测到对其中的固件或配置文件的改变操作时而触发,例如当检测到正试图利用新的数据替换控制组件中的原有的待保护数据,或当检测到试图修改原有的待保护数据时。并且可以根据验证结果而选择接受或拒绝例如替换或修改操作,或者是在验证未通过时向控制中心或用户发出报警提示,从而可以避免对控制组件中待保护数据的非授权或错误操作。
在另一实例中,也可以由中央节点通过验证工业控制系统的第二完整性保护摘要来确定是否工业控制系统内的数据发生变化。如图9所示,在步骤S901,中央节点提取工业控制系统内所有控制组件中的包含待保护数据的数据特征与身份特征。在步骤S902,中央节点重新计算系统的第二完整性保护摘要例如根哈希值300。在步骤S903,中央节点判断所重新计算的第二完整性保护摘要与所存储的第二完整性保护摘要是否一致;如果一致,则表明系统中的各控制组件及其固件或配置文件正常,没有损坏或修改,则在步骤S906向用户输出系统正常的信号;如果不一致,则表明工业控制系统内的一个或多个控制组件的数据发生变化,中央节点可以进一步确定具体是哪个控制组件的数据有变化。为此,中央节点在步骤S904进一步重新计算各个控制组件的第一完整性保护摘要,随后在步骤S905执行匹配处理,即将重新计算的第一完整性保护摘要与所存储的对应控制组件的第一完整性保护摘要进行匹配,如果一致,则表明该控制组件正常;如果不一致,则表明该控制组件中的数据发生了变化,中央节点可以根据所提取的身份特征信息而确定发生数据变化的控制组件,并进而向用户通报发生数据异常的控制组件。
由于任一个控制组件中的数据发生变化均会导致第二完整性保护摘要不一致,因此,中央节点应对工业控制系统中所有的控制组件的数据完整性进行验证,以找出所有可能发生数据变化的控制组件。为此,当例如确定出第m个控制组件中的文件数据异常后,中央节点可以进一步利用正常的数据替换第m个控制组件中的异常的文件,并进而再次计算第二完整性保护摘要。如果与所存储的第二完整性保护摘要一致,则表明整个工业控制系统中的所有控制组件的数据均已经正常。如果仍不一致,则表明系统中的还有其它控制组件的数据存在异常。因此,则从第m+1个控制组件开始,重复上述过程,计算各控制组件的第一完整性保护摘要,从而确定出所有可能发生数据异常的控制组件。在本发明的一个优选实施例中,由于后一个控制组件均存储了前一个控制组件的第一完整性保护摘要,因此,中央节点也可以指示每个控制组件基于所存储的在前的控制组件的第一完整性保护摘要,对其固件或配置文件自行执行第一完整性保护摘要的计算与比较,并将对比结果报告给中央节点。从而中央节点可以快速地获知所有出现异常的控制组件的信息。
本发明的中央节点N0既可以独立于工业控制系统,也可以由工业控制系统中与控制组件N1,N2,…Nn不同的其它组件来实现。利用独立于工业控制系统的中央节点实时地计算工业控制系统的第二完整性保护摘要或各关键控制组件的第一完整性保护摘要,可以实现对生产线上控制组件的实时监控,因此特别适用于关键工艺流程段,即对控制组件中固件或配置文件的轻微更改或破坏会造成工艺流程中止或错误运行;也适用于存在人身伤害可能性的工艺流程段,例如天车、调臂控制,轮机转速控制等场合。此外,工业控制系统的第二完整性保护摘要与第一完整性保护摘要也可以配置成由系统中的控制组件定期地确定,从而实现对工业控制系统中的各控制组件的一般性维护。
以上结合各实例描述了本发明的各优选实施例。不难理解,这里所公开的方法或中央节点可以采用软件、硬件或软硬件结合的方式实现。图10示出根据本发明一个实施例的以程序模块或硬件模块实现的数据完整性保护装置,如图所示,该数据完整性保护装置包括一个相关性建立模块101以及一个摘要生成模块102。相关性建立模块101用于建立工业控制系统内的多个控制组件之间的相关性,例如对所述n个控制组件进行排序,从而使得为每个控制组件生成的数据完整性的摘要仅与排在该控制组件之前的一个或全部控制组件相关。摘要生成模块102用于基于与所述n个控制组件中的任一控制组件(例如所述n个控制组件中的第k个控制组件)具有相关性的其它控制组件的身份特征与数据特征,确定指示所述第k个控制组件中的待保护数据完整性的摘要。
在一个实施例中,所述摘要生成模块102可包括:用于确定对于第一控制组件特定的第一完整性保护摘要的模块,仅用于指示所述第一控制组件中的待保护数据的完整性,以及用于确定对于包括所述第一控制组件在内的所述n个控制组件共用的第二完整性保护摘要的模块,用于指示所述n个控制组件中的待保护数据的完整性。在一个实施例中,所述相关性建立模块101包括用于对所述n个控制组件进行排序的模块;并且所述摘要生成模块102进一步基于经过排序的紧邻控制组件k之前的第k-1个控制组件的第一完整性保护摘要以及所述控制组件k的身份特征与数据特征,确定所述控制组件k的第一完整性保护摘要,并同时将所述第一完整性保护摘要存储于紧随所述第一控制组件之后的第k+1个控制组件中,其中所述第k-1个控制组件的第一完整性保护摘要是基于第1至第k-1个控制组件的身份特征与数据特征确定的。在一个实施例中,所述摘要生成模块102进一步包括将所述n个控制组件中最后一个控制组件的第一完整性保护摘要作为所述第二完整性保护摘要存储于位于所述排序的起始位置的控制组件中的模块。
在一个实施例中,所述摘要生成模块102进一步包括用于基于所述n个控制组件中每一个控制组件的所述身份特征与所述数据特征,确定所述第二完整性保护摘要并分发给所述n个控制组件中的每一个控制组件的模块。在一个实施例中,所述摘要生成模块102进一步包括一个第一模块,用于将所述n个控制组件分成至少一个组,基于每个组内的各控制组件的所述身份特征与所述数据特征生成该组控制组件的临时完整性保护摘要;以及,一个第二模块,用于基于所生成的各个组的临时完整性保护摘要确定所述第二完整性保护摘要。在一个实施例中,所述摘要生成模块102进一步包括一个提取模块,用于提取所述工业控制系统内所有控制组件中的所述数据特征与所述身份特征;一个第一重新确定模块,用于重新确定所述第二完整性保护摘要;以及一个比较模块,用于如果所重新确定的第二完整性保护摘要与所预先确定的第二完整性保护摘要的不一致,则确定所述工业控制系统内所述n个控制组件中的部分或全部控制组件中的待保护数据发生变化。在一个实施例中,当所重新确定的第二完整性保护摘要与所存储的第二完整性保护摘要不一致时,所述摘要生成模块102进一步包括:一个第二重新确定模块,用于重新确定所述n个控制组件中每一个控制组件的所述第一完整性保护摘要;以及一个确定模块,用于根据重新确定的各个控制组件的所述第一完整性保护摘要,确定所述n个控制组件中待保护数据发生了变化的控制组件。
在一个实施例中,所述数据完整性保护装置进一步包括:一个检测模块,用于检测对所述第一控制组件中的待保护数据的改变操作,其中所述改变操作将导致在所述第一控制组件中生成更新的待保护数据;一个读取模块,响应于所述改变操作,读取所述第二控制组件中的所述第一完整性保护摘要;以及一个确定模块,用于基于所述第一控制组件的所述身份特征、所述更新的待保护数据的数据特征以及所述第二控制组件的所述第一完整性保护摘要,重新确定所述第一控制组件中的所述第一完整性保护摘要,当所重新确定的第一完整性保护摘要与预先确定的第一完整性保护摘要不相符时,则拒绝所述所述待保护数据的更新。在一个实施例中,所述数据完整性保护装置进一步包括:一个维护模块,用于维持存储所述工业控制系统内各个控制组件的所述第一完整性保护摘要与所述第二完整性保护摘要的一个列表;一个重新确定模块,用于当所述第一控制组件的所述身份特征或所述数据特征变化时,重新确定所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的所述第一完整性保护摘要以及所述第二完整性保护摘要;以及一个更新模块,用于利用所重新确定的所述第一完整性保护摘要以及所述第二完整性保护摘要来更新所述列表中对应所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的相应值。
此外,本发明也可以通过由机器执行存储在机器可读介质上指令,来实施根据本发明的方法。此外,根据本发明的数据完整性保护装置可以包括用于存储可执行指令的存储系统以及用于配置成通过执行所述指令来实现本发明的方法的处理系统。不难理解,数据完整性保护装置不但可以是中央节点或者工业控制系统中的单个控制组件,也可以是由多个设备或机器或其组成的网络来实现。因此,这里的存储系统可以是指一个存储器,也可以是由分布在不同设备或机器上的多个存储器实现。而处理系统则可以由单个设备或机器上的单一处理器或多个处理器实现,也可以由位于不同设备或机器上的一个或多个处理器实现。
需要说明的是,这里描述的方法和流程中不是所有的步骤都是必须的,可以根据实际的需要忽略某些步骤。各步骤的执行顺序不是固定的,可以根据需要进行调整。上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (16)
1.数据完整性保护的方法,其特征在于,所述方法包括:
建立一个工业控制系统内的多个控制组件之间的相关性;
基于与所述多个控制组件中的第一控制组件具有相关性的其它控制组件的身份特征与数据特征,确定指示所述第一控制组件中的待保护数据完整性的摘要,其中所述数据特征用于标识控制组件中的待保护数据,其中所述第一控制组件是所述多个控制组件中的任一个。
2.如权利要求1所述的方法,其特征在于,所述确定指示所述第一控制组件中的待保护数据完整性的摘要包括:
确定对于第一控制组件特定的第一完整性保护摘要,仅用于指示所述第一控制组件中的待保护数据的完整性,以及
确定对于包括所述第一控制组件在内的所述多个控制组件共用的第二完整性保护摘要,用于指示所述多个控制组件中的待保护数据的完整性。
3.如权利要求2所述的方法,其特征在于,
其中所述建立一个工业控制系统内所述多个控制组件之间的相关性包括:对所述多个控制组件进行排序,
其中所述确定第一完整性保护摘要进一步包括:
基于经过排序的紧邻所述第一控制组件之前的第二控制组件的第一完整性保护摘要以及所述第一控制组件的所述身份特征与所述数据特征,确定所述第一控制组件的第一完整性保护摘要,并同时将所述第一完整性保护摘要存储于紧随所述第一控制组件之后的一个控制组件中,其中所述第二控制组件的第一完整性保护摘要是基于所述第一控制组件之前的所有其它控制组件的身份特征与数据特征确定的。
4.如权利要求3所述的方法,其特征在于,将所述多个控制组件中最后一个控制组件的第一完整性保护摘要作为所述第二完整性保护摘要存储于位于所述排序的起始位置的控制组件中。
5.如权利要求2-4之一所述的方法,其特征在于,所述方法进一步包括:
基于所述多个控制组件中每一个控制组件的所述身份特征与所述数据特征,确定所述第二完整性保护摘要并分发给所述多个控制组件中的每一个控制组件。
6.如权利要求5所述的方法,其特征在于,所述方法进一步包括:
将所述多个控制组件分成至少一个组,基于每个组内的各控制组件的所述身份特征与所述数据特征生成该组控制组件的临时完整性保护摘要,
基于所生成的各个组的临时完整性保护摘要确定所述第二完整性保护摘要。
7.如权利要求2所述的方法,其特征在于,所述方法进一步包括:
提取所述工业控制系统内所有控制组件中的所述数据特征与所述身份特征,重新确定所述第二完整性保护摘要;
如果所重新确定的第二完整性保护摘要与所预先确定的第二完整性保护摘要的不一致,则确定所述工业控制系统内所述多个控制组件中的部分或全部控制组件中的待保护数据发生变化。
8.如权利要求7所述的方法,其特征在于,还包括:当所重新确定的第二完整性保护摘要与所存储的第二完整性保护摘要不一致时,
重新确定所述多个控制组件中每一个控制组件的所述第一完整性保护摘要;
根据重新确定的各个控制组件的所述第一完整性保护摘要,确定所述多个控制组件中待保护数据发生了变化的控制组件。
9.如权利要求3所述的方法,其特征在于,所述方法进一步包括:
检测对所述第一控制组件中的待保护数据的改变操作,其中所述改变操作将导致在所述第一控制组件中生成更新的待保护数据;
响应于所述改变操作,读取所述第二控制组件中的所述第一完整性保护摘要,
基于所述第一控制组件的所述身份特征、所述更新的待保护数据的数据特征以及所述第二控制组件的所述第一完整性保护摘要,重新确定所述第一控制组件中的所述第一完整性保护摘要,当所重新确定的第一完整性保护摘要与预先确定的第一完整性保护摘要不相符时,则拒绝所述所述待保护数据的更新。
10.如权利要求2所述的方法,其特征在于所述方法进一步包括:
维持存储所述工业控制系统内各个控制组件的所述第一完整性保护摘要与所述第二完整性保护摘要的一个列表,
当所述第一控制组件的所述身份特征或所述数据特征变化时,重新确定所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的所述第一完整性保护摘要以及所述第二完整性保护摘要,
利用所重新确定的所述第一完整性保护摘要以及所述第二完整性保护摘要来更新所述列表中对应所述第一控制组件以及位于所述第一控制组件之后的全部控制组件的相应值。
11.如权利要求1所述的方法,其中所述方法是由所述多个控制组件中的任一个控制组件执行的,或者由耦合到所述工业控制系统中的所述多个控制组件的中央节点所执行的。
12.数据完整性保护装置,包括:
一个相关性建立模块,用于建立一个工业控制系统内的多个控制组件之间的相关性;
一个摘要生成模块,用于基于与所述多个控制组件中的第一控制组件具有相关性的其它控制组件的身份特征与数据特征,确定指示所述第一控制组件中的待保护数据完整性的摘要,其中所述数据特征用于标识控制组件中的待保护数据的特征,其中所述第一控制组件是所述多个控制组件中的任一个。
13.数据完整性保护装置,其特征在于包括:
至少一个存储器,用于存储可执行指令,
至少一个处理器,配置成通过执行所述指令来执行权利要求1-10之一的方法。
14.如权利要求13的数据完整性保护装置,其特征在于,所述数据完整性保护装置是耦合到所述多个控制组件中的每一个的中央节点;或者,所述数据完整性保护装置是所述多个控制组件中的一个。
15.一种机器可读介质,其中存储有指令,当由机器执行时使机器执行如权利要求1-11之一的方法。
16.一种工业控制系统,包括多个控制组件,其特征在于:
所述多个控制组件中的一个第一控制组件被编程为执行权利要求1-10之一的方法;或者,
所述工业控制系统包括一个中央节点,所述中央节点耦合到所述工业控制系统中的所述多个控制组件,其中所述中央节点被编程为执行权利要求1-10之一的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711488506.1A CN109993002B (zh) | 2017-12-29 | 2017-12-29 | 一种数据完整性保护方法和装置 |
EP18206138.2A EP3506145B1 (en) | 2017-12-29 | 2018-11-14 | Data integrity protection method and device |
US16/191,658 US11003800B2 (en) | 2017-12-29 | 2018-11-15 | Data integrity protection method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711488506.1A CN109993002B (zh) | 2017-12-29 | 2017-12-29 | 一种数据完整性保护方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109993002A CN109993002A (zh) | 2019-07-09 |
CN109993002B true CN109993002B (zh) | 2023-12-22 |
Family
ID=64331673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711488506.1A Active CN109993002B (zh) | 2017-12-29 | 2017-12-29 | 一种数据完整性保护方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11003800B2 (zh) |
EP (1) | EP3506145B1 (zh) |
CN (1) | CN109993002B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913430B (zh) * | 2020-06-30 | 2022-03-18 | 物耀安全科技(杭州)有限公司 | 工业控制系统控制行为检测防护方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137095A (zh) * | 2010-12-29 | 2011-07-27 | 中国电力科学研究院 | 工业控制系统数据交换安全保护方法、系统和装置 |
CN102833259A (zh) * | 2012-09-03 | 2012-12-19 | 中科华核电技术研究院有限公司 | 系统间数据防篡改检测方法、校验码生成方法及装置 |
US8806617B1 (en) * | 2002-10-14 | 2014-08-12 | Cimcor, Inc. | System and method for maintaining server data integrity |
CN105515776A (zh) * | 2010-03-05 | 2016-04-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988109B2 (en) * | 2000-12-06 | 2006-01-17 | Io Informatics, Inc. | System, method, software architecture, and business model for an intelligent object based information technology platform |
US20080208374A1 (en) * | 2007-02-27 | 2008-08-28 | Rockwell Automation Technologies, Inc. | Testing utilizing controller engine instances |
US7778714B2 (en) * | 2007-02-27 | 2010-08-17 | Rockwell Automation Technologies, Inc. | On-line editing associated with controller engine instances |
EP2053775A1 (en) * | 2007-10-23 | 2009-04-29 | Siemens Aktiengesellschaft | Module for controlling integrity properties of a data stream |
US8565229B2 (en) * | 2010-06-18 | 2013-10-22 | Schweitzer Engineering Laboratories Inc | Systems and methods for data packet transmission |
US8484474B2 (en) | 2010-07-01 | 2013-07-09 | Rockwell Automation Technologies, Inc. | Methods for firmware signature |
US8964973B2 (en) * | 2012-04-30 | 2015-02-24 | General Electric Company | Systems and methods for controlling file execution for industrial control systems |
WO2016115280A1 (en) * | 2015-01-14 | 2016-07-21 | Virta Laboratories, Inc. | Anomaly and malware detection using side channel analysis |
US11327475B2 (en) * | 2016-05-09 | 2022-05-10 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for intelligent collection and analysis of vehicle data |
CN106775716B (zh) | 2016-12-15 | 2020-04-17 | 中国科学院沈阳自动化研究所 | 一种基于度量机制的可信plc启动方法 |
CN108775716A (zh) | 2018-06-13 | 2018-11-09 | 中国科学院工程热物理研究所 | 一种新型热管式真空玻璃管集热器 |
-
2017
- 2017-12-29 CN CN201711488506.1A patent/CN109993002B/zh active Active
-
2018
- 2018-11-14 EP EP18206138.2A patent/EP3506145B1/en active Active
- 2018-11-15 US US16/191,658 patent/US11003800B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806617B1 (en) * | 2002-10-14 | 2014-08-12 | Cimcor, Inc. | System and method for maintaining server data integrity |
CN105515776A (zh) * | 2010-03-05 | 2016-04-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN102137095A (zh) * | 2010-12-29 | 2011-07-27 | 中国电力科学研究院 | 工业控制系统数据交换安全保护方法、系统和装置 |
CN102833259A (zh) * | 2012-09-03 | 2012-12-19 | 中科华核电技术研究院有限公司 | 系统间数据防篡改检测方法、校验码生成方法及装置 |
Non-Patent Citations (2)
Title |
---|
A key management architecture and protocols for secure smart grid communications;Long, Xuelian et al.;SECURITY AND COMMUNICATION NETWORKS;第3602-3617页 * |
曹夕 ; 许力 ; 陈兰香 ; .云存储系统中数据完整性验证协议.计算机应用.2012,第8-12页. * |
Also Published As
Publication number | Publication date |
---|---|
CN109993002A (zh) | 2019-07-09 |
US11003800B2 (en) | 2021-05-11 |
EP3506145A1 (en) | 2019-07-03 |
US20190205571A1 (en) | 2019-07-04 |
EP3506145B1 (en) | 2020-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542888B (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
CN110572287B (zh) | 数据容灾方法、装置、计算机设备和存储介质 | |
CN110990183B (zh) | 数据库集群的异常检测方法、装置、计算机可读存储介质 | |
US8266691B2 (en) | Renewable integrity rooted system | |
CN107145802A (zh) | 一种bios完整性度量方法、基板管理控制器和系统 | |
RU2696425C1 (ru) | Способ двумерного контроля и обеспечения целостности данных | |
US20200137090A1 (en) | Industrial asset cyber-attack detection algorithm verification using secure, distributed ledger | |
CN108540447B (zh) | 一种基于区块链的证书验证方法及系统 | |
CN106547648A (zh) | 一种备份数据处理方法及装置 | |
JP2015022521A (ja) | セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム | |
WO2019243201A1 (en) | Hierarchical distributed ledger | |
CN113906715A (zh) | 基于网络拓扑的设备数据保护 | |
JP2024509486A (ja) | 不変(fixity)データ処理 | |
CN113704718A (zh) | 一种基于身份认证的电脑数据防护系统 | |
CN109993002B (zh) | 一种数据完整性保护方法和装置 | |
CN109033818B (zh) | 终端、验证方法和计算机可读存储介质 | |
CN112955889A (zh) | 安全启动装置及方法 | |
US20160239662A1 (en) | Control system and authentication device | |
JP2009128956A (ja) | データ処理装置及びデータ処理方法及びプログラム | |
CN106203100A (zh) | 一种完整性校验方法和装置 | |
JP6201385B2 (ja) | ストレージ装置及びストレージ制御方法 | |
US20230026057A1 (en) | Secure data center update and monitoring | |
JP2017005409A (ja) | データ認証システム、データ認証装置、方法およびプログラム | |
CN107292172B (zh) | 用于相对于参考计算机文件自动验证目标计算机文件的方法 | |
CN111400328A (zh) | 数据更新方法、装置及节点服务器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |