JP4495945B2 - Control system with control program protection function - Google Patents
Control system with control program protection function Download PDFInfo
- Publication number
- JP4495945B2 JP4495945B2 JP2003370751A JP2003370751A JP4495945B2 JP 4495945 B2 JP4495945 B2 JP 4495945B2 JP 2003370751 A JP2003370751 A JP 2003370751A JP 2003370751 A JP2003370751 A JP 2003370751A JP 4495945 B2 JP4495945 B2 JP 4495945B2
- Authority
- JP
- Japan
- Prior art keywords
- control program
- control
- access right
- monitor
- execution
- 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 - Lifetime
Links
Images
Description
本発明は、鉄鋼プラント、製紙プラント、化学プラント等の産業設備の監視制御システムにおける制御プログラムの保護機能を備えた制御システムに関する。 The present invention, steel plant, paper manufacturing plant, to a control system having a coercive Mamoruki ability of the control program in the supervisory control system of industrial facilities such as chemical plants.
監視制御システムにおいては、プロセスを制御する制御アルゴリズム等の各種のノウハウをプログラムとして標準化し、流用率の高い制御機能を有する制御プログラムとし、制御システムの信頼性を高めている。 In the supervisory control system, various know-how such as a control algorithm for controlling a process is standardized as a program, and the control program has a control function with a high diversion rate, thereby improving the reliability of the control system.
このような制御プログラムを搭載するPLC(Programmable Logic Controller)等の制御装置においては、通常、IEC61131−3規格(国際電気標準会議)で規定された共通のプログラミング言語を採用して製作され、メーカ間での互換性を有するオブジェクトライブラリーとすることが可能になっている。 In a control device such as a PLC (Programmable Logic Controller) equipped with such a control program, it is usually manufactured by adopting a common programming language defined in the IEC 61131-3 standard (International Electrotechnical Commission). It is possible to make the object library compatible with.
このような従来の制御装置の構成について、図15を参照して説明する。制御装置21はネットワーク24を介してモニタ装置22と接続されている。そして、このモニタ装置22から制御装置21の制御プログラムのプログラミングやモニタを行うようにしている。
The configuration of such a conventional control device will be described with reference to FIG. The
このような構成においては、モニタ装置22から制御プログラムを読み出し・書き込み、制御プログラムの改ざんをすることが可能であるため、ノウハウを有する制御プログラムが流出したり、改ざんされたりして使用される恐れがある。
In such a configuration, the control program can be read / written from the
従来のプログラムの保護方法としては、時間によって変化する暗号キーで、データバスを流れる情報を暗号化する方法が知られている(例えば、特許文献1参照。) As a conventional method for protecting a program, a method of encrypting information flowing through a data bus with an encryption key that changes with time is known (see, for example, Patent Document 1).
しかしながら、制御装置21のモニタ装置22では、運転や保守に必要な制御プログラムはオープン化することが必須で、制御プログラムに含まれる特定の保護すべき特定制御プログラムのみを保護したい場合の保護方法は知られていない。また、暗号化する方法では、暗号化することによって制御プログラム事態の制御性が変化する恐れもある。
However, in the
さらに、このような暗号化には特別のハードウエアーが必要となり装置は複雑で高価になる問題がある。
上述したような、従来のプログラムの保護方法には、ネットワークに接続された複数のモニタ装置を備えた制御装置において、制御装置に格納される制御プログラムを構成する、保護すべき特定制御プログラムや保護すべきファンクションプログラムのみを保護する方法は知られていない。また、保護することによって応答時間など、制御性が変化する問題については考慮されていない。 In the conventional program protection method as described above, in a control device having a plurality of monitor devices connected to a network, a control program stored in the control device and a specific control program to be protected or protection There is no known way to protect only function programs that should be done. Moreover, the problem that controllability changes, such as response time, by protecting is not considered.
本発明は上記問題点を解決するためになされたもので、制御プログラムを構成する保護すべき特定制御プログラムの改ざんやモニタを、制御性を損なうことなく、モニタ装置からのアクセスに対する応答を制限する制御プログラムの保護機能を備えた制御システムを提供することを目的とする。 The present invention has been made to solve the above-described problems, and limits the response to access from the monitor device without altering the control or alteration of the specific control program to be protected that constitutes the control program. and to provide a control system having the coercive Mamoruki ability of the control program.
上記目的を達成するために、請求項1に係る制御プログラムの保護機能を備えた制御システムは、開示可能な制御プログラムと保護すべき特定制御プログラムとで構成する制御プログラムを記憶する制御プログラムメモリと、前記制御プログラムの変数値を記憶する制御データメモリと、前記制御プログラムメモリに記憶された前記制御プログラムを実行する制御プログラム実行制御部とを備える制御装置と、前記制御装置にネットワークを介して接続されたモニタ装置とを備える制御システムにおいて、前記特定制御プログラムは、前記制御プログラムのプログラム及びデータをトレースする実行モニタに対する許可または禁止の処理を指令するアクセス権指定命令を、当該前記特定制御プログラムに複数個分散して、予め挿入し、更に、前記モニタ装置から前記制御プログラムに対する前記実行モニタに対する許可または禁止を指定するアクセス権指定情報を前記制御プログラム毎に対応付けて記述した制御プログラムアクセス権管理テーブルを前記制御プログラム実行制御部内のメモリに予め記憶し、前記制御プログラム実行制御部は、前記モニタ装置から実行中の前記特定制御プログラムに前記実行モニタの要求が有った場合、前記アクセス権指定命令を実行する毎に、当該アクセス権指定命令のオペランドに記憶される制御プログラム実行モニタ許可/禁止情報及び前記制御プログラムアクセス権管理テーブルのアクセス権指定情報を参照して、前記実行モニタを禁止するようにしたことを特徴とする。
In order to achieve the above object, a control system having a control program protection function according to
本発明によれば、制御装置の制御プログラムを構成する保護すべき特定制御プログラム毎に、制御プログラム実行中に、制御プログラム、制御データのモニタやアクセスを制限することが可能なアクセス権の制限手段を備えたので、制御プログラムの制御性能を変えることなく、保護すべき特定制御プログラムに対してのみ、保護機能の設定が可能で、改ざんや、不正なアクセスに対して強い保護機能を備えた制御装置を提供することができる。 According to the present invention, for each specific control program to be protected that constitutes the control program of the control device, the access right limiting means capable of limiting the monitoring and access of the control program and control data during the execution of the control program. Therefore, it is possible to set protection functions only for specific control programs to be protected without changing the control performance of the control program, and control with strong protection functions against tampering and unauthorized access. An apparatus can be provided.
以下、図面を参照して、本発明の実施例を説明する。 Embodiments of the present invention will be described below with reference to the drawings.
以下、本発明による実施例1について図1乃至図5を参照して説明する。図1は、実施例1の制御システムの構成を示すブロック図である。図1において、制御装置1は、被制御対象3を制御する制御プログラム実行制御部10、被制御対象3を制御する制御プログラムを格納する制御プログラムメモリ15及びこの制御プログラムの変数である制御データを格納する制御データメモリ16とから構成される。
A first embodiment of the present invention will be described below with reference to FIGS. FIG. 1 is a block diagram illustrating a configuration of a control system according to the first embodiment. In FIG. 1, the
また、制御プログラム実行制御部10と、制御プログラムメモリ15及び制御データメモリ16とは、制御プログラム実行制御部10のシステムバス19で接続されている。
The control program execution control unit 10, the
そして、制御装置1は、制御プログラム実行制御部10の入出力インタフェース17を介して被制御対象3と接続し、被制御対象3を制御している。また、制御装置1のモニタは、制御プログラム実行制御部10の通信インタフェース18を介してネットワーク4と接続し、このネットワーク4に接続されるモニタ装置2によって行う構成としている。
The
ここでモニタ装置2とは、この制御装置1の運転や制御プログラムの保守のために必要な機能を備えたもので、図示しない制御装置1の制御プログラムの開発や制御プログラムの設定に使用するモニタ・プログラミング装置とは異なる装置である。また、このモニタ装置2は、複数台でも構成される。
Here, the
次に、この制御プログラム実行制御部10の詳細構成を説明する。制御プログラム実行制御部10は、CPU11、CPU14、このCPU11とCPU14の2CPUシステムの基本ソフトを搭載するプログラムメモリ12、モニタ装置2からのアクセスを指定する第1のアクセス権指定情報を格納するデータメモリ13、入出力インタフェース17及び通信インタフェース18とから構成され、これら各部がシステムバス19で接続された構成となっている。
Next, a detailed configuration of the control program execution control unit 10 will be described. The control program execution control unit 10 includes a CPU 11, a
また、制御装置1の仕事は、CPU11とCPU14とで予め分担するように設定され、CPU11は通信インタフェース18を介してネットワーク4に接続されるモニタ装置2との応答を制御し、CPU14は、被制御対象3を制御する制御プログラムの実行を制御するようにしておく。
The work of the
CPU14は、制御プログラムメモリ15に格納され、モニタ装置2からのアクセスを制限する第2のアクセス権指定情報を挿入した制御プログラム、及び制御データメモリ16に格納された制御プログラムで使用される制御データを、システムバス19を介してそれらの信号を授受して制御プログラムを実行し、システムバス19に接続される入出力インタフェース17を介して被制御対象3を制御している。
The
次にこのように構成された制御装置1の制御プログラムの構成を図2に示す。制御プログラムの構成は、例えば、ネットワーク4に接続されるモニタ装置2において開示可能な制御プログラムa(プログラム名称:MS0001)、c(プログラム名称:MS0002)と、保護すべき特定制御プログラムb(プログラム名称:HS0001)、d(プログラム名称:HS0003)とから構成される。
Next, FIG. 2 shows the configuration of the control program of the
開示可能な制御プログラムa、cとは、制御装置1を使用する場合に必要な制御プログラムとして開放されたアプリケーションプログラムで、保護すべき特定制御プログラムb、dとは、例えば、固有のノウハウを有する制御アルゴリズムなどを言う。
The control programs a and c that can be disclosed are application programs that are opened as control programs necessary when the
保護すべき特定制御プログラムの夫々の先頭アドレスにはアクセス権指定領域を設け、図3に示す様に制御プログラム先頭アドレステーブルとして、予めデータメモリ13に格納しておく。
An access right designation area is provided at each head address of the specific control program to be protected, and stored in the
例えば、プログラム名称MS0001の先頭アドレスはOOOXXXXHとして格納される。 For example, the head address of the program name MS0001 is stored as OOOXXXXH.
この制御プログラム先頭アドレステーブルは、制御プログラムを構成する全てのプログラムについて作成しても良いが、少なくとも保護すべき対象の制御プログラムについて作成してあれば良い。 The control program head address table may be created for all the programs constituting the control program, but at least for the control program to be protected.
また、保護すべき特定制御プログラムの先頭アドレスに記載されるアクセス権指定領域のデータの例を図4に示す。図4において、POU識別情報とは、(1)乃至(5)の情報から構成され、当該制御プログラムのアクセス権の許可/禁止を指定する情報を記載したものである。 FIG. 4 shows an example of data in the access right designation area described at the head address of the specific control program to be protected. In FIG. 4, the POU identification information is composed of information (1) to (5) and describes information for designating permission / prohibition of the access right of the control program.
例えば、(1)は、制御プログラムの読出しの許可/禁止、(2)は、制御プログラムの書き込み許可/禁止、(3)は制御プログラムの実行モニタの許可/禁止、(4)は制御データの読出し許可/禁止、(5)制御データの書き込み許可/禁止等をアクセス権の指定情報とする。 For example, (1) is control program read permission / prohibition, (2) is control program write permission / prohibition, (3) is control program execution monitor permission / prohibition, (4) is control data Read permission / prohibition, (5) control data write permission / prohibition, etc. are used as access right designation information.
次に、モニタ装置2から、制御装置1に制御プログラムに対するアクセス応答要求が、ネットワーク4を介して実行された時の制御装置1の動作について、図5を参照して説明する。
Next, the operation of the
モニタ装置2からネットワーク4を介して、制御プログラムに対するアクセスがある(S51)と、この応答はCPU11が処理する。CPU11は、モニタ装置2から要求された制御プログラムのプログラム名称のアドレス、例えば、MS0001の場合の先頭アドレスOOOXXXXHを、データメモリ13に格納された制御プログラム先頭アドレステーブルを参照して求め、その制御プログラムの先頭アドレスOOOXXXXHを検索する(S52)。
When there is an access to the control program from the
そして、CPU11は、求めた先頭アドレスOOOXXXXHのデータを、システムバス19を介してCPU14に通知する。CPU14は、このアドレスの制御プログラムデータであるアクセス権指定領域のデータを、システムバス19を介して送信し、CPU11はこのアクセス権指定領域のデータを受信する(S53)。
Then, the CPU 11 notifies the
CPU11は、モニタ装置2から要求された制御プログラムのアクセス権指定領域の(1)乃至(5)に示す許可/禁止のデータによって、この要求が許可されているか、禁止されているものかを判定する(S54)。
The CPU 11 determines whether this request is permitted or prohibited by the permission / prohibition data shown in (1) to (5) in the access right designation area of the control program requested from the
そして、この要求が許可されたものであれば、再びCPU14に対して要求された制御プログラムを要求し、CPU14はシステムバス19を介して、制御プログラムメモリ15から当該制御プログラムを読出し、CPU11がこの読み出された当該制御プログラムMS0001をモニタ装置2に送信する(S55)。
If the request is permitted, the
要求が許可されたものでなければ、モニタ装置2に対して要求された制御プログラムへのアクセスが不可であることを送信する。
If the request is not permitted, the
ここでは、ステップS53,ステップS55では、CPU11がアクセス権指定領域のデータを、CPU14を介して受信するようにしたが、CPU11がシステムバス19を介して直接アクセスするようにしても良い。
Here, in step S53 and step S55, the CPU 11 receives the data in the access right designation area via the
以上述べたように、実施例1によれば、ネットワーク4に接続されたモニタ装置2からのアクセス要求を、制御プログラム毎に送信可能な制御プログラムであるかを、当該制御プログラム先頭アドレスに記載されたアクセス権指定領域のデータを参照して判定するようにしているので、モニタ装置2から許可しないアクセス応答あった場合でも、その要求を制限することが可能となる。
As described above, according to the first embodiment, whether the access request from the
実施例2の構成は、実施例1で説明した、図1に示す構成と同じで、同一部分は同じ記号を付しその説明を省略する。 The configuration of the second embodiment is the same as the configuration shown in FIG. 1 described in the first embodiment, and the same parts are denoted by the same reference numerals and the description thereof is omitted.
実施例2が、実施例1と異なる点は、実施例1ではデータメモリ13の第1のアクセス権指定情報としては、制御プログラム先頭アドレステーブルを、また制御プログラムメモリ15の第2のアクセス権指定情報としては、保護すべき特定制御プログラム毎の先頭アドレスにアクセス権指定領域のデータを挿入し、モニタ装置2からのアクセス応答を当該制御プログラム毎に判定して制限したが、本実施例2においては、更に、第2のアクセス権指定情報としてデータメモリ13にモニタアクセス許可テーブルのみを格納してモニタ装置2からのアクセスの応答を予め制限するように構成していることにある。
The second embodiment is different from the first embodiment in that the first access right designation information of the
このように構成した本実施例2について、図1、図6乃至図8を参照して説明する。図6はネットワーク4に接続されたモニタ装置2のIPアドレスとMAC(Media Access Control)アドレスを、予め制御プログラム対するアクセス許可/禁止情報をテーブルとしてデータメモリ13に備えておく。
The second embodiment configured as described above will be described with reference to FIGS. 1 and 6 to 8. In FIG. 6, the IP address and MAC (Media Access Control) address of the
例えば、モニタ装置番号1については、IPアドレス133.113.91.238、MACアドレス00-00-39-02-33-99として、予め対応づけて格納しておく。
For example, the
または、図7に示す様に、制御プログラムをダウンロードするときに、データメモリ13に保護すべき特定制御プログラム毎に、制御プログラムのダウンロードを許可したIPアドレスとMACアドレスとを、制御プログラム格納IPアドレステーブルとして格納しておく。
Alternatively, as shown in FIG. 7, when the control program is downloaded, the control program storage IP address is assigned to the IP address and the MAC address permitted to download the control program for each specific control program to be protected in the
例えば、プログラム名称MS0001については、IPアドレス133.113.91.238、MACアドレス00-00-39-02-33-99として、予め対応づけて格納しておく。 For example, the program name MS0001 is stored in advance as an IP address 133.113.91.238 and a MAC address 00-00-39-02-33-99.
次に、このように作成されたテーブル使用して、ネットワーク4に接続されたモニタ装置2からのアクセス応答要求に対する実施例2の動作について、図8を参照して説明する。
Next, the operation of the second embodiment in response to an access response request from the
CPU11は、モニタ装置2からのアクセス応答の有無を判定(S61)、要求されたモニタ装置2の番号または、要求された制御プログラムの名称に該当するIPアドレス、MACアドレスに一致したものが存在するか、データメモリ13に格納されたモニタ装置アクセス許可テーブルまたは制御プログラム格納IPアドレステーブルを参照して判定する(S62)。
The CPU 11 determines whether or not there is an access response from the monitor device 2 (S61), and there is a match with the requested
以下この後の処理動作については、図5に示したものと同じであるのでその説明を省略する。 The subsequent processing operation is the same as that shown in FIG.
以上説明したように実施例2によれば、モニタ装置2から制御プログラムのアクセス要求を予め許可したモニタ装置2のIPアドレスと、MACアドレスをテーブルとして格納しておき、このテーブルを参照してモニタ装置2からのアクセスを予め制限するようにしたので、制御プログラムの保護が、更に強くできる。
As described above, according to the second embodiment, the IP address and MAC address of the
実施例3の構成は、実施例1、2で説明した図1に示す構成と同じで、同一部分は、同じ記号を付しその説明を省略する。 The configuration of the third embodiment is the same as the configuration shown in FIG. 1 described in the first and second embodiments, and the same parts are denoted by the same reference numerals and the description thereof is omitted.
実施例3が、実施例1及び実施例2と異なる点は、実施例1及び実施例2ではCPU11が、モニタ装置2からのアクセス要求に対して、データメモリ13に格納される第1のアクセス権指定情報である制御プログラム先頭アドレステーブルや、モニタアクセ許可テーブルを参照し、更に、第2のアクセス権指定情報が格納される制御プログラムメモリ15の保護すべき特定制御プログラム毎の先頭アドレス挿入されたアクセス権指定領域のデータを参照して、モニタ装置2からのアクセス応答を当該制御プログラム毎に判定して制限したが、本実施例3においては、更に、実行中の制御プログラムに対して、そのプログラム及びデータをトレースするモニタ要求(以後実行モニタと言う)に対して、制御プログラムを実行するCPU14が、第2のアクセス権指定情報として、アクセス権を指定する命令を保護すべき特定制御プログラム毎の先頭アドレスに挿入し、モニタ装置2からの保護すべき特定制御プログラムの実行モニタの要求に対する応答を、制御プログラムの実行中に制限しようとするように構成していることにある。
The third embodiment differs from the first and second embodiments in that in the first and second embodiments, the CPU 11 performs the first access stored in the
即ち、実行中の制御プログラムに対する応答の制限は、CPU14が実行する。
That is, the
このように構成された実施例3について、図1と、図9及び図10を参照して説明する。図9は、制御プログラムメモリ15に格納される制御プログラムの保護すべき特定制御プログラム毎の先頭アドレスに挿入するアクセス権指定命令の例を示し、例えば、その命令の構造は、命令コードPOU、オペランド部には即値でアクセス権情報として、制御プログラム実行モニタの許可/禁止(3)が記述されている。
The third embodiment configured as described above will be described with reference to FIGS. 1, 9, and 10. FIG. 9 shows an example of an access right designation instruction to be inserted at the head address for each specific control program to be protected of the control program stored in the
また、制御プログラムを実行するCPU14の構成を、図10を参照して説明する。図10において、CPU14は、制御回路141と命令カウンタ142、制御プログラムメモリ15に格納されている制御プログラムを、アドレスバッファ143及びシステムバス19を介して読出し、読み出された制御プログラムを、データバッファ144を介して格納する命令レジスタ145、格納された命令レジスタの命令をデコードする命令デコーダ146、デコードされた命令にしたがって演算を行う演算回路149及びそのワークレジスタ149a、演算結果や読み込んだデータを一次格納するデータレジスタ147及びデコードされた情報を記憶するアクセスフラグ制御回路148とから構成される。
The configuration of the
次に、CPU14の動作について同じく図10を参照して説明する。図10において、制御回路141が、命令カウンタ142に設定されている、制御プログラムメモリ15の読出し命令のアドレスがアドレスバッファ143を介してシステムバス19に出力される。
Next, the operation of the
すると、制御プログラムメモリ15の制御プログラムから読み出された命令が、データバッファ144を介して命令レジスタ145に格納される。命令レジスタ145に格納された制御プログラムの命令コードが命令デコーダ146でデコードされ、アクセスフラグ制御回路148及び演算回路149に出力される。
Then, the instruction read from the control program in the
読み出された命令が、図9に示したアクセス権指定命令であった場合、アクセス制御回路148にはそのオペランドに示された制御プログラム実行モニタ許可/禁止(3)情報が格納される。 When the read instruction is the access right designation instruction shown in FIG. 9, the access control circuit 148 stores the control program execution monitor permission / prohibition (3) information indicated by the operand.
以後、アクセスフラグ制御回路148に制御プログラム実行モニタ許可/禁止(3)情報が格納された状態で、モニタ装置2からシステムバス19を介して保護すべき特定制御プログラムに対してモニタ要求がアクセスされた場合、読み出された保護すべき特定制御プログラムの先頭アドレスに挿入されたアクセス権指定命令で指示されるオペランド部の情報をアクセス権制御フラグ回路148から読みだし、制御プログラム実行モニタの許可/禁止データ(3)にしたがって、その結果を、データレジスタ147を介してデータバッファ144からシステムバス19に出力し、モニタ装置2に応答を返す。
Thereafter, a monitor request is accessed from the
即ち、保護すべき特定制御プログラムの先頭アドレスに挿入されたアクセス権指定命令にしたがって、モニタ装置2への返信を制限し、実行中の制御プログラムに対するモニタ要求に対して保護すべき特定制御プログラム毎に保護機能を設定することができる。
That is, according to the access right designation command inserted at the head address of the specific control program to be protected, the reply to the
実施例4の構成は、実施例1乃至実施例3説明した図1に示す構成と同じで、同一部分は、同じ記号を付しその説明を省略する。 The configuration of the fourth embodiment is the same as the configuration shown in FIG. 1 described in the first to third embodiments, and the same portions are denoted by the same reference numerals and the description thereof is omitted.
実施例4が、実施例3と異なる点は、実施例3においては、CPU14が第2のアクセス権指定情報として、保護すべき特定制御プログラム毎の先頭アドレス位置に固定して命令を挿入し、モニタ装置2からの実行モニタの要求に対する応答を制限したが、本実施例4が実施例3と異なる点は、第2のアクセス権指定情報として保護すべき特定制御プログラム毎に複数、任意の位置にアクセス権指定命令を分散させて挿入し、制御プログラムや制御データの実行モニタによる読み出し要求に対し、改ざんされた要求でないことを回数を増して検証し、確実に制限できる応答とするようにしたことにある。
The fourth embodiment is different from the third embodiment in that in the third embodiment, the
本実施例4について、図11を参照して説明する。 図11は、アクセス権指定命令の例で、この命令コードはACCNTL、オペランド部には制御プログラムの実行モニタ許可/禁止(3)が記述されている。 The fourth embodiment will be described with reference to FIG. FIG. 11 shows an example of an access right designation instruction. This instruction code is ACCNTL, and the operand section describes execution monitor permission / prohibition (3).
CPU14が本命例を実行すると、この制御プログラムアクセス権管理テーブルとアクセス権指定命令(ACCNTL)のオペランドに記述される制御プログラム実行モニタの許可/禁止(3)情報が、アクセス制御フラグ回路148に格納される。
When the
この命令を、保護すべき特定制御プログラムの任意のアドレスに、複数個を挿入しておくことによって、同一のプログラム内で挿入個数分、アクセス制御回路148のアクセス権情報がランダムに更新される。 By inserting a plurality of these instructions into arbitrary addresses of the specific control program to be protected, the access right information of the access control circuit 148 is randomly updated by the number of insertions in the same program.
即ち、制御プログラムアクセス権管理テーブルや、複数箇所のアクセス権指定命令(ACCNTL)のオペランド情報の改ざんがされても、いずれか1箇所でも制御プログラム実行モニタの禁止(3)情禁があれば、モニタ装置2から制御プログラムに対するモニタ要求に対して、アクセスを制限することが可能となり、改ざんに対する保護機能を高くすることができる。
In other words, even if the control program access right management table or the operand information of the access right designation command (ACCNTL) in multiple places is falsified, the control program execution monitor is prohibited in any one place (3) Access to the monitor request for the control program from the
また、アクセス権指定命令(ACCNTL)は、NOPとし、制御応答に影響しないようにすることも容易に実現できる。 In addition, the access right designation command (ACCNTL) can be set to NOP so as not to affect the control response.
実施例5の構成は、実施例1乃至実施例3説明した図1に示す構成と同じで、同一部分は、同じ記号を付しその説明を省略する。 The configuration of the fifth embodiment is the same as the configuration shown in FIG. 1 described in the first to third embodiments, and the same portions are denoted by the same reference numerals and the description thereof is omitted.
実施例5が、実施例4と異なる点は、実施例4においては、第2のアクセス権指定情報として保護すべき特定制御プログラム毎に複数、任意の位置にアクセス権指定命令を分散させて挿入し、制御プログラムや制御データの実行モニタによる読み出し要求に対し、改ざんされた要求でないことを回数を増して実証し、確実に制限できる応答とするようにしたが、本実施例5が実施例4と異なる点は、第2のアクセス権指定情報として保護すべき特定制御プログラム毎に複数、任意の位置にアクセス権指定命令を分散させて挿入するとともに、第1のアクセス権指定情報として、制御プログラムアクセス権管理テーブルを設定し、各々のアクセス権情報を比較、判定して、改ざんされた要求でないことを、更に、確実に実証し、制御プログラムや制御データの実行モニタによる読み出し要求に対する応答を制限をするようにしたことにある。 The fifth embodiment is different from the fourth embodiment in that, in the fourth embodiment, a plurality of access right designation instructions are distributed and inserted at arbitrary positions for each specific control program to be protected as the second access right designation information. In response to a read request by the execution monitor of the control program and control data, it is verified that the request is not falsified by increasing the number of times, and the response can be surely limited. The difference is that, for each specific control program to be protected as the second access right designation information, a plurality of access right designation instructions are distributed and inserted at arbitrary positions, and the control program is used as the first access right designation information. Set the access right management table, compare and judge each access right information, and more reliably verify that it is not a falsified request, and control program In that so as to limit the response to a read request by the execution monitor control data.
本実施例5について、図12乃至図14を参照して説明する。図13は、アクセス権指定命令の例で、この命令コードはACCVERFY、オペランド部には制御プログラムの実行モニタ許可/禁止(3)が記述されている。
The fifth embodiment will be described with reference to FIGS. Figure 1 3 is an example of the access right specified instruction, the instruction code ACCVERFY, the operand unit execution monitor enable / disable control program (3) is described.
また、図12は、制御プログラムアクセス権指定管理テーブルの例を示し、例えば、プログラム名称MS0002 については、アクセス権指定情報として制御プログラムの実行モニタ許可/禁止(3)を予め設定しておく。 FIG. 12 shows an example of a control program access right designation management table. For example, for the program name MS0002, execution monitoring permission / prohibition (3) of the control program is set in advance as access right designation information.
このアクセス権指定命令(ACCVERFY)をCPU14が実行すると、この制御プログラムアクセス権管理テーブルのアクセス権情報とアクセス権指定命令(ACCVERFY)のオペランドに記述される制御プログラム実行モニタの許可/禁止(3)情報が、アクセスフラグ制御回路148に格納され、前回のこの命令時に格納されたアクセスフラグ制御回路148と演算回路149で比較される。
When the
そして、この命令を、保護すべき特定制御プログラムの任意のアドレスに挿入しておくことによって、同一のプログラム内に挿入された命令の数に応じてアクセスフラグ制御回路148のアクセス権情報が複数回更新され、更に、演算回路149で制御プログラムアクセス権管理テーブルとアクセス権指定命令(ACCVERFY)のアクセス権情報を夫々の前回データとの比較、または、少なくとも一方の比較が行われ、相違の有無が判定される。
Then, by inserting this instruction at an arbitrary address of the specific control program to be protected, the access right information of the access flag control circuit 148 can be changed multiple times according to the number of instructions inserted in the same program. Further, the
そして、一カ所でもアクセス指定権情報に相違があれば、モニタ装置2への応答が禁止され、制限される。
If there is a difference in the access designation right information even at one place, the response to the
即ち、制御プログラムアクセス権管理テーブル、または複数箇所に挿入したアクセス権指定命令(ACCVERFY)のオペランド情報の改ざんがされても、いずれか1箇所でもアクセスの禁止が判定出力されれば、改ざんの異常が発見されるとともに、応答が制限(禁止)され、制御プログラム及びそのデータが保護される。 In other words, even if the control program access right management table or the operand information of the access right designation instruction (ACCVERFY) inserted in a plurality of places is falsified, if access prohibition is judged and output in any one place, the falsification is abnormal. And the response is restricted (prohibited), and the control program and its data are protected.
以下、図14を参照して実施例5のこれらの命令を使用したときの処理フローを説明する。図14において、保護対象とする制御プログラム毎に図13に示すアクセス権指定命令(ACCVERFY)を、任意のアドレスに複数箇所挿入する(S141)。 Hereinafter, a processing flow when these instructions of the fifth embodiment are used will be described with reference to FIG. In FIG. 14, a plurality of access right designation instructions (ACCVERFY) shown in FIG. 13 are inserted into arbitrary addresses for each control program to be protected (S141).
また、保護対象とする第1のアクセス権指定情報として、図12に示したアクセス権管理テーブルを、予めデータメモリ13に格納しておく(S142)。
Further, as the first access right designation information to be protected, the access right management table shown in FIG. 12 is stored in the
次に、モニタ装置2から実行中の制御プログラムに対して実行プログラムのモニタ要求がされたとする(S143)。
Next, it is assumed that an execution program monitor request is issued from the
するとCPU14は、データメモリ13を参照して、要求された制御プログラム、例えば、MS0002を実行する(S144)。
Then, the
要求された制御プログラムが実行され、その中に保護対象とする制御プログラムであれば、当該制御プログラムに書き込まれたアクセス権指定命令(ACCVERFY)を実行し、書き込まれたオペランド部の制御プログラム実行モニタ許可/禁止(3)情報及びデータメモリに格納される制御プログラム管理テーブルのアクセス権情報とを、アクセスフラグ制御回路148に読み込み、夫々のアクセス権指定データが一致しているか否かを判定する(S145)。 If the requested control program is executed and if it is a control program to be protected, the access right designation instruction (ACC VERFY ) written in the control program is executed, and the control program execution of the written operand part is executed Monitor permission / prohibition (3) The information and the access right information of the control program management table stored in the data memory are read into the access flag control circuit 148 and it is determined whether or not the respective access right designation data match. (S145).
そして、例えば、モニタ装置2から要求された制御プログラムMS0002のアクセス権指定データに相違があり、且つ禁止されている制御プログラム及びそのデータの要求であれば、改ざん有りと判定するとともに、要求されたプログラムの送信及び制御データの送信が不可であることを送信する(S147)。そうでない許可されている制御プログラム及びそのデータの要求で、不一致がなければ、要求された制御プログラム及びデータを送信する(S147)。
For example, if there is a difference in the access right designation data of the control program MS0002 requested from the
アクセス権指定命令(ACCVERFY)が複数箇所に挿入されている場合は、上記の動作を複数回実行する。 When the access right designation command (ACCVERFY) is inserted at a plurality of locations, the above operation is executed a plurality of times.
本実施例5によれば、保護対象とする制御プログラム毎に、アクセス権指定命令を任意の箇所に複数箇所挿入し、また、予め設定されるモニタ装置アクセス許可テーブルを設定したことによって、一カ所でもアクセス権指定情報の相違が検出されるので、改ざんされる確率が極めて低い、制御プログラム毎の保護が容易に実現される。 According to the fifth embodiment, for each control program to be protected, a plurality of access right designation instructions are inserted at arbitrary locations, and a preset monitor device access permission table is set. However, since a difference in access right designation information is detected, protection for each control program with a very low probability of falsification can be easily realized.
また、このアクセス権指定命令(ACCVRFY)も、NOPとし、制御応答に影響しないようにすることが、容易に実現される。 In addition, this access right designation command (ACCVRFY) is also set to NOP so that it does not affect the control response.
また、以上の説明では、CPUはCPU11とCPU14で構成される2CPUシステムとして説明したが、1CPUシステムとして構成することも可能である。また、データメモリ13と制御データメモリ16とを合わせたメモリとし、このメモリ上に制御データと第1のアクセス権情報を格納するように構成することも可能である。
In the above description, the CPU is described as a two-CPU system including the CPU 11 and the
本発明は、上述した実施例に何ら限定されるものではなく、モニタ装置2からのアクセスを制限する第1のアクセス権制御情報と、実行命令としての第2のアクセス権指定情報との組み合わせを替えて実行することも可能で、本発明の主旨を逸脱しない範囲で種々変形して実施することができる。
The present invention is not limited to the above-described embodiment, and a combination of the first access right control information for restricting access from the
1、21 制御装置
2、22 モニタ装置
3 被制御対象
4、24 ネットワーク
10 制御プログラム実行制御部
11 CPU
12 プログラムメモリ
13 データメモリ
14 CPU
15 制御プログラムメモリ
16 制御データメモリ
17 入出力インタフェース
18 通信インタフェース
19 システムバス
141 バス制御回路
142 命令カウンタ
143 アドレスバッファ
144 データバッファ
145 命令レジスタ
146 命令デコーダ
147 データレジスタ
148 アクセスフラグ制御回路
149 演算回路
149a ワークレジスタ
1, 21
12
15 control program memory 16
Claims (4)
前記制御装置にネットワークを介して接続されたモニタ装置と
を備える制御システムにおいて、
前記特定制御プログラムは、前記制御プログラムのプログラム及びデータをトレースする実行モニタに対する許可または禁止の処理を指令するアクセス権指定命令を、当該前記特定制御プログラムに複数個分散して、予め挿入し、
更に、前記モニタ装置から前記制御プログラムに対する前記実行モニタに対する許可または禁止を指定するアクセス権指定情報を前記制御プログラム毎に対応付けて記述した制御プログラムアクセス権管理テーブルを前記制御プログラム実行制御部内のメモリに予め記憶し、
前記制御プログラム実行制御部は、前記モニタ装置から実行中の前記特定制御プログラムに前記実行モニタの要求が有った場合、前記アクセス権指定命令を実行する毎に、当該アクセス権指定命令のオペランドに記憶される制御プログラム実行モニタ許可/禁止情報及び前記制御プログラムアクセス権管理テーブルのアクセス権指定情報を参照して、前記実行モニタを禁止するようにしたことを特徴とする制御プログラムの保護機能を備えた制御システム。 A control program memory for storing a control program comprising a control program that can be disclosed and a specific control program to be protected; a control data memory for storing variable values of the control program; and the control stored in the control program memory A control device comprising a control program execution control unit for executing a program;
In a control system comprising a monitor device connected to the control device via a network,
The specific control program, a plurality of access right designation instructions for instructing permission or prohibition processing for the execution monitor that traces the program and data of the control program are distributed in the specific control program and inserted in advance.
Further, a control program access right management table in which access right designation information for designating permission or prohibition for the execution monitor for the control program from the monitor device is described for each control program is stored in the memory in the control program execution control unit. In advance,
When there is a request for execution monitoring from the monitor device to the specific control program being executed, the control program execution control unit sets an operand of the access right designation instruction every time the access right designation instruction is executed. A control program protection function characterized in that the execution monitor is prohibited with reference to stored control program execution monitor permission / prohibition information and access right designation information in the control program access right management table. Control system.
さらに、前記制御プログラムアクセス権管理テーブルの前回のアクセス権指定情報と今回のアクセス権指定情報とを比較し、
すくなくとも、いずれか一方の比較を行い、一箇所でも相違があるか否かを参照し、相違があれば前記実行モニタを禁止する命令であることを特徴とする請求項1に記載の制御プログラムの保護機能を備えた制御システム。 The access right designation command compares the previous control program execution monitor permission / prohibition information with the current control program execution monitor permission / prohibition information,
Furthermore, the previous access right designation information in the control program access right management table is compared with the current access right designation information,
2. The control program according to claim 1, wherein at least one of the comparisons is performed, and whether or not there is a difference at one place is referred to, and if there is a difference, the instruction is prohibited from the execution monitor . Control system with protection function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003370751A JP4495945B2 (en) | 2003-10-30 | 2003-10-30 | Control system with control program protection function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003370751A JP4495945B2 (en) | 2003-10-30 | 2003-10-30 | Control system with control program protection function |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005135165A JP2005135165A (en) | 2005-05-26 |
JP4495945B2 true JP4495945B2 (en) | 2010-07-07 |
Family
ID=34647662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003370751A Expired - Lifetime JP4495945B2 (en) | 2003-10-30 | 2003-10-30 | Control system with control program protection function |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4495945B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007128363A (en) * | 2005-11-04 | 2007-05-24 | Omron Corp | Programmable controller system |
JP5759885B2 (en) * | 2011-12-21 | 2015-08-05 | 株式会社日立産機システム | Programmable controller |
JP5951405B2 (en) * | 2012-08-09 | 2016-07-13 | 株式会社東芝 | Programmable controller, engineering tool program, and system thereof |
JP6541912B2 (en) * | 2017-03-02 | 2019-07-10 | 三菱電機株式会社 | Information processing apparatus and access control program |
JP7230353B2 (en) * | 2018-06-29 | 2023-03-01 | 株式会社ジェイテクト | Equipment control device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124308A (en) * | 1996-10-25 | 1998-05-15 | Mitsubishi Electric Corp | Method for protecting program in programmable controller |
JP2002312053A (en) * | 2001-04-18 | 2002-10-25 | Toshiba Tec Corp | Execution protection system and data processing device |
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 |
JP2003167640A (en) * | 2001-11-30 | 2003-06-13 | Nec Infrontia Corp | Method for preventing unauthorized use of program |
JP2003342290A (en) * | 2002-05-22 | 2003-12-03 | Media Price:Kk | Method for recovering momordicin by using cucurbitaceous plant as raw material |
-
2003
- 2003-10-30 JP JP2003370751A patent/JP4495945B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124308A (en) * | 1996-10-25 | 1998-05-15 | Mitsubishi Electric Corp | Method for protecting program in programmable controller |
JP2002312053A (en) * | 2001-04-18 | 2002-10-25 | Toshiba Tec Corp | Execution protection system and data processing device |
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 |
JP2003167640A (en) * | 2001-11-30 | 2003-06-13 | Nec Infrontia Corp | Method for preventing unauthorized use of program |
JP2003342290A (en) * | 2002-05-22 | 2003-12-03 | Media Price:Kk | Method for recovering momordicin by using cucurbitaceous plant as raw material |
Also Published As
Publication number | Publication date |
---|---|
JP2005135165A (en) | 2005-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100319677B1 (en) | Memory access control unit | |
JP4925422B2 (en) | Managing access to content in data processing equipment | |
KR100232670B1 (en) | Device and method for multiprogram execution control | |
JP5911835B2 (en) | Information processing device | |
CN102077204B (en) | Secure memory management system and method | |
US8867746B2 (en) | Method for protecting a control device against manipulation | |
JP2011165041A (en) | Control device and management device | |
KR20090095843A (en) | Processor apparatus having secure performance | |
JP4591163B2 (en) | Bus access control device | |
JP4495945B2 (en) | Control system with control program protection function | |
US7207066B2 (en) | Method for protecting a microcomputer system against manipulation of data stored in a storage arrangement of the microcomputer system | |
JP6437457B2 (en) | Device for identifying unauthorized operation of the system state of a control and regulation unit and nuclear technology equipment including the device | |
JP2007004456A (en) | Portable electronic device and data output device of portable electronic device | |
JP4783163B2 (en) | Microcontroller | |
KR100652538B1 (en) | Microcomputer | |
US20040230821A1 (en) | Memory authentication for intrinsically safe field maintenance tools | |
JP2007286921A (en) | Information processor and security release program unauthorized execution prohibition method using it | |
JP2011150495A (en) | Storage device | |
CN117034325B (en) | Flash data content encryption method, device, equipment and storage medium | |
US20230251957A1 (en) | Method for analyzing an automation software of an automation device | |
JP2007264679A (en) | Access controller and access control method | |
JP2904991B2 (en) | Numerical control unit | |
JPH04287124A (en) | Method and device for inhibiting software from being used without permission at computer system | |
JPH0242551A (en) | Data processing system and nonvolatile semiconductor memory | |
US20050210274A1 (en) | Apparatus and method for intellectual property protection using the microprocessor serial number |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050415 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090911 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100316 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100412 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140416 Year of fee payment: 4 |