CN102156840B - 控制装置以及管理装置 - Google Patents

控制装置以及管理装置 Download PDF

Info

Publication number
CN102156840B
CN102156840B CN201010237224.6A CN201010237224A CN102156840B CN 102156840 B CN102156840 B CN 102156840B CN 201010237224 A CN201010237224 A CN 201010237224A CN 102156840 B CN102156840 B CN 102156840B
Authority
CN
China
Prior art keywords
control program
program
certification
authentication procedure
ladder diagram
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201010237224.6A
Other languages
English (en)
Other versions
CN102156840A (zh
Inventor
三浦昭浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN102156840A publication Critical patent/CN102156840A/zh
Application granted granted Critical
Publication of CN102156840B publication Critical patent/CN102156840B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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上动作。访问要求接收处理部输入控制程序与随机数,认证处理部对随机数与PLC中固有的串行ID进行散列运算,认证梯形图自动生成处理部根据散列值选择专用设备,生成表示所选择出的专用设备的认证梯形图,认证梯形图插入处理部将认证梯形图插入到控制程序中并进行保存。在执行控制程序时,认证处理部对随机数与串行ID进行散列运算,专用设备设定部根据散列值选择专用设备,将选择出的专用设备设定为ON,控制程序执行控制部执行控制程序。如果与认证梯形图相同的专用设备为ON,则控制程序正确地动作,如果不是ON则控制程序不动作。

Description

控制装置以及管理装置
技术领域
本发明涉及防止程序的非法使用的技术。
更具体而言,本发明涉及例如在FA(Factory Automation,工厂自动化)系统中防止保存在PLC(Programmable Logic Controller,可编程逻辑控制器)中的控制程序(梯形图(ladder)程序)的非法使用的技术。
背景技术
一般在FA系统中,作为防止针对不希望对其他公司(其他人)公开的控制程序(梯形图程序)等保护资产的非法访问的手段,采取利用口令的方法或者对保护资产进行加密的方法。
但是,在利用口令的方法中,即使例如对控制程序设定口令来进行访问控制,在多个开发者访问该控制程序的情况下,由于在多个开发者之间设定了共同的口令,所以存在关于赋予了容易被他人推测出的口令等脆弱性的课题。
另外,由于分别管理控制程序和口令等这样的在认证中使用的信息,认证处理也与控制程序分开实现,所以如果去掉了与控制程序的关联,则无法进行针对控制程序的访问控制。
因此,采取了对希望保护的数据本身进行加密的方法等,但在加密中为了管理密钥而需要特别的硬件,存在装置复杂且价格变高这样的课题。
另外,在FA系统中的控制程序(梯形图程序)中,根据设备的ON/OFF状态使对控制设备的控制信号成为ON/OFF,无法在控制程序的执行中执行加密、解密的处理。
由此,作为不使用加密而防止控制程序的篡改或监视的方法,有如下方法:针对来自监视装置的对控制程序的访问要求,根据预先设定的访问权限来限制应答的方法(例如,专利文献1)。
【专利文献1】日本特开2005-135165号公报
发明内容
在这样根据对各控制程序预先设定的访问权限来限制针对来自监视装置的访问要求的应答的方法中,进行来自监视装置的访问控制是目的,而并非进行用于使控制程序只能够在特定的PLC上执行的控制。
因此,如果有读出权限,则可以从PLC向监视装置读出控制程序,并且可以将读出的控制程序写入到其他PLC,所以存在可以在拷贝目的地的PLC中进行控制程序的非法利用这样的课题。
本发明是鉴于上述课题而完成的,其主要目的在于实现一种控制程序的非法利用防止功能,用于使仅在特定的控制装置中许可使用的控制程序(梯形图程序)只能够在特定的控制装置上动作。
本发明的控制装置,其特征在于,具有:
固有识别信息存储部,存储对上述控制装置唯一地设定的固有识别信息;
程序输入部,作为主程序输入梯形图程序,该梯形图程序包含成为所述控制装置的控制处理的对象的对象设备的设备编号,不许可所述控制装置以外的装置使用;
认证程序生成部,根据所述固有识别信息,生成防止所述控制装置以外的装置使用主程序的梯形图程序,作为认证程序;
程序合成部,将主程序与认证程序进行合成而作为合成程序;以及
程序存储部,存储所述合成程序,
所述认证程序生成部,
将对对象设备的设备编号进行模拟的、为了认证而使用的多个认证用设备的设备编号作为认证用设备编号而进行管理,
根据所述固有识别信息,选择1个以上的认证用设备编号,
生成包含所选择出的选择认证用设备编号的梯形图程序作为认证程序,其中,所述梯形图程序在作为所述合成程序与所述主程序一起执行时,如果与所述认证程序生成部的选择动作独立地根据所述固有识别信息正确地选择出所述选择认证用设备编号并对与所述选择认证用设备编号对应的选择认证用设备分别进行了规定的设定处理,则正常地动作,从而所述主程序正常地动作,在作为所述合成程序与所述主程序一起执行时,在没有对所述选择认证用设备分别进行所述设定处理的情况下,不正常地动作,从而所述主程序的动作停止。
在本发明中,在保存主程序时,生成包含根据对控制装置唯一地设定的固有识别信息来选择出的选择认证用设备编号的梯形图程序,作为认证程序,并将认证程序合成到主程序中,在执行主程序时,根据固有识别信息正确地选择出选择认证用设备编号,如果对选择认证用设备进行了设定处理,则主程序正常地动作,在没有进行设定处理的情况下,通过认证程序,主程序停止。
因此,可以在控制装置中正常地使用主程序,另一方面在没有被许可主程序的使用的装置中,无法使用主程序,可以防止主程序的非法使用。
附图说明
图1是示出实施方式1的系统结构例的图。
图2是示出实施方式1的动作例的流程图。
图3是示出实施方式1的动作例的流程图。
图4是示出实施方式1的认证梯形图的例子的图。
图5是示出实施方式1的专用设备的设定例的图。
图6是示出实施方式2的系统结构例的图。
图7是示出实施方式3的系统结构例的图。
图8是示出实施方式4的系统结构例的图。
图9是示出实施方式5的系统结构例的图。
(符号说明)
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:PLC。
具体实施方式
在实施方式1~5中,说明如下技术,即防止在FA系统中通过保存在PLC中的控制程序(梯形图程序)的非法拷贝来制造PLC的仿造品的技术。
更具体而言,在将控制程序写入到PLC时,使用用于对PLC进行个体识别的串行ID与在工程环境中生成的随机数来生成认证信息,将PLC与控制程序关联起来,并且根据所生成的认证信息来自动生成可以插入到控制程序的认证梯形图并插入到控制程序中。
然后,在执行控制程序时,通过用所插入的认证梯形图确认是在关联起来的PLC上的执行,由此防止将控制程序非法地拷贝到其他PLC来制造仿造品等非法利用。
在此,认证梯形图是指,插入到作为主程序的控制程序中的梯形图程序,是认证程序的例子。
更具体而言,为了在执行控制程序时确认与特定的设备编号相应的专用设备是否为ON而插入到控制程序中的梯形图程序是认证梯形图。
在实施方式1~5中,将PLC的串行ID与在工程环境侧生成的随机数作为输入,通过散列函数(单向性函数)生成认证信息(散列值),并根据该认证信息决定用于检查专用设备的ON/OFF的设备编号。包含有根据该认证信息决定的设备编号的梯形图程序是认证梯形图。
在此生成的认证信息由于是将PLC的串行ID作为输入而通过散列函数生成的,所以针对每个PLC生成的认证信息是不同的。
另外,控制程序是包含有输入设备、输出设备这样的成为PLC的控制处理对象的对象设备的设备编号的梯形图程序,不允许由所指定的PLC以外的装置使用。
控制程序是主程序的例子。
将在控制程序中插入了认证梯形图后的程序还称为合成程序。
另外,专用设备是指,用于将在设置于PLC内的控制程序中使用的数据或ON/OFF信号进行存储的存储器,假设只能够由PLC的固件进行设定,并假设用户即使使用工程环境也无法设定。
专用设备与对象设备不同,是为了防止控制程序的非法使用而特别设置的设备。对专用设备设定对对象设备的设备编号进行模拟的设备编号。另外,专用设备是认证用设备的例子,专用设备的设备编号是认证用设备编号的例子。
另外,在用户使用工程环境来制作PLC的控制程序时,针对每个PLC制作用于对控制程序或参数、以及认证信息等进行管理的项目。
根据以上,在下面分别说明实施方式1~5。
实施方式1.
图1示出本实施方式的非法利用防止系统的系统结构例。
图1所示的非法利用防止系统是用于使保存在PLC中的控制程序只能够在特定的PLC上执行的FA设备控制程序的非法利用防止系统。
本实施方式的非法利用防止系统被大致分成工程环境侧PC(Personal Computer,个人计算机)100与PLC(Programmable LogicController,可编程逻辑控制器)200。
工程环境侧PC100是具备CPU(Central Processing Unit,中央处理单元)、ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机访问存储器)、磁盘装置、以及通信板等的计算机。
在该情况下,将实现作为工程环境侧PC100的内部要素而示出的功能(“~部”)的程序保存在例如磁盘装置中,由CPU适当地读出这些程序,从而执行各功能。
PLC200存储梯形图程序即控制程序,CPU执行控制程序来进行设备的控制。
工程环境侧PC100是管理装置的例子,PLC200是控制装置的例子。
另外,对于工程环境侧PC100以及PLC200的内部结构,在后面叙述。
另外,图2是示出本实施方式的动作例的流程图。
具体而言,图2示出在将控制程序写入到PLC时进行安全设定,并将控制程序与PLC关联起来时的处理流程。
在后面详细叙述图2的处理流程。
另外,图3示出通过PLC生成认证梯形图,将生成的认证梯形图插入到控制程序并将控制程序保存到PLC中时的处理流程。
在后面详细叙述图3的处理流程。
图4是基于根据认证梯形图生成用随机数与PLC的串行ID生成的认证信息自动生成的认证梯形图的例子。
在后面详细叙述图4。
图5是在接通PLC的电源时通过固件的初始化处理根据认证信息设定了专用设备时的例子。
在后面详细叙述图5。
接下来,使用图1,说明构成FA设备控制程序的非法利用防止系统的要素,该FA设备控制程序的非法利用防止系统在执行存储于PLC中的控制程序时确认是在被许可的PLC上执行。
首先,说明工程环境侧PC100的构成要素。
1是输入部,用于在工程环境侧PC100中,用户使用键盘、鼠标等来进行PLC的控制程序制作、参数设定。
2是用户制作PLC的控制程序的控制程序制作部。
3是控制程序存储部,用于保存用控制程序制作部2制作出的控制程序。
4是访问要求发送处理部,该访问要求发送处理部向PLC发送将保存在控制程序存储部3中的控制程序写入到PLC或者从PLC读出等针对PLC的访问要求。
5是控制程序写入要求部,该控制程序写入要求部通过输入部1接收来自用户的控制程序的写入指示,读出保存在控制程序存储部3中的控制程序,对访问要求发送处理部4进行向PLC的写入要求。
6a是安全设定部,用于针对在工程环境侧PC100制作出的控制程序,使安全设定从无效成为有效。
7是生成随机数的随机数生成处理部。
更具体而言,随机数生成处理部7生成在将使安全设定部6a的安全设定从无效设定成有效时在项目(由按照FA设备单位制作的控制程序或参数设定等所构成的信息)中固有且作为生成认证梯形图时的输入而使用的随机数、或者在工程环境与PLC之间进行认证时的询问&响应认证用的随机数(询问值)。
8a是认证梯形图生成用随机数存储部,该认证梯形图生成用随机数存储部为了在使安全设定成为有效时将控制程序的写入目的地即PLC与控制程序关联起来,并生成认证梯形图,而保存由随机数生成处理部7生成的随机数。
9a是串行ID存储部,该串行ID存储部保存在使安全设定成为有效时从控制程序的写入目的地即PLC中读取出的用于对PLC进行个体识别的串行ID(例如,制造编号等)。
10a是认证处理部,该认证处理部对在工程环境侧PC100侧生成的认证信息与由PLC200生成的认证信息进行比较来进行认证。
更具体而言,认证处理部10a在针对随机数生成处理部7要求生成随机数、或者在安全设定部6a的安全设定是有效的情况下进行针对PLC的控制程序的写入/读取时,为了确认访问目的地的PLC是关联起来的PLC,每次以由随机数生成处理部7生成的随机数、保存在认证梯形图生成用随机数存储部8a中的随机数、以及将保存在串行ID存储部9a中的串行ID作为输入而通过散列函数生成的散列值为认证信息,对该认证信息与在PLC侧生成的认证信息进行比较来进行认证。
接下来,说明PLC200的构成要素。
9b是串行ID存储部,保存PLC制造商在产品上市时设定且用户无法改写的用于对PLC进行个体识别的串行ID(例如,制造编号等)。
串行ID是对PLC200唯一地设定的,是固有识别信息的例子。
另外,串行ID存储部9b是固有识别信息存储部的例子。
6b是安全设定部,用于使用于进行针对控制程序的访问限制的安全设定成为有效。
安全设定部6b与工程环境侧的安全设定的有效化同步地接收来自工程环境侧的安全设定的有效化要求,进行针对保存在PLC中的控制程序的访问限制。
8b是认证梯形图生成用随机数存储部,保存与安全设定的有效化的要求一起发送来的随机数。
保存在认证梯形图生成用随机数存储部8b中的随机数是与由工程环境侧PC100的随机数生成处理部7生成并保存在认证梯形图生成用随机数存储部8a中的随机数相同的随机数。
认证梯形图生成用随机数存储部8b是随机数存储部的例子。
11是访问要求接收处理部,该访问要求接收处理部在PLC侧接收从工程环境的访问要求发送处理部4发送来的访问要求,并执行与要求内容对应的处理。
另外,访问要求接收处理部11与控制程序写入要求一起从工程环境侧PC100输入控制程序(梯形图程序)。
控制程序是如上所述包含有成为PLC200的控制处理对象的对象设备的设备编号的梯形图程序,不许可由所指定的PLC以外的装置使用。控制程序是主程序的例子。
另外,访问要求接收处理部11是程序输入部的例子。
10b是进行散列运算(单向运算)的认证处理部。
认证处理部10b将保存在认证梯形图生成用随机数存储部8b中的随机数和保存在串行ID存储部9b中的串行ID、以及在认证信息的生成要求时一起送来的随机数(询问值)作为输入,使用散列函数来生成散列值(响应)。
更具体而言,认证处理部10b在安全设定部6b的安全设定为有效的情况下,在生成认证梯形图(认证程序)之前,根据来自接受到来自工程环境的认证要求的访问要求接收处理部11的认证信息的生成要求,生成散列值(响应值)。
认证处理部10b是单向运算部的例子。
12是控制程序写入处理部,该控制程序写入处理部在接受到来自访问要求接收处理部11的控制程序的写入要求时,确认安全设定部6b的安全设定,并指示在安全设定是有效的情况下进入到插入认证梯形图的处理,在无效的情况下进入到以不包含认证梯形图的状态将控制程序写入到PLC内的处理。
13是生成认证梯形图(认证程序)的认证梯形图自动生成处理部。
认证梯形图是可以直接插入到控制程序的梯形图程序,是用于防止由PLC200以外的装置使用控制程序的梯形图程序。
认证梯形图自动生成处理部13在将控制程序保存到执行用控制程序存储部15中时,根据由认证处理部10b生成的散列值来选择专用设备(认证用设备)中的特定的设备的编号,生成包含所选择出的特定的设备的编号(选择认证用设备编号)的认证梯形图。
然后,通过认证梯形图插入处理部14将认证梯形图与控制程序进行合成,保存在执行用控制程序存储部15中。
另外,虽然在后面详细叙述,但在控制程序执行控制部16执行控制程序与认证梯形图之前,与通过认证梯形图自动生成处理部13进行的认证梯形图的生成独立地,认证处理部10b根据串行ID与随机数生成散列值,专用设备设定部17根据散列值来选择特定的专用设备的设备编号,对与选择出的设备编号对应的专用设备进行规定的设定处理(使该专用设备从OFF状态成为ON状态的设定处理)。
在通过专用设备设定部17正确地选择出与包含在认证梯形图中的专用设备的设备编号相同的设备编号,并对与该设备编号对应的专用设备进行了设定处理的情况下,在控制程序执行控制部16执行了控制程序与认证梯形图时,认证梯形图正常地动作,其结果,控制程序正常地动作。另一方面,在没有选择出正确的设备编号,其结果没有对正确的专用设备进行设定处理的情况下,在控制程序执行控制部16执行了控制程序与认证梯形图时,认证梯形图不会正常地动作,其结果,控制程序的动作停止。
认证梯形图自动生成处理部13是认证程序生成部的例子。
另外,认证梯形图自动生成处理部13生成包含所选择出的所有设备编号并配置在控制程序的开头中的认证梯形图(开头认证程序)、以及包含所选择出的设备编号中的某一个并插入到控制程序的多个插入位置的2个以上的认证梯形图(插入认证程序)中的至少某一个。
例如,图4(a)是配置在控制程序的开头中的认证梯形图的例子,图4(b)是插入在控制程序的途中的插入位置中的认证梯形图的例子。
14是认证梯形图插入处理部,该认证梯形图插入处理部将由认证梯形图自动生成处理部13自动生成的认证梯形图与控制程序进行合成。
认证梯形图插入处理部14在配置于控制程序的开头中的认证梯形图的情况下(图4(a)中例示出的认证梯形图的情况下)配置到控制程序的开头中,在插入于控制程序的途中的插入位置中的认证梯形图的情况下(图4(b)中例示出的认证梯形图的情况下)插入到所指定的插入位置中。
认证梯形图插入处理部14是程序合成部的例子。
另外,将合成了控制程序与认证梯形图之后的程序还称为合成程序。
15是执行用控制程序存储部,该执行用控制程序存储部保存在工程环境侧制作出的控制程序或者由认证梯形图插入处理部14合成了认证梯形图之后的控制程序(合成程序)。
执行用控制程序存储部15是程序存储部的例子。
16是控制程序执行控制部,该控制程序执行控制部在PLC200为执行模式的情况下,执行保存在执行用控制程序存储部15中的控制程序。
控制程序执行控制部16是程序执行部的例子。
17是专用设备设定部,该专用设备设定部在接通PLC的电源时,通过PLC内的固件的初始化处理,从根据保存在认证梯形图生成用随机数存储部8b中的随机数与保存在串行ID存储部9b中的串行ID生成的散列值中抽出专用设备的设备编号,将与抽出的设备编号相应的专用设备设定成ON。
专用设备设定部17是设定处理部的例子。
接下来,使用图1、图2、以及图3,说明将工程环境上的控制程序(梯形图程序)写入到PLC时的动作。
首先,说明在工程环境侧PC100上制作控制程序的步骤。
用户使用工程环境侧PC100的输入部1与控制程序制作部2来制作控制程序,将制作出的控制程序保存在控制程序存储部3中。
接下来,说明将在工程环境侧PC100上制作出的控制程序写入到PLC200时的初次登记时的步骤。
用户通过USB(Universal Serial Bus,通用串行总线)电缆等对工程环境侧PC100与PLC200进行网络连接。
接下来,使用访问要求发送处理部4与访问要求接收处理部11来进行工程环境与PLC之间的数据发送接收。
如果用户使用输入部1进行了将保存在控制程序存储部3中的控制程序写入到PLC的写入指示(图2的S201),则控制程序写入要求部5从控制程序存储部3中读出控制程序(S202)。
控制程序写入要求部5向安全设定部6a确认安全设定是有效还是无效(S203)。
在安全设定为无效的情况下,控制程序写入要求部5向用户询问是否将安全设定设为有效。
在从用户接受到维持无效的指示的情况下,控制程序写入要求部5对访问要求发送处理部4指示控制程序的写入处理(S209)。
在接受到用户将安全设定设为有效的指示的情况下,控制程序写入要求部5将安全设定部6a设定为有效(S204),对认证处理部10a要求生成在控制程序与PLC的关联中所使用的认证梯形图生成用随机数。
接受到随机数生成的要求的认证处理部10a对随机数生成处理部7要求随机数生成。
随机数生成处理部7生成随机数(S205),将随机数传给认证处理部10a。
认证处理部10a将接收到的随机数返回给控制程序写入要求部5。
控制程序写入要求部5将从认证处理部10a接收到的随机数保存在认证梯形图生成用随机数存储部8a中(S206),并且对访问要求发送处理部4给予认证梯形图生成用随机数并输出使PLC的安全设定成为有效的要求。
访问要求发送处理部4如果接收到使PLC的安全设定成为有效的要求,则对PLC200的访问要求接收处理部11要求安全设定的有效化,并且还一起发送认证梯形图生成用随机数而还要求将控制程序与PLC关联起来(S207)。另外,在该时刻,不将控制程序发送到PLC200。
在PLC200中,访问要求接收处理部11如果接受到安全设定的有效化的要求,则将安全设定部6b设定为有效(S210),对认证处理部10b要求保存由工程环境侧PC100生成的认证梯形图生成用随机数,并且要求获取PLC的串行ID。
认证处理部10b将认证梯形图生成用随机数保存在认证梯形图生成用随机数存储部8b中(S211),读出保存在串行ID存储部9b中的用于对PLC200进行个体识别的串行ID并返回给访问要求接收处理部11。
该串行ID是在PLC上市时由PLC的制造商任意设定的信息,是用户无法设定/变更的信息。
访问要求接收处理部11如果从认证处理部10b接收到串行ID,则在针对安全设定的有效化的要求的应答中附加所接收到的串行ID并返回到访问要求发送处理部4(S212)。
在工程环境侧PC100中,访问要求发送处理部4如果接收到来自访问要求接收处理部11的应答,则将附加在应答中的PLC200的串行ID返回给控制程序写入要求部5,控制程序写入要求部5将其保存在串行ID存储部9a中(S208)。
在本实施方式中,通过保存在认证梯形图生成用随机数存储部8a、8b中的认证梯形图生成用随机数与保存在串行ID存储部9a、9b中的PLC的串行ID,将控制程序与PLC之间关联起来,将根据该2个信息使用散列函数来生成的信息作为认证信息。
控制程序写入要求部5对访问要求发送处理部4要求控制程序的写入处理,访问要求发送处理部4将写入要求与控制程序发送到PLC的访问要求接收处理部11(S209)(图3的S301)。
在PLC200中,访问要求接收处理部11如果接收到控制程序的写入要求,则对控制程序写入处理部12指示控制程序的写入。
控制程序写入处理部12如果接收到控制程序的写入指示,则确认安全设定部6b的安全设定(S302),在处于无效的情况下将接收到的控制程序按照其原样的状态保存在执行用控制程序存储部15中(S309)。
在安全设定处于有效的情况下,控制程序写入处理部12对认证梯形图自动生成处理部13指示认证梯形图的生成。
认证梯形图自动生成处理部13接受来自控制程序写入处理部12的认证梯形图的生成指示,对认证处理部10b指示认证信息的生成。
认证处理部10b读出保存在认证梯形图生成用随机数存储部8b中的随机数与保存在串行ID存储部9b中的串行ID(S304、S305),对随机数与串行ID使用散列函数(单向性函数)来生成认证信息(散列值)(S306),将所生成的认证信息(散列值)返回给认证梯形图自动生成处理部13。
认证梯形图自动生成处理部13根据从认证处理部10b接收到的认证信息自动生成认证梯形图(以认证为目的的梯形图程序)(S307),对认证梯形图插入处理部14指示将自动生成的认证梯形图插入到控制程序。
认证梯形图插入处理部14在用户使用工程环境侧PC100制作出的控制程序的特定的位置中插入由认证梯形图自动生成处理部13生成的认证梯形图(S308)。
认证梯形图插入处理部14将插入了认证梯形图的控制程序(合成程序)保存在执行用控制程序存储部15中(S309),控制程序的写入处理完成。
另外,在本实施方式中,在认证信息的生成中,将由工程环境侧PC100生成的随机数与PLC200的串行ID这2个作为了输入,但除了该2个信号以外,也可以与例如搭载在PLC200中的CPU(Central Processing Unit)的CPU类型进行组合而生成认证信息。
该CPU类型是在工程环境上选择了控制程序的写入目的地即PLC200时确定的在工程环境内处理的信息,是在PLC200侧中也预先内部地保持的信息,所以是在通信路径(工程环境与PLC之间)上不流通的信息,不易推测出认证信息。
接下来,使用图4、图5,说明基于认证信息的认证梯形图的生成与插入、以及在接通PLC的电源时执行的初始化处理中的专用设备的设定方法。
在此,说明将PLC200的串行ID设为例如“009910987654321”、将认证梯形图生成用随机数设为例如“1234567890”的情况下的认证梯形图的生成方法。
另外,将由认证处理部10b以认证梯形图生成用随机数与串行ID为输入而通过散列函数生成的认证信息设为例如“EA082DFE1CBA7816”。
通过散列函数生成的认证信息是利用PLC200的串行ID生成的,所以,在其他PLC中,由于串行ID不同因此无法生成相同的认证信息。
在认证梯形图自动生成处理部13中,用1个字节来划分所生成的认证信息,将划分出的值当作专用设备的设备编号。
例如,如果将最初的1个字节的“EA”当作专用设备的设备编号(10进制表示),则成为A234。在此假设“A”意味着专用设备。
同样地,如果将第2字节、第3字节当作专用设备的设备编号,则成为A8、A45、A254、A28、(以下省略)。
这样选择出的设备编号相当于选择认证用设备编号。
另外,在PLC200的对象设备的设备编号中使用“X”等,在控制程序中如“X50”那样示出了对象设备的设备编号,与其近似地,在认证梯形图中,将专用设备的设备编号设为如“A234”。这样,在认证梯形图中,使用了对对象设备的设备编号进行模拟的设备编号。
在认证梯形图自动生成处理部13中,根据这些信息生成图4所示那样的认证梯形图(梯形图程序)。
图4(a)是包括所选择出的所有设备编号(A234、A8、A45、A254等)并配置在控制程序的开头中的认证梯形图的例子。
图4(a)的认证梯形图在执行时确认专用设备(对应于A234或A8等的专用设备)的ON/OFF的状态,在只要存在一个OFF状态的专用设备的情况下,将用于停止控制程序的执行的设备(在图4(a)的例子中E99)设定为ON。
由于在PLC中能够对控制程序定义仅执行1次或者按每个恒定周期执行等这样的执行类型,所以该认证梯形图设定为在执行控制程序时只实施1次。
另外,认证梯形图自动生成处理部13将上述中生成的认证梯形图的专用设备的设备编号当作控制程序的步骤数,在控制程序的该步骤数的部位插入认证梯形图。
如图4(b)所示,例如在上述的例子中在专用设备A234的情况下,将设备编号234当作步骤数,在控制程序的第234步骤中插入认证梯形图。
其中,在插入时,对设备编号进行排序后,按照数从小到大的顺序将认证梯形图插入到控制程序的相应的步骤数处。
由此,即使在控制程序的执行中,也可以确认是在控制程序所关联的PLC上执行。
例如,在将认证梯形图写入到其他PLC而执行时专用设备的A234是OFF的情况下,在图4(b)所示的例子中,不执行所插入的认证梯形图的输出部的命令(在图中的右侧记载的Y0不被设定为ON)。
因此,控制程序无法正常地动作,对与PLC连接的FA设备也无法正常地控制,所以可以防止控制程序的非法利用。
在图4的例子中,为了易于说明由认证梯形图自动生成处理部13生成的认证梯形图而以梯形图程序形式进行了表现,但实际上按照执行代码形式来生成在PLC200上生成的认证梯形图。
接下来,说明在接通PLC200的电源时通过固件的初始化处理来设定专用设备时的动作。
在固件的初始化处理中,专用设备设定部17对专用设备进行清零,确认PLC200的安全设定部6b是否为有效。
在安全设定是无效的情况下,不进行任何针对专用设备的设定。
在安全设定是有效的情况下,专用设备设定部17对认证处理部10b要求生成认证信息,接受到该要求的认证处理部10b根据保存在认证梯形图生成用随机数存储部8b中的随机数与保存在串行ID存储部9b中的PLC的串行ID,使用散列函数来生成认证信息(散列值)。
专用设备设定部17接收由认证处理部10b生成的认证信息(散列值),如由认证梯形图自动生成处理部13生成专用设备的设备编号那样用1个字节来划分认证信息,将划分出的1个字节的值当作设备编号,将与该设备编号相应的专用设备设定为ON。
在图5所示的例子中,是如下情况:将A234、A8、A45、A254、以及A28的专用设备设定为ON。
在固件中的初始化处理结束,PLC200成为执行模式(控制程序的执行)的情况下,控制程序执行控制部16执行保存在执行用控制程序存储部15中的控制程序,通过配置在控制程序的开头中的认证梯形图(图4(a)),确认在上述初始化处理中设定的专用设备的特定的设备的ON/OFF状态,在只要有一个成为确认对象的专用设备为OFF的情况下,判断为是非法拷贝了控制程序的PLC上的动作,可以停止控制程序的执行。
另外,即使在控制程序的执行中,通过插入到控制程序中的认证梯形图(图4(b))来确认控制程序的非法利用,在确认了非法利用时,由于控制程序不会正常地动作,所以也可以防止通过控制程序的非法拷贝而在仿造品上利用。
另外,PLC自动生成认证梯形图,并在执行控制程序时执行认证梯形图来判断非法利用,所以可以在不会让用户意识到的情况下防止控制程序的非法利用。
在被许可了控制程序的使用的PLC200使用控制程序的情况下,使用与在认证梯形图生成时使用的串行ID以及随机数相同的串行ID以及随机数,所以在初始化处理中应该选择了正确的设备编号(与包含在认证梯形图中的设备编号相同的设备编号),并正确设定了专用设备。
因此,在被许可了控制程序的使用的PLC200中,总是可以使控制程序正常地动作。
另一方面,在没有被许可控制程序的使用的装置(PLC200以外的装置)中,由于不能够知道在认证梯形图生成时在PLC200中使用的串行ID以及随机数,所以在初始化处理中无法选择出正确的设备编号,因此,无法正确地设定专用设备。
因此,在没有被许可控制程序的使用的装置中,控制程序的动作停止,无法使用控制程序。
这样,根据本实施方式,对保存在PLC中的控制程序,根据PLC的串行ID与在制作控制程序时在工程环境侧生成的随机数来生成认证信息,根据所生成的认证信息来自动生成可以直接插入到控制程序中的认证梯形图,在执行控制程序时确认是在预先关联起来的PLC上执行,从而在不会让用户意识到的情况下在控制程序与PLC之间进行认证,并根据认证结果来停止控制程序的执行,从而可以防止控制程序的非法利用。
以上,在本实施方式中,说明了一种FA设备控制程序的非法利用防止系统,
在FA设备控制程序的非法利用防止系统中,即使将对FA(Factory Automation)设备进行控制的控制程序(梯形图程序)非法地拷贝到其他FA设备,也不会使控制程序在拷贝目的地的FA设备上正常地动作,
是用于防止通过PLC(Programmable Logic Controller)实现的控制程序的非法利用的装置,该PLC通过根据用于进行针对FA设备的控制程序或参数等的设定或者确认的工程环境(应用)和控制程序,与输入设备的指令信号的ON/OFF对应地使输出设备成为ON/OFF,由此进行程序控制(按照预定的顺序/条件,使对象如想象那样动作),
该FA设备控制程序的非法利用防止系统,设置有:
输入部,用于用户针对工程环境指示制作控制程序或者输入参数等以及执行功能;
控制程序制作部,用户使用所述输入部制作在PLC上执行的控制程序(梯形图程序);
控制程序存储部,用于保存由所述控制程序制作部制作出的PLC用控制程序;
访问要求发送处理部,用于从工程环境对PLC要求控制程序或参数等的写入/读出并且接收其应答;
控制程序写入要求部,进行用于将保存在所述控制程序存储部中的控制程序写入到PLC中的处理;
安全设定部,仅在使针对在工程环境上制作出的控制程序的安全功能成为有效的情况下进行设定;
随机数生成处理部,用于生成在由PLC生成认证梯形图时使用的随机数、或者在控制程序与PLC之间进行认证时利用的随机数;
认证处理部,接受来自所述控制程序写入要求部的随机数生成要求,对所述随机数生成处理部委托随机数的生成,或者为了在控制程序与PLC之间进行认证,根据随机数、用于对PLC进行个体识别的信息,使用散列函数(单向函数)来生成认证信息;
认证梯形图生成用随机数存储部,用于保存由所述随机数生成处理部生成的在由PLC生成认证梯形图时使用的随机数;
串行ID存储部,保存用于对PLC进行个体识别的串行ID(制造编号等),该串行ID是在将保存在所述控制程序存储部中的控制程序初次写入到PLC中时从PLC抽出的;
访问要求接收处理部,用于接受来自工程环境的访问要求,并根据该访问要求向各处理部传送要求内容;
安全设定部,仅在使针对保存于PLC中的控制程序的安全功能成为有效的情况下进行设定;
认证梯形图生成用随机数存储部,用于保存为了生成认证梯形图而在工程环境侧生成并发送来的随机数;
串行ID存储部,保存用于对PLC进行个体识别的串行ID;控制程序写入处理部,接受来自所述访问要求接收处理部的控制程序的写入要求来进行控制程序的写入;
散列值生成处理部,在所述安全设定部的安全功能被设定为有效的情况下,根据保存在所述认证梯形图生成用随机数存储部中的随机数与保存在所述串行ID存储部中的串行ID,使用与工程环境侧的所述认证处理部相同的算法,生成认证信息;
认证梯形图自动生成处理部,在向PLC写入控制程序时,根据由所述散列值生成处理部生成的散列值,自动生成认证梯形图;
认证梯形图插入处理部,将由所述认证梯形图自动生成处理部生成的认证梯形图插入到从工程环境发送来的控制程序中;
执行用控制程序存储部,在所述安全设定部的安全功能被设定为无效的情况下,原样地保存从工程环境发送来的控制程序,或者在安全功能被设定为有效的情况下,保存由所述认证梯形图插入处理部插入了认证梯形图的控制程序;
控制程序执行控制部,在PLC为执行模式的情况下,执行保存在所述执行用控制程序存储部中的控制程序;
专用设备设定部,在接通PLC的电源时,通过搭载于PLC中的固件所执行的初始化处理,基于根据认证梯形图生成用随机数与串行ID由所述认证处理部生成的散列值,来进行PLC内的专用设备的设定。
实施方式2.
在本实施方式中,说明考虑在工程环境中制作出的控制程序的规模、性能方面的影响来调整由认证梯形图自动生成处理部13自动生成的认证梯形图的数量的功能。
图6是考虑控制程序的规模、对性能方面的影响来调整自动插入的认证梯形图的数量的FA设备控制程序的非法利用防止系统的功能结构。
工程环境侧PC100的内部结构与图1的结构相同,所以省略说明。
在PLC200中,在本实施方式中,追加了执行制约时间存储部18、认证梯形图性能确认部19、以及认证梯形图插入判断部20。
这些以外的要素与图1所示的要素相同。
执行制约时间存储部18保存执行由用户设定的控制程序时的制约时间。
即,执行制约时间存储部18存储合成了控制程序与认证梯形图后的程序(合成程序)的执行所需时间的容许范围,作为制约时间(容许时间)。
执行制约时间存储部18是容许时间存储部的例子。
认证梯形图性能确认部19计算出保存在执行制约时间存储部18中的制约时间与控制程序的执行时间之差,确认可以插入认证梯形图的空闲时间。
即,认证梯形图性能确认部19预测控制程序的执行时间,计算出所预测出的控制程序的执行时间(预测所需时间)与制约时间之差,作为空闲时间。
认证梯形图性能确认部19是所需时间预测部的例子。
认证梯形图插入判断部20根据从工程环境侧PC100向PLC200进行了写入要求的控制程序的规模(例如步骤数)、或者由认证梯形图性能确认部19计算出的空闲时间,判断插入的认证梯形图的数量。
即,认证梯形图插入判断部20根据由认证梯形图性能确认部19计算出的空闲时间(控制程序的执行时间与制约时间之差),来决定包含在认证梯形图中的设备编号的个数。
在该情况下,认证梯形图自动生成处理部13选择与由认证梯形图插入判断部20决定出的个数相应的认证用设备编号来生成认证梯形图。
另外,认证梯形图插入判断部20判断控制程序的程序大小是否为规定大小以上,如果控制程序的程序大小小于规定大小,则使认证梯形图自动生成处理部13保留认证梯形图的生成,如果控制程序的程序大小是规定大小以上,则对认证梯形图自动生成处理部13指示认证梯形图的生成。
认证梯形图插入判断部20是个数决定部以及程序大小判断部的例子。
接下来,说明在将控制程序写入到PLC200的处理中,考虑控制程序的规模、对性能方面的影响来判断插入的认证梯形图的数量时的动作。
在工程环境侧PC100,由用户设定保存在执行制约时间存储部18中的制约时间,与控制程序的写入同样地,从工程环境侧PC100通过参数的写入要求而保存在执行制约时间存储部18中。
该制约时间是指,控制程序的执行必须在用户指定的时间以内完成的时间,例如是,控制程序的执行必须在将控制程序的执行类型设为恒定周期的情况等下指定的周期内完成的时间。
控制程序写入处理部12如果接收到控制程序的写入要求,则对认证梯形图性能确认部19通知控制程序的写入要求。
认证梯形图性能确认部19抽出保存在执行制约时间存储部18中的制约时间,并且根据控制程序中的命令数来计算出预计执行时间,确认与从执行制约时间存储部18抽出的制约时间的差。
由于对控制程序的各种命令决定了执行时间(目标),所以认证梯形图性能确认部19可以计算出预计执行时间。
认证梯形图性能确认部19通过该制约时间与预计执行时间之差来确认可以插入认证梯形图的空闲时间,将该空闲时间传给认证梯形图插入判断部20。
认证梯形图插入判断部20确认接受到写入要求的控制程序的规模,如果规模小的情况下,中止认证梯形图的插入(使认证梯形图自动生成处理部13保留认证梯形图的生成),将插入认证梯形图之前的状态的控制程序保存在执行用控制程序存储部15中。
例如为了防止如下情况:具有恶意的用户实施假的控制程序的写入要求,在工程环境侧读取插入了认证梯形图的控制程序,从而容易地解析出插入到控制程序中的认证梯形图的生成方法等。
作为中止认证梯形图的插入的基准,例如,考虑如下方法:由于在生成认证梯形图时用1个字节划分了认证信息,所以在控制程序的步骤数是256步骤以下的情况下,中止对控制程序插入认证梯形图。
在充分的规模的控制程序的情况下,认证梯形图插入判断部20根据由认证梯形图性能确认部19计算出的空闲时间来判断可以插入的认证梯形图的数量。
另外,在控制程序的规模大的情况下,控制程序的插入位置会集中到前半部分(直到255步骤),所以为了将认证梯形图插入到控制程序的整体中,认证梯形图插入判断部20根据控制程序的规模来决定步骤数的计算方法。
例如,在实施方式1中,将用1个字节划分认证信息而得到的值视为步骤数,但考虑如下方法:将根据控制程序的规模用2个字节、3个字节划分认证信息而得到的值视为步骤数。
如上所述,认证梯形图插入判断部20在将图4(b)例示出的认证梯形图插入到控制程序中时,在按照规定的插入位置决定算法(例如,在实施方式1中示出的用1个字节单位划分认证信息的算法)决定的插入位置集中于控制程序的特定部分的情况下,按照该插入位置决定算法以外的、使认证梯形图的插入位置在控制程序内进一步分散的算法(例如,用2个字节单位、3个字节单位来划分认证信息的算法)来决定插入位置。
另外,认证梯形图插入判断部20将可以插入到控制程序中的认证梯形图的数量与插入认证梯形图的步骤数的计算算法,通知给认证梯形图自动生成处理部13。
认证梯形图自动生成处理部13按照从认证梯形图插入判断部20指示的算法,生成与从认证梯形图插入判断部20指示的个数相应的设备编号的认证梯形图。
另外,由认证梯形图自动生成处理部13生成认证梯形图的步骤本身与实施方式1相同。
如上所述,根据本实施方式,通过考虑执行控制程序时的对性能方面的影响来调整插入认证梯形图的数量,由此可以在不妨碍控制程序的实际动作的情况下防止控制程序的非法利用。
另外,通过根据控制程序的规模来变更插入认证梯形图的位置,由此可以使具有恶意的用户难以解析,可以在执行中的控制程序的宽的范围内检测出非法利用。
以上,在本实施方式中,说明了一种FA设备控制程序的非法利用防止系统,该FA设备控制程序的非法利用防止系统设置有:
执行制约时间存储部,为了在由认证梯形图自动生成处理部生成认证梯形图时考虑对性能方面的影响,保存由用户设定的控制程序的执行时间的制约时间;
认证梯形图性能确认部,计算出保存在所述执行制约时间存储部中的制约时间与用户制作出的控制程序的执行时间之差,确认可以插入认证梯形图的空闲时间;以及
认证梯形图插入判断部,在自动生成认证梯形图时,根据控制程序的规模与由所述认证梯形图性能确认部计算出的空闲时间,来判断插入的认证梯形图的数量。
实施方式3.
在本实施方式中,说明如下功能:为了使用户看不到从PLC读出的控制程序中所插入的认证梯形图而对认证梯形图进行过滤,并且与根据认证信息计算出的步骤数对应地对用户编辑后的控制程序调整认证梯形图的插入位置。
图7示出本实施方式的非法利用防止系统的功能结构。
图7所示的非法利用防止系统为了使用户看不到插入在控制程序中的认证梯形图而对认证梯形图进行过滤处理,在控制程序的编辑之后调整认证梯形图的插入位置。
在工程环境侧PC100中,追加了控制程序读出要求部21、认证梯形图过滤处理部22、认证梯形图插入位置调整处理部23以及显示部30。
其他要素与图1所示的要素相同。
另外,在本实施方式中,访问要求发送处理部4从PLC200输入插入了认证梯形图的控制程序(合成程序)。
在本实施方式中,访问要求发送处理部4是程序输入部的例子。
另外,与实施方式1同样地,不许可控制程序在PLC200以外中使用。
另外,认证梯形图与实施方式1示出的认证梯形图相同。
另外,认证梯形图生成用随机数存储部8a存储有实施方式1中说明的认证梯形图生成用随机数,是随机数存储部的例子。
另外,串行ID存储部9a存储有实施方式1中说明的PLC200的串行ID,是固有识别信息存储部的例子。
控制程序读出要求部21接受来自用户的控制程序的读出指示,对访问要求发送处理部4要求控制程序的读出。
认证梯形图过滤处理部22根据由认证处理部10a生成的认证信息,确定从PLC200读出的控制程序内的认证梯形图的插入位置,并为了在通过控制程序制作部2将控制程序显示于显示部30上时使用户看不到认证梯形图,进行控制程序的过滤(非显示设定)。
即,认证梯形图过滤处理部22根据针对认证梯形图生成用随机数存储部8a的随机数与串行ID存储部9a的串行ID的散列值即认证信息,按照与PLC200的认证梯形图的插入位置决定算法相同的算法,判别各个认证梯形图的位置,对各个认证梯形图进行非显示设定。
认证梯形图过滤处理部22是非显示设定部的例子。
显示部30根据由认证梯形图过滤处理部22进行的非显示设定,不显示认证梯形图,而仅显示控制程序。
认证梯形图插入位置调整处理部23在由控制程序制作部2进行了控制程序的编辑后进行调整,以将根据认证信息计算出的认证梯形图的插入位置(步骤数)插入到原来的步骤数的位置。
即,认证梯形图插入位置调整处理部23在编辑控制程序而更新了控制程序的结果,某认证梯形图的配置发生了变动的情况下,使该认证梯形图的位置返回到变动前的位置。
例如,在图4(b)的例子中,在用户编辑了控制程序的结果,位于第234步骤的A234偏移到1个之后的第235步骤的位置的情况下,认证梯形图插入位置调整处理部23使A234返回到原来的第234步骤的位置(设为X50之前的位置)。
认证梯形图插入位置调整处理部23是位置调整部的例子。
在PLC200中,追加了控制程序读出处理部24。
控制程序读出处理部24从执行用控制程序存储部15读出控制程序(合成程序)。
另外,在本实施方式中,访问要求接收处理部11将由控制程序读出处理部24读出的控制程序输出到工程环境侧PC100。
在本实施方式中,访问要求接收处理部11以及控制程序读出处理部24相当于程序输出部。
另外,在图7中,在PLC200中省略了与本实施方式的动作没有直接关系的要素的图示。
但是,在PLC200中,包括控制程序写入处理部12、认证梯形图自动生成处理部13、认证梯形图插入处理部14、控制程序执行控制部16、以及专用设备设定部17等在实施方式1以及实施方式2中说明的要素。
接下来,说明在安全设定部6a的安全设定为有效的情况下,在发出了控制程序的读出要求的情况下执行的认证。
如果控制程序读出要求部21从输入部1接受到保存在PLC200中的控制程序的读出要求,则确认安全设定部6a的安全设定,在安全设定是有效的情况下,为了在与PLC200之间实施询问&响应认证,对认证处理部10a要求询问值(随机数)的生成。
认证处理部10a对随机数生成处理部7要求随机数的生成,将接收到的随机数返回给控制程序读出要求部21。
控制程序读出要求部21对访问要求发送处理部4进行要求,以在与PLC200之间进行询问&响应认证。
访问要求发送处理部4对访问要求接收处理部发送认证要求与询问值(随机数)。
接收到认证要求的访问要求接收处理部11对认证处理部10b发送所接收到的询问值来指示响应值的生成。
认证处理部10a接受响应值的生成要求,将保存在认证梯形图生成用随机数存储部8b中的随机数与保存在串行ID存储部9b中的串行ID、以及作为询问值接收到的随机数作为输入,通过散列函数生成响应值(散列值),将所生成的响应值返回给访问要求接收处理部11。
访问要求接收处理部11将所接收到的响应值返回给访问要求发送处理部4,接收到响应值的访问要求发送处理部4将响应值返回给控制程序读出要求部21。
控制程序读出要求部21对认证处理部10a发送所接收到的响应值,认证处理部10a使用与PLC200相同的算法,将保存在认证梯形图生成用随机数存储部8a中的随机数与保存在串行ID存储部9a中的串行ID以及刚才生成的询问值作为输入,通过散列函数生成散列值,并与响应值进行比较,将比较结果通知给控制程序读出要求部。
控制程序读出要求部21在比较结果为不一致的情况下,中止控制程序的读出处理,对用户通知无法从PLC读出控制程序。
在比较结果为一致的情况下,控制程序读出要求部21对访问要求发送处理部4指示控制程序的读出要求。
访问要求接收处理部11如果接收到控制程序的读出要求,则对控制程序读出处理部24指示控制程序的读出。
控制程序读出处理部24从执行用控制程序存储部15读出控制程序,并返回给访问要求接收处理部11。
控制程序读出要求部21将从PLC200读出的控制程序保存在控制程序存储部3中。
如上所述,在安全设定为有效的情况下,使用控制程序与PLC的关联信息来进行认证,并进行如下控制以在不具有相同的关联信息的项目与PLC之间无法进行控制程序的写入或读出处理。
这是为了防止容易地向外部读出保存在PLC中的控制程序而制作出非法拷贝。
另外,在本实施方式中,在控制程序的读出时实施了认证处理,但在实施控制程序的写入处理的情况下也同样地进行认证处理。
另外,在本实施方式中,仅从工程环境侧进行了认证要求,但在PLC200侧有针对执行用控制程序存储部15的访问要求的情况下,也可以向工程环境侧PC100侧要求认证。
接下来,说明为了使用户看不到从PLC读出的控制程序中所插入的认证梯形图而进行过滤的处理。
在用户使用输入部1来发出了保存于控制程序存储部3中的控制程序的显示/编辑指示时,认证梯形图过滤处理部22获取由认证处理部10a生成的认证信息,根据所获取的认证信息,确认由认证梯形图插入处理部14插入到控制程序中的认证梯形图的插入位置(根据认证信息计算出步骤数而掌握认证梯形图的插入位置)。
认证梯形图过滤处理部22从控制程序存储部3中读出控制程序,对设定成仅执行1次的认证梯形图(图4(a)例示出的认证梯形图)与位于上述计算出的步骤数的认证梯形图(插入在控制程序中的特定的步骤数中的认证梯形图:图4(b)例示出的认证梯形图),进行非显示设定。
控制程序制作部2在显示从认证梯形图过滤处理部22接收到的控制程序时,确认被非显示设定的部位,进行不显示被非显示设定的部位的认证梯形图的控制并输出到显示部30,显示部30不显示认证梯形图而仅显示控制程序。
另外,认证梯形图插入位置调整处理部23对由控制程序制作部2编辑后的控制程序,根据由认证处理部10a生成的认证信息,使通过由用户进行的命令的补充或删除而生成的认证梯形图插入位置(步骤数)返回到原来的位置后,将控制程序保存到控制程序存储部3中。
如上所述,根据本实施方式,通过使用户看不到认证梯形图,由此可以防止正规用户错误地删除或者变更认证梯形图,使具有恶意的用户难以解析出控制程序的非法利用防止方法,从而可以防止控制程序的非法利用。
以上,在本实施方式中,说明了一种FA设备控制程序的非法利用防止系统,该FA设备控制程序的非法利用防止系统设置有:
控制程序读出要求部,从工程环境接受保存在PLC的执行用控制程序存储部中的控制程序的读出要求,向访问要求发送处理部发出控制程序的读出指示,并将读出的控制程序保存在控制程序存储部中;
认证梯形图过滤处理部,为了在用户对插入了认证梯形图的控制程序进行显示/编辑的情况下使用户看不到认证梯形图,进行过滤;
认证梯形图插入位置调整处理部,在用户通过控制程序制作部编辑了控制程序的情况下,进行使与认证信息对应地插入的认证梯形图返回到原来的位置的处理;以及
控制程序读出处理部,进行从执行用控制程序存储部中读出控制程序的处理。
实施方式4.
在本实施方式中,说明如下功能:对从PLC读出的控制程序,为了使用户不清楚专用设备的存在而将由认证梯形图插入处理部14插入的认证梯形图的专用设备置换为已有设备。
图8示出本实施方式的非法利用防止系统的功能结构。
在图8的非法利用防止系统中,将插入到控制程序中的认证梯形图的专用设备的编号按照预先设定在变换表中的变换规则置换为已有设备的编号。
工程环境侧PC100的构成要素分别与实施方式1~3中说明的构成要素相同,所以省略说明。
在PLC200中,在图7的结构中追加了认证梯形图变换表存储部25以及认证梯形图变换处理部26。
另外,在图8中,也在PLC200中省略了与本实施方式的动作没有直接关系的要素的图示。
但是,在PLC200中,包括控制程序写入处理部12、认证梯形图自动生成处理部13、认证梯形图插入处理部14、控制程序执行控制部16、以及专用设备设定部17等在实施方式1以及实施方式2中说明的要素。
认证梯形图变换表存储部25保存有在从工程环境侧PC100有控制程序的读出要求的情况下,将插入于控制程序中的认证梯形图的专用设备编号变换为已有设备的编号时所利用的变换表。
认证梯形图变换处理部26进行如下处理:使用保存在认证梯形图变换表存储部25中的变换表,将专用设备编号置换为已有设备编号的处理。
如上所述,专用设备的设备编号的编号体系与对象设备的设备编号的编号体系不同(在实施方式1的例子中,专用设备编号以“A”开始,对象设备编号以“X”、“Y”、以及“E”开始)。
因此,认证梯形图变换处理部26在从工程环境侧PC100有保存于执行用控制程序存储部15中的控制程序(合成程序)的输出指示的情况下,将认证梯形图的专用设备编号变更为与对象设备编号相同的编号体系(使专用设备编号例如以“X”开始)。
认证梯形图变换处理部26是设备编号变更部的例子。
另外,在本实施方式中,访问要求接收处理部11(程序输出部)将包含由认证梯形图变换处理部26变更后的专用设备编号的控制程序(合成程序)输出到工程环境侧PC100。
接下来,说明在安全设定为有效的情况下实施了控制程序的读出时将认证梯形图的专用设备编号置换为已有设备编号的处理。
如果控制程序读出处理部24从工程环境侧PC100接受到控制程序的读出要求,则控制程序读出处理部24确认安全设定部6b的安全设定,在安全设定是有效的情况下,委托认证梯形图变换处理部26将从执行用控制程序存储部15读出的控制程序中所插入的认证梯形图的专用设备置换为已有设备。
接受到将专用设备变换为已有设备的变换要求的认证梯形图变换处理部26根据设定在认证梯形图变换表存储部25中的变换表,将通过认证梯形图使用的专用设备置换为已有设备(X设备、Y设备)。
例如,专用设备A234变换为已有设备X234。
在变换为已有设备时,无需一定变换为X设备,而只要是已有设备即可。
另外,对于设备编号也无需使其与专用设备相同,只要是可以在所置换的已有设备中使用的设备编号即可。
另外,在读取了将专用设备置换为已有设备的控制程序的工程环境侧中,由于如实施方式3的记载那样,对认证梯形图实施过滤而使用户看不到认证梯形图,所以不需要变换表。
如上所述,根据本实施方式,通过将在工程环境侧读出的控制程序中所插入的认证梯形图的专用设备置换为已有设备,由此,例如在具有恶意的用户使用二进制编辑器或用于解析代码的工具打开了所读出的控制程序时,可以使得不会容易地知道使用了在以往的控制程序中没有使用的设备,可以使得难以解析出认证处理的构造。
即,根据实施方式3,由于对认证梯形图进行非显示,所以不会显示专用设备编号,但在使用了上述那样的工具时,即使设定为非显示,也有专用设备编号的存在变得清楚的情况。在本实施方式中,即使在使用了这样的工具的情况下,由于专用设备编号的编号体系成为与通常的设备编号相同的编号体系,所以可以避免识别出专用设备编号。
以上,在本实施方式中,说明了一种FA设备控制程序的非法利用防止系统,该FA设备控制程序的非法利用防止系统设置有:
认证梯形图变换处理部,在要求了从工程环境读出控制程序时,接受来自控制程序读出处理部的指示,将认证梯形图的专用设备置换为已有设备;以及
认证梯形图变换表存储部,保存在由认证梯形图变换处理部将认证梯形图的专用设备置换为已有设备时利用的变换表。
实施方式5.
在本实施方式中,说明如下功能:每当从PLC进行了控制程序的读出时,使用设置在PLC中的计数器的值来再次生成认证信息,还再次生成认证梯形图而实施与已经插入在控制程序中的认证梯形图的替换后,发送到工程环境侧。
图9示出本实施方式的非法利用防止系统的功能结构。
在图9的非法利用防止系统中,每当从PLC200进行了控制程序的读出时,根据使用设置在PLC200中的计数器的值来再次生成的认证信息,进行认证梯形图的再次生成,进行与插入到控制程序中的认证梯形图的替换。
在图9中,在工程环境侧PC100中,追加了操作历史存储部27。
操作历史存储部27保存在工程环境侧PC100上用户执行的功能名、或执行了时的时间戳以及错误信息等操作内容。
操作历史存储部27是输入次数计数部的例子。
另外,操作历史存储部27以外的工程环境侧PC100的构成要素与实施方式1~3中说明的要素相同,所以省略说明。
另外,根据附图上的空间问题而省略了显示部30的图示,但在图9的工程环境侧PC100中存在显示部30。
在PLC200中,追加了认证梯形图删除处理部28以及计数器处理部29。
认证梯形图删除处理部28删除插入在控制程序中的认证梯形图。
更具体而言,访问要求接收处理部11(程序输出部)在从作为外部装置的工程环境侧PC100指示了插入了认证梯形图的控制程序(合成程序)的输出指示的情况下,将控制程序(合成程序)输出到工程环境侧PC100,但每当输出到工程环境侧PC100时,从控制程序(合成程序)中删除认证梯形图。
认证梯形图删除处理部28是删除处理部的例子。
计数器处理部29每当接受到来自工程环境的控制程序的读出要求时,使设置在PLC200内的计数器的值递增计数,并存储递增计数后的值。
即,每当由访问要求接收处理部11向工程环境侧PC100输出控制程序(合成程序)时,对输出次数进行计数。
计数器处理部29是输出次数计数部。
然后,在本实施方式中,认证梯形图自动生成处理部13(认证程序生成部)每当由访问要求接收处理部11向工程环境侧PC100输出控制程序(合成程序)时,根据串行ID存储部9b的串行ID、计数器处理部29的计数值、以及认证梯形图生成用随机数存储部8b的随机数,新选择专用设备的设备编号,生成包含新的专用设备编号的新的认证梯形图,针对所生成的每个新的认证梯形图,决定由认证梯形图删除处理部28进行了删除处理后的控制程序内的新的插入位置。
然后,认证梯形图插入处理部14(程序合成部)在由认证梯形图自动生成处理部13决定出的新的插入位置,将新的认证梯形图分别插入到控制程序中而形成新的合成程序。
另外,在图9中,在PLC200中省略了与本实施方式的动作没有直接关系的要素的图示。
但是,在PLC200中,包括控制程序写入处理部12、控制程序执行控制部16、以及专用设备设定部17等在实施方式1~3中说明的要素。
接下来,说明本实施方式的动作。
首先,说明PLC200侧的动作。
在实施方式1中,在向PLC初次写入控制程序时,将在工程环境侧PC100生成的随机数与PLC200的串行ID这2个信息作为输入而通过散列函数生成了认证信息。
在本实施方式中,除了上述2个信息以外,还使用计数器处理部29的计数器的值来生成认证信息,并根据所生成的认证信息来进行认证梯形图的生成。
计数器处理部29的计数器每当从工程环境侧PC100接受到控制程序的读出要求时进行递增计数。
对于该计数器的值,在控制程序的初次写入时,设定初始值0,在初次写入时生成认证信息时的计数器的值使用0。
之后,如果接收到来自工程环境侧PC100的控制程序的读出要求,则认证梯形图自动生成处理部13对计数器处理部29指示递增计数,计数器处理部29根据该指示将计数器的值递增计数1。
接受到来自工程环境侧PC100的控制程序的读出要求的控制程序读出处理部24对认证梯形图自动生成处理部13指示认证梯形图的再次生成。
认证梯形图自动生成处理部13接受认证梯形图的再次生成要求,对认证处理部10b指示认证信息的生成。
在认证处理部10b中,对保存在认证梯形图生成用随机数存储部8b中的随机数、保存在串行ID存储部9b中的串行ID、以及保存在计数器处理部29中的计数器值进行散列运算而生成认证信息,并返回给认证梯形图自动生成处理部13。
认证梯形图自动生成处理部13将所接收到的认证信息与控制程序传给认证梯形图删除处理部28。
认证梯形图删除处理部28根据所接收到的认证信息,确定当前插入在控制程序内的认证梯形图的插入位置而删除认证梯形图,将删除了认证梯形图的控制程序返回给认证梯形图自动生成处理部13。
认证梯形图自动生成处理部13对计数器处理部29输出计数器递增的指示,计数器处理部29对计数器的值进行递增计数并保持。
认证梯形图自动生成处理部13再次对认证处理部10b要求认证信息的生成,认证处理部10b使用递增计数后的计数器的值来进行认证信息的再次生成,将再次生成的认证信息返回给认证梯形图自动生成处理部13。
认证梯形图自动生成处理部13根据再次生成的认证信息自动生成认证梯形图(确定各认证梯形图的插入位置),将所生成的认证梯形图和由认证梯形图删除处理部28删除了认证梯形图的控制程序传给认证梯形图插入处理部14。
然后,认证梯形图自动生成处理部13指示向控制程序再次插入所再次生成的认证梯形图,通过认证梯形图插入处理部14再次插入认证梯形图。
控制程序读出处理部24将再次插入了认证梯形图的控制程序经由访问要求接收处理部11发送到工程环境。
接下来,说明工程环境侧PC100侧中的动作。
接收到控制程序的控制程序读出要求部21保存到控制程序存储部3中。
在用户使用输入部1指示了保存于控制程序存储部3中的控制程序的显示/编辑时,认证梯形图过滤处理部22对认证处理部10a委托认证信息的生成。
认证处理部10a接受认证信息的生成要求,根据保存在操作历史存储部27中的操作历史,计算出执行了从PLC200读出控制程序的读出处理的次数(仅读出成功的情况的次数)。
接下来,认证处理部10a根据所计算出的值(该值与在PLC的计数器处理部29中所保持的计数器的值相同)、保存在认证梯形图生成用随机数存储部8a中的随机数、以及保存在串行ID存储部9a中的串行ID,计算出认证信息,并返回给认证梯形图过滤处理部22。
在认证梯形图过滤处理部22中,根据所获取的认证信息,确认由认证梯形图插入处理部14插入到控制程序中的认证梯形图的插入位置(根据认证信息计算出步骤数来掌握认证梯形图的插入位置)。
认证梯形图过滤处理部22从控制程序存储部3中读出控制程序,对设定成仅执行1次的认证梯形图(图4(a)例示出的认证梯形图)与位于上述计算出的步骤数的认证梯形图(插入在控制程序中的特定的步骤数中的认证梯形图:图4(b)例示出的认证梯形图)进行非显示设定。
控制程序制作部2在显示从认证梯形图过滤处理部22接收到的控制程序时,确认被非显示设定的部位,进行不显示被非显示设定的部位的认证梯形图的控制并输出到显示部30,显示部30不显示认证梯形图而仅显示控制程序。
另外,认证梯形图插入位置调整处理部23(位置调整部)对由控制程序制作部2编辑后的控制程序,根据由认证处理部10a生成的认证信息,使通过由用户进行的命令的补充或删除而生成的认证梯形图插入位置(步骤数)返回到原来的位置后,将控制程序保存在控制程序存储部3中。
如上所述,在本实施方式中,每当接受到保存在执行用控制程序存储部15中的控制程序的读出要求时,使计数器递增计数,使用该计数器的值再次生成认证信息并根据该认证信息再次生成认证梯形图,与已经插入在控制程序中的认证梯形图进行替换。
通过这些处理,在工程环境侧PC100侧读取的控制程序每次都不同,所以可以使具有恶意的用户难以解析出认证处理。
进而,即使假设具有恶意的用户将控制程序拷贝到了其他PLC,由于使用针对每个PLC固有的计数器的值来生成认证信息,所以可以进一步防止控制程序的非法利用。
另外,通常,将控制程序写入到PLC来确认实际的动作,一边根据其结果在与工程环境之间反复写入/读出控制程序等,一边实施调整程序或参数设定的作业,所以认为计数器的值与其他PLC相同的可能性较低。
以上,在本实施方式中,说明了一种FA设备控制程序的非法利用防止系统,该FA设备控制程序的非法利用防止系统设置有:
操作历史存储部,保存用户在工程环境上执行了的功能的操作历史;
认证梯形图删除处理部,为了再次插入而临时从控制程序中删除插入在控制程序中的认证梯形图;以及
计数器处理部,每当接受到来自工程环境的控制程序的读出要求时,将计数器的值进行递增计数并保存递增计数后的值。

