KR101252918B1 - Control device and management device - Google Patents

Control device and management device Download PDF

Info

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
Application number
KR1020100079652A
Other languages
Korean (ko)
Other versions
KR20110093561A (en
Inventor
아키히로 미우라
Original Assignee
미쓰비시덴키 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20110093561A publication Critical patent/KR20110093561A/en
Application granted granted Critical
Publication of KR101252918B1 publication Critical patent/KR101252918B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting 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

제어 장치 및 관리 장치{CONTROL DEVICE AND MANAGEMENT DEVICE}CONTROL DEVICE AND MANAGEMENT DEVICE}

본 발명은 프로그램의 부정 사용을 방지하는 기술에 관한 것이다. 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 Embodiment 1;
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 Embodiments 1 to 5, a technique for preventing a counterfeit product of a PLC from being manufactured by illegal copying of a control program (ladder program) stored in a PLC in an FA system will be described.

보다 구체적으로는, 제어 프로그램을 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 Embodiments 1 to 5, authentication information (hash value) is generated as a hash function (one-way function) by inputting a serial ID of the PLC and a random number generated by the engineering environment side, and based on this authentication information The device number for checking on / off of the dedicated device is determined. The ladder program which contains the device number determined based on this authentication information is an authentication ladder.

여기서 생성한 인증 정보는, 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 PLC 200 stores a control program which is a ladder program, and the CPU executes the control program to control the device.

엔지니어링 환경측 PC(100)는 관리 장치의 예이며, PLC(200)는 제어 장치의 예이다. The engineering environment side PC 100 is an example of a management apparatus, and the PLC 200 is an example of a control apparatus.

또한, 엔지니어링 환경측 PC(100) 및 PLC(200)의 내부 구성에 대해서는 후술한다. In addition, the internal structure of the engineering environment side PC 100 and PLC200 is mentioned later.

또한, 도 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 environment side PC 100 is demonstrated.

1은, 엔지니어링 환경측 PC(100)에 있어서 사용자가 키보드나 마우스 등을 이용하여 PLC의 제어 프로그램 작성이나 파라미터 설정을 행하기 위한 입력부이다. 1 is an input unit for the user in the engineering environment side PC 100 to create a PLC control program or set parameters by using a keyboard or a mouse.

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 program creating unit 2.

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 program storage unit 3 to the PLC.

5는, 입력부(1)에 의해 사용자로부터의 제어 프로그램의 기입 지시를 받아서 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램을 판독 액세스 요구 송신처리부(4)에게 PLC로의 기입 요구를 행하는 제어 프로그램 기입 요구부이다. 5 is a control program which receives a write instruction of a control program from a user by the input unit 1 and requests a read access request transmission processing unit 4 to write to the PLC from the control program stored in the control program storage unit 3. It is a write request unit.

6a는, 엔지니어링 환경측 PC(100)에서 작성한 제어 프로그램에 대하여 시큐리티 설정을 무효로부터 유효로 하기 위한 시큐리티 설정부이다. 6a is a security setting unit for validating security settings from invalid for the control program created by the engineering environment side PC 100.

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 generation processing unit 7 uses a project (information composed of control programs or parameter settings created in units of FA devices) when the security setting of the security setting unit 6 is set from invalid to valid. It is unique and generates a random number used as an input when generating an authentication ladder and a random number (challenge value) for challenge response (challenge & response) authentication when authenticating between the engineering environment and the PLC.

8a는, 시큐리티 설정을 유효하게 했을 때에 제어 프로그램의 기입처인 PLC와 제어 프로그램와의 관련시킴을 행하고, 인증 래더를 생성하기 위해서 난수 생성 처리부(7)에서 생성한 난수를 저장하는 인증 래더 생성용 난수 기억부이다. 8a is an authentication ladder generation random number memory for storing a random number generated by the random number generation processing unit 7 in order to associate the control program with the PLC to which the control program is written and to generate the authentication ladder when the security setting is enabled. It is wealth.

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 PC 100 on the engineering environment side with the authentication information generated by the PLC 200.

보다 구체적으로는, 인증 처리부(10a)는, 난수 생성 처리부(7)에 대하여 난수의 생성 요구나, 시큐리티 설정부(6a)의 시큐리티 설정이 유효한 경우에, PLC에 대한 제어 프로그램의 기입/판독을 행할 때에 액세스처인 PLC가 관련지어져 있는 PLC인 것을 확인하기 위해서 그때마다 난수 생성 처리부(7)에서 생성한 난수와 인증 래더 생성용 난수 기억부(8a)에 저장되어 있는 난수와 시리얼 ID 기억부(9a)에 저장되어 있는 시리얼 ID를 입력으로 하여 해시 함수로써 생성한 해시값을 인증 정보로 하고, 그 인증 정보와 PLC측에서 생성한 인증 정보를 비교하여 인증을 행한다. More specifically, the authentication processing unit 10a writes / reads the control program to the PLC when the random number generation request to the random number generation processing unit 7 and the security setting of the security setting unit 6a are valid. The random number generated by the random number generation processing unit 7 and the random number stored in the random number storage unit 8a for authentication ladder generation 8a and serial ID storage unit 9a at each time in order to confirm that the PLC as the access destination is the associated PLC. ), The hash value generated by the hash function is used as the authentication information, and the authentication information is compared with the authentication information generated by the PLC.

다음에, PLC(200)의 구성요소를 설명한다. Next, the components of the PLC 200 will be described.

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 PLC 200 and is an example of unique identification information.

그리고, 시리얼 ID 기억부(9b)는 고유 식별 정보 기억부의 예이다. The serial ID storage unit 9b is an example of a unique identification information storage unit.

6b는, 제어 프로그램에 대한 액세스 제한을 행하기 위한 시큐리티 설정을 유효하게 하기 위한 시큐리티 설정부이다. 6b is a security setting unit for validating security settings for restricting access to the control program.

시큐리티 설정부(6b)는, 엔지니어링 환경측의 시큐리티 설정의 유효화와 동기하여 엔지니어링 환경측에서의 시큐리티 설정의 유효화 요구를 받아서 PLC에 저장하는 제어 프로그램에 대한 액세스 제한을 행한다. The security setting unit 6b restricts access to a control program that receives a request for validating security settings on the engineering environment side and stores them in the PLC in synchronization with validating the security settings on the engineering environment side.

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 number storage unit 8b is generated by the random number generation processing unit 7 of the engineering environment side PC 100 and is the same random number as the random number stored in the authentication ladder generation random number storage unit 8a. to be.

인증 래더 생성용 난수 기억부(8b)는 난수 기억부의 예이다. The authentication ladder generation random number storage section 8b is an example of a random number storage section.

11은, 엔지니어링 환경의 액세스 요구 송신 처리부(4)로부터 송신되어 온 액세스 요구를 PLC측에서 접수하여 요구 내용에 따른 처리를 실행하는 액세스 요구 수신 처리부이다. 11 is an access request reception processing section that accepts an access request sent from the access request transmission processing section 4 of the engineering environment on the PLC side and executes processing according to the request contents.

또한, 액세스 요구 수신 처리부(11)는, 엔지니어링 환경측 PC(100)로부터 제어 프로그램 기입 요구와 함께, 제어 프로그램(래더 프로그램)을 입력한다. In addition, the access request reception processing unit 11 inputs a control program (ladder program) together with a control program write request from the engineering environment side PC 100.

제어 프로그램은, 전술한 바와 같이 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 PLC 200, and is not permitted to be used by devices other than the designated PLC. The control program is an example of the main program.

또한, 액세스 요구 수신 처리부(11)는 프로그램 입력부의 예이다. The access request reception processing section 11 is an example of a program input section.

10b는, 해시 연산(1방향 연산)을 행하는 인증 처리부이다. 10b is an authentication processing unit that performs a hash operation (one-way operation).

인증 처리부(10b)는, 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID, 및 인증 정보의 생성 요구시에 함께 송부되어 온 난수(챌린지값)를 입력으로 해서 해시 함수를 이용하여 해시값(리스폰스)을 생성한다. The authentication processing unit 10b is a random number stored in the authentication ladder generation random number storage unit 8b, a serial ID stored in the serial ID storage unit 9b, and a random number sent together when a generation request for authentication information is generated. A hash value (response) is generated using a hash function with (challenge value) as input.

보다 구체적으로는, 인증 처리부(10b)는, 시큐리티 설정부(6b)의 시큐리티 설정이 유효하게 되어 있는 경우에 있어서, 인증 래더(인증 프로그램)의 생성에 앞서서, 엔지니어링 환경으로부터의 인증 요구를 접수한 액세스 요구 수신 처리부(11)로부터의 인증 정보의 생성 요구에 따라서, 해시값(리스폰스값)을 생성한다. More specifically, when the security setting of the security setting unit 6b is effective, the authentication processing unit 10b receives an authentication request from the engineering environment before generating the authentication ladder (authentication program). A hash value (response value) is generated in accordance with a request for generating authentication information from the access request reception processing unit 11.

인증 처리부(10b)는 1방향 연산부의 예이다. The authentication processing unit 10b is an example of a one-way computing unit.

12는, 액세스 요구 수신 처리부(11)로부터의 제어 프로그램의 기입 요구를 접수했을 때에, 시큐리티 설정부(6b)의 시큐리티 설정을 확인하여 시큐리티 설정이 유효한 경우는 인증 래더를 삽입하는 처리로 진행하고, 무효한 경우는 인증 래더를 포함하지 않은 채로의 상태에서 제어 프로그램을 PLC 내에 기입 처리로 진행할 것을 지시하는 제어 프로그램 기입 처리부이다. 12, upon receiving the write request of the control program from the access request reception processing unit 11, checks the security setting of the security setting unit 6b, and proceeds to the process of inserting an authentication ladder when the security setting is valid. If it is invalid, the control program write processing unit instructs the control program to proceed to write processing in the PLC in a state without including the authentication ladder.

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 PLC 200.

인증 래더 자동 생성 처리부(13)는, 제어 프로그램을 실행용 제어 프로그램 기억부(15)에 저장할 때에, 인증 처리부(10b)에서 생성한 해시값에 근거하여 전용 디바이스(인증용 디바이스) 내의 특정한 디바이스의 번호를 선택하고, 선택한 특정한 디바이스의 번호(선택 인증용 디바이스 번호)가 포함되는 인증 래더를 생성한다. When the authentication ladder automatic generation processing unit 13 stores the control program in the execution control program storage unit 15, the authentication ladder automatic generation processing unit 13 generates a specific device in the dedicated device (authentication device) based on the hash value generated by the authentication processing unit 10b. The number is selected, and an authentication ladder including the number of the selected specific device (device number for selective authentication) is generated.

그리고, 인증 래더 삽입 처리부(14)에서 인증 래더는 제어 프로그램과 합성되어, 실행용 제어 프로그램 기억부(15)에 저장된다. In the authentication ladder insertion processing unit 14, the authentication ladder is combined with the control program and stored in the control program storage unit 15 for execution.

또한, 상세한 것은 후술하지만, 제어 프로그램 실행 제어부(16)가 제어 프로그램과 인증 래더를 실행하기 전에, 인증 래더 자동 생성 처리부(13)에 의한 인증 래더의 생성과는 독립적으로, 인증 처리부(10b)가 시리얼 ID와 난수에 근거하여 해시값을 생성하고, 전용 디바이스 설정부(17)가 해시값에 근거하여 특정한 전용 디바이스의 디바이스 번호를 선택하며, 선택한 디바이스 번호에 대응하는 전용 디바이스에 대하여 소정의 설정 처리(상기 전용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리)를 실행한다. Although details will be described later, before the control program execution control unit 16 executes the control program and the authentication ladder, the authentication processing unit 10b independently of the generation of the authentication ladder by the authentication ladder automatic generation processing unit 13 is performed. A hash value is generated based on the serial ID and the random number, the dedicated device setting unit 17 selects a device number of a specific dedicated device based on the hash value, and predetermined setting processing for the dedicated device corresponding to the selected device number. (Setting processing for bringing the dedicated device into an on state from the off state) is executed.

전용 디바이스 설정부(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 device setting unit 17, and the setting processing is performed for the dedicated device corresponding to the device number, the control program is executed. When the control unit 16 executes the control program and the authentication ladder, the authentication ladder operates normally. As a result, the control program operates normally. On the other hand, if the correct device number is not selected and, as a result, the setting processing is not performed for the correct dedicated device, the authentication ladder operates normally when the control program execution control unit 16 executes the control program and the authentication ladder. As a result, the operation of the control program is stopped.

인증 래더 자동 생성 처리부(13)는 인증 프로그램 생성부의 예이다. The authentication ladder automatic generation processing unit 13 is an example of an authentication program generation unit.

또한, 인증 래더 자동 생성 처리부(13)는, 선택한 디바이스 번호의 전부가 포함되어 제어 프로그램의 선두에 배치되게 되는 인증 래더(선두 인증 프로그램)와, 선택한 디바이스 번호 중 어느 하나가 포함되어 제어 프로그램의 복수의 삽입 위치에 삽입되게 되는 2 이상의 인증 래더(삽입 인증 프로그램) 중 적어도 어느 하나를 생성한다. In addition, the authentication ladder automatic generation processing unit 13 includes either an authentication ladder (leading authentication program) in which all of the selected device numbers are included and placed at the head of the control program, and the selected device number includes a plurality of control programs. At least one of the two or more authentication ladders (insertion authentication program) to be inserted at the insertion position of is generated.

예컨대, 도 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 generation processing unit 13 with the control program.

인증 래더 삽입 처리부(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 insertion processing unit 14 is placed at the beginning of the control program, and the insertion position in the middle of the control program is placed. In the case of the authentication ladder to be inserted into (in the case of the authentication ladder illustrated in Fig. 4 (b)), it is inserted at the designated insertion position.

인증 래더 삽입 처리부(14)는 프로그램 합성부의 예이다. The authentication ladder insertion processing unit 14 is an example of a program synthesis unit.

또한, 제어 프로그램과 인증 래더가 합성된 후의 프로그램을 합성 프로그램이라고도 부른다. 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 insertion processing unit 14 created on the engineering environment side.

실행용 제어 프로그램 기억부(15)는 프로그램 기억부의 예이다. The execution control program storage unit 15 is an example of a program storage unit.

16은, PLC(200)가 실행 모드로 된 경우에 실행용 제어 프로그램 기억부(15)에 저장된 제어 프로그램을 실행하는 제어 프로그램 실행 제어부이다. 16 is a control program execution control unit that executes the control program stored in the control program storage unit 15 for execution when the PLC 200 enters the execution mode.

제어 프로그램 실행 제어부(16)는 프로그램 실행부의 예이다. The control program execution control unit 16 is an example of a program execution unit.

17은, PLC의 전원 투입시에 PLC 내의 펌웨어의 초기화 처리에 의해 인증 래더 생성용 난수 기억부(8b)에 저장된 난수와 시리얼 ID 기억부(9b)에 저장된 시리얼 ID로부터 생성된 해시값으로부터 전용 디바이스의 디바이스 번호를 추출하고, 추출한 디바이스 번호에 해당하는 전용 디바이스를 온으로 설정하는 전용 디바이스 설정부이다. 17 is a dedicated device from a random number stored in the authentication ladder generation random number storage unit 8b and a hash value generated from the serial ID stored in the serial ID storage unit 9b by the initialization processing of the firmware in the PLC when the PLC is powered on. Is a dedicated device setting unit that extracts a device number and sets a dedicated device corresponding to the extracted device number to on.

전용 디바이스 설정부(17)는 설정 처리부의 예이다. The dedicated device setting unit 17 is an example of a setting processing unit.

다음에, 도 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 environment side PC 100 will be described.

사용자는 엔지니어링 환경측 PC(100)의 입력부(1)와 제어 프로그램 작성부(2)를 이용하여 제어 프로그램을 작성하고, 작성한 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. A user creates a control program using the input unit 1 and the control program creating unit 2 of the engineering environment side PC 100, and stores the created control program in the control program storage unit 3.

다음에, 엔지니어링 환경측 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 environment side PC 100 to the PLC 200 is demonstrated.

사용자는 엔지니어링 환경측 PC(100)와 PLC(200)를 USB(Universal Serial Bus) 케이블 등으로 네트워크 접속한다. The user connects the engineering environment side PC 100 and the PLC 200 by a USB (Universal Serial Bus) cable or the like.

다음에, 액세스 요구 송신 처리부(4)와 액세스 요구 수신 처리부(11)를 이용하여 엔지니어링 환경과 PLC 사이의 데이터 송수신을 행한다. Next, data transmission and reception are performed between the engineering environment and the PLC by using the access request transmission processing section 4 and the access request reception processing section 11.

사용자가 입력부(1)를 이용하여 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램의 PLC로의 기입 지시를 하면(도 2의 S201), 제어 프로그램 기입 요구부(5)는 제어 프로그램 기억부(3)로부터 제어 프로그램을 판독한다(S202). When the user instructs the writing of the control program stored in the control program storage unit 3 to the PLC by using the input unit 1 (S201 in Fig. 2), the control program writing request unit 5 receives the control program storage unit ( The control program is read from 3) (S202).

제어 프로그램 기입 요구부(5)는 시큐리티 설정부(6a)에 대하여 시큐리티 설정이 유효한지 무효한지를 확인한다(S203). The control program write request unit 5 confirms with the security setting unit 6a whether the security settings are valid or invalid (S203).

시큐리티 설정이 무효하게 되어 있는 경우는, 제어 프로그램 기입 요구부(5)는 사용자에게 시큐리티 설정을 유효하게 할지 여부를 문의한다. If the security setting is invalid, the control program write request unit 5 inquires of the user whether or not to enable the security setting.

사용자로부터 무효인 채로 두라는 지시를 받은 경우는, 제어 프로그램 기입 요구부(5)는 액세스 요구 송신 처리부(4)에 제어 프로그램의 기입 처리를 지시한다(S209). When the instruction to leave it invalid from the user is received, the control program write request unit 5 instructs the access request transmission processing unit 4 to write the control program (S209).

사용자가 시큐리티 설정을 유효하게 하라는 지시를 받은 경우는, 제어 프로그램 기입 요구부(5)는 시큐리티 설정부(6a)를 유효하게 설정하고(S204), 인증 처리부(10a)에 대하여 제어 프로그램과 PLC의 관련시킴에 이용하는 인증 래더 생성용 난수의 생성을 요구한다. When the user is instructed to enable the security setting, the control program writing request unit 5 effectively sets the security setting unit 6a (S204), and the authentication processing unit 10a performs control of the control program and the PLC. Requires the generation of an authentication ladder generation random number used for association.

난수 생성의 요구를 받은 인증 처리부(10a)는 난수 생성 처리부(7)에 대하여 난수 생성을 요구한다. The authentication processing unit 10a which has received the request for random number generation requests the random number generation processing unit 7 for random number generation.

난수 생성 처리부(7)는 난수를 생성하여(S205), 난수를 인증 처리부(10a)에 전달한다. The random number generation processing unit 7 generates a random number (S205) and transfers the random number to the authentication processing unit 10a.

인증 처리부(10a)는 받은 난수를 제어 프로그램 기입 요구부(5)에 돌려준다. The authentication processing unit 10a returns the received random number to the control program write request unit 5.

제어 프로그램 기입 요구부(5)는 인증 처리부(10a)로부터 받은 난수를 인증 래더 생성용 난수 기억부(8a)에 저장하고(S206), 또한, 액세스 요구 송신 처리부(4)에 대하여 인증 래더 생성용 난수를 부여하여 PLC의 시큐리티 설정을 유효하게 하는 요구를 내보낸다. The control program write request unit 5 stores the random number received from the authentication processing unit 10a in the authentication ladder generation random number storage unit 8a (S206), and also generates the authentication ladder for the access request transmission processing unit 4. A random number is issued to issue a request to validate the security settings of the PLC.

액세스 요구 송신 처리부(4)는 PLC의 시큐리티 설정을 유효하게 하는 요구를 받으면, PLC(200)의 액세스 요구 수신 처리부(11)에 대하여 시큐리티 설정의 유효화를 요구함과 아울러 인증 래더 생성용 난수도 함께 송신하여 제어 프로그램과 PLC의 관련시킴도 요구한다(S207). 또한, 이 시점에서는, 제어 프로그램은 PLC(200)에 송신하지 않는다. When the access request transmission processing section 4 receives a request for validating the security setting of the PLC, the access request reception processing section 11 of the PLC 200 requests the validity of the security setting and also transmits a random number for authentication ladder generation. By doing so, the control program is associated with the PLC (S207). At this time, the control program does not transmit to the PLC 200.

PLC(200)에 있어서, 액세스 요구 수신 처리부(11)는 시큐리티 설정의 유효화의 요구를 받으면 시큐리티 설정부(6b)를 유효하게 설정하고(S210), 인증 처리부(10b)에 대하여 엔지니어링 환경측 PC(100)에서 생성한 인증 래더 생성용 난수의 저장을 요구함과 아울러 PLC의 시리얼 ID의 취득을 요구한다. In the PLC 200, when the access request reception processing unit 11 receives a request for validating the security setting, the access request reception processing unit 11 effectively sets the security setting unit 6b (S210), and the authentication environment unit PC ( It is required to save the random number for authentication ladder generation generated in 100) and to acquire the serial ID of the PLC.

인증 처리부(10b)는 인증 래더 생성용 난수를 인증 래더 생성용 난수 기억부(8b)에 저장하고(S211), 시리얼 ID 기억부(9b)에 저장되어 있는 PLC(200)를 개체 식별하기 위한 시리얼 ID를 판독하여 액세스 요구 수신 처리부(11)에 돌려준다. The authentication processing unit 10b stores the authentication ladder generation random number in the authentication ladder generation random number storage unit 8b (S211), and serially identifies the PLC 200 stored in the serial ID storage unit 9b. The ID is read and returned to the access request reception processing unit 11.

이 시리얼 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 reception processing unit 11 receives the serial ID from the authentication processing unit 10b, the access request reception processing unit 11 adds the serial ID received in response to the request for validating the security setting and returns it to the access request transmission processing unit 4 (S212).

엔지니어링 환경측 PC(100)에 있어서, 액세스 요구 송신 처리부(4)는 액세스 요구 수신 처리부(11)로부터의 응답을 받으면, 응답에 부가되어 온 PLC(200)의 시리얼 ID를 제어 프로그램 기입 요구부(5)에 돌려주고, 제어 프로그램 기입 요구부(5)는 그것을 시리얼 ID 기억부(9a)에 저장한다(S208). In the engineering environment side PC 100, when the access request transmission processing section 4 receives a response from the access request reception processing section 11, the access request transmission processing section 11 stores the serial ID of the PLC 200 added to the control program write request section ( Returning to 5), the control program write request unit 5 stores it in the serial ID storage unit 9a (S208).

본 실시형태에서는, 인증 래더 생성용 난수 기억부(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 number storage units 8a and 8b and the serial ID of the PLC stored in the serial ID storage units 9a and 9b. The information generated using the hash function from these two pieces of information is regarded as authentication information.

제어 프로그램 기입 요구부(5)는 액세스 요구 송신 처리부(4)에 제어 프로그램의 기입 처리를 요구하고, 액세스 요구 송신 처리부(4)는 기입 요구와 제어 프로그램을 PLC의 액세스 요구 수신 처리부(11)에 송신한다(S209)(도 3의 S301). The control program write request section 5 requests the access request transmission processing section 4 to write the control program, and the access request transmission processing section 4 sends the write request and the control program to the access request reception processing section 11 of the PLC. It transmits (S209) (S301 of FIG. 3).

PLC(200)에 있어서, 액세스 요구 수신 처리부(11)는 제어 프로그램의 기입 요구를 받으면 제어 프로그램 기입 처리부(12)에 제어 프로그램의 기입을 지시한다. In the PLC 200, the access request receiving processing unit 11 instructs the control program writing processing unit 12 to write the control program when receiving the write request of the control program.

제어 프로그램 기입 처리부(12)는 제어 프로그램의 기입 지시를 받으면 시큐리티 설정부(6b)의 시큐리티 설정을 확인하고(S302), 무효하게 되어 있었던 경우는 받은 제어 프로그램을 그대로의 상태로 실행용 제어 프로그램 기억부(15)에 저장한다(S309). When the control program write processing unit 12 receives a write instruction from the control program, the control program write processing unit 12 confirms the security setting of the security setting unit 6b (S302). The data is stored in the unit 15 (S309).

시큐리티 설정이 유효하게 되어 있었던 경우에는, 제어 프로그램 기입 처리부(12)는 인증 래더 자동 생성 처리부(13)에 인증 래더의 생성을 지시한다. When the security setting has been made effective, the control program write processing unit 12 instructs the authentication ladder automatic generation processing unit 13 to generate the authentication ladder.

인증 래더 자동 생성 처리부(13)는, 제어 프로그램 기입 처리부(12)로부터의 인증 래더의 생성 지시를 받아서 인증 처리부(10b)에 대하여 인증 정보의 생성을 지시한다. The authentication ladder automatic generation processing unit 13 receives a generation instruction of the authentication ladder from the control program write processing unit 12 and instructs the authentication processing unit 10b to generate authentication information.

인증 처리부(10b)는 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID를 판독하고(S304, S305), 난수와 시리얼 ID에 대하여 해시 함수(1방향성 함수)를 이용하여 인증 정보(해시값)를 생성하며(S306), 생성한 인증 정보(해시값)를 인증 래더 자동 생성 처리부(13)에 돌려준다. The authentication processing unit 10b reads the random number stored in the authentication ladder generation random number storage unit 8b and the serial ID stored in the serial ID storage unit 9b (S304, S305), and compares the random number and the serial ID. Authentication information (hash value) is generated using a hash function (one-way function) (S306), and the generated authentication information (hash value) is returned to the authentication ladder automatic generation processing unit 13.

인증 래더 자동 생성 처리부(13)는 인증 처리부(10b)로부터 받은 인증 정보를 기초로 인증 래더(인증을 목적으로 한 래더 프로그램)를 자동 생성하고(S307), 인증 래더 삽입 처리부(14)에 대하여 자동 생성한 인증 래더의 제어 프로그램으로의 삽입을 지시한다. The authentication ladder automatic generation processing unit 13 automatically generates an authentication ladder (ladder program for authentication purposes) based on the authentication information received from the authentication processing unit 10b (S307), and automatically generates the authentication ladder insertion processing unit 14. Instructs insertion of the generated authentication ladder into the control program.

인증 래더 삽입 처리부(14)는, 사용자가 엔지니어링 환경측 PC(100)를 이용하여 작성한 제어 프로그램의 특정한 위치에 인증 래더 자동 생성 처리부(13)에 의해 생성한 인증 래더를 삽입한다(S308). The authentication ladder insertion processing unit 14 inserts the authentication ladder generated by the authentication ladder automatic generation processing unit 13 at a specific position of the control program created by the user using the engineering environment side PC 100 (S308).

인증 래더 삽입 처리부(14)는 인증 래더를 삽입한 제어 프로그램(합성 프로그램)을 실행용 제어 프로그램 기억부(15)에 저장하여(S309), 제어 프로그램의 기입 처리가 완료한다. The authentication ladder insertion processing unit 14 stores the control program (synthesis program) in which the authentication ladder is inserted in the execution control program storage unit 15 (S309), and the process of writing the control program is completed.

또한, 본 실시형태에서는, 인증 정보의 생성에 엔지니어링 환경측 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 environment side PC 100 and two serial IDs of the PLC 200 are input to the generation of authentication information. The authentication information may be generated in combination with the CPU type of the CPU (Central Processing Unit) mounted on the CPU.

이 CPU 타입은 엔지니어링 환경 상에서 제어 프로그램의 기입처인 PLC(200)를 선택했을 때에 확정하는 엔지니어링 환경 내에서 다루는 정보이며, PLC(200)측도 미리 내부적으로 유지하고 있는 정보이기 때문에, 통신로(엔지니어링 환경과 PLC 사이) 상에는 흐르지 않는 정보이므로, 인증 정보가 추측되기 어려워진다. This CPU type is information handled in an engineering environment determined when the PLC 200 as a control program writing destination is selected on the engineering environment, and is also internally held in advance in the PLC 200 side, and therefore is a communication path (engineering environment). Since the information does not flow between the module and the PLC), the authentication information becomes difficult to guess.

다음에, 도 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 PLC 200 is set to "009910987654321" and the random number for generating the authentication ladder to "1234567890", for example, will be described.

또한, 인증 처리부(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 authentication processing unit 10b is, for example, "EA082DFE1CBA7816".

해시 함수에 의해 생성한 인증 정보는 PLC(200)의 시리얼 ID를 이용하여 생성하기 때문에, 다른 PLC에서는 시리얼 ID가 상이하므로 동일한 인증 정보가 생성되는 일은 없다. Since the authentication information generated by the hash function is generated using the serial ID of the PLC 200, since the serial ID is different in other PLCs, the same authentication information is not generated.

인증 래더 자동 생성 처리부(13)에서는, 생성한 인증 정보를 1바이트로 구획하고, 구획한 값을 전용 디바이스의 디바이스 번호로 선정한다. The authentication ladder automatic generation processing unit 13 divides the generated authentication information into 1 byte, and selects the partitioned value as the device number of the dedicated device.

예컨대, 최초의 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 PLC 200, and the device number of the target device is displayed in the control program like "X50", but approximating this to the device number of the dedicated device in the authentication ladder. `` A234 ''. In this manner, in the authentication ladder, a device number that is a pseudo device number of a target device is used.

인증 래더 자동 생성 처리부(13)에서는, 이들 정보를 기초로 도 4에 나타내는 바와 같은 인증 래더(래더 프로그램)를 생성한다. The authentication ladder automatic generation processing unit 13 generates an authentication ladder (ladder program) as shown in FIG. 4 based on these information.

도 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 generation processing unit 13 selects the device number of the dedicated device of the authentication ladder generated above as the number of steps of the control program, and inserts the authentication ladder into the position of the step number of the control program.

도 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 generation processing unit 13 is represented in the form of a ladder program for easy explanation, but the actual authentication ladder generated on the PLC 200 is generated in the execution code format. .

다음에, PLC(200)의 전원 투입시에 펌웨어의 초기화 처리에서 전용 디바이스를 설정할 때의 동작에 대해서 설명한다. Next, the operation when setting the dedicated device in the initialization process of the firmware when the PLC 200 is powered on will be described.

펌웨어의 초기화 처리에 의해 전용 디바이스 설정부(17)는, 전용 디바이스를 0으로 클리어하여, PLC(200)의 시큐리티 설정부(6b)가 유효하게 되어 있는지 여부를 확인한다. By the initialization process of the firmware, the dedicated device setting unit 17 clears the dedicated device to 0 and checks whether the security setting unit 6b of the PLC 200 is valid.

시큐리티 설정이 무효한 경우에는 전용 디바이스에 대한 설정은 아무것도 하지 않는다. 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 device setting unit 17 requests generation of authentication information from the authentication processing unit 10b, and the authentication processing unit 10b having received the request generates the authentication ladder generation random number storage unit 8b. Authentication information (hash value) is generated using a hash function from the random number stored in the controller and the serial ID of the PLC stored in the serial ID storage unit 9b.

전용 디바이스 설정부(17)는 인증 처리부(10b)에 의해 생성한 인증 정보(해시값)를 받아서, 인증 래더 자동 생성 처리부(13)에서 전용 디바이스의 디바이스 번호를 생성한 바와 같이 인증 정보를 1바이트로 구획하고, 구획한 1바이트의 값을 디바이스 번호로 선정하여, 그 디바이스 번호에 해당하는 전용 디바이스를 온으로 설정한다. The dedicated device setting unit 17 receives the authentication information (hash value) generated by the authentication processing unit 10b, and stores the authentication information as one byte as the authentication ladder automatic generation processing unit 13 generates the device number of the dedicated device. Is divided into a device number, and the dedicated device corresponding to the device number is set to ON.

도 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 PLC 200 enters the execution mode (execution of the control program), the control program execution control unit 16 stores the control program stored in the execution control program storage unit 15. Is executed, and the authentication ladder (FIG. 4 (a)) placed at the head of the control program confirms the on / off state of the specific device of the dedicated device set in the initialization process, and any one of them is to be confirmed. When the dedicated device is turned off, it is determined that the control program is an operation on a PLC that is illegally copied, and the execution of the control program can be stopped.

또한, 제어 프로그램의 실행중에서도 제어 프로그램 중에 삽입한 인증 래더(도 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, which is permitted to use the control program, uses the control program, the same serial ID and random number as the serial ID and random number used when generating the authentication ladder are used. Therefore, the correct device number is used in the initialization process. (The same device number as the device number included in the authentication ladder) is selected, and the dedicated device will be set correctly.

이 때문에, 제어 프로그램의 사용이 허가되어 있는 PLC(200)에서는, 항상 제어 프로그램을 정상으로 동작시킬 수 있다. For this reason, the PLC 200 which is permitted to use the control program can always operate the control program normally.

한편, 제어 프로그램의 사용이 허가되어 있지 않은 장치(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 PLC 200 at the time of authentication ladder generation. The device number is not selected and therefore the dedicated device is not set correctly.

이 때문에, 제어 프로그램의 사용이 허가되어 있지 않은 장치에서는, 제어 프로그램의 동작이 정지하여, 제어 프로그램을 사용할 수 없다. 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 generation processing unit 13 will be described in consideration of the influence of the scale and performance aspects of the control program created in the engineering environment.

도 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 environment side PC 100 is the same as that of FIG. 1, description is abbreviate | omitted.

PLC(200)에 있어서는, 본 실시형태에서는, 실행 제약 시간 기억부(18), 인증 래더 성능 확인부(19), 인증 래더 삽입 판단부(20)가 추가되어 있다. In the PLC 200, an execution constraint time storage 18, an authentication ladder performance confirmation unit 19, and an authentication ladder insertion determination unit 20 are added in this embodiment.

이들 이외의 요소는 도 1에 나타낸 것과 마찬가지이다. Elements other than these are the same as what was shown in FIG.

실행 제약 시간 기억부(18)는 사용자에 의해서 설정된 제어 프로그램을 실행했을 때의 제약 시간을 저장한다. The execution time limit storage unit 18 stores the time limit for executing the control program set by the user.

즉, 실행 제약 시간 기억부(18)는, 제어 프로그램과 인증 래더가 합성된 후의 프로그램(합성 프로그램)의 실행 소요 시간의 허용 범위를 제약 시간(허용 시간)으로서 기억한다. That is, the execution restriction time storage unit 18 stores the allowable range of the execution time of the program (synthesis program) after the control program and the authentication ladder have been combined as the restriction time (allowing time).

실행 제약 시간 기억부(18)는 허용 시간 기억부의 예이다. The execution constraint time storage 18 is an example of the allowable time storage.

인증 래더 성능 확인부(19)는 실행 제약 시간 기억부(18)에 저장한 제약 시간과 제어 프로그램의 실행 시간의 차이를 산출하여, 인증 래더를 삽입할 수 있는 공백 시간을 확인한다. The authentication ladder performance verification unit 19 calculates the difference between the constraint time stored in the execution constraint time storage unit 18 and the execution time of the control program, and checks the empty time in which the authentication ladder can be inserted.

즉, 인증 래더 성능 확인부(19)는 제어 프로그램의 실행 시간을 예측하여, 예측한 제어 프로그램의 실행 시간(예측 소요 시간)과 제약 시간과의 차이를 공백 시간으로서 산출한다. That is, the authentication ladder performance verification unit 19 predicts the execution time of the control program and calculates the difference between the execution time (prediction time required) and the constraint time of the predicted control program as the free time.

인증 래더 성능 확인부(19)는 소요 시간 예측부의 예이다. The authentication ladder performance confirmation unit 19 is an example of the time required prediction unit.

인증 래더 삽입 판단부(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 environment side PC 100 to the PLC 200, or the free time calculated by the authentication ladder performance confirmation unit 19. Determine the number of authentication ladders to insert.

즉, 인증 래더 삽입 판단부(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 generation processing unit 13 selects the number of authentication device numbers determined by the authentication ladder insertion determination unit 20 to generate the 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 generation processing unit 13 determines the authentication ladder. If generation is suspended and the program size of the control program is equal to or larger than the predetermined size, the automatic authentication ladder generation processing unit 13 instructs generation of the authentication ladder.

인증 래더 삽입 판단부(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 PLC 200, the operation when determining the number of authentication ladders to be inserted in consideration of the influence on the scale and performance aspects of the control program will be described.

실행 제약 시간 기억부(18)에 저장되는 제약 시간은, 엔지니어링 환경측 PC(100)에서 사용자에 의해서 설정되고, 제어 프로그램의 기입과 마찬가지로 엔지니어링 환경측 PC(100)로부터 파라미터의 기입 요구에 의해 실행 제약 시간 기억부(18)에 저장된다. The constraint time stored in the execution constraint time storage unit 18 is set by the user in the engineering environment side PC 100 and executed by a parameter write request from the engineering environment side PC 100 in the same manner as the control program writing. It is stored in the constraint time storage unit 18.

이 제약 시간이란, 사용자가 지정한 시간 이내에 제어 프로그램의 실행이 완료해야 하는 시간이며, 예컨대, 제어 프로그램의 실행 타입을 정주기로 한 경우 등에서 지정한 주기 내에 제어 프로그램의 실행이 완료해야 하는 시간이다. 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 write processing unit 12 receives the write request of the control program, the control program write processing unit 12 notifies the authentication ladder performance confirmation unit 19 of the write request of the control program.

인증 래더 성능 확인부(19)는 실행 제약 시간 기억부(18)에 저장되어 있는 제약 시간을 추출함과 아울러 제어 프로그램 중의 명령 수로부터 예상 실행 시간을 산출하여, 실행 제약 시간 기억부(18)로부터 추출한 제약 시간과의 차이를 확인한다. The authentication ladder performance verification unit 19 extracts the restriction time stored in the execution restriction time storage unit 18, calculates an expected execution time from the number of instructions in the control program, and then executes the execution restriction time storage unit 18 from the execution restriction time storage unit 18. Check the difference with the extracted constraint time.

제어 프로그램의 각종 명령에 대하여 실행 시간(기준)이 결정되어 있기 때문에, 인증 래더 성능 확인부(19)는 예상 실행 시간을 산출하는 것이 가능하다. Since the execution time (reference) is determined for various commands of the control program, the authentication ladder performance confirmation unit 19 can calculate the expected execution time.

인증 래더 성능 확인부(19)는, 이 제약 시간과 예상 실행 시간과의 차이에 의해 인증 래더가 삽입가능한 공백 시간을 확인하여, 그 공백 시간을 인증 래더 삽입 판단부(20)에 전달한다. The authentication ladder performance confirmation unit 19 confirms the free time that the authentication ladder can insert according to the difference between the constraint time and the expected execution time, and transfers the free time to the authentication ladder insertion determiner 20.

인증 래더 삽입 판단부(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 generation processing unit 13 generates the authentication ladder. The control program in the state before the authentication ladder is inserted is stored in the control program storage unit 15 for execution.

예컨대, 악의를 가진 사용자가 더미의 제어 프로그램의 기입 요구를 실시하고, 인증 래더가 삽입된 제어 프로그램을 엔지니어링 환경측에서 판독할 수 있어, 제어 프로그램에 삽입한 인증 래더의 생성 방법 등이 용이하게 해석되지 않도록 하기 위함이다. 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 performance confirmation unit 19.

또한, 제어 프로그램의 규모가 큰 경우는, 제어 프로그램의 삽입 위치가 전반 부분(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 Embodiment 1, the value which divided authentication information into 1 byte was regarded as the number of steps, but the method which considers the value which divided authentication information into 2 bytes and 3 bytes according to the scale of a control program is considered as the number of steps.

이와 같이, 인증 래더 삽입 판단부(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 generation processing unit 13 of the calculation algorithm of the number of authentication ladders that can be inserted into the control program and the number of steps for inserting the authentication ladder.

인증 래더 자동 생성 처리부(13)는, 인증 래더 삽입 판단부(20)로부터 지시된 알고리즘에 따라서, 인증 래더 삽입 판단부(20)로부터 지시된 개수분의 디바이스 번호의 인증 래더를 생성한다. The authentication ladder automatic generation processing unit 13 generates an authentication ladder of the number of devices indicated by the authentication ladder insertion determination unit 20 in accordance with the algorithm instructed by the authentication ladder insertion determination unit 20.

또한, 인증 래더 자동 생성 처리부(13)에 의한 인증 래더의 생성 순서 자체는 실시형태 1과 동등하다. In addition, the generation procedure itself of the authentication ladder by the authentication ladder automatic generation processing unit 13 is the same as that in the first embodiment.

이와 같이, 본 실시형태에 의하면, 제어 프로그램의 실행시의 성능면으로의 영향을 고려하여 인증 래더를 삽입하는 수를 조정함으로써 제어 프로그램의 실제 동작을 방해하지 않고 제어 프로그램의 부정 이용을 방지할 수 있다. 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 environment side PC 100, the control program read request part 21, the authentication ladder filtering process part 22, the authentication ladder insertion position adjustment process part 23, and the display part 30 are added.

다른 요소는 도 1에서 나타낸 것과 마찬가지이다. The other elements are the same as those shown in FIG.

또한, 본 실시형태에서는, 액세스 요구 송신 처리부(4)는 인증 래더가 삽입되어 있는 제어 프로그램(합성 프로그램)을 PLC(200)로부터 입력한다. In addition, in this embodiment, the access request transmission process part 4 inputs from the PLC 200 the control program (synthesis program) in which the authentication ladder is inserted.

본 실시형태에서는, 액세스 요구 송신 처리부(4)는 프로그램 입력부의 예로 된다. In this embodiment, the access request transmission processing unit 4 is an example of a program input unit.

또한, 실시형태 1과 마찬가지로, 제어 프로그램은 PLC(200) 이외에서의 사용은 허가되어 있지 않다. In addition, like the first embodiment, the use of the control program other than the PLC 200 is not permitted.

또한, 인증 래더는 실시형태 1에서 나타낸 것과 마찬가지이다. The authentication ladder is the same as that shown in the first embodiment.

또한, 인증 래더 생성용 난수 기억부(8a)는 실시형태 1에서 설명한 인증 래더 생성용 난수를 기억하고 있고, 난수 기억부의 예이다. The authentication ladder generation random number storage section 8a stores the authentication ladder generation random number described in the first embodiment, and is an example of the random number storage section.

또한, 시리얼 ID 기억부(9a)는 실시형태 1에서 설명한 PLC(200)의 시리얼 ID를 기억하고 있고, 고유 식별 정보 기억부의 예이다. The serial ID storage unit 9a stores the serial ID of the PLC 200 described in the first embodiment, and is an example of the unique identification information storage unit.

제어 프로그램 판독 요구부(21)는 사용자로부터의 제어 프로그램의 판독 지시를 받아서 액세스 요구 송신 처리부(4)에 대하여 제어 프로그램의 판독을 요구한다. The control program read request unit 21 receives a read instruction of the control program from the user and requests the access request transmission processor 4 to read the control program.

인증 래더 필터링 처리부(22)는 PLC(200)로부터 판독한 제어 프로그램 내의 인증 래더의 삽입 위치를 인증 처리부(10a)에서 생성한 인증 정보에 근거하여 특정하고, 제어 프로그램 작성부(2)에서 제어 프로그램을 표시부(30)에 표시할 때에 사용자에게는 인증 래더를 보이지 않도록 하기 위해서 제어 프로그램의 필터링(비표시 설정)을 행한다. The authentication ladder filtering processing unit 22 specifies the insertion position of the authentication ladder in the control program read from the PLC 200 based on the authentication information generated by the authentication processing unit 10a, and the control program creating unit 2 controls the control program. Is displayed on the display unit 30, the control program is filtered (non-display setting) so as not to show the authentication ladder to the user.

즉, 인증 래더 필터링 처리부(22)는 인증 래더 생성용 난수 기억부(8a)의 난수와 시리얼 ID 기억부(9a)의 시리얼 ID에 대한 해시값인 인증 정보에 근거하여, PLC(200)의 인증 래더의 삽입 위치 결정 알고리즘과 동일한 알고리즘에 따라서, 각각의 인증 래더의 위치를 판별하여, 각각의 인증 래더에 대하여 비표시 설정을 행한다. That is, the authentication ladder filtering processing unit 22 authenticates the PLC 200 based on authentication information which is a hash value for the random number of the authentication ladder generation random number storage unit 8a and the serial ID of the serial ID storage unit 9a. According to the same algorithm as that of the ladder insertion position determination algorithm, the position of each authentication ladder is determined, and non-display setting is performed for each authentication ladder.

인증 래더 필터링 처리부(22)는 비표시 설정부의 예이다. The authentication ladder filtering processing unit 22 is an example of the non-display setting unit.

표시부(30)는 인증 래더 필터링 처리부(22)에 의한 비표시 설정에 근거하여, 인증 래더는 표시하지 않고, 제어 프로그램만을 표시한다. The display unit 30 displays only the control program without displaying the authentication ladder based on the non-display setting by the authentication ladder filtering processing unit 22.

인증 래더 삽입 위치 조정 처리부(23)는, 제어 프로그램 작성부(2)에서 제어 프로그램의 편집이 행해진 후에 인증 정보에 근거하여 산출한 인증 래더의 삽입 위치(스텝 수)를 원래의 스텝 수의 위치에 삽입되도록 조정한다. The authentication ladder insertion position adjustment processing unit 23 sets the insertion position (number of steps) of the authentication ladder calculated based on the authentication information after the control program is edited by the control program creation unit 2 to the position of the original step number. Adjust to insert.

즉, 인증 래더 삽입 위치 조정 처리부(23)는, 제어 프로그램이 편집되어 제어 프로그램이 갱신된 결과, 어느 하나의 인증 래더의 배치가 변동한 경우에, 상기 인증 래더의 위치를 변동 전의 위치로 되돌린다. That is, the authentication ladder insertion position adjustment processing unit 23 returns the position of the authentication ladder to the position before the change when the arrangement of any of the authentication ladders is changed as a result of the edit of the control program and the update of the control program. .

예컨대, 도 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 adjustment processing unit 23 is performed. Returns A234 to the original 234 step position (the position before X15).

인증 래더 삽입 위치 조정 처리부(23)는 위치 조정부의 예이다. The authentication ladder insertion position adjustment processing unit 23 is an example of a position adjustment unit.

PLC(200)에서는, 제어 프로그램 판독 처리부(24)가 추가되어 있다. In the PLC 200, a control program read processing unit 24 is added.

제어 프로그램 판독 처리부(24)는 실행용 제어 프로그램 기억부(15)로부터 제어 프로그램(합성 프로그램)을 판독한다. The control program read processing unit 24 reads the control program (synthesis program) from the execution control program storage unit 15.

또한, 본 실시형태에서는, 액세스 요구 수신 처리부(11)는 제어 프로그램 판독 처리부(24)에 의해 판독된 제어 프로그램을 엔지니어링 환경측 PC(100)에 출력한다. In addition, in the present embodiment, the access request reception processing unit 11 outputs the control program read by the control program reading processing unit 24 to the engineering environment side PC 100.

본 실시형태에서는, 액세스 요구 수신 처리부(11) 및 제어 프로그램 판독 처리부(24)는 프로그램 출력부에 상당한다. In the present embodiment, the access request reception processing unit 11 and the control program reading processing unit 24 correspond to a program output unit.

또한, 도 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 is abbreviate | omitted.

그러나, PLC(200)에는, 제어 프로그램 기입 처리부(12), 인증 래더 자동 생성 처리부(13), 인증 래더 삽입 처리부(14), 제어 프로그램 실행 제어부(16), 전용 디바이스 설정부(17) 등의 실시형태 1 및 실시형태 2에서 설명한 요소가 포함되어 있는 것으로 한다. However, the PLC 200 includes a control program write processing unit 12, an automatic authentication ladder generation processing unit 13, an authentication ladder insertion processing unit 14, a control program execution control unit 16, a dedicated device setting unit 17, and the like. It is assumed that the elements described in the first and second embodiments are included.

다음에, 시큐리티 설정부(6a)의 시큐리티 설정이 유효하게 되어 있는 경우에, 제어 프로그램의 판독 요구를 했을 때에 실행되는 인증에 대해서 설명한다. Next, the authentication performed when a control program read request is made when the security setting of the security setting unit 6a is made effective will be described.

입력부(1)로부터 PLC(200)에 저장되어 있는 제어 프로그램의 판독 요구를 제어 프로그램 판독 요구부(21)가 받으면, 시큐리티 설정부(6a)의 시큐리티 설정을 확인하여, 시큐리티 설정이 유효한 경우에 PLC(200)와의 사이에서 챌린지 리스폰스 인증을 실시하기 위해서 인증 처리부(10a)에 챌린지값(난수)의 생성을 요구한다. When the control program read request unit 21 receives a read request of the control program stored in the PLC 200 from the input unit 1, the security setting of the security setting unit 6a is checked, and the PLC is set when the security setting is valid. In order to perform challenge response authentication with 200, the authentication processing unit 10a is required to generate a challenge value (random number).

인증 처리부(10a)는 난수의 생성을 난수 생성 처리부(7)에 요구하고, 받은 난수를 제어 프로그램 판독 요구부(21)에 돌려준다. The authentication processing unit 10a requests the random number generation processing unit 7 to generate a random number, and returns the received random number to the control program read request unit 21.

제어 프로그램 판독 요구부(21)는 액세스 요구 송신 처리부(4)에 대하여 PLC(200)와의 사이에서 챌린지 리스폰스 인증을 행하도록 요구한다. The control program read request unit 21 requests the access request transmission processing unit 4 to perform challenge response authentication with the PLC 200.

액세스 요구 송신 처리부(4)는 액세스 요구 수신 처리부에 대하여 인증 요구와 챌린지값(난수)을 송신한다. The access request transmission processing unit 4 transmits an authentication request and a challenge value (random number) to the access request reception processing unit.

인증 요구를 받은 액세스 요구 수신 처리부(11)는, 인증 처리부(10b)에 대하여 받은 챌린지값을 전달하여 리스폰스값의 생성을 지시한다. The access request reception processing unit 11 that has received the authentication request transmits the challenge value received to the authentication processing unit 10b to instruct the generation of the response value.

인증 처리부(10a)는 리스폰스값의 생성 요구를 받아서 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID, 및 챌린지값으로서 받은 난수를 입력으로 해서 해시 함수에 의해 리스폰스값(해시값)을 생성하고, 생성한 리스폰스값을 액세스 요구 수신 처리부(11)에 돌려준다. The authentication processing unit 10a receives a request for generating a response value and stores a random number stored in the authentication ladder generation random number storage unit 8b, a serial ID stored in the serial ID storage unit 9b, and a random number received as a challenge value. As an input, a response value (hash value) is generated by the hash function, and the generated response value is returned to the access request reception processing unit 11.

액세스 요구 수신 처리부(11)는 받은 리스폰스값을 액세스 요구 송신 처리부(4)에 돌려주고, 리스폰스값을 받은 액세스 요구 송신 처리부(4)는 리스폰스값을 제어 프로그램 판독 요구부(21)에 돌려준다. The access request reception processing unit 11 returns the received response value to the access request transmission processing unit 4, and the access request transmission processing unit 4 having received the response value returns the response value to the control program read request unit 21.

제어 프로그램 판독 요구부(21)는 인증 처리부(10a)에 대하여 받은 리스폰스값을 전달하고, 인증 처리부(10a)는 PLC(200)와 동일한 알고리즘을 이용하여 인증 래더 생성용 난수 기억부(8a)에 저장되어 있는 난수와 시리얼 ID 기억부(9a)에 저장되어 있는 시리얼 ID와 방금 전에 생성한 챌린지값을 입력으로 해서 해시 함수에 의해 해시값을 생성하고, 리스폰스값과 비교해서, 비교 결과를 제어 프로그램 판독 요구부에 통지한다. The control program reading request unit 21 transmits the response value received to the authentication processing unit 10a, and the authentication processing unit 10a uses the same algorithm as that of the PLC 200 to the authentication ladder generation random number storage unit 8a. The hash value is generated by the hash function by inputting the stored random number, the serial ID stored in the serial ID storage unit 9a, and the challenge value just created, and compared with the response value to compare the result of the control program. Notify the read request unit.

제어 프로그램 판독 요구부(21)는, 비교 결과가 불일치인 경우는 제어 프로그램의 판독 처리를 중지하고, 사용자에 대하여 PLC로부터의 제어 프로그램의 판독을 할 수 없는 것을 통지한다. If the comparison result is inconsistent, the control program read request unit 21 stops the read processing of the control program and notifies the user that the control program cannot be read from the PLC.

비교 결과가 일치한 경우는, 제어 프로그램 판독 요구부(21)는 액세스 요구 송신 처리부(4)에 대하여 제어 프로그램의 판독 요구를 지시한다. When the comparison results match, the control program read request unit 21 instructs the access request transmission processor 4 to read the control program.

액세스 요구 수신 처리부(11)는 제어 프로그램의 판독 요구를 받으면 제어 프로그램 판독 처리부(24)에 제어 프로그램의 판독을 지시한다. The access request reception processing unit 11 instructs the control program read processing unit 24 to read the control program when receiving the read request of the control program.

제어 프로그램 판독 처리부(24)는 실행용 제어 프로그램 기억부(15)로부터 제어 프로그램을 판독하여, 액세스 요구 수신 처리부(11)에 돌려준다. The control program read processing unit 24 reads the control program from the execution control program storage unit 15 and returns it to the access request reception processing unit 11.

제어 프로그램 판독 요구부(21)는 PLC(200)로부터 판독한 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. The control program read request unit 21 stores the control program read from the PLC 200 in the control program storage unit 3.

이와 같이 시큐리티 설정이 유효하게 되어 있는 경우에는, 제어 프로그램과 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 environment side PC 100 side when there is a request for access to the execution control program storage unit 15 at the PLC 200 side as well. You may also

다음에, 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 program storage unit 3 using the input unit 1, the authentication ladder filtering processing unit 22 generates the authentication generated by the authentication processing unit 10a. The information is acquired and the insertion position of the authentication ladder inserted into the control program is confirmed by the authentication ladder insertion processing unit 14 based on the obtained authentication information. (The number of steps is calculated from the authentication information to determine the insertion position of the authentication ladder. box).

인증 래더 필터링 처리부(22)는 제어 프로그램 기억부(3)로부터 제어 프로그램을 판독하여, 1번만 실행하도록 설정한 인증 래더(도 4(a)에 예시한 인증 래더)와, 상기 산출한 스텝 수에 위치하는 인증 래더(제어 프로그램 중의 특정한 스텝 수에 삽입한 인증 래더: 도 4(b)에 예시한 인증 래더)에 대하여 비표시 설정을 행한다. The authentication ladder filtering processing unit 22 reads the control program from the control program storage unit 3, and sets the authentication ladder (authentication ladder illustrated in Fig. 4 (a)) to be executed only once and the calculated number of steps. The non-display setting is performed on the authentication ladder (the authentication ladder inserted in the specific number of steps in the control program: the authentication ladder illustrated in Fig. 4B).

제어 프로그램 작성부(2)는, 인증 래더 필터링 처리부(22)로부터 받은 제어 프로그램을 표시할 때, 비표시 설정되어 있는 개소를 확인하여, 비표시 설정되어 있는 개소의 인증 래더를 표시하지 않는 제어를 행하여 표시부(30)에 출력하고, 표시부(30)는 인증 래더를 표시하지 않고 제어 프로그램만을 표시한다. When the control program preparation unit 2 displays the control program received from the authentication ladder filtering processing unit 22, the control program creation unit 2 checks the non-displayed location, and performs control that does not display the authentication ladder of the non-displayed location. And output to the display unit 30, and the display unit 30 displays only the control program without displaying the authentication ladder.

또한, 인증 래더 삽입 위치 조정 처리부(23)는, 제어 프로그램 작성부(2)에서 편집된 후의 제어 프로그램에 대하여, 사용자에 의한 명령의 추기(追記)나 삭제에 의해서 발생한 인증 래더 삽입 위치(스텝 수)를, 인증 처리부(10a)에서 생성한 인증 정보에 근거하여 원래의 위치로 되돌리고 나서, 제어 프로그램을 제어 프로그램 기억부(3)에 저장한다. In addition, the authentication ladder insertion position adjustment processing unit 23 is an authentication ladder insertion position (number of steps) generated by addition or deletion of a command by a user with respect to a control program edited by the control program creation unit 2. ) Is returned to the original position based on the authentication information generated by the authentication processing unit 10a, and then the control program is stored in the control program storage unit 3.

이와 같이, 본 실시형태에 의하면, 사용자에게 인증 래더를 보이지 않게 함으로써, 정규 사용자가 잘못해서 인증 래더를 삭제하거나 변경하거나 하는 것을 방지하여, 악의를 가진 사용자에 의해 제어 프로그램의 부정 이용 방지 방법이 해석되는 것을 곤란하게 하여, 제어 프로그램의 부정 이용을 방지할 수 있다. 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 insertion processing unit 14 with the existing device so that the existence of the dedicated device is not known to the user. Explain.

도 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 environment side PC 100 has been described in Embodiments 1 to 3, description thereof is omitted.

PLC(200)에서는, 도 7의 구성에 인증 래더 변환 테이블 기억부(25) 및 인증 래더 변환 처리부(26)가 추가되어 있다. In the PLC 200, an authentication ladder conversion table storage unit 25 and an authentication ladder conversion processing unit 26 are added to the configuration of FIG. 7.

또한, 도 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 is abbreviate | omitted.

그러나, PLC(200)에는, 제어 프로그램 기입 처리부(12), 인증 래더 자동 생성 처리부(13), 인증 래더 삽입 처리부(14), 제어 프로그램 실행 제어부(16), 전용 디바이스 설정부(17) 등의 실시형태 1 및 실시형태 2에서 설명한 요소가 포함되어 있는 것으로 한다. However, the PLC 200 includes a control program write processing unit 12, an automatic authentication ladder generation processing unit 13, an authentication ladder insertion processing unit 14, a control program execution control unit 16, a dedicated device setting unit 17, and the like. It is assumed that the elements described in the first and second embodiments are included.

인증 래더 변환 테이블 기억부(25)는, 엔지니어링 환경측 PC(100)로부터 제어 프로그램의 판독 요구가 있었던 경우에, 제어 프로그램 중에 삽입되어 있는 인증 래더의 전용 디바이스 번호를 기존의 디바이스의 번호로 변환할 때에 이용하는 변환 테이블을 저장하고 있다. The authentication ladder conversion table storage unit 25 converts the dedicated device number of the authentication ladder inserted in the control program into the number of existing devices when a request is made to read the control program from the engineering environment side PC 100. The conversion table to be used is stored.

인증 래더 변환 처리부(26)는 인증 래더 변환 테이블 기억부(25)에 저장되어 있는 변환 테이블을 이용하여 전용 디바이스 번호를 기존의 디바이스 번호로 치환하는 처리를 실행한다. The authentication ladder conversion processing unit 26 executes a process of replacing the dedicated device number with an existing device number by using the conversion table stored in the authentication ladder conversion table storage unit 25.

전술한 바와 같이, 전용 디바이스의 디바이스 번호는, 대상 디바이스의 디바이스 번호와 번호 체계가 상이하다(실시형태 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 Embodiment 1, the dedicated device number starts with "A", the target device number is "X", Start with "Y", "E").

이 때문에, 인증 래더 변환 처리부(26)는, 실행용 제어 프로그램 기억부(15)에 저장되어 있는 제어 프로그램(합성 프로그램)의 출력 지시가 엔지니어링 환경측 PC(100)로부터 있었던 경우에, 인증 래더의 전용 디바이스 번호를 대상 디바이스 번호와 동일한 번호 체계로 변경한다(전용 디바이스 번호를 예컨대 「X」로 시작되도록 함). For this reason, when the output instruction of the control program (synthesis program) stored in the control program storage part 15 for execution was received from the engineering environment side PC 100, the authentication ladder conversion processing part 26 of the authentication ladder conversion processing part 26 The dedicated device number is changed to the same numbering system as the target device number (the dedicated device number is started with "X", for example).

인증 래더 변환 처리부(26)는 디바이스 번호 변경부의 예이다. The authentication ladder conversion processing unit 26 is an example of a device number changing unit.

또한, 본 실시형태에서는, 액세스 요구 수신 처리부(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 unit 24 receives a read request of the control program from the engineering environment side PC 100, the control program read processing unit 24 checks the security setting of the security setting unit 6b, and the security setting is valid. Next, the authentication ladder conversion processing unit 26 requests the replacement of the dedicated device of the authentication ladder inserted in the control program read from the execution control program storage unit 15 into the existing device.

전용 디바이스의 기존 디바이스로의 변환 요구를 받은 인증 래더 변환 처리부(26)는, 인증 래더 변환 테이블 기억부(25)에 설정되어 있는 변환 테이블에 근거하여 인증 래더로써 사용하고 있는 전용 디바이스를 기존의 디바이스(X 디바이스나 Y 디바이스)로의 치환을 실시한다. Based on the conversion table set in the authentication ladder conversion table storage section 25, the authentication ladder conversion processing section 26 that receives the conversion request from the dedicated device to the existing device uses the dedicated device that is used as the authentication ladder. Replace with (X device or Y device).

예컨대, 전용 디바이스 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 Embodiment 3, since an authentication ladder is filtered and an authentication ladder is not shown to a user, a conversion table is necessary. none.

이와 같이, 본 실시형태에 의하면, 엔지니어링 환경측에서 판독한 제어 프로그램에 삽입된 인증 래더의 전용 디바이스를 기존의 디바이스로 치환함으로써, 예컨대 악의를 가진 사용자가 판독한 제어 프로그램을, 바이너리 에디터(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 PLC 200, the authentication ladder is regenerated based on the authentication information regenerated using the counter value provided in the PLC 200. Replacement with the authentication ladder inserted in the module is performed.

도 9에서는, 엔지니어링 환경측 PC(100)에 있어서, 조작 이력 기억부(27)가 추가되어 있다. In FIG. 9, the operation history storage unit 27 is added to the engineering environment side PC 100.

조작 이력 기억부(27)는, 엔지니어링 환경측 PC(100) 상에서 사용자가 실행한 기능명이나 실행했을 때의 타임 스탬프 및 에러 정보 등의 조작 내용을 저장한다. The operation history storage unit 27 stores operation contents such as a function name executed by the user on the engineering environment side PC 100, a time stamp and error information when executed, and the like.

조작 이력 기억부(27)는 입력 횟수 계수부의 예이다. The operation history storage unit 27 is an example of the input count counter.

또한, 조작 이력 기억부(27) 이외의 엔지니어링 환경측 PC(100)의 구성요소는, 실시형태 1~3에서 설명한 것이기 때문에 설명을 생략한다. In addition, since the component of the engineering environment side PC 100 other than the operation history storage part 27 is what was demonstrated in Embodiment 1-3, description is abbreviate | omitted.

또한, 도면 상의 스페이스의 문제에 의해 표시부(30)는 도시가 생략되어 있지만, 도 9의 엔지니어링 환경측 PC(100)에는 표시부(30)가 존재하는 것으로 한다. In addition, although the display part 30 is abbreviate | omitted by the problem of the space on drawing, it is assumed that the display part 30 exists in the engineering environment side PC 100 of FIG.

PLC(200)에서는, 인증 래더 삭제 처리부(28) 및 카운터 처리부(29)가 추가되어 있다. In the PLC 200, an authentication ladder deletion processing unit 28 and a counter processing unit 29 are added.

인증 래더 삭제 처리부(28)는 제어 프로그램 중에 삽입되어 있는 인증 래더를 삭제한다. The authentication ladder deletion processing unit 28 deletes the authentication ladder inserted in the control program.

보다 구체적으로는, 액세스 요구 수신 처리부(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 environment side PC 100, which is an external device, The control program (synthesis program) is output to the engineering environment side PC 100, but at the time of output to the engineering environment side PC 100, the authentication ladder is deleted from the control program (synthesis program).

인증 래더 삭제 처리부(28)는 삭제 처리부의 예이다. The authentication ladder deletion processing unit 28 is an example of the deletion processing unit.

카운터 처리부(29)는 엔지니어링 환경으로부터의 제어 프로그램의 판독 요구를 접수할 때마다 PLC(200) 내에 마련한 카운터의 값을 카운트 업하고 카운트 업한 값을 기억한다. The counter processing unit 29 counts up the value of the counter provided in the PLC 200 and stores the counted up value each time the request for reading the control program from the engineering environment is received.

즉, 액세스 요구 수신 처리부(11)에 의해 제어 프로그램(합성 프로그램)이 엔지니어링 환경측 PC(100)으로 출력될 때마다, 출력 횟수를 계수한다. That is, each time the control program (synthesis program) is output to the engineering environment side PC 100 by the access request reception processing unit 11, the number of outputs is counted.

카운터 처리부(29)는 출력 횟수 계수부이다. The counter processor 29 is an output count counter.

그리고, 본 실시형태에서는, 인증 래더 자동 생성 처리부(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 reception processing unit 11 to the engineering environment side PC 100 when the control program (synthesis program) is output. Each time, based on the serial ID of the serial ID storage unit 9b, the count value of the counter processing unit 29, and the random number of the random number storage unit 8b for authentication ladder generation, the device number of the dedicated device is newly selected, and the new dedicated unit is selected. A new authentication ladder including the device number is generated, and a new insertion position in the control program after the deletion processing by the authentication ladder deletion processing unit 28 is determined for each new authentication ladder generated.

그리고, 인증 래더 삽입 처리부(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 generation processing unit 13 to make a new synthesis program.

또한, 도 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 is abbreviate | omitted.

그러나, PLC(200)에는, 제어 프로그램 기입 처리부(12), 제어 프로그램 실행 제어부(16), 전용 디바이스 설정부(17) 등의 실시형태 1~3에서 설명한 요소가 포함되어 있는 것으로 한다. However, it is assumed that the PLC 200 includes the elements described in the first to third embodiments, such as the control program write processing unit 12, the control program execution control unit 16, and the dedicated device setting unit 17.

다음에, 본 실시형태에 따른 동작을 설명한다. Next, the operation according to the present embodiment will be described.

먼저, PLC(200)측의 동작을 설명한다. First, the operation of the PLC 200 side will be described.

실시형태 1에서는, 제어 프로그램의 PLC로의 초회 기입시에 엔지니어링 환경측 PC(100)에서 생성한 난수와 PLC(200)의 시리얼 ID의 2개 정보를 입력으로 해서 해시 함수에 의해 인증 정보를 생성하고 있었다. In Embodiment 1, authentication information is generated by a hash function by inputting two pieces of information, a random number generated by the engineering environment side PC 100 and a serial ID of the PLC 200 at the first writing of the control program to the PLC. there was.

본 실시형태에서는, 상기 2개의 정보 이외에 카운터 처리부(29)의 카운터의 값도 이용하여 인증 정보를 생성하고, 생성한 인증 정보로부터 인증 래더를 생성한다. In this embodiment, authentication information is generated using the value of the counter of the counter processing unit 29 in addition to the above two pieces of information, and an authentication ladder is generated from the generated authentication information.

카운터 처리부(29)의 카운터는 엔지니어링 환경측 PC(100)로부터 제어 프로그램의 판독 요구를 받을 때마다 카운트 업한다. The counter of the counter processing part 29 counts up every time the control program read request is received from the engineering environment side PC 100.

이 카운터의 값은 제어 프로그램의 초회 기입시에 초기값 0이 설정되고, 초회 기입시에 인증 정보를 생성할 때의 카운터의 값은 0을 이용한다. As for the value of this counter, the initial value 0 is set at the time of the first write of a control program, and the value of the counter at the time of generating authentication information at the time of a first write is used.

이 후에, 엔지니어링 환경측 PC(100)로부터의 제어 프로그램의 판독 요구를 받으면, 인증 래더 자동 생성 처리부(13)가 카운터 처리부(29)에 카운트 업을 지시하고, 상기 지시에 의해 카운터 처리부(29)는 카운터의 값을 하나 카운트 업한다. Subsequently, upon receiving a request for reading the control program from the engineering environment side PC 100, the authentication ladder automatic generation processing unit 13 instructs the counter processing unit 29 to count up, and the counter processing unit 29 according to the instruction. Counts up the value of the counter by one.

엔지니어링 환경측 PC(100)로부터의 제어 프로그램의 판독 요구를 받은 제어 프로그램 판독 처리부(24)는 인증 래더 자동 생성 처리부(13)에 대하여 인증 래더의 재생성을 지시한다. The control program read processing unit 24 that receives the request for reading the control program from the engineering environment side PC 100 instructs the authentication ladder automatic generation processing unit 13 to regenerate the authentication ladder.

인증 래더 자동 생성 처리부(13)는 인증 래더의 재생성 요구를 받아서 인증 처리부(10b)에 인증 정보의 생성을 지시한다. The authentication ladder automatic generation processing unit 13 receives the regeneration request of the authentication ladder and instructs the authentication processing unit 10b to generate authentication information.

인증 처리부(10b)에서는 인증 래더 생성용 난수 기억부(8b)에 저장되어 있는 난수와 시리얼 ID 기억부(9b)에 저장되어 있는 시리얼 ID 및 카운터 처리부(29)에 저장되어 있는 카운트값에 대해 해시 연산을 행해서 인증 정보를 생성하여, 인증 래더 자동 생성 처리부(13)에 돌려준다. The authentication processing unit 10b hashes the random number stored in the authentication ladder generation random number storage unit 8b, the serial ID stored in the serial ID storage unit 9b, and the count value stored in the counter processing unit 29. The operation is performed to generate authentication information, which is returned to the authentication ladder automatic generation processing unit 13.

인증 래더 자동 생성 처리부(13)는 받은 인증 정보와 제어 프로그램을 인증 래더 삭제 처리부(28)로 전달한다. The authentication ladder automatic generation processing unit 13 transfers the received authentication information and the control program to the authentication ladder deletion processing unit 28.

인증 래더 삭제 처리부(28)는 받은 인증 정보에 근거해서 제어 프로그램 내에 현재 삽입되어 있는 인증 래더의 삽입 위치를 특정하여 인증 래더를 삭제하고, 인증 래더를 삭제한 제어 프로그램을 인증 래더 자동 생성 처리부(13)로 돌려준다. The authentication ladder deletion processing unit 28 determines the insertion position of the authentication ladder currently inserted into the control program based on the received authentication information, deletes the authentication ladder, and automatically generates the control program for deleting the authentication ladder. Return).

인증 래더 자동 생성 처리부(13)는 카운터 처리부(29)에 대해 카운트 업을 지시하고, 카운터 처리부(29)는 카운터의 값을 카운트 업해서 유지한다. The authentication ladder automatic generation processing unit 13 instructs the counter processing unit 29 to count up, and the counter processing unit 29 counts up and holds the counter value.

인증 래더 자동 생성 처리부(13)는 재차 인증 처리부(10b)에 대하여 인증 정보의 생성을 요구하고, 인증 처리부(10b)는 카운트 업한 카운터의 값을 이용하여 인증 정보를 재생성하여, 재생성한 인증 정보를 인증 래더 자동 생성 처리부(13)에 돌려준다. The authentication ladder automatic generation processing unit 13 requests the authentication processing unit 10b to generate the authentication information again, and the authentication processing unit 10b regenerates the authentication information using the counted up counter value, and reproduces the reproduced authentication information. It returns to the authentication ladder automatic generation processing unit 13.

인증 래더 자동 생성 처리부(13)는 재생성한 인증 정보로부터 인증 래더를 자동 생성하고(각 인증 래더의 삽입 위치를 특정하고), 생성한 인증 래더와, 인증 래더 삭제 처리부(28)에 의해 인증 래더를 삭제한 제어 프로그램을 인증 래더 삽입 처리부(14)로 전달한다. The authentication ladder automatic generation processing unit 13 automatically generates the authentication ladder from the regenerated authentication information (specifies the insertion position of each authentication ladder), and generates the authentication ladder and the authentication ladder by the authentication ladder deletion processing unit 28. The deleted control program is transferred to the authentication ladder insertion processing unit 14.

그리고, 인증 래더 자동 생성 처리부(13)는 재생성한 인증 래더의 제어 프로그램으로의 재삽입을 지시하여, 인증 래더 삽입 처리부(14)에 의해 인증 래더를 재삽입한다. Then, the authentication ladder automatic generation processing unit 13 instructs the reinsertion of the regenerated authentication ladder into the control program, and the authentication ladder insertion processing unit 14 reinserts the authentication ladder.

인증 래더가 재삽입된 제어 프로그램을 제어 프로그램 판독 처리부(24)는 액세스 요구 수신 처리부(11)를 경유하여 엔지니어링 환경으로 송신한다. The control program read processing unit 24 transmits the control program in which the authentication ladder has been reinserted to the engineering environment via the access request reception processing unit 11.

다음에, 엔지니어링 환경측 PC(100)측에서의 동작에 대해서 설명한다. Next, the operation on the engineering environment side PC 100 side will be described.

제어 프로그램을 받은 제어 프로그램 판독 요구부(21)는 제어 프로그램 기억부(3)에 저장한다. The control program read request unit 21 having received the control program is stored in the control program storage unit 3.

사용자가 입력부(1)를 이용하여 제어 프로그램 기억부(3)에 저장되어 있는 제어 프로그램의 표시/편집을 지시했을 때, 인증 래더 필터링 처리부(22)는 인증 처리부(10a)에 인증 정보의 생성을 의뢰한다. When the user instructs display / edit of the control program stored in the control program storage unit 3 using the input unit 1, the authentication ladder filtering processing unit 22 causes the authentication processing unit 10a to generate the authentication information. Request.

인증 정보의 생성 요구를 받은 인증 처리부(10a)는, 조작 이력 기억부(27)에 저장되어 있는 조작 이력으로부터 PLC(200)로부터의 제어 프로그램의 판독 처리를 실행한 횟수(판독에 성공한 경우의 횟수만)를 산출한다. The authentication processing unit 10a which has received a request for generating authentication information performs the number of times of reading processing of the control program from the PLC 200 from the operation history stored in the operation history storage unit 27 (the number of times of successful reading). Only).

다음에, 인증 처리부(10a)는 산출한 값(이 값은 PLC의 카운터 처리부(29)에 의해 유지되어 있는 카운터의 값과 동일)과 인증 래더 생성용 난수 기억부(8a)에 저장되어 있는 난수 및 시리얼 ID 기억부(9a)에 저장되어 있는 시리얼 ID로부터 인증 정보를 산출하여, 인증 래더 필터링 처리부(22)에 돌려준다. Next, the authentication processing unit 10a calculates the calculated value (this value is the same as the value of the counter held by the counter processing unit 29 of the PLC) and the random number stored in the authentication ladder generation random number storage unit 8a. And the authentication information is calculated from the serial ID stored in the serial ID storage unit 9a and returned to the authentication ladder filtering processing unit 22.

인증 래더 필터링 처리부(22)에서는, 취득한 인증 정보에 근거하여 인증 래더 삽입 처리부(14)에 의해 제어 프로그램에 삽입되어 있는 인증 래더의 삽입 위치를 확인한다(인증 정보로부터 스텝 수를 산출하여 인증 래더의 삽입 위치를 파악함). The authentication ladder filtering processing unit 22 confirms the insertion position of the authentication ladder inserted into the control program by the authentication ladder insertion processing unit 14 based on the obtained authentication information (the number of steps is calculated from the authentication information to determine the authentication ladder. The insertion position).

인증 래더 필터링 처리부(22)는 제어 프로그램 기억부(3)로부터 제어 프로그램을 판독하여, 1번만 실행하도록 설정한 인증 래더(도 4(a)에 예시한 인증 래더)와 상기 산출한 스텝 수에 위치하는 인증 래더(제어 프로그램 중의 특정한 스텝 수에 삽입한 인증 래더: 도 4(b)에 예시한 인증 래더)에 대하여 비표시 설정을 행한다. The authentication ladder filtering processing section 22 reads the control program from the control program storage section 3 and locates at the authentication ladder (the authentication ladder illustrated in Fig. 4A) set to be executed only once and the calculated number of steps. The non-display setting is performed for the authentication ladder (the authentication ladder inserted in the specific number of steps in the control program: the authentication ladder illustrated in Fig. 4B).

제어 프로그램 작성부(2)는 인증 래더 필터링 처리부(22)로부터 받은 제어 프로그램을 표시할 때, 비표시 설정되어 있는 개소를 확인하여, 비표시 설정되어 있는 개소의 인증 래더를 표시하지 않는 제어를 행하여 표시부(30)에 출력하고, 표시부(30)는 인증 래더를 표시하지 않고 제어 프로그램만을 표시한다. When the control program preparation unit 2 displays the control program received from the authentication ladder filtering processing unit 22, the control program creation unit 2 checks the non-displayed location, and performs control not to display the authentication ladder of the non-displayed location. It outputs to the display part 30, and the display part 30 displays only a control program, without displaying an authentication ladder.

또한, 인증 래더 삽입 위치 조정 처리부(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 authentication processing unit 10a, and then the control program is stored in the control program storage unit 3.

이와 같이, 본 실시형태에서는, 실행용 제어 프로그램 기억부(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 program storage unit 15 is received, and the value of the counter is used to determine the authentication information and the authentication information. On the basis of this, the authentication ladder is regenerated and replaced with the authentication ladder inserted in the control program.

이들 처리에 의해, 엔지니어링 환경측 PC(100)측에서 판독한 제어 프로그램은 매회 상이하기 때문에, 악의를 가진 사용자에 의한 인증 처리의 해석을 곤란하게 할 수 있다. By these processes, the control programs read out from the engineering environment side PC 100 side are different each time, which makes it difficult to analyze the authentication process by a malicious user.

또한, 악의를 가진 사용자가 제어 프로그램을 가령 별도의 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.
제 1 항에 있어서,
상기 제어 장치는,
복수의 인증용 디바이스를 각각의 인증용 디바이스 번호와 대응시켜서 관리하고, 상기 프로그램 기억부에 기억되어 있는 합성 프로그램의 실행시에, 상기 인증 프로그램 생성부의 선택 동작으로부터 독립하여 상기 고유 식별 정보에 근거해서 하나 이상의 인증용 디바이스 번호를 선택하고, 선택한 선택 인증용 디바이스 번호에 대응하는 선택 인증용 디바이스의 각각에 대해 미리 지정된 설정 처리를 실행하는 설정 처리부와,
상기 설정 처리부에 의해 상기 선택 인증용 디바이스의 각각에 대해 설정 처리가 행해진 후에, 상기 프로그램 기억부에 기억되어 있는 합성 프로그램을 실행하는 프로그램 실행부
를 더 갖는 것을 특징으로 하는 제어 장치.
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.
제 2 항에 있어서,
상기 제어 장치는,
난수를 기억하는 난수 기억부와,
상기 인증 프로그램 생성부에 의한 인증 프로그램의 생성에 앞서, 상기 난수 기억부에 기억되어 있는 난수와 상기 고유 식별 정보 기억부에 기억되어 있는 고유 식별 정보에 대해 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.
제 2 항 또는 제 3 항에 있어서,
상기 인증 프로그램 생성부는, 선택 인증용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리가 행해지면 정상으로 동작해서 상기 메인 프로그램이 정상으로 동작하고, 선택 인증용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리가 행해지지 않는 경우에는 정상으로 동작하지 않아 상기 메인 프로그램의 동작이 정지하는 래더 프로그램을 인증 프로그램으로서 생성하며,
상기 설정 처리부는, 선택 인증용 디바이스를 오프 상태로부터 온 상태로 하는 설정 처리를 실행하는 것
을 특징으로 하는 제어 장치.
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.
제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 인증 프로그램 생성부는,
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.
제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 제어 장치는,
메인 프로그램과 인증 프로그램이 합성된 합성 프로그램의 실행 소요 시간의 허용 범위를 허용 시간으로서 기억하는 허용 시간 기억부와,
상기 프로그램 입력부에 의해 입력된 메인 프로그램의 실행 소요 시간을 예측하는 소요 시간 예측부와,
상기 소요 시간 예측부에 의해 예측된 예측 소요 시간과 상기 허용 시간에 근거하여, 상기 인증 프로그램에 포함시키는 인증용 디바이스 번호의 개수를 결정하는 개수 결정부
를 더 갖고,
상기 인증 프로그램 생성부는, 상기 개수 결정부에 의해 결정된 개수분의 인증용 디바이스 번호를 선택하는 것
을 특징으로 하는 제어 장치.
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.
제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 제어 장치는, 상기 프로그램 입력부에 의해 입력된 메인 프로그램의 프로그램 사이즈가 미리 지정된 사이즈 이상인지 여부를 판단하여, 상기 메인 프로그램의 프로그램 사이즈가 상기 미리 지정된 사이즈 미만이면, 상기 인증 프로그램 생성부에 대하여 인증 프로그램의 생성을 보류시키고, 상기 메인 프로그램의 프로그램 사이즈가 상기 미리 지정된 사이즈 이상이면, 상기 인증 프로그램 생성부에 대하여 인증 프로그램의 생성을 지시하는 프로그램 사이즈 판단부를 더 갖는 것을 특징으로 하는 제어 장치.
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.
제 7 항에 있어서,
상기 인증 프로그램 생성부는,
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.
제 1, 2, 3, 8 항 중 어느 한 항에 있어서,
상기 인증 프로그램 생성부는, 상기 대상 디바이스와 번호 체계가 상이한 인증용 디바이스 번호가 포함되는 인증용 프로그램을 생성하고,
상기 제어 장치는,
상기 프로그램 기억부에 기억되어 있는 합성 프로그램의 출력 지시가 외부 장치로부터 있었던 경우에, 상기 합성 프로그램 중의 인증 프로그램에 포함되어 있는 선택 인증용 디바이스 번호를, 상기 대상 디바이스의 디바이스 번호와 동일한 번호 체계의 디바이스 번호로 변경하는 디바이스 번호 변경부와,
인증 프로그램에 상기 디바이스 번호 변경부에 의한 변경 후의 디바이스 번호가 포함되는 합성 프로그램을 상기 외부 장치에 출력하는 프로그램 출력부
를 더 갖는 것을 특징으로 하는 제어 장치.
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.
제 1, 2, 3, 8 항 중 어느 한 항에 있어서,
상기 인증 프로그램 생성부는,
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.
제 11 항에 있어서,
상기 관리 장치는,
상기 제어 장치에 고유하게 설정되어 있는 고유 식별 정보를 기억하는 고유 식별 정보 기억부와,
난수를 기억하는 난수 기억부
를 더 갖고,
상기 프로그램 입력부는, 복수의 인증 프로그램의 각각이 상기 메인 프로그램 내의 미리 지정된 위치에 배치되어 있는 합성 프로그램으로서, 상기 제어 장치에 있어서 미리 지정된 결정 알고리즘에 따라서 상기 고유 식별 정보와 상기 난수를 이용하여 인증 프로그램마다 결정된 위치에 각각의 인증 프로그램이 배치되어 있는 합성 프로그램을 입력하고,
상기 비표시 설정부는, 상기 제어 장치와 동일한 결정 알고리즘에 따라서, 상기 고유 식별 정보 기억부의 상기 고유 식별 정보와 상기 난수 기억부의 상기 난수를 이용하여, 각각의 인증 프로그램의 위치를 판별하고, 각각의 인증 프로그램에 대하여 비표시 설정을 행하는 것
을 특징으로 하는 관리 장치.
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.
제 11 항에 있어서,
상기 관리 장치는,
상기 제어 장치에 고유하게 설정되어 있는 고유 식별 정보를 기억하는 고유 식별 정보 기억부와,
난수를 기억하는 난수 기억부와,
상기 제어 장치로부터 상기 합성 프로그램이 입력될 때마다, 입력 횟수를 계수하는 입력 횟수 계수부
를 더 갖고,
상기 프로그램 입력부는, 복수의 인증 프로그램의 각각이 상기 메인 프로그램 내의 미리 지정된 위치에 배치되어 있는 합성 프로그램으로서, 상기 제어 장치에 있어서 미리 지정된 결정 알고리즘에 따라서 상기 고유 식별 정보와 상기 난수와 상기 제어 장치로부터 상기 관리 장치로의 합성 프로그램의 출력 횟수를 이용하여 인증 프로그램마다 결정된 위치에 각각의 인증 프로그램이 배치되어 있는 합성 프로그램을 입력하고,
상기 비표시 설정부는, 상기 제어 장치와 동일한 결정 알고리즘에 따라서, 상기 고유 식별 정보 기억부의 상기 고유 식별 정보와 상기 난수 기억부의 상기 난수와 상기 입력 횟수 계수부에 의한 계수값을 이용하여, 각각의 인증 프로그램의 위치를 판별하고, 각각의 인증 프로그램에 대하여 비표시 설정을 행하는 것
을 특징으로 하는 관리 장치.
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.
제 12 항 또는 제 13 항에 있어서,
상기 관리 장치는, 상기 관리 장치에 있어서 상기 합성 프로그램이 갱신된 결과, 어느 하나의 인증 프로그램의 배치가 변동한 경우에, 상기 인증 프로그램의 위치를 변동 전의 위치로 되돌리는 위치 조정부를 더 갖는 것을 특징으로 하는 관리 장치.
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.
KR1020100079652A 2010-02-12 2010-08-18 Control device and management device KR101252918B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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