Control Program Code Visibility Switching for Secure Maintenance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing control programs for control devices like PLCs face risks of unauthorized use due to potential source code viewing or falsification, necessitating a mechanism to switch between modes where part of the source code is concealed and published.
Innovation Solution
A development support device and method that includes a reception unit, determination unit, and code generation unit to generate and output object code based on user instructions, allowing switching between modes where the source code is either published or concealed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the source code of a control program is published for maintenance and viewing, then the ease of operation and maintenance is improved, but the risk of unauthorized use and source code falsification increases
Solution Approach 1:
The patent segments the source code into multiple parts or modules, allowing selective publication of only necessary portions for maintenance while keeping critical sections concealed. This enables maintenance personnel to access required code segments without exposing the entire source code base to potential unauthorized use or falsification.
Solution Approach 2:
The patent applies different quality attributes to different parts of the source code - some portions are published with full visibility for maintenance purposes, while other critical portions remain concealed. This local differentiation allows the system to simultaneously achieve ease of maintenance for non-critical sections while maintaining security for sensitive sections.
2Reliability
If the source code is concealed to protect from unauthorized use, then the reliability and security are improved, but the ease of maintenance and viewing deteriorates
Solution Approach 1:
The source code is divided into segments where critical functions remain concealed for security while non-critical functions are published for maintenance. This segmentation allows maintenance personnel to work on accessible portions without needing to decrypt or access the entire concealed code base.
Solution Approach 2:
The patent introduces an intermediary mechanism (such as a decryption key management system or selective disclosure protocol) that allows maintenance personnel to access specific code portions when needed, without compromising the overall concealed state. This intermediary enables controlled access that balances security requirements with maintenance needs.
3Reliability
If authentication mechanisms are implemented to prevent unauthorized use, then the source code security is improved, but the device complexity increases
Solution Approach 1:
The patent implements a universal authentication mechanism that serves multiple functions - it not only prevents unauthorized access but also manages selective code disclosure, tracks access logs, and controls maintenance operations. This multi-functional approach consolidates security operations into a unified system rather than requiring separate mechanisms for each function.
Solution Approach 2:
The authentication system is designed to be self-managing, automatically verifying credentials, controlling access rights, and managing code disclosure permissions without requiring manual intervention. This self-service capability reduces the operational complexity of managing security while maintaining robust access control.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
There is provided a mechanism capable of switching between a mode in which a part of a source code of a control program is concealed and a mode in which the part of the source code can be published. A source code of a control program (210) includes a first source code (211) to be concealed and a second source code (214) other than the first source code; a development support device includes a code generation unit configured to generate an object code from the source code of the control program and output the object code; and when an instruction indicates a first mode, the code generation unit outputs, for the first source code, both the first source code and a first object code generated from the first source code, and when the instruction indicates a second mode, the code generation unit outputs the first object code generated from the first source code without outputting the first source code.