Claims (13)

1.一种控制装置,其特征在于,具有:
固有识别信息存储部,存储对所述控制装置唯一地设定的固有识别信息;
程序输入部,将梯形图程序作为主程序进行输入,该梯形图程序包含成为所述控制装置的控制处理的对象的对象设备的设备编号,不许可所述控制装置以外的装置使用;
认证程序生成部,根据所述固有识别信息,生成防止所述控制装置以外的装置使用主程序的梯形图程序,作为认证程序;
程序合成部,将主程序与认证程序进行合成而作为合成程序;以及
程序存储部,存储所述合成程序;
所述认证程序生成部,
将对对象设备的设备编号进行模拟的、为了认证而使用的多个认证用设备的设备编号作为认证用设备编号而进行管理,
根据所述固有识别信息,选择1个以上的认证用设备编号,
生成如下的包含所选择出的选择认证用设备编号的梯形图程序作为认证程序,即,在所述包含所选择出的选择认证用设备编号的梯形图程序与所述主程序被合成为所述合成程序而被执行时,如果与所述认证程序生成部的选择动作独立地根据所述固有识别信息被正确地选择出所述选择认证用设备编号并对与所述选择认证用设备编号对应的选择认证用设备分别进行了规定的设定处理,则所述包含所选择出的选择认证用设备编号的梯形图程序正常地动作,从而所述主程序正常地动作,在所述包含所选择出的选择认证用设备编号的梯形图程序与所述主程序被合成为所述合成程序而被执行时,在没有对所述选择认证用设备分别进行所述规定的设定处理的情况下,所述包含所选择出的选择认证用设备编号的梯形图程序不正常地动作,从而所述主程序的动作停止,
其中,所述规定的设定处理是使选择认证用设备从OFF状态成为ON状态的设定处理。
2.根据权利要求1所述的控制装置,其特征在于,
所述控制装置还具有:
设定处理部,将所述多个认证用设备与各个认证用设备编号对应起来进行管理,在执行存储于所述程序存储部中的合成程序时,与所述认证程序生成部的选择动作独立地根据所述固有识别信息选择1个以上的认证用设备编号,对与所选择出的选择认证用设备编号对应的选择认证用设备分别进行所述规定的设定处理;以及
程序执行部,在由所述设定处理部对所述选择认证用设备分别进行所述规定的设定处理之后,执行存储在所述程序存储部中的合成程序。
3.根据权利要求2所述的控制装置,其特征在于,
所述控制装置还具有:
随机数存储部,存储随机数;以及
单向运算部,在由所述认证程序生成部生成认证程序之前,对存储在所述随机数存储部中的随机数与存储在所述固有识别信息存储部中的固有识别信息进行单向运算,在由所述设定处理部进行所述规定的设定处理之前,对存储在所述随机数存储部中的随机数与存储在所述固有识别信息存储部中的固有识别信息进行单向运算,
所述认证程序生成部根据由所述单向运算部运算出的单向运算值,选择1个以上的认证用设备编号,生成包含所选择出的选择认证用设备编号的认证程序,
所述设定处理部根据由所述单向运算部运算出的单向运算值,选择1个以上的认证用设备编号,对与所选择出的选择认证用设备编号对应的选择认证用设备分别进行所述规定的设定处理。
4.根据权利要求1~3中的任意一项所述的控制装置,其特征在于,
所述认证程序生成部选择2个以上的认证用设备编号,生成开头认证程序和插入认证程序中的至少某一个,其中,该开头认证程序包含所有选择出的选择认证用设备编号,并配置在所述主程序的开头,该插入认证程序有2个以上,2个以上的插入认证程序分别包含选择认证用设备编号中的某一个,并插入在所述主程序内的多个插入位置中,
所述程序合成部将所述开头认证程序配置在所述主程序的开头,将所述2个以上的插入认证程序插入在所述主程序内的多个插入位置中。
5.根据权利要求1~3中的任意一项所述的控制装置,其特征在于,
所述控制装置还具有:
容许时间存储部,存储合成了主程序与认证程序的合成程序的执行所需时间的容许范围,作为容许时间;
所需时间预测部,对由所述程序输入部输入的主程序的执行所需时间进行预测;以及
个数决定部,根据由所述所需时间预测部预测出的预测所需时间与所述容许时间,决定包含在所述认证程序中的认证用设备编号的个数,
所述认证程序生成部选择与由所述个数决定部决定出的个数相应的认证用设备编号。
6.根据权利要求1~3中的任意一项所述的控制装置,其特征在于,
所述控制装置还具有程序大小判断部,该程序大小判断部判断由所述程序输入部输入的主程序的程序大小是否为规定大小以上,如果所述主程序的程序大小小于所述规定大小,则使所述认证程序生成部保留认证程序的生成,如果所述主程序的程序大小是所述规定大小以上,则对所述认证程序生成部指示认证程序的生成。
7.根据权利要求6所述的控制装置,其特征在于,
所述认证程序生成部选择2个以上的认证用设备编号,生成分别包含选择认证用设备编号中的某一个的2个以上的插入认证程序,按照决定插入认证程序在所述主程序内的插入位置的插入位置决定算法,针对每个插入认证程序决定所述主程序内的插入位置,
所述程序合成部在由所述认证程序生成部决定出的插入位置,将插入认证程序分别插入到所述主程序,
所述程序大小判断部在由所述认证程序生成部生成插入认证程序之前,根据所述主程序的程序大小,判断按照所述插入位置决定算法决定的插入认证程序的插入位置是否集中于所述主程序的特定部分,在插入认证程序的插入位置集中于所述主程序的特定部分的情况下,对所述认证程序生成部进行指示,以按照所述插入位置决定算法以外的、能得到比基于所述插入位置决定算法决定的插入位置更分散的插入位置的算法来决定插入认证程序的插入位置。
8.根据权利要求1~3、7中的任意一项所述的控制装置,其特征在于,
所述认证程序生成部生成包含编号体系与所述对象设备不同的认证用设备编号的认证用程序,
所述控制装置还具有:
设备编号变更部,在从外部装置发出了存储于所述程序存储部中的合成程序的输出指示的情况下,将所述合成程序中的认证程序中所包含的选择认证用设备编号变更为与所述对象设备的设备编号相同的编号体系的设备编号;以及
程序输出部,将在认证程序中包含由所述设备编号变更部变更后的设备编号的合成程序输出到所述外部装置。
9.根据权利要求1~3、7中的任意一项所述的控制装置,其特征在于,
所述认证程序生成部选择2个以上的认证用设备编号,生成分别包含选择认证用设备编号中的某一个的2个以上的插入认证程序,针对每个插入认证程序,决定所述主程序内的插入位置,
所述程序合成部在由所述认证程序生成部决定出的插入位置,将插入认证程序分别插入到主程序而作为合成程序,
所述控制装置还具有:
程序输出部,在从外部装置发出了所述合成程序的输出指示的情况下,将所述合成程序输出到所述外部装置;
删除处理部,每当由所述程序输出部将所述合成程序输出到所述外部装置时,从所述合成程序中删除所述2个以上的插入认证程序;以及
输出次数计数部,每当由所述程序输出部将所述合成程序输出到所述外部装置时,对输出次数进行计数,
每当由所述程序输出部将所述合成程序输出到所述外部装置时,所述认证程序生成部根据所述固有识别信息与所述输出次数计数部的计数值,新选择2个以上的认证用设备编号,生成分别包含新的选择认证用设备编号中的某一个的2个以上的新的插入认证程序,针对所生成的每个新的插入认证程序,决定由所述删除处理部进行了删除处理后的主程序内的新的插入位置,
所述程序合成部在由所述认证程序生成部决定出的新的插入位置,将新的插入认证程序分别插入到所述主程序而作为新的合成程序。
10.一种管理装置,对权利要求1~9中任一项所述的控制装置进行管理,其特征在于,具有:
程序输入部,从所述控制装置输入合成了主程序和认证程序的合成程序,该主程序不许可所述控制装置以外的装置使用、且在所述控制装置中的控制中使用,该认证程序为了防止所述控制装置以外的装置使用主程序而在所述控制装置中生成;
非显示设定部,从所述合成程序中抽出所述认证程序,对所述认证程序进行非显示设定;以及
显示部,根据由所述非显示设定部进行的非显示设定,不显示所述认证程序,而仅显示所述主程序。
11.根据权利要求10所述的管理装置,其特征在于,
所述管理装置还具有:
固有识别信息存储部,存储对所述控制装置唯一地设定的固有识别信息;以及
随机数存储部,存储随机数,
所述程序输入部输入合成程序,在该合成程序中,多个认证程序分别配置在所述主程序内的规定位置,在按照决定认证程序在所述主程序内的配置位置的决定算法使用所述固有识别信息与所述随机数在所述控制装置中针对每个认证程序决定出的位置配置有各个认证程序,
所述非显示设定部按照与所述控制装置相同的决定算法,使用所述固有识别信息存储部的所述固有识别信息与所述随机数存储部的所述随机数,判别各个认证程序的位置,对各个认证程序进行非显示设定。
12.根据权利要求10所述的管理装置,其特征在于,
所述管理装置还具有:
固有识别信息存储部,存储对所述控制装置唯一地设定的固有识别信息;
随机数存储部,存储随机数;以及
输入次数计数部,每当从所述控制装置输入了所述合成程序时,对输入次数进行计数,
所述程序输入部输入合成程序,在该合成程序中,多个认证程序分别配置在所述主程序内的规定位置,在按照决定认证程序在所述主程序内的配置位置的决定算法使用所述固有识别信息、所述随机数、以及从所述控制装置向所述管理装置输出合成程序的输出次数在所述控制装置中针对每个认证程序决定出的位置配置有各个认证程序,
所述非显示设定部按照与所述控制装置相同的决定算法,使用所述固有识别信息存储部的所述固有识别信息、所述随机数存储部的所述随机数、以及由所述输入次数计数部计数的计数值,判别各个认证程序的位置,对各个认证程序进行非显示设定。
13.根据权利要求11或12所述的管理装置,其特征在于,
所述管理装置还具有位置调整部,该位置调整部在所述管理装置中更新了所述合成程序的结果,某一个认证程序的配置发生了变动的情况下,使该认证程序的位置返回到变动前的位置。
CN201010237224.6A 2010-02-12 2010-07-22 控制装置以及管理装置 Expired - Fee Related CN102156840B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-028793 2010-02-12
JP2010028793A JP5404463B2 (ja) 2010-02-12 2010-02-12 制御装置及び管理装置

