CN103425909B - 控制系统、控制装置及程序执行控制方法 - Google Patents

控制系统、控制装置及程序执行控制方法 Download PDF

Info

Publication number
CN103425909B
CN103425909B CN201310086098.2A CN201310086098A CN103425909B CN 103425909 B CN103425909 B CN 103425909B CN 201310086098 A CN201310086098 A CN 201310086098A CN 103425909 B CN103425909 B CN 103425909B
Authority
CN
China
Prior art keywords
license file
program
safety
execution
code
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.)
Active
Application number
CN201310086098.2A
Other languages
English (en)
Other versions
CN103425909A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Publication of CN103425909A publication Critical patent/CN103425909A/zh
Application granted granted Critical
Publication of CN103425909B publication Critical patent/CN103425909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明考虑到控制程序的运用和维修性的同时兼顾在PLC上运行的控制程序的安全性,从而防止控制程序的非法使用。在控制系统中,许可证文件颁发装置具有:标识符获取单元,从记录媒介获取该记录媒介的固有标识符;许可证文件生成单元,生成包含固有标识符和许可证文件的有效期限信息的许可证文件;控制装置具有:标识符获取单元,从存储有许可证文件的记录媒介获取该记录媒介的固有标识符;许可证文件认证单元,比较从许可证文件获取的固有标识符和通过标识符获取单元获取的固有标识符,且比较从许可证文件获取的有效期限信息和当前日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定对存储在第一存储器的用户程序具有执行权限。

Description

