RU2825561C1 - Programmable logic controller for controlling real-time devices - Google Patents
Programmable logic controller for controlling real-time devices Download PDFInfo
- Publication number
- RU2825561C1 RU2825561C1 RU2024103678A RU2024103678A RU2825561C1 RU 2825561 C1 RU2825561 C1 RU 2825561C1 RU 2024103678 A RU2024103678 A RU 2024103678A RU 2024103678 A RU2024103678 A RU 2024103678A RU 2825561 C1 RU2825561 C1 RU 2825561C1
- Authority
- RU
- Russia
- Prior art keywords
- computing system
- interaction
- computing
- data
- plc
- Prior art date
Links
- 230000003993 interaction Effects 0.000 claims abstract description 74
- 230000015654 memory Effects 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 5
- 239000000126 substance Substances 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 27
- 239000007788 liquid Substances 0.000 description 19
- 238000003860 storage Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000002955 isolation Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000036541 health Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 101001092910 Homo sapiens Serum amyloid P-component Proteins 0.000 description 1
- 102100036202 Serum amyloid P-component Human genes 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
Abstract
Description
Область техники Field of technology
Изобретение относится к области информационной безопасности, а более конкретно к программируемому логическому контроллеру для управления устройствами реального времени.The invention relates to the field of information security, and more specifically to a programmable logic controller for controlling real-time devices.
Уровень техникиState of the art
Большое количество предприятий и производств переходят к автоматизации своих процессов с помощью информационных технологий. Автоматизация бизнеса и производства позволяет уменьшить влияние человеческого фактора, что уменьшает вероятность ошибок и повышает надежность работы информационных систем. Кроме того, автоматизация позволяет получать больше данных о производственном процессе и эффективнее управлять производством. Многие из элементов информационных систем работают в условиях реального времени.A large number of enterprises and industries are moving towards automation of their processes using information technology. Automation of business and production allows to reduce the influence of the human factor, which reduces the probability of errors and increases the reliability of information systems. In addition, automation allows to obtain more data on the production process and manage production more effectively. Many of the elements of information systems operate in real time.
Информационные системы реального времени используются для автоматизации бизнеса и промышленности, например операционная система реального времени. Система реального времени должна выполнять функциональность в рамках требуемых временных ограничений, обеспечивая предсказуемость работы, достаточный отклик (время за которое гарантировано будет отработана команда управления, например, если необходимо отработать команду управления за 1 миллисекунду или необходимо отработать команду управления в течение указанного часа, не раньше и не позже) системы реального времени и ее высокую надежность, тем самым поддерживать постоянное и своевременное выполнение функциональности. Примерами систем реального времени являются автоматизированная система управления технологическим процессом (сокр. АСУ ТП) химического или ядерного реактора, бортовые системы управления пилотируемыми или беспилотными летательными аппаратами, космическими аппаратами, автомобилями, кораблями, судами.Real-time information systems are used for business and industrial automation, such as a real-time operating system. A real-time system must perform functionality within the required time constraints, ensuring predictability of operation, sufficient response (the time during which a control command is guaranteed to be executed, for example, if it is necessary to execute a control command in 1 millisecond or it is necessary to execute a control command within a specified hour, no earlier and no later) of the real-time system and its high reliability, thereby maintaining continuous and timely execution of functionality. Examples of real-time systems are an automated process control system (abbreviated APCS) of a chemical or nuclear reactor, on-board control systems for manned or unmanned aerial vehicles, spacecraft, cars, ships, vessels.
На предприятиях часть процессов, например технологических, информационных, работает в режиме реального времени. Такие процессы используют специализированное программное обеспечение, например операционную систему реального времени (ОСРВ), работающую в системе реального времени. Другая часть работает на компьютерах с ОС общего назначения (Win/Linux), где нет необходимости в соблюдении жестких требований, как в решениях реального времени. Однако существует необходимость синхронизировать работу таких систем. Например, ОС общего назначения управляет компьютерными ресурсами, такими как диски, сеть, периферийные устройства и т.д., а ОСРВ отвечает за управление процессами в системе реального времени, которым требуется скорость обработки данных и быстрое реагирование, которые не могут обеспечить ОС общего назначения. Вопросы безопасности таких систем стоят очень остро, компрометация одной из систем может привести к ряду негативных последствий, связанных с информационной безопасностью. Например, утечка конфиденциальной информации (данные клиентов, бизнес-планы, финансовые документы и др.), которая приведет к серьезным последствиям для компании или угрозе жизни и здоровью людей. At enterprises, some processes, such as technological and informational ones, operate in real time. Such processes use specialized software, such as a real-time operating system (RTOS) running in a real-time system. The other part operates on computers with a general-purpose OS (Win/Linux), where there is no need to comply with strict requirements, as in real-time solutions. However, there is a need to synchronize the operation of such systems. For example, a general-purpose OS manages computer resources such as disks, network, peripherals, etc., and an RTOS is responsible for managing processes in a real-time system that require data processing speed and quick response, which a general-purpose OS cannot provide. Security issues for such systems are very acute; compromise of one of the systems can lead to a number of negative consequences related to information security. For example, a leak of confidential information (customer data, business plans, financial documents, etc.), which will lead to serious consequences for the company or a threat to the life and health of people.
Из уровня техники известно большое количество решений разных компаний в рассматриваемой области, например NXP i.MX Series от разработчиков NXP Semiconductors, Intel Stratix 10 от компании Intel, Renesas R-Car Series от Renesas Electronics (https://www.renesas.com/us/en/products/automotive-products/automotive-system-chips-socs). Упомянутые решения подразумевают работу на нескольких выделенных вычислительных системах, на которых могут быть развернуты разные программные решения. При этом вычислительные системы могут включать ОС общего назначения и ОСРВ. При подключении к сетям общего доступа решений с несколькими операционными системами на единой системе на кристалле, сетевая функциональность должна быть защищена от внешнего вредоносного воздействия (например, кибератаки), что в свою очередь является слишком сложным. В связи с этим решения на базе ОСРВ обычно используются в замкнутых информационных системах, которые не имеют доступа или имеют ограниченный доступ к сетям общего доступа.The state of the art includes a large number of solutions from different companies in this area, such as NXP i.MX Series from NXP Semiconductors, Intel Stratix 10 from Intel, Renesas R-Car Series from Renesas Electronics (https://www.renesas.com/us/en/products/automotive-products/automotive-system-chips-socs). The mentioned solutions imply operation on several dedicated computing systems on which different software solutions can be deployed. In this case, computing systems can include a general-purpose OS and an RTOS. When connecting solutions with several operating systems on a single system on a chip to public networks, the network functionality must be protected from external malicious influences (for example, cyber attacks), which in turn is too complex. In this regard, RTOS-based solutions are usually used in closed information systems that do not have access or have limited access to public networks.
Из уровня техники известно решение WO 2020035742 A1 «Method for operating an industrial PC device and industrial PC device», в указанном решении представлены две операционные системы: ОС общего назначения и ОСРВ. За безопасность промышленного компьютерного устройства в указанном решении отвечает ОСРВ. К некоторым недостаткам указанного решения стоит отнести реализацию ОС общего назначения и ОСРВ на одной вычислительной системе, а также распределение аппаратных ресурсов между операционными системами, которое осуществляется через гипервизор, что в свою очередь приводит к ухудшению характеристик реального времени, например к задержке реакции или времени отклика ОСРВ на внешнее события. The prior art includes the solution WO 2020035742 A1 "Method for operating an industrial PC device and industrial PC device", which presents two operating systems: a general-purpose OS and an RTOS. The RTOS is responsible for the security of the industrial computer device in this solution. Some disadvantages of this solution include the implementation of a general-purpose OS and an RTOS on a single computing system, as well as the distribution of hardware resources between operating systems, which is carried out through a hypervisor, which in turn leads to deterioration in real-time characteristics, such as a delay in response or RTOS response time to external events.
Также из уровня техники известно решение EP 3267649 A1 «Method and industrial computing apparatus for performing a secure communication» в котором используется две ОС, одна из которых ОСРВ. Указанное решение реализуется с помощью безопасного канала между ОС с использованием виртуализации. Недостатком такого решения может являться снижение производительности на стороне ОСРВ из-за разделения ОС виртуальной машиной для которой требуется большое количество аппаратных ресурсов и как следствие, ухудшение характеристик реального времени, например увеличенное время отклика ОСРВ. Also known from the state of the art is the solution EP 3267649 A1 "Method and industrial computing apparatus for performing a secure communication" in which two OS are used, one of which is an RTOS. The specified solution is implemented using a secure channel between the OS using virtualization. The disadvantage of such a solution may be a decrease in performance on the RTOS side due to the separation of the OS by a virtual machine that requires a large amount of hardware resources and, as a consequence, a deterioration in real-time characteristics, for example, an increased response time of the RTOS.
Анализ предшествующего уровня техники позволяет сделать вывод о необходимости улучшения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно программируемым логическим контроллером для управления устройствами реального времени.An analysis of the prior art allows us to conclude that it is necessary to improve the previous technologies, the shortcomings of which are solved by the present invention, namely a programmable logic controller for controlling real-time devices.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Настоящее изобретение направлено на повышение уровня защиты, связанных с управлением устройствами реального времени. The present invention is aimed at increasing the level of security associated with the management of real-time devices.
Технический результат заключается в усовершенствовании устройств, осуществляющие управление устройствами реального времени за счет предложенного программируемого логического контроллера.The technical result consists in improving devices that control real-time devices using the proposed programmable logic controller.
В качестве варианта реализации настоящего изобретения предлагается программируемый логический контроллер (ПЛК), характеризующийся тем, что содержит систему на кристалле (СнК), включающую по меньшей мере две вычислительные системы, память, периферию и высокоскоростную шину передачи данных, где память и периферия, взаимодействующие с первой вычислительной системой, изолированы от памяти и периферии, взаимодействующие со второй вычислительной системой, при этом: а) первая вычислительная система содержит по меньшей мере одно вычислительное ядро и предназначена для: взаимодействия с удаленным компьютером, взаимодействия со второй вычислительной системой; б) вторая вычислительная система содержит по меньшей мере одно вычислительное ядро и предназначена для: взаимодействия с первой вычислительной системой, во время которого по меньшей мере осуществляет одно из: получает от первой вычислительной системы конфигурационные данные или команды управления для измерительного или исполнительного устройства, передает статусные данные в первую вычислительную систему, преобразовывает конфигурационные данные в команды управления для исполнительного устройства; взаимодействия с по меньшей мере одним из устройств: исполнительным устройством и измерительным устройством, при этом во время взаимодействия осуществляется: сбор данных с измерительного устройства, передача команд управления на исполнительное устройство.As an embodiment of the present invention, a programmable logic controller (PLC) is proposed, characterized in that it contains a system on a chip (SoC) including at least two computing systems, memory, periphery and a high-speed data transfer bus, where the memory and periphery interacting with the first computing system are isolated from the memory and periphery interacting with the second computing system, wherein: a) the first computing system contains at least one computing core and is intended for: interacting with a remote computer, interacting with the second computing system; b) the second computing system contains at least one computing core and is intended for: interacting with the first computing system, during which it carries out at least one of: receiving configuration data or control commands for a measuring or actuator from the first computing system, transmitting status data to the first computing system, converting configuration data into control commands for the actuator; interaction with at least one of the devices: an actuator and a measuring device, wherein during the interaction the following is carried out: collecting data from the measuring device, transmitting control commands to the actuator.
В еще одном варианте реализации настоящего изобретения дополнительно первая вычислительная система содержит операционную систему общего назначения (далее – ОС общего назначения), а вторая вычислительная система содержит операционную систему реального времени (далее – ОСРВ).In another embodiment of the present invention, the first computing system additionally comprises a general-purpose operating system (hereinafter referred to as a general-purpose OS), and the second computing system comprises a real-time operating system (hereinafter referred to as a RTOS).
В еще одном варианте реализации настоящего изобретения взаимодействие первой вычислительной системы со второй вычислительной системой осуществляется посредством высокоскоростной шины передачи данных.In another embodiment of the present invention, the interaction of the first computing system with the second computing system is carried out via a high-speed data transfer bus.
В еще одном варианте реализации настоящего изобретения операционная система общего назначения включает компоненты: монитор безопасности, веб-сервер, средство аутентификации, средство контроля сертификатов и средство контроля взаимодействий.In another embodiment of the present invention, a general-purpose operating system includes components: a security monitor, a web server, an authentication tool, a certificate control tool, and an interaction control tool.
В еще одном варианте реализации настоящего изобретения монитор безопасности, средство аутентификации, средство контроля сертификатов и средство контроля взаимодействий являются доверенными компонентами, а веб-сервер является недоверенным компонентом.In another embodiment of the present invention, the security monitor, the authentication tool, the certificate control tool, and the interaction control tool are trusted components, and the web server is an untrusted component.
В еще одном варианте реализации настоящего изобретения монитор безопасности контролирует взаимодействие компонентов между собой с использованием механизмов межпроцессного взаимодействия на основе политик безопасности.In another embodiment of the present invention, the security monitor monitors the interaction of components with each other using interprocess communication mechanisms based on security policies.
В еще одном варианте реализации настоящего изобретения дополнительно первая вычислительная система проводит аутентификацию пользователя на основании полученных данных от удаленного компьютера.In another embodiment of the present invention, the first computing system additionally authenticates the user based on the data received from the remote computer.
В еще одном варианте реализации настоящего изобретения первая вычислительная система осуществляет передачу данных во вторую вычислительную систему только если пользователь аутентифицирован.In another embodiment of the present invention, the first computing system transmits data to the second computing system only if the user is authenticated.
В еще одном варианте реализации настоящего изобретения взаимодействие между удаленным компьютером и ПЛК осуществляется через установление зашифрованного канала связи.In another embodiment of the present invention, interaction between the remote computer and the PLC is accomplished by establishing an encrypted communication channel.
В еще одном варианте реализации настоящего изобретения средство контроля сертификатов осуществляет поддержку HTTPS-соединения между удаленным интерфейсом на вычислительном устройстве и веб-сервером.In another embodiment of the present invention, the certificate control means supports an HTTPS connection between a remote interface on the computing device and a web server.
В еще одном варианте реализации настоящего изобретения средство контроля взаимодействий осуществляет передачу конфигурационных данных от удаленного компьютера по высокоскоростной шине передачи данных в вычислительную систему с ОСРВ, а также принимает из вычислительной системы с ОСРВ данные касающиеся работы измерительного устройства.In another embodiment of the present invention, the interaction control means transmits configuration data from a remote computer via a high-speed data transmission bus to a computing system with an RTOS, and also receives data from the computing system with an RTOS concerning the operation of the measuring device.
В еще одном варианте реализации настоящего изобретения веб-сервер принимает HTTP-запросы от удаленного интерфейса на вычислительном устройстве и выдает HTTP-ответы с HTML-страницей.In another embodiment of the present invention, the web server receives HTTP requests from a remote interface on the computing device and provides HTTP responses with an HTML page.
В еще одном варианте реализации настоящего изобретения монитор безопасности отвечает за определение разрешений или запретов на взаимодействие компонентов ОС общего назначения между собой с использованием механизмов межпроцессного взаимодействия на основе политик безопасности.In another embodiment of the present invention, the security monitor is responsible for determining permissions or prohibitions for interaction between general-purpose OS components using interprocess communication mechanisms based on security policies.
Краткое описание чертежейBrief description of the drawings
Прилагаемые чертежи иллюстрируют только примерные варианты осуществления и поэтому не должны считаться ограничивающими его объем, могут допускать другие, не менее эффективные, варианты осуществления. Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:The accompanying drawings illustrate only exemplary embodiments and therefore should not be considered limiting its scope; other, no less effective, embodiments may be allowed. Additional objectives, features and advantages of the present invention will be apparent from reading the following description of the embodiment of the invention with reference to the accompanying drawings, in which:
Фиг. 1 представляет пример структурной схемы вычислительного устройства для управления исполнительными и/или измерительными устройствами.Fig. 1 represents an example of a structural diagram of a computing device for controlling executive and/or measuring devices.
Фиг. 2 представляет пример системы управления исполнительными и/или измерительными устройствами в режиме реального времени.Fig. 2 shows an example of a system for controlling executive and/or measuring devices in real time.
Фиг. 3 представляет пример реализации решения, отвечающего за взаимодействие с вычислительным устройством через компьютерную сеть.Fig. 3 shows an example of the implementation of a solution responsible for interaction with a computing device via a computer network.
Фиг. 4 представляет способ управления исполнительными и/или измерительными устройствами в режиме реального времени.Fig. 4 shows a method for controlling actuators and/or measuring devices in real time.
Фиг. 5 представляет пример компьютерной системы, с помощью которой осуществляется по крайней мере часть настоящего изобретения.Fig. 5 is an example of a computer system by which at least part of the present invention is implemented.
Осуществление изобретенияImplementation of the invention
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы. The objects and features of the present invention, the methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The substance given in the description is nothing more than specific details necessary to help a person skilled in the art to fully understand the invention, and the present invention is defined within the scope of the appended claims.
Ниже определен ряд терминов, которые будут использоваться при описании вариантов осуществления изобретения.Below are defined a number of terms that will be used in describing embodiments of the invention.
Система на кристалле (СнК, англ. System-on-a-Chip, SOC) – электронная схема, выполняющая функции целого устройства (например, компьютера) и размещенная на интегральной схеме. СнК может принимать и обрабатывать цифровые, аналоговые, радиосигналы или работать в аналого-цифровом режиме, объединив на кристалле процессор (или несколько процессоров), периферию, блок оперативной памяти и долговременной памяти.System-on-a-Chip (SOC) is an electronic circuit that performs the functions of an entire device (for example, a computer) and is placed on an integrated circuit. The SoC can receive and process digital, analog, radio signals or operate in analog-to-digital mode, combining a processor (or several processors), peripherals, RAM and long-term memory on a crystal.
Вычислительная система – совокупность аппаратно-программных средств, образующих единую среду, предназначенную для решения задач обработки информации (вычислений), например компьютерная система.A computing system is a set of hardware and software tools that form a single environment designed to solve information processing (computing) problems, for example, a computer system.
Вычислительное ядро – часть процессора вычислительной системы, которая обеспечивает работу с данными и производит вычислительные и логические операции.A computing core is a part of a computing system's processor that handles data and performs computational and logical operations.
Система реального времени – система, в которой успешность работы любой программы зависит не только от ее логической правильности, но и от времени, за которое она получила результат. Если временные ограничения не удовлетворены, то фиксируется сбой в работе системы. Наиболее упоминаемыми системами реального времени являются – системы жесткого реального времени и системы мягкого реального времени. Системы мягкого реального времени характеризуются тем, что задержка реакции не критична. Системы жесткого реального времени предусматривают наличие гарантированного времени отклика системы на конкретное событие, например, аппаратное прерывание, выдачу команды управления и т.п. Примерами характеристик систем реального времени являются срок исполнения (англ. deadline), задержка (англ. latency), дрожание (англ. jitter). Под сроком исполнения подразумевается критический временной интервал обслуживания или предельный срок завершения какого-то процесса. Задержка указывает время отклика системы на событие в целом. Дрожание характеризует разброс времен отклика системы, который может возникнуть, например, под влиянием других событий, происходящих в объекте или процессе. Примерами систем жесткого реального времени являются бортовые системы управления, системы аварийной защиты, регистраторы аварийных событий. Системами реального времени являются как решения реального времени с операционной системой, так и решения реального времени без операционной системы. A real-time system is a system in which the success of any program depends not only on its logical correctness, but also on the time it takes to obtain a result. If the time constraints are not met, a system failure is recorded. The most commonly mentioned real-time systems are hard real-time systems and soft real-time systems. Soft real-time systems are characterized by the fact that the response delay is not critical. Hard real-time systems provide for a guaranteed system response time to a specific event, such as a hardware interrupt, a control command, etc. Examples of real-time system characteristics are deadline, latency, and jitter. Deadline refers to a critical service time interval or the deadline for completing a process. Latency indicates the system response time to an event as a whole. Jitter characterizes the spread of system response times, which may arise, for example, under the influence of other events occurring in an object or process. Examples of hard real-time systems are on-board control systems, emergency protection systems, and emergency event recorders. Real-time systems include both real-time solutions with an operating system and real-time solutions without an operating system.
Операционная система реального времени, ОСРВ (англ. real-time operating system, RTOS), – тип специализированной операционной системы, основное назначение которой — предоставление необходимой и достаточной функциональности для проектирования, разработки и функционирования систем реального времени на конкретном аппаратном оборудовании.A real-time operating system (RTOS) is a type of specialized operating system whose main purpose is to provide the necessary and sufficient functionality for the design, development, and operation of real-time systems on specific hardware.
Исполнительное устройство (англ. actuator) - устройство для автоматического управления или регулирования, воздействующее на объект управления в соответствии с получаемой командой управления. Воздействие осуществляется преобразованием одного вида энергии (электрической, магнитной, тепловой, химической) в другую (чаще всего – в механическую), что приводит к выполнению определенного действия, заданного управляющим сигналом.An actuator is a device for automatic control or regulation that acts on the controlled object in accordance with the received control command. The action is carried out by converting one type of energy (electrical, magnetic, thermal, chemical) into another (most often - mechanical), which leads to the execution of a certain action specified by the control signal.
Измерительное устройство - датчик (англ. sensor), преобразующий контролируемую величину (давление, температуру, уровень, расход, частоту, скорость, перемещение, напряжение, электрический ток и т.п.) в сигнал, удобный для измерения, хранения, регистрации, преобразования и передачи на управляющее устройство (контроллер, регулятор, компьютер).A measuring device is a sensor that converts a controlled value (pressure, temperature, level, flow rate, frequency, speed, displacement, voltage, electric current, etc.) into a signal that is convenient for measurement, storage, recording, conversion and transmission to a control device (controller, regulator, computer).
На Фиг. 1 представлен пример структурной схемы вычислительного устройства для управления исполнительными и/или измерительными устройствами. Примерами вычислительного устройства, на котором может быть реализовано заявленное решение являются компьютер, ноутбук, микроконтроллер, программируемый логический контроллер и любое другое вычислительное устройство, позволяющее осуществить заявленное изобретение. Далее реализацию вычислительного устройства рассмотрим на примере реализации программируемого логического контроллера.Fig. 1 shows an example of a structural diagram of a computing device for controlling executive and/or measuring devices. Examples of a computing device on which the claimed solution can be implemented are a computer, a laptop, a microcontroller, a programmable logic controller, and any other computing device that allows the claimed invention to be implemented. Further, we will consider the implementation of the computing device using the example of the implementation of a programmable logic controller.
Вычислительное устройство 100 – программируемый логический контроллер (сокр. ПЛК; англ. programmable logic controller, PLC), характеризующийся тем, что содержит по меньшей мере систему на кристалле 105 (СнК), включающую две вычислительные системы 110 и 115, где каждая вычислительная система содержит свои выделенную память и периферию, а также между вычислительными системами 110 и 115 расположена высокоскоростная шина передачи данных 150 (далее – шина передачи данных 150). В свою очередь вычислительная система 110 содержит по меньшей мере одно вычислительное ядро 120, периферию 130, память 140. Аналогично вычислительная система 115 содержит по меньшей мере одно вычислительное ядро 125, периферию 135, память 145.The computing device 100 is a programmable logic controller (abbreviated PLC), characterized in that it contains at least a system on a chip 105 (SoC), including two computing systems 110 and 115, where each computing system contains its own dedicated memory and periphery, and a high-speed data bus 150 (hereinafter referred to as data bus 150) is located between computing systems 110 and 115. In turn, the computing system 110 contains at least one computing core 120, periphery 130, memory 140. Similarly, the computing system 115 contains at least one computing core 125, periphery 135, memory 145.
Вычислительная система 110 предназначена для взаимодействия с удаленным компьютером через интерфейс на удаленном компьютере посредством компьютерной сети, например сети Интернет, а также взаимодействия вычислительной системы 110 с вычислительной системой 115 через шину передачи данных 150. Пример удаленного компьютера представлен на Фиг. 5. Вычислительная система 115 предназначена для обработки информации, данных, сигналов или команд управления в реальном времени, в том числе, которые поступили от вычислительной системы 110. Одним из примеров является передача команд управления на исполнительное устройство от вычислительной системы 115, а также прием сигналов от измерительного устройства и выдача данных с него или исполнительного устройства в вычислительную систему 110. В одном из вариантов реализации в вычислительной системе 115 осуществляется обработка информации в режиме реального времени, например высокочастотный трейдинг (англ. High-frequency Trading, HFT) – разновидность автоматической торговли, в которой главную роль играет скорость принятия решений и выполнения операций; или обновление баз данных в режиме реального времени; мониторинг показателей здоровья в реальном времени (частота пульса, насыщенность крови кислородом, артериальное давление), предоставление данных в режиме реального времени о количестве забронированных номеров в гостинице и т.д. The computing system 110 is intended to interact with a remote computer via an interface on the remote computer via a computer network, such as the Internet, and to interact with the computing system 110 with the computing system 115 via a data bus 150. An example of a remote computer is shown in Fig. 5. The computing system 115 is intended to process information, data, signals or control commands in real time, including those received from the computing system 110. One example is the transmission of control commands to the actuator from the computing system 115, as well as the reception of signals from the measuring device and the output of data from it or the actuator to the computing system 110. In one embodiment, the computing system 115 processes information in real time, such as high-frequency trading (HFT) - a type of automated trading in which the main role is played by the speed of decision-making and execution of operations; or updating databases in real time; real-time monitoring of health indicators (heart rate, blood oxygen saturation, blood pressure), provision of real-time data on the number of hotel rooms booked, etc.
В одном варианте реализации в вычислительной системе 110 исполняется программное решение, например операционная система общего назначения (далее – ОС общего назначения), а в вычислительной системе 115 исполняется решение реального времени, например операционная система реального времени (далее – ОСРВ).In one embodiment, a software solution, such as a general-purpose operating system (hereinafter referred to as a general-purpose OS), is executed in the computing system 110, and a real-time solution, such as a real-time operating system (hereinafter referred to as a RTOS), is executed in the computing system 115.
В другом варианте реализации в вычислительной системе 110 исполняется программное решение без операционной системы, например выполнение двоичного кода, скомпилированного для микроконтроллера, чтобы оптимизировать использование ограниченных ресурсов указанного микроконтроллера. In another embodiment, the computing system 110 executes a software solution without an operating system, such as executing binary code compiled for a microcontroller, to optimize the use of the limited resources of said microcontroller.
В зависимости от варианта реализации вычислительная система 110 содержит по меньшей мере одно вычислительное ядро 120, также вычислительная система 115 содержит по меньшей мере одно вычислительное ядро 125. Depending on the embodiment, the computing system 110 contains at least one computing core 120, and the computing system 115 contains at least one computing core 125.
Каждая вычислительная система 110 и 115 имеет собственную периферию 130 и 135 (например, I2C, SPI, USB, Ethernet и т.д) и память 140 и 145, например кэш вычислительных ядер, оперативное запоминающее устройство (далее – ОЗУ) и т.д. Each computing system 110 and 115 has its own peripherals 130 and 135 (for example, I2C, SPI, USB, Ethernet, etc.) and memory 140 and 145, for example, the cache of computing cores, random access memory (hereinafter referred to as RAM), etc.
В частном варианте реализации между вычислительными системами 110 и 115 имеется общая память, например постоянное запоминающее устройство, ПЗУ (на фигурах не указана).In a particular embodiment, there is a common memory between computing systems 110 and 115, for example a read-only memory device, ROM (not shown in the figures).
Для взаимодействия вычислительных систем 110 и 115 между собой используется шина передачи данных 150, например RapidIO.For interaction between computing systems 110 and 115, a data transmission bus 150, for example RapidIO, is used.
В частном варианте реализации для взаимодействия вычислительных систем 110 и 115 между собой используется по меньшей мере две высокоскоростные шины передачи данных.In a particular embodiment, at least two high-speed data transmission buses are used for interaction between computing systems 110 and 115.
В другом частном варианте реализации взаимодействие вычислительных систем 110 и 115 осуществляется через перезаписываемую общую память ПЗУ с кодом загрузчика, например EEPROM.In another particular embodiment, the interaction of computing systems 110 and 115 is carried out through a rewritable common ROM memory with a bootloader code, for example, EEPROM.
В еще одном частном варианте реализации взаимодействие вычислительных систем 110 и 115 осуществляется посредством почтовых ящиков (англ. mailbox).In another particular embodiment, interaction between computing systems 110 and 115 is carried out via mailboxes.
Таким образом, каждая вычислительная система 110 или 115 является независимой аппаратной вычислительной системой, на которую нельзя повлиять из другой вычислительной системы через общую память или периферию, а взаимодействие между вычислительными системами 110 и 115, происходит по шине передачи данных 150. Каждую такую вычислительную систему можно считать изолированной и, соответственно, вычислительные ядра 120 и 125 будут также изолированными друг от друга.Thus, each computing system 110 or 115 is an independent hardware computing system that cannot be influenced from another computing system through common memory or periphery, and interaction between computing systems 110 and 115 occurs via data transfer bus 150. Each such computing system can be considered isolated and, accordingly, computing cores 120 and 125 will also be isolated from each other.
Изоляция периферии и памяти для каждой из вычислительных систем 110 и 115 подразумевает, что аппаратные модули работы с памятью также изолированы, например путем использования прямого доступа к памяти (англ. direct memory access, DMA). Таким образом, аппаратный модуль DMA вычислительной системы 110 и любого модуля периферии 130 имеет доступ только к периферии 130 и памяти 140 своей вычислительной системы. То же самое подразумевается и для вычислительной системы 115 с периферией 135 и памятью 145. В том числе при изоляции памяти 140 и 145 учитывается память кэшей внутри каждой вычислительной системы 110 и 115, не позволяя влиять на работу другого вычислительной системы.Isolation of the periphery and memory for each of the computing systems 110 and 115 implies that the hardware modules for working with memory are also isolated, for example by using direct memory access (DMA). Thus, the hardware DMA module of the computing system 110 and any module of the periphery 130 has access only to the periphery 130 and memory 140 of its computing system. The same is implied for the computing system 115 with the periphery 135 and memory 145. Including, when isolating the memory 140 and 145, the memory of the caches inside each computing system 110 and 115 is taken into account, not allowing it to affect the operation of the other computing system.
В частном варианте реализации изоляция памяти 140 и 145, например такой как ОЗУ, реализуется внутри СнК 105 таким образом, что снаружи СнК 105 для обоих вычислительных систем 110 и 115 используется одна и та же память СнК 105. В таком случае изоляция памяти 140 и 145 вычислительных систем 110 и 115 обеспечивается арбитрами соответствующих шин внутри СнК 105, а снаружи СнК 105 предполагается отсутствие иных аппаратных модулей, например PCI, Ethernet, периферии 130 и 135, имеющих доступ к ОЗУ, в обход упоминаемых выше арбитров шин внутри СнК 105.In a particular embodiment, the isolation of memory 140 and 145, such as RAM, is implemented inside SoC 105 in such a way that outside SoC 105, the same memory of SoC 105 is used for both computing systems 110 and 115. In such a case, the isolation of memory 140 and 145 of computing systems 110 and 115 is provided by arbiters of the corresponding buses inside SoC 105, and outside SoC 105, it is assumed that there are no other hardware modules, such as PCI, Ethernet, peripherals 130 and 135, having access to RAM, bypassing the above-mentioned bus arbiters inside SoC 105.
Также для безопасного использования вычислительных систем 110 и 115 в СнК 105 в одном из вариантов реализации дополнительно обеспечивается изоляция остальных аппаратных модулей, не относящихся к памяти и периферии (например, контроллера питания, контроллера прерываний), таким образом, чтобы вычислительная система или аппаратные модули, относящиеся к ней, не могли влиять на работу другой вычислительной системы или ее аппаратных модулей.Also, for the safe use of computing systems 110 and 115 in SoC 105, in one embodiment, isolation of the remaining hardware modules not related to memory and peripherals (for example, a power controller, an interrupt controller) is additionally ensured, so that the computing system or hardware modules related to it cannot influence the operation of another computing system or its hardware modules.
В частном варианте реализации применение аппаратной изоляции не исключает использование виртуальных изоляций внутри каждой вычислительной системы 110 и 115 (например, IOMMU, TEE и т.д).In a particular embodiment, the use of hardware isolation does not exclude the use of virtual isolation within each computing system 110 and 115 (for example, IOMMU, TEE, etc.).
В одном варианте реализации на вычислительной системе 110 исполняется решение не реального времени, например, программное решение без операционной системы, такое как bare metal (https://itglobal.com/ru-ru/company/glossary/bare-metal/), а на вычислительной системе 115 исполняется решение реального времени (далее – ОСРВ). In one embodiment, a non-real-time solution, such as a bare metal (https://itglobal.com/ru-ru/company/glossary/bare-metal/) software solution, is executed on the computing system 110, and a real-time solution (hereinafter referred to as RTOS) is executed on the computing system 115.
В случае, когда в вычислительной системе 115 исполняется решение реального времени, то предлагаемый подход по аппаратной изоляции вычислительных систем 110 и 115 улучшает характеристики решения реального времени по сравнению с использованием подходов виртуальной изоляции решений (например, TEE). Из-за использования в подходах с виртуальной изоляцией решений единых вычислительных ресурсов для обоих решений и переключения контекста внутри всей системы происходит уменьшение детерминированности времени исполнения примитивов в решении реального времени и увеличению различных временных задержек. Поэтому предлагаемый подход по аппаратной изоляции вычислительных систем 110 и 115 в дополнение к улучшению характеристик реального времени, позволяет с меньшими доработками использовать известные из уровня техники решения реального времени. Это достигается за счет того, что решение реального времени, исполняющееся на вычислительной системе 115, владеет собственными независимыми ресурсами, при этом вычислительная система 110 не влияет на работу указанного решения реального времени и предназначена для осуществления функций безопасности для взаимодействия с компьютерной сетью, например сетью Интернет. Также вынесение функций безопасности в вычислительную систему 110 не увеличивает вычислительную нагрузку на вычислительную систему 115. Таким образом, за функциональность реального времени отвечает решение реального времени, реализованное на вычислительной системе 115, а за безопасное взаимодействие по компьютерной сети, такой как, например сеть Интернет, – решение, реализованное на вычислительной системе 110. В одном из вариантов реализации решением реального времени на вычислительной системе 115 является ОСРВ, а решением, отвечающим за безопасное взаимодействие по сети Интернет, на вычислительной системе 110 является ОС общего назначения.In the case when a real-time solution is executed in the computing system 115, the proposed approach to hardware isolation of computing systems 110 and 115 improves the characteristics of the real-time solution compared to the use of approaches of virtual isolation of solutions (for example, TEE). Due to the use of single computing resources for both solutions and context switching within the entire system in approaches with virtual isolation of solutions, the determinism of the execution time of primitives in the real-time solution decreases and various time delays increase. Therefore, the proposed approach to hardware isolation of computing systems 110 and 115, in addition to improving the real-time characteristics, allows using real-time solutions known from the state of the art with fewer modifications. This is achieved due to the fact that the real-time solution executed on the computing system 115 has its own independent resources, while the computing system 110 does not affect the operation of the said real-time solution and is intended to implement security functions for interaction with a computer network, for example the Internet. Also, the placement of security functions in the computing system 110 does not increase the computing load on the computing system 115. Thus, the real-time solution implemented on the computing system 115 is responsible for the real-time functionality, and the solution implemented on the computing system 110 is responsible for secure interaction over a computer network, such as, for example, the Internet. In one embodiment, the real-time solution on the computing system 115 is an RTOS, and the solution responsible for secure interaction over the Internet on the computing system 110 is a general-purpose OS.
На Фиг. 2 представлен пример системы управления исполнительными и/или измерительными устройствами в режиме реального времени (далее – система 200).Fig. 2 shows an example of a system for controlling executive and/or measuring devices in real time (hereinafter referred to as system 200).
В рамках реализации системы 200 представлено вычислительное устройство (далее – ВУ) 100. Примером реализации ВУ 100 может быть компьютер, ноутбук, микроконтроллер, программируемый логический контроллер (ПЛК) и любое другое вычислительное устройство, позволяющее осуществить заявленное изобретение.As part of the implementation of system 200, a computing device (hereinafter referred to as CD) 100 is presented. An example of the implementation of CD 100 may be a computer, laptop, microcontroller, programmable logic controller (PLC) and any other computing device that allows the implementation of the claimed invention.
Система 200 включает:System 200 includes:
• по меньшей мере одно ВУ 100, предназначенное для управления измерительным устройством и/или исполнительным устройством, а также обеспечения взаимодействия по компьютерной сети,• at least one VU 100, intended for controlling the measuring device and/or actuator, as well as ensuring interaction over a computer network,
• по меньшей мере один удаленный компьютер 210 для взаимодействия с ВУ 100 по компьютерной сети,• at least one remote computer 210 for interacting with the VU 100 via a computer network,
• по меньшей мере одно из устройств: • at least one of the devices:
o измерительное устройство 230 (далее – датчик 230),o measuring device 230 (hereinafter referred to as sensor 230),
o исполнительное устройство 235.o actuator 235.
Пример реализации удаленного компьютера 210 представлен на Фиг. 5. В свою очередь ВУ 100 включает СнК 105, содержащую вычислительную систему 110 и вычислительную систему 115 с изолированными памятью и периферией для каждой вычислительной системы. Вычислительная система 110 содержит операционную систему общего назначения 220 (далее – ОС 220), а вычислительная система 115 вычислительной системы 115 содержит операционную систему реального времени 225 (далее – ОСРВ 225). Для взаимодействия между вычислительной системой 110 и вычислительной системой 115 используется ранее упоминавшаяся при описании Фиг. 1 шина передачи данных 150.An example of the implementation of the remote computer 210 is shown in Fig. 5. In turn, the CU 100 includes a SoC 105, containing a computing system 110 and a computing system 115 with isolated memory and periphery for each computing system. The computing system 110 contains a general-purpose operating system 220 (hereinafter referred to as OS 220), and the computing system 115 of the computing system 115 contains a real-time operating system 225 (hereinafter referred to as RTOS 225). For interaction between the computing system 110 and the computing system 115, the data transmission bus 150 previously mentioned in the description of Fig. 1 is used.
Примером интерфейса у удаленного компьютера 210, предназначенного для взаимодействия с ВУ 100, является веб-браузер. В частном варианте реализации интерфейсом у удаленного компьютера 210 является любая программа, способная взаимодействовать с ВУ 100 (т.е. отправлять команды, которые ВУ 100 может интерпретировать), а также иметь возможность шифрования соединения.An example of an interface at the remote computer 210, intended for interaction with the VU 100, is a web browser. In a particular embodiment, the interface at the remote computer 210 is any program capable of interacting with the VU 100 (i.e. sending commands that the VU 100 can interpret), and also having the ability to encrypt the connection.
Вычислительные системы 110 и 115 имеют свою периферию 130 и 135 (порты SATA, Ethernet, флэш-память NAND, USB) и память 140 и 145 (оперативное запоминающее устройство, ОЗУ). Данный подход позволяет ОС 220 на вычислительном системе 110 и ОСРВ 225 на вычислительной системе 115 работать изолированно друг от друга. Вычислительная система 110 содержит по меньшей мере одно вычислительное ядро 120, аналогично вычислительная система 115 содержит по меньшей мере одно вычислительное ядро 125.The computing systems 110 and 115 have their own peripherals 130 and 135 (SATA ports, Ethernet, NAND flash memory, USB) and memory 140 and 145 (random access memory, RAM). This approach allows the OS 220 on the computing system 110 and the RTOS 225 on the computing system 115 to operate in isolation from each other. The computing system 110 contains at least one computing core 120, similarly the computing system 115 contains at least one computing core 125.
В одном варианте реализации ОС 220 представляет собой ОС с микроядерной архитектурой (например, KasperskyOS - https://os.kaspersky.ru/), предоставляющую минимальный набор элементарных функций управления процессами и абстракций для работы с оборудованием. Это способствует более высокому уровню надежности и безопасности микроядерной архитектуры ОС, так как небольшой объем кода микроядра проще проверить на наличие уязвимостей и других ошибок.In one embodiment, OS 220 is an OS with a microkernel architecture (for example, KasperskyOS - https://os.kaspersky.ru/), providing a minimal set of elementary functions for managing processes and abstractions for working with hardware. This contributes to a higher level of reliability and security of the microkernel architecture of the OS, since a small amount of microkernel code is easier to check for vulnerabilities and other errors.
ОС 220 отвечает как за взаимодействие через интерфейс на удаленном компьютере 210 по сети Интернет, так и за взаимодействие между компонентами самой ОС 220, которые могут быть доверенными и недоверенными компонентами, а также за взаимодействие с ОСРВ 225.OS 220 is responsible for both interaction via the interface on the remote computer 210 over the Internet, and for interaction between the components of OS 220 itself, which can be trusted and untrusted components, as well as for interaction with RTOS 225.
В частном варианте реализации ОС 220 выполняет роль шлюза безопасности (англ. secure gateway). Под шлюзом безопасности понимается точка соединения между сетями, между сегментами сетей или между программными приложениями в различных доменах безопасности, предназначенная для защиты сети в соответствии с существующей политикой безопасности (https://base.garant.ru/70246078/).In a particular implementation variant, OS 220 acts as a secure gateway. A security gateway is understood as a connection point between networks, between network segments, or between software applications in different security domains, designed to protect the network in accordance with the existing security policy (https://base.garant.ru/70246078/).
В свою очередь ОСРВ 225 предназначена для взаимодействия с ОС 220 и взаимодействия с по меньшей мере одним исполнительным устройством 235 и/или одним измерительным устройством – датчиком 230. ОСРВ 225 во время взаимодействия с ОС 220, например, осуществляет передачу статусных данных на ОС 220 и получение конфигурационных данных от ОС 220. Под статусными данными понимаются данные, которые содержат информацию о значениях или показателях с таких устройств как устройства 230 или 235. Полученные ОСРВ 225 конфигурационные данные от ОС 220 преобразуются в команды управления для исполнительного устройства 235. In turn, the RTOS 225 is intended for interaction with the OS 220 and interaction with at least one executive device 235 and/or one measuring device – sensor 230. The RTOS 225, during interaction with the OS 220, for example, transmits status data to the OS 220 and receives configuration data from the OS 220. Status data are understood to mean data that contain information about values or indicators from such devices as devices 230 or 235. The configuration data received by the RTOS 225 from the OS 220 are converted into control commands for the executive device 235.
В свою очередь взаимодействие ОСРВ 225 с датчиком 230 осуществляется путем сбора ОСРВ 225 данных с датчика 230. В частном варианте реализации осуществляют управление параметрами датчика 230. Примером данных, которые передаются от датчика 230 в ОСРВ 225 является состояние оборудования, температура в помещении, давление и пр. Частным примером управления параметрами датчика 230 является увеличение чувствительности датчика сигнализации. Взаимодействие ОСРВ 225 с исполнительным устройством 235 осуществляется путем передачи команд управления на исполнительное устройство 235. В частном варианте реализации передача команд управления от ОСРВ 225 на исполнительное устройство 235 осуществляется в зависимости от полученных данных с датчика 230. Также ОСРВ 225 передает от исполнительного устройства 235 в ОС 220 данные, касающиеся работы исполнительного устройства 235. Примерами данных, передаваемых от ОС 220 в ОСРВ 225, являются конфигурационные данные, такие как значения скорости подачи жидкости в резервуар, значения объема заполнения резервуара жидкостью, значения чувствительности датчика дымоуловителя. Примерами статусных данных передаваемых от ОСРВ 225 в ОС 220 являются состояние заслонок трубопровода, информация о состоянии шасси самолета, информация с счетчиков воды, информация с датчиков протечки воды, информация о состоянии здоровья больного и тому подобное. In turn, the interaction of the RTOS 225 with the sensor 230 is carried out by collecting data from the sensor 230 by the RTOS 225. In a particular embodiment, the parameters of the sensor 230 are controlled. An example of data that is transmitted from the sensor 230 to the RTOS 225 is the state of the equipment, the temperature in the room, the pressure, etc. A particular example of controlling the parameters of the sensor 230 is increasing the sensitivity of the alarm sensor. The interaction of the RTOS 225 with the actuator 235 is carried out by transmitting control commands to the actuator 235. In a particular embodiment, the transmission of control commands from the RTOS 225 to the actuator 235 is carried out depending on the data received from the sensor 230. The RTOS 225 also transmits data from the actuator 235 to the OS 220 concerning the operation of the actuator 235. Examples of data transmitted from the OS 220 to the RTOS 225 are configuration data, such as the values of the liquid feed rate into the tank, the values of the liquid filling volume of the tank, the sensitivity values of the smoke detector sensor. Examples of status data transmitted from the RTOS 225 to the OS 220 are the state of the pipeline flaps, information on the state of the aircraft chassis, information from water meters, information from water leak sensors, information on the health of the patient, and the like.
В частном варианте реализации периферия 135 вычислительной системы 115 имеет выводы общего назначения GPIO, которые используются для непосредственного подключения исполнительного устройства 235 и датчика 230. In a particular embodiment, the periphery 135 of the computing system 115 has general-purpose outputs GPIO, which are used to directly connect the actuator 235 and the sensor 230.
Как было описано ранее, для взаимодействия между вычислительной системой 110 и вычислительной системой 115 используется шина передачи данных 150. Это позволяет ОС 220 в вычислительной системе 110 обмениваться информацией и данными с ОСРВ 225 на вычислительной системе 115. В качестве шины передачи данных 150 применяется, например, RapidIO – высокопроизводительная коммуникационная шина.As described previously, a data bus 150 is used to communicate between the computing system 110 and the computing system 115. This allows the OS 220 in the computing system 110 to exchange information and data with the RTOS 225 on the computing system 115. For example, the data bus 150 may be RapidIO, a high-performance communication bus.
На Фиг. 3 представлен пример реализации решения, отвечающего за взаимодействие с вычислительным устройством через компьютерную сеть.Fig. 3 shows an example of the implementation of a solution responsible for interaction with a computing device via a computer network.
В варианте реализации ОС 220 включает в себя по меньшей мере такие компоненты, как монитор безопасности 310, веб-сервер 320, средство аутентификации 330, средство контроля сертификатов 340, и средство контроля взаимодействий 350. ОС 220 расположена в вычислительной системе 110.In an embodiment, the OS 220 includes at least such components as a security monitor 310, a web server 320, an authentication engine 330, a certificate control engine 340, and an interaction control engine 350. The OS 220 is located in the computing system 110.
Монитор безопасности 310 предназначен для определения разрешения или запрета на взаимодействие компонентов ОС 220 между собой с использованием механизмов межпроцессного взаимодействия (англ. inter-process communication, IPC) на основе политик безопасности. Примером политики безопасности является, например, «по умолчанию запрещено» (англ. default deny), запрещающая все взаимодействия компонентов между собой, которые явно не разрешены политикой безопасности. The security monitor 310 is designed to determine whether the OS 220 components are allowed to interact with each other using inter-process communication (IPC) mechanisms based on security policies. An example of a security policy is, for example, "default deny", which prohibits all interactions between components that are not explicitly allowed by the security policy.
Компоненты ОС 220 подразделяются на доверенные и недоверенные компоненты. Доверенными компонентами ОС 220 считаются по меньшей мере монитор безопасности 310, средство аутентификации 330, средство контроля сертификатов 340 и средство контроля взаимодействий 350. Указанные компоненты разработаны доверенным производителем программного обеспечения. Под недоверенными понимаются компоненты, которые не являются доверенными, но также не признаны вредоносными, например, при помощи антивирусного приложения.The components of the OS 220 are divided into trusted and untrusted components. Trusted components of the OS 220 are considered to be at least the security monitor 310, the authentication tool 330, the certificate control tool 340, and the interaction control tool 350. The specified components are developed by a trusted software manufacturer. Untrusted components are understood to be components that are not trusted, but also not recognized as malicious, for example, by an antivirus application.
Недоверенным компонентом ОС 220 считается веб-сервер 320. Под веб-сервером 320 понимается приложение, сервис или сервер, принимающий HTTP-запросы от удаленного компьютера 210, и выдающий ему HTTP-ответы, как правило, вместе с HTML-страницей (веб-страницей), изображением, файлом, медиапотоком или другими данными. Также веб-сервер 320 имеет свою отдельную файловую систему, которая необходима веб-серверу 320 для хранения веб-страниц, CSS-страниц (англ. Cascading style sheets) и другой необходимой для работы информации. Являясь недоверенным компонентом ОС 220 веб-сервер 320 не имеет доступа к файловым системам компонентов ОС 220 на основании установленных политик безопасности.An untrusted component of OS 220 is considered to be web server 320. Web server 320 is understood to be an application, service or server that receives HTTP requests from a remote computer 210 and gives it HTTP responses, usually together with an HTML page (web page), image, file, media stream or other data. Web server 320 also has its own separate file system, which is necessary for web server 320 to store web pages, CSS pages (Cascading style sheets) and other information necessary for operation. Being an untrusted component of OS 220, web server 320 does not have access to the file systems of OS components 220 based on the established security policies.
Как было указано ранее, одним из доверенных компонентов ОС 220 является монитор безопасности 310. Монитор безопасности 310 представляет собой компонент, который контролирует все межпроцессные взаимодействия между компонентами ОС 220, а также проверяет, соответствует ли каждое межпроцессное взаимодействие установленным политикам безопасности. Еще одним доверенным компонентом ОС 220 является средство аутентификации 330, которое осуществляет проверку аутентификации пользователей и хранит в своей файловой системе базу данных аутентифицированных пользователей (на фигурах не указана).As stated earlier, one of the trusted components of the OS 220 is the security monitor 310. The security monitor 310 is a component that monitors all interprocess communications between the components of the OS 220 and checks whether each interprocess communication complies with the established security policies. Another trusted component of the OS 220 is the authentication tool 330, which checks the authentication of users and stores a database of authenticated users in its file system (not shown in the figures).
Еще одним доверенным компонентом ОС 220 является средство контроля сертификатов 340, предназначенное для обеспечения поддержки HTTPS-соединения между интерфейсом на удаленном компьютере 210 и веб-сервером 320, а также для контроля сертификатов веб-страниц. Средство контроля сертификатов 340 содержит в своей файловой системе базу данных сертификатов (на фигурах не указана). В базе данных сертификатов средства контроля сертификатов 340 находятся SSL-сертификаты, представляющие цифровые сертификаты, удостоверяющие подлинность веб-сайта (веб-страницы) и позволяющие использовать зашифрованное соединение.Another trusted component of the OS 220 is the certificate control tool 340, designed to provide support for an HTTPS connection between the interface on the remote computer 210 and the web server 320, as well as to control the certificates of web pages. The certificate control tool 340 contains a certificate database in its file system (not shown in the figures). The certificate database of the certificate control tool 340 contains SSL certificates representing digital certificates that certify the authenticity of a website (web page) and allow the use of an encrypted connection.
Еще одним доверенным компонентом ОС 220 является средство контроля взаимодействий 350, которое осуществляет передачу конфигурационных данных от удаленного компьютера 210 по шине передачи данных 150 в ОСРВ 225, а также принимает из ОСРВ 225 данные, касающиеся работы датчика 230 (например, данные от датчика протечки воды), и передает их в удаленный компьютер 210. Another trusted component of the OS 220 is the interaction control tool 350, which transmits configuration data from the remote computer 210 via the data bus 150 to the RTOS 225, and also receives data from the RTOS 225 concerning the operation of the sensor 230 (for example, data from the water leak sensor), and transmits them to the remote computer 210.
Стоит отметить, что у таких компонентов, как средство аутентификации 330, средство контроля сертификатов 340, средство контроля взаимодействий 350 имеются свои файловые системы для работы с логами пользователей, а у средства контроля сертификатов 340 дополнительно имеется файловая система для работы с сертификатами. При этом, только у средства контроля взаимодействий 350 имеется доступ к сетевой файловой системе и только средство контроля взаимодействий 350 может принимать сетевые пакеты для взаимодействия с ОСРВ 225.It is worth noting that such components as authentication tool 330, certificate control tool 340, interaction control tool 350 have their own file systems for working with user logs, and certificate control tool 340 additionally has a file system for working with certificates. At the same time, only interaction control tool 350 has access to the network file system and only interaction control tool 350 can receive network packets for interaction with RTOS 225.
Рассмотрим подробнее пример взаимодействия компонентов при запуске ОС 220, аутентификации пользователя и завершении сессии пользователя. В момент запуска ОС 220 происходит инициализация IPC-каналов монитором безопасности 310 между компонентами ОС 220, при этом когда пользователь еще не аутентифицирован, на основании политик безопасности установлено, что веб-серверу 320 запрещено взаимодействовать со средством контроля взаимодействий 350 при установленном IPC-канале, но при этом веб-серверу 320 разрешено взаимодействовать со средством аутентификации 330 и средством контроля сертификатов 340 по установленным IPC-каналам. Для того чтобы веб-сервер 320 начал взаимодействовать по IPC-каналу со средством контроля взаимодействий 350, пользователь должен быть аутентифицирован в системе, используя удаленный компьютер 210. Аутентификация и авторизация пользователя обеспечивается средством аутентификации 330. Когда аутентификация проходит успешно, пользователь авторизован, начинается рабочая сессия с аутентифицированным пользователем на удаленном устройстве 210. Монитор безопасности 310 на основании политик безопасности устанавливает, что в один момент времени может поддерживается только одна сессия. Детальный процесс аутентификации пользователя будет раскрыт далее. Let us consider in more detail an example of interaction between components when starting OS 220, authenticating the user, and terminating the user session. When OS 220 starts, IPC channels are initialized by security monitor 310 between OS 220 components, and when the user is not yet authenticated, based on security policies, it is established that web server 320 is prohibited from interacting with interaction control tool 350 when the IPC channel is established, but web server 320 is allowed to interact with authentication tool 330 and certificate control tool 340 via established IPC channels. In order for the web server 320 to start interacting via the IPC channel with the interaction control tool 350, the user must be authenticated in the system using the remote computer 210. Authentication and authorization of the user is provided by the authentication tool 330. When authentication is successful, the user is authorized, and a working session with the authenticated user on the remote device 210 begins. The security monitor 310, based on security policies, establishes that only one session can be supported at a time. The detailed process of user authentication will be disclosed below.
В момент аутентификации пользователя, средство аутентификации 330 передает статус об успешной аутентификации пользователя средству контроля взаимодействий 350 по IPC-каналу. После получения средством контроля взаимодействий 350 статуса об успешной аутентификации монитор безопасности 310 на основании политик безопасности разрешает взаимодействие веб-сервера 320 и средства контроля взаимодействий 350 по IPC-каналу, при этом все так же разрешено взаимодействие веб-сервера 320 со средством аутентификации 330 и средством контроля сертификатов 340. После того, как, монитор безопасности 310 разрешил взаимодействие веб-сервера 320 и средства контроля взаимодействий 350, пользователь может взаимодействовать с ОСРВ 225 через средство контроля взаимодействий 350, а также получать информацию от ОСРВ 225. IPC-канал между веб-сервером 320 и средством контроля взаимодействий 350 остается открытым с разрешением взаимодействия через него до момента завершения сессии работы с пользователем. На время активной сессии генерируется ключ шифрования посредством удаленного компьютера 210, например по алгоритму Диффи-Хеллмана. Средство аутентификации 330 хранит ключ шифрования на протяжении активной сессии. В активной сессии на основании политики безопасности монитор безопасности 310 запрещает попытки аутентификации.At the moment of user authentication, authentication means 330 transmits the status of successful user authentication to interaction control means 350 via the IPC channel. After interaction control means 350 receives the status of successful authentication, security monitor 310, based on security policies, allows interaction between web server 320 and interaction control means 350 via the IPC channel, while interaction between web server 320 and authentication means 330 and certificate control means 340 is still allowed. After security monitor 310 has allowed interaction between web server 320 and interaction control means 350, the user can interact with RTOS 225 via interaction control means 350, and also receive information from RTOS 225. The IPC channel between web server 320 and interaction control means 350 remains open with permission to interact through it until the moment of termination of the working session with the user. During the active session, an encryption key is generated by the remote computer 210, for example, using the Diffie-Hellman algorithm. The authentication tool 330 stores the encryption key during the active session. In the active session, based on the security policy, the security monitor 310 prohibits authentication attempts.
В момент завершения сессии работы с пользователем средство аутентификации 330 передает монитору безопасности 310 статус завершения сессии, после чего монитор безопасности 310 разрывает IPC-канал между веб-сервером 320 и средством контроля взаимодействий 350. Для новой сессии пользователю необходимо снова проходить аутентификацию согласно установленным политикам безопасности. Также средство аутентификации 330 после отправки статуса завершения сессии монитору безопасности 310 удаляет ключ шифрования, сгенерированный при аутентификации. При этом сессия с пользователем может быть завершена по истечении определенного таймаута, например периода бездействия пользователя в течение 15 минут. В случае компрометации веб-сервера 320 и попытки взаимодействия со средством контроля взаимодействий 350 в тот момент, когда пользователь не аутентифицирован, монитор безопасности 310 на основании политик безопасности запретит взаимодействие веб-сервера 320 со средством контроля взаимодействий 350. At the moment of the end of the working session with the user, the authentication means 330 transmits the session end status to the security monitor 310, after which the security monitor 310 breaks the IPC channel between the web server 320 and the interaction control means 350. For a new session, the user must again undergo authentication in accordance with the established security policies. Also, the authentication means 330, after sending the session end status to the security monitor 310, deletes the encryption key generated during authentication. In this case, the session with the user can be ended after a certain timeout, for example, a period of user inactivity for 15 minutes. In the event of a compromise of the web server 320 and an attempt to interact with the interaction control means 350 at a time when the user is not authenticated, the security monitor 310, based on the security policies, will prohibit the interaction of the web server 320 with the interaction control means 350.
Рассмотрим детальный процесс аутентификации пользователя с передачей критической информации. Под критической информацией понимаются учетные данные пользователя, такие как логин и пароль, или такая информация, компрометация которой может привести к негативным последствиям.Let's look at the detailed process of user authentication with the transfer of critical information. Critical information refers to user credentials such as login and password, or information that, if compromised, could lead to negative consequences.
Посредством веб-сервера 320 устанавливают HTTPS-соединение с удаленным компьютером 210 и осуществляют передачу критической информации, такой как логин и пароль пользователя, от удаленного компьютера 210 в средство аутентификации 330 через веб-сервер 320. При этом передача критической информации через веб-сервер 320, который является недоверенным компонентом ОС 220, должна осуществляться безопасно, т.е. без возможности эту информацию скомпрометировать. Для решения такой задачи с использованием удаленного компьютера 210 устанавливается, например, зашифрованный канал. Далее будет описываться установление зашифрованного канала на примере использования криптографического протокола Диффи-Хеллмана (англ. Diffie–Hellman key exchange protocol, DH).By means of web server 320, an HTTPS connection is established with remote computer 210 and critical information, such as user login and password, is transferred from remote computer 210 to authentication means 330 via web server 320. In this case, the transfer of critical information via web server 320, which is an untrusted component of OS 220, must be carried out securely, i.e. without the possibility of compromising this information. To solve such a problem using remote computer 210, for example, an encrypted channel is established. The establishment of an encrypted channel will be described below using the Diffie-Hellman key exchange protocol (DH) as an example.
Между удаленным компьютером 210 и средством аутентификации 330 устанавливается зашифрованный канал через веб-сервер 320 для передачи информации аутентификации от удаленного компьютера 210 веб-серверу 320. Перед тем, как выработать криптографический ключ, средство контроля сертификатов 340 проводит проверку сертификата веб-страницы.An encrypted channel is established between the remote computer 210 and the authentication means 330 via the web server 320 to transmit authentication information from the remote computer 210 to the web server 320. Before generating a cryptographic key, the certificate control means 340 verifies the web page certificate.
В момент начала работы сессии с пользователем в веб-сервер 320 от удаленного компьютера 210 поступает запрос о начале работы сессии, далее от веб-сервера 320 запрос передается в средство аутентификации 330. В ответ на поступивший запрос от веб-сервера 320 средство аутентификации 330 генерирует значения алгоритма Диффи-Хеллмана g, p, A и передает их веб-серверу 320 и средству контроля сертификатов 330. В свою очередь веб-сервер 320 добавляет значения g, p, A в свою базу аутентификаций (на фигурах не указана), формирует веб-страницу для ввода данных аутентификации и передает веб-страницу удаленному компьютеру 210 в его интерфейс через средство контроля сертификатов 340. Далее средство контроля сертификатов 340 проверяет, корректно ли сформирована веб-страница веб-сервером 320 (т.к. в этой странице присутствуют значения для вычисления криптографического ключа K), а также корректность формата веб-страницы и место размещения значений g, p, A на ней и сравнивает с теми значениями g, p, A, которые были переданы от средства аутентификации 330. Пользователь вводит логин и пароль на удаленном компьютере 210, после чего генерируется криптографический ключ K. На этом ключе зашифровывается информация об аутентификации, а также находится значение B. Ключ передается обратно в средство аутентификации 330 через веб-сервер 320. В случае, если веб-сервер 320 подвергся кибератаке и был взломан, ключ с зашифрованной информацией невозможно будет расшифровать. Далее средство аутентификации 330, получив данные от удаленного компьютера 210, вычисляет на основании значения B значение K, дешифрует зашифрованную информацию, сверяет информацию аутентификации с базой данных аутентифицированных пользователей (на фигурах не указана) и аутентифицирует пользователя, если информация об аутентификации совпала с информацией из базы данных аутентифицированных пользователей.At the moment of the start of the session with the user, a request to start the session is received from the remote computer 210 to the web server 320, then the request is transmitted from the web server 320 to the authentication tool 330. In response to the request received from the web server 320, the authentication tool 330 generates the values of the Diffie-Hellman algorithm g, p, A and transmits them to the web server 320 and the certificate control tool 330. In turn, the web server 320 adds the values g, p, A to its authentication database (not shown in the figures), generates a web page for entering authentication data and transmits the web page to the remote computer 210 in its interface through the certificate control tool 340. Then, the certificate control tool 340 checks whether the web page was generated correctly by the web server 320 (since this page contains values for calculating the cryptographic key K), as well as the correctness of the format web page and the location of the values g, p, A on it and compares them with the values g, p, A that were transmitted from the authentication means 330. The user enters the login and password on the remote computer 210, after which the cryptographic key K is generated. The authentication information is encrypted on this key, and the value B is also found. The key is transmitted back to the authentication means 330 via the web server 320. If the web server 320 has been subjected to a cyber attack and has been hacked, the key with the encrypted information cannot be decrypted. Then the authentication means 330, having received the data from the remote computer 210, calculates the value K based on the value B, decrypts the encrypted information, compares the authentication information with the database of authenticated users (not shown in the figures) and authenticates the user if the authentication information matches the information from the database of authenticated users.
После того, как аутентификация прошла успешно, пользователь может взаимодействовать с приложениями в ОСРВ 225 с помощью удаленного компьютера 210 через ОС 220. В свою очередь пользователь отправляет с помощью удаленного компьютера 210 конфигурационные данные через средство контроля взаимодействий 350 по шине передачи данных 150 в ОСРВ 225. Полученные конфигурационные данные в ОСРВ 225 преобразуются в команды управления для исполнительного устройства 235 и отправляются далее на исполнительное устройство 235. В ответ ОСРВ 225 передает в ОС 220 информацию о работе исполнительного устройства 235.After the authentication is successful, the user can interact with applications in the RTOS 225 using the remote computer 210 via the OS 220. In turn, the user sends configuration data using the remote computer 210 via the interaction control tool 350 via the data transmission bus 150 to the RTOS 225. The received configuration data in the RTOS 225 are converted into control commands for the executive device 235 and sent further to the executive device 235. In response, the RTOS 225 transmits information about the operation of the executive device 235 to the OS 220.
В качестве примера реализации системы 200 с составом операционной системы 220 рассмотрим работу управления клапанами трубопровода с удаленным мониторингом и управлением.As an example of the implementation of system 200 with the composition of operating system 220, we will consider the operation of pipeline valve control with remote monitoring and control.
Пользователь использует удаленный компьютер 210 чтобы взаимодействовать с ОС 220 на ВУ 100 для управления клапанами трубопровода. Пользователь проходит аутентификацию, после чего ему становится доступен интерфейс управления трубопроводом. Интерфейс управления в виде HTML-страницы предоставляется веб-сервером 320, запущенным на ОС 220.The user uses the remote computer 210 to interact with the OS 220 on the VU 100 to control the pipeline valves. The user is authenticated, after which the pipeline control interface becomes available to him. The control interface in the form of an HTML page is provided by the web server 320 running on the OS 220.
Для полноценного понимания примера приведем конкретные понятия и величины. Резервуар с жидкостью объемом 1000 литров; входная труба, которая подает жидкость в резервуар с жидкостью с определенной скоростью Vin. Расход жидкости из резервуара обеспечивается выходными трубами, например, двумя – V1, V2. Максимальные скорости расхода жидкости по выходным трубам V1max, V2max, при этом все трубы могут перекрываться клапанами. При наполнении резервуара до уровня Hin,0 = 950 литров входной клапан входной трубы закрывается во избежание переполнения резервуара. При опустошении резервуара до уровня Hin,1 = 200 литров, входной клапан входной трубы открывается. Во избежание полного опустошения резервуара, при достижении жидкости уровня Hout,0 = 50 литров, с помощью клапанов выходных труб начинает ограничиваться скорость расхода жидкости. При этом сначала перекрывается выходная труба, имеющая наименьший приоритет подачи жидкости – начиная с трубы V2, заканчивая трубой V1 в случае продолжения падения уровня жидкости. Скорость подачи жидкости по выходным трубам возобновляется при достижении уровня жидкости в резервуаре Hout,1 = 800 литров.For a full understanding of the example, we will provide specific concepts and quantities. A tank with a liquid of 1000 liters; an inlet pipe that supplies liquid to the tank with liquid at a certain speed Vin. Liquid flow from the tank is provided by outlet pipes, for example, two - V1, V2. Maximum liquid flow rates through the outlet pipes are V1max, V2max, and all pipes can be closed by valves. When the tank is filled to a level of Hin,0 = 950 liters, the inlet valve of the inlet pipe closes to prevent the tank from overflowing. When the tank is emptied to a level of Hin,1 = 200 liters, the inlet valve of the inlet pipe opens. To avoid complete emptying of the tank, when the liquid reaches a level of Hout,0 = 50 liters, the liquid flow rate is limited by the valves of the outlet pipes. In this case, the outlet pipe with the lowest priority for liquid supply is closed first - starting with pipe V2, ending with pipe V1 if the liquid level continues to fall. The rate of liquid supply through the outlet pipes is resumed when the liquid level in the tank reaches Hout,1 = 800 liters.
Пользователь проходит аутентификацию в ОС 220 и задает следующие величины: Hin,0; Hout,1; Hin,1; Hout,0 – уровни жидкости в резервуаре (могут задаваться в процентном соотношении), при этом вводимые величины должны соответствовать следующим условиям: Hin,0 > Hout,1 > Hin,1 > Hout,0; Vin – скорость подачи жидкости в резервуар; V1,max, V2,max – максимальные скорости расхода жидкости по трубам. В процессе работы программы величины V1, V2 могут быть изменяемыми.The user authenticates in OS 220 and specifies the following values: Hin,0; Hout,1; Hin,1; Hout,0 – liquid levels in the tank (can be specified as a percentage), while the entered values must meet the following conditions: Hin,0 > Hout,1 > Hin,1 > Hout,0; Vin – liquid feed rate into the tank; V1,max, V2,max – maximum liquid flow rates through pipes. During the program operation, the values V1, V2 can be changed.
После того, как пользователь задал величины, все конфигурационные данные передаются от ОС 220 в ОСРВ 225 по шине передачи данных 150 и преобразуются в команды управления для исполнительного устройства 235. Если величины V1, V2 изменяются, то данные пересылаются заново в ОСРВ 225 от ОС 220 и также преобразуются в команды управления. В свою очередь от ОСРВ 225 передаются в ОС 220 данные об уровне жидкости в резервуаре с датчиков 230, а также о состоянии клапанов входной и выходных труб. При этом данные пересылаются от ОСРВ 225 в ОС 220 при изменении значения уровня воды в резервуаре больше, чем на 1% от максимального значения.After the user has set the values, all configuration data are transmitted from OS 220 to RTOS 225 via data transmission bus 150 and converted into control commands for actuator 235. If the values V1, V2 change, the data are retransmitted to RTOS 225 from OS 220 and also converted into control commands. In turn, RTOS 225 transmits data on the liquid level in the tank from sensors 230, as well as on the state of the valves of the inlet and outlet pipes to OS 220. In this case, data are transmitted from RTOS 225 to OS 220 when the water level in the tank changes by more than 1% of the maximum value.
На Фиг. 4 представлен пример способа взаимодействия с исполнительными устройствами и измерительными устройствами в режиме реального времени 400 (далее – способ 400). Представленный способ 400 реализуется под управлением ВУ 100, представленного при описании Фиг. 1 и системы 200, представленной при описании Фиг. 2.Fig. 4 shows an example of a method for interacting with actuators and measuring devices in real time 400 (hereinafter referred to as method 400). The presented method 400 is implemented under the control of the control unit 100 shown in the description of Fig. 1 and the system 200 shown in the description of Fig. 2.
Способ 400 осуществляется при помощи системы 200, при этом используется по меньшей мере вычислительное устройство 100. В свою очередь ВУ 100 включает СнК 105, содержащую вычислительную систему 110 и вычислительную систему 115 с изолированными памятью и периферией для каждой вычислительной системы. Для взаимодействия между вычислительной системой 110 и вычислительной системой 115 используется шина передачи данных 150. Стоит отметить, что в способе 400 взаимодействие с ВУ 100 осуществляется с помощью удаленного компьютера 210 по компьютерной сети, например сети Интернет. Пример вычислительного устройства представлен на Фиг. 5. Вычислительная система 110 содержит по меньшей мере одно вычислительное ядро 120, аналогично вычислительная система 115 содержит по меньшей мере одно вычислительное ядро 125.The method 400 is implemented using the system 200, wherein at least the computing device 100 is used. In turn, the CU 100 includes a SoC 105, containing a computing system 110 and a computing system 115 with isolated memory and periphery for each computing system. For interaction between the computing system 110 and the computing system 115, a data transmission bus 150 is used. It is worth noting that in the method 400, interaction with the CU 100 is implemented using a remote computer 210 over a computer network, for example the Internet. An example of a computing device is shown in Fig. 5. The computing system 110 contains at least one computing core 120, similarly, the computing system 115 contains at least one computing core 125.
Для реализации способа 400 ВУ 100 содержит вычислительную систему 110 с операционной системой общего назначения 220 (далее – ОС 220), и вычислительную систему 115 с операционной системой реального времени 225 (далее – ОСРВ 225), а также шину передачи данных 150 между вычислительной системой 110 и вычислительной системой 115. ОС 220 предназначено для взаимодействия с удаленным компьютером 210, взаимодействия между доверенными и недоверенными компонентами ОС 220, а также взаимодействия с ОСРВ 225. ОСРВ 225 предназначено для взаимодействия с ОС 220 для передачи в ОС 220 статусных данных, получения от ОС 220 конфигурационных данных или команд управления для измерительного или исполнительного устройств, преобразование полученных конфигурационных данных в команды управления для исполнительного устройства 235. Также взаимодействие с по меньшей мере одним из устройств: измерительным устройством 230 (далее - датчик 230) и исполнительным устройством 235. В варианте реализации ОС 220 включает в себя по меньшей мере такие компоненты, как монитор безопасности 310, веб-сервер 320, средство аутентификации 330, средство контроля сертификатов 340, и средство контроля взаимодействий 350 представленные ранее по Фиг. 3 и раскрытые по Фиг. 2.For implementing the method 400, the CU 100 comprises a computing system 110 with a general-purpose operating system 220 (hereinafter referred to as OS 220), and a computing system 115 with a real-time operating system 225 (hereinafter referred to as RTOS 225), as well as a data transmission bus 150 between the computing system 110 and the computing system 115. OS 220 is intended for interaction with a remote computer 210, interaction between trusted and untrusted components of OS 220, and interaction with RTOS 225. RTOS 225 is intended for interaction with OS 220 to transmit status data to OS 220, receive configuration data or control commands for the measuring or actuator from OS 220, and convert the received configuration data into control commands for the actuator 235. Also, interaction with at least one of the devices: measuring device 230 (hereinafter referred to as sensor 230) and actuator device 235. In an embodiment, the OS 220 includes at least such components as a security monitor 310, a web server 320, an authentication tool 330, a certificate control tool 340, and an interaction control tool 350 previously shown in Fig. 3 and disclosed in Fig. 2.
Доступ к ОСРВ 225 с ОС 220 возможен только аутентифицированному пользователю посредством удаленного компьютера 210.Access to RTOS 225 with OS 220 is possible only for an authenticated user via remote computer 210.
На шаге 410 с помощью удаленного компьютера 210 передают в вычислительную систему 110 запрос о начале работы сессии пользователя. Запрос осуществляют путем передачи от удаленного компьютера 210 в ОС 220 на веб-сервер 320 запроса о начале работы сессии, после чего веб-сервер 320 передает запрос в средство аутентификации 330. Примером интерфейса на удаленном компьютере 210, предназначенного для взаимодействия с вычислительной системой 110, является веб-браузер. В частном варианте реализации интерфейсом на удаленном компьютере 210 является любая программа способная отправлять команды, которые ВУ 100 может интерпретировать, а также шифровать соединение.At step 410, a request for the start of a user session is transmitted to the computing system 110 using the remote computer 210. The request is carried out by transmitting a request for the start of a session from the remote computer 210 to the OS 220 to the web server 320, after which the web server 320 transmits the request to the authentication means 330. An example of an interface on the remote computer 210 intended for interaction with the computing system 110 is a web browser. In a particular embodiment, the interface on the remote computer 210 is any program capable of sending commands that the VU 100 can interpret, as well as encrypt the connection.
На шаге 420 устанавливают с использованием удаленного компьютера 210 зашифрованный канал между удаленным компьютером 210 и вычислительной системой 110. Зашифрованный канал устанавливается между удаленным компьютером 210 и средством аутентификации 330 через веб-сервер 320. Установление зашифрованного канала на примере использования криптографического протокола Диффи-Хеллмана было приведено ранее при описании Фиг. 3.At step 420, an encrypted channel is established using the remote computer 210 between the remote computer 210 and the computing system 110. The encrypted channel is established between the remote computer 210 and the authentication means 330 via the web server 320. Establishing an encrypted channel using the Diffie-Hellman cryptographic protocol as an example was given earlier in the description of Fig. 3.
На шаге 430 проводят аутентификацию пользователя в вычислительной системе 110, в результате разрешают удаленному компьютеру 210 взаимодействие с вычислительной системой 115 в случае успешной аутентификации. Аутентификацию пользователя проводят посредством компонентов ОС 220 на вычислительной системе 110. Аутентифицированный пользователь взаимодействует с ОСРВ 225 на вычислительной системе 115.At step 430, the user is authenticated in the computing system 110, as a result of which the remote computer 210 is allowed to interact with the computing system 115 in the event of successful authentication. The user is authenticated by means of the OS 220 components on the computing system 110. The authenticated user interacts with the RTOS 225 on the computing system 115.
На шаге 440 с помощью удаленного компьютера 210 отправляют конфигурационные данные через вычислительную систему 110 в вычислительную систему 115. Например, передают значение заданного уровня жидкости в резервуаре из ранее описанного примера по Фиг. 3In step 440, using the remote computer 210, configuration data is sent through the computing system 110 to the computing system 115. For example, the value of the set liquid level in the tank from the previously described example of Fig. 3 is transmitted.
На шаге 450 преобразуют с помощью вычислительной системы 115 конфигурационные данные в команды управления для исполнительного устройства 235.At step 450, the configuration data is converted using the computing system 115 into control commands for the actuator 235.
На шаге 460 осуществляют взаимодействие вычислительной системы 115 с по меньшей мере одним измерительным устройством 230 и одним исполнительным устройством 235. Взаимодействие вычислительной системы 115 с датчиком 230 осуществляют путем сбора данных с датчика 230. Взаимодействие вычислительной системы 115 с исполнительным устройством 235 осуществляют путем передачи команд управления на исполнительное устройство 235. Например, передают данные об уровне жидкости в резервуаре, а также данные о состоянии клапанов входных и выходных труб из ранее описанного примера реализации системы 200. В частном варианте реализации команды управления передаются от вычислительной системы 115 на исполнительное устройство 235 в зависимости от полученных данных с датчика 230.At step 460, the computing system 115 interacts with at least one measuring device 230 and one actuator 235. The computing system 115 interacts with the sensor 230 by collecting data from the sensor 230. The computing system 115 interacts with the actuator 235 by transmitting control commands to the actuator 235. For example, data on the liquid level in the reservoir is transmitted, as well as data on the state of the valves of the inlet and outlet pipes from the previously described example of the implementation of the system 200. In a particular embodiment, control commands are transmitted from the computing system 115 to the actuator 235 depending on the data received from the sensor 230.
Как показано на Фиг. 5, компьютерная система 20 включает в себя: центральный процессор 21, системную память 22 и системную шину 23, которая связывает разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, способную взаимодействовать с любой другой шинной архитектурой. Примерами шин являются: PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C и другие подходящие соединения между компонентами компьютерной системы 20. Центральный процессор 21 содержит один или несколько процессоров, имеющих одно или несколько ядер. Центральный процессор 21 исполняет один или несколько наборов машиночитаемых инструкций, реализующих способы, представленные в настоящем документе. Системная память 22 может быть любой памятью для хранения данных и/или компьютерных программ, исполняемых центральным процессором 21. Системная память может содержать как постоянное запоминающее устройство (ПЗУ) 24, так и память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами компьютерной системы 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.As shown in Fig. 5, the computer system 20 includes: a central processor 21, a system memory 22 and a system bus 23 that connects various system components, including memory associated with the central processor 21. The system bus 23 is implemented as any bus structure known in the art, which in turn contains a bus memory or a bus memory controller, a peripheral bus and a local bus capable of interacting with any other bus architecture. Examples of buses are: PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C and other suitable connections between components of the computer system 20. The central processor 21 includes one or more processors having one or more cores. The central processor 21 executes one or more sets of machine-readable instructions that implement the methods presented in this document. The system memory 22 may be any memory for storing data and/or computer programs executed by the central processor 21. The system memory may contain both a read-only memory (ROM) 24 and a random access memory (RAM) 25. The main input/output system (BIOS) 26 contains the main procedures that ensure the transfer of information between elements of the computer system 20, for example, at the time of loading the operating system using the ROM 24.
Компьютерная система 20 включает в себя одно или несколько устройств хранения данных, таких как одно или несколько извлекаемых запоминающих устройств 27, одно или несколько неизвлекаемых запоминающих устройств 28, или комбинации извлекаемых и неизвлекаемых устройств. Одно или несколько извлекаемых запоминающих устройств 27 и/или неизвлекаемых запоминающих устройств 28 подключены к системной шине 23 через интерфейс 32. В одном из вариантов реализации извлекаемые запоминающие устройства 27 и соответствующие машиночитаемые носители информации представляют собой энергонезависимые модули для хранения компьютерных инструкций, структур данных, программных модулей и других данных компьютерной системы 20. Системная память 22, извлекаемые запоминающие устройства 27 и неизвлекаемые запоминающие устройства 28 могут использовать различные машиночитаемые носители информации. Примеры машиночитаемых носителей информации включают в себя машинную память, такую как кэш-память, SRAM, DRAM, ОЗУ не требующую конденсатора (Z-RAM), тиристорную память (T-RAM), eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; флэш-память или другие технологии памяти, такие как твердотельные накопители (SSD) или флэш-накопители; магнитные кассеты, магнитные ленты и магнитные диски, такие как жесткие диски или дискеты; оптические носители, такие как компакт-диски (CD-ROM) или цифровые универсальные диски (DVD); и любые другие носители, которые могут быть использованы для хранения нужных данных и к которым может получить доступ компьютерная система 20.The computer system 20 includes one or more data storage devices, such as one or more removable storage devices 27, one or more non-removable storage devices 28, or combinations of removable and non-removable devices. One or more removable storage devices 27 and/or non-removable storage devices 28 are connected to the system bus 23 via the interface 32. In one embodiment, the removable storage devices 27 and the corresponding computer-readable storage media are non-volatile modules for storing computer instructions, data structures, program modules and other data of the computer system 20. The system memory 22, the removable storage devices 27 and the non-removable storage devices 28 can use various computer-readable storage media. Examples of computer-readable storage media include computer memory such as cache memory, SRAM, DRAM, Z-RAM, T-RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technologies such as solid-state drives (SSD) or flash drives; magnetic cassettes, magnetic tapes, and magnetic disks such as hard disks or floppy disks; optical media such as compact discs (CD-ROM) or digital versatile discs (DVD); and any other media that can be used to store the desired data and that can be accessed by computer system 20.
Системная память 22, извлекаемые запоминающие устройства 27 и неизвлекаемые запоминающие устройства 28, содержащиеся в компьютерной системе 20 используются для хранения операционной системы 35, приложений 37, других программных модулей 38 и программных данных 39. Компьютерная система 20 включает в себя периферийный интерфейс 46 для передачи данных от устройств ввода 40, таких как клавиатура, мышь, стилус, игровой контроллер, устройство голосового ввода, устройство сенсорного ввода, или других периферийных устройств, таких как принтер или сканер через один или несколько портов ввода/вывода, таких как последовательный порт, параллельный порт, универсальная последовательная шина (USB) или другой периферийный интерфейс. Устройство отображения 47, такое как один или несколько мониторов, проекторов или встроенных дисплеев, также подключено к системной шине 23 через выходной интерфейс 48, такой как видеоадаптер. Помимо устройств отображения 47, компьютерная система 20 оснащена другими периферийными устройствами вывода (на Фиг. N не показаны), такими как динамики и другие аудиовизуальные устройства.The system memory 22, the removable storage devices 27 and the non-removable storage devices 28 contained in the computer system 20 are used to store the operating system 35, applications 37, other program modules 38 and program data 39. The computer system 20 includes a peripheral interface 46 for transmitting data from input devices 40, such as a keyboard, mouse, stylus, game controller, voice input device, touch input device, or other peripheral devices, such as a printer or scanner through one or more input/output ports, such as a serial port, parallel port, universal serial bus (USB) or other peripheral interface. A display device 47, such as one or more monitors, projectors or built-in displays, is also connected to the system bus 23 through an output interface 48, such as a video adapter. In addition to the display devices 47, the computer system 20 is equipped with other peripheral output devices (not shown in Fig. N), such as speakers and other audiovisual devices.
Компьютерная система 20 может работать в сетевом окружении, используя сетевое соединение с одним или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 является рабочим персональным компьютером или сервером, который содержит большинство или все упомянутые компоненты, отмеченные ранее при описании сущности компьютерной системы 20, представленной на Фиг. N. В сетевом окружении также могут присутствовать и другие устройства, например, маршрутизаторы, сетевые станции или другие сетевые узлы. Компьютерная система 20 может включать один или несколько сетевых интерфейсов 51 или сетевых адаптеров для связи с удаленными компьютерами 49 через одну или несколько сетей, таких как локальная компьютерная сеть (LAN) 50, глобальная компьютерная сеть (WAN), интранет и Интернет. Примерами сетевого интерфейса 51 являются интерфейс Ethernet, интерфейс Frame Relay, интерфейс SONET и беспроводные интерфейсы.The computer system 20 may operate in a network environment using a network connection with one or more remote computers 49. The remote computer (or computers) 49 is a working personal computer or a server that contains most or all of the components mentioned earlier in describing the nature of the computer system 20 shown in Fig. N. Other devices may also be present in the network environment, such as routers, network stations or other network nodes. The computer system 20 may include one or more network interfaces 51 or network adapters for communicating with the remote computers 49 via one or more networks, such as a local area network (LAN) 50, a wide area network (WAN), an intranet and the Internet. Examples of a network interface 51 are an Ethernet interface, a Frame Relay interface, a SONET interface and wireless interfaces.
Варианты раскрытия настоящего изобретения могут представлять собой систему, способ, или машиночитаемый носитель (или носитель) информации.Embodiments of the present invention may be a system, a method, or a computer-readable storage medium (or carrier).
Машиночитаемый носитель информации является осязаемым устройством, которое сохраняет и хранит программный код в форме машиночитаемых инструкций или структур данных, к которым имеет доступ центральный процессор 21 компьютерной системы 20. Машиночитаемый носитель может быть электронным, магнитным, оптическим, электромагнитным, полупроводниковым запоминающим устройством или любой подходящей их комбинацией. В качестве примера, такой машиночитаемый носитель информации может включать в себя память с произвольным доступом (RAM), память только для чтения (ROM), EEPROM, портативный компакт-диск с памятью только для чтения (CD-ROM), цифровой универсальный диск (DVD), флэш-память, жесткий диск, портативную компьютерную дискету, карту памяти, дискету или даже механически закодированное устройство, такое как перфокарты или рельефные структуры с записанными на них инструкциями.A computer-readable storage medium is a tangible device that stores and stores program code in the form of computer-readable instructions or data structures that are accessible to the central processor 21 of the computer system 20. The computer-readable storage medium may be an electronic, magnetic, optical, electromagnetic, semiconductor memory device, or any suitable combination thereof. As an example, such a computer-readable storage medium may include random access memory (RAM), read-only memory (ROM), EEPROM, a portable compact disc with read-only memory (CD-ROM), a digital versatile disk (DVD), flash memory, a hard disk, a portable computer diskette, a memory card, a floppy disk, or even a mechanically encoded device such as punched cards or relief structures with instructions recorded thereon.
Система и способ, настоящего изобретения, могут быть рассмотрены в терминах средств. Термин «средство», используемый в настоящем документе, относится к реальному устройству, компоненту или группе компонентов, реализованных с помощью аппаратного обеспечения, например, с помощью интегральной схемы, специфичной для конкретного приложения (ASIC) или FPGA, или в виде комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора машиночитаемых инструкций для реализации функциональности средства, которые (в процессе выполнения) превращают микропроцессорную систему в устройство специального назначения. Средство также может быть реализовано в виде комбинации этих двух компонентов, при этом некоторые функции могут быть реализованы только аппаратным обеспечением, а другие функции - комбинацией аппаратного и программного обеспечения. В некоторых вариантах реализации, по крайней мере, часть, а в некоторых случаях и все средство может быть выполнено на центральном процессоре 21 компьютерной системы 20. Соответственно, каждое средство может быть реализовано в различных подходящих конфигурациях и не должно ограничиваться каким-либо конкретным вариантом реализации, приведенным в настоящем документе.The system and method of the present invention can be considered in terms of means. The term "means" as used herein refers to an actual device, component or group of components implemented by hardware, such as an application-specific integrated circuit (ASIC) or FPGA, or as a combination of hardware and software, such as a microprocessor system and a set of machine-readable instructions for implementing the functionality of the means, which (during execution) transform the microprocessor system into a special-purpose device. The means can also be implemented as a combination of these two components, whereby some functions can be implemented only by hardware, and other functions - by a combination of hardware and software. In some embodiments, at least part, and in some cases all, of the means can be executed on the central processor 21 of the computer system 20. Accordingly, each means can be implemented in various suitable configurations and should not be limited to any particular embodiment given herein.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что при разработке любого реального варианта осуществления настоящего изобретения необходимо принять множество решений, специфических для конкретного варианта осуществления, для достижения конкретных целей, и эти конкретные цели будут разными для разных вариантов осуществления. Понятно, что такие усилия по разработке могут быть сложными и трудоемкими, но, тем не менее, они будут обычной инженерной задачей для тех, кто обладает обычными навыками в данной области, пользуясь настоящим раскрытием изобретения.Finally, it should be noted that the information provided in the description is examples that do not limit the scope of the present invention defined by the claims. It will be clear to one skilled in the art that in developing any actual embodiment of the present invention, many decisions specific to a particular embodiment must be made in order to achieve specific goals, and these specific goals will be different for different embodiments. It is understood that such development efforts can be complex and time-consuming, but, nevertheless, they will be a routine engineering task for those of ordinary skill in the art, using the present disclosure.
Claims (14)
Publications (1)
Publication Number | Publication Date |
---|---|
RU2825561C1 true RU2825561C1 (en) | 2024-08-27 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3267649B1 (en) * | 2016-07-08 | 2019-02-13 | Omron Corporation | Method and industrial computing apparatus for performing a secure communication |
RU195051U1 (en) * | 2019-06-11 | 2020-01-14 | Общество с ограниченной ответственностью "Прософт-Системы" | PROGRAMMABLE LOGIC CONTROLLER |
EP3611642B1 (en) * | 2018-08-17 | 2020-08-12 | Omron Corporation | Method for operating an industrial pc device and industrial pc device |
RU2749103C1 (en) * | 2019-12-13 | 2021-06-04 | Акционерное общество "ТеконГруп" | Industrial programmable controller |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3267649B1 (en) * | 2016-07-08 | 2019-02-13 | Omron Corporation | Method and industrial computing apparatus for performing a secure communication |
EP3611642B1 (en) * | 2018-08-17 | 2020-08-12 | Omron Corporation | Method for operating an industrial pc device and industrial pc device |
RU195051U1 (en) * | 2019-06-11 | 2020-01-14 | Общество с ограниченной ответственностью "Прософт-Системы" | PROGRAMMABLE LOGIC CONTROLLER |
RU2749103C1 (en) * | 2019-12-13 | 2021-06-04 | Акционерное общество "ТеконГруп" | Industrial programmable controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ayoade et al. | Decentralized IoT data management using blockchain and trusted execution environment | |
US10338957B2 (en) | Provisioning keys for virtual machine secure enclaves | |
US8261320B1 (en) | Systems and methods for securely managing access to data | |
EP2372597B1 (en) | Methods and systems for secure remote wake, boot, and login to a computer from a mobile device | |
CN105022954B (en) | Soar tri-state operation system security kernel service dynamic operation method on CPU | |
US8332604B2 (en) | Methods to securely bind an encryption key to a storage device | |
CN101411163A (en) | System and method for tracking the security enforcement in a grid system | |
US8082551B2 (en) | System and method for sharing a trusted platform module | |
US9147076B2 (en) | System and method for establishing perpetual trust among platform domains | |
US9053305B2 (en) | System and method for generating one-time password for information handling resource | |
US12072990B2 (en) | Multiple physical request interfaces for security processors | |
CN111158906A (en) | Credible cloud system for active immunization | |
EP3811250B1 (en) | Systems and methods for controlling access to a peripheral device | |
US11368291B2 (en) | Mutually authenticated adaptive management interfaces for interaction with sensitive infrastructure | |
WO2022143429A1 (en) | Computer system, trusted functional assembly, and operation method | |
US10114939B1 (en) | Systems and methods for secure communications between devices | |
US12105859B2 (en) | Managing storage of secrets in memories of baseboard management controllers | |
CN116708425A (en) | Server supporting secure access of user's terminal equipment and control method thereof | |
US11960737B2 (en) | Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof | |
US11811919B2 (en) | Remote hardware execution service with customer consented debugging | |
RU2825561C1 (en) | Programmable logic controller for controlling real-time devices | |
RU2828598C1 (en) | Real-time device control system and method | |
Shao et al. | A new secure architecture of network computer based on single CPU and Dual Bus | |
US11347859B2 (en) | Systems and methods for leveraging authentication for cross operating system single sign on (SSO) capabilities | |
US11328050B2 (en) | Measured execution of trusted agents in a resource constrained environment with proof of work |