Publications (2)

Publication Number Publication Date
CN102156840A CN102156840A (zh) 2011-08-17
CN102156840B true CN102156840B (zh) 2014-09-17

Family

ID=44438332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010237224.6A Expired - Fee Related CN102156840B (zh) 2010-02-12 2010-07-22 控制装置以及管理装置

Country Status (4)

Country Link
JP (1) JP5404463B2 (zh)
KR (1) KR101252918B1 (zh)
CN (1) CN102156840B (zh)
TW (1) TWI435192B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5756412B2 (ja) * 2012-01-12 2015-07-29 株式会社日立製作所 監視方法および監視システム
JP5900143B2 (ja) * 2012-05-15 2016-04-06 富士電機株式会社 制御システム、制御装置及びプログラム実行制御方法
JP5377799B1 (ja) * 2012-07-26 2013-12-25 三菱電機株式会社 プログラマブルロジックコントローラ
WO2014080490A1 (ja) * 2012-11-22 2014-05-30 三菱電機株式会社 プログラム作成支援装置、方法および記録媒体
JP5836504B2 (ja) * 2012-12-20 2015-12-24 三菱電機株式会社 制御システム及びプログラム送信装置及び認証サーバ及びプログラム保護方法及びプログラム送信方法及びプログラム送信装置のプログラム
WO2014125639A1 (ja) * 2013-02-18 2014-08-21 三菱電機株式会社 制御プログラム管理装置及びコントローラ装置及び制御システム
JP6045986B2 (ja) * 2013-06-27 2016-12-14 富士電機株式会社 ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム
JP2015200971A (ja) * 2014-04-04 2015-11-12 富士電機株式会社 改竄検知機能を備えた制御システム
DE112014006740T5 (de) 2014-06-11 2017-05-11 Mitsubishi Electric Corporation Programmbearbeitungsvorrichtung, Programmverwaltungsvorrichtung, und Programmverwaltungsprogramm
KR101539253B1 (ko) * 2014-06-17 2015-07-28 주식회사 엔에스이 프로그램 품질 관리 기능이 구비된 피엘씨 장치
EP3380899B1 (en) * 2016-01-11 2020-11-04 Siemens Aktiengesellschaft Program randomization for cyber-attack resilient control in programmable logic controllers
JP6325630B2 (ja) * 2016-10-28 2018-05-16 ファナック株式会社 ラダーライブラリ管理装置
KR102052489B1 (ko) * 2017-06-23 2019-12-05 미쓰비시덴키 가부시키가이샤 래더 프로그램 부정 이용 방지 시스템, 래더 프로그램 부정 이용 방지 방법, 및 엔지니어링 툴
JP2019159752A (ja) * 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム
JP6836549B2 (ja) * 2018-05-31 2021-03-03 ファナック株式会社 ラダー表示装置
CN109756483B (zh) * 2018-12-12 2021-05-25 杭州华威信安科技有限公司 一种针对melsec协议的安全防护方法
JP7227015B2 (ja) * 2019-01-24 2023-02-21 ファナック株式会社 ラダープログラム編集システム、サーバ、端末装置、ラダープログラム編集方法及びプログラム
JP6766917B1 (ja) * 2019-04-25 2020-10-14 オムロン株式会社 制御システムおよび制御方法
US11703833B2 (en) 2020-02-14 2023-07-18 Mitsubishi Electric Corporation Program providing device, program providing method, and program providing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588256A (zh) * 2004-09-23 2005-03-02 艾默生网络能源有限公司 将梯形图程序转换为指令列表程序的方法及系统
CN101364098A (zh) * 2008-09-12 2009-02-11 南京航空航天大学 一种将梯形图转换为指令表程序及解释执行的方法与系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3729421B2 (ja) * 1994-03-18 2005-12-21 富士通株式会社 不正使用防止方法及び不正使用防止システム
JP3289521B2 (ja) * 1994-10-31 2002-06-10 健稔 岡本 ソフトウェア著作権保護の方法
JPH11194937A (ja) * 1997-12-26 1999-07-21 Orix Rentec Kk 電子計算機用プログラムの貸出制御システム
JP4203232B2 (ja) 2001-05-11 2008-12-24 株式会社エヌ・ティ・ティ・ドコモ 通信端末および通信制御プログラム
JP2003330564A (ja) * 2002-05-17 2003-11-21 Canon Inc 機器内機能使用制限方式
JP4497450B2 (ja) * 2003-12-10 2010-07-07 独立行政法人科学技術振興機構 プログラム認証システム
JP4607080B2 (ja) * 2005-09-27 2011-01-05 オムロン株式会社 プログラマブル・コントローラ・システム
JP2008293468A (ja) * 2007-04-26 2008-12-04 Oki Electric Ind Co Ltd マザーボードの製造方法
JP2009070144A (ja) * 2007-09-13 2009-04-02 Omron Corp Plcにおけるプログラミング方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588256A (zh) * 2004-09-23 2005-03-02 艾默生网络能源有限公司 将梯形图程序转换为指令列表程序的方法及系统
CN101364098A (zh) * 2008-09-12 2009-02-11 南京航空航天大学 一种将梯形图转换为指令表程序及解释执行的方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2005-173903A 2005.06.30

Also Published As

Publication number Publication date
TWI435192B (zh) 2014-04-21
CN102156840A (zh) 2011-08-17
TW201128334A (en) 2011-08-16
KR20110093561A (ko) 2011-08-18
JP2011165041A (ja) 2011-08-25
JP5404463B2 (ja) 2014-01-29
KR101252918B1 (ko) 2013-04-09

Similar Documents

Publication Publication Date Title
CN102156840B (zh) 控制装置以及管理装置
KR101598738B1 (ko) 제어 프로그램 관리 시스템, 및 제어 프로그램의 변경 방법
US12008144B2 (en) Method and apparatus for tamper-proof storage of information in respect of object-related measures
CN102841992B (zh) 用于基于计算机的当前组件生成用于受保护的数字数据对象的加密密钥的方法
CN109074563A (zh) 区块链系统内的基于代理的图灵完备交易集成反馈
CN103425909B (zh) 控制系统、控制装置及程序执行控制方法
JP4678884B2 (ja) 可搬記憶媒体管理システム
CN104240342A (zh) 一种门禁控制方法及门禁控制装置
CN105518687A (zh) 安全数据存储装置
CN111492355B (zh) 用于控制和/或监控装置的方法和控制系统
JP6457471B2 (ja) 操作者識別システム
JP2006350708A (ja) セキュリティ設計支援方法及び支援装置
US20220043434A1 (en) Method for Managing a Production Process
JP2016199842A (ja) 紡績機の装置機能の許可方法
CN105653932A (zh) 软件升级验证的方法和装置
US20220317649A1 (en) Control system, control device, and management method
CN113518951A (zh) 控制系统、控制方法以及控制设备
JP5226383B2 (ja) マイクロコンピュータの識別情報管理システム及び方法
Gamble et al. Security policy foundations in context UNITY
WO2022153566A1 (ja) 制御装置、管理方法およびセキュリティプログラム
US20220417253A1 (en) System and method for managing data of an automation field device in a secure manner against manipulation
EP3757763A1 (en) Method for creating a verifiable record of executed activities in a software development process and information processing apparatus
CN115688087A (zh) 一种设备验证方法、装置及电子设备
CN116910821A (zh) 数据读写方法、装置、设备及存储介质
CN117272341A (zh) linux下文件加密及防篡改方法、装置及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140917

Termination date: 20170722

CF01 Termination of patent right due to non-payment of annual fee