控制系统、控制装置及程序执行控制方法
技术领域
本发明涉及一种控制程序的执行的控制装置和控制系统,尤其涉及用于控制在可编程逻辑控制器(ProgrammableLogicController,PLC)上执行的PLC程序的执行的控制系统、控制装置以及控制方法。
背景技术
迄今为止,作为工厂自动化(FactoryAutomation,FA)等中的工业用通用计算机而使用了可编程逻辑控制器(ProgrammableLogicController:下面称为PLC)。当通过PLC对控制对象设备进行时序控制时,例如,用户将控制对象设备的传感器和开关等检测部连接于PLC的输入端子,将控制对象设备的电机等工作装置连接于PLC的输出端子。并且,PLC根据执行的控制程序,从输出端子输出对应于输入端子的输入信号的输出信号,由此对控制对象设备进行控制。
这里,关于防止非法使用在PLC上执行的程序的技术,广为所知的有例如专利文献1、2等。专利文献1、2中记载有使控制程序只能在特定的控制装置上运行,从而防止控制程序的非法利用的控制装置。
更具体地讲,专利文献1中记载的控制装置在控制程序中插入基于许可执行控制程序的特定的PLC的固有值(例如,序列号)的认证梯形图。并且,在使控制程序在特定的PLC上运行时,使用认证梯形图进行认证。控制装置只有在认证成功的情况下才许可该控制程序的执行,因此即使控制程序被流传出去,控制程序也无法在其他控制装置上运行。由此,可以防止程序的非法使用。
现有技术文献
专利文献
专利文献1:日本特开2011-165041号公报
专利文献2:日本特开2009-70144号公报
这里,当控制装置发生故障时,在修理发生故障的控制装置的期间会导致工厂停止生产活动,因此可能会采用由维修人员等暂时设置代替机,从而继续工厂的生产活动的方法。
然而,在专利文献1、2中记载的发明中,由于使用序列号等基于控制装置的固有值的认证信息进行认证,而且只有在认证成功的情况下才许可该控制程序的执行。因此,当控制装置发生故障时,无法在代替机上直接使用在发生故障的控制装置中所使用的控制程序。在这种情况下,存在如下问题:只能通过在控制程序中插入基于代替机的固定值(例如,序列号)的认证梯形图,以此再次制作新的代替机用控制程序(编码等),而且直至控制装置被修复为止,即工厂的生产活动重新开始为止会需要时间。
发明内容
本发明是为了解决这种问题而提出的,其主要的目的在于提供一种考虑控制程序的运用和维修性的同时兼顾在PLC上运行的控制程序的安全性而防止控制程序的非法使用的控制系统、控制装置以及程序执行控制方法。
为了解决上述问题,本发明采用如下方式以解决问题。
本发明的一个方式所提供的控制系统,包含许可证文件颁发装置、安全文件颁发装置、安全码注册装置、辅助加载器、控制装置,所述许可证文件颁发装置具有:标识符获取单元,从记录媒介获取该记录媒介的固有标识符;许可证文件生成单元,用于生成包含所述固有标识符和许可证文件的有效期限信息的许可证文件;所述安全文件颁发装置具有:安全文件生成单元,用于生成包含第一安全码的安全文件;所述安全码注册装置具有:码变换单元,根据预定的算法将从所述安全文件获取的所述第一安全码变换为第二安全码;安全信息注册单元,用于将包含所述第二安全码的安全信息注册到所述控制装置;所述辅助加载器具有:程序制作单元,用于制作包含所述第一安全码和预定的程序代码的用户程序;所述控制装置具有:第一存储器,用于存储所述用户程序;第二存储器,用于存储通过所述安全信息注册单元注册的包含所述第二安全码的安全信息;标识符获取单元,从存储有所述许可证文件的记录媒介获取该记录媒介的固有标识符;许可证文件认证单元,比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定为对存储在所述第一存储器的所述用户程序具有执行权限;执行许可单元,用于许可存储在所述第一存储器的所述用户程序的执行;程序执行单元,用于执行通过所述执行许可单元许可执行的所述用户程序;所述执行许可单元在所述许可证文件认证单元中判定为具有执行权限,并且所述第一存储器中存储的所述用户程序中包含所述预定的程序代码时,根据所述预定的算法变换所述用户程序中所包含的第一安全码,并将所变换的该安全码与从存储在所述第二存储器的安全信息获取的第二安全码进行比较,当两者一致时,许可所述用户程序的执行。
并且,本发明的一个实施方式的控制装置,包含:第一存储器,用于存储包含第一安全码和预定的程序代码的用户程序;第二存储器,用于存储安全信息,该安全信息包含通过安全码注册装置根据预定的算法对所述第一安全码进行变换和注册的第二安全码;标识符获取单元,从存储有包含记录媒介的固有标识符和许可证文件的有效期限信息的许可证文件的记录媒介获取该记录媒介的固有标识符,该记录媒介存储有通过许可证文件颁发装置颁发的许可证文件;许可证文件认证单元,比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定为对存储在所述第一存储器的所述用户程序具有执行权限;执行许可单元,用于许可存储在所述第一存储器的所述用户程序的执行;程序执行单元,用于执行通过所述执行许可单元许可执行的所述用户程序;所述执行许可单元在所述许可证文件认证单元中判定为具有执行权限,并且所述第一存储器中存储的所述用户程序中包含所述预定的程序代码时,根据所述预定的算法变换所述用户程序中所包含的第一安全码,并将所变换的该安全码与从存储在所述第二存储器的安全信息获取的第二安全码进行比较,当两者一致时,许可所述用户程序的执行。
并且,本发明的一个实施方式的程序执行控制方法,许可证文件颁发装置进行如下处理:从记录媒介获取该记录媒介的固有标识符;生成包含所述固有标识符和许可证文件的有效期限信息的许可证文件;安全码注册装置进行如下处理:制作安全信息并输入到控制装置,该安全信息包含根据预定的算法对第一安全码进行变换的第二安全码;辅助加载器进行如下处理:制作包含预定的程序代码和所述第一安全码的用户程序并输入到所述控制装置;所述控制装置进行如下处理:从存储有包含记录媒介的固有标识符和许可证文件的有效期限信息的许可证文件的记录媒介获取该记录媒介的固有标识符,该记录媒介存储有通过许可证文件颁发装置颁发的许可证文件;比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定为对存储在所述第一存储器的所述用户程序具有执行权限;所述用户程序中包含所述预定的程序代码时,根据所述预定的算法变换从所述辅助加载器输入的所述第一安全码,并以所变换的该安全码与所述第二安全码一致作为条件,许可所述用户程序的执行。
在此,将本发明的构成要素、表述或者构成要素的任意组合应用到装置、方法、计算机程序、记录媒介等的内容也属于本发明的一种方式而有效。
根据本发明的实施方式,可以提供考虑控制程序的运用和维修性的同时兼顾在PLC上运行的控制程序的安全性而防止控制程序的非法使用的控制系统、控制装置以及程序执行控制方法。
附图说明
图1表示本实施方式一的控制系统构成图(概略图)的一个例子。
图2是本实施方式一的控制系统构成图的功能构成例子。
图3表示本实施方式一的安全文件颁发装置的操作画面例子(其一)。
图4表示本实施方式一的安全文件颁发装置的操作画面例子(其二)。
图5表示本实施方式一的安全码注册装置的操作画面例子。
图6表示本实施方式一的辅助加载器的编程编译画面例子。
图7表示本实施方式一的信息处理一的流程的时序图。
图8表示本实施方式一的信息处理二的流程的时序图。
图9表示本实施方式一的程序执行部205的PLC程序执行控制处理的流程的流程图。
图10表示本实施方式一的SFB功能部206的安全码核对处理的流程的流程图。
图11是本应用例的控制系统构成图的功能构成例子。
图12表示“有效位置信息”的指定例子。
图13表示本应用例的SFB功能部206的安全码核对处理的流程的流程图。
图14表示本实施方式二的控制系统构成图(概略图)的一个例子。
图15表示本实施方式二的记录媒介的提供例子。
图16是本实施方式二的控制系统构成图的功能构成例子。
图17表示本实施方式二的许可证文件颁发装置的操作画面例子。
图18表示本实施方式二的许可证文件生成处理的流程的流程图。
图19表示本实施方式二的许可证文件生成处理的流程的图。
图20表示本实施方式二的许可证文件的一个例子。
图21表示本实施方式二的许可证文件认证处理的流程的流程图。
图22表示本实施方式二的许可证文件的篡改与否确认处理的流程的流程图。
图23表示本实施方式二的许可证文件的篡改与否确认处理的流程的图。
符号说明:
100为辅助加载器,101为程序制作部,102为存储器,200为PLC,201为安全信息注册接收部,202为安全存储器,203为工作时间测量部,204为程序存储器,205为程序执行部,206为SFB功能部,207为比较核对部,208为码变换部,209为通知部,210为用户ROM卡槽,211为位置信息获取部,212为许可认证部,212a为标识符获取部,212b为篡改确认部,212c为判定部,300为安全文件颁发装置,301为安全文件生成部,400为安全码注册装置,401为安全文件调入部,402为存储器,403为安全信息注册部,404为码变换部,500为许可证文件颁发装置,501为用户ROM卡槽,502为标识符获取部,503为许可证文件生成部,600为记录媒介。
具体实施方式
以下,参照附图举实施例来说明本发明的实施方式。
<实施方式一>
[系统构成]
图1表示本实施方式一的控制系统构成图(概略图)的一个例子。如图1所示,本实施方式1的控制系统包含辅助加载器100、PLC200、安全文件颁发装置300、安全码注册装置400。
辅助加载器100是用于辅助制作在PLC200主体中运行的PLC程序(控制程序)的计算机装置。因此,辅助加载器100具有用于制作PLC程序的编程编译器。通过编程编译器会在显示器上显示程序制作画面,因此用户可以在该画面上开发所期望的PLC程序。并且,用户开发的PLC程序从辅助加载器100下载到PLC200中。
PLC200是被用作工厂自动化(FA)的控制装置的可编程逻辑控制器(ProgrammableLogicController)。PLC200将来自输入模块的信号纳入到I/O(Input/Output)存储器,并基于预先记录在程序存储器201的PLC程序进行逻辑运算。并且,将其运算结果写入I/O存储器之后输出到输出模块,然后执行所谓的周边系统处理(加载处理、各种系统处理)。PLC200通过反复执行这些处理,对作为对象的控制设备进行控制。
安全文件颁发装置300是生成并输出安全文件(SecurityFile)的终端装置。该安全文件在安全码注册装置400将“安全码(SecurityCode)”注册到PLC200时使用。
安全码注册装置400是将包含“安全码”和“试用期限”的安全信息注册到PLC200的终端装置。即,安全码注册装置400从安全文件颁发装置300获取安全文件,并提取该安全文件中所包含的安全码而注册到PLC200。并且,安全码注册装置400除安全码之外,还将由用户输入的试用期限注册到PLC200。
上面是本实施方式一的控制系统构成例。在此,一般情况下,当PLC200处于运行状态时,辅助加载器100、安全文件颁发装置300以及安全码注册装置400从PLC200拆卸而使用。并且,安全文件颁发装置300和安全码注册装置400等例如由开发PLC程序的制造商保管和管理,最好不要放在用户所在的设有PLC200的地方。
[功能构成]
图2为本实施方式一的控制系统构成图的功能构成例子。下面针对每个装置按序说明。
(安全文件颁发装置)
本实施方式一的安全文件颁发装置300包含安全文件生成部301。安全文件生成部301接收到由用户通过键盘等(输入部)输入的“安全码”(图中示出为SC-A)后,使用安全码注册装置300的公开密钥对安全文件(图中示出为SF)加密并输出。安全文件中包含由用户输入的“安全码”。安全码注册装置400通过解密进行了加密的安全文件,从而获得其“安全码”。在此,安全码中除了安全码本身的值以外,还可以包含其安全码的数据大小(例如,64比特等)。
(安全码注册装置)
本实施方式一的安全码注册装置400包含安全文件调入部401、存储器402、安全信息注册部403、码变换部404。
安全文件调入部401调入由安全文件颁发装置300颁发的安全文件。并且,由于安全文件被加密,因此安全文件调入部401使用对应于上述的公开密钥的秘钥来解密安全文件。然后,安全文件调入部401从解密的安全文件提取“安全码”(SC-A)存储到存储器402中。
安全信息注册部403从存储器402获取“安全码”。然后,安全信息注册部403请求码变换部404,将其“安全码”(SC-A)变换为不同的“安全码”(图中为SC-B)。
并且,安全信息注册部403从用户接收“试用期限”的输入。“试用期限”是利用PLC200的情况下指定能够暂时利用PLC200的时间的信息。“试用期限”的输入方法例如可以有10个小时、1天、1个月等具体期限的输入或者像2011年3月1日(为止)这样的具体日期的输入。然后,安全信息注册部403生成包含变换的“安全码”(SC-B)和“试用期限”的安全信息(也可以仅包含“安全码”),对PLC200注册该安全信息。安全信息的注册可以以经由网络、USB(UniversalSerialBus)端口和串行端口等连接于PLC200的线缆向PLC200发送安全信息的方式实现。PLC200仅接收来自安全码注册装置400(安全信息注册部403)的安全信息的注册,不接收来自其他装置的安全信息的注册。在此,安全信息注册部403也可将所生成的安全信息存储在存储器402中。
码变换部404根据安全信息注册部403的请求,根据预定的算法将获得的安全码变换为其他不同的安全码。在本实施方式一中,例如将“安全码A”(SC-A)变换为“安全码B”(SC-B)。
(辅助加载器)
本实施方式一的辅助加载器100包含程序制作部101、存储器102。
程序制作部101由用于制作PLC程序的编程编译器实现,进行在PLC200主体中运行的PLC程序的制作(制作辅助)。程序制作部101向用户提供编程编译器或各种工具的同时制作用户期望的PLC程序。
而且,在制作PLC程序时,当用户想要保护正在制作的程序的情况下,用户在例如编程编译器上执行预定操作。程序制作部101接受该预定操作而对正在制作的程序进行如下处理。即,程序制作部101比如在PLC程序的初始化处理或执行处理时,制作程序代码,以能够调出用于安全码核对的系统功能模块(称为SFB)。
更具体地讲,程序制作部101在PLC200中执行了其PLC程序时,在用户制作的程序代码的一部分增加用来调出安全码核对用的SFB功能部206的代码。同时,作为安全码核对用的SFB功能部206所使用的参数,设定“安全码”。在此,在安全文件颁发装置300中,该安全码需要设定与通过用户输入的“安全码A”(SC-A)相同的代码。
然后,程序制作部101对增加了用于调出安全码核对用SFB功能部206的代码的用户制作程序代码进行编译,制作PLC程序。并且,将所制作的PLC程序存储在存储器102。并且,所制作的PLC程序被发送到PLC200(下载)。
(PLC)
接着,本实施方式一的PLC200包含安全信息注册接收部201、安全存储器202、工作时间测量部203、程序存储器204、程序执行部205、SFB功能部206(包含比较核对部207、码变换部208)、通知部209。
安全信息注册接收部201从安全码注册装置400(安全信息注册部403)接收安全信息,将所接收的安全信息注册(存储)到安全存储器202。如上所述,由于安全信息中包含“安全码”(SC-B)和“试用期限”,因此这些信息被提取并存储在安全存储器202中。在此,安全信息注册接收部201仅将从安全码注册装置400(安全信息注册部403)接收的安全信息注册到安全存储器202,而不接收来自其他装置的安全信息的注册。
安全存储器202由防篡改特性较高的安全芯片或闪存实现,是限制访问的存储器。在本实施方式1中,只有安全信息注册接收部201和工作时间测量部203对安全存储器202具有写入权限,而且只有比较核对部207对安全存储器202具有读取权限。另外,用户无法访问安全存储器202。在本实施方式一的情况下,如图2所示,该安全存储器202中存储“安全码B”、“试用期限”、“工作时间”。
工作时间测量部203从“试用期限”被存储在安全存储器202的时刻开始测量PLC200的“工作时间”。工作时间测量部203使用与PLC200的标准时钟(内部时钟)分开的、独立的时钟来测量PLC200的工作时间。例如,以PLC的扫描周期(读取输入数据至读取下一个输入数据为止的时间)为基础测量PLC的工作时间。用独立的时钟来测量PLC200的工作时间的理由在于,为了防止因为用户对标准时钟的时间的恢复行为等导致工作时间被篡改。为此,虽然用户可以访问PLC200的标准时钟,但无法访问工作时间测量部203。工作时间测量部203每次测量到“工作时间(信息)”都将其逐一地存储到安全存储器202中。
程序存储器204是用于存储由辅助加载器100制作的在PLC200主体上运行的PLC程序的存储器。如上所述,安全存储器202是禁止用户进行存取的存储器,相对于此,程序存储器204是允许用户进行存取的用户存储器。
用户还可以将通过辅助加载器100制作的PLC程序存储在记录媒介(记录介质),然后将存储有PLC程序的该记录媒介插入到PLC200的用户ROM卡槽210中。在这种情况下,PLC200将存储在该记录媒介的PLC程序传送到程序存储器204。
程序执行部205用于执行存储在程序存储器204中的PLC程序。但是,当PLC程序中包含用于调出安全码核对用SFB功能部206的代码时,根据该代码调出SFB功能部206。然后,程序执行部205仅在从SFB功能部206得到PLC程序的执行许可的情况下,才继续执行PLC程序,在得到PLC程序的执行禁止的情况下,禁止(停止)PLC程序的执行。在此,该处理不仅可以在PLC程序的执行处理时实施,例如还可以在PLC程序的初始化处理时实施。在这种情况下,禁止之后的该PLC程序的执行。
SFB功能部206是安全码核对用的SFB,对应于执行许可部。具体来讲,包含比较核对部207、码变换部208。比较核对部207被程序执行部205调出后实施如下的处理。
首先,比较核对部207获取存储在安全存储器202的“试用期限”和“工作时间”。如上所述,由于“试用期限”是指定能够暂时利用PLC200的期限的信息,因此当PLC200的“工作时间”在“试用期限”以内时,允许程序执行部205执行成为安全码核对对象的PLC程序。
另外,当PLC200的“工作时间”没有在“试用期限”以内时(“工作时间”超过“试用期限”的情况),禁止(不允许)程序执行部205执行成为安全码核对对象的PLC程序。
另外,当“试用期限”没有存储在安全存储器202中时,比较核对部207对包含在PLC程序中的安全码进行核对。
首先,比较核对部207获取在成为安全码核对对象的PLC程序中设定为参数的“安全码”(例如SC-A)。然后,向码变换部208请求“安全码”的变换。
码变换部208根据比较核对部207的请求变换“安全码”。码变换部208根据与安全码注册装置400的码变换部404相同的算法变换安全码。在本实施方式一的情况下,“安全码A”被变换为“安全码B”。码变换部208将变换后的“安全码”发送到比较核对部207。
比较核对部207在获得变换后的“安全码”之后,此刻获得存储在安全存储器202中的“安全码”(例如SC-B)。然后,比较(或者核对)通过码变换部208变换的“安全码”和安全存储器202中的“安全码”,当两个安全码一致时,允许程序执行部205执行成为安全码核对对象的PLC程序的执行。
另外,当两个安全码不一致时,禁止(不允许)程序执行部205执行成为安全码核对对象的PLC程序。
通知部209用于向用户等通知PLC程序的执行结果。具体的通知方法为在各装置的显示器等上通知、向日志文件输出日志、或者向预定的终端发送邮件等进行通知。
以上是本实施方式一的控制系统构成图的功能构成例。这些各功能部实际上可以通过各装置的CPU所执行的程序由计算机来实现。并且,无需通过这些功能模块被明确分开的程序来实现,可以通过子程序或者作为函数而从其他程序调出的程序也可以实现。并且,功能模块的一部分也可以是集成电路(IC:IntegratedCircuit)和现场可编程门阵列(FPGA:FieldProgrammableGateArray)等硬件单元。
并且,关于这些各功能部的程序存储在一般的程序存储器204区域以外的、用户不能直接存取其区域的加强了安全性的区域(未图示)中。
[操作画面例]
下面,说明各装置的操作画面例子。
(安全文件颁发装置)
图3表示本实施方式一的安全文件颁发装置的操作画面例(其一)。如上所述,安全文件颁发装置300是生成并输出安全文件的终端装置。
用户通过操作显示在安全文件颁发装置300的显示器画面上的操作画面,即可生成并输出安全文件。如图3所示,用户首先在用户认证画面(a)中输入用于登录安全文件颁发装置300的密码。如果用户认证成功,则进入到菜单画面(b)。然后,在菜单画面(b)中,如果用户按下“安全文件颁发”,则进入到安全文件颁发画面(c)。
在安全文件颁发画面(c)中,用户输入任意的“安全码”之后按下“添加”。所输入的安全码被添加到“一览表”中。并且,在“颁发记录”中针对所颁发的每个安全文件同时附加任意的记录。
接着,用户按下“颁发”。然后,显示确认画面(d),完成包含添加到“一览表”中的安全码的安全文件的输出。
如此生成并输出的安全文件应用于安全码注册装置400对PLC200注册安全码之时。用户可以在例如便携式记录介质中存储安全文件,然后通过该记录介质将安全文件转移到安全码注册装置400。或者,还可以通过网络将安全文件转移到安全码注册装置400。
图4表示本实施方式1的安全文件颁发装置的操作画面例子(其二)。具体来讲,若按下图3(b)的“颁发历史显示”,则显示出该“安全文件颁发历史显示”。如图4所示,在安全文件颁发装置300中显示出过去颁发过的安全文件的详细信息(“颁发日”、“安全码”、“颁发记录”等)。
(安全码注册装置)
图5表示本实施方式一的安全码注册装置的操作画面例子。如上所述,安全码注册装置400是用于将包含“安全码”和“试用期限”的安全信息注册到PLC200的终端装置。用户通过操作显示在安全码注册装置400的显示器画面上的操作画面,即可获得安全文件。并且,提取包含在安全文件中的安全码后注册到PLC200。
如图5所示,用户首先在用户认证画面(a)中输入用于登录到安全码注册装置400的密码。若用户认证成功,则进入到菜单画面(b)。然后,在菜单画面(b)中,如果用户按下“安全信息注册”,则进入到安全信息注册画面(c)。
在安全信息注册画面(c)中,用户首先指定安全信息的注册目的地的PLC。在图例的情况下,PLC可以假设为通过USB端口连接的情况和通过网络连接的情况,用户可以通过任意方法指定安全信息的注册目的地(发送目的地)的PLC。
接着,用户通过按下“安全文件调入”,向安全码注册装置400调入安全文件。具体来讲,用户将存储有安全文件颁发装置300生成的安全文件的记录介质连接于安全码注册装置400。然后,按下“安全文件调入”,指定存储在记录媒介中的安全文件,然后进行安全文件的调入。
若用户进行安全文件的调入,则安全文件中的安全码显示在“安全码”的栏中。并且,当安全文件中存在多个安全码时,多个安全码显示在“安全码”的栏中。用户从其中选择注册到PLC的一个安全码。
接着,用户进行“试用期限的注册”。具体来讲,当进行“试用期限的注册”时,在图例的“是”上加标记的基础上,输入指定“时间”。当不进行“试用期限的注册”时,在“否”上加标记(“试用期限”的注册可任意选择)。
“工作时间重置”是用于指定是否重置工作时间的部分。由于针对PLC可以重新注册“试用期限”,因此在重新注册时可以指定是否重置测量到重新注册时刻为止的工作时间。在“试用期限”的首次注册时,必须要指定“工作时间重置”为否(默认值)。
在进行以上设定的基础上,用户按下“注册”。然后,显示确认画面(d),针对安全信息的注册目的地的PLC完成所选择的“安全码”和“试用期限”的注册。即,在图例的情况下,“安全码”(006BZ-dpAo2wTsb83amk)和“试用期限”(10个小时)在该时刻注册到PLC200的安全存储器202中。在此,当不进行“试用期限的注册”时,针对安全信息注册目的地的PLC仅注册所选择的“安全码”。
(辅助加载器)
图6表示本实施方式1的辅助加载器的编程编译画面例子。如上所述,辅助加载器是PLC程序的制作辅助用计算机装置。用户在该画面上开发所期望的PLC程序。并且,由用户开发的PLC程序从辅助加载器100被下载到PLC200。
当保护正在制作的作为保护对象的程序时,用户例如在编程编译器上进行预定的操作。据此,针对用户制作的“保护对象的程序代码”,在PLC200侧添加用于调出安全码核对用SFB的“SFB用程序代码”。然后,用户在编程编译器上对包含“保护对象的程序代码”和“SFB用程序代码”的程序代码进行编译,制作PLC程序。并且,将所制作的PLC程序发送到PLC200。
[信息处理]
下面说明各装置的信息处理例子。
(信息处理一)
图7是表示本实施方式一的信息处理一的流程的时序图。具体来讲,首先,在信息处理一中对安全文件颁发装置300生成并输出安全文件的处理、以及安全码注册装置400将包含“安全码”和“试用期限”的安全信息注册到PLC200的处理进行说明(同时参照图2)。
S1:首先,由用户在安全文件颁发装置300中输入“安全码A”(例如,参照图3的(c))。
S2:安全文件颁发装置300的安全文件生成部301收到由用户输入的“安全码”(例如SC-A)后生成包含该“安全码”(例如SC-A)的安全文件。
S3:安全文件生成部301使用安全码注册装置300的公开密钥对所生成的安全文件加密。
S4:安全文件生成部301输出被加密的安全文件(例如,参照图3的(d))。作为输出方法有,例如在便携式记录介质中存储安全文件,然后通过该记录介质将安全文件转移到安全码注册装置400的方法。或者,也可以通过网络将安全文件发送到安全码注册装置400。
S5:然后,安全码注册装置400的安全文件调入部401调入由安全文件颁发装置300颁发的安全文件(例如,参照图5的(c))。
S6:安全文件调入部401使用对应于上述的公开密钥的秘钥来解密被加密的安全文件。
S7:安全文件调入部401从被解密的安全文件提取“安全码”(例如SC-A)并存储到存储器402。
S8:安全信息注册部403从用户接收到安全信息注册指示之后,向码变换部404请求将用户选择的一个“安全码”(例如SC-A)变换为“安全码”(例如SC-B)。根据来自安全信息注册部403的请求,码变换部404根据预定的算法将所获取的安全码变换为其他的不同的安全码。在本实施方式一中,将“安全码A”变换为“安全码B”。在此,如此地变换“安全码”是为了进一步提高安全性。例如,即使“安全码A”被泄密,也无法直接使用该“安全码A”,若最终没有用于进行比较(或者核对)的“安全码B”,则无法执行PLC程序。
S9:在这里,若用户输入“试用期限”,则安全信息注册部403获取该“试用期限”(例如,参照图5的(c))。
S10:安全信息注册部403生成包含被变换的“安全码”(例如SC-B)和所输入的“试用期限”的安全信息。并且,针对指定为安全信息的注册目的地的PLC200注册该安全信息(例如,参照图5的(d))。具体而言,如上所述,安全信息通过USB或LAN等网络被发送到PLC200,在PLC200侧注册(存储)到安全存储器202中。
在此,针对PLC200可以重新注册“试用期限”,在重新注册时,能够指定是否重置测量到重新注册时刻为止的工作时间的内容已在上面进行了说明(例如,参照图5的(c))。因此,在重新注册“试用期限”时,在“工作时间重置”被指定为“是”的情况下,安全信息注册部403在注册安全信息时同时将表示“工作时间重置”的标记发送到PLC200。
并且,仅通过安全码注册装置400用户无法将任意的安全码自由地注册到PLC200。即,需要将由安全文件颁发装置300输出的安全文件调入到安全码注册装置400(S5)。如此构成的理由在于,即使在安全码注册装置400被流出的情况下,也能防止欲以非法手段使用PLC程序的用户将与PLC程序内的安全码(参数)相同的安全码自由地注册到PLC的安全存储器202中。
S11:接着,PLC200的安全信息注册接收部201将从安全码注册装置400(安全信息注册部403)获取的、作为安全信息的“安全码”(例如SC-B)和“试用期限”存储到安全存储器202。在此,如上所述,由于该安全存储器202是被限制访问的存储器,因此用户无法访问该安全存储器202。
在此,如上所述,安全信息注册接收部201仅将从安全码注册装置400(安全信息注册部403)接收的安全信息注册到安全存储器202,不会接受来自其他装置的安全信息的注册。因此,PLC200在确认安全信息的注册来源(发送源)为安全码注册装置400之后,注册该安全信息。另外,PLC200在无法确认安全信息的注册来源(发送源)为安全码注册装置400的情况下,废弃该安全信息。
作为确认注册来源的具体方法,例如可以通过在收发安全信息时,PLC200使用只有安全码注册装置400所具有的密钥(预定的数据或密码等)进行认证,由此确认注册来源。并且,例如还可以使用公用密钥密码系统(还称为秘玥密码系统)。安全码注册装置400使用安全码注册装置400的公用密钥(秘玥)对安全信息加密,并将加密的安全信息发送到PLC200。PLC200具有与安全码注册装置400相同的公用密钥(秘玥),通过使用该公用密钥(秘玥)对安全信息进行解密,从而可以确认注册来源。
S12:工作时间测量部203从“试用期限”被存储在安全存储器202的时刻开始测量PLC200的工作时间。为了防止工作时间被篡改,工作时间测量部203通过与PLC200的标准时钟(内部时钟)分开的、独立的时钟来测量PLC200的工作时间。并且,工作时间测量部203每次测量到工作时间时,都将其逐一地存储到安全存储器202中。
在此,当安全存储器202中已经存在之前的“试用期限”时,意味着工作时间测量部203已经开始对PLC200的工作时间进行测量。然后,如上所述,虽然“试用期限”可以重新注册,但是当从安全码注册装置400(安全信息注册部403)接收到表示“工作时间重置”的标记时,在S11中,安全信息接收部201覆盖(更新)安全存储器202中已经存在的“试用期限”。并且,工作时间测量部203重新开始测量PLC200的工作时间。
(信息处理2)
图8为表示本实施方式一的信息处理二的流程的时序图。具体来讲,在信息处理二中对辅助加载器100的PLC程序制作处理、辅助加载器100的PLC程序下载处理以及PLC200的PLC程序执行控制处理进行说明(同时参照图2)。
S21:首先,辅助加载器100的程序制作部101制作在PLC200主体中运行的PLC程序的程序代码(例如,参照图6)。即,若用户通过编程编译器制作用户所期望的用户程序代码,则程序制作部101在该用户程序代码的一部分添加用于调出安全码核对用SFB206的程序代码。同时,作为用于SFB206的参数,设定“安全码”(例如SC-A)。该安全码由用户提供,设定与安全文件颁发装置300中输入的“安全码”(例如SC-A)相同的安全码。
S22:接着,如果制作出包含用户程序代码和用于调出SFB206的程序代码的程序代码,则程序制作部101进行编译,制作PLC程序。并且,程序制作部101将所制作的PLC程序存储到存储器102。
S23:接着,程序制作部101通过用户操作或自动操作,将所制作的PLC程序发送到PLC200。
S24:PLC200的程序执行部205控制存储在程序存储器204的PLC程序的执行。在进行PLC程序的执行处理时,当PLC程序中包含用于调出SFB功能部206的代码时,程序执行部205根据该代码,调出SFB功能部206。然后,程序执行部205根据来自SFB功能部206的返回值(“执行许可”或“执行禁止”),进行是继续还是禁止(中止)该PLC程序的执行的控制。关于这一点的详细内容将在后面再次说明。在此,当PLC程序中没有包含用于调出SFB功能部206的代码时,程序执行部205只要照常执行PLC程序即可。
S25:通知部209将PLC程序的执行结果通知用户等。作为具体的通知方法,可以在各装置的显示器等上通知、向日志文件输出日志、或者向预定的终端发送邮件等进行通知。在此,该通知也可以只在PLC程序的执行被禁止的情况下通知。
(PLC程序执行控制处理)
图9为表示本实施方式一的程序执行部205的PLC程序执行控制处理的流程的流程图。具体来讲,关于上述的PLC程序执行控制(图8的S24),下面参照附图进行说明。
S31:PLC200的程序执行部205执行存储在程序存储器204的PLC程序。此时,判断PLC程序中是否包含用于调出安全码核对用SFB功能部206的代码。这里,当PLC程序中没有包含用于调出安全码核对用SFB功能部206的代码时,由于该PLC程序不是受到特别保护的程序,因此程序执行部205进入S34,照常执行PLC程序。
S32:当PLC程序中包含用于调出安全码核对用SFB功能部206的代码时,程序执行部205根据该代码调出SFB功能部206。这里,在调出SFB功能部206时,程序执行部205将PLC程序中设定为SFB206用参数的“安全码”(例如SC-A)传送到SFB功能部206。
S33:程序执行部205从SFB功能部206获取返回值(“执行许可”或“执行禁止”)。当返回值为“执行许可”时,进入S34。另外,当返回值为“执行禁止”时,进入S35。
S34:当来自SFB功能部206的返回值为“执行许可”时,程序执行部205执行PLC程序。由此,PLC200的主体可以通过该PLC程序执行用户所期望的动作。
S35:另外,当来自SFB功能部206的返回值为“执行禁止”时,程序执行部205将该PLC程序视为非法的PLC程序并禁止(中止)执行。
(SFB功能处理)
图10是表示本实施方式一的SFB功能部206的安全码核对处理的流程的流程图。具体来讲,关于上述的PLC程序执行控制(图9的S32),下面参照附图进行说明。
S41:在图9的S32中,如果通过程序执行部205调出了SFB功能部206,则SFB功能部206的比较核对部207从安全存储器202获取“试用期限”。当获取了“试用期限”时,进入S42。另外,当无法获取“试用期限”时,进入S45。在此,无法获取“试用期限”的情况是指“试用期限”没有注册在安全存储器202的情况。
S42:当获取到“试用期限”时,比较核对部207此刻从安全存储器202获取“工作时间”。由于“工作时间”是从“试用期限”被存储的时刻开始进行其测量,因此当“试用期限”被注册在安全存储器202时,“工作时间”也被存储在安全存储器202。
S43:如果从安全存储器202获取到“工作时间”和“试用期限”,则比较核对部207基于“工作时间”判定“试用期限”是否在可利用的期限之内。如上所述,“试用期限”表示PLC200的可利用期限,“工作时间”表示PLC200的“工作时间”。因此,比较核对部207能够基于“工作时间”和“试用期限”判定PLC200是否在“试用期限”内。当PLC200在“试用期限”内时,进入S44。另外,当PLC200不在“试用期限”内时,进入S51。
例如,在PLC200开始工作后经过了5个小时的情况下,“工作时间”为5(H),如果“试用期限”为10(H),则判定PLC200在可利用的“试用期限”内。并且,例如在PLC200开始工作后经过了12个小时的情况下,“工作时间”为12(H),如果“试用期限”为10(H),则判定PLC200不在可利用的“试用期限”内。
S44:为了许可成为安全码核对对象的PLC程序的执行,比较核对部207向程序执行部205颁发返回值:“执行许可”。
S45:另外,当从安全存储器202无法获取“试用期限”的情况下(S41),比较核对部207向码变换部208请求参数(“安全码”(例如SC-A))的变换。“安全码”中含有通过程序执行部205调出SFB功能部206时,在PLC程序中设定为SFB206用参数的代码(图9的S32)。
S46:码变换部208响应比较核对部207的请求,变换“安全码”。码变换部208根据与安全码注册装置400的码变换部404相同的算法变换安全码。因此,在本实施方式一的情况下,“安全码A”变换为“安全码B”。码变换部208将变换后的“安全码”传送到比较核对部207。
S47:比较核对部207从码变换部208获取到变换后的“安全码”的情况下,进入S48。另外,从码变换部208无法获取变换后的“安全码”的情况下,进入S51。
S48:比较核对部207从安全存储器202获取“安全码”(例如SC-B)。当获取到“安全码”时,进入S49。另外,当无法获取“安全码”时,进入S51。在此,无法获取“安全码”的情况是指“安全码”没有注册在安全存储器202中的情况。
S49:如果获取到变换后的参数的“安全码”和安全存储器202的“安全码”,则比较核对部207比较(或者核对)这两个安全码。
S50:当两个安全码一致时,进入S44。即,为了许可成为安全码核对对象的PLC程序的执行,比较核对部207向程序执行部205颁发返回值:“执行许可”。另外,当两个安全码不一致时,进入S51。
S51:由于不允许执行成为安全码核对对象的PLC程序,因此比较核对部207向程序执行部205颁发返回值:“执行禁止”。
[总结]
综上所述,在本实施方式的信息处理例子中,在PLC200中执行PLC程序时,根据添加到PLC程序的SFB调出代码来调出SFB功能部206,并实施PLC程序中的安全码核对处理。另外,限制访问的PLC200的安全存储器202中,通过安全文件颁发装置300和安全码注册装置400预先存储“安全码”。然后,与PLC程序中的变换后的安全码进行比较(或者核对),当两个安全码一致时,判定该PLC程序为合法的PLC程序,在PLC200中允许执行该PLC程序。另外,当两个安全码不一致时,判定该PLC程序不是合法的PLC程序(属于PLC程序的非法使用),在PLC200中不允许执行该PLC程序。
如此,根据本实施方式,由于只能在合法的PLC中运行PLC程序,因此具有防止PLC程序的非法使用的效果。于是,对使用PLC开发产品的装配厂等而言,可以预防PLC或PLC程序的仿制品或盗印版产品出现在市场。
这里,考虑如下的情况:例如,当本实施方式的PLC200发生故障时,由于在修理发生故障的PLC的期间工厂的生产活动会停止,因此暂时设置作为代替机的PLC(用“PLC200-2”表示)来继续工厂的生产活动。此时,使用具体的代替机进行的修复工作如下。
首先,维修工作者(等)实体上设置代替机PLC200-2。接着,维修工作者通过安全码注册装置400对代替机PLC200-2注册安全信息。该安全信息与发生故障的PLC200中注册的安全信息相同。只要将安全码注册装置400的存储器402中存储的安全信息照原样注册即可。由此,代替机PLC200-2的安全存储器202中存储有“安全码”(例如SC-B)。
接着,维修工作者在代替机PLC200-2的程序存储器204中存储(下载)PLC程序。该PLC程序与在发生故障的PLC200中使用的PLC程序相同。只要将辅助加载器100的存储器102中存储的PLC程序照原样存储即可。或者,如上所述,由辅助加载器100制作的PLC程序被存储在插入到用户ROM卡槽210中的记录媒介的情况下,维修工作者从发生故障的PLC200拔出记录媒介,并将该记录媒介插入到代替机PLC200-2的用户ROM卡槽210中。由此,代替机PLC200-2的程序存储器204中存储有(接收)迄今使用的PLC程序。
然后,在代替机PLC200-2中,维修工作者只要使PLC程序执行即可。在执行PLC程序时,由于对PLC程序中的参数进行了变换的“安全码”(例如SC-B)和安全存储器202的“安全码”(例如SC-B)一致,因此在SFB功能部206(比较核对部207)的安全码核对处理中也能允许PLC程序的执行。
通过如上所述的简单的修复工作,在代替机PLC200-2中也能执行与发生故障的PLC200中执行的PLC程序相同的PLC程序。即,使用代替机PLC200-2能够迅速地重新展开与发生故障的PLC200相同的生产活动。
并且,虽然在本实施方式的信息处理例子中,在PLC200中执行PLC程序时实施安全码核对处理,但只要在“试用期限”以内,不需要两个“安全码”一致,也能执行PLC程序。
上面针对通过安全码注册装置400对代替机PLC200-2注册安全信息的内容进行了说明,但是当身边没有安全码注册装置400时,维修工作者无法通过安全码注册装置400对代替机PLC200-2注册与发生故障的PLC200中注册的安全信息相同的安全信息。
然而,即使在这种情况下,维修工作者也只要准备代替机的安全文件颁发装置(用“安全文件颁发装置300-2”表示)和代替机的安全码注册装置(用“安全码注册装置400-2”表示)即可。维修工作者即使不知道合法的“安全码”,也在代替机安全文件颁发装置300-2和代替机安全码注册装置400-2中输入任意(Dammy:用户名称)的“安全码”(例如,参照图3的(c)、图5的(c))。然后,作为“试用期限”而注册发生故障的PLC200修理完成为止的大致时间(例如,参照图5的(c)),只要对代替机PLC200-2注册包含任意(Dammy)的“安全码”和“试用期限”的安全信息,即使两个“安全码”不一致,也能暂时执行PLC程序。即,使用代替机PLC200-2可以迅速的重新展开与发生故障的PLC200相同的生产活动。
并且,在PLC200(包含PLC200-2)中存储PLC程序之前,作为“试用期限”的初始值而预先注册1个月或1周等“试用期限”,从而不需要维修工作者进行上述的“试用期限”的注册。
此外,当在“试用期限”的时间段内把PLC200借给用户端时,通过在PLC200中预先注册“安全码”和“试用期限”后借出,即可使“试用期限”的核对变得有效。然后,当在试用期限内用户希望购买PLC200时,通过删除所注册的“试用期限”,使之后的“安全码”的核对变得有效。
如此,根据本实施方式的PLC,在考虑控制程序的运用、维护性的同时,从PLC上运行的控制程序的安全性方面考虑,可以防止控制程序的非法使用。
[应用例]
接着,关于PLC200具有全球定位系统(GPS:GlobalPositioningSystem)传感器,由此对使用PLC的位置实施认证的例子进行说明。即,在PLC200执行PLC程序时,对于是否在该PLC程序的使用得到认可的使用位置设置该PLC的情况进行认证。然后,当在该使用位置上设有PLC200时,PLC200允许该PLC程序的执行。由此,进一步提高对于在PLC上运行的控制程序的安全性。下面进行说明。
图11为本应用例的控制系统构成图的功能构成例。与上述的图2的功能构成例相比,辅助加载器100和PLC200的一部分不同。下面以不同点为中心进行说明。
(辅助加载器)
在本应用例的辅助加载器100中,程序制作部101制作(辅助制作)在PLC200主体中运行的PLC程序。此时,如上所述,程序制作部101在用户制作的用户程序代码中,在用户制作的程序的一部分添加用于调出安全码核对用SFB功能部206的代码。并且,作为用于安全码核对用SFB206的参数,同时设定“安全码A”。此外,在本应用例中,作为用于安全码核对用SFB206的参数,设定“有效位置信息”。
“有效位置信息”是用于指定认可PLC程序的执行的PLC200的使用位置(设置位置)的信息。即,当PLC200设置在通过“有效位置信息”指定的使用位置上时,PLC200允许执行该PLC程序。因此,用户需要将PLC200的使用位置(例如,工厂位置)作为“有效位置信息”进行指定。
图12表示“有效位置信息”的指定例子。“有效位置信息”可以以(纬度x、经度y)这样的从GPS获取的位置坐标的形式输入,例如,北纬a度b分c秒,东经d度e分f秒等。
例如(a)所示,用户可以通过两点坐标位置指定“有效位置信息”。此时,由于矩形的范围区域成为有效位置范围,因此优选将工厂等的用地区域指定为有效位置范围。
并且,例如(b)所示,用户可以通过多边点的位置坐标指定“有效位置信息”。此时,由于多边形的范围区域成为有效位置范围,因此优选将工厂等的建筑物区域指定为有效位置范围。
并且,例如(c)所示,用户可以通过一点位置坐标指定“有效位置信息”。此时,以一点为中心点的周边圆形区域成为有效位置范围。关于将离中心点多大范围的圆形区域设定为有效位置范围,可以在PLC200侧预先确定预定半径z,也可以由用户指定中心点的位置坐标的同时指定该半径z。
(PLC)
接着,如图11所示,本应用例的PLC200中增设位置信息获取部211。位置信息获取部211由GPS传感器等实现,用于接收来自GPS卫星的信息,获取PLC200所处的“当前位置信息”。位置信息获取部211将所获取的“当前位置信息”传送到安全信息注册接收部201。安全信息注册接收部201将该“当前位置信息”存储到安全存储器202中。通过安全信息注册接收部将“当前位置信息”存储到安全存储器202的理由在于,因为对安全存储器202的访问被限制,而安全信息注册接收部201具有对安全存储器202的写入权限。并且,“当前位置信息”也是有关安全性的信息之一。
程序执行部205执行存储在程序存储器204的PLC程序。并且,当PLC程序中包含用于调出安全码核对用SFB功能部206的代码时,程序执行部205根据该代码调出SFB功能部206。然后,程序执行部205只有在从SFB功能部206获得PLC程序的执行许可的情况下继续执行PLC程序,而在获得PLC程序执行禁止的情况下,禁止PLC程序的执行(停止)。
如果通过程序执行部205调出了SFB功能部206,则如上所述,比较核对部207基于“试用期限”、“工作时间”以及“安全码”来判定PLC程序的执行许可和禁止,而本应用例中进一步基于“当前位置信息”判定PLC程序的执行许可和禁止。
即,比较核对部107获取存储在安全存储器202中的“当前位置信息”。如上所述,安全存储器202的“当前位置信息”表示设有PLC202的位置信息。并且,比较核对部207获取在作为安全码核对对象的PLC程序中设定为参数的“有效位置信息”。然后,比较核对部207比较(或者核对)“当前位置信息”和“有效位置信息”,当两个位置信息一致时(“当前位置信息”处于“有效位置信息”所指定的范围内的情况),由于许可作为安全码核对对象的PLC程序的执行,因此对程序执行部205颁发返回值:“执行许可”。另外,当两个位置信息不一致时,由于比较核对部207不允许安全码核对对象的PLC程序的执行,因此对程序执行部205颁发返回值:“执行禁止”。
(SFB功能处理)
图13为表示本应用例的SFB功能部206的安全码核对处理的流程的流程图。与上述的图10相比,增加了S50之后的S52~S54的步骤,其余的步骤相同。下面参照附图说明S52~S54。
S52:在S50中判定为两个安全码一致时,此刻比较核对部207从安全存储器202获取“当前位置信息”。当获取到“当前位置信息”时,进入S53。另外,当无法获取“当前位置信息”时,进入S51。在此,无法获取“当前位置信息”的情况是指,例如PLC200设置在用GPS传感器无法获得位置信息的地方等的情况。此时,通知无法获取“当前位置信息”的内容,并敦促PLC的设置位置的检查等,以通过GPS传感器能够获取位置信息(图8的S25)。
S53:比较核对部207比较(或者核对)“当前位置信息”和“有效位置信息”。在此,关于“有效位置信息”而言,在通过程序执行部205调出SFB功能部206时,比较核对部207获取在PLC程序中设定为SFB206用参数的“有效位置信息”(图9的S32)。
S54:在“当前位置信息”和“有效位置信息”一致的情况下(“当前位置信息”处于“有效位置信息”所指定的范围内的情况),比较核对部207进入S44。
然后,由于允许执行作为安全码核对对象的PLC程序,因此比较核对部207对程序执行部205颁发返回值:“执行许可”(S44)。
另外,当两个位置信息不一致时,比较核对部207进入S51。然后,由于禁止执行作为安全码核对对象的PLC程序,因此比较核对部207对程序执行部205颁发返回值:“执行禁止”。
综上所述,在本应用例中,通过在PLC程序中存储能够实现该程序的使用的“有效位置信息”,从而基于从GPS传感器获取的PLC200的“当前位置信息”,可以仅使设置在可使用PLC程序的区域(场所)的PLC200执行该PLC程序。因此,例如在设置PLC200之后,由于在PLC200主体本身被挪用的情况等,在“有效位置信息”所指定的位置以外无法执行PLC程序,因此能够防止PLC程序的使用(可以称为非法使用)。即,能够进一步提高在PLC200上运行的控制程序的安全性。
<实施方式二>
接着,对实施方式二进行说明。在实施方式一中,只有使用安全码注册装置400注册了安全码的PLC才能执行PLC程序。如上所述,安全码注册装置400原则上最好由PLC程序的开发商保管和管理。
然而,因为应用上的原因,有时需要将安全码注册装置400提供给用户。此时,用户可以使用安全码注册装置400无限制地制作出能够执行PLC程序的PLC。
因此,在实施方式二中引入能够限制可执行PLC程序的PLC数量的结构。根据该结构,开发商可以对用户能够使用的PLC的数量进行许可管理。下面进行详细说明。
[系统构成]
图14表示本实施方式二的控制系统构成图(概略图)的一个例子。如图14所示,本实施方式二的控制系统包含辅助加载器100、PLC200、安全文件颁发装置300、安全码注册装置400、许可证文件颁发装置500、记录媒介600。
本实施方式二的控制系统构成图与实施方式一的图1相比,增设了许可证颁发装置500、记录媒介500。下面,以与实施方式一不同的点为中心,进行详细说明。
许可证文件颁发装置500是颁发用于许可PLC程序的使用(执行)的许可证文件的终端装置。许可证文件颁发装置500例如由开发PLC程序的开发商持有。开发商使用许可证文件颁发装置500仅颁发与所开发的许可使用PLC程序的PLC数量一致的许可证文件。
记录媒介600是用于存储许可证文件的记录媒介,而且用于获取制作许可证文件的信息(例如,记录媒介的固有标识符)。记录媒介600可以使用如记忆卡(SD卡)等通用的用户ROM卡。如果许可证文件颁发装置500颁发许可证文件,则将所颁发的许可证文件存储到记录介质600。然后,将存储有许可证文件的记录媒介600插入到PLC200的用户ROM卡槽中。
并且,许可证文件颁发装置500在一个记录媒介中存储一个许可证文件。在此,许可证文件被存储在获取了该许可证文件中包含的固有标识符的记录媒介中。因此,在许可证文件颁发装置500颁发了三个许可证文件的情况下,由于要存储所颁发的三个许可证文件,因此需要三个记录媒介。当使用许可证文件颁发装置500来许可所开发的PLC程序的使用时,开发商为用户提供对应于所许可的PLC数量的记录媒介。
图15表示本实施方式二的记录媒介的提供例子。例如,在开发商和用户之间签订了对应于三台的PLC程序的许可合同等的情况下,开发商使用许可证文件颁发装置500对三台PLC200分别许可PLC程序的执行。
开发商(例如,维修工作者等)在许可证文件颁发装置500的用户ROM卡槽中插入记录媒介600,颁发一个许可证文件。所颁发的许可证文件被存储在记录媒介600。开发商通过反复进行三次该许可证文件的颁发工作,可以制作出三个存储有许可证文件的记录媒介600。
开发商为用户提供三个记录媒介600。用户针对三台PLC200(例如,PLC200-1、PLC200-2、PLC200-3)分别插入存储有许可证文件的记录媒介600(例如,记录媒介600-1、记录媒介600-2、记录媒介600-3)。在各PLC200中通过记录介质600的许可证文件执行许可认证,当认证成功时,开发商所开发的PLC程序被许可使用。
[功能构成]
图16为本实施方式二的控制系统构成图的功能构成例子。在此,为了便于说明,仅示出PLC200、许可证文件颁发装置500、记录媒介600。
(许可证文件颁发装置)
本实施方式二的许可证文件颁发装置500包含用户ROM卡槽501、标识符获取部502、许可证文件生成部503。
用户ROM卡槽501是用于插入(装入)记录媒介600的卡槽。当开发商使用许可证文件颁发装置500颁发许可证文件时,首先将记录媒介600插入到用户ROM卡槽501中。
标识符获取部502从插入到用户ROM卡槽501中的记录媒介600获取记录媒介600的标识符。该标识符是例如记录媒介600的产品序列号或生产编号等符号,是每个记录媒介所固有的标识符。
许可证文件生成部503基于记录媒介600的标识符、所输入的“用户信息”以及“有效期限”等生成许可证文件。许可证文件生成部503将所生成的许可证文件存储(记录)到用户ROM卡槽501中的记录媒介600中。存储有许可证文件的记录媒介600从用户ROM卡槽501中被拔出后,插入到PLC200的用户ROM卡槽210中。
(PLC)
接着,对本实施方式二的PLC200进行说明。与图2或图11的PLC200相比,图16的PLC200中增设了许可认证部212。在此,为了便于说明,在图16的PLC200中仅示出增设的许可认证部212、程序存储器204、程序执行部205、用户ROM卡槽210,对于其他的各功能部省略图示。
许可认证部212通过认证存储在记录介质600的许可证文件的有效性,从而判定对存储在程序存储器204的PLC程序是否有执行权限。因此,许可认证部212包含标识符获取部212a、篡改确认部212b、判定部212c。
标识符获取部212a从插入到用户ROM卡槽210中的记录媒介600获取记录媒介600的标识符。该标识符是例如记录媒介600的产品序列号或生产编号等符号。
篡改确认部212b从插入到用户ROM卡槽210中的记录媒介600获取许可证文件,确认所获取的许可证文件是否被篡改。
判定部212c对从标识符获取部212a获取的标识符和从通过篡改确认部212b确认为没有被篡改的许可证文件获取的标识符进行比较核对。并且,判定部212c确认许可证文件的有效期限。然后,判定部212c基于这些比较核对和确认的结果,判定该PLC200是否具有执行PLC程序的权限。
如上所述,程序存储器204是用于存储由辅助加载器100制作的、在PLC200主体中运行的PLC程序的存储器。
程序执行部205用于执行存储在程序存储器204的PLC程序。然而,在执行该PLC程序之前,向许可认证部212请求以确认是否具有PLC程序的执行权限。许可认证部212响应于来自程序执行部205的执行权限确认请求,判定(确认)是否具有PLC程序的执行权限,并回复判定结果(有执行权限/无执行权限)。当从许可认证部212得到具有执行权限的回复时,程序执行部205开始执行存储在PLC程序存储器204的PLC程序。关于这一点的具体内容,将在后面进行说明。
此外,在执行PLC程序时,如上所述,当存储在程序存储器204中的PLC程序中包含用于调出安全码核对用SFB功能部206的代码时,程序执行部205根据该代码调出SFB功能部206。然后,程序执行部205只有在从SFB功能部206得到PLC程序的执行许可的情况下,才继续执行PLC程序。
用户ROM卡槽210是用于插入(装入)记录媒介600的卡槽。存储有许可证文件的记录媒介600从许可证文件颁发装置500的用户ROM卡槽501中被拔出后,插入到PLC200的用户ROM卡槽210中。
[许可证文件的颁发]
接着,对许可证文件的颁发进行详细说明。许可证文件通过许可证文件颁发装置500颁发,并被存储到记录媒介600。
(许可证文件颁发装置的操作画面例子)
下面说明许可证文件颁发装置500的操作画面例子。图17表示本实施方式二的许可证文件颁发装置的操作画面例子。许可证文件颁发装置500是生成许可证文件,并将其输出到记录媒介600的终端装置。例如,开发商的维修工作者通过操作许可证文件颁发装置500的显示器画面上所显示的操作画面,从而能够生成和输出许可证文件。
如图17所示,维修工作者首先在用户认证画面(a)中输入用于登录到许可证文件颁发装置500的密码。如果用户认证成功,则进入菜单画面(b)。然后,在菜单画面(b)中,如果维修工作者按下“颁发许可证文件”,则进入许可证文件颁发画面(c)。
在许可证文件颁发画面(c)中,维修工作者输入画面内的各项目。“颁发者”是输入许可证文件的颁发者的项目,例如维修工作者或开发商名称等。并且,“使用者”是输入许可证文件的使用者的项目,例如PLC200的用户名等。“许可有效期限”是输入许可证文件的有效期限的项目。当设定许可证文件的有效期限时,选择“指定”,输入具体的有效期限。当不设定许可证文件的有效期限时,选择“不指定”即可。此时,许可证文件的有效期限变为无有效期限(无限制)。
“许可证文件存储地”是用于指定所颁发的许可证文件的存储目的地的项目。维修工作者选择连接有记录媒介600的驱动器。并且,在“颁发记录”中可以针对每一个许可证文件一并留下任意的记录。
结束上述的输入后,维修工作者按下“颁发”。然后,显示确认画面(d),完成许可证文件的输出。由此,记录媒介600中存储所颁发的许可证文件。
(许可证文件的生成处理)
接着,对许可证文件颁发装置500执行的许可证文件的生成处理进行说明。图18是表示本实施方式二的许可证文件生成处理的流程的流程图。在此,许可证文件生成处理是在许可证文件颁发画面(c)中按下“颁发”的时刻开始进行。并且,图19是表示本实施方式二的许可证文件生成处理的流程的图。在此一并说明。
S61:许可证文件颁发装置500的标识符获取部502从记录媒介600获取“记录媒介的标识符”。当获取到“记录媒介的标识符”时,进入下一个步骤S62。另外,例如当记录媒介600没有被插入到用户ROM卡槽501中时,标识符获取部502无法获取“记录媒介的标识符”。如此,在无法获取“记录媒介的标识符”的情况下,由于无法正常地执行许可证文件生成处理,因此结束许可证文件生成处理。
S62:接着,许可证文件颁发装置500的许可证文件生成部503获取“用户信息”(“颁发者”、“使用者”)、“有效期限”的信息。这些信息是在许可证文件颁发画面(c)中所输入的信息。当获取到“用户信息”(“颁发者”、“使用者”)、“有效期限”的情况下,进入下一个步骤S63。另外,例如在许可证文件颁发画面(c)中没有输入“用户信息”(“颁发者”、“使用者”)、“有效期限”的信息的情况下,许可证文件生成部503无法获得这些信息。因此,无法正常地执行许可证文件生成处理,结束许可证文件生成处理。
S63:许可证文件生成部503制作包含“用户信息”、“有效期限”、“记录媒介的标识符”的许可证信息191。
S64:接着,许可证文件生成部503使用许可证颁发装置500和PLC200的公用密钥193对许可证颁发装置500的公开密钥192加密。在此,许可证文件生成部503预先存储有许可证颁发装置500的公开密钥192、许可证颁发装置500和PLC200的公用密钥193。
S65:接着,许可证文件生成部503使用散列函数对S63中制作的许可证信息191和S64中加密的公开密钥194进行运算,计算出散列值195。
S66:许可证文件生成部503使用许可证颁发装置500的秘钥196对散列值195加密,将该加密的散列值作为电子签名197。在此,许可证文件生成部503预先存储有许可证颁发装置500的秘钥196。
S67:许可证文件生成部503生成包含在S63中制作的许可证信息191、在S64中加密的公开密钥194、在S66中制作的电子签名197的许可证文件198。电子签名197用于确认许可证文件是否被篡改。
图20表示本实施方式二的许可证文件的一个例子。所生成的许可证文件198包含许可证信息191、被加密的公开密钥194、电子签名197。
[许可证文件的认证]
接着,对PLC200所执行的许可证文件的认证进行详细说明。在PLC200中,作为在执行PLC程序之前的准备工作,维修工作者或者用户将存储有许可证文件的记录媒介600插入到PLC200的用户ROM卡槽210中。
PLC200的程序执行部205在执行存储在程序存储器204的PLC程序之前,向许可认证部212请求以确认PLC程序的执行权限。许可认证部212使用记录媒介600的许可证文件,判定对PLC程序是否具有执行权限,并回复其判定结果。然后,当从许可认证部212获得具有执行权限的判定结果时,程序执行部205开始执行存储在PLC程序存储器204的PLC程序。下面进行详细说明。
(许可证文件的认证处理)
图21是表示本实施方式二的许可证文件认证处理的流程的流程图。在此,许可证文件认证处理是自许可认证部212从程序执行部205接收到判定是否能执行PLC程序的请求的时刻开始。
S71:许可认证部212的篡改确认部212b从记录媒介600获取许可证文件。当获取到许可证文件时,进入下一个步骤S72。另外,例如记录媒介600中没有记录许可证文件的情况下,篡改确认部212b无法获取许可证文件。此时,进入S77。
S72:篡改确认部212b确认所获取的许可证文件是否被篡改。
图22为表示本实施方式二的许可证文件的篡改与否确认处理的流程的流程图。图23为表示本实施方式二的许可证文件的篡改与否确认处理的流程的图。参照图说明通过篡改确认部212b进行的许可证文件的篡改与否确认处理。
S81:首先,篡改确认部212b提取许可证文件198中的许可证信息191和加密的公开密钥194。许可证文件198包含许可证信息191、加密的公开密钥194、电子签名197。然后,篡改确认部212b利用与许可证文件生成部503相同的散列函数运算所提取的许可证信息191和加密的公开密钥194,计算出散列值195b。
S82:接着,篡改确认部212b使用许可证颁发装置500和PLC200的公用密钥193解密许可证文件198中被加密的公开密钥194。在此,篡改确认部212b预先存储有许可证颁发装置500和PLC200的公用密钥193。
S83:接着,篡改确认部212b提取许可证文件中的电子签名197。然后,篡改确认部212b使用解密的公开密钥192对所提取的电子签名197进行解密。在此,该解密的电子签名197为散列值195b。
S84:篡改确认部212b比较在S81中计算的散列值195b和在S83中从电子签名197解密的散列值195,。当两个散列值一致时,进入S85。另外,当两个散列值不一致时,进入S86。
S85:篡改确认部212b确认许可证文件没有被篡改。
S86:篡改确认部212b确认许可证文件被篡改。
上面是许可证文件的篡改确认处理。再返回图21。
S73:许可认证部212的判定部212c基于从许可证文件获取的“有效期限”确认该许可证文件是否在有效期限内。具体来讲,确认当前的日期时刻是否在“有效期限”内,在当前的日期时刻在“有效期限”内的情况下,判定为该许可证文件处于有效期限内。另外,在当前的日期时刻没有在“有效期限”内的情况下,判定为该许可证文件没有处在有效期限内。并且,从许可证文件获取的“有效期限”为无有效期限(无限制)的情况下,判定部212c确认该许可证文件处在有效期限内。
在此,“有效期限”是许可证文件的许可证信息中所包含的信息(例如,参照图18)。由于许可证文件本身已通过篡改确认部212b确认为没有被篡改,因此该“有效期限”也没有被篡改。
并且,在许可证文件的许可证信息中,作为“用户信息”而包含“颁发者”、“使用者”。因此,也可以在PLC200侧预先注册“颁发者”(例如,开发商名称)、“使用者”(例如,用户名),然后由判定部212c进一步确认从许可证文件获取的“颁发者”、“使用者”与注册在PLC200侧的“颁发者”、“使用者”是否一致。当“颁发者”、“使用者”的信息一致时,判定部212c确认为该许可证文件有效。
S74:许可认证部212的标识符获取部212a从记录媒介600获取“记录媒介的标识符”。当获取到“记录媒介的标识符”时,进入下一个步骤S75。另外,例如记录媒介600没有被插入到用户ROM卡槽201中的情况下,标识符获取单元212a无法获取“记录媒介的标识符”。此时,进入S77.
S75:接着,许可认证部212的判定部212c对在S74中获取的“记录媒介的标识符”和从许可证文件获取的“记录媒介的标识符”(例如,参照图18)进行比较核对。在此,由于许可证文件已通过篡改确认部212b确认为没有被篡改,因此该“记录媒介的标识符”也没有被篡改。
S76:判定部212c判定为对PLC程序具有执行权限。由此,许可认证部212向程序执行部205回复判定结果(具有执行权限)。
S77:判定部212c判定为对PLC程序没有执行权限。由此,许可认证部212向程序执行部205回复判定结果(没有执行权限)。
由此,当从许可认证部212获得具有执行权限的判定结果时,程序执行部205开始执行存储在PLC程序存储器204中的PLC程序。另外,当从许可认证部212获得没有执行权限的判定结果时,程序执行部205禁止执行存储在PLC程序存储器204中的PLC程序。
在此,禁止执行PLC程序的时刻原则上是立即禁止,但是根据应用情况,也可以经过一定时间后禁止。例如,当超过许可证文件的“有效期限”时,如果立即停止PLC200,则工厂的生产活动等也会立即停止。在这种情况下,用户需要迅速更新许可证文件,但可想而知,完成许可证文件的更新是需要一定程度的时间的。因此,通过将禁止执行PLC程序的时刻设定为经过一定时间之后,因此在该一定时间内可以避免PLC200的停止。
[概括]
如上所述,PLC200的程序执行部205在执行存储在程序存储器204的PLC程序之前,向许可认证部212请求以确认PLC程序的执行权限。许可认证部212使用记录媒介600的许可证文件,判定对PLC程序是否具有执行权限,回复判定结果。然后,当从许可认证部212获得具有执行权限的判定结果时,程序执行部205开始执行存储在PLC程序存储器204中的PLC程序。另外,当从许可认证部212获得没有执行权限的判定结果时,程序执行部205禁止执行存储在PLC程序存储器204中的PLC程序。
因此,在通过开发商和用户之间的许可合同等设定了对PLC程序的使用许可数量的情况下,开发商使用许可证文件颁发装置500来颁发对应于合同约定的数量的许可证文件,由此能够限制用户可使用的PLC程序的PLC的数量。即,能够进行PLC程序的许可管理。
在此,从许可认证部212获得执行许可的情况下,程序执行部205开始执行PLC程序的代码,但是如实施方式一中说明的那样,该代码中包含用于调出安全码核对用SFB功能部206的代码的情况下,根据该代码调出SFB功能部206。然后,程序执行部205只在从SFB功能部206获得PLC程序的执行许可的情况下,才继续执行PLC程序。
并且,也可以设定为仅根据实施方式二的许可证文件来判定是否能执行PLC程序。在这种情况下,当从许可认证部212获得了执行许可时,程序执行部205开始执行PLC程序的代码,但是在该代码中包含有用于调出安全码核对用SFB功能部206的代码的情况下,也会忽略该代码而不会调出SFB功能部206。
(PLC程序的违法使用防止例子)
这里,假设有用户想用合同约定的数量以上的PLC来非法使用PLC程序。即使在这种情况下,根据本实施方式二的控制系统,也能够防止PLC程序的非法使用。
例如,用户从记录媒介(用记录媒介600-1来表示)提取由开发商正规颁发的许可证文件后拷贝到其他记录媒介(用记录媒介600-2表示)。然后,在PLC中插入存储有拷贝的许可证文件的记录媒介600-2,试图执行PLC程序。
然而,由于所拷贝的许可证文件中的“记录媒介的标识符”是记录媒介600-1的“记录媒介的标识符”,因此所拷贝的许可证文件中的“记录媒介的标识符”与记录媒介600-2的“记录媒介的标识符”不一致,PLC程序的执行被禁止(图21的S75)。即,可以防止这种PLC程序的非法使用。
在这种情况下,进一步假设用户对拷贝到记录介质600-2的许可证文件中的“记录媒介的标识符”进行了改写。具体来讲,将所拷贝的许可证文件中的“记录媒介的标识符”从记录媒介600-1的“记录媒介的标识符”改为记录媒介600-2的“记录媒介的标识符”。
然而,由于许可证文件中的信息被改写,导致散列值不一致,因此PLC程序的执行被禁止(图22的S84)。即,即使在这种情况下,也能防止PLC程序的非法使用。
并且,假设用户改写了记录媒介600-1中存储的许可证文件中的“有效期限”的信息,以将有效期限延长为合同约定的有效期限以上。
然而,由于许可证文件中的信息被改写,导致散列值不一致,因此PLC程序的执行被禁止(图22的S84)。即,即使在这种情况下,也能防止PLC程序的非法使用。
综上所述,根据本实施方式一、应用例以及本实施方式二可以提供考虑控制程序的运用和维修性的同时兼顾在PLC上运行的控制程序的安全性而防止控制程序的非法使用的控制系统、控制装置以及控制方法。
在此,本发明并不局限于上述特定的实施方式,在权利要求书中记载的本发明的思想范围内,可以进行各种变形和变更。

Claims (11)

1.一种控制系统,其特征在于,包含许可证文件颁发装置、安全文件颁发装置、安全码注册装置、辅助加载器、控制装置,
所述许可证文件颁发装置具有:
标识符获取单元,从记录媒介获取该记录媒介的固有标识符;
许可证文件生成单元,用于生成包含所述固有标识符和许可证文件的有效期限信息的许可证文件,
所述安全文件颁发装置具有:
安全文件生成单元,用于生成包含第一安全码的安全文件,
所述安全码注册装置具有:
码变换单元,根据预定的算法将从所述安全文件获取的所述第一安全码变换为第二安全码;
安全信息注册单元,用于将包含所述第二安全码的安全信息注册到所述控制装置,
所述辅助加载器具有:
程序制作单元,用于制作包含所述第一安全码和预定的程序代码的用户程序,
所述控制装置具有:
第一存储器,用于存储所述用户程序;
第二存储器,用于存储通过所述安全信息注册单元注册的包含所述第二安全码的安全信息;
标识符获取单元,从存储有所述许可证文件的记录媒介获取该记录媒介的固有标识符;
许可证文件认证单元,比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定为对存储在所述第一存储器的所述用户程序具有执行权限;
执行许可单元,用于许可存储在所述第一存储器的所述用户程序的执行;
程序执行单元,用于执行通过所述执行许可单元许可执行的所述用户程序,
所述执行许可单元在所述许可证文件认证单元中判定为具有执行权限,并且所述第一存储器中存储的所述用户程序中包含所述预定的程序代码时,根据所述预定的算法变换所述用户程序中所包含的第一安全码,并将所变换的该安全码与从存储在所述第二存储器的安全信息获取的第二安全码进行比较,当两者一致时,许可所述用户程序的执行。
2.根据权利要求1所述的控制系统,其特征在于,所述许可证文件认证单元比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符不一致或者该许可证文件不在有效期限内时,判定为对存储在所述第一存储器的所述用户程序不具有执行权限,
当判定为不具有所述执行权限时,所述程序执行单元禁止存储在所述第一存储器的所述用户程序的执行。
3.根据权利要求2所述的控制系统,其特征在于,当判定为不具有所述执行权限时,所述程序执行单元立即禁止或者经过一定时间后禁止存储在所述第一存储器的所述用户程序的执行。
4.根据权利要求1至3中的任意一项所述的控制系统,其特征在于,所述许可证文件生成单元根据所述固有标识符和所述有效期限信息计算散列值,生成包含该散列值的许可证文件,
许可证文件认证单元根据从所述许可证文件获取的所述固有标识符和所述有效期限信息计算散列值,并比较所计算的该散列值与从所述许可证文件获取的散列值,当两者一致时,作出对存储在所述第一存储器的所述用户程序具有执行权限的所述判定。
5.根据权利要求4所述的控制系统,其特征在于,许可证文件认证单元根据从所述许可证文件获取的所述固有标识符和所述有效期限信息计算散列值,并比较所计算的该散列值与从所述许可证文件获取的散列值,当两者不一致时,判定为对存储在所述第一存储器的所述用户程序不具有执行权限。
6.一种控制装置,其特征在于,包含:
第一存储器,用于存储包含第一安全码和预定的程序代码的用户程序;
第二存储器,用于存储安全信息,该安全信息包含通过安全码注册装置根据预定的算法对所述第一安全码进行变换后注册的第二安全码;
标识符获取单元,从存储有包含记录媒介的固有标识符和许可证文件的有效期限信息的许可证文件的记录媒介获取该记录媒介的固有标识符,该记录媒介存储有通过许可证文件颁发装置颁发的许可证文件;
许可证文件认证单元,比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定为对存储在所述第一存储器的所述用户程序具有执行权限;
执行许可单元,用于许可存储在所述第一存储器的所述用户程序的执行;
程序执行单元,用于执行通过所述执行许可单元许可执行的所述用户程序,
所述执行许可单元在所述许可证文件认证单元中判定为具有执行权限,并且所述第一存储器中存储的所述用户程序中包含所述预定的程序代码时,根据所述预定的算法变换所述用户程序中所包含的第一安全码,并将所变换的该安全码与从存储在所述第二存储器的安全信息获取的第二安全码进行比较,当两者一致时,许可所述用户程序的执行。
7.根据权利要求6所述的控制装置,其特征在于,所述许可证文件认证单元比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符不一致或者该许可证文件不在有效期限内时,判定为对存储在所述第一存储器的所述用户程序不具有执行权限,
当判定为不具有所述执行权限时,所述程序执行单元禁止存储在所述第一存储器的所述用户程序的执行。
8.根据权利要求7所述的控制装置,其特征在于,当判定为不具有所述执行权限时,所述程序执行单元立即禁止或者经过一定时间后禁止存储在所述第一存储器的所述用户程序的执行。
9.根据权利要求6至8中的任意一项所述的控制装置,其特征在于,许可证文件生成单元根据所述固有标识符和所述有效期限信息计算散列值,生成包含该散列值的许可证文件,
许可证文件认证单元根据从所述许可证文件获取的所述固有标识符和所述有效期限信息计算散列值,并比较所计算的该散列值与从所述许可证文件获取的散列值,当两者一致时,作出对存储在所述第一存储器的所述用户程序具有执行权限的所述判定。
10.根据权利要求9所述的控制装置,其特征在于,许可证文件认证单元根据从所述许可证文件获取的所述固有标识符和所述有效期限信息计算散列值,并比较所计算的该散列值与从所述许可证文件获取的散列值,当两者不一致时,判定为对存储在所述第一存储器的所述用户程序不具有执行权限。
11.一种程序执行控制方法,其特征在于,
许可证文件颁发装置进行如下处理:
从记录媒介获取该记录媒介的固有标识符;
生成包含所述固有标识符和许可证文件的有效期限信息的许可证文件,
安全码注册装置进行如下处理:
制作安全信息并将其输入到控制装置,该安全信息包含根据预定的算法对第一安全码进行变换而得到的第二安全码,
辅助加载器进行如下处理:
制作包含预定的程序代码和所述第一安全码的用户程序并将其输入到所述控制装置,
所述控制装置进行如下处理:
从存储有包含记录媒介的固有标识符和许可证文件的有效期限信息的许可证文件的记录媒介获取该记录媒介的固有标识符,该记录媒介存储有通过许可证文件颁发装置颁发的许可证文件;
比较从所述许可证文件获取的固有标识符和通过所述标识符获取单元获取的固有标识符,而且比较从所述许可证文件获取的有效期限信息和当前的日期时刻,当两个固有标识符一致且该许可证文件在有效期限内时,判定为对存储在第一存储器的所述用户程序具有执行权限;
所述用户程序中包含所述预定的程序代码时,根据所述预定的算法变换从所述辅助加载器输入的所述第一安全码,并以所变换的该安全码与所述第二安全码一致作为条件,许可所述用户程序的执行。
CN201310086098.2A 2012-05-15 2013-03-18 控制系统、控制装置及程序执行控制方法 Active CN103425909B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012111822A JP5900143B2 (ja) 2012-05-15 2012-05-15 制御システム、制御装置及びプログラム実行制御方法
JP2012-111822 2012-05-15

Publications (2)

Publication Number Publication Date
CN103425909A CN103425909A (zh) 2013-12-04
CN103425909B true CN103425909B (zh) 2016-06-22

Family

ID=49650636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310086098.2A Active CN103425909B (zh) 2012-05-15 2013-03-18 控制系统、控制装置及程序执行控制方法

Country Status (2)

Country Link
JP (1) JP5900143B2 (zh)
CN (1) CN103425909B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068622A (ja) * 2015-09-30 2017-04-06 株式会社Screenホールディングス ライセンス管理システムおよびライセンス管理方法
CN108229207B (zh) * 2016-12-09 2021-09-14 上海新微技术研发中心有限公司 一种具有存储器内部数据防篡改机制的soc芯片及方法
KR102052489B1 (ko) * 2017-06-23 2019-12-05 미쓰비시덴키 가부시키가이샤 래더 프로그램 부정 이용 방지 시스템, 래더 프로그램 부정 이용 방지 방법, 및 엔지니어링 툴
CN107862182B (zh) * 2017-10-16 2021-11-02 深圳市合信自动化技术有限公司 一种plc工程软件保护装置及其保护方法
JP2019159752A (ja) * 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム
JP7226831B2 (ja) * 2018-08-02 2023-02-21 Necソリューションイノベータ株式会社 ライセンス管理装置、プログラム実行装置及び方法、並びにアプリケーションプログラム
CN112639773A (zh) * 2018-08-30 2021-04-09 三菱电机株式会社 控制装置、控制方法及程序
JP7203690B2 (ja) * 2019-05-31 2023-01-13 東京エレクトロン株式会社 ライセンス認証装置及びライセンス認証方法
JP7238632B2 (ja) * 2019-06-26 2023-03-14 オムロン株式会社 制御システム、制御装置、および管理方法
CN111007792A (zh) * 2019-12-04 2020-04-14 山西诚鹏科技开发有限公司 基于多点通讯协议的plc授权过期停机系统
CN111026015A (zh) * 2019-12-04 2020-04-17 山西诚鹏科技开发有限公司 基于点对点通讯协议的plc授权过期停机系统
WO2021161518A1 (ja) * 2020-02-14 2021-08-19 三菱電機株式会社 制御システム、プログラム作成支援装置、プログラム作成支援方法、およびプログラム作成支援プログラム
KR20220094847A (ko) * 2020-12-29 2022-07-06 삼성전자주식회사 보안 데이터 처리 방법 및 이를 지원하는 전자 장치
CN114167804A (zh) * 2021-11-10 2022-03-11 汤臣智能科技(深圳)有限公司 Plc加密程序的认证方法和系统
CN114032612B (zh) * 2021-11-15 2022-12-27 季华实验室 外延设备的系统权限控制方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533438A (zh) * 2008-05-24 2009-09-16 威盛电子股份有限公司 提供安全执行环境的微处理器及其执行安全编码的方法
CN102156840A (zh) * 2010-02-12 2011-08-17 三菱电机株式会社 控制装置以及管理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3630451B2 (ja) * 1994-09-20 2005-03-16 富士通株式会社 ソフトウェア利用制御装置
US7503072B2 (en) * 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
WO2005029241A2 (en) * 2003-09-15 2005-03-31 Plum Thomas S Automated safe secure techniques for eliminating
JP2006259810A (ja) * 2005-03-15 2006-09-28 Matsushita Electric Ind Co Ltd デバッグ装置
KR100724490B1 (ko) * 2005-06-30 2007-06-04 엘에스산전 주식회사 프로그램 유출 방지를 위한 암호 보안 방법
CN100507775C (zh) * 2006-03-13 2009-07-01 富士电机系统株式会社 可编程控制器的编程设备
JP2009070144A (ja) * 2007-09-13 2009-04-02 Omron Corp Plcにおけるプログラミング方法
JP2011164858A (ja) * 2010-02-08 2011-08-25 Yamatake Corp ライセンス設定システムおよびライセンス設定方法
CN102354142A (zh) * 2011-07-26 2012-02-15 深圳市麦格米特控制技术有限公司 一种plc加密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533438A (zh) * 2008-05-24 2009-09-16 威盛电子股份有限公司 提供安全执行环境的微处理器及其执行安全编码的方法
CN102156840A (zh) * 2010-02-12 2011-08-17 三菱电机株式会社 控制装置以及管理装置

Also Published As

Publication number Publication date
CN103425909A (zh) 2013-12-04
JP5900143B2 (ja) 2016-04-06
JP2013239036A (ja) 2013-11-28

Similar Documents

Publication Publication Date Title
CN103425909B (zh) 控制系统、控制装置及程序执行控制方法
CN101662557B (zh) 许可确定设备和许可确定方法
CN106775716B (zh) 一种基于度量机制的可信plc启动方法
CN102841992B (zh) 用于基于计算机的当前组件生成用于受保护的数字数据对象的加密密钥的方法
CN107615292B (zh) 用于管理需要高风险权限访问的应用程序包的安装的系统和方法
CN103827880B (zh) 保护非本机代码安全的方法
Maes et al. A pay-per-use licensing scheme for hardware IP cores in recent SRAM-based FPGAs
CN102156840B (zh) 控制装置以及管理装置
CN104679553B (zh) 用于嵌入式固件的安全分发的方法和装置
CN108304698B (zh) 产品授权使用方法、装置、计算机设备和存储介质
CN103729597A (zh) 系统启动校验方法、系统启动校验装置和终端
JPWO2007097439A1 (ja) プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム
JP5990927B2 (ja) 制御システム、制御装置及びプログラム実行制御方法
CN101866404A (zh) 软件系统模块独立授权控制方法和装置
CN103971034A (zh) 一种保护Java软件的方法及装置
US20030149669A1 (en) Method and system for licensing intellectual property circuits
JP5118700B2 (ja) 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置
EP1950680A1 (en) Communication terminal device, server terminal device, and communication system using the same
JPH1031587A (ja) データ端末装置およびコンピュータプログラム
KR101751098B1 (ko) 이동 단말 장치 칩 프로그래밍을 위한 방법
KR20170102285A (ko) 보안 요소
CN113939778A (zh) 控制系统、控制装置以及管理方法
CN104462932A (zh) 嵌入式设备维护密码的生成及其验证方法
US20100161996A1 (en) System and Method for Developing Computer Chips Containing Sensitive Information
CN107735790A (zh) 用于在安全区域和不太安全区域之间转换的装置和方法

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