The presented invention generally relates to the field of factory planning and management systems. More specifically, it relates to the securing data monitoring and accumulation from multiple sources within a factory or plant.
The monitoring of plant operation and production data is common practice in modern management of plant production systems. The acquisition and storage of production data, as well data communications among various systems in the plant is well established and known in the art.
The current state of the art does not relate to systems and data structures that simultaneously provide:
The present invention discloses a method for providing a secure data monitoring system within a plant, said method implemented by one or more processors operatively coupled to a non-transitory computer readable storage device, on which are stored modules of instruction code that when executed cause the one or more processors to perform the steps of:
According to some embodiments, the said method further comprises the steps of:
According to some embodiments, the said method further comprises the process of mutual validation among multiple computers in a cluster, said process comprising the steps of:
According to some embodiments, the said method further comprises the step of validating the existence of both data blocks by the first computer, respective to the two hash values contained within the said header, thus validating the integrity of the data block chain.
According to some embodiments, the said method further comprises the step of emitting an alert to a front end computer upon detection of a missing data block.
According to some embodiments, the said method further comprises the steps of:
According to some embodiments, the said method further comprises the step of emitting an alert to a front end computer upon failure of said validation.
The present invention discloses a system for providing a secure data monitoring system within a plant, said system comprising a cluster of at least one collector computer module and a cluster of at least one inspector computer module, wherein:
According to some embodiments, the said inspector computer modules are further configured to:
According to some embodiments, the said system is further configured to implement a process of mutual validation among multiple computers in a cluster, wherein:
According to some embodiments, the said first inspector computer module is configured to validate the existence of both data blocks, respective to the two hash values contained within the said header, thus validating the integrity of the data block chain.
According to some embodiments, the said first inspector computer module is configured to emit an alert to a front end computer upon detection of a missing data block.
According to some embodiments the said first inspector computer module is further configured to:
According to some embodiments the said first inspector computer module is further configured to emit an alert to a front end computer upon failure of said validation.
The content of the application 62/346,681 is incorporated by reference in its entirety.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is applicable to other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
Following is a table of definitions of the terms used throughout this application.
As stated above, the content of the application 62/346,681 is incorporated by reference in its entirety, and will not be repeated henceforth for the purpose of brevity.
The front end environment [2000] is an encrypted environment separated from the collector cluster [1000] and data analysis subsystems. It serves as an administrative interface for configuring, monitoring and controlling the system. The front end environment is comprised of the front end server [2100], client [2200] and database [2300].
The front end server [2100] is responsible for the following administrative tasks:
The front end server receives indications of events from the scenario analysis [3700] and alert generation [3800] modules. It consequently:
The front end server [2100] may be accessed by authorized users either from within the front end environment, through the front-end client [2200], or from outside the front end environment, through a smart card host [2400-A]
The front-end client [2200] and smart card host [2400-A] facilitate the following capabilities:
The front end Database [2300] accumulates the following data
Inspector hosts 3101 are computers which serve as building blocks of the inspectors' cluster 3100. The Inspectors partake in cluster computing, e.g.: analyzing incoming data, storing required information, and producing alerts information en-route the front end.
According to some embodiments, the inspector hosts jointly implement a distributed block chain knowledgebase 3500, providing a secure system for monitoring events that take place within the plant.
According to some embodiments, the inspector hosts further implement a distributed ledger, providing a secure system for reporting data pertaining to events that have taken place within the plant to a 3rd party person or organization. The said reported data is devoid of information that is either irrelevant or unauthorized to the said 3rd party person or organization.
The collector hosts [1100] within the collector cluster collect and buffer raw data input streams from external data sources [100]. Each such data stream is time-stamped, and related to a specific data source entity (e.g. Production machine, machine sub-unit, sensor or indicator) within the plant (step 1110).
Each collector host [1100] incorporates a smart card, which encrypts the said raw data [100] with a one-time security key, providing read-only permissions to authorized persons and computational units (step 1120).
The collector hosts [1100] within the collector cluster [1000] forward the collected, encrypted, buffered data as a data stream to the data analysis sub unit [3000].
The inspectors' cluster [3100] receives encrypted data input streams [1101] from the data collectors' cluster [1000] (step 3105).
The inspector s' cluster [3100] applies a set of predefined logic rules, to ensure the authenticity of the said input streams [1101] (step 3110). Such rules include, for example:
The inspector cluster [3100] performs analysis of the said encrypted input data [1101], by employing parallel processing by multiple inspector hosts [3101] (step 3115). The output of each inspector host [3101] is either forwarded to another inspector host for further analysis in an encrypted form 3102, or emitted as an output of the inspector cluster [3100].
Each inspector host [3101] incorporates a smart card. The said smart card encrypts the inspector host's [3101] data output by a one-time security key, enabling only the designated recipients to read this output (step 3115).
The inspectors' cluster [3100] is configured to analyze the data input streams from the data collectors cluster [1101] (step 3120) and identify real-world scenarios and actions that take place in the plant based on the said analysis. For example, the inspectors' cluster [3100] may be configured to correlate between the input data originating from a plurality of motor decoders on a robotic arm, and identify a specific action performed by that robotic arm (e.g. assembling a vehicle module) According to some embodiments, the inspectors' cluster [3100] may be configured to correlate between different input data streams, and identify anomalies in the operation of production machines or machine sub-units. For example, the inspectors' cluster [3100] may be configured to correlate between the readings of a current meter and a motor's decoder, and detect excessive current draw of that specific motor.
The inspectors' cluster [3100] emits an indication to the scenario analysis module [3700], notifying the completion of analysis of a scenario or action that has taken place within the plant (step 3125).
The inspectors' cluster [3100] indicates to the alert generating module [3800] of anomalies found in the operation of production machines or machine sub-units within the plant (step 3130).
The inspector cluster [3100] stores elaborate data collected from collectors [1100] in a distributed, block-chain data structure, henceforth referred to as the knowledgebase [3500]. This information includes, for example:
Reference is now made to
The inspectors' cluster [3100] receives encrypted data as a data input stream [1101] from the data collectors cluster [1000] (step 3140). According to some embodiments, the said input data is quantified into data blocks (step 3142).
According to some embodiments, each collector host [1100] within the collector cluster [1000] is configured to propagate the said data input stream [1101] to a specific inspector host [3101, 3101b], according to a predefined set of rules. For example, the collector host [1100] may be configured to propagate the data input stream [1101] to a specific inspector host [3101, 3101b], according to:
The inspectors' cluster [3100] assigns each data block increment a unique hash value, which singularly refers to that specific increment of data (step 3145).
According to one embodiment, the said hash value represents the characteristics of the increment data block. For example, the hash value may indicate whether the data block originates from an action that has taken place within the plant, an outcome of a specific sensor within the plant or a response to a knowledgebase query performed by a user.
The hash value is used as a reference, in order to:
The said Block-chain information hash values may be exported and viewed by authorized 3rd party persons and organizations as a reference to the actions and scenarios that they represent. This capability may, for example, facilitate the inspection of process quality and safety by external regulatory bodies.
The inspectors' cluster [3100] keeps each data block's hash value in a header. The said header also contains the hash value pertaining to the previous data block, thus linking the two blocks in a chain (step 3150), henceforth referred to as the knowledgebase block chain. In the example provided in
The said headers (of data blocks N and N+1) may be stored on the same inspector host, or distributed on separate inspector hosts (e.g.: 3101a, 3101b) within the inspectors' cluster.
According to some embodiments, the header contains additional information, including a timestamp of the data acquired by collector and the properties of the relevant collector (e.g.: the collector's ID) (step 3155).
The inspectors' cluster [3100] repeats the process described above, and elongates the knowledgebase block chain as long as data is acquired via the collectors (step 3160).
The data block headers containing expected hash values for specific data blocks are distributed by the inspector hosts among one or more inspector hosts [3101a, 3101b, 3101c], and stored separately in multiple locations (step 3170).
According to some embodiments, the inspector hosts perform the distribution of data block headers among themselves, according to a predefined configuration. The said configuration takes into account considerations such as:
A first inspector host [3101a or 3101b] possesses a header containing an expected hash value, pertaining to a specific data block N. The said first inspector host addresses a second inspector host [3101c], wherein the actual data block N is stored (step 3175).
According to some embodiments, the said first inspector host may addresses the second inspector host upon a predefined trigger event, for example:
The first inspector host [3101a or 3101b] validates the existence of the data block in the designated location on the second inspector host [3101c] (step 3180).
According to some embodiments, the first inspector host [3101a or 3101b] is configured to validate the existence of the both data blocks, respective to the two hash values contained within said header. It thus validates the integrity of the data block chain.
According to some embodiments, in the event that a data block has been found missing, the first inspector host will emit an indication to the alert generation module [3800], which in turn may alert administrators via the front end server [2100].
The first inspector host [3101a or 3101b] reads the said data block, and applies an appropriate hash function on it, to obtain a new hash value. The first inspector host compares the said newly obtained hash value with the expected hash value in its possession, to validate the content of the data block (step 3185).
According to some embodiments, in the event that a the expected hash value is substantially different than the newly obtained hash value, the first inspector host will emit an indication to the alert generation module [3800], which in turn may alert administrators via the front end server [2100].
According to some embodiments of the present invention, the inspector host cluster further implements a ledger [3900], distributed among one or more inspector hosts. The said ledger provides a secure system for reporting data pertaining to events that have taken place within the plant to a 3rd party person or organization.
The ledger records events pertaining to the secure management of data blocks within the knowledgebase (step 3190), including for Example:
According to some embodiments, the data is recorded in the ledger is devoid of information that is either irrelevant or unauthorized for viewing by said 3rd party persons or organizations.
The front end collector [1200] receives configuration requests from the front end server [2100], en-route configuration of the inspector-host machines [3101] on the inspector cluster [3100] (step 3205).
The front end collector [1200] receives database query requests from the front end server [2100], directed to the distributed knowledgebase [3500] on the inspector cluster [3100]. These knowledgebase queries are limited to a predefined subset of possible queries, according to predefined permissions assigned to front end users (step 3210).
The front end collector [1200] incorporates a smart card; it encrypts the said configuration requests with a one-time security key, enabling read-only permissions to authorized persons and computational units (step 3215).
The front end collector [1200] forwards the collected encrypted configuration request [1201] to the data analysis sub unit (step 3220).
The data analysis sub-unit receives encrypted configuration requests [1201] from the front end server [2100] via the dedicated front end collector [1200] to a designated inspector host unit (step 3225). The designated inspector host unit decrypts the said configuration requests (step 3230).
The data analysis sub-unit applies a set of predefined logic rules, to ensure the authenticity of the said configuration or data query requests (step 3235). Examples for such rules include:
The data analysis sub-unit logs the configuration or query request in the distributed knowledgebase [3500] (step 3240).
The data analysis sub-unit applies the required configuration requests or knowledgebase database queries on the relevant inspector host units [3101], and returns an encrypted response to the front end collector [1200] (step 3245).
The front end collector [1200] forwards the encrypted response to the front end server [2100] (step 3250). The front end server forwards the response to the front-end client [2200], and logs it in the front end database [2300] (step 3255).
Authorized users employ smart card host computers [2400-B] to directly access individual inspector host [3101] within the inspector cluster, and perform at least part of the following (step 3260):
According to some embodiments, the data communicated over the inspector cluster may not be changed via smart card hosts.
The smart card host encrypts the said access communication with a one-time security key, enabling read-only permissions to authorized computational units (step 3265).
The data analysis sub-unit receives encrypted communication (e.g. database queries, inspector cluster configuration request or inspector host maintenance request) from the smart card host [2400-B] (step 3270)
The data analysis sub-unit logs the said communication in the distributed knowledgebase [3500] (step 3285).
According to some embodiments, the data analysis sub-unit logs the said communication in the distributed ledger [3900] (step 3290).
The data analysis sub-unit applies the required action (inspector cluster configuration, inspector host maintenance or knowledgebase database query) on the relevant inspector host units [3101], and returns an encrypted response to the smart card host [2400-B] (step 3295).
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IL2017/050787 | 7/11/2017 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62360750 | Jul 2016 | US |