KR101252918B1 - Control device and management device - Google Patents
Control device and management device Download PDFInfo
- Publication number
- KR101252918B1 KR101252918B1 KR1020100079652A KR20100079652A KR101252918B1 KR 101252918 B1 KR101252918 B1 KR 101252918B1 KR 1020100079652 A KR1020100079652 A KR 1020100079652A KR 20100079652 A KR20100079652 A KR 20100079652A KR 101252918 B1 KR101252918 B1 KR 101252918B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- authentication
- unit
- control program
- ladder
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Programmable Controllers (AREA)
Abstract
본 발명은 제어 프로그램을 특정한 PLC 상에서밖에 동작할 수 없도록 하기 위해서, 액세스 요구 수신 처리부(11)가 제어 프로그램과 난수를 입력하여, 인증 처리부(10b)가 난수와 PLC(200)의 고유의 시리얼 ID에 해시 연산을 행하고, 인증 래더 자동 생성 처리부(13)가 해시값으로부터 전용 디바이스를 선택하여, 선택한 전용 디바이스가 표시되는 인증 래더를 생성하며, 인증 래더 삽입 처리부(14)가 인증 래더를 제어 프로그램에 삽입하여 저장한다. 제어 프로그램의 실행시에, 인증 처리부(10b)가 난수와 시리얼 ID에 해시 연산을 행하고, 전용 디바이스 설정부(17)가 해시값으로부터 전용 디바이스를 선택하여, 선택한 전용 디바이스를 온으로 설정하고, 제어 프로그램 실행 제어부(16)가 제어 프로그램을 실행한다. 인증 래더와 동일한 전용 디바이스가 온으로 되어 있으면 제어 프로그램이 올바르게 동작하고, 온이 아니면 제어 프로그램이 동작하지 않는다.In the present invention, the access request reception processing unit 11 inputs the control program and a random number so that the control program can be operated only on a specific PLC, and the authentication processing unit 10b receives the random number and the unique serial ID of the PLC 200. Hash operation is executed, the authentication ladder automatic generation processing unit 13 selects a dedicated device from the hash value, generates an authentication ladder in which the selected dedicated device is displayed, and the authentication ladder insertion processing unit 14 sends the authentication ladder to the control program. Insert and save. At the time of execution of the control program, the authentication processing unit 10b performs a hash operation on the random number and the serial ID, the dedicated device setting unit 17 selects the dedicated device from the hash value, sets the selected dedicated device to ON, and controls The program execution control unit 16 executes the control program. If the same dedicated device as the authentication ladder is turned on, the control program operates correctly. Otherwise, the control program does not operate.
Description
본 발명은 프로그램의 부정 사용을 방지하는 기술에 관한 것이다. The present invention relates to a technique for preventing fraudulent use of a program.
보다 구체적으로는, 본 발명은, 예컨대, FA(Factory Automation) 시스템에 있어서 PLC(Programmable Logic Controller)에 저장되어 있는 제어 프로그램(래더(ladder) 프로그램)의 부정 사용을 방지하는 기술에 관한 것이다.
More specifically, the present invention relates to a technique for preventing the illegal use of a control program (ladder program) stored in a programmable logic controller (PLC), for example, in a FA (Factory Automation) system.
일반적으로 FA 시스템에서는, 타사(타인)에 공개하고 싶지 않은 제어 프로그램(래더 프로그램) 등의 보호 자산에 대한 부정 액세스를 방지하는 수단으로서는, 패스워드를 이용하는 방법이나 보호 자산을 암호화하는 방법이 취급되고 있다. In general, a FA system uses a password or a method of encrypting a protected asset as a means of preventing unauthorized access to a protected asset such as a control program (ladder program) that is not intended to be disclosed to a third party. .
그러나, 패스워드를 이용하는 방법에서는, 예컨대 제어 프로그램에 대해 패스워드를 설정해서 액세스 제어하더라도, 그 제어 프로그램에 복수의 개발자가 액세스하게 되는 경우는 복수의 개발자 사이에서 공통의 패스워드를 설정하고 있기 때문에, 타인에게 추측되기 쉬운 패스워드를 부여하는 등의 취약성에 대한 과제가 있다. However, in the method of using a password, even if a password is set for a control program for access control, when a plurality of developers access the control program, a common password is set among the plurality of developers. There are challenges to vulnerabilities such as giving a password that is easy to guess.
또한, 제어 프로그램과 패스워드 등의 인증에 이용하는 정보를 따로따로 관리하고, 인증 처리도 제어 프로그램과는 별도로 실현되고 있기 때문에, 제어 프로그램과의 관련이 없으면 제어 프로그램에 대한 액세스 제어를 할 수 없게 된다. In addition, since information used for authentication, such as a control program and a password, is managed separately, and the authentication process is also implemented separately from the control program, access control to the control program cannot be performed unless it is associated with the control program.
이 때문에, 보호하고 싶은 데이터 그 자체를 암호화하는 방법 등이 취해지고 있지만, 암호화에는 키를 관리하기 위해서 특별한 하드웨어가 필요하게 되어, 장치가 복잡하고 고가로 된다고 하는 과제가 있다. For this reason, a method of encrypting the data itself to be protected is taken, but encryption requires special hardware in order to manage the key, resulting in a problem that the device is complicated and expensive.
또한, FA 시스템에 있어서의 제어 프로그램(래더 프로그램)에서는, 디바이스의 온/오프 상태에 따라서 제어 기기로의 제어 신호를 온/오프하는 것이므로, 제어 프로그램의 실행중에 암호화나 복호화의 처리를 실행할 수 없다. In addition, in the control program (ladder program) in the FA system, the control signal to the control device is turned on / off in accordance with the on / off state of the device. Therefore, the encryption or decryption process cannot be executed during the execution of the control program. .
이에 의해, 암호화를 사용하지 않고서 제어 프로그램의 개찬이나 모니터를 방지하는 방법으로서, 모니터 장치로부터의 제어 프로그램에 대한 액세스 요구에 대하여 미리 설정된 액세스 권한에 의해 응답을 제한하는 방법이 있다(예컨대, 특허 문헌 1). Thereby, as a method of preventing alteration or monitoring of a control program without using encryption, there is a method of limiting a response by a preset access authority to an access request to a control program from a monitor device (for example, a patent document). One).
[선행기술문헌][Prior Art Literature]
[특허문헌][Patent Literature]
특허 문헌 1: 일본 특허 공개 제2005-135165호 공보
Patent Document 1: Japanese Patent Application Laid-Open No. 2005-135165
이와 같이 각 제어 프로그램에 대하여 미리 설정된 액세스 권한에 의해 모니터 장치로부터의 액세스 요구로의 응답을 제한하는 방법에서는, 모니터 장치로부터의 액세스 제어를 행하는 것이 목적이며, 제어 프로그램을 특정한 PLC 상에서만 실행할 수 있게 하기 위한 제어를 행하고 있는 것은 아니다. As described above, in the method of restricting the response to the access request from the monitor apparatus by the access authority set in advance for each control program, the purpose is to perform access control from the monitor apparatus, so that the control program can be executed only on a specific PLC. The control is not performed.
이 때문에, 판독 권한을 가지고 있으면 PLC로부터 모니터 장치로 제어 프로그램을 판독할 수 있고, 또한 판독한 제어 프로그램은 다른 PLC로 기입할 수 있기 때문에, 복사처인 PLC에 의해 제어 프로그램의 부정 이용이 가능해지는 과제가 있다. For this reason, if the user has the read authority, the control program can be read from the PLC to the monitor device, and the read control program can be written to another PLC. Therefore, the illegal use of the control program can be made possible by the PLC as the copy destination. There is.
본 발명은 상기 과제를 감안하여 이루어진 것으로, 그 주된 목적은, 특정한 제어 장치에만 사용이 허가되어 있는 제어 프로그램(래더 프로그램)이, 특정한 제어 장치 상에서밖에 동작할 수 없도록 하기 위한 제어 프로그램의 부정 이용 방지 기능을 실현하는 것이다.
SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and its main object is to prevent unauthorized use of a control program to ensure that a control program (ladder program) that is permitted to be used only for a specific control device can operate only on a specific control device. It is to realize the function.
본 발명에 따른 제어 장치는, 상기 제어 장치에 고유하게 설정되어 있는 고유 식별 정보를 기억하는 고유 식별 정보 기억부와, 상기 제어 장치의 제어 처리의 대상으로 되는 대상 디바이스의 디바이스 번호가 포함되고, 상기 제어 장치 이외의 장치에 의한 사용이 허가되어 있지 않은 래더 프로그램을 메인 프로그램으로서 입력하는 프로그램 입력부와, 상기 고유 식별 정보에 근거하여, 상기 제어 장치 이외의 장치에 의한 메인 프로그램의 사용을 방지하는 래더 프로그램을 인증 프로그램으로서 생성하는 인증 프로그램 생성부와, 메인 프로그램과 인증 프로그램을 합성하여 합성 프로그램으로 하는 프로그램 합성부와, 상기 합성 프로그램을 기억하는 프로그램 기억부를 갖고, 상기 인증 프로그램 생성부는, 대상 디바이스의 디바이스 번호를 의사(疑似)한 디바이스 번호로서 인증을 위해서 이용되는 복수의 인증용 디바이스의 디바이스 번호를 인증용 디바이스 번호로서 관리하고, 상기 고유 식별 정보에 근거하여, 하나 이상의 인증용 디바이스 번호를 선택하며, 선택한 선택 인증용 디바이스 번호가 포함되는 래더 프로그램으로서, 상기 합성 프로그램으로서 상기 메인 프로그램과 함께 실행될 때에, 상기 인증 프로그램 생성부의 선택 동작으로부터 독립하여 상기 고유 식별 정보에 근거해서 상기 선택 인증용 디바이스 번호가 정확히 선택되고, 상기 선택 인증용 디바이스 번호에 대응하는 선택 인증용 디바이스의 각각에 대하여 소정의 설정 처리가 행해지면, 정상으로 동작해서 상기 메인 프로그램이 정상으로 동작하고, 상기 합성 프로그램으로서 상기 메인 프로그램과 함께 실행될 때에, 상기 선택 인증용 디바이스의 각각에 대하여 상기 설정 처리가 행해지지 않는 경우에는, 정상으로 동작하지 않고 상기 메인 프로그램의 동작이 정지하는 래더 프로그램을 인증 프로그램으로서 생성하는 것을 특징으로 한다.
The control apparatus which concerns on this invention contains the unique identification information storage part which stores the unique identification information uniquely set to the said control apparatus, and the device number of the target device made into the control process of the said control apparatus, A program input unit for inputting a ladder program which is not permitted to be used by a device other than the control device as a main program, and a ladder program that prevents the use of the main program by devices other than the control device based on the unique identification information. An authentication program generation unit for generating an authentication program as an authentication program, a program synthesis unit for synthesizing the main program and the authentication program into a synthesis program, and a program storage unit for storing the synthesis program, wherein the authentication program generation unit is a device of a target device. The doctor's number Manages the device numbers of a plurality of authentication devices used for authentication as the device number as the authentication device number, selects one or more authentication device numbers based on the unique identification information, and selects the selected authentication device As a ladder program including a number, when executed together with the main program as the synthesis program, the device for authentication for selection is correctly selected based on the unique identification information independently of the selection operation of the authentication program generator, and the selection is performed. When a predetermined setting process is performed for each of the selected authentication devices corresponding to the device number for authentication, the line is operated normally and the main program operates normally, and when the line is executed together with the main program as the synthesized program, the line For each of the authentication devices for when the setting process is not performed, and a ladder program for the operation of the main program without having to stop the normal operation characterized by generating a certification program.
본 발명에서는, 메인 프로그램의 저장시에, 제어 장치에 고유하게 설정되어 있는 고유 식별 정보에 근거해서 선택한 선택 인증용 디바이스 번호가 포함되는 래더 프로그램을 인증 프로그램으로서 생성하고, 인증 프로그램을 메인 프로그램에 합성하여, 메인 프로그램의 실행시에 고유 식별 정보에 근거해서 올바르게 선택 인증용 디바이스 번호가 선택되고, 선택 인증용 디바이스에 설정 처리가 행해지고 있으면 메인 프로그램이 정상으로 동작하며, 설정 처리가 행해지고 있지 않은 경우는 인증 프로그램에 의해서 메인 프로그램이 정지한다. In the present invention, when storing the main program, a ladder program including the selected authentication device number selected based on the unique identification information uniquely set in the control device is generated as an authentication program, and the authentication program is synthesized in the main program. If the selection authentication device number is correctly selected based on the unique identification information at the time of execution of the main program, and the setting processing is performed on the selection authentication device, the main program operates normally. If the setting processing is not performed, authentication is performed. The main program is stopped by the program.
이 때문에, 제어 장치에서는 정상으로 메인 프로그램을 사용할 수 있는 한편, 메인 프로그램의 사용이 허가되어 있지 않은 장치에서는, 메인 프로그램을 사용할 수 없어, 메인 프로그램의 부정 사용을 방지할 수 있다.
For this reason, the main program can be used normally in the control device, while the main program cannot be used in the device where the use of the main program is not permitted, and thus the illegal use of the main program can be prevented.
도 1은 실시형태 1에 따른 시스템 구성예를 나타내는 도면,
도 2는 실시형태 1에 따른 동작예를 나타내는 흐름도,
도 3은 실시형태 1에 따른 동작예를 나타내는 흐름도,
도 4는 실시형태 1에 따른 인증 래더의 예를 나타내는 도면,
도 5는 실시형태 1에 따른 전용 디바이스의 설정예를 나타내는 도면,
도 6은 실시형태 2에 따른 시스템 구성예를 나타내는 도면,
도 7은 실시형태 3에 따른 시스템 구성예를 나타내는 도면,
도 8은 실시형태 4에 따른 시스템 구성예를 나타내는 도면,
도 9는 실시형태 5에 따른 시스템 구성예를 나타내는 도면,1 is a diagram showing a system configuration example according to
2 is a flowchart showing an example of operation according to the first embodiment;
3 is a flowchart showing an operation example according to the first embodiment;
4 is a diagram illustrating an example of an authentication ladder according to the first embodiment;
5 is a diagram showing a setting example of a dedicated device according to the first embodiment;
6 is a diagram showing an example of the system configuration according to the second embodiment;
7 is a diagram showing an example of the system configuration according to the third embodiment;
8 is a diagram showing an example of the system configuration according to the fourth embodiment;
9 is a diagram showing an example of the system configuration according to the fifth embodiment;
실시형태 1~5에서는, FA 시스템에 있어서 PLC에 저장되어 있는 제어 프로그램(래더 프로그램)의 부정 복사에 의해 PLC의 모조품이 제조되는 것을 방지하는 기술을 설명한다. In
보다 구체적으로는, 제어 프로그램을 PLC에 기입할 때에, PLC를 개체 식별하기 위한 시리얼 ID와 엔지니어링 환경에서 생성한 난수를 이용하여 인증 정보를 생성하고, PLC와 제어 프로그램의 관련시킴을 행함과 아울러, 생성한 인증 정보로부터 제어 프로그램에 삽입가능한 인증 래더를 자동 생성하여 제어 프로그램 중에 삽입한다. More specifically, when writing the control program to the PLC, authentication information is generated using a serial ID for identifying the PLC object and a random number generated in the engineering environment, and the PLC is associated with the control program. An authentication ladder that can be inserted into the control program is automatically generated from the generated authentication information and inserted into the control program.
그리고, 제어 프로그램의 실행시에, 삽입한 인증 래더로써 관련시킴을 행한 PLC 상에서의 실행인 것을 확인함으로써, 제어 프로그램을 부정하게 다른 PLC에 복사하여 모조품이 제조되는 등의 부정 이용을 방지한다. When the control program is executed, it is confirmed that the execution is performed on the PLC which has been associated with the inserted authentication ladder, thereby illegally copying the control program to another PLC to prevent fraudulent use of a counterfeit product or the like.
여기서, 인증 래더란, 메인 프로그램인 제어 프로그램에 삽입되는 래더 프로그램이며, 인증 프로그램의 예이다. Here, the authentication ladder is a ladder program inserted into a control program which is a main program, and is an example of an authentication program.
보다 구체적으로는, 제어 프로그램의 실행시에 특정한 디바이스 번호에 해당하는 전용 디바이스가 온으로 되어 있는 것을 확인하기 위해서 제어 프로그램에 삽입되는 래더 프로그램이 인증 래더이다. More specifically, the ladder program inserted in the control program to confirm that the dedicated device corresponding to the specific device number is turned on when the control program is executed is the authentication ladder.
실시형태 1~5에서는, PLC의 시리얼 ID와 엔지니어링 환경측에서 생성한 난수를 입력으로 하여 해시(hash) 함수(1방향성 함수)로써 인증 정보(해시값)를 생성하고, 이 인증 정보에 근거하여 전용 디바이스의 온/오프를 체크하기 위한 디바이스 번호를 결정한다. 이 인증 정보에 근거해서 결정된 디바이스 번호가 포함되는 래더 프로그램이 인증 래더이다. In
여기서 생성한 인증 정보는, PLC의 시리얼 ID를 입력으로 하여 해시 함수로써 생성하고 있기 때문에, PLC마다 생성되는 인증 정보는 상이하다. Since the authentication information generated here is generated as a hash function with the serial ID of the PLC as input, the authentication information generated for each PLC is different.
또한, 제어 프로그램은, 입력 기기나 출력 기기 등의 PLC의 제어 처리의 대상으로 되는 대상 디바이스의 디바이스 번호가 포함되는 래더 프로그램이며, 지정된 PLC 이외의 장치에 의한 사용이 허가되지 않는다. The control program is a ladder program that includes a device number of a target device to be subjected to control processing of a PLC such as an input device or an output device, and is not permitted to be used by devices other than the designated PLC.
제어 프로그램은 메인 프로그램의 예이다. The control program is an example of the main program.
제어 프로그램에 인증 래더가 삽입된 후의 프로그램을 합성 프로그램이라고도 한다. The program after the authentication ladder is inserted into the control program is also called a synthesized program.
또한, 전용 디바이스란, PLC 내에 마련한 제어 프로그램에서 사용하는 데이터나 온/오프 신호를 기억하기 위한 메모리이며, PLC의 펌웨어로부터만 설정할 수 있는 것으로 하고, 엔지니어링 환경을 이용하더라도 사용자가 설정할 수 없는 것으로 한다. The dedicated device is a memory for storing data and on / off signals used in a control program provided in the PLC, and can be set only by the firmware of the PLC, and cannot be set by the user even when using an engineering environment. .
전용 디바이스는, 대상 디바이스와는 달리, 제어 프로그램의 부정 사용을 방지하기 위해서 특별히 마련된 디바이스이다. 전용 디바이스에는, 대상 디바이스의 디바이스 번호를 의사한 디바이스 번호를 설정한다. 또한, 전용 디바이스는 인증용 디바이스의 예이며, 전용 디바이스의 디바이스 번호는 인증용 디바이스 번호의 예이다. The dedicated device, unlike the target device, is a device that is specially provided in order to prevent unauthorized use of the control program. In the dedicated device, a device number pseudo-device number of the target device is set. The dedicated device is an example of the device for authentication, and the device number of the dedicated device is an example of the device number for authentication.
또한, 사용자가 엔지니어링 환경을 이용하여 PLC의 제어 프로그램을 작성할 때, 제어 프로그램이나 파라미터, 및 인증 정보 등을 관리하기 위한 프로젝트를 PLC마다 작성한다. When a user creates a control program of a PLC using an engineering environment, a project for managing the control program, parameters, authentication information, and the like is created for each PLC.
이상을 근거로 하여, 이하에서, 실시형태 1~5의 각각을 설명한다.
Based on the above, each of Embodiment 1-5 is demonstrated below.
(실시형태 1)(Embodiment 1)
도 1은 본 실시형태에 따른 부정 이용 방지 시스템의 시스템 구성예를 나타낸다. 1 shows an example of the system configuration of an illegal use prevention system according to the present embodiment.
도 1에 나타내는 부정 이용 방지 시스템은, PLC에 저장한 제어 프로그램을 특정한 PLC 상에서만 실행할 수 있게 하기 위한 FA 기기 제어 프로그램의 부정 이용 방지 시스템이다. The illegal use prevention system shown in FIG. 1 is an illegal use prevention system of an FA device control program for allowing a control program stored in a PLC to be executed only on a specific PLC.
본 실시형태에 따른 부정 이용 방지 시스템은, 엔지니어링 환경측 PC(Personal Computer)(100)와 PLC(Programmable Logic Controller)(200)로 대별된다. The illegal use prevention system which concerns on this embodiment is divided roughly into the engineering environment side personal computer (PC) 100 and the programmable logic controller (PLC) 200. FIG.
엔지니어링 환경측 PC(100)는 CPU(Central Processing Unit), ROM(Read Only Memory), RAM(Random Access Memory), 자기 디스크 장치, 통신 보드 등을 구비하는 컴퓨터이다. The engineering environment side PC 100 is a computer including a central processing unit (CPU), a read only memory (ROM), a random access memory (RAM), a magnetic disk device, a communication board, and the like.
이 경우, 엔지니어링 환경측 PC(100)의 내부 요소로서 나타내고 있는 기능(「~부」)을 실현하는 프로그램을 예컨대 자기 디스크 장치에 저장하여, CPU가 이들 프로그램을 적절히 판독함으로써 각 기능을 실행한다. In this case, programs for realizing the functions (“parts”) indicated as internal elements of the engineering environment side PC 100 are stored in, for example, a magnetic disk device, and the CPU executes each function by appropriately reading these programs.
PLC(200)는 래더 프로그램인 제어 프로그램을 기억하고, CPU가 제어 프로그램을 실행하여 기기를 제어한다. The
엔지니어링 환경측 PC(100)는 관리 장치의 예이며, PLC(200)는 제어 장치의 예이다. The engineering
또한, 엔지니어링 환경측 PC(100) 및 PLC(200)의 내부 구성에 대해서는 후술한다. In addition, the internal structure of the engineering
또한, 도 2는 본 실시형태에 따른 동작예를 나타내는 흐름도이다. 2 is a flowchart showing an operation example according to the present embodiment.
도 2는, 구체적으로는, 제어 프로그램을 PLC에 기입할 때에 시큐리티 설정을 행하고, 제어 프로그램과 PLC를 관련시킬 때의 처리 흐름을 나타낸다. Fig. 2 specifically shows a process flow when security setting is made when writing a control program to the PLC and the control program is associated with the PLC.
도 2의 처리 흐름의 상세한 것은 후술한다. Details of the processing flow of FIG. 2 will be described later.
또한, 도 3은 PLC에서 인증 래더를 생성하고, 생성한 인증 래더를 제어 프로그램에 삽입하여 PLC에 제어 프로그램을 저장할 때의 처리 흐름을 나타낸다. 3 shows a process flow when generating an authentication ladder in the PLC, inserting the generated authentication ladder into the control program, and storing the control program in the PLC.
도 3의 처리 흐름의 상세한 것은 후술한다. Details of the processing flow of FIG. 3 will be described later.
도 4는 인증 래더 생성용 난수와 PLC의 시리얼 ID로부터 생성한 인증 정보에 근거하여 자동 생성한 인증 래더의 예이다. 4 is an example of an authentication ladder generated automatically based on authentication information generated from a random number for authentication ladder generation and a serial ID of a PLC.
도 4의 상세한 것은 후술한다. Details of FIG. 4 will be described later.
도 5는 PLC의 전원 투입시에 펌웨어의 초기화 처리에서 인증 정보에 근거하여 전용 디바이스를 설정했을 때의 예이다. 5 is an example when a dedicated device is set based on the authentication information in the initialization process of the firmware when the PLC is powered on.
도 5의 상세한 것은 후술한다. Details of FIG. 5 will be described later.
다음에, 도 1을 이용하여, PLC에 저장한 제어 프로그램의 실행시에 허가된 PLC 상에서의 실행인 것을 확인하는 FA 기기 제어 프로그램의 부정 이용 방지 시스템을 구성하는 요소를 설명한다. Next, with reference to FIG. 1, the element which comprises the system for preventing the illegal use of the FA device control program which confirms that it is execution on the PLC authorized at the time of execution of the control program stored in the PLC is described.
먼저, 엔지니어링 환경측 PC(100)의 구성요소를 설명한다. First, the component of the engineering
1은, 엔지니어링 환경측 PC(100)에 있어서 사용자가 키보드나 마우스 등을 이용하여 PLC의 제어 프로그램 작성이나 파라미터 설정을 행하기 위한 입력부이다. 1 is an input unit for the user in the engineering
2는, 사용자가 PLC의 제어 프로그램을 작성하는 제어 프로그램 작성부이다. 2 is a control program creation unit in which a user creates a control program of a PLC.
3은, 제어 프로그램 작성부(2)에서 작성한 제어 프로그램을 저장하기 위한 제어 프로그램 기억부이다. 3 is a control program storage unit for storing the control program created by the control
4는, 제어 프로그램 기억부(3)에 저장한 제어 프로그램의 PLC로의 기입이나 PLC로부터의 판독 등의 PLC에 대한 액세스 요구를 PLC에 송신하는 액세스 요구 송신 처리부이다. 4 is an access request transmission processing unit that transmits an access request to the PLC, such as writing to the PLC or reading from the PLC, of the control program stored in the control
5는, 입력부(1)에 의해 사용자로부터의 제어 프로그램의 기입 지시를 받아서 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램을 판독 액세스 요구 송신처리부(4)에게 PLC로의 기입 요구를 행하는 제어 프로그램 기입 요구부이다. 5 is a control program which receives a write instruction of a control program from a user by the
6a는, 엔지니어링 환경측 PC(100)에서 작성한 제어 프로그램에 대하여 시큐리티 설정을 무효로부터 유효로 하기 위한 시큐리티 설정부이다. 6a is a security setting unit for validating security settings from invalid for the control program created by the engineering
7은, 난수를 생성하는 난수 생성 처리부이다. 7 is a random number generation processing unit that generates a random number.
보다 구체적으로는, 난수 생성 처리부(7)는, 시큐리티 설정부(6)의 시큐리티 설정을 무효로부터 유효로 설정했을 때에 프로젝트(FA 기기 단위로 작성하는 제어 프로그램이나 파라미터 설정 등으로부터 구성되는 정보)에서 고유하며, 인증 래더의 생성시의 입력으로서 사용하는 난수나 엔지니어링 환경과 PLC 사이에서 인증을 행할 때의 챌린지 리스폰스(challenge & response) 인증용의 난수(챌린지값)를 생성한다. More specifically, the random number
8a는, 시큐리티 설정을 유효하게 했을 때에 제어 프로그램의 기입처인 PLC와 제어 프로그램와의 관련시킴을 행하고, 인증 래더를 생성하기 위해서 난수 생성 처리부(7)에서 생성한 난수를 저장하는 인증 래더 생성용 난수 기억부이다. 8a is an authentication ladder generation random number memory for storing a random number generated by the random number
9a는, 시큐리티 설정을 유효하게 했을 때에 제어 프로그램의 기입처인 PLC로부터 판독한 PLC를 개체 식별하기 위한 시리얼 ID(예컨대, 제조 번호 등)를 저장하는 시리얼 ID 기억부이다. 9a is a serial ID storage unit that stores a serial ID (for example, a manufacturing number, etc.) for individual identification of a PLC read from a PLC which is a control destination of a control program when security setting is enabled.
10a는, 엔지니어링 환경측 PC(100) 측에서 생성한 인증 정보와 PLC(200)에서 생성한 인증 정보를 비교하여 인증을 행하는 인증 처리부이다. 10a is an authentication processing unit which performs authentication by comparing the authentication information generated by the
보다 구체적으로는, 인증 처리부(10a)는, 난수 생성 처리부(7)에 대하여 난수의 생성 요구나, 시큐리티 설정부(6a)의 시큐리티 설정이 유효한 경우에, PLC에 대한 제어 프로그램의 기입/판독을 행할 때에 액세스처인 PLC가 관련지어져 있는 PLC인 것을 확인하기 위해서 그때마다 난수 생성 처리부(7)에서 생성한 난수와 인증 래더 생성용 난수 기억부(8a)에 저장되어 있는 난수와 시리얼 ID 기억부(9a)에 저장되어 있는 시리얼 ID를 입력으로 하여 해시 함수로써 생성한 해시값을 인증 정보로 하고, 그 인증 정보와 PLC측에서 생성한 인증 정보를 비교하여 인증을 행한다. More specifically, the
다음에, PLC(200)의 구성요소를 설명한다. Next, the components of the
9b는, PLC 메이커가 제품 출시시에 설정하여 사용자가 리라이팅할 수 없는 PLC를 개체 식별하기 위한 시리얼 ID(예컨대, 제조 번호 등)를 저장하는 시리얼 ID 기억부이다. 9b is a serial ID storage unit that stores a serial ID (e.g., a serial number) for identifying a PLC which the PLC maker sets at the time of product release and for which the user cannot rewrite the PLC.
시리얼 ID는 PLC(200)에 고유하게 설정되어 있고, 고유 식별 정보의 예이다. The serial ID is uniquely set in the
그리고, 시리얼 ID 기억부(9b)는 고유 식별 정보 기억부의 예이다. The serial
6b는, 제어 프로그램에 대한 액세스 제한을 행하기 위한 시큐리티 설정을 유효하게 하기 위한 시큐리티 설정부이다. 6b is a security setting unit for validating security settings for restricting access to the control program.
시큐리티 설정부(6b)는, 엔지니어링 환경측의 시큐리티 설정의 유효화와 동기하여 엔지니어링 환경측에서의 시큐리티 설정의 유효화 요구를 받아서 PLC에 저장하는 제어 프로그램에 대한 액세스 제한을 행한다. The
8b는, 시큐리티 설정의 유효화의 요구와 함께 송신되어 온 난수를 저장하는 인증 래더 생성용 난수 기억부이다. 8b is an authentication ladder generation random number storage unit for storing random numbers transmitted with the request for validating the security setting.
인증 래더 생성용 난수 기억부(8b)에 저장되는 난수는, 엔지니어링 환경측 PC(100)의 난수 생성 처리부(7)에서 생성되어, 인증 래더 생성용 난수 기억부(8a)에 저장된 난수와 동일한 난수이다. The random number stored in the authentication ladder generation random
인증 래더 생성용 난수 기억부(8b)는 난수 기억부의 예이다. The authentication ladder generation random
11은, 엔지니어링 환경의 액세스 요구 송신 처리부(4)로부터 송신되어 온 액세스 요구를 PLC측에서 접수하여 요구 내용에 따른 처리를 실행하는 액세스 요구 수신 처리부이다. 11 is an access request reception processing section that accepts an access request sent from the access request
또한, 액세스 요구 수신 처리부(11)는, 엔지니어링 환경측 PC(100)로부터 제어 프로그램 기입 요구와 함께, 제어 프로그램(래더 프로그램)을 입력한다. In addition, the access request
제어 프로그램은, 전술한 바와 같이 PLC(200)의 제어 처리의 대상으로 되는 대상 디바이스의 디바이스 번호가 포함되는 래더 프로그램으로서, 지정된 PLC 이외의 장치에 의한 사용이 허가되지 않는다. 제어 프로그램은 메인 프로그램의 예이다. As described above, the control program is a ladder program that includes the device number of the target device to be subjected to the control processing of the
또한, 액세스 요구 수신 처리부(11)는 프로그램 입력부의 예이다. The access request
10b는, 해시 연산(1방향 연산)을 행하는 인증 처리부이다. 10b is an authentication processing unit that performs a hash operation (one-way operation).
인증 처리부(10b)는, 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID, 및 인증 정보의 생성 요구시에 함께 송부되어 온 난수(챌린지값)를 입력으로 해서 해시 함수를 이용하여 해시값(리스폰스)을 생성한다. The
보다 구체적으로는, 인증 처리부(10b)는, 시큐리티 설정부(6b)의 시큐리티 설정이 유효하게 되어 있는 경우에 있어서, 인증 래더(인증 프로그램)의 생성에 앞서서, 엔지니어링 환경으로부터의 인증 요구를 접수한 액세스 요구 수신 처리부(11)로부터의 인증 정보의 생성 요구에 따라서, 해시값(리스폰스값)을 생성한다. More specifically, when the security setting of the
인증 처리부(10b)는 1방향 연산부의 예이다. The
12는, 액세스 요구 수신 처리부(11)로부터의 제어 프로그램의 기입 요구를 접수했을 때에, 시큐리티 설정부(6b)의 시큐리티 설정을 확인하여 시큐리티 설정이 유효한 경우는 인증 래더를 삽입하는 처리로 진행하고, 무효한 경우는 인증 래더를 포함하지 않은 채로의 상태에서 제어 프로그램을 PLC 내에 기입 처리로 진행할 것을 지시하는 제어 프로그램 기입 처리부이다. 12, upon receiving the write request of the control program from the access request
13은, 인증 래더(인증 프로그램)를 생성하는 인증 래더 자동 생성 처리부이다. 13 is an authentication ladder automatic generation processing unit that generates an authentication ladder (authentication program).
인증 래더는 제어 프로그램에 직접 삽입가능한 래더 프로그램이며, PLC(200) 이외의 장치에 의한 제어 프로그램의 사용을 방지하기 위한 래더 프로그램이다. The authentication ladder is a ladder program which can be directly inserted into the control program, and is a ladder program for preventing the use of the control program by devices other than the
인증 래더 자동 생성 처리부(13)는, 제어 프로그램을 실행용 제어 프로그램 기억부(15)에 저장할 때에, 인증 처리부(10b)에서 생성한 해시값에 근거하여 전용 디바이스(인증용 디바이스) 내의 특정한 디바이스의 번호를 선택하고, 선택한 특정한 디바이스의 번호(선택 인증용 디바이스 번호)가 포함되는 인증 래더를 생성한다. When the authentication ladder automatic
그리고, 인증 래더 삽입 처리부(14)에서 인증 래더는 제어 프로그램과 합성되어, 실행용 제어 프로그램 기억부(15)에 저장된다. In the authentication ladder
또한, 상세한 것은 후술하지만, 제어 프로그램 실행 제어부(16)가 제어 프로그램과 인증 래더를 실행하기 전에, 인증 래더 자동 생성 처리부(13)에 의한 인증 래더의 생성과는 독립적으로, 인증 처리부(10b)가 시리얼 ID와 난수에 근거하여 해시값을 생성하고, 전용 디바이스 설정부(17)가 해시값에 근거하여 특정한 전용 디바이스의 디바이스 번호를 선택하며, 선택한 디바이스 번호에 대응하는 전용 디바이스에 대하여 소정의 설정 처리(상기 전용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리)를 실행한다. Although details will be described later, before the control program
전용 디바이스 설정부(17)에 의해, 인증 래더에 포함되는 전용 디바이스의 디바이스 번호와 동일한 디바이스 번호가 정확히 선택되고, 상기 디바이스 번호에 대응하는 전용 디바이스에 대하여 설정 처리가 행해지고 있는 경우에는, 제어 프로그램 실행 제어부(16)가 제어 프로그램과 인증 래더를 실행했을 때에 인증 래더가 정상으로 동작하고, 이 결과, 제어 프로그램이 정상으로 동작한다. 한편, 올바른 디바이스 번호가 선택되지 않고, 그 결과, 올바른 전용 디바이스에 대하여 설정 처리가 행해지고 있지 않은 경우에는, 제어 프로그램 실행 제어부(16)가 제어 프로그램과 인증 래더를 실행했을 때에 인증 래더가 정상으로 동작하지 않고, 이 결과, 제어 프로그램의 동작이 정지한다. If the device number identical to the device number of the dedicated device included in the authentication ladder is correctly selected by the dedicated
인증 래더 자동 생성 처리부(13)는 인증 프로그램 생성부의 예이다. The authentication ladder automatic
또한, 인증 래더 자동 생성 처리부(13)는, 선택한 디바이스 번호의 전부가 포함되어 제어 프로그램의 선두에 배치되게 되는 인증 래더(선두 인증 프로그램)와, 선택한 디바이스 번호 중 어느 하나가 포함되어 제어 프로그램의 복수의 삽입 위치에 삽입되게 되는 2 이상의 인증 래더(삽입 인증 프로그램) 중 적어도 어느 하나를 생성한다. In addition, the authentication ladder automatic
예컨대, 도 4(a)는 제어 프로그램의 선두에 배치되는 인증 래더의 예이고, 도 4(b)는 제어 프로그램의 도중의 삽입 위치에 삽입되는 인증 래더의 예이다. For example, Fig. 4A is an example of the authentication ladder placed at the head of the control program, and Fig. 4B is an example of the authentication ladder inserted at the insertion position in the middle of the control program.
14는, 인증 래더 자동 생성 처리부(13)에서 자동 생성한 인증 래더를 제어 프로그램과 합성하는 인증 래더 삽입 처리부이다. 14 is an authentication ladder insertion processing unit for synthesizing the authentication ladder generated automatically by the authentication ladder automatic
인증 래더 삽입 처리부(14)는, 제어 프로그램의 선두에 배치되는 인증 래더의 경우(도 4(a)에 예시한 인증 래더의 경우)는 제어 프로그램의 선두에 배치하고, 제어 프로그램의 도중의 삽입 위치에 삽입하는 인증 래더의 경우(도 4(b)에 예시한 인증 래더의 경우)는 지정된 삽입 위치에 삽입한다. In the case of an authentication ladder arranged at the beginning of the control program (in the case of the authentication ladder illustrated in Fig. 4A), the authentication ladder
인증 래더 삽입 처리부(14)는 프로그램 합성부의 예이다. The authentication ladder
또한, 제어 프로그램과 인증 래더가 합성된 후의 프로그램을 합성 프로그램이라고도 부른다. The program after the control program and the authentication ladder are synthesized is also called a synthesized program.
15는, 엔지니어링 환경측에서 작성한 제어 프로그램 또는 인증 래더 삽입 처리부(14)에 의해 인증 래더가 합성된 후의 제어 프로그램(합성 프로그램)을 저장하는 실행용 제어 프로그램 기억부이다. 15 is an execution control program storage unit for storing a control program (synthesis program) after the authentication ladder is synthesized by the control program or the authentication ladder
실행용 제어 프로그램 기억부(15)는 프로그램 기억부의 예이다. The execution control
16은, PLC(200)가 실행 모드로 된 경우에 실행용 제어 프로그램 기억부(15)에 저장된 제어 프로그램을 실행하는 제어 프로그램 실행 제어부이다. 16 is a control program execution control unit that executes the control program stored in the control
제어 프로그램 실행 제어부(16)는 프로그램 실행부의 예이다. The control program
17은, PLC의 전원 투입시에 PLC 내의 펌웨어의 초기화 처리에 의해 인증 래더 생성용 난수 기억부(8b)에 저장된 난수와 시리얼 ID 기억부(9b)에 저장된 시리얼 ID로부터 생성된 해시값으로부터 전용 디바이스의 디바이스 번호를 추출하고, 추출한 디바이스 번호에 해당하는 전용 디바이스를 온으로 설정하는 전용 디바이스 설정부이다. 17 is a dedicated device from a random number stored in the authentication ladder generation random
전용 디바이스 설정부(17)는 설정 처리부의 예이다. The dedicated
다음에, 도 1, 도 2, 도 3을 이용하여, 엔지니어링 환경 상의 제어 프로그램(래더 프로그램)을 PLC에 기입할 때의 동작을 설명한다. Next, the operation at the time of writing a control program (ladder program) on an engineering environment to a PLC is demonstrated using FIG. 1, FIG. 2, FIG.
먼저, 엔지니어링 환경측 PC(100) 상에서 제어 프로그램을 작성하는 순서에 대해서 설명한다. First, the procedure for creating a control program on the engineering
사용자는 엔지니어링 환경측 PC(100)의 입력부(1)와 제어 프로그램 작성부(2)를 이용하여 제어 프로그램을 작성하고, 작성한 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. A user creates a control program using the
다음에, 엔지니어링 환경측 PC(100) 상에서 작성한 제어 프로그램을 PLC(200)에 기입할 때의 초회(初回) 등록시의 순서를 설명한다. Next, the procedure at the time of initial registration at the time of writing the control program created on the engineering
사용자는 엔지니어링 환경측 PC(100)와 PLC(200)를 USB(Universal Serial Bus) 케이블 등으로 네트워크 접속한다. The user connects the engineering
다음에, 액세스 요구 송신 처리부(4)와 액세스 요구 수신 처리부(11)를 이용하여 엔지니어링 환경과 PLC 사이의 데이터 송수신을 행한다. Next, data transmission and reception are performed between the engineering environment and the PLC by using the access request
사용자가 입력부(1)를 이용하여 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램의 PLC로의 기입 지시를 하면(도 2의 S201), 제어 프로그램 기입 요구부(5)는 제어 프로그램 기억부(3)로부터 제어 프로그램을 판독한다(S202). When the user instructs the writing of the control program stored in the control
제어 프로그램 기입 요구부(5)는 시큐리티 설정부(6a)에 대하여 시큐리티 설정이 유효한지 무효한지를 확인한다(S203). The control program
시큐리티 설정이 무효하게 되어 있는 경우는, 제어 프로그램 기입 요구부(5)는 사용자에게 시큐리티 설정을 유효하게 할지 여부를 문의한다. If the security setting is invalid, the control program
사용자로부터 무효인 채로 두라는 지시를 받은 경우는, 제어 프로그램 기입 요구부(5)는 액세스 요구 송신 처리부(4)에 제어 프로그램의 기입 처리를 지시한다(S209). When the instruction to leave it invalid from the user is received, the control program
사용자가 시큐리티 설정을 유효하게 하라는 지시를 받은 경우는, 제어 프로그램 기입 요구부(5)는 시큐리티 설정부(6a)를 유효하게 설정하고(S204), 인증 처리부(10a)에 대하여 제어 프로그램과 PLC의 관련시킴에 이용하는 인증 래더 생성용 난수의 생성을 요구한다. When the user is instructed to enable the security setting, the control program
난수 생성의 요구를 받은 인증 처리부(10a)는 난수 생성 처리부(7)에 대하여 난수 생성을 요구한다. The
난수 생성 처리부(7)는 난수를 생성하여(S205), 난수를 인증 처리부(10a)에 전달한다. The random number
인증 처리부(10a)는 받은 난수를 제어 프로그램 기입 요구부(5)에 돌려준다. The
제어 프로그램 기입 요구부(5)는 인증 처리부(10a)로부터 받은 난수를 인증 래더 생성용 난수 기억부(8a)에 저장하고(S206), 또한, 액세스 요구 송신 처리부(4)에 대하여 인증 래더 생성용 난수를 부여하여 PLC의 시큐리티 설정을 유효하게 하는 요구를 내보낸다. The control program
액세스 요구 송신 처리부(4)는 PLC의 시큐리티 설정을 유효하게 하는 요구를 받으면, PLC(200)의 액세스 요구 수신 처리부(11)에 대하여 시큐리티 설정의 유효화를 요구함과 아울러 인증 래더 생성용 난수도 함께 송신하여 제어 프로그램과 PLC의 관련시킴도 요구한다(S207). 또한, 이 시점에서는, 제어 프로그램은 PLC(200)에 송신하지 않는다. When the access request
PLC(200)에 있어서, 액세스 요구 수신 처리부(11)는 시큐리티 설정의 유효화의 요구를 받으면 시큐리티 설정부(6b)를 유효하게 설정하고(S210), 인증 처리부(10b)에 대하여 엔지니어링 환경측 PC(100)에서 생성한 인증 래더 생성용 난수의 저장을 요구함과 아울러 PLC의 시리얼 ID의 취득을 요구한다. In the
인증 처리부(10b)는 인증 래더 생성용 난수를 인증 래더 생성용 난수 기억부(8b)에 저장하고(S211), 시리얼 ID 기억부(9b)에 저장되어 있는 PLC(200)를 개체 식별하기 위한 시리얼 ID를 판독하여 액세스 요구 수신 처리부(11)에 돌려준다. The
이 시리얼 ID는 PLC를 출하할 때에 PLC의 제조 메이커가 임의로 설정하는 정보이며, 사용자가 설정/변경할 수 없는 정보이다. This serial ID is information that the manufacturer of the PLC arbitrarily sets when shipping the PLC, and is information that cannot be set / changed by the user.
액세스 요구 수신 처리부(11)는 인증 처리부(10b)로부터 시리얼 ID를 받으면, 시큐리티 설정의 유효화의 요구에 대한 응답으로 받은 시리얼 ID를 부가하여 액세스 요구 송신 처리부(4)에 돌려준다(S212). When the access request
엔지니어링 환경측 PC(100)에 있어서, 액세스 요구 송신 처리부(4)는 액세스 요구 수신 처리부(11)로부터의 응답을 받으면, 응답에 부가되어 온 PLC(200)의 시리얼 ID를 제어 프로그램 기입 요구부(5)에 돌려주고, 제어 프로그램 기입 요구부(5)는 그것을 시리얼 ID 기억부(9a)에 저장한다(S208). In the engineering
본 실시형태에서는, 인증 래더 생성용 난수 기억부(8a, 8b)에 저장되어 있는 인증 래더 생성용 난수와 시리얼 ID 기억부(9a, 9b)에 저장되어 있는 PLC의 시리얼 ID에 의해 제어 프로그램과 PLC 사이를 관련시키고, 이 2개의 정보로부터 해시 함수를 이용하여 생성한 것을 인증 정보로 한다. In this embodiment, the control program and PLC are controlled by the authentication ladder generation random number stored in the authentication ladder generation random
제어 프로그램 기입 요구부(5)는 액세스 요구 송신 처리부(4)에 제어 프로그램의 기입 처리를 요구하고, 액세스 요구 송신 처리부(4)는 기입 요구와 제어 프로그램을 PLC의 액세스 요구 수신 처리부(11)에 송신한다(S209)(도 3의 S301). The control program
PLC(200)에 있어서, 액세스 요구 수신 처리부(11)는 제어 프로그램의 기입 요구를 받으면 제어 프로그램 기입 처리부(12)에 제어 프로그램의 기입을 지시한다. In the
제어 프로그램 기입 처리부(12)는 제어 프로그램의 기입 지시를 받으면 시큐리티 설정부(6b)의 시큐리티 설정을 확인하고(S302), 무효하게 되어 있었던 경우는 받은 제어 프로그램을 그대로의 상태로 실행용 제어 프로그램 기억부(15)에 저장한다(S309). When the control program
시큐리티 설정이 유효하게 되어 있었던 경우에는, 제어 프로그램 기입 처리부(12)는 인증 래더 자동 생성 처리부(13)에 인증 래더의 생성을 지시한다. When the security setting has been made effective, the control program
인증 래더 자동 생성 처리부(13)는, 제어 프로그램 기입 처리부(12)로부터의 인증 래더의 생성 지시를 받아서 인증 처리부(10b)에 대하여 인증 정보의 생성을 지시한다. The authentication ladder automatic
인증 처리부(10b)는 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID를 판독하고(S304, S305), 난수와 시리얼 ID에 대하여 해시 함수(1방향성 함수)를 이용하여 인증 정보(해시값)를 생성하며(S306), 생성한 인증 정보(해시값)를 인증 래더 자동 생성 처리부(13)에 돌려준다. The
인증 래더 자동 생성 처리부(13)는 인증 처리부(10b)로부터 받은 인증 정보를 기초로 인증 래더(인증을 목적으로 한 래더 프로그램)를 자동 생성하고(S307), 인증 래더 삽입 처리부(14)에 대하여 자동 생성한 인증 래더의 제어 프로그램으로의 삽입을 지시한다. The authentication ladder automatic
인증 래더 삽입 처리부(14)는, 사용자가 엔지니어링 환경측 PC(100)를 이용하여 작성한 제어 프로그램의 특정한 위치에 인증 래더 자동 생성 처리부(13)에 의해 생성한 인증 래더를 삽입한다(S308). The authentication ladder
인증 래더 삽입 처리부(14)는 인증 래더를 삽입한 제어 프로그램(합성 프로그램)을 실행용 제어 프로그램 기억부(15)에 저장하여(S309), 제어 프로그램의 기입 처리가 완료한다. The authentication ladder
또한, 본 실시형태에서는, 인증 정보의 생성에 엔지니어링 환경측 PC(100)에서 생성한 난수와 PLC(200)의 시리얼 ID의 2개를 입력으로 하고 있지만, 이 2개의 신호 이외에 예컨대 PLC(200)에 탑재되어 있는 CPU(Central Processing Unit)의 CPU 타입과 조합하여 인증 정보를 생성해도 좋다. In the present embodiment, two random numbers generated by the engineering
이 CPU 타입은 엔지니어링 환경 상에서 제어 프로그램의 기입처인 PLC(200)를 선택했을 때에 확정하는 엔지니어링 환경 내에서 다루는 정보이며, PLC(200)측도 미리 내부적으로 유지하고 있는 정보이기 때문에, 통신로(엔지니어링 환경과 PLC 사이) 상에는 흐르지 않는 정보이므로, 인증 정보가 추측되기 어려워진다. This CPU type is information handled in an engineering environment determined when the
다음에, 도 4, 도 5를 이용하여, 인증 정보에 근거한 인증 래더의 생성과 삽입, 및 PLC의 전원 투입시에 실행하는 초기화 처리에서의 전용 디바이스의 설정 방법에 대해서 설명한다. Next, with reference to FIGS. 4 and 5, a description will be given of a method for setting a dedicated device in the generation and insertion of an authentication ladder based on the authentication information, and an initialization process performed when the PLC is powered on.
여기서는, PLC(200)의 시리얼 ID를 예컨대 「009910987654321」, 인증 래더 생성용 난수를 예컨대 「1234567890」으로 한 경우의 인증 래더의 생성 방법을 설명한다. Here, a method of generating an authentication ladder when the serial ID of the
또한, 인증 처리부(10b)에서 인증 래더 생성용 난수와 시리얼 ID를 입력으로 하여 해시 함수에 의해 생성한 인증 정보를 예컨대 「EA082DFE1CBA7816」으로 한다. Further, the authentication information generated by the hash function by inputting the authentication ladder generation random number and the serial ID in the
해시 함수에 의해 생성한 인증 정보는 PLC(200)의 시리얼 ID를 이용하여 생성하기 때문에, 다른 PLC에서는 시리얼 ID가 상이하므로 동일한 인증 정보가 생성되는 일은 없다. Since the authentication information generated by the hash function is generated using the serial ID of the
인증 래더 자동 생성 처리부(13)에서는, 생성한 인증 정보를 1바이트로 구획하고, 구획한 값을 전용 디바이스의 디바이스 번호로 선정한다. The authentication ladder automatic
예컨대, 최초의 1바이트의 「EA」를 전용 디바이스의 디바이스 번호(10진 표시)로 선정하면 A234가 된다. 여기서 「A」는 전용 디바이스를 의미하는 것으로 한다. For example, if "EA" of the first 1 byte is selected as the device number (decimal display) of the dedicated device, this is A234. Here, "A" means a dedicated device.
마찬가지로, 2바이트번째, 3바이트번째를 전용 디바이스의 디바이스 번호로 선정하면, A8, A45, A254, A28,(이하생략)로 된다. Similarly, if the 2nd byte and the 3rd byte are selected as the device number of the dedicated device, they are A8, A45, A254, A28 (hereinafter omitted).
이와 같이 선택된 디바이스 번호는 선택 인증용 디바이스 번호에 상당한다. The device number selected in this manner corresponds to the device number for selective authentication.
또한, PLC(200)의 대상 디바이스의 디바이스 번호에는 「X」 등이 이용되고, 제어 프로그램에는 「X50」와 같이 대상 디바이스의 디바이스 번호가 표시되지만, 이것에 근사시켜서 인증 래더에서는 전용 디바이스의 디바이스 번호를 「A234」과 같이 한다. 이와 같이, 인증 래더에서는, 대상 디바이스의 디바이스 번호를 의사한 디바이스 번호가 이용된다. In addition, "X" is used for the device number of the target device of the
인증 래더 자동 생성 처리부(13)에서는, 이들 정보를 기초로 도 4에 나타내는 바와 같은 인증 래더(래더 프로그램)를 생성한다. The authentication ladder automatic
도 4(a)는 선택된 모든 디바이스 번호(A234, A8, A45, A254 등)가 포함되고, 제어 프로그램의 선두에 배치되게 되는 인증 래더의 예이다. 4A is an example of an authentication ladder in which all selected device numbers (A234, A8, A45, A254, etc.) are included and placed at the head of the control program.
도 4(a)의 인증 래더는, 실행시에 전용 디바이스(A234나 A8 등에 대응하는 전용 디바이스)의 온/오프의 상태를 확인하여, 하나라도 오프 상태의 전용 디바이스가 있었던 경우는 제어 프로그램의 실행을 정지하기 위한 디바이스(도 4(a)의 예에서는 E99)를 온으로 설정한다. The authentication ladder shown in FIG. 4 (a) checks the on / off state of the dedicated device (dedicated device corresponding to A234, A8, etc.) at the time of execution, and executes the control program when there is any dedicated device in the off state. The device (E99 in the example of Fig. 4A) is set to ON to stop the operation.
PLC에서는 제어 프로그램에 대하여 1번만의 실행이나 정(定)주기마다의 실행 등의 실행 타입을 정의할 수 있기 때문에, 이 인증 래더는 제어 프로그램의 실행시에 1번만 실시하도록 설정한다. Since the PLC can define the execution type such as only one execution or execution every fixed cycle for the control program, the authentication ladder is set to be executed only once when the control program is executed.
또한, 인증 래더 자동 생성 처리부(13)는 상기에서 생성한 인증 래더의 전용 디바이스의 디바이스 번호를 제어 프로그램의 스텝 수로 선정하여, 제어 프로그램의 그 스텝 수의 개소에 인증 래더를 삽입한다. In addition, the authentication ladder automatic
도 4(b)에 나타내는 바와 같이, 예컨대 상기의 예에 있어서 전용 디바이스 A234의 경우는, 디바이스 번호 234를 스텝 수로서 선정하여, 제어 프로그램의 234스텝번째에 인증 래더를 삽입한다. As shown in Fig. 4B, for example, in the case of the dedicated device A234 in the above example, the device number 234 is selected as the number of steps, and the authentication ladder is inserted in the 234th step of the control program.
단, 삽입할 때는 디바이스 번호를 소트하고 나서, 수가 작은 순으로 인증 래더를, 제어 프로그램이 해당하는 스텝 수번째에 삽입한다. When inserting, however, the device numbers are sorted, and then the authentication ladder is inserted in the corresponding step number in the order of the smallest number.
이에 의해, 제어 프로그램의 실행중에서도 제어 프로그램이, 관련시킨 PLC 상에서 실행하고 있는 것을 확인할 수 있다. This makes it possible to confirm that the control program is running on the associated PLC even during the execution of the control program.
예컨대, 인증 래더를 다른 PLC에 기입하여 실행했을 때에 전용 디바이스의 A234가 오프인 경우에는, 도 4(b)에 나타내는 예에서는 삽입한 인증 래더의 출력부의 명령이 실행되지 않게 된다(도면 중의 오른쪽에 기재된 Y0가 온으로 설정되지 않음). For example, when A234 of the dedicated device is turned off when the authentication ladder is written to another PLC and executed, the command of the output unit of the inserted authentication ladder is not executed in the example shown in FIG. Y0 described is not set to ON).
이 때문에, 제어 프로그램이 정상으로 동작할 수 없고, PLC에 접속된 FA 기기도 정상으로 제어할 수 없게 되기 때문에, 제어 프로그램의 부정 이용을 방지할 수 있다. For this reason, since the control program cannot operate normally and the FA device connected to the PLC cannot control normally, it is possible to prevent the illegal use of the control program.
도 4의 예에서는 인증 래더 자동 생성 처리부(13)에 의해 생성한 인증 래더를 설명하기 쉽게 하기 위해서 래더 프로그램 형식으로 표현하고 있지만, 실제로 PLC(200) 상에서 생성되는 인증 래더는 실행 코드 형식으로 생성된다. In the example of FIG. 4, the authentication ladder generated by the automatic authentication ladder
다음에, PLC(200)의 전원 투입시에 펌웨어의 초기화 처리에서 전용 디바이스를 설정할 때의 동작에 대해서 설명한다. Next, the operation when setting the dedicated device in the initialization process of the firmware when the
펌웨어의 초기화 처리에 의해 전용 디바이스 설정부(17)는, 전용 디바이스를 0으로 클리어하여, PLC(200)의 시큐리티 설정부(6b)가 유효하게 되어 있는지 여부를 확인한다. By the initialization process of the firmware, the dedicated
시큐리티 설정이 무효한 경우에는 전용 디바이스에 대한 설정은 아무것도 하지 않는다. If the security setting is invalid, the setting for the dedicated device does nothing.
시큐리티 설정이 유효한 경우에는, 전용 디바이스 설정부(17)는 인증 처리부(10b)에 대하여 인증 정보의 생성을 요구하고, 그 요구를 받은 인증 처리부(10b)가 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 PLC의 시리얼 ID로부터 해시 함수를 이용하여 인증 정보(해시값)를 생성한다. When the security setting is valid, the dedicated
전용 디바이스 설정부(17)는 인증 처리부(10b)에 의해 생성한 인증 정보(해시값)를 받아서, 인증 래더 자동 생성 처리부(13)에서 전용 디바이스의 디바이스 번호를 생성한 바와 같이 인증 정보를 1바이트로 구획하고, 구획한 1바이트의 값을 디바이스 번호로 선정하여, 그 디바이스 번호에 해당하는 전용 디바이스를 온으로 설정한다. The dedicated
도 5에 나타내는 예에서는, A234, A8, A45, A254, A28의 전용 디바이스를 온으로 설정한 경우이다. In the example shown in FIG. 5, it is a case where the dedicated devices of A234, A8, A45, A254, and A28 are set to ON.
펌웨어에서의 초기화 처리가 종료하고, PLC(200)가 실행 모드(제어 프로그램의 실행)로 된 경우는, 제어 프로그램 실행 제어부(16)가 실행용 제어 프로그램 기억부(15)에 저장되어 있는 제어 프로그램을 실행하고, 제어 프로그램의 선두에 배치한 인증 래더(도 4(a))에 의해서, 상기 초기화 처리에서 설정한 전용 디바이스의 특정한 디바이스의 온/오프 상태를 확인하여, 하나라도 확인 대상으로 되어 있었던 전용 디바이스가 오프로 되어 있었던 경우는, 제어 프로그램이 부정 복사된 PLC 상에서의 동작인 것을 판단하여, 제어 프로그램의 실행을 정지할 수 있다. When the initialization processing in the firmware ends and the
또한, 제어 프로그램의 실행중에서도 제어 프로그램 중에 삽입한 인증 래더(도 4(b))에 의해 제어 프로그램의 부정 이용을 확인하여, 부정 이용을 확인했을 때는 제어 프로그램은 정상 동작하지 않기 때문에, 제어 프로그램의 부정 복사에 의한 모조품 상에서의 이용을 방지할 수 있다. Also, even when the control program is executed, when the illegal use of the control program is confirmed by the authentication ladder inserted in the control program (Fig. 4 (b)), and the illegal use is confirmed, the control program does not operate normally. The use on the counterfeit goods by illegal copying can be prevented.
또한, 인증 래더를 PLC이 자동 생성하여 제어 프로그램의 실행시에 인증 래더가 실행되어 부정 이용을 판단하고 있기 때문에, 사용자에게는 의식시키지 않고 제어 프로그램의 부정 이용을 방지할 수 있다. In addition, since the PLC automatically generates the authentication ladder and the authentication ladder is executed at the time of execution of the control program, the illegal use is judged. Therefore, the illegal use of the control program can be prevented without the user being aware of it.
제어 프로그램의 사용이 허가되어 있는 PLC(200)가 제어 프로그램을 사용하는 경우는, 인증 래더 생성시에 이용된 시리얼 ID 및 난수와 동일한 시리얼 ID 및 난수가 이용되기 때문에, 초기화 처리에 있어서 정확한 디바이스 번호(인증 래더에 포함되어 있는 디바이스 번호와 동일한 디바이스 번호)가 선택되고, 전용 디바이스가 정확하게 설정될 것이다. When the
이 때문에, 제어 프로그램의 사용이 허가되어 있는 PLC(200)에서는, 항상 제어 프로그램을 정상으로 동작시킬 수 있다. For this reason, the
한편, 제어 프로그램의 사용이 허가되어 있지 않은 장치(PLC(200) 이외의 장치)에서는, 인증 래더 생성시에 PLC(200)에서 이용된 시리얼 ID 및 난수를 알 수 없기 때문에, 초기화 처리에 있어서 올바른 디바이스 번호가 선택되지 않고, 따라서, 전용 디바이스가 올바르게 설정되지 않는다. On the other hand, devices (other than PLC 200) that are not permitted to use the control program do not know the serial ID and random number used by
이 때문에, 제어 프로그램의 사용이 허가되어 있지 않은 장치에서는, 제어 프로그램의 동작이 정지하여, 제어 프로그램을 사용할 수 없다. For this reason, in the apparatus which is not permitted to use the control program, the operation of the control program is stopped and the control program cannot be used.
이와 같이, 본 실시형태에 의하면, PLC에 저장되는 제어 프로그램에 대하여, PLC의 시리얼 ID와 제어 프로그램을 작성했을 때에 엔지니어링 환경측에서 생성한 난수로부터 인증 정보를 생성하고, 생성한 인증 정보로부터 제어 프로그램에 직접 삽입이 가능한 인증 래더를 자동 생성하여, 제어 프로그램의 실행시에 미리 관련시킨 PLC 상에서의 실행인 것을 확인함으로써, 사용자에게 의식시키지 않고 제어 프로그램과 PLC 사이에서 인증을 행하여, 인증 결과에 따라서 제어 프로그램의 실행을 정지하는 것에 의해 제어 프로그램의 부정 이용을 방지할 수 있다. As described above, according to the present embodiment, authentication information is generated from the random number generated by the engineering environment side when the serial ID and the control program of the PLC are created for the control program stored in the PLC, and the control program is generated from the generated authentication information. By automatically generating an authentication ladder that can be directly inserted into the program, and confirming that the program is executed on a PLC previously associated with the execution of the control program, authentication is performed between the control program and the PLC without the user's awareness, and the control is performed according to the authentication result. By stopping the execution of the program, the illegal use of the control program can be prevented.
이상, 본 실시형태에서는, FA(Factory Automation) 기기를 제어하는 제어 프로그램(래더 프로그램)이 다른 FA 기기로 부정하게 복사되더라도 복사처의 FA 기기 상에서는 제어 프로그램이 정상으로 동작하지 않도록 하기 위한 FA 기기 제어 프로그램의 부정 이용 방지 시스템에 있어서, FA 기기에 대한 제어 프로그램이나 파라미터 등의 설정이나 확인을 행하기 위한 엔지니어링 환경(애플리케이션)과 제어 프로그램에 근거하여 입력 기기의 지령 신호의 온/오프에 따라서 출력 기기를 온/오프함으로써 시퀀스 제어(미리 정해진 순서ㆍ조건에 따라서, 대상을 생각대로 동작시키는 것)를 행하는 PLC(Programmable Logic Controller)에 의해 실현하는 제어 프로그램의 부정 이용을 방지하기 위한 장치로서, 엔지니어링 환경에 대하여 사용자가 제어 프로그램의 작성이나 파라미터 등의 입력 및 기능의 실행을 지시하기 위한 입력부와, 사용자가 상기 입력부를 이용하여 PLC 상에서 실행되는 제어 프로그램(래더 프로그램)을 작성하는 제어 프로그램 작성부와, 상기 제어 프로그램 작성부에서 작성한 PLC용의 제어 프로그램을 저장하기 위한 제어 프로그램 기억부와, 엔지니어링 환경에서 PLC에 대하여 제어 프로그램이나 파라미터 등의 기입/판독을 요구하고 또한 그 응답을 받기 위한 액세스 요구 송신 처리부와, 상기 제어 프로그램 기억부에 저장한 제어 프로그램을 PLC에 기입하기 위한 처리를 실행하는 제어 프로그램 기입 요구부와, 엔지니어링 환경 상에서 작성한 제어 프로그램에 대한 시큐리티 기능을 유효하게 하는 경우에만 설정하는 시큐리티 설정부와, PLC에서 인증 래더를 생성할 때에 이용하는 난수나 제어 프로그램과 PLC 사이에서 인증을 행할 때에 이용하는 난수를 생성하기 위한 난수 생성 처리부와, 상기 제어 프로그램 기입 요구부로부터의 난수 생성 요구를 받아서 상기 난수 생성 처리부에 대하여 난수의 생성을 의뢰하거나 제어 프로그램과 PLC 사이에서 인증을 행하기 위해서 난수나 PLC를 개체 식별하기 위한 정보로부터 해시 함수(1방향 함수)를 이용하여 인증 정보를 생성하거나 하는 인증 처리부와, 상기 난수 생성 처리부에서 생성한 PLC에 의해 인증 래더를 생성할 때에 이용하는 난수를 저장하기 위한 인증 래더 생성용 난수 기억부와, 상기 제어 프로그램 기억부에 저장한 제어 프로그램을 PLC에 초회 기입을 실시했을 때에 PLC로부터 추출한 PLC를 개체 식별하기 위한 시리얼 ID(제조 번호 등)를 저장하는 시리얼 ID 기억부와, 엔지니어링 환경으로부터의 액세스 요구를 접수하여 그 액세스 요구에 따라서 각 처리부로 요구 내용을 전송하기 위한 액세스 요구 수신 처리부와, PLC에 저장한 제어 프로그램에 대한 시큐리티 기능을 유효하게 하는 경우에만 설정하는 시큐리티 설정부와, 인증 래더를 생성하기 위해서 엔지니어링 환경측에서 생성되서 송신되어 온 난수를 저장하기 위한 인증 래더 생성용 난수 기억부와, PLC를 개체 식별하기 위한 시리얼 ID를 저장하는 시리얼 ID 기억부와, 상기 액세스 요구 수신 처리부로부터의 제어 프로그램의 기입 요구를 받아서 제어 프로그램의 기입을 행하는 제어 프로그램 기입 처리부와, 상기 시큐리티 설정부의 시큐리티 기능이 유효하게 설정되어 있는 경우에 상기 인증 래더 생성용 난수 기억부에 저장되어 있는 난수와 상기 시리얼 ID 기억부에 저장되어 있는 시리얼 ID로부터 엔지니어링 환경측의 상기 인증 처리부와 동일한 알고리즘을 이용하여 인증 정보를 생성하는 해시값 생성 처리부와, PLC에 제어 프로그램을 기입할 때에 상기 해시값 생성 처리부에서 생성한 해시값에 근거하여 인증 래더를 자동 생성하는 인증 래더 자동 생성 처리부와, 상기 인증 래더 자동 생성 처리부에서 생성한 인증 래더를 엔지니어링 환경으로부터 송신되어 온 제어 프로그램에 삽입하는 인증 래더 삽입 처리부와, 상기 시큐리티 설정부의 시큐리티 기능이 무효하게 설정되어 있는 경우는 엔지니어링 환경으로부터 송신되어 온 제어 프로그램을 그대로 저장하거나 시큐리티 기능이 유효하게 설정되어 있는 경우는 상기 인증 래더 삽입 처리부에서 인증 래더가 삽입된 제어 프로그램을 저장하는 실행용 제어 프로그램 기억부와, PLC가 실행 모드로 된 경우에 상기 실행용 제어 프로그램 기억부에 저장한 제어 프로그램을 실행하는 제어 프로그램 실행 제어부와, PLC의 전원 투입시에 PLC에 탑재되어 있는 펌웨어가 실행하는 초기화 처리에 의해 인증 래더 생성용 난수와 시리얼 ID로부터 상기 인증 처리부에서 생성한 해시값에 근거하여 PLC 내의 전용 디바이스의 설정을 행하는 전용 디바이스 설정부를 마련한 FA 기기 제어 프로그램의 부정 이용 방지 시스템을 설명하였다.
As described above, in the present embodiment, even if a control program (ladder program) controlling a FA (Factory Automation) device is copied illegally to another FA device, the FA device control for preventing the control program from operating normally on the FA device of the copy destination. In the system for preventing the illegal use of a program, an output device is output in accordance with an on / off command signal of an input device based on an engineering environment (application) and a control program for setting or confirming a control program or a parameter for a FA device. Is a device for preventing the illegal use of a control program realized by a programmable logic controller (PLC) that performs sequence control (operating an object as desired according to a predetermined order and condition) by turning on / off. The user can create a control program or parameter An input unit for instructing input and execution of a function, a control program generator for creating a control program (ladder program) executed by the user on the PLC using the input unit, and a PLC for the PLC created by the control program generator. A control program storage unit for storing the control program, an access request transmission processing unit for requesting the PLC to write / read the control program or parameters and receive the response from the engineering environment, and the control program storage unit A control program write request unit that executes a process for writing a control program to the PLC, a security setting unit to be set only when the security function for the control program created on the engineering environment is enabled, and when generating an authentication ladder in the PLC. PLC with random number or control program used A random number generation processing unit for generating a random number used for authentication at this time and a random number generation request from the control program write request unit are requested to generate a random number to the random number generation processing unit, or authentication is performed between the control program and the PLC. The authentication processing unit generates authentication information using a hash function (one-way function) from a random number or information for identifying an individual object for use in generating the authentication ladder by the PLC generated by the random number generation processing unit. An authentication ladder generation random number storage unit for storing random numbers and a serial ID (manufacture number, etc.) for object identification of a PLC extracted from the PLC when the control program stored in the control program storage unit is first written to the PLC. Serial ID storage to store and access request from engineering environment An access request reception processing unit for receiving the request and transmitting the request contents to each processing unit according to the access request, a security setting unit for setting only when the security function for the control program stored in the PLC is enabled, and an authentication ladder. The authentication ladder generation random number storage unit for storing the random number generated and transmitted by the engineering environment side, the serial ID storage unit for storing the serial ID for identifying the PLC object, and the control from the access request reception processing unit A control program write processing unit that writes a control program in response to a write request of a program; and a random number stored in the authentication ladder generation random number storage unit and the serial ID memory when a security function of the security setting unit is set to be valid; From the serial ID stored in the An authentication ladder is automatically generated based on a hash value generation processing unit that generates authentication information using the same algorithm as the authentication processing unit on the near environment side, and a hash value generated by the hash value generation processing unit when writing a control program to a PLC. The authentication ladder automatic generation processing unit, the authentication ladder insertion processing unit for inserting the authentication ladder generation generated by the authentication ladder automatic generation processing unit into a control program transmitted from an engineering environment, and the security function of the security setting unit are set to invalid. Is a control program storage unit for storing the control program transmitted from the engineering environment as it is or storing the control program in which the authentication ladder is inserted in the authentication ladder insertion processing unit when the security function is set to be effective; In mode From the control program execution control unit that executes the control program stored in the execution control program storage unit, and from the random number for authentication ladder generation and serial ID by the initialization processing executed by the firmware mounted in the PLC when the PLC is powered on. The illegal use prevention system of the FA apparatus control program which provided the dedicated device setting part which sets the dedicated device in PLC based on the hash value produced | generated by the said authentication processing part was demonstrated.
(실시형태 2)(Embodiment 2)
본 실시형태에서는, 엔지니어링 환경에서 작성한 제어 프로그램의 규모나 성능면의 영향을 고려하여 인증 래더 자동 생성 처리부(13)에서 자동 생성하는 인증 래더의 수를 조정하는 기능을 설명한다. In the present embodiment, a function of adjusting the number of authentication ladders automatically generated by the authentication ladder automatic
도 6은 제어 프로그램의 규모나 성능면으로의 영향을 고려하여 자동 삽입하는 인증 래더의 수를 조정하는 FA 기기 제어 프로그램의 부정 이용 방지 시스템의 기능 구성이다. Fig. 6 is a functional configuration of a system for preventing illegal use of an FA device control program which adjusts the number of authentication ladders to be automatically inserted in consideration of the influence on the scale and performance of the control program.
엔지니어링 환경측 PC(100)의 내부 구성은, 도 1의 것과 마찬가지이기 때문에, 설명을 생략한다. Since the internal structure of the engineering
PLC(200)에 있어서는, 본 실시형태에서는, 실행 제약 시간 기억부(18), 인증 래더 성능 확인부(19), 인증 래더 삽입 판단부(20)가 추가되어 있다. In the
이들 이외의 요소는 도 1에 나타낸 것과 마찬가지이다. Elements other than these are the same as what was shown in FIG.
실행 제약 시간 기억부(18)는 사용자에 의해서 설정된 제어 프로그램을 실행했을 때의 제약 시간을 저장한다. The execution time
즉, 실행 제약 시간 기억부(18)는, 제어 프로그램과 인증 래더가 합성된 후의 프로그램(합성 프로그램)의 실행 소요 시간의 허용 범위를 제약 시간(허용 시간)으로서 기억한다. That is, the execution restriction
실행 제약 시간 기억부(18)는 허용 시간 기억부의 예이다. The execution
인증 래더 성능 확인부(19)는 실행 제약 시간 기억부(18)에 저장한 제약 시간과 제어 프로그램의 실행 시간의 차이를 산출하여, 인증 래더를 삽입할 수 있는 공백 시간을 확인한다. The authentication ladder
즉, 인증 래더 성능 확인부(19)는 제어 프로그램의 실행 시간을 예측하여, 예측한 제어 프로그램의 실행 시간(예측 소요 시간)과 제약 시간과의 차이를 공백 시간으로서 산출한다. That is, the authentication ladder
인증 래더 성능 확인부(19)는 소요 시간 예측부의 예이다. The authentication ladder
인증 래더 삽입 판단부(20)는 엔지니어링 환경측 PC(100)로부터 PLC(200)로 기입 요구된 제어 프로그램의 규모(예컨대 스텝 수)나 인증 래더 성능 확인부(19)에서 산출한 공백 시간에 따라서 삽입하는 인증 래더의 수를 판단한다. The authentication ladder insertion determination unit 20 depends on the size of the control program (e.g., the number of steps) requested for writing from the engineering
즉, 인증 래더 삽입 판단부(20)는 인증 래더 성능 확인부(19)에 의해 산출된 공백 시간(제어 프로그램의 실행 시간과 제약 시간과의 차이)에 근거하여, 인증 래더에 포함시키는 디바이스 번호의 개수를 결정한다. That is, the authentication ladder insertion determining unit 20 determines the device number of the device number to be included in the authentication ladder based on the free time calculated by the authentication ladder performance checking unit 19 (difference between the execution time of the control program and the restriction time). Determine the number.
이 경우, 인증 래더 자동 생성 처리부(13)는 인증 래더 삽입 판단부(20)에 의해 결정된 개수분의 인증용 디바이스 번호를 선택하여 인증 래더를 생성한다. In this case, the automatic authentication ladder
또한, 인증 래더 삽입 판단부(20)는 제어 프로그램의 프로그램 사이즈가 소정 사이즈 이상인지 여부를 판단하여, 제어 프로그램의 프로그램 사이즈가 소정 사이즈 미만이면, 인증 래더 자동 생성 처리부(13)에 대하여 인증 래더의 생성을 보류시키고, 제어 프로그램의 프로그램 사이즈가 소정 사이즈 이상이면, 인증 래더 자동 생성 처리부(13)에 대하여 인증 래더의 생성을 지시한다. The authentication ladder insertion determining unit 20 determines whether the program size of the control program is greater than or equal to the predetermined size, and if the program size of the control program is less than the predetermined size, the authentication ladder automatic
인증 래더 삽입 판단부(20)는 개수 결정부 및 프로그램 사이즈 판단부의 예이다. The authentication ladder insertion determination unit 20 is an example of the number determination unit and the program size determination unit.
다음에, 제어 프로그램을 PLC(200)에 기입하는 처리에 있어서, 제어 프로그램의 규모나 성능면으로의 영향을 고려하여 삽입하는 인증 래더의 수를 판단할 때의 동작에 대해서 설명한다. Next, in the process of writing the control program to the
실행 제약 시간 기억부(18)에 저장되는 제약 시간은, 엔지니어링 환경측 PC(100)에서 사용자에 의해서 설정되고, 제어 프로그램의 기입과 마찬가지로 엔지니어링 환경측 PC(100)로부터 파라미터의 기입 요구에 의해 실행 제약 시간 기억부(18)에 저장된다. The constraint time stored in the execution constraint
이 제약 시간이란, 사용자가 지정한 시간 이내에 제어 프로그램의 실행이 완료해야 하는 시간이며, 예컨대, 제어 프로그램의 실행 타입을 정주기로 한 경우 등에서 지정한 주기 내에 제어 프로그램의 실행이 완료해야 하는 시간이다. This restriction time is a time during which the execution of the control program should be completed within the time specified by the user, for example, a time during which the execution of the control program should be completed within the period specified in the case where the execution type of the control program is set as the periodic cycle.
제어 프로그램 기입 처리부(12)는 제어 프로그램의 기입 요구를 받으면 인증 래더 성능 확인부(19)에 제어 프로그램의 기입 요구를 통지한다. When the control program
인증 래더 성능 확인부(19)는 실행 제약 시간 기억부(18)에 저장되어 있는 제약 시간을 추출함과 아울러 제어 프로그램 중의 명령 수로부터 예상 실행 시간을 산출하여, 실행 제약 시간 기억부(18)로부터 추출한 제약 시간과의 차이를 확인한다. The authentication ladder
제어 프로그램의 각종 명령에 대하여 실행 시간(기준)이 결정되어 있기 때문에, 인증 래더 성능 확인부(19)는 예상 실행 시간을 산출하는 것이 가능하다. Since the execution time (reference) is determined for various commands of the control program, the authentication ladder
인증 래더 성능 확인부(19)는, 이 제약 시간과 예상 실행 시간과의 차이에 의해 인증 래더가 삽입가능한 공백 시간을 확인하여, 그 공백 시간을 인증 래더 삽입 판단부(20)에 전달한다. The authentication ladder
인증 래더 삽입 판단부(20)는 기입 요구를 받은 제어 프로그램의 규모를 확인하여, 혹시 규모가 작은 경우는 인증 래더의 삽입은 중지하고(인증 래더 자동 생성 처리부(13)에 대하여 인증 래더의 생성을 보류시키고), 인증 래더를 삽입하기 전의 상태의 제어 프로그램을 실행용 제어 프로그램 기억부(15)에 저장한다. The authentication ladder insertion determination unit 20 checks the size of the control program that has received the write request, and if the scale is small, stops the insertion of the authentication ladder (the authentication ladder automatic
예컨대, 악의를 가진 사용자가 더미의 제어 프로그램의 기입 요구를 실시하고, 인증 래더가 삽입된 제어 프로그램을 엔지니어링 환경측에서 판독할 수 있어, 제어 프로그램에 삽입한 인증 래더의 생성 방법 등이 용이하게 해석되지 않도록 하기 위함이다. For example, a malicious user may make a request for writing a dummy control program, and the engineering environment may read the control program in which the authentication ladder is inserted, thereby easily interpreting the method of generating the authentication ladder inserted in the control program. This is to prevent it.
인증 래더의 삽입을 중지하는 기준으로서는, 예컨대, 인증 래더를 생성할 때에 인증 정보를 1바이트로 구획하고 있기 때문에, 제어 프로그램의 스텝 수가 256 스텝 이하인 경우는 제어 프로그램에 인증 래더의 삽입을 중지하는 것이 생각된다. As a criterion for stopping the insertion of the authentication ladder, for example, when generating the authentication ladder, the authentication information is divided into 1 byte. Therefore, when the number of steps of the control program is 256 steps or less, the insertion of the authentication ladder into the control program is stopped. I think.
충분한 규모의 제어 프로그램의 경우는, 인증 래더 삽입 판단부(20)는 인증 래더 성능 확인부(19)에서 산출한 공백 시간을 기초로 삽입가능한 인증 래더의 수를 판단한다. In the case of a control program of sufficient size, the authentication ladder insertion determination unit 20 determines the number of authentication ladders that can be inserted based on the free time calculated by the authentication ladder
또한, 제어 프로그램의 규모가 큰 경우는, 제어 프로그램의 삽입 위치가 전반 부분(255스텝까지)에 집중해 버리기 때문에, 인증 래더 삽입 판단부(20)는 인증 래더가 제어 프로그램의 전체에 삽입되도록 하기 위해서, 스텝 수의 산출 방법을 제어 프로그램의 규모에 따라서 결정한다. In addition, when the control program is large, the insertion position of the control program is concentrated in the first half (up to 255 steps), so that the authentication ladder insertion determination unit 20 allows the authentication ladder to be inserted into the entire control program. In order to do this, a method of calculating the number of steps is determined according to the scale of the control program.
예컨대, 실시형태 1에서는 인증 정보를 1바이트로 구획한 값을 스텝 수로 간주하였지만, 인증 정보를 제어 프로그램의 규모에 따라서 2바이트, 3바이트로 구획한 값을 스텝 수로 간주하는 방법이 생각된다. For example, in
이와 같이, 인증 래더 삽입 판단부(20)는, 도 4(b)에 예시한 인증 래더를 제어 프로그램에 삽입하는 경우에, 소정의 삽입 위치 결정 알고리즘(예컨대, 실시형태 1에서 나타낸 인증 정보를 1바이트 단위로 구획하는 알고리즘)에 따라서 결정되는 삽입 위치가 제어 프로그램의 특정 부분에 집중할 경우는, 상기 삽입 위치 결정 알고리즘 이외의 알고리즘으로서, 인증 래더의 삽입 위치가 제어 프로그램 내에서 보다 분산하는 알고리즘(예컨대, 인증 정보를 2바이트 단위, 3바이트 단위로 구분하는 알고리즘)에 따라서 삽입 위치를 결정한다. As described above, when the authentication ladder insertion determination unit 20 inserts the authentication ladder illustrated in FIG. 4B into the control program, the authentication ladder insertion determination unit 20 uses the predetermined insertion positioning algorithm (for example, the authentication information shown in the first embodiment). When the insertion position determined according to the byte division algorithm is focused on a specific part of the control program, an algorithm other than the insertion positioning algorithm, in which the insertion position of the authentication ladder is more distributed in the control program (for example, , The insertion position is determined according to the algorithm for dividing the authentication information into 2-byte units and 3-byte units).
또한, 인증 래더 삽입 판단부(20)는 제어 프로그램에 삽입가능한 인증 래더의 수와 인증 래더를 삽입하는 스텝 수의 산출 알고리즘을 인증 래더 자동 생성 처리부(13)에 통지한다. The authentication ladder insertion determining unit 20 also notifies the authentication ladder automatic
인증 래더 자동 생성 처리부(13)는, 인증 래더 삽입 판단부(20)로부터 지시된 알고리즘에 따라서, 인증 래더 삽입 판단부(20)로부터 지시된 개수분의 디바이스 번호의 인증 래더를 생성한다. The authentication ladder automatic
또한, 인증 래더 자동 생성 처리부(13)에 의한 인증 래더의 생성 순서 자체는 실시형태 1과 동등하다. In addition, the generation procedure itself of the authentication ladder by the authentication ladder automatic
이와 같이, 본 실시형태에 의하면, 제어 프로그램의 실행시의 성능면으로의 영향을 고려하여 인증 래더를 삽입하는 수를 조정함으로써 제어 프로그램의 실제 동작을 방해하지 않고 제어 프로그램의 부정 이용을 방지할 수 있다. As described above, according to the present embodiment, by adjusting the number of insertion of the authentication ladder in consideration of the influence on the performance aspect at the time of execution of the control program, the illegal use of the control program can be prevented without disturbing the actual operation of the control program. have.
또한, 인증 래더를 제어 프로그램의 규모에 따라서 삽입하는 위치를 변경함으로써, 악의를 가진 사용자에 의한 해석을 곤란하게 할 수 있어, 실행중인 제어 프로그램의 넓은 범위에서 부정 이용을 검출할 수 있다. In addition, by changing the position at which the authentication ladder is inserted in accordance with the scale of the control program, it is difficult to analyze by a malicious user, thereby making it possible to detect fraudulent use in a wide range of the running control program.
이상, 본 실시형태에서는, 인증 래더 자동 생성 처리부에서 인증 래더를 생성할 때에 성능면으로의 영향을 고려하기 위해서 사용자에 의해서 설정된 제어 프로그램의 실행 시간의 제약 시간을 저장하는 실행 제약 시간 기억부와, 상기 실행 제약 시간 기억부에 저장한 제약 시간과 사용자가 작성한 제어 프로그램의 실행 시간과의 차이를 산출하여 인증 래더를 삽입할 수 있는 공백 시간을 확인하는 인증 래더 성능 확인부와, 인증 래더를 자동 생성할 때에 제어 프로그램의 규모와 상기 인증 래더 성능 확인부에서 산출한 공백 시간에 따라서 삽입하는 인증 래더의 수를 판단하는 인증 래더 삽입 판단부를 마련한 FA 기기 제어 프로그램의 부정 이용 방지 시스템을 설명하였다.
As described above, in the present embodiment, an execution restriction time storage unit for storing the restriction time of the execution time of the control program set by the user in order to consider the effect on the performance side when generating the authentication ladder in the authentication ladder automatic generation processing unit; An authentication ladder performance verification unit which calculates a difference between the constraint time stored in the execution constraint time storage unit and the execution time of the control program created by the user and checks the empty time for inserting the authentication ladder; and automatically generates an authentication ladder. The system for preventing fraudulent use of the FA device control program having an authentication ladder insertion determination unit for determining the number of authentication ladders to be inserted in accordance with the size of the control program and the free time calculated by the authentication ladder performance confirmation unit has been described.
(실시형태 3)(Embodiment 3)
본 실시형태에서는, PLC로부터 판독한 제어 프로그램에 삽입되어 있는 인증 래더를 사용자에게 보이지 않도록 하기 위해서 인증 래더를 필터링함과 아울러, 사용자가 편집한 후의 제어 프로그램에 대해 인증 정보에 근거하여 산출한 스텝 수에 맞춰서 인증 래더의 삽입 위치를 조정하는 기능을 설명한다. In the present embodiment, the authentication ladder is filtered so that the user cannot see the authentication ladder inserted in the control program read from the PLC, and the number of steps calculated based on the authentication information for the control program edited by the user. This chapter describes the function to adjust the insertion position of the authentication ladder.
도 7은 본 실시형태에 따른 부정 이용 방지 시스템의 기능 구성을 나타낸다. 7 shows a functional configuration of the illegal use prevention system according to the present embodiment.
도 7에 나타내는 부정 이용 방지 시스템은, 제어 프로그램에 삽입된 인증 래더를 사용자에게 보이지 않도록 하기 위해서 인증 래더를 필터링 처리하여, 제어 프로그램의 편집 후에 인증 래더의 삽입 위치를 조정한다. The illegal use prevention system shown in FIG. 7 filters the authentication ladder so that the user cannot see the authentication ladder inserted in the control program, and adjusts the insertion position of the authentication ladder after editing the control program.
엔지니어링 환경측 PC(100)에서는, 제어 프로그램 판독 요구부(21), 인증 래더 필터링 처리부(22), 인증 래더 삽입 위치 조정 처리부(23) 및 표시부(30)가 추가되어 있다. In the engineering
다른 요소는 도 1에서 나타낸 것과 마찬가지이다. The other elements are the same as those shown in FIG.
또한, 본 실시형태에서는, 액세스 요구 송신 처리부(4)는 인증 래더가 삽입되어 있는 제어 프로그램(합성 프로그램)을 PLC(200)로부터 입력한다. In addition, in this embodiment, the access request
본 실시형태에서는, 액세스 요구 송신 처리부(4)는 프로그램 입력부의 예로 된다. In this embodiment, the access request
또한, 실시형태 1과 마찬가지로, 제어 프로그램은 PLC(200) 이외에서의 사용은 허가되어 있지 않다. In addition, like the first embodiment, the use of the control program other than the
또한, 인증 래더는 실시형태 1에서 나타낸 것과 마찬가지이다. The authentication ladder is the same as that shown in the first embodiment.
또한, 인증 래더 생성용 난수 기억부(8a)는 실시형태 1에서 설명한 인증 래더 생성용 난수를 기억하고 있고, 난수 기억부의 예이다. The authentication ladder generation random
또한, 시리얼 ID 기억부(9a)는 실시형태 1에서 설명한 PLC(200)의 시리얼 ID를 기억하고 있고, 고유 식별 정보 기억부의 예이다. The serial
제어 프로그램 판독 요구부(21)는 사용자로부터의 제어 프로그램의 판독 지시를 받아서 액세스 요구 송신 처리부(4)에 대하여 제어 프로그램의 판독을 요구한다. The control program read
인증 래더 필터링 처리부(22)는 PLC(200)로부터 판독한 제어 프로그램 내의 인증 래더의 삽입 위치를 인증 처리부(10a)에서 생성한 인증 정보에 근거하여 특정하고, 제어 프로그램 작성부(2)에서 제어 프로그램을 표시부(30)에 표시할 때에 사용자에게는 인증 래더를 보이지 않도록 하기 위해서 제어 프로그램의 필터링(비표시 설정)을 행한다. The authentication ladder
즉, 인증 래더 필터링 처리부(22)는 인증 래더 생성용 난수 기억부(8a)의 난수와 시리얼 ID 기억부(9a)의 시리얼 ID에 대한 해시값인 인증 정보에 근거하여, PLC(200)의 인증 래더의 삽입 위치 결정 알고리즘과 동일한 알고리즘에 따라서, 각각의 인증 래더의 위치를 판별하여, 각각의 인증 래더에 대하여 비표시 설정을 행한다. That is, the authentication ladder
인증 래더 필터링 처리부(22)는 비표시 설정부의 예이다. The authentication ladder
표시부(30)는 인증 래더 필터링 처리부(22)에 의한 비표시 설정에 근거하여, 인증 래더는 표시하지 않고, 제어 프로그램만을 표시한다. The
인증 래더 삽입 위치 조정 처리부(23)는, 제어 프로그램 작성부(2)에서 제어 프로그램의 편집이 행해진 후에 인증 정보에 근거하여 산출한 인증 래더의 삽입 위치(스텝 수)를 원래의 스텝 수의 위치에 삽입되도록 조정한다. The authentication ladder insertion position
즉, 인증 래더 삽입 위치 조정 처리부(23)는, 제어 프로그램이 편집되어 제어 프로그램이 갱신된 결과, 어느 하나의 인증 래더의 배치가 변동한 경우에, 상기 인증 래더의 위치를 변동 전의 위치로 되돌린다. That is, the authentication ladder insertion position
예컨대, 도 4(b)의 예에 있어서, 사용자가 제어 프로그램을 편집한 결과, 234스텝번째에 있었던 A234가 하나 뒤의 235스텝번째의 위치로 어긋난 경우는, 인증 래더 삽입 위치 조정 처리부(23)는 A234를 원래의 234스텝번째의 위치로 되돌린다(X15 앞의 위치로 함). For example, in the example of FIG. 4 (b), when the user edits the control program, when A234, which was in the 234th step, is shifted to the 235th step position after the one, the authentication ladder insertion position
인증 래더 삽입 위치 조정 처리부(23)는 위치 조정부의 예이다. The authentication ladder insertion position
PLC(200)에서는, 제어 프로그램 판독 처리부(24)가 추가되어 있다. In the
제어 프로그램 판독 처리부(24)는 실행용 제어 프로그램 기억부(15)로부터 제어 프로그램(합성 프로그램)을 판독한다. The control program read processing
또한, 본 실시형태에서는, 액세스 요구 수신 처리부(11)는 제어 프로그램 판독 처리부(24)에 의해 판독된 제어 프로그램을 엔지니어링 환경측 PC(100)에 출력한다. In addition, in the present embodiment, the access request
본 실시형태에서는, 액세스 요구 수신 처리부(11) 및 제어 프로그램 판독 처리부(24)는 프로그램 출력부에 상당한다. In the present embodiment, the access request
또한, 도 7에서는, PLC(200)에 있어서 본 실시형태에 따른 동작에 직접 관계가 없는 요소의 도시를 생략하고 있다. In addition, in FIG. 7, illustration of the element which is not directly related to the operation | movement which concerns on this embodiment in the
그러나, PLC(200)에는, 제어 프로그램 기입 처리부(12), 인증 래더 자동 생성 처리부(13), 인증 래더 삽입 처리부(14), 제어 프로그램 실행 제어부(16), 전용 디바이스 설정부(17) 등의 실시형태 1 및 실시형태 2에서 설명한 요소가 포함되어 있는 것으로 한다. However, the
다음에, 시큐리티 설정부(6a)의 시큐리티 설정이 유효하게 되어 있는 경우에, 제어 프로그램의 판독 요구를 했을 때에 실행되는 인증에 대해서 설명한다. Next, the authentication performed when a control program read request is made when the security setting of the
입력부(1)로부터 PLC(200)에 저장되어 있는 제어 프로그램의 판독 요구를 제어 프로그램 판독 요구부(21)가 받으면, 시큐리티 설정부(6a)의 시큐리티 설정을 확인하여, 시큐리티 설정이 유효한 경우에 PLC(200)와의 사이에서 챌린지 리스폰스 인증을 실시하기 위해서 인증 처리부(10a)에 챌린지값(난수)의 생성을 요구한다. When the control program read
인증 처리부(10a)는 난수의 생성을 난수 생성 처리부(7)에 요구하고, 받은 난수를 제어 프로그램 판독 요구부(21)에 돌려준다. The
제어 프로그램 판독 요구부(21)는 액세스 요구 송신 처리부(4)에 대하여 PLC(200)와의 사이에서 챌린지 리스폰스 인증을 행하도록 요구한다. The control program read
액세스 요구 송신 처리부(4)는 액세스 요구 수신 처리부에 대하여 인증 요구와 챌린지값(난수)을 송신한다. The access request
인증 요구를 받은 액세스 요구 수신 처리부(11)는, 인증 처리부(10b)에 대하여 받은 챌린지값을 전달하여 리스폰스값의 생성을 지시한다. The access request
인증 처리부(10a)는 리스폰스값의 생성 요구를 받아서 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID, 및 챌린지값으로서 받은 난수를 입력으로 해서 해시 함수에 의해 리스폰스값(해시값)을 생성하고, 생성한 리스폰스값을 액세스 요구 수신 처리부(11)에 돌려준다. The
액세스 요구 수신 처리부(11)는 받은 리스폰스값을 액세스 요구 송신 처리부(4)에 돌려주고, 리스폰스값을 받은 액세스 요구 송신 처리부(4)는 리스폰스값을 제어 프로그램 판독 요구부(21)에 돌려준다. The access request
제어 프로그램 판독 요구부(21)는 인증 처리부(10a)에 대하여 받은 리스폰스값을 전달하고, 인증 처리부(10a)는 PLC(200)와 동일한 알고리즘을 이용하여 인증 래더 생성용 난수 기억부(8a)에 저장되어 있는 난수와 시리얼 ID 기억부(9a)에 저장되어 있는 시리얼 ID와 방금 전에 생성한 챌린지값을 입력으로 해서 해시 함수에 의해 해시값을 생성하고, 리스폰스값과 비교해서, 비교 결과를 제어 프로그램 판독 요구부에 통지한다. The control program
제어 프로그램 판독 요구부(21)는, 비교 결과가 불일치인 경우는 제어 프로그램의 판독 처리를 중지하고, 사용자에 대하여 PLC로부터의 제어 프로그램의 판독을 할 수 없는 것을 통지한다. If the comparison result is inconsistent, the control program read
비교 결과가 일치한 경우는, 제어 프로그램 판독 요구부(21)는 액세스 요구 송신 처리부(4)에 대하여 제어 프로그램의 판독 요구를 지시한다. When the comparison results match, the control program read
액세스 요구 수신 처리부(11)는 제어 프로그램의 판독 요구를 받으면 제어 프로그램 판독 처리부(24)에 제어 프로그램의 판독을 지시한다. The access request
제어 프로그램 판독 처리부(24)는 실행용 제어 프로그램 기억부(15)로부터 제어 프로그램을 판독하여, 액세스 요구 수신 처리부(11)에 돌려준다. The control program read processing
제어 프로그램 판독 요구부(21)는 PLC(200)로부터 판독한 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. The control program read
이와 같이 시큐리티 설정이 유효하게 되어 있는 경우에는, 제어 프로그램과 PLC와의 관련시킴의 정보를 이용해서 인증을 행하고, 동일한 관련시킴의 정보를 가지고 있지 않은 프로젝트와 PLC 사이에서는 제어 프로그램의 기입이나 판독 처리는 할 수 없도록 제어한다. In this way, when the security setting is enabled, authentication is performed by using the association information between the control program and the PLC, and writing and reading processing of the control program is performed between the project and the PLC that do not have the same association information. Control not to do it.
이는, PLC에 저장되어 있는 제어 프로그램을 용이하게 외부에서 판독하여 부정 복사를 작성할 수 없도록 하기 위함이다. This is for the purpose that the control program stored in the PLC cannot be easily read externally to create an illegal copy.
또한, 본 실시형태에서는 제어 프로그램의 판독시에 인증 처리를 실시하고 있지만, 제어 프로그램의 기입 처리를 실시하는 경우도 마찬가지로 인증 처리를 행하는 것으로 한다. In addition, in this embodiment, although authentication process is performed at the time of a control program reading, authentication process is similarly performed also when the control program write process is performed.
또한, 본 실시형태에서는 엔지니어링 환경측으로부터만 인증 요구를 행하고 있지만, PLC(200)측에서도 실행용 제어 프로그램 기억부(15)에 대한 액세스 요구가 있었던 경우에 엔지니어링 환경측 PC(100)측으로 인증을 요구해도 좋다. In addition, in this embodiment, the authentication request is made only from the engineering environment side, but the authentication request is made to the engineering
다음에, PLC로부터 판독한 제어 프로그램에 삽입되어 있는 인증 래더를 사용자에게 보이지 않도록 하기 위해서 필터링하는 처리에 대해서 설명한다. Next, a description will be given of a process for filtering so that the authentication ladder inserted in the control program read from the PLC is not visible to the user.
사용자가 입력부(1)를 이용하여 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램의 표시/편집의 지시를 했을 때, 인증 래더 필터링 처리부(22)는, 인증 처리부(10a)에서 생성한 인증 정보를 취득하고, 취득한 인증 정보에 근거해서 인증 래더 삽입 처리부(14)에 의해 제어 프로그램에 삽입되어 있는 인증 래더의 삽입 위치를 확인한다(인증 정보로부터 스텝 수를 산출하여 인증 래더의 삽입 위치를 파악함). When the user instructs display / edit of the control program stored in the control
인증 래더 필터링 처리부(22)는 제어 프로그램 기억부(3)로부터 제어 프로그램을 판독하여, 1번만 실행하도록 설정한 인증 래더(도 4(a)에 예시한 인증 래더)와, 상기 산출한 스텝 수에 위치하는 인증 래더(제어 프로그램 중의 특정한 스텝 수에 삽입한 인증 래더: 도 4(b)에 예시한 인증 래더)에 대하여 비표시 설정을 행한다. The authentication ladder
제어 프로그램 작성부(2)는, 인증 래더 필터링 처리부(22)로부터 받은 제어 프로그램을 표시할 때, 비표시 설정되어 있는 개소를 확인하여, 비표시 설정되어 있는 개소의 인증 래더를 표시하지 않는 제어를 행하여 표시부(30)에 출력하고, 표시부(30)는 인증 래더를 표시하지 않고 제어 프로그램만을 표시한다. When the control
또한, 인증 래더 삽입 위치 조정 처리부(23)는, 제어 프로그램 작성부(2)에서 편집된 후의 제어 프로그램에 대하여, 사용자에 의한 명령의 추기(追記)나 삭제에 의해서 발생한 인증 래더 삽입 위치(스텝 수)를, 인증 처리부(10a)에서 생성한 인증 정보에 근거하여 원래의 위치로 되돌리고 나서, 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. In addition, the authentication ladder insertion position
이와 같이, 본 실시형태에 의하면, 사용자에게 인증 래더를 보이지 않게 함으로써, 정규 사용자가 잘못해서 인증 래더를 삭제하거나 변경하거나 하는 것을 방지하여, 악의를 가진 사용자에 의해 제어 프로그램의 부정 이용 방지 방법이 해석되는 것을 곤란하게 하여, 제어 프로그램의 부정 이용을 방지할 수 있다. As described above, according to the present embodiment, the authentication ladder is not shown to the user, thereby preventing the regular user from accidentally deleting or changing the authentication ladder, and the malicious user prevents the illegal use of the control program. This makes it difficult to prevent unauthorized use of the control program.
이상, 본 실시형태에서는, 엔지니어링 환경으로부터 PLC의 실행용 제어 프로그램 기억부에 저장되어 있는 제어 프로그램의 판독 요구를 받아서, 액세스 요구 송신 처리부에 제어 프로그램의 판독 지시를 하여 판독한 제어 프로그램을 제어 프로그램 기억부에 저장하는 제어 프로그램 판독 요구부와, 인증 래더가 삽입된 제어 프로그램을 사용자가 표시/편집하는 경우에 인증 래더를 사용자에게 보이지 않도록 하기 위해서 필터링을 실시하는 인증 래더 필터링 처리부와, 제어 프로그램 작성부에 의해 사용자가 제어 프로그램을 편집한 경우에 인증 정보에 맞춰서 삽입하고 있었던 인증 래더를 원래의 위치로 되돌리는 처리를 실행하는 인증 래더 삽입 위치 조정 처리부와, 실행용 제어 프로그램 기억부로부터 제어 프로그램을 판독하는 처리를 실행하는 제어 프로그램 판독 처리부를 마련한 FA 기기 제어 프로그램의 부정 이용 방지 시스템을 설명하였다. As mentioned above, in this embodiment, the control program memorize | stores the control program which received the read request of the control program stored in the PLC's execution control program storage part from the engineering environment, and gave the access request transmission processing part the instruction to read the control program. A control program reading request unit for storing the control program, an authentication ladder filtering processing unit for filtering to prevent the user from displaying the authentication ladder when the user displays / edits a control program in which the authentication ladder is inserted, and a control program preparing unit Reads the control program from the authentication ladder insertion position adjustment processing unit that executes a process of returning the authentication ladder inserted in accordance with the authentication information to the original position when the user edits the control program by the user. To execute processing Control the read processing program described illegal use prevention system of the FA device, the control program prepared.
(실시형태 4)(Fourth Embodiment)
본 실시형태에서는, PLC로부터 판독한 제어 프로그램에 대하여, 사용자에게 전용 디바이스의 존재가 밝혀지지 않도록 하기 위해서 인증 래더 삽입 처리부(14)에서 삽입한 인증 래더의 전용 디바이스를 기존의 디바이스로 치환하는 기능을 설명한다. In the present embodiment, the control program read from the PLC has a function of replacing the dedicated device of the authentication ladder inserted in the authentication ladder
도 8은 본 실시형태에 따른 부정 이용 방지 시스템의 기능 구성을 나타낸다. 8 shows a functional configuration of the illegal use prevention system according to the present embodiment.
도 8의 부정 이용 방지 시스템에서는, 제어 프로그램에 삽입된 인증 래더의 전용 디바이스의 번호를 미리 변환 테이블로 설정한 변환 룰에 따라서 기존의 디바이스의 번호로 치환한다. In the illegal use prevention system of FIG. 8, the number of the dedicated device of the authentication ladder inserted in the control program is replaced with the number of the existing device according to the conversion rule set in advance in the conversion table.
엔지니어링 환경측 PC(100)의 구성요소의 각각은 실시형태 1~3에서 설명한 것이기 때문에, 설명을 생략한다. Since each of the components of the engineering
PLC(200)에서는, 도 7의 구성에 인증 래더 변환 테이블 기억부(25) 및 인증 래더 변환 처리부(26)가 추가되어 있다. In the
또한, 도 8에서도, PLC(200)에 있어서 본 실시형태에 따른 동작에 직접 관계가 없는 요소의 도시를 생략하고 있다. 8, illustration of the element which is not directly related to the operation | movement which concerns on this embodiment in the
그러나, PLC(200)에는, 제어 프로그램 기입 처리부(12), 인증 래더 자동 생성 처리부(13), 인증 래더 삽입 처리부(14), 제어 프로그램 실행 제어부(16), 전용 디바이스 설정부(17) 등의 실시형태 1 및 실시형태 2에서 설명한 요소가 포함되어 있는 것으로 한다. However, the
인증 래더 변환 테이블 기억부(25)는, 엔지니어링 환경측 PC(100)로부터 제어 프로그램의 판독 요구가 있었던 경우에, 제어 프로그램 중에 삽입되어 있는 인증 래더의 전용 디바이스 번호를 기존의 디바이스의 번호로 변환할 때에 이용하는 변환 테이블을 저장하고 있다. The authentication ladder conversion
인증 래더 변환 처리부(26)는 인증 래더 변환 테이블 기억부(25)에 저장되어 있는 변환 테이블을 이용하여 전용 디바이스 번호를 기존의 디바이스 번호로 치환하는 처리를 실행한다. The authentication ladder
전술한 바와 같이, 전용 디바이스의 디바이스 번호는, 대상 디바이스의 디바이스 번호와 번호 체계가 상이하다(실시형태 1의 예에서는, 전용 디바이스 번호는 「A」로 시작되고, 대상 디바이스 번호는 「X」, 「Y」, 「E」로 시작됨). As described above, the device number of the dedicated device is different from the device number of the target device (in the example of
이 때문에, 인증 래더 변환 처리부(26)는, 실행용 제어 프로그램 기억부(15)에 저장되어 있는 제어 프로그램(합성 프로그램)의 출력 지시가 엔지니어링 환경측 PC(100)로부터 있었던 경우에, 인증 래더의 전용 디바이스 번호를 대상 디바이스 번호와 동일한 번호 체계로 변경한다(전용 디바이스 번호를 예컨대 「X」로 시작되도록 함). For this reason, when the output instruction of the control program (synthesis program) stored in the control
인증 래더 변환 처리부(26)는 디바이스 번호 변경부의 예이다. The authentication ladder
또한, 본 실시형태에서는, 액세스 요구 수신 처리부(11)(프로그램 출력부)는, 인증 래더 변환 처리부(26)에 의해 변경된 후의 전용 디바이스 번호가 포함되는 제어 프로그램(합성 프로그램)을 엔지니어링 환경측 PC(100)에 출력한다. In addition, in the present embodiment, the access request reception processing unit 11 (program output unit) includes a control program (synthesis program) containing the dedicated device number after being changed by the authentication ladder conversion processing unit 26 (the engineering environment side PC). To 100).
다음에, 시큐리티 설정이 유효하게 되어 있는 경우에, 제어 프로그램의 판독을 실시했을 때에 인증 래더의 전용 디바이스 번호를 기존의 디바이스 번호로 치환하는 처리에 대해서 설명한다. Next, when the security setting is enabled, a process of replacing the dedicated device number of the authentication ladder with the existing device number when the control program is read out will be described.
제어 프로그램 판독 처리부(24)가 엔지니어링 환경측 PC(100)로부터 제어 프로그램의 판독 요구를 받으면, 제어 프로그램 판독 처리부(24)는 시큐리티 설정부(6b)의 시큐리티 설정을 확인하여, 시큐리티 설정이 유효한 경우에 실행용 제어 프로그램 기억부(15)로부터 판독한 제어 프로그램에 삽입되어 있는 인증 래더의 전용 디바이스를 기존의 디바이스로의 치환을 인증 래더 변환 처리부(26)에 의뢰한다. When the control program read processing
전용 디바이스의 기존 디바이스로의 변환 요구를 받은 인증 래더 변환 처리부(26)는, 인증 래더 변환 테이블 기억부(25)에 설정되어 있는 변환 테이블에 근거하여 인증 래더로써 사용하고 있는 전용 디바이스를 기존의 디바이스(X 디바이스나 Y 디바이스)로의 치환을 실시한다. Based on the conversion table set in the authentication ladder conversion
예컨대, 전용 디바이스 A234는 기존 디바이스인 X234로 변환한다. For example, the dedicated device A234 converts to an existing device X234.
기존 디바이스로 변환하는 경우에 반드시 X 디바이스로 변환할 필요는 없고, 기존 디바이스이면 좋다. When converting to an existing device, it is not necessary to convert to an X device, but an existing device may be used.
또한, 디바이스 번호에 대해서도 전용 디바이스와 동일하게 할 필요도 없고 치환한 기존 디바이스로써 사용가능한 디바이스 번호이면 좋다. The device number need not be the same as the dedicated device but may be a device number that can be used as an existing device that has been replaced.
또한, 전용 디바이스를 기존 디바이스로 치환한 제어 프로그램을 판독한 엔지니어링 환경측에서는, 실시형태 3에서 기재한 바와 같이, 인증 래더에 대해 필터링을 실시하여 인증 래더를 사용자에게는 보이지 않게 하기 때문에, 변환 테이블은 필요 없다. In addition, on the engineering environment side which reads out the control program which replaced the dedicated device by the existing device, as described in
이와 같이, 본 실시형태에 의하면, 엔지니어링 환경측에서 판독한 제어 프로그램에 삽입된 인증 래더의 전용 디바이스를 기존의 디바이스로 치환함으로써, 예컨대 악의를 가진 사용자가 판독한 제어 프로그램을, 바이너리 에디터(binary editor)나 코드를 해석하기 위한 툴에 의해 열었을 때에, 종래의 제어 프로그램에서는 사용하고 있지 않은 디바이스가 사용되고 있는 것을 용이하게 알지 못하게 할 수 있어, 인증 처리의 방법을 해석되기 어렵게 할 수 있다. As described above, according to the present embodiment, by replacing the dedicated device of the authentication ladder inserted in the control program read by the engineering environment with an existing device, for example, a malicious program reads a control program read by a malicious user. And a tool for interpreting the code, it is not possible to easily know that a device which is not used in the conventional control program is being used, and it is difficult to interpret the authentication processing method.
즉, 실시형태 3에 의하면, 인증 래더를 비표시로 하기 때문에, 전용 디바이스 번호는 표시되지 않지만, 상기와 같은 툴이 이용된 경우에는, 비표시로 설정되어 있더라도 전용 디바이스 번호의 존재가 밝혀지는 경우가 있다. 본 실시형태에서는, 이러한 툴이 이용된 경우에도, 전용 디바이스 번호가 통상의 디바이스 번호와 동일한 번호 체계로 되어 있기 때문에, 전용 디바이스 번호가 식별되는 것을 회피할 수 있다. That is, according to the third embodiment, since the authentication ladder is hidden, the dedicated device number is not displayed. However, when the above-described tool is used, the existence of the dedicated device number is revealed even if it is set to non-display. There is. In this embodiment, even when such a tool is used, since the dedicated device number has the same number system as the normal device number, it is possible to avoid the identification of the dedicated device number.
이상, 본 실시형태에서는, 엔지니어링 환경에서의 제어 프로그램의 판독이 요구되었을 때에 제어 프로그램 판독 처리부에서의 지시를 받아서 인증 래더의 전용 디바이스를 기존의 디바이스로 치환하는 인증 래더 변환 처리부와, 인증 래더 변환 처리부에서 인증 래더의 전용 디바이스를 기존의 디바이스로 치환할 때에 이용하는 변환 테이블을 저장하는 인증 래더 변환 테이블 기억부를 마련한 FA 기기 제어 프로그램의 부정 이용 방지 시스템을 설명하였다.
As described above, in the present embodiment, an authentication ladder conversion processing unit and an authentication ladder conversion processing unit that receive instructions from the control program reading processing unit and replace the dedicated device of the authentication ladder with an existing device when the control program reading in the engineering environment is requested. In the following, a system for preventing unauthorized use of an FA device control program having an authentication ladder conversion table storage unit for storing a conversion table used to replace a dedicated device for an authentication ladder with an existing device has been described.
(실시형태 5)(Embodiment 5)
본 실시형태에서는, PLC로부터 제어 프로그램의 판독이 행해질 때마다 PLC에 마련한 카운터의 값을 이용하여 인증 정보를 재생성하고, 인증 래더도 재생성하여 제어 프로그램 중에 삽입 완료된 인증 래더와의 교체를 실시하고 나서 엔지니어링 환경측으로 송신하는 기능을 설명한다. In this embodiment, every time the control program is read from the PLC, the authentication information is regenerated using the value of the counter provided in the PLC, and the authentication ladder is also regenerated to replace the authentication ladder inserted in the control program before engineering. The function to transmit to the environment is explained.
도 9는 본 실시형태에 따른 부정 이용 방지 시스템의 기능 구성을 나타낸다. 9 shows a functional configuration of the illegal use prevention system according to the present embodiment.
도 9의 부정 이용 방지 시스템에서는, PLC(200)로부터 제어 프로그램의 판독이 행해질 때마다 PLC(200)에 마련한 카운터의 값을 이용해서 재생성한 인증 정보에 근거하여 인증 래더의 재생성이 행해지고, 제어 프로그램에 삽입되어 있는 인증 래더와의 교체가 행해진다. In the illegal use prevention system of FIG. 9, whenever the control program is read from the
도 9에서는, 엔지니어링 환경측 PC(100)에 있어서, 조작 이력 기억부(27)가 추가되어 있다. In FIG. 9, the operation
조작 이력 기억부(27)는, 엔지니어링 환경측 PC(100) 상에서 사용자가 실행한 기능명이나 실행했을 때의 타임 스탬프 및 에러 정보 등의 조작 내용을 저장한다. The operation
조작 이력 기억부(27)는 입력 횟수 계수부의 예이다. The operation
또한, 조작 이력 기억부(27) 이외의 엔지니어링 환경측 PC(100)의 구성요소는, 실시형태 1~3에서 설명한 것이기 때문에 설명을 생략한다. In addition, since the component of the engineering
또한, 도면 상의 스페이스의 문제에 의해 표시부(30)는 도시가 생략되어 있지만, 도 9의 엔지니어링 환경측 PC(100)에는 표시부(30)가 존재하는 것으로 한다. In addition, although the
PLC(200)에서는, 인증 래더 삭제 처리부(28) 및 카운터 처리부(29)가 추가되어 있다. In the
인증 래더 삭제 처리부(28)는 제어 프로그램 중에 삽입되어 있는 인증 래더를 삭제한다. The authentication ladder
보다 구체적으로는, 액세스 요구 수신 처리부(11)(프로그램 출력부)는, 외부 장치인 엔지니어링 환경측 PC(100)로부터 인증 래더가 삽입되어 있는 제어 프로그램(합성 프로그램)의 출력 지시가 있었던 경우에, 제어 프로그램(합성 프로그램)을 엔지니어링 환경측 PC(100)에 출력하지만, 엔지니어링 환경측 PC(100)으로의 출력시에, 제어 프로그램(합성 프로그램)으로부터 인증 래더를 삭제한다. More specifically, when the access request reception processing unit 11 (program output unit) outputs a control program (synthesis program) in which an authentication ladder is inserted from the engineering
인증 래더 삭제 처리부(28)는 삭제 처리부의 예이다. The authentication ladder
카운터 처리부(29)는 엔지니어링 환경으로부터의 제어 프로그램의 판독 요구를 접수할 때마다 PLC(200) 내에 마련한 카운터의 값을 카운트 업하고 카운트 업한 값을 기억한다. The
즉, 액세스 요구 수신 처리부(11)에 의해 제어 프로그램(합성 프로그램)이 엔지니어링 환경측 PC(100)으로 출력될 때마다, 출력 횟수를 계수한다. That is, each time the control program (synthesis program) is output to the engineering
카운터 처리부(29)는 출력 횟수 계수부이다. The
그리고, 본 실시형태에서는, 인증 래더 자동 생성 처리부(13)(인증 프로그램 생성부)는, 액세스 요구 수신 처리부(11)에 의해 제어 프로그램(합성 프로그램)이 엔지니어링 환경측 PC(100)으로 출력될 때마다, 시리얼 ID 기억부(9b)의 시리얼 ID와 카운터 처리부(29)의 계수값과 인증 래더 생성용 난수 기억부(8b)의 난수에 근거하여, 새롭게 전용 디바이스의 디바이스 번호를 선택하고, 새로운 전용 디바이스 번호가 포함되는 새로운 인증 래더를 생성하며, 생성한 새로운 인증 래더마다 인증 래더 삭제 처리부(28)에 의한 삭제 처리 후의 제어 프로그램 내의 새로운 삽입 위치를 결정한다. In the present embodiment, the authentication ladder automatic generation processing unit 13 (authentication program generation unit) is output by the access request
그리고, 인증 래더 삽입 처리부(14)(프로그램 합성부)는, 인증 래더 자동 생성 처리부(13)에 의해 결정된 새로운 삽입 위치에서 새로운 인증 래더의 각각을 제어 프로그램에 삽입하여 새로운 합성 프로그램으로 한다. Then, the authentication ladder insertion processing unit 14 (program synthesizing unit) inserts each new authentication ladder into the control program at the new insertion position determined by the authentication ladder automatic
또한, 도 9에서는, PLC(200)에 있어서 본 실시형태에 따른 동작에 직접 관계가 없는 요소의 도시를 생략하고 있다. In addition, in FIG. 9, illustration of the element which is not directly related to the operation | movement which concerns on this embodiment in the
그러나, PLC(200)에는, 제어 프로그램 기입 처리부(12), 제어 프로그램 실행 제어부(16), 전용 디바이스 설정부(17) 등의 실시형태 1~3에서 설명한 요소가 포함되어 있는 것으로 한다. However, it is assumed that the
다음에, 본 실시형태에 따른 동작을 설명한다. Next, the operation according to the present embodiment will be described.
먼저, PLC(200)측의 동작을 설명한다. First, the operation of the
실시형태 1에서는, 제어 프로그램의 PLC로의 초회 기입시에 엔지니어링 환경측 PC(100)에서 생성한 난수와 PLC(200)의 시리얼 ID의 2개 정보를 입력으로 해서 해시 함수에 의해 인증 정보를 생성하고 있었다. In
본 실시형태에서는, 상기 2개의 정보 이외에 카운터 처리부(29)의 카운터의 값도 이용하여 인증 정보를 생성하고, 생성한 인증 정보로부터 인증 래더를 생성한다. In this embodiment, authentication information is generated using the value of the counter of the
카운터 처리부(29)의 카운터는 엔지니어링 환경측 PC(100)로부터 제어 프로그램의 판독 요구를 받을 때마다 카운트 업한다. The counter of the
이 카운터의 값은 제어 프로그램의 초회 기입시에 초기값 0이 설정되고, 초회 기입시에 인증 정보를 생성할 때의 카운터의 값은 0을 이용한다. As for the value of this counter, the
이 후에, 엔지니어링 환경측 PC(100)로부터의 제어 프로그램의 판독 요구를 받으면, 인증 래더 자동 생성 처리부(13)가 카운터 처리부(29)에 카운트 업을 지시하고, 상기 지시에 의해 카운터 처리부(29)는 카운터의 값을 하나 카운트 업한다. Subsequently, upon receiving a request for reading the control program from the engineering
엔지니어링 환경측 PC(100)로부터의 제어 프로그램의 판독 요구를 받은 제어 프로그램 판독 처리부(24)는 인증 래더 자동 생성 처리부(13)에 대하여 인증 래더의 재생성을 지시한다. The control program read processing
인증 래더 자동 생성 처리부(13)는 인증 래더의 재생성 요구를 받아서 인증 처리부(10b)에 인증 정보의 생성을 지시한다. The authentication ladder automatic
인증 처리부(10b)에서는 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID 및 카운터 처리부(29)에 저장되어 있는 카운트값에 대해 해시 연산을 행해서 인증 정보를 생성하여, 인증 래더 자동 생성 처리부(13)에 돌려준다. The
인증 래더 자동 생성 처리부(13)는 받은 인증 정보와 제어 프로그램을 인증 래더 삭제 처리부(28)로 전달한다. The authentication ladder automatic
인증 래더 삭제 처리부(28)는 받은 인증 정보에 근거해서 제어 프로그램 내에 현재 삽입되어 있는 인증 래더의 삽입 위치를 특정하여 인증 래더를 삭제하고, 인증 래더를 삭제한 제어 프로그램을 인증 래더 자동 생성 처리부(13)로 돌려준다. The authentication ladder
인증 래더 자동 생성 처리부(13)는 카운터 처리부(29)에 대해 카운트 업을 지시하고, 카운터 처리부(29)는 카운터의 값을 카운트 업해서 유지한다. The authentication ladder automatic
인증 래더 자동 생성 처리부(13)는 재차 인증 처리부(10b)에 대하여 인증 정보의 생성을 요구하고, 인증 처리부(10b)는 카운트 업한 카운터의 값을 이용하여 인증 정보를 재생성하여, 재생성한 인증 정보를 인증 래더 자동 생성 처리부(13)에 돌려준다. The authentication ladder automatic
인증 래더 자동 생성 처리부(13)는 재생성한 인증 정보로부터 인증 래더를 자동 생성하고(각 인증 래더의 삽입 위치를 특정하고), 생성한 인증 래더와, 인증 래더 삭제 처리부(28)에 의해 인증 래더를 삭제한 제어 프로그램을 인증 래더 삽입 처리부(14)로 전달한다. The authentication ladder automatic
그리고, 인증 래더 자동 생성 처리부(13)는 재생성한 인증 래더의 제어 프로그램으로의 재삽입을 지시하여, 인증 래더 삽입 처리부(14)에 의해 인증 래더를 재삽입한다. Then, the authentication ladder automatic
인증 래더가 재삽입된 제어 프로그램을 제어 프로그램 판독 처리부(24)는 액세스 요구 수신 처리부(11)를 경유하여 엔지니어링 환경으로 송신한다. The control program read processing
다음에, 엔지니어링 환경측 PC(100)측에서의 동작에 대해서 설명한다. Next, the operation on the engineering
제어 프로그램을 받은 제어 프로그램 판독 요구부(21)는 제어 프로그램 기억부(3)에 저장한다. The control program read
사용자가 입력부(1)를 이용하여 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램의 표시/편집을 지시했을 때, 인증 래더 필터링 처리부(22)는 인증 처리부(10a)에 인증 정보의 생성을 의뢰한다. When the user instructs display / edit of the control program stored in the control
인증 정보의 생성 요구를 받은 인증 처리부(10a)는, 조작 이력 기억부(27)에 저장되어 있는 조작 이력으로부터 PLC(200)로부터의 제어 프로그램의 판독 처리를 실행한 횟수(판독에 성공한 경우의 횟수만)를 산출한다. The
다음에, 인증 처리부(10a)는 산출한 값(이 값은 PLC의 카운터 처리부(29)에 의해 유지되어 있는 카운터의 값과 동일)과 인증 래더 생성용 난수 기억부(8a)에 저장되어 있는 난수 및 시리얼 ID 기억부(9a)에 저장되어 있는 시리얼 ID로부터 인증 정보를 산출하여, 인증 래더 필터링 처리부(22)에 돌려준다. Next, the
인증 래더 필터링 처리부(22)에서는, 취득한 인증 정보에 근거하여 인증 래더 삽입 처리부(14)에 의해 제어 프로그램에 삽입되어 있는 인증 래더의 삽입 위치를 확인한다(인증 정보로부터 스텝 수를 산출하여 인증 래더의 삽입 위치를 파악함). The authentication ladder
인증 래더 필터링 처리부(22)는 제어 프로그램 기억부(3)로부터 제어 프로그램을 판독하여, 1번만 실행하도록 설정한 인증 래더(도 4(a)에 예시한 인증 래더)와 상기 산출한 스텝 수에 위치하는 인증 래더(제어 프로그램 중의 특정한 스텝 수에 삽입한 인증 래더: 도 4(b)에 예시한 인증 래더)에 대하여 비표시 설정을 행한다. The authentication ladder
제어 프로그램 작성부(2)는 인증 래더 필터링 처리부(22)로부터 받은 제어 프로그램을 표시할 때, 비표시 설정되어 있는 개소를 확인하여, 비표시 설정되어 있는 개소의 인증 래더를 표시하지 않는 제어를 행하여 표시부(30)에 출력하고, 표시부(30)는 인증 래더를 표시하지 않고 제어 프로그램만을 표시한다. When the control
또한, 인증 래더 삽입 위치 조정 처리부(23)(위치 조정부)는, 제어 프로그램 작성부(2)에 의해 편집된 후의 제어 프로그램에 대하여, 사용자에 의한 명령의 추기나 삭제에 의해서 생긴 인증 래더 삽입 위치(스텝 수)를 인증 처리부(10a)에서 생성한 인증 정보에 근거하여 원래의 위치로 되돌리고 나서, 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. In addition, the authentication ladder insertion position adjustment processing unit 23 (position adjustment unit) is the authentication ladder insertion position generated by adding or deleting a command by the user to the control program edited by the control program creation unit 2 ( The number of steps) is returned to the original position based on the authentication information generated by the
이와 같이, 본 실시형태에서는, 실행용 제어 프로그램 기억부(15)에 저장되어 있는 제어 프로그램의 판독 요구를 받을 때마다 카운터를 카운트 업하고, 그 카운터의 값을 이용하여 인증 정보와 그 인증 정보에 근거해서 인증 래더를 재생성하여, 제어 프로그램 중에 삽입 완료된 인증 래더와 교체한다. As described above, in this embodiment, the counter is counted up each time a read request of the control program stored in the execution control
이들 처리에 의해, 엔지니어링 환경측 PC(100)측에서 판독한 제어 프로그램은 매회 상이하기 때문에, 악의를 가진 사용자에 의한 인증 처리의 해석을 곤란하게 할 수 있다. By these processes, the control programs read out from the engineering
또한, 악의를 가진 사용자가 제어 프로그램을 가령 별도의 PLC에 복사할 수 있었다고 해도 PLC마다 고유한 카운터의 값을 이용하여 인증 정보를 생성하고 있기 때문에, 제어 프로그램의 부정 이용을 더욱 방지할 수 있다. Further, even if a malicious user can copy the control program to another PLC, for example, since authentication information is generated by using a counter value unique to each PLC, unauthorized use of the control program can be further prevented.
또한, 통상, 제어 프로그램을 PLC에 기입하여 실제로의 동작을 확인하고 있고, 그 결과에 따라서 제어 프로그램 등을 엔지니어링 환경과의 사이에서 기입/판독을 반복하면서 프로그램이나 파라미터 설정을 조정하는 작업을 실시하고 있기 때문에, 다른 PLC와 카운터의 값이 동일하게 될 가능성은 낮다고 생각한다. Normally, the control program is written to the PLC to confirm the actual operation. According to the result, the program or parameter setting is adjusted while repeating writing / reading of the control program with the engineering environment. As a result, it is thought that the value of other PLCs and counters is the same.
이상, 본 실시형태에서는, 사용자가 엔지니어링 환경 상에서 실행한 기능의 조작 이력을 저장하는 조작 이력 기억부와, 제어 프로그램에 삽입된 인증 래더를 재삽입하기 위해서 일단 제어 프로그램으로부터 삭제하는 인증 래더 삭제 처리부와, 엔지니어링 환경에서의 제어 프로그램의 판독 요구를 받을 때마다 카운터의 값을 카운트 업하고 카운트 업한 값을 저장하는 카운터 처리부를 마련한 FA 기기 제어 프로그램의 부정 이용 방지 시스템을 설명하였다.
As mentioned above, in this embodiment, the operation history storage part which stores the operation history of the function which the user performed on the engineering environment, the authentication ladder deletion processing part which once deletes from a control program in order to reinsert the authentication ladder inserted in the control program, and The system for preventing misuse of the FA device control program having a counter processing unit for counting up the value of the counter and storing the counted up value whenever a read request of the control program in the engineering environment is received has been described.
1: 입력부, 2: 제어 프로그램 작성부, 3: 제어 프로그램 기억부, 4: 액세스 요구 송신 처리부, 5: 제어 프로그램 기입 요구부, 6: 시큐리티 설정부, 7: 난수 생성 처리부, 8: 인증 래더 생성용 난수 기억부, 9: 시리얼 ID 기억부, 10: 인증 처리부, 11: 액세스 요구 수신 처리부, 12: 제어 프로그램 기입 처리부, 13: 인증 래더 자동 생성 처리부, 14: 인증 래더 삽입 처리부, 15: 실행용 제어 프로그램 기억부, 16: 제어 프로그램 실행 제어부, 17: 전용 디바이스 설정부, 18: 실행 제약 시간 기억부, 19: 인증 래더 성능 확인부, 20: 인증 래더 삽입 판단부, 21: 제어 프로그램 판독 요구부, 22: 인증 래더 필터링 처리부, 23: 인증 래더 삽입 위치 조정 처리부, 24: 제어 프로그램 판독 처리부, 25: 인증 래더 변환 테이블 기억부, 26: 인증 래더 변환 처리부, 27: 조작 이력 기억부, 28: 인증 래더 삭제 처리부, 29: 카운터 처리부, 30: 표시부, 100: 엔지니어링 환경측 PC, 200: PLC1: input unit, 2: control program creating unit, 3: control program storage unit, 4: access request transmission processing unit, 5: control program writing request unit, 6: security setting unit, 7: random number generation processing unit, 8: authentication ladder generation Random number storage unit, 9: serial ID storage unit, 10: authentication processing unit, 11: access request receiving processing unit, 12: control program writing processing unit, 13: authentication ladder automatic generation processing unit, 14: authentication ladder insertion processing unit, 15: execution Control program storage unit, 16: control program execution control unit, 17: dedicated device setting unit, 18: execution restriction time storage unit, 19: authentication ladder performance checking unit, 20: authentication ladder insertion determination unit, 21: control program reading request unit 22: authentication ladder filtering processing unit, 23: authentication ladder insertion position adjusting processing unit, 24: control program reading processing unit, 25: authentication ladder conversion table storage unit, 26: authentication ladder conversion processing unit, 27: operation history storage unit, 28: authentication Rae Deletion processing section, 29: Counter processing unit, 30: display portion, 100: side engineering environment, PC, 200: PLC
Claims (14)
상기 제어 장치에 고유하게 설정되어 있는 고유 식별 정보를 기억하는 고유 식별 정보 기억부와,
상기 제어 장치가 제어 처리하는 대상인 대상 디바이스의 번호가 포함되고, 상기 제어 장치 이외의 장치에 의한 사용이 허가되어 있지 않은 래더 프로그램을 메인 프로그램으로서 입력하는 프로그램 입력부와,
상기 고유 식별 정보에 근거하여, 상기 제어 장치 이외의 장치에 의한 메인 프로그램의 사용을 방지하는 래더 프로그램을 인증 프로그램으로서 생성하는 인증 프로그램 생성부와,
메인 프로그램과 인증 프로그램을 합성하여 합성 프로그램으로 하는 프로그램 합성부와,
상기 합성 프로그램을 기억하는 프로그램 기억부
를 갖고,
상기 인증 프로그램 생성부는,
대상 디바이스의 번호를 의사(疑似)한 의사 디바이스 번호를 인증용 디바이스 번호로서 관리하고,
상기 고유 식별 정보에 근거하여, 하나 이상의 인증용 디바이스 번호를 선택하며,
선택한 선택 인증용 디바이스 번호가 포함되는 래더 프로그램을 상기 인증 프로그램으로서 생성하고,
상기 인증 프로그램 생성부에 의해 생성된 상기 인증 프로그램은,
상기 합성 프로그램으로서 상기 메인 프로그램과 함께 실행될 때에, 상기 고유 식별 정보에 근거하여 상기 선택 인증용 디바이스 번호가 선택되고, 상기 선택 인증용 디바이스 번호에 대응하는 선택 인증용 디바이스의 각각에 대해 미리 지정된 설정 처리가 행해진 경우는, 정상으로 동작해서 상기 메인 프로그램을 정상으로 동작시키고,
상기 합성 프로그램으로서 상기 메인 프로그램과 함께 실행될 때에, 상기 선택 인증용 디바이스의 각각에 대해 상기 설정 처리가 행해지지 않는 경우에는, 정상으로 동작하지 않아 상기 메인 프로그램의 동작을 정지시키는 것
을 특징으로 하는 제어 장치.
As a control device,
A unique identification information storage section for storing unique identification information uniquely set in the control device;
A program input unit which contains a number of a target device to be controlled by the control device and inputs a ladder program which is not permitted to be used by a device other than the control device as a main program;
An authentication program generation unit for generating a ladder program as an authentication program that prevents the use of the main program by devices other than the control device based on the unique identification information;
A program synthesizing unit synthesizing the main program and the authentication program into a synthesis program;
A program storage unit for storing the synthesized program
Has,
The authentication program generation unit,
A pseudo device number that pseudonyms the target device number is managed as the device number for authentication,
Select one or more authentication device numbers based on the unique identification information,
Generating a ladder program including the selected selective authentication device number as the authentication program,
The authentication program generated by the authentication program generation unit,
When executed together with the main program as the synthesizing program, the selection authentication device number is selected based on the unique identification information, and the predetermined processing specified in advance for each of the selection authentication devices corresponding to the selection authentication device number. Is performed normally, the main program is operated normally,
When executed together with the main program as the synthesized program, when the setting processing is not performed for each of the selective authentication devices, the operation of the main program is stopped because it does not operate normally.
Control device characterized in that.
상기 제어 장치는,
복수의 인증용 디바이스를 각각의 인증용 디바이스 번호와 대응시켜서 관리하고, 상기 프로그램 기억부에 기억되어 있는 합성 프로그램의 실행시에, 상기 인증 프로그램 생성부의 선택 동작으로부터 독립하여 상기 고유 식별 정보에 근거해서 하나 이상의 인증용 디바이스 번호를 선택하고, 선택한 선택 인증용 디바이스 번호에 대응하는 선택 인증용 디바이스의 각각에 대해 미리 지정된 설정 처리를 실행하는 설정 처리부와,
상기 설정 처리부에 의해 상기 선택 인증용 디바이스의 각각에 대해 설정 처리가 행해진 후에, 상기 프로그램 기억부에 기억되어 있는 합성 프로그램을 실행하는 프로그램 실행부
를 더 갖는 것을 특징으로 하는 제어 장치.
The method of claim 1,
The control device,
A plurality of authentication devices are managed in correspondence with respective authentication device numbers, and at the time of execution of the synthesized program stored in the program storage unit, independent of the selection operation of the authentication program generation unit, based on the unique identification information. A setting processing unit which selects one or more authentication device numbers, and executes predetermined setting processing for each of the selection authentication devices corresponding to the selected selection authentication device number;
A program execution unit that executes a synthesized program stored in the program storage unit after setting processing is performed for each of the selection authentication devices by the setting processing unit;
It further has a control device.
상기 제어 장치는,
난수를 기억하는 난수 기억부와,
상기 인증 프로그램 생성부에 의한 인증 프로그램의 생성에 앞서, 상기 난수 기억부에 기억되어 있는 난수와 상기 고유 식별 정보 기억부에 기억되어 있는 고유 식별 정보에 대해 1방향 연산을 행하고, 상기 설정 처리부에 의한 설정 처리에 앞서, 상기 난수 기억부에 기억되어 있는 난수와 상기 고유 식별 정보 기억부에 기억되어 있는 고유 식별 정보에 대해 1방향 연산을 행하는 1방향 연산부
를 더 갖고,
상기 인증 프로그램 생성부는, 상기 1방향 연산부에 의한 1방향 연산값에 근거하여, 하나 이상의 인증용 디바이스 번호를 선택하고, 선택한 선택 인증용 디바이스 번호가 포함되는 인증 프로그램을 생성하며,
상기 설정 처리부는, 상기 1방향 연산부에 의한 1방향 연산값에 근거하여, 하나 이상의 인증용 디바이스 번호를 선택하고, 선택한 선택 인증용 디바이스 번호에 대응하는 선택 인증용 디바이스의 각각에 대해 미리 지정된 설정 처리를 실행하는 것
을 특징으로 하는 제어 장치.
The method of claim 2,
The control device,
A random number storage unit for storing random numbers,
Prior to the generation of the authentication program by the authentication program generating unit, one-way operation is performed on the random number stored in the random number storage unit and the unique identification information stored in the unique identification information storage unit. Prior to the setting processing, the one-way operation unit performs one-way operation on the random number stored in the random number storage unit and the unique identification information stored in the unique identification information storage unit.
With more
The authentication program generation unit selects one or more authentication device numbers based on the one-way operation value by the one-way operation unit, and generates an authentication program including the selected selected authentication device number.
The setting processing unit selects one or more authentication device numbers on the basis of the one-way operation value by the one-way operation unit, and preconfigured setting processing for each of the selection authentication devices corresponding to the selected selection authentication device number. Will run
Control device characterized in that.
상기 인증 프로그램 생성부는, 선택 인증용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리가 행해지면 정상으로 동작해서 상기 메인 프로그램이 정상으로 동작하고, 선택 인증용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리가 행해지지 않는 경우에는 정상으로 동작하지 않아 상기 메인 프로그램의 동작이 정지하는 래더 프로그램을 인증 프로그램으로서 생성하며,
상기 설정 처리부는, 선택 인증용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리를 실행하는 것
을 특징으로 하는 제어 장치.
The method according to claim 2 or 3,
The authentication program generating unit operates normally when the setting processing for turning on the selection authentication device from the off state is performed, and the main program operates normally, and setting processing for turning on the selection authentication device from the off state. If it is not performed, a ladder program is generated as an authentication program that does not operate normally and stops the operation of the main program.
The setting processing unit executes setting processing for setting the device for selective authentication to an on state from the off state.
Control device characterized in that.
상기 인증 프로그램 생성부는,
2개 이상의 인증용 디바이스 번호를 선택하고,
선택한 선택 인증용 디바이스 번호의 전부가 포함되어 상기 메인 프로그램의 선두에 배치되게 되는 선두 인증 프로그램과, 각각에 선택 인증용 디바이스 번호 중 어느 하나가 포함되어 상기 메인 프로그램 내의 복수의 삽입 위치에 삽입되게 되는 2개 이상의 삽입 인증 프로그램 중 적어도 어느 하나를 생성하고,
상기 프로그램 합성부는, 상기 선두 인증 프로그램을 상기 메인 프로그램의 선두에 배치하고, 상기 2개 이상의 삽입 인증 프로그램을 상기 메인 프로그램 내의 복수의 삽입 위치에 삽입하는 것
을 특징으로 하는 제어 장치.
The method according to any one of claims 1 to 3,
The authentication program generation unit,
Select two or more authentication device numbers,
A head authentication program including all of the selected selective authentication device numbers and placed at the head of the main program; and each of the selected authentication device numbers is inserted into a plurality of insertion positions in the main program. Create at least one of two or more embedded authentication programs,
The program synthesizing unit places the head authentication program at the head of the main program, and inserts the two or more insertion verification programs into a plurality of insertion positions in the main program.
Control device characterized in that.
상기 제어 장치는,
메인 프로그램과 인증 프로그램이 합성된 합성 프로그램의 실행 소요 시간의 허용 범위를 허용 시간으로서 기억하는 허용 시간 기억부와,
상기 프로그램 입력부에 의해 입력된 메인 프로그램의 실행 소요 시간을 예측하는 소요 시간 예측부와,
상기 소요 시간 예측부에 의해 예측된 예측 소요 시간과 상기 허용 시간에 근거하여, 상기 인증 프로그램에 포함시키는 인증용 디바이스 번호의 개수를 결정하는 개수 결정부
를 더 갖고,
상기 인증 프로그램 생성부는, 상기 개수 결정부에 의해 결정된 개수분의 인증용 디바이스 번호를 선택하는 것
을 특징으로 하는 제어 장치.
The method according to any one of claims 1 to 3,
The control device,
An allowable time storage section for storing, as an allowable time, an allowable time range for the execution time of the synthesized program in which the main program and the authentication program are combined;
A time estimating unit for predicting execution time of a main program inputted by the program input unit;
A number determination unit that determines the number of device numbers for authentication to be included in the authentication program based on the estimated time required by the time estimation unit and the allowable time.
With more
Wherein the authentication program generation unit selects an authentication device number for the number determined by the number determination unit
Control device characterized in that.
상기 제어 장치는, 상기 프로그램 입력부에 의해 입력된 메인 프로그램의 프로그램 사이즈가 미리 지정된 사이즈 이상인지 여부를 판단하여, 상기 메인 프로그램의 프로그램 사이즈가 상기 미리 지정된 사이즈 미만이면, 상기 인증 프로그램 생성부에 대하여 인증 프로그램의 생성을 보류시키고, 상기 메인 프로그램의 프로그램 사이즈가 상기 미리 지정된 사이즈 이상이면, 상기 인증 프로그램 생성부에 대하여 인증 프로그램의 생성을 지시하는 프로그램 사이즈 판단부를 더 갖는 것을 특징으로 하는 제어 장치.
The method according to any one of claims 1 to 3,
The control device determines whether the program size of the main program input by the program input unit is greater than or equal to a predetermined size, and if the program size of the main program is less than the predetermined size, authenticate the authentication program generation unit. And a program size determination unit for instructing generation of an authentication program to the authentication program generation unit if the generation of the program is suspended and the program size of the main program is equal to or larger than the predetermined size.
상기 인증 프로그램 생성부는,
2개 이상의 인증용 디바이스 번호를 선택하고,
각각에 선택 인증용 디바이스 번호 중 어느 하나가 포함되는 2개 이상의 삽입 인증 프로그램을 생성하여, 미리 지정된 삽입 위치 결정 알고리즘에 따라서 삽입 인증 프로그램마다 상기 메인 프로그램 내의 삽입 위치를 결정하고,
상기 프로그램 합성부는, 상기 인증 프로그램 생성부에 의해 결정된 삽입 위치에서 삽입 인증 프로그램의 각각을 상기 메인 프로그램에 삽입하고,
상기 프로그램 사이즈 판단부는,
상기 인증 프로그램 생성부에 의한 삽입 인증 프로그램의 생성에 앞서, 상기 메인 프로그램의 프로그램 사이즈에 근거하여, 상기 삽입 위치 결정 알고리즘에 따라서 결정되는 삽입 인증 프로그램의 삽입 위치가 상기 메인 프로그램의 특정 부분에 집중하는지 여부를 판단하고,
삽입 인증 프로그램의 삽입 위치가 상기 메인 프로그램의 특정 부분에 집중하는 경우에, 상기 삽입 위치 결정 알고리즘 이외의 알고리즘으로서, 삽입 인증 프로그램의 삽입 위치가 상기 메인 프로그램 내에서 보다 분산되는 알고리즘에 따라서 삽입 인증 프로그램의 삽입 위치를 결정하도록 상기 인증 프로그램 생성부에 지시하는 것
을 특징으로 하는 제어 장치.
The method of claim 7, wherein
The authentication program generation unit,
Select two or more authentication device numbers,
Generating two or more insertion authentication programs each containing any one of a device for selective authentication, and determining an insertion position in the main program for each insertion authentication program according to a predetermined insertion position determination algorithm,
The program synthesizing unit inserts each of the insertion authentication programs into the main program at the insertion position determined by the authentication program generating unit.
The program size determination unit,
Prior to generation of the insertion authentication program by the authentication program generating unit, based on the program size of the main program, whether the insertion position of the insertion authentication program determined according to the insertion positioning algorithm is concentrated on a specific part of the main program. Judge whether or not,
When the insertion position of the insertion authentication program concentrates on a specific part of the main program, as an algorithm other than the insertion positioning algorithm, the insertion authentication program according to an algorithm in which the insertion position of the insertion authentication program is more distributed in the main program. Instructing the authentication program generator to determine the insertion position of the
Control device characterized in that.
상기 인증 프로그램 생성부는, 상기 대상 디바이스와 번호 체계가 상이한 인증용 디바이스 번호가 포함되는 인증용 프로그램을 생성하고,
상기 제어 장치는,
상기 프로그램 기억부에 기억되어 있는 합성 프로그램의 출력 지시가 외부 장치로부터 있었던 경우에, 상기 합성 프로그램 중의 인증 프로그램에 포함되어 있는 선택 인증용 디바이스 번호를, 상기 대상 디바이스의 디바이스 번호와 동일한 번호 체계의 디바이스 번호로 변경하는 디바이스 번호 변경부와,
인증 프로그램에 상기 디바이스 번호 변경부에 의한 변경 후의 디바이스 번호가 포함되는 합성 프로그램을 상기 외부 장치에 출력하는 프로그램 출력부
를 더 갖는 것을 특징으로 하는 제어 장치.
The method according to any one of claims 1, 2, 3, 8,
The authentication program generation unit generates an authentication program including an authentication device number different from the target device in a number system,
The control device,
When the instruction for outputting the synthesized program stored in the program storage unit comes from an external device, the device having the same number system as the device number of the target device is selected as the device number for selective authentication included in the authentication program in the synthesized program. A device number changing unit to change the number;
A program output unit for outputting a synthesized program including the device number after the change by the device number change unit to the external device in the authentication program;
It further has a control device.
상기 인증 프로그램 생성부는,
2개 이상의 인증용 디바이스 번호를 선택하고,
각각에 선택 인증용 디바이스 번호 중 어느 하나가 포함되는 2개 이상의 삽입 인증 프로그램을 생성하여, 삽입 인증 프로그램마다 상기 메인 프로그램 내의 삽입 위치를 결정하고,
상기 프로그램 합성부는, 상기 인증 프로그램 생성부에 의해 결정된 삽입 위치에서 삽입 인증 프로그램의 각각을 메인 프로그램에 삽입하여 합성 프로그램으로 하고,
상기 제어 장치는,
상기 합성 프로그램의 출력 지시가 외부 장치로부터 있었던 경우에, 상기 합성 프로그램을 상기 외부 장치에 출력하는 프로그램 출력부와,
상기 프로그램 출력부에 의해 상기 합성 프로그램이 상기 외부 장치에 출력될 때마다, 상기 합성 프로그램으로부터 상기 2개 이상의 삽입 인증 프로그램을 삭제하는 삭제 처리부와,
상기 프로그램 출력부에 의해 상기 합성 프로그램이 상기 외부 장치에 출력될 때마다, 출력 횟수를 계수하는 출력 횟수 계수부
를 더 갖고,
상기 인증 프로그램 생성부는, 상기 프로그램 출력부에 의해 상기 합성 프로그램이 상기 외부 장치에 출력될 때마다, 상기 고유 식별 정보와 상기 출력 횟수 계수부의 계수값에 근거하여, 새롭게 2개 이상의 인증용 디바이스 번호를 선택하고, 각각에 새로운 선택 인증용 디바이스 번호 중 어느 하나가 포함되는 2개 이상의 새로운 삽입 인증 프로그램을 생성하여, 생성한 새로운 삽입 인증 프로그램마다 상기 삭제 처리부에 의한 삭제 처리 후의 메인 프로그램 내의 새로운 삽입 위치를 결정하고,
상기 프로그램 합성부는, 상기 인증 프로그램 생성부에 의해 결정된 새로운 삽입 위치에서 새로운 삽입 인증 프로그램의 각각을 상기 메인 프로그램에 삽입하여 새로운 합성 프로그램으로 하는 것
을 특징으로 하는 제어 장치.
The method according to any one of claims 1, 2, 3, 8,
The authentication program generation unit,
Select two or more authentication device numbers,
Generating two or more insertion authentication programs each including any one of a device for selective authentication, and determining an insertion position in the main program for each insertion authentication program;
The program synthesizing unit inserts each of the insertion authentication programs into the main program at the insertion position determined by the authentication program generating unit to be a synthesis program.
The control device,
A program output unit for outputting the synthesized program to the external device when the instruction to output the synthesized program is from an external device;
A deletion processing unit for deleting the two or more insertion authentication programs from the synthesis program each time the synthesis program is output to the external device by the program output unit;
An output count counting unit for counting the number of outputs each time the synthesized program is output to the external device by the program outputting unit;
With more
The authentication program generating unit newly sets two or more authentication device numbers on the basis of the unique identification information and the count value of the output counting unit each time the synthesis program is output to the external device by the program output unit. Select and generate two or more new insertion authentication programs each containing one of the new selective authentication device numbers, and for each new insertion authentication program generated, insert a new insertion position in the main program after the deletion processing by the deletion processing unit. Decide,
The program synthesizing unit inserts each of the new insertion authentication programs into the main program at a new insertion position determined by the authentication program generating unit to form a new synthesis program.
Control device characterized in that.
상기 제어 장치 이외의 장치에 의한 사용이 허가되어 있지 않은, 상기 제어 장치에 있어서의 제어에 이용되는 메인 프로그램과, 상기 제어 장치 이외의 장치에 의한 메인 프로그램의 사용을 방지하기 위해서 상기 제어 장치에 있어서 생성된 인증 프로그램이 합성되어 있는 합성 프로그램을 상기 제어 장치로부터 입력하는 프로그램 입력부와,
상기 합성 프로그램 중에서 상기 인증 프로그램을 추출하여, 상기 인증 프로그램에 대하여 비표시 설정을 행하는 비표시 설정부와,
상기 비표시 설정부에 의한 비표시 설정에 근거하여, 상기 인증 프로그램은 표시하지 않고, 상기 메인 프로그램만을 표시하는 표시부
를 갖는 것을 특징으로 하는 관리 장치.
A management device for managing a control device,
In the control apparatus, in order to prevent the use of the main program used for the control in the control apparatus and the main program by the apparatus other than the control apparatus, which are not permitted to be used by devices other than the control apparatus. A program input unit which inputs, from the control apparatus, a synthesis program into which the generated authentication program is synthesized;
A non-display setting unit for extracting the authentication program from the synthesis program and performing non-display setting for the authentication program;
A display unit for displaying only the main program without displaying the authentication program based on the non-display setting by the non-display setting unit;
Management device characterized in that it has a.
상기 관리 장치는,
상기 제어 장치에 고유하게 설정되어 있는 고유 식별 정보를 기억하는 고유 식별 정보 기억부와,
난수를 기억하는 난수 기억부
를 더 갖고,
상기 프로그램 입력부는, 복수의 인증 프로그램의 각각이 상기 메인 프로그램 내의 미리 지정된 위치에 배치되어 있는 합성 프로그램으로서, 상기 제어 장치에 있어서 미리 지정된 결정 알고리즘에 따라서 상기 고유 식별 정보와 상기 난수를 이용하여 인증 프로그램마다 결정된 위치에 각각의 인증 프로그램이 배치되어 있는 합성 프로그램을 입력하고,
상기 비표시 설정부는, 상기 제어 장치와 동일한 결정 알고리즘에 따라서, 상기 고유 식별 정보 기억부의 상기 고유 식별 정보와 상기 난수 기억부의 상기 난수를 이용하여, 각각의 인증 프로그램의 위치를 판별하고, 각각의 인증 프로그램에 대하여 비표시 설정을 행하는 것
을 특징으로 하는 관리 장치.
The method of claim 11,
The management apparatus includes:
A unique identification information storage section for storing unique identification information uniquely set in the control device;
Random number memory to remember random numbers
With more
The program input unit is a synthesized program in which each of a plurality of authentication programs is arranged at a predetermined position in the main program, and is authenticated using the unique identification information and the random number in accordance with a predetermined decision algorithm in the control apparatus. Input the synthesis program which each authentication program is arrange | positioned at the determined position every time,
The non-display setting unit determines the position of each authentication program by using the unique identification information of the unique identification information storage unit and the random number of the random number storage unit according to the same decision algorithm as that of the control device. To make non-display settings for the program
Management device characterized in that.
상기 관리 장치는,
상기 제어 장치에 고유하게 설정되어 있는 고유 식별 정보를 기억하는 고유 식별 정보 기억부와,
난수를 기억하는 난수 기억부와,
상기 제어 장치로부터 상기 합성 프로그램이 입력될 때마다, 입력 횟수를 계수하는 입력 횟수 계수부
를 더 갖고,
상기 프로그램 입력부는, 복수의 인증 프로그램의 각각이 상기 메인 프로그램 내의 미리 지정된 위치에 배치되어 있는 합성 프로그램으로서, 상기 제어 장치에 있어서 미리 지정된 결정 알고리즘에 따라서 상기 고유 식별 정보와 상기 난수와 상기 제어 장치로부터 상기 관리 장치로의 합성 프로그램의 출력 횟수를 이용하여 인증 프로그램마다 결정된 위치에 각각의 인증 프로그램이 배치되어 있는 합성 프로그램을 입력하고,
상기 비표시 설정부는, 상기 제어 장치와 동일한 결정 알고리즘에 따라서, 상기 고유 식별 정보 기억부의 상기 고유 식별 정보와 상기 난수 기억부의 상기 난수와 상기 입력 횟수 계수부에 의한 계수값을 이용하여, 각각의 인증 프로그램의 위치를 판별하고, 각각의 인증 프로그램에 대하여 비표시 설정을 행하는 것
을 특징으로 하는 관리 장치.The method of claim 11,
The management apparatus includes:
A unique identification information storage section for storing unique identification information uniquely set in the control device;
A random number storage unit for storing random numbers,
An input number counting unit for counting the number of times of input each time the synthesis program is input from the control device
With more
The program input unit is a synthesized program in which each of a plurality of authentication programs is arranged at a predetermined position in the main program, and is provided from the unique identification information, the random number, and the control device in accordance with a predetermined decision algorithm in the control device. Inputting a synthesis program in which each authentication program is arranged at a position determined for each authentication program by using the number of outputs of the synthesis program to the management apparatus,
The non-display setting unit uses the unique identification information of the unique identification information storage unit, the random number of the random number storage unit, and the count value of the input count counter according to the same determination algorithm as that of the control device. Determining the location of programs and setting non-display settings for each authentication program
Management device characterized in that.
상기 관리 장치는, 상기 관리 장치에 있어서 상기 합성 프로그램이 갱신된 결과, 어느 하나의 인증 프로그램의 배치가 변동한 경우에, 상기 인증 프로그램의 위치를 변동 전의 위치로 되돌리는 위치 조정부를 더 갖는 것을 특징으로 하는 관리 장치. The method according to claim 12 or 13,
The management apparatus further includes a position adjusting unit for returning the position of the authentication program to the position before the change when the arrangement of any one of the authentication programs is changed as a result of the update of the synthesis program in the management apparatus. Management device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010028793A JP5404463B2 (en) | 2010-02-12 | 2010-02-12 | Control device and management device |
JPJP-P-2010-028793 | 2010-02-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110093561A KR20110093561A (en) | 2011-08-18 |
KR101252918B1 true KR101252918B1 (en) | 2013-04-09 |
Family
ID=44438332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100079652A KR101252918B1 (en) | 2010-02-12 | 2010-08-18 | Control device and management device |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP5404463B2 (en) |
KR (1) | KR101252918B1 (en) |
CN (1) | CN102156840B (en) |
TW (1) | TWI435192B (en) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5756412B2 (en) * | 2012-01-12 | 2015-07-29 | 株式会社日立製作所 | Monitoring method and monitoring system |
JP5900143B2 (en) * | 2012-05-15 | 2016-04-06 | 富士電機株式会社 | Control system, control device, and program execution control method |
JP5377799B1 (en) | 2012-07-26 | 2013-12-25 | 三菱電機株式会社 | Programmable logic controller |
KR101713462B1 (en) * | 2012-11-22 | 2017-03-07 | 미쓰비시덴키 가부시키가이샤 | Program creation assistance device, method and recording medium |
WO2014097444A1 (en) | 2012-12-20 | 2014-06-26 | 三菱電機株式会社 | Control system, program transmission device, authentication server, program protection method, program transmission method, and program for program transmission device |
WO2014125639A1 (en) * | 2013-02-18 | 2014-08-21 | 三菱電機株式会社 | Control program management apparatus, controller apparatus, and control system |
JP6045986B2 (en) * | 2013-06-27 | 2016-12-14 | 富士電機株式会社 | Software development support apparatus, software development support method, and software development support program |
JP2015200971A (en) * | 2014-04-04 | 2015-11-12 | 富士電機株式会社 | Control system equipped with falsification detection function |
JP6009130B2 (en) | 2014-06-11 | 2016-10-19 | 三菱電機株式会社 | Program editing apparatus, program management apparatus, program editing program, and program management program |
KR101539253B1 (en) * | 2014-06-17 | 2015-07-28 | 주식회사 엔에스이 | A PLC device provided with a function for managing program quality |
US10795976B2 (en) | 2016-01-11 | 2020-10-06 | Siemens Aktiengesellschaft | Program randomization for cyber-attack resilient control in programmable logic controllers |
JP6325630B2 (en) * | 2016-10-28 | 2018-05-16 | ファナック株式会社 | Ladder library management device |
KR102052489B1 (en) * | 2017-06-23 | 2019-12-05 | 미쓰비시덴키 가부시키가이샤 | Ladder program unauthorized-use prevention system, ladder program unauthorized-use prevention method, and engineering tool |
JP2019159752A (en) * | 2018-03-13 | 2019-09-19 | オムロン株式会社 | Controller, license management method, and license management program |
JP6836549B2 (en) * | 2018-05-31 | 2021-03-03 | ファナック株式会社 | Ladder display device |
CN109756483B (en) * | 2018-12-12 | 2021-05-25 | 杭州华威信安科技有限公司 | Safety protection method aiming at MELASEC protocol |
JP7227015B2 (en) * | 2019-01-24 | 2023-02-21 | ファナック株式会社 | LADDER PROGRAM EDITING SYSTEM, SERVER, TERMINAL DEVICE, LADDER PROGRAM EDITING METHOD AND PROGRAM |
JP6766917B1 (en) * | 2019-04-25 | 2020-10-14 | オムロン株式会社 | Control system and control method |
CN115104088B (en) * | 2020-02-14 | 2024-02-06 | 三菱电机株式会社 | Program providing device, program providing method, and program providing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342290A (en) | 2001-05-11 | 2002-11-29 | Ntt Docomo Inc | Communication terminal, communications equipment, communication control method, communication control program and recording medium stored with the program |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3729421B2 (en) * | 1994-03-18 | 2005-12-21 | 富士通株式会社 | Unauthorized use prevention method and unauthorized use prevention system |
JP3289521B2 (en) * | 1994-10-31 | 2002-06-10 | 健稔 岡本 | Software Copyright Protection Methods |
JPH11194937A (en) * | 1997-12-26 | 1999-07-21 | Orix Rentec Kk | Rent control system for electronic computer program |
JP2003330564A (en) * | 2002-05-17 | 2003-11-21 | Canon Inc | Function-in-device usage limiting method |
JP4497450B2 (en) * | 2003-12-10 | 2010-07-07 | 独立行政法人科学技術振興機構 | Program authentication system |
CN1328632C (en) * | 2004-09-23 | 2007-07-25 | 艾默生网络能源有限公司 | Method and system for changing ladder diagram program into instruction listing program |
JP4607080B2 (en) * | 2005-09-27 | 2011-01-05 | オムロン株式会社 | Programmable controller system |
JP2008293468A (en) * | 2007-04-26 | 2008-12-04 | Oki Electric Ind Co Ltd | Method for manufacturing motherboard |
JP2009070144A (en) * | 2007-09-13 | 2009-04-02 | Omron Corp | Programming method in plc |
CN101364098B (en) * | 2008-09-12 | 2010-07-28 | 南京航空航天大学 | Method and system for conversing trapezoidal pattern to be instruction catalogue program, and interpretation execution method and system |
-
2010
- 2010-02-12 JP JP2010028793A patent/JP5404463B2/en not_active Expired - Fee Related
- 2010-06-10 TW TW099118839A patent/TWI435192B/en active
- 2010-07-22 CN CN201010237224.6A patent/CN102156840B/en not_active Expired - Fee Related
- 2010-08-18 KR KR1020100079652A patent/KR101252918B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342290A (en) | 2001-05-11 | 2002-11-29 | Ntt Docomo Inc | Communication terminal, communications equipment, communication control method, communication control program and recording medium stored with the program |
Also Published As
Publication number | Publication date |
---|---|
JP2011165041A (en) | 2011-08-25 |
TWI435192B (en) | 2014-04-21 |
JP5404463B2 (en) | 2014-01-29 |
KR20110093561A (en) | 2011-08-18 |
CN102156840B (en) | 2014-09-17 |
TW201128334A (en) | 2011-08-16 |
CN102156840A (en) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101252918B1 (en) | Control device and management device | |
US10547604B2 (en) | Information recording apparatus with shadow boot program for authentication with a server | |
JP6719079B2 (en) | Information equipment, data processing system, data processing method and computer program | |
KR101598738B1 (en) | Control program management system and method for changing control program | |
CN104537293B (en) | Authenticating device and system | |
US8533492B2 (en) | Electronic device, key generation program, recording medium, and key generation method | |
US20120272052A1 (en) | Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer | |
JP5900143B2 (en) | Control system, control device, and program execution control method | |
JP5171907B2 (en) | Information processing apparatus and information processing program | |
JP4931542B2 (en) | Program loader having falsification verification function for load destination information, processor including program loader, data processing apparatus including processor, program loading method, and integrated circuit | |
CN112084484B (en) | Equipment hardware safety detection method and device, electronic equipment and storage medium | |
EP2736010A1 (en) | License management device, license management system, license management method, and program | |
US11838282B2 (en) | Information recording apparatus with server-based user authentication for accessing a locked operating system storage | |
JP2005293109A (en) | Software execution management device, software execution management method, and control program | |
US20160239662A1 (en) | Control system and authentication device | |
US20210029123A1 (en) | Access control for digital assets | |
JP5997604B2 (en) | Information processing apparatus having software illegal use prevention function, software illegal use prevention method and program | |
CN113051532A (en) | Software authorization method and device, computer equipment and storage medium | |
JP2012043228A (en) | Pac and pac system having the same | |
KR101576584B1 (en) | Secure USB apparatus equipped with input tool | |
CN115694992A (en) | Security authentication method, system, storage medium and communication device for communication device | |
CN117411714A (en) | Authorization authentication method and device for mimicry defending network equipment, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160318 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |