JP2013171346A - 制御システム、制御装置及びプログラム実行制御方法 - Google Patents

制御システム、制御装置及びプログラム実行制御方法 Download PDF

Info

Publication number
JP2013171346A
JP2013171346A JP2012033368A JP2012033368A JP2013171346A JP 2013171346 A JP2013171346 A JP 2013171346A JP 2012033368 A JP2012033368 A JP 2012033368A JP 2012033368 A JP2012033368 A JP 2012033368A JP 2013171346 A JP2013171346 A JP 2013171346A
Authority
JP
Japan
Prior art keywords
security
program
security code
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.)
Granted
Application number
JP2012033368A
Other languages
English (en)
Other versions
JP5990927B2 (ja
Inventor
Yoshiaki Shimizu
良昭 清水
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
Priority to JP2012033368A priority Critical patent/JP5990927B2/ja
Priority to CN201210144756.4A priority patent/CN103258148B/zh
Publication of JP2013171346A publication Critical patent/JP2013171346A/ja
Application granted granted Critical
Publication of JP5990927B2 publication Critical patent/JP5990927B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】制御プログラムの運用・保守性に配慮しつつ、PLC上で動作する制御プログラムに対するセキュリティの観点から、制御プログラムの不正使用を防止する。
【解決手段】制御システムにおいて、第1のセキュリティコードと所定のプログラムコードとを含むユーザプログラムを格納した第1メモリと、第1のセキュリティコードを所定のアルゴリズムで変換した第2のセキュリティコードを含むセキュリティ情報を格納した第2メモリと、ユーザプログラムの実行を許可する実行許可手段と、実行が許可されたユーザプログラムを実行するプログラム実行手段とを有し、実行許可手段は、ユーザプログラムに含まれる第1のセキュリティコードを前記所定のアルゴリズムで変換し、変換したセキュリティコードと、セキュリティ情報から取得した第2のセキュリティコードとを比較し、一致した場合、ユーザプログラムの実行を許可する。
【選択図】図2

Description

本発明は、プログラムの実行を制御する制御装置及び制御システムに関し、特に、PLC(Programmable Logic Controller)上で実行されるPLCプログラムの実行を制御する制御システム、制御装置及び制御方法に関する。
従来より、FA(Factory Automation)等における工業用汎用コンピュータとして、プログラマブルコントローラ(Programmable Logic Controller:以下PLCという)が用いられている。PLCが制御対象機器に対しシーケンス制御を行なう場合、例えば、ユーザは、制御対象機器のセンサやスイッチ等の検出部をPLCの入力端子に接続し、制御対象機器のモータ等の動作装置をPLCの出力端子に接続する。そして、PLCは、実行する制御プログラムに従って、入力端子への入力信号に応じた出力信号を出力端子から出力することによって、制御対象機器を制御する。
ここで、PLC上で実行されるプログラムの不正使用を防止する技術については、例えば、特許文献1、2などが知られている。特許文献1、2には、特定の制御装置上でのみ制御プログラムが動作できるようにすることにより、制御プログラムの不正利用防止を実現する制御装置が記載されている。
より具体的に、特許文献1記載の制御装置は、制御プログラム内に、実行を許可する特定のPLCの固有値(例えばシリアルID)に基づく認証ラダーを埋め込んでおく。そして、制御プログラムを特定のPLC上で動作させる際、認証ラダーを使用して認証を行う。制御装置は、認証が成功した場合にのみ、その制御プログラムの実行を許可するので、仮に制御プログラムが流出したとしても、制御プログラムは他の制御装置上では動作しない。これにより、仮にその制御プログラムが流出したとしても、制御プログラムは他の制御装置上では動作しないため、プログラムの不正使用を防止することができる。
特開2011−165041号公報 特開2009−70144号公報
ここで、制御装置が故障した場合、故障した制御装置が修理されている間は工場の生産活動が停止してしまうことから、保守員等が代替機を一時的に設置することにより、工場の生産活動を継続させる手法が採られることがある。
しかしながら、特許文献1、2に記載される発明においては、シリアルIDなど、制御装置の固有値に基づく認証情報を使用して認証を行い、認証が成功した場合にのみ、その制御プログラムの実行を許可するものである。従って、制御装置が故障した場合、故障した制御装置で使用していた制御プログラムを代替機でそのまま使用することはできない。この場合、制御プログラム内に代替機の固有値(例えばシリアルID)に基づく認証ラダーを埋め込むことにより、新たに代替機用の制御プログラムを再度作り直さなくてはならず(コンパイル等)、制御装置の復旧、即ち、工場の生産活動再開までに時間を要するという問題があった。
本発明は、このような課題を解決するためのものであり、制御プログラムの運用・保守性に配慮しつつ、PLC上で動作する制御プログラムに対するセキュリティの観点から、制御プログラムの不正使用を防止する制御システム、制御装置及びプログラム実行制御方法を提供することを主たる目的とする。
上述した課題を解決するために、本発明は、以下の特徴を有する課題を解決するための手段を採用している。
本発明の一態様における制御システムは、セキュリティファイル発行装置と、セキュリティコード登録装置と、支援ローダと、制御装置とを含む制御システムであって、前記セキュリティファイル発行装置は、第1のセキュリティコードを含むセキュリティファイルを生成するセキュリティファイル生成手段を有し、前記セキュリティコード登録装置は、前記セキュリティファイルから取得した前記第1のセキュリティコードを所定のアルゴリズムにより第2のセキュリティコードに変換するコード変換手段と、前記第2のセキュリティコードを含むセキュリティ情報を前記制御装置に登録するセキュリティ情報登録手段と、を有し、前記支援ローダは、前記第1のセキュリティコードと所定のプログラムコードとを含むユーザプログラムを作成するプログラム作成手段を有し、前記制御装置は、前記ユーザプログラムを格納した第1メモリと、前記セキュリティ情報登録手段により登録された前記第2のセキュリティコードを含むセキュリティ情報を格納した第2メモリと、前記第1メモリに格納された前記ユーザプログラムの実行を許可する実行許可手段と、前記実行許可手段により実行が許可された前記ユーザプログラムを実行するプログラム実行手段と、を有し、前記実行許可手段は、前記第1メモリに格納された前記ユーザプログラムに前記所定のプログラムコードが含まれるとき、前記ユーザプログラムに含まれる第1のセキュリティコードを前記所定のアルゴリズムにより変換し、変換された該セキュリティコードと、前記第2メモリに格納されたセキュリティ情報から取得した第2のセキュリティコードとを比較し、一致した場合、前記ユーザプログラムの実行を許可する。
また、本発明の一態様における制御装置は、第1のセキュリティコードと所定のプログラムコードとを含むユーザプログラムを格納した第1メモリと、セキュリティコード登録装置により前記第1のセキュリティコードを所定のアルゴリズムで変換し登録された第2のセキュリティコード含むセキュリティ情報を格納した第2メモリと、前記第1メモリに格納された前記ユーザプログラムの実行を許可する実行許可手段と、前記実行許可手段により実行が許可された前記ユーザプログラムを実行するプログラム実行手段と、を有し、前記実行許可手段は、前記第1メモリに格納された前記ユーザプログラムに前記所定のプログラムコードが含まれるとき、前記ユーザプログラムに含まれる第1のセキュリティコードを前記所定のアルゴリズムにより変換し、変換された該セキュリティコードと、前記第2メモリに格納されたセキュリティ情報から取得した第2のセキュリティコードとを比較し、一致した場合、前記ユーザプログラムの実行を許可する。
また、本発明の一態様におけるプログラム実行制御方法は、セキュリティコード登録装置は、第1のセキュリティコードを所定のアルゴリズムにより変換した第2のセキュリティコードを含むセキュリティ情報を作成して制御装置に入力し、支援ローダは、所定のプログラムコードと前記第1のセキュリティコードとを含むユーザプログラムを作成して前記制御装置に入力し、前記制御装置は、前記ユーザプログラムに前記所定のプログラムコードが含まれるとき、前記支援ローダから入力された前記第1のセキュリティコードを前記所定のアルゴリズムにより変換し、変換された該セキュリティコードと前記第2のセキュリティコードとが一致することを条件に、前記ユーザプログラムの実行を許可する。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、装置、方法、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
本発明によれば、制御プログラムの運用・保守性に配慮しつつ、PLC上で動作する制御プログラムに対するセキュリティの観点から、制御プログラムの不正使用を防止する制御システム、制御装置及びプログラム実行制御方法を提供することができる。
本実施形態に係る制御システム構成図(概略図)の一例を示す。 本実施形態に係る制御システム構成図の機能構成例である。 本実施形態に係るセキュリティファイル発行装置の操作画面例(その1)を示す。 本実施形態に係るセキュリティファイル発行装置の操作画面例(その2)を示す。 本実施形態に係るセキュリティコード登録装置の操作画面例を示す。 本実施形態に係る支援ローダのプログラミングエディタ画面例を示す。 本実施形態に係る情報処理1の流れを示すシーケンス図である。 本実施形態に係る情報処理2の流れを示すシーケンス図である。 本実施形態に係るプログラム実行部205のPLCプログラム実行制御処理の流れを示すフローチャートである。 本実施形態に係るSFB機能部206のセキュリティコードチェック処理の流れを示すフローチャートである。 本応用例に係る制御システム構成図の機能構成例である。 「有効位置情報」の指定例を示す。 本応用例に係るSFB機能部206のセキュリティコードチェック処理の流れを示すフローチャートである。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
[システム構成]
図1は、本実施形態に係る制御システム構成図(概略図)の一例を示す。図1に示されるように、本実施形態に係るシステムは、支援ローダ100、PLC200、セキュリティファイル発行装置300、セキュリティコード登録装置400を含む。
支援ローダ100は、PLC200本体で動作するPLCプログラム(制御プログラム)の作成支援用コンピュータ装置である。従って、支援ローダ100は、PLCプログラム作成用のプログラミングエディタを備える。プログラミングエディタによって、プログラム作成画面がディスプレイに表示されるので、ユーザは、この画面上で所望のPLCプログラムを開発することができる。また、ユーザにより開発されたPLCプログラムは、支援ローダ100からPLC200に対しダウンロードされる。
PLC200は、ファクトリ・オートメーション(FA)の制御装置として用いられるプログラマブルコントローラ(Programmable Logic Controller)である。PLC200は、入力モジュールから入力された信号をI/O(Input/Output)メモリに取り込み、プログラムメモリ201に予め登録されたPLCプログラムに基づき、論理演算を行う。また、その演算結果をI/Oメモリに書き込んでから出力モジュールに送り出し、その後、いわゆる周辺のシステム処理(ローダ処理、各種システム処理)を実行する。PLC200は、これらの処理を繰り返すことで、対象とする制御機器を制御する。
セキュリティファイル発行装置300は、セキュリティファイル(Security File)を生成し、出力する端末装置である。このセキュリティファイルは、セキュリティコード登録装置400が「セキュリティコード(Security Code)」を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は、暗号化されたセキュリティファイルを復号することにより、その「セキュリティコード」を取得する。なお、セキュリティコードには、セキュリティコード自体の値に加え、そのセキュリティコードのデータサイズ(例えば64bit等)を含めることができる。
(セキュリティコード登録装置)
本実施形態に係るセキュリティコード登録装置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(Universal Serial Bus)ポートやシリアルポートなど、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を呼び出すコードを、ユーザ作成のプログラムコードの一部に追加する。また、併せてセキュリティコードチェック用のSFB206用のパラメータとして、「セキュリティコード」を設定しておく。なお、このセキュリティコードは、セキュリティファイル発行装置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は、耐タンパー性の高いセキュリティチップやフラッシュメモリにより実現され、アクセスが制限されたメモリである。本実施形態では、セキュリティ情報登録受付部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(Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウエア手段であっても構わない。
また、これらの各機能部に関連するプログラムは、通常のプログラムメモリ204領域とは別に、ユーザが直接その領域をアクセスすることができないセキュリティが強化された領域(図示せず)に保存されている。
[操作画面例]
次に、各装置の操作画面例について説明する。
(セキュリティファイル発行装置)
図3は、本実施形態に係るセキュリティファイル発行装置の操作画面例(その1)を示す。上述したように、セキュリティファイル発行装置300は、セキュリティファイルを生成し、出力する端末装置である。
ユーザはセキュリティファイル発行装置300のディスプレイ画面に表示される操作画面を操作することにより、セキュリティファイルを生成し出力することができる。図3に示されるように、ユーザは、まず、ユーザ認証画面(a)において、セキュリティファイル発行装置300にログインするためのパスワードを入力する。ユーザ認証に成功すると、メニュー画面(b)へ進む。そして、メニュー画面(b)において、ユーザが「セキュリティファイル発行」を押下すると、セキュリティファイル発行画面(c)へ進む。
セキュリティファイル発行画面(c)において、ユーザは任意の「セキュリティコード」を入力した後、「追加」を押下する。入力されたセキュリティコードは、「一覧」に追加される。また、「発行メモ」には、発行するセキュリティファイル毎に任意のメモを併せて付すことができる。
次に、ユーザは、「発行」を押下する。その後、確認画面(d)が表示され、「一覧」に追加されたセキュリティコードを含むセキュリティファイルの出力が完了する。
このようにして生成、出力されたセキュリティファイルは、セキュリティコード登録装置400がPLC200に対してセキュリティコードを登録する際に、用いられる。ユーザは例えば、携帯型の記録媒体にセキュリティファイルを保存し、この記録媒体を介してセキュリティファイルをセキュリティコード登録装置400に移動できる。又は、ネットワークを介しセキュリティファイルをセキュリティコード登録装置400に移動してもよい。
図4は、本実施形態に係るセキュリティファイル発行装置の操作画面例(その2)を示す。具体的には、図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は、本実施形態に係る支援ローダのプログラミングエディタ画面例を示す。上述したように、支援ローダは、PLCプログラムの作成支援用コンピュータ装置である。ユーザは、この画面上で所望のPLCプログラムを開発する。また、ユーザにより開発されたPLCプログラムは、支援ローダ100からPLC200に対しダウンロードされる。
ユーザは、作成中の保護対象のプログラムを保護する場合、例えば、プログラミングエディタ上から所定操作を行う。これにより、ユーザが作成した「保護対象のプログラムコード」に対して、PLC200側でセキュリティコードチェック用のSFBを呼び出す「SFB用のプログラムコード」が追加される。その後、ユーザは、プログラミングエディタ上で「保護対象のプログラムコード」及び「SFB用のプログラムコード」が含まれるプログラムコードのコンパイルを行って、PLCプログラムを作成する。また、作成したPLCプログラムをPLC200に対し送信する。
[情報処理]
次に、各装置の情報処理例について説明する。
(情報処理1)
図7は、本実施形態に係る情報処理1の流れを示すシーケンス図である。具体的には、まず、情報処理1では、セキュリティファイル発行装置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)に変換するよう依頼する。コード変換部404は、セキュリティ情報登録部403からの依頼に応じて、取得したセキュリティコードを所定のアルゴリズムにより別の異なるセキュリティコードに変換する。本実施形態では、「セキュリティコード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は、本実施形態に係る情報処理2の流れを示すシーケンス図である。具体的に、情報処理2では、支援ローダ100のPLCプログラム作成処理、支援ローダ100のPLCプログラムダウンロード処理、及びPLC200のPLCプログラム実行制御処理を説明する(併せて図2を参照)。
S21:まず、支援ローダ100のプログラム作成部101は、PLC200本体で動作するPLCプログラムのプログラムコードを作成する(例えば図6参照)。即ち、ユーザがプログラミングエディタによりユーザ所望のユーザプログラムコードを作成すると、プログラム作成部101は、そのユーザプログラムコードの一部に、セキュリティコードチェック用のSFB206を呼び出すプログラムコードを追加する。また、併せてSFB206用のパラメータとして、「セキュリティコード」(例えばSC−A)を設定しておく。このセキュリティコードは、ユーザによって与えられ、セキュリティファイル発行装置300に入力した「セキュリティコード」(例えばSC−A)と同一のものを設定する。
S22:次いで、プログラム作成部101は、ユーザプログラムコード及びSFB206を呼び出すプログラムコードを含むプログラムコードを作成すると、コンパイルを行って、PLCプログラムを作成する。また、プログラム作成部101は、作成したPLCプログラムをメモリ102に保存しておく。
S23:次いで、プログラム作成部101は、ユーザ操作又は自動操作等により、作成したPLCプログラムをPLC200に送信する。
S24:PLC200のプログラム実行部205は、プログラムメモリ204に格納されたPLCプログラムの実行を制御する。プログラム実行部205は、PLCプログラムの実行処理を行う際、PLCプログラムにSFB機能部206を呼び出すコードが含まれている場合には、そのコードに従って、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を呼び出すコードが含まれているか否かを判定する。ここで、プログラム実行部205は、PLCプログラムにセキュリティコードチェック用のSFB機能部206を呼び出すコードが含まれていない場合、そのPLCプログラムは特別に保護されているものではないため、S34へ進み、PLCプログラムをそのまま実行する。
S32:プログラム実行部205は、PLCプログラムにセキュリティコードチェック用のSFB機能部206を呼び出すコードが含まれている場合、そのコードに従って、SFB機能部206の呼び出しを行う。ここで、プログラム実行部205は、SFB機能部206の呼び出しの際、PLCプログラムにSFB206用のパラメータとして設定されている「セキュリティコード」(例えばSC−A)を、SFB機能部206に渡しておく。
S33:プログラム実行部205は、SFB機能部206から返り値(「実行許可」又は「実行不許可」)を取得する。返り値が「実行許可」である場合、S34へ進む。一方、返り値が「実行不許可」である場合、S35へ進む。
S34:プログラム実行部205は、SFB機能部206からの返り値が「実行許可」である場合、PLCプログラムを実行する。これにより、PLC200本体は、このPLCプログラムによってユーザ所望の動作を実施することになる。
S35:一方、プログラム実行部205は、SFB機能部206からの返り値が「実行不許可」である場合、この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:比較照合部207は、セキュアメモリ202から「稼働時間」及び「試用期間」を取得すると、「稼働時間」に基づいて「試用期間」が利用可能な期間内であるか否かを判定する。上述の如く、「試用期間」は、PLC200の利用可能な期間を示し、「稼働時間」は、PLC200の「稼働時間」を示す。よって、比較照合部207は、「稼働時間」及び「試用期間」に基づいて、PLC200が「試用期間」内であるか否かを判定できる。PLC200が「試用期間」内である場合、S44へ進む。一方、PLC200が「試用期間」内でない場合、S51へ進む。
例えば、PLC200の稼働開始から5時間経過している場合、「稼働時間」は5(H)となっており、「試用期間」が10(H)であるとすると、PLC200が利用可能な「試用期間」内であると判定される。また例えば、PLC200の稼働開始から12時間経過している場合、「稼働時間」は12(H)となっており、「試用期間」が10(H)であるとすると、PLC200が利用可能な「試用期間」内でないと判定される。
S44:比較照合部207は、セキュリティコードチェックの対象となったPLCプログラムの実行を許可するため、プログラム実行部205に対し、返り値:「実行許可」を発行する。
S45:一方、比較照合部207は、セキュアメモリ202から「試用期間」を取得できない場合(S41)、コード変換部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:比較照合部207は、変換されたパラメータ「セキュリティコード」と、セキュアメモリ202の「セキュリティコード」とを取得すると、両セキュリティコードを比較(又は照合)する。
S50:両セキュリティコードが一致した場合、S44へ進む。即ち、比較照合部207は、セキュリティコードチェックの対象となったPLCプログラムの実行を許可するため、プログラム実行部205に対し、返り値:「実行許可」を発行する。一方、両セキュリティコードが一致しない場合、S51へ進む。
S51:比較照合部207は、セキュリティコードチェックの対象となったPLCプログラムの実行を不許可とするため、プログラム実行部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が故障した場合、故障したPLC200を修理している間は工場の生産活動が停止してしまうことから、代替機の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に保存されているものをそのまま格納すればよい。又は、上述したように、支援ローダ100により作成されたPLCプログラムをユーザROMカードスロット210に挿入された記録媒体に格納していた場合、保守作業員は、故障したPLC200から記録媒体を抜き取って、その記録媒体を代替機PLC200−2のユーザROMカードスロット210に挿入する。これにより、代替機PLC200−2のプログラムメモリ204には、それまで使用していたPLCプログラムが格納される(転送される)。
後は、代替機PLC200−2において、保守作業員は、PLCプログラムを実行しさえすればよい。PLCプログラム実行時、SFB機能部206(比較照合部207)のセキュリティコードチェック処理においても、PLCプログラム内のパラメータが変換された「セキュリティコード」(例えばSC−B)と、セキュアメモリ202の「セキュリティコード」(例えばSC−B)とは一致するので、PLCプログラムの実行は許可される。
以上のような簡便な復旧作業により、代替機PLC200−2においても、故障したPLC200で実行していたものと同一の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に対して、任意(ダミー)の「セキュリティコード」と「試用期間」とを含むセキュリティ情報を登録しさえすれば、両「セキュリティコード」の一致がなくとも、暫定的にPLCプログラムの実行が可能である。即ち、代替機PLC200−2を使用して、故障したPLC200と同様の生産活動を迅速に再開可能である。
また、PLC200(PLC200−2を含む)にPLCプログラムを格納する前に、予め「試用期間」の初期値として1ヶ月又は1週間等の「試用期間」を登録しておくことで、上述した保守作業員による「試用期間」の登録が不要となる。
さらに、「試用期間」の間、ユーザ先にPLC200を貸し出す場合、PLC200に「セキュリティコード」と「試用期間」を予め登録して貸し出すことで、「試用期間」のチェックが有効となる。その後、試用期間中にユーザがPLC200の購入を希望した場合は、登録した「試用期間」を削除することで、その後は、「セキュリティコード」のチェックが有効となる。
このように、本実施形態に係るPLCによれば、制御プログラムの運用・保守性に配慮しつつ、PLC上で動作する制御プログラムに対するセキュリティの観点から、制御プログラムの不正使用を防止することが可能となっている。
[応用例]
次に、PLC200は、GPS(Global Positioning System)センサを備え、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は、「有効位置情報」の指定例を示す。「有効位置情報」は、例えば、北緯a度b分c秒、東経d度e分f秒などのように、(緯度x.経度y)といったGPSから取得される位置座標の形式で入力することができる。
例えば(a)のように、ユーザは「有効位置情報」を2点の位置座標により指定できる。この場合、矩形の範囲内が有効位置範囲となるので、例えば工場等の敷地内を有効位置範囲となるように指定するとよい。
また、例えば(b)のように、ユーザは「有効位置情報」を多角点の位置座標により指定できる。この場合、多角形の範囲内が有効位置範囲となるので、例えば工場等の建物内を有効位置範囲となるように指定するとよい。
また、例えば(c)のように、ユーザは「有効位置情報」を1点の位置座標により指定できる。この場合、1点の中心点の周辺円範囲内が有効位置範囲となる。中心点からどの程度の円範囲内を有効位置範囲とするかについては、PLC200側で予め所定半径zを定めていてもよいし、ユーザが中心点の位置座標とともに、その半径zを指定できるようにしてもよい。
(PLC)
次に、本応用例に係るPLC200には、図11に示されるように、位置情報取得部211が追加される。位置情報取得部211は、GPSセンサ等により実現され、GPS衛星からの信号を受信し、PLC200が位置する「現在位置情報」を取得する。位置情報取得部211は、取得した「現在位置情報」をセキュリティ情報登録受付部201に渡す。セキュリティ情報登録受付部201は、その「現在位置情報」をセキュアメモリ202に保存する。セキュリティ情報登録受付部201を介して「現在位置情報」をセキュアメモリ202に保存するのは、セキュアメモリ202へのアクセスは制限されており、セキュリティ情報登録受付部201は、セキュアメモリ202に対し書き込み権限を有するためである。また、「現在位置情報」もセキュリティに関する情報の一つである。
プログラム実行部205は、プログラムメモリ204に格納されたPLCプログラムを実行する。また、プログラム実行部205は、PLCプログラムにセキュリティコードチェック用のSFB機能部206を呼び出すコードが含まれている場合、そのコードに従って、SFB機能部206を呼び出す。そして、プログラム実行部205は、SFB機能部206からPLCプログラムの実行許可を得た場合のみ、PLCプログラムの実行を継続し、PLCプログラムの実行不許可を得た場合には、PLCプログラムの実行を禁止(停止)する。
比較照合部207は、プログラム実行部205によりSFB機能部206が呼び出されると、上述したように、「試用期間」、「稼働時間」、及び「セキュリティコード」に基づいて、PLCプログラムの実行許可、不許可を判定するが、本応用例ではさらに「現在位置情報」に基づいて、PLCプログラムの実行許可、不許可を判定する。
つまり、比較照合部207は、セキュアメモリ202に保存されている「現在位置情報」を取得する。上述の如く、セキュアメモリ202の「現在位置情報」は、PLC200が設置されている位置情報を示す。また、比較照合部207は、セキュリティコードチェックの対象となるPLCプログラムにパラメータとして設定されている「有効位置情報」を取得する。そして、比較照合部207は、「現在位置情報」と「有効位置情報」とを比較(又は照合)し、両位置情報が一致した場合(「現在位置情報」が「有効位置情報」に指定される範囲内である場合)、セキュリティコードチェックの対象となったPLCプログラムの実行を許可するため、プログラム実行部205に対し、返り値:「実行許可」を発行する。一方、比較照合部207は、両位置情報が一致しない場合、セキュリティコードチェックの対象となったPLCプログラムの実行を不許可とするため、プログラム実行部205に対し、返り値:「実行不許可」を発行する。
(SFB機能処理)
図13は、本応用例に係るSFB機能部206のセキュリティコードチェック処理の流れを示すフローチャートである。上述の図10と比べ、S50に続くS52〜54のステップが追加されており、それ以外のステップは同様である。図面を参照しながら以下S52〜54について説明する。
S52:比較照合部207は、S50で両セキュリティコードが一致した場合、今度は、セキュアメモリ202から「現在位置情報」を取得する。「現在位置情報」を取得できた場合は、S53へ進む。一方、「現在位置情報」を取得できない場合は、S51へ進む。なお、「現在位置情報」を取得できない場合とは、例えば、GPSセンサで位置情報を取得できない場所に位置する等である。この場合、「現在位置情報」を取得できない旨を通知し、GPSセンサで位置情報を取得できるように、PLCの設置位置の見直し等を促すとよい(図8のS25)。
S53:比較照合部207は、「現在位置情報」と「有効位置情報」とを比較(又は照合)する。なお、「有効位置情報」に関し、比較照合部207は、プログラム実行部205によるSFB機能部206の呼び出しの際、PLCプログラムでSFB206用のパラメータとして設定されている「有効位置情報」を取得している(図9のS32)。
S54:比較照合部207は、「現在位置情報」と「有効位置情報」とが一致した場合(「現在位置情報」が「有効位置情報」に指定される範囲内である場合)、S44へ進む。
そして、比較照合部207は、セキュリティコードチェックの対象となったPLCプログラムの実行を許可するため、プログラム実行部205に対し、返り値:「実行許可」を発行する(S44)。
一方、比較照合部207は、両位置情報が一致しない場合、S51へ進む。そして、比較照合部207は、セキュリティコードチェックの対象となったPLCプログラムの実行を不許可とするため、プログラム実行部205に対し、返り値:「実行不許可」を発行する。
以上、本応用例においては、PLCプログラム内に当該プログラムの利用を可能とする「有効位置情報」を格納しておくことで、PLC200のGPSセンサから取得した「現在位置情報」をもとに、PLCプログラムを利用可能なエリア(場所)に設置したPLC200だけがそのPLCプログラムを実行することができる。このため、例えばPLC200を設置した後、PLC200本体そのものが持ち出されてしまった場合等、「有効位置情報」による指定位置以外でPLCプログラムを実行することはできないので、PLCプログラムの使用(不正使用といえる)を防止することが可能となる。即ち、PLC200上で動作する制御プログラムに対するセキュリティをより向上させることが可能である。
以上のように、本実施形態及び応用例によれば、制御プログラムの運用・保守性に配慮しつつ、PLC上で動作する制御プログラムに対するセキュリティの観点から、制御プログラムの不正使用を防止する制御システム、制御装置及び制御方法を提供することができる。
なお本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 支援ローダ
101 プログラム作成部
102 メモリ
200 PLC
201 セキュリティ情報登録受付部
202 セキュアメモリ
203 稼働時間計測部
204 プログラムメモリ
205 プログラム実行部
206 SFB機能部206
207 比較照合部
208 コード変換部
209 通知部
210 ユーザROMカードスロット
211 位置情報取得部
300 セキュリティファイル発行装置
301 セキュリティファイル生成部
400 セキュリティコード登録装置
401 セキュリティファイル取込部
402 メモリ
403 セキュリティ情報登録部
404 コード変換部

Claims (12)

  1. セキュリティファイル発行装置と、セキュリティコード登録装置と、支援ローダと、制御装置とを含む制御システムであって、
    前記セキュリティファイル発行装置は、
    第1のセキュリティコードを含むセキュリティファイルを生成するセキュリティファイル生成手段を有し、
    前記セキュリティコード登録装置は、
    前記セキュリティファイルから取得した前記第1のセキュリティコードを所定のアルゴリズムにより第2のセキュリティコードに変換するコード変換手段と、
    前記第2のセキュリティコードを含むセキュリティ情報を前記制御装置に登録するセキュリティ情報登録手段と、を有し、
    前記支援ローダは、
    前記第1のセキュリティコードと所定のプログラムコードとを含むユーザプログラムを作成するプログラム作成手段を有し、
    前記制御装置は、
    前記ユーザプログラムを格納した第1メモリと、
    前記セキュリティ情報登録手段により登録された前記第2のセキュリティコードを含むセキュリティ情報を格納した第2メモリと、
    前記第1メモリに格納された前記ユーザプログラムの実行を許可する実行許可手段と、
    前記実行許可手段により実行が許可された前記ユーザプログラムを実行するプログラム実行手段と、を有し、
    前記実行許可手段は、前記第1メモリに格納された前記ユーザプログラムに前記所定のプログラムコードが含まれるとき、前記ユーザプログラムに含まれる第1のセキュリティコードを前記所定のアルゴリズムにより変換し、変換された該セキュリティコードと、前記第2メモリに格納されたセキュリティ情報から取得した第2のセキュリティコードとを比較し、一致した場合、前記ユーザプログラムの実行を許可すること、
    を特徴とする制御システム。
  2. 前記セキュリティ情報登録手段は、
    試用期間情報が入力されると、該試用期間情報と前記第2のセキュリティコードとを含むセキュリティ情報を前記制御装置に登録し、
    前記制御装置は、
    前記第2メモリには、前記セキュリティ情報登録手段により登録された前記試用期間情報と前記第2のセキュリティコードとを含むセキュリティ情報が格納され、
    前記実行許可手段は、前記第2メモリに格納されたセキュリティ情報に前記試用期間情報が含まれるとき、試用期間中は、前記第1メモリに格納されたユーザプログラムの実行を許可すること、
    を特徴とする請求項1記載の制御システム。
  3. 前記制御装置は、
    制御装置の稼動時間を計測する計測手段を有し、
    前記計測手段は、
    前記試用期間情報を含むセキュリティ情報が前記第2メモリに格納されたとき、制御装置の稼働時間の計測を開始し、
    前記実行許可手段は、前記稼動時間と前記試用期間情報を比較し、現在時点での稼動時間が試用期間内である場合、試用期間中とみなして、前記第1メモリに格納されたユーザプログラムの実行を許可すること、
    を特徴とする請求項2記載の制御システム。
  4. 前記支援ローダの前記プログラム作成手段は、
    前記第1のセキュリティコードと前記所定のプログラムコードとに加え、所定の位置情報とを含むユーザプログラムを作成し、
    前記制御装置は、
    制御装置の現在位置情報を取得する位置情報取得手段を有し、
    前記実行許可手段は、前記第1メモリに格納された前記ユーザプログラムに前記所定の位置情報が含まれるとき、前記現在位置情報が該所定の位置情報で特定される位置範囲外である場合、前記第1メモリに格納されたユーザプログラムの実行を不許可にすること、
    を特徴とする請求項1ないし3何れか一項記載の制御システム。
  5. 第1のセキュリティコードと所定のプログラムコードとを含むユーザプログラムを格納した第1メモリと、
    セキュリティコード登録装置により前記第1のセキュリティコードを所定のアルゴリズムで変換し登録された第2のセキュリティコード含むセキュリティ情報を格納した第2メモリと、
    前記第1メモリに格納された前記ユーザプログラムの実行を許可する実行許可手段と、
    前記実行許可手段により実行が許可された前記ユーザプログラムを実行するプログラム実行手段と、を有し、
    前記実行許可手段は、前記第1メモリに格納された前記ユーザプログラムに前記所定のプログラムコードが含まれるとき、前記ユーザプログラムに含まれる第1のセキュリティコードを前記所定のアルゴリズムにより変換し、変換された該セキュリティコードと、前記第2メモリに格納されたセキュリティ情報から取得した第2のセキュリティコードとを比較し、一致した場合、前記ユーザプログラムの実行を許可すること、
    を特徴とする制御装置。
  6. 通常のプログラムメモリ領域とは別のセキュリティ強化された領域に、支援ローダから入力される所定のプログラムコードにより呼び出されてユーザプログラム実行の許可又は不許可を判定する機能ブロックを有し、
    前記機能ブロックは、
    前記支援ローダから前記所定のプログラムコードと第1のセキュリティコードとを含むユーザプログラムが入力されると、前記第1のセキュリティコードとセキュリティコード登録装置から入力されたセキュリティコード情報とに基づいて、前記ユーザプログラム実行の許可又は不許可を判定すること、
    を特徴とする請求項5記載の制御装置。
  7. 前記第2メモリには、前記セキュリティコード登録装置により登録された試用期間情報と前記第2のセキュリティコードとを含むセキュリティ情報が格納され、
    前記実行許可手段は、前記第2メモリに格納されたセキュリティ情報に前記試用期間情報が含まれるとき、試用期間中は、前記第1メモリに格納されたユーザプログラムの実行を許可すること、
    を特徴とする請求項5記載の制御装置。
  8. 制御装置の稼動時間を計測する計測手段を有し、
    前記計測手段は、
    前記試用期間情報を含むセキュリティ情報が前記第2メモリに格納されたとき、制御装置の稼働時間の計測を開始し、
    前記実行許可手段は、前記稼動時間と前記試用期間情報を比較し、現在時点での稼動時間が試用期間内である場合、試用期間中とみなして、前記第1メモリに格納されたユーザプログラムの実行を許可すること、
    を特徴とする請求項7記載の制御装置。
  9. 制御装置の現在位置情報を取得する位置情報取得手段を有し、
    前記第1メモリには、前記第1のセキュリティコードと前記所定のプログラムコードとに加え、所定の位置情報とを含むユーザプログラムが格納され、
    前記実行許可手段は、前記第1メモリに格納された前記ユーザプログラムに前記所定の位置情報が含まれるとき、前記現在位置情報が該所定の位置情報で特定される位置範囲外である場合、前記第1メモリに格納されたユーザプログラムの実行を不許可にすること、
    を特徴とする請求項5ないし7何れか一項記載の制御装置。
  10. セキュリティコード登録装置は、第1のセキュリティコードを所定のアルゴリズムにより変換した第2のセキュリティコードを含むセキュリティ情報を作成して制御装置に入力し、
    支援ローダは、所定のプログラムコードと前記第1のセキュリティコードとを含むユーザプログラムを作成して前記制御装置に入力し、
    前記制御装置は、前記ユーザプログラムに前記所定のプログラムコードが含まれるとき、前記支援ローダから入力された前記第1のセキュリティコードを前記所定のアルゴリズムにより変換し、変換された該セキュリティコードと前記第2のセキュリティコードとが一致することを条件に、前記ユーザプログラムの実行を許可すること、
    を特徴とするプログラム実行制御方法。
  11. 前記セキュリティコード登録装置は、前記制御装置に入力する前記セキュリティ情報に試用期間情報を付加し、
    前記制御装置は、試用期間中は、前記ユーザプログラムの実行を許可すること、
    を特徴とする請求項10記載のプログラム実行制御方法。
  12. 前記支援ローダは、前記制御装置に入力する前記ユーザプログラムに、該ユーザプログラムの実行を許可する有効位置情報を付加し、
    前記制御装置は、現在位置情報が前記有効位置情報で特定される位置範囲外のとき、前記ユーザプログラムの実行を不許可にすること、
    を特徴とする請求項10又は11記載のプログラム実行制御方法。
JP2012033368A 2012-02-17 2012-02-17 制御システム、制御装置及びプログラム実行制御方法 Active JP5990927B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012033368A JP5990927B2 (ja) 2012-02-17 2012-02-17 制御システム、制御装置及びプログラム実行制御方法
CN201210144756.4A CN103258148B (zh) 2012-02-17 2012-05-10 控制系统、控制装置和程序执行控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012033368A JP5990927B2 (ja) 2012-02-17 2012-02-17 制御システム、制御装置及びプログラム実行制御方法

Publications (2)

Publication Number Publication Date
JP2013171346A true JP2013171346A (ja) 2013-09-02
JP5990927B2 JP5990927B2 (ja) 2016-09-14

Family

ID=48962060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012033368A Active JP5990927B2 (ja) 2012-02-17 2012-02-17 制御システム、制御装置及びプログラム実行制御方法

Country Status (2)

Country Link
JP (1) JP5990927B2 (ja)
CN (1) CN103258148B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015200971A (ja) * 2014-04-04 2015-11-12 富士電機株式会社 改竄検知機能を備えた制御システム
RU2638000C1 (ru) * 2017-02-08 2017-12-08 Акционерное общество "Лаборатория Касперского" Способ контроля системы исполнения программируемого логического контроллера
JP6573749B1 (ja) * 2018-08-30 2019-09-11 三菱電機株式会社 制御装置、制御方法及びプログラム
JP2019159752A (ja) * 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6383240B2 (ja) * 2014-10-17 2018-08-29 株式会社東芝 制御プログラム保守装置、及び制御プログラム保守方法
CN110632869A (zh) * 2019-08-16 2019-12-31 广东鑫光智能系统有限公司 多功能控制器应用系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895777A (ja) * 1994-09-20 1996-04-12 Fujitsu Ltd ソフトウェア利用制御装置
JP2000151583A (ja) * 1996-02-23 2000-05-30 Fuji Xerox Co Ltd アクセス資格認証方法および装置ならびに証明用補助情報作成方法および装置
JP2001282526A (ja) * 2000-03-31 2001-10-12 Canon Inc ソフトウェア管理装置、方法、及びコンピュータ読み取り可能な記憶媒体
JP2005346662A (ja) * 2004-06-07 2005-12-15 Seiko Epson Corp 情報機器、情報機器の制御方法およびプログラム
JP2007259356A (ja) * 2006-03-24 2007-10-04 Kyocera Mita Corp 画像形成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
WO2005029241A2 (en) * 2003-09-15 2005-03-31 Plum Thomas S Automated safe secure techniques for eliminating
US8910276B2 (en) * 2008-05-24 2014-12-09 Via Technologies, Inc. Apparatus and method for precluding execution of certain instructions in a secure execution mode microprocessor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895777A (ja) * 1994-09-20 1996-04-12 Fujitsu Ltd ソフトウェア利用制御装置
JP2000151583A (ja) * 1996-02-23 2000-05-30 Fuji Xerox Co Ltd アクセス資格認証方法および装置ならびに証明用補助情報作成方法および装置
JP2001282526A (ja) * 2000-03-31 2001-10-12 Canon Inc ソフトウェア管理装置、方法、及びコンピュータ読み取り可能な記憶媒体
JP2005346662A (ja) * 2004-06-07 2005-12-15 Seiko Epson Corp 情報機器、情報機器の制御方法およびプログラム
JP2007259356A (ja) * 2006-03-24 2007-10-04 Kyocera Mita Corp 画像形成装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015200971A (ja) * 2014-04-04 2015-11-12 富士電機株式会社 改竄検知機能を備えた制御システム
RU2638000C1 (ru) * 2017-02-08 2017-12-08 Акционерное общество "Лаборатория Касперского" Способ контроля системы исполнения программируемого логического контроллера
JP2019159752A (ja) * 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム
WO2019176274A1 (ja) * 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム
JP6573749B1 (ja) * 2018-08-30 2019-09-11 三菱電機株式会社 制御装置、制御方法及びプログラム
WO2020044483A1 (ja) * 2018-08-30 2020-03-05 三菱電機株式会社 制御装置、制御方法及びプログラム

Also Published As

Publication number Publication date
CN103258148A (zh) 2013-08-21
JP5990927B2 (ja) 2016-09-14
CN103258148B (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
JP5900143B2 (ja) 制御システム、制御装置及びプログラム実行制御方法
JP5990927B2 (ja) 制御システム、制御装置及びプログラム実行制御方法
CN107615292B (zh) 用于管理需要高风险权限访问的应用程序包的安装的系统和方法
EP1423771B1 (en) Method to protect software against unauthorized use
US8381307B2 (en) Method for protecting a converted applet (CAP) file including encrypting the CAP file
JP3444227B2 (ja) ソフトウェアの不正使用防止方法
JP2004213216A (ja) 情報セキュリティマイクロコンピュータ、そのプログラム開発装置およびそれらを含んだプログラム開発システム
JP6236816B2 (ja) 画像処理システム、情報処理装置及びプログラム
CN101872404B (zh) 一种保护Java软件程序的方法
JP2005535958A (ja) デジタル著作権管理のための集積回路
CN103577206A (zh) 一种应用软件的安装方法和装置
CN102841992A (zh) 用于基于计算机的当前组件生成用于受保护的数字数据对象的加密密钥的方法
JP2008226159A (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
KR101509585B1 (ko) 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템
JPWO2007108127A1 (ja) システムプログラムダウンロードシステム
JP2001211171A (ja) 機器認証装置、方法、機器認証プログラムを記録した記録媒体
JP2008146479A (ja) ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア部品管理システム
TW201530444A (zh) 威脅事件監控系統及相關方法
JPH1031587A (ja) データ端末装置およびコンピュータプログラム
CN109598104A (zh) 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法
JPWO2011135797A1 (ja) 改ざん監視システム、管理装置及び改ざん管理方法
KR20170102285A (ko) 보안 요소
JP2006514321A (ja) 暗号化されたアプリケーションをインストールするためのアーキテクチャ
WO2013161974A1 (ja) 改竄検知が可能なアプリケーションプログラムの配布実行方法
JP6738636B2 (ja) 紡績機の装置機能の許可方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160617

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160629

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: 20160719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160801

R150 Certificate of patent or registration of utility model

Ref document number: 5990927

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250