JP2011113198A - パスワードによるプログラム保護方法 - Google Patents
パスワードによるプログラム保護方法 Download PDFInfo
- Publication number
- JP2011113198A JP2011113198A JP2009267629A JP2009267629A JP2011113198A JP 2011113198 A JP2011113198 A JP 2011113198A JP 2009267629 A JP2009267629 A JP 2009267629A JP 2009267629 A JP2009267629 A JP 2009267629A JP 2011113198 A JP2011113198 A JP 2011113198A
- Authority
- JP
- Japan
- Prior art keywords
- program
- version
- password
- download
- user
- 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.)
- Pending
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護できるようにする。
【解決手段】本プログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、プログラマブルコントローラ等の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含む。
【選択図】図1
【解決手段】本プログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、プログラマブルコントローラ等の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含む。
【選択図】図1
Description
本発明は、例えばプログラマブルコントローラ(プログラマブルロジックコントローラとも称し、以下では説明の都合でPLCと称する)やプログラマブル表示器等のコントローラ分野において、プログラム開発者やプログラム利用者をパスワードにより有効に保護する方法に関するものである。
PLCはコントローラの一つとして、生産設備に配備され、シーケンス制御上のプログラムを実行してそれに接続された生産設備内の各種機械や装置等の制御対象をシーケンス制御するようになっている。PLCは、制御対象の状態に対応したスイッチやセンサ等の入力機器のON/OFF情報を入力し、ラダー言語などで記述されたプログラムに沿って論理演算を実行すると共に、得られた演算結果に従い、リレー,バルブ,アクチュエータ等の出力機器に対し、ON/OFF情報の信号を出力することで制御対象の制御を実行するようになっている。
上記プログラムの記述言語として、ラダー図方式のプログラムが汎用されている。このようなプログラムは、プログラム開発者により特有のラダー言語で作成される。
以上のようにシーケンス制御用のプログラムは、一般的に、プログラム編集専用のコンピュータであるプログラミング用ツールにて編集され、編集後にデバッグすることでその作成が終了される。
そして、作成されたプログラムは、プログラム開発者からそのプログラム利用者であるユーザーに渡される。プログラムの渡し方は各種あり、渡し方は重要ではないので、その説明は略する。プログラム開発者はそのユーザーとは特定関係のユーザー(特定ユーザー)であり、第三者のユーザーではない。
プログラム開発者から開発プログラムを渡された特定ユーザーは、ダウンロード専用に特化したパソコン(ダウンロード専用ツール)によりPLCにダウンロードする。このダウンロード専用ツールは、プログラム開発者側から特定ユーザーにのみ提供されたダウンロード専用ソフトがダウンロードされたツールである。
プログラム開発者が開発したプログラムがダウンロードされたPLCの場合、別のパソコンによりそのプログラムがコピーされたりしたのでは、プログラム開発者が開発したプログラムの保護に欠けてしまう。
そこで、プログラム開発者は開発プログラム中にパスワードを埋め込み、ダウンロード専用ソフトによりPLCにプログラムをダウンロードすると、パスワードも同時に登録されるようにしている。
そして、特定ユーザーがPLCにダウンロードしているプログラムを別のパソコンの画面上に開くには、すでにプログラム開発者から入手済みのパスワードを入力することでパスワードによる表示ロック状態を解除し、これによりパソコン画面上にプログラムを開くことができるようにしている。
しかしながら、こうしたパスワード方式では、プログラム開発者が意図していない第三者ユーザーにパスワードが知得されてしまった場合には、簡単に第三者ユーザーによりプログラムが盗用されてしまうことになるので、プログラム開発者の保護に欠けるという課題がある。
一方、プログラムはプログラム開発者によりバージョン1からバージョン2に変更される場合があり、このようなバージョン変更では、特定ユーザーはダウンロード専用ツールとダウンロード済みのPLCとを接続すると共に、ダウンロード専用ツールにパスワード入力してバージョン2のプログラムをPLC内で上書きするなどしてダウンロードすることが多い。
しかしながら、そのようなダウンロードにおいて、プログラム開発者と特定ユーザーとの間のパスワードであるので、いずれのプログラムでもそのパスワードでダウンロードされてしまい、PLCで目的とする機械装置等の制御ができなくなるおそれもあり、これでは、ユーザーの保護に欠けるという課題がある。
なお、PLCにおいてパスワードに関する先行特許文献としては例えば以下の特許文献を挙げることができる。
そこで本発明では、プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護できるようにすることを解決すべき課題としている。
本発明によるパスワードによるプログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、上記プログラムのダウンロード対象となる機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含むことを特徴とする。
ダウンロード対象機器は特に限定しないが、例えばPLCやプログラマブル表示器等のHMI(ヒューマン・マシーン・インターフェース)機器、コントローラ分野に使用する機器、その他の機器を含むことができる。
本発明によれば、プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護することができる。
以下、添付した図面を参照して、本発明の実施の形態に係るパスワードによるプログラム保護方法を説明する。このプログラムはPLCにおけるラダープログラムとする。ダウンロードされたプログラムがパスワードにより保護されるダウンロード対象機器はPLCに限定しないが、本実施の形態では説明の都合でPLCに適用して説明する。
図1(a)を参照してプログラム開発者はプログラミング用ツール1によりバージョン1(ver1.0)、バージョン2(ver2.0)のプログラム(プロジェクトファイル等)を開発すると、各バージョンのプログラムをそれぞれPLC2にダウンロードしたり、デバッグしたりする。プログラム開発者は、各バージョン1,2それぞれのプログラムに図1(b)のパスワードテーブル1で示すように同一のパスワード「ABC」を埋め込む。このバージョン1のプログラムは例えば図1(c1)で示すように接点C1,C2,C3および出力Y1のラダーロジックであり、バージョン2のプログラムは図1(c2)で示すように接点C1,C2,C3、C4および出力Y2のラダーロジックである。このラダーロジックはプロジェクトファイル内のものである。
これらバージョン1、バージョン2の各プログラムへのパスワードの埋め込みとしては、例えばプログラミング用ツール1の画面上に、パスワード埋め込みメニューを表示させ、パスワード設定画面を表示し、適宜の操作により、プロジェクトファイル中にパスワードを埋め込むことができる。この埋め込み方法は周知の技術により可能であり、特に説明しない。また、プログラミング用ツール1は、汎用パソコンであり、その内部のハードウエア構成の詳細は略すると共に、プログラムの作成方法等の説明も省略する。なお、プログラム開発者側に複数のユーザーがある場合とか、同一ユーザー内でも複数の制御対象があるような場合などでは、パスワードが多数存在するようになるので、プログラム開発者側は、パスワード管理プログラムによりパスワードを管理することが好ましい。なお、実施の形態では、バージョンはバージョン1と、バージョン2との2つであったが、このバージョンは単なる一例であり、2つに限定されるものではない。
プログラム開発者は、このようなパスワードの埋め込み、各バージョンごとでのパスワード比較、パスワード一致、およびダウンロード許可、などのパスワード保護フローを行うプログラムの作成を完了すると、ユーザーにそのプログラムを渡す。
図2(a)を参照してユーザー側のダウンロード専用ツール3には、プログラム開発者から提供されたダウンロード用プログラムが搭載されている。そしてユーザーはこのダウンロード専用ツール3と、プログラムダウンロード先であるPLC4とを接続すると共に、プログラム開発者から渡されたプログラムをダウンロード専用ツール3からPLC4にダウンロードさせる。このプログラムにおいてバージョン1のパスワードとバージョン2のパスワードは図2(b)のパスワードテーブル2で示すように、いずれも「ABC」である。
次にこのバージョン1、バージョン2の各プログラムのダウンロードの制御フローに関して図3を参照して説明する。ステップS1でユーザーはダウンロード専用ツール3からPLC4にバージョン1(Ver.1.0)のプログラムをダウンロードする。ステップS2では、上記ダウンロードによりPLC4にはパスワード「ABC」が登録される。次いで、ステップS3で別バージョンのプログラムがダウンロードされてくるかどうかを判断する。別バージョンであるバージョン2(Ver.2.0)のプログラムがダウンロードされてくると、ステップS3でYESと判断して、ステップS4に進む。ステップS4では、バージョン1のプログラムのパスワード「ABC」とバージョン2のプログラムのパスワード「ABC」とが比較される。そして、ステップS5で両パスワードが一致しないでNOと判断された時は、ステップS6でプログラムのダウンロードを不許可とし、一致してYESと判断された時はステップS7でプログラムのダウンロードを許可してバージョン2のプログラムのダウンロードを許可して、終了する。
上記プログラムは、機能として、ユーザーの制御対象をシーケンス制御するラダープログラムであるが、ダウンロード専用ツール3からPLC4にダウンロードされてくると、PLC4内のCPUは上記図3のフローチャートに従い、バージョン1、バージョン2のプログラムのダウンロード、両バージョン1,2それぞれのプログラム内のパスワード比較などを行う。なお、PLC4内部の詳細ブロックの図示は略する。
次に、図4を参照して、ユーザーがPLCにより複数の制御対象それぞれを異なるプログラムで制御する場合を説明する。ダウンロード専用ツール5をPLC6に接続する。プログラム開発者は、制御対象が複数、例えば制御対象数を「10」と仮定し、各制御対象ごとにプログラム4−1、プログラム4−2、…、プログラム4−10を開発する。これらプログラム4−1、4−2、…は、いずれも、バージョン1(Ver.1.0)である。次に、プログラム開発者は、これらプログラム4−1、4−2、…のバージョン2(Ver.2.0)を開発した。それぞれのパスワードテーブル4−1、4−2、…を示す。パスワードテーブル4−1でのパスワードはABC4−1、パスワードテーブル4−2でのパスワードはABC4−2、…、パスワードテーブル4−10でのパスワードはABC4−10である。
そして、PLC6内部のメモリには、プログラム4−1、プログラム4−2、…、プログラム4−10ごとに異なるパスワードABC4−1、ABC4−2、…、ABC4−10を登録する。プログラム4−1は、例えば第1制御対象の制御用プログラムでありそのバージョン1にもバージョン2にも共に同一パスワードABC4−1とし、プログラム4−2は、第2制御対象の制御用プログラムであり、そのバージョン1にもバージョン2にも共に同一パスワードABC4−2とし、…、プログラム4−10は、第10制御対象の制御用プログラムであり、そのバージョン1にもバージョン2にも共に同一パスワードABC4−10とする。
そして、ユーザーは、例えば第1制御対象をプログラム4−1のバージョン1で制御している場合において、ダウンロード専用ツール5をPLC6に接続してバージョン2に変更する場合、PLC6内部で、バージョン1と2とのパスワード比較がなされ、パスワードが共にABC4−1と一致するので、バージョン2のプログラム4−1のダウンロードが許可され、当該バージョン2のプログラム4−1がダウンロードされる。こうしてプログラム4−1をバージョン1からバージョン2に変更することができる。第2制御対象以降も同様であるから、その説明は省略する。
図5を参照してプログラム開発者側に複数、例えば10名のユーザーがいて、各ユーザーごとにバージョン変更する場合を説明する。各ユーザーはそれぞれダウンロード専用ツール7−1、7−2、…、7−10を有する。各ダウンロード専用ツール7−1、7−2、…、7−10それぞれにPLC8−1、8−2、…、8−10が接続され、各PLC8−1、8−2、…、8−10に、いずれもバージョン1のプログラム5−1、5−2、…、5−10がダウンロードされる。各PLC8−1、8−2、…、8−10には、パスワードテーブル5−1,5−2、…、5−10におけるパスワードABC5−1、ABC5−2、…、ABC5−10が登録される。
次に、プログラム開発者から各ユーザーにバージョン2のプログラム5−1、5−2、…、5−10がそれぞれ渡される。各ユーザーは、それぞれのダウンロード専用ツール7−1、7−2、…、7−10からバージョン2の各プログラム5−1、5−2、…、5−10をダウンロード操作する。PLC8−1、8−2、…、8−10においては、バージョン1と2それぞれのパスワード比較を行う。これらパスワードはプログラム5−1、5−2、…、5−10それぞれにおいて、共にABC5−1、ABC5−2、…、ABC5−10として一致するので、これらバージョン2のプログラム5−1、5−2、…、5−10はダウンロードされる。こうして各PLC8−1、8−2、…、8−10においては、プログラム5−1、5−2、…、5−10それぞれのバージョンをバージョン1からバージョン2に変更することができる。
以上説明したように本実施の形態では、例えば、プログラム開発者はユーザーに対しては、バージョン1のプログラムに埋め込んだパスワードと同一のパスワードを、バージョン2のプログラムに埋め込む。そして、バージョン1のプログラムをまずPLCにダウンロードすると、バージョン1のプログラムのパスワードがPLCに登録される。そして、このバージョン1のプログラムのパスワード登録後では、第三者ユーザーがダウンロード専用ツールを用いて、バージョン1のプログラムを別のPLCにコピーさせるようなことはできない。
次に、プログラム開発者がバージョン2のプログラムを開発した場合、バージョン2のプログラムに対してバージョン1のプログラムの時のパスワードと同一のパスワードを埋め込む。そして、このバージョン2のプログラムをユーザーに渡す。ユーザーはそのバージョン2のプログラムをダウンロード専用ツールからPLCにダウンロードさせる場合、PLC内部においては、すでにダウンロードしているバージョン1のプログラムのパスワードとバージョン2のプログラムのパスワードとを比較し、両パスワードが一致する場合は、バージョン2のプログラムのダウンロードを許可することができる。
以上により、本実施の形態では、パスワード登録済みのPLCからプログラムをコピーすることができないので、プログラム開発者のプログラムを保護することができると共に、ユーザーはパスワードを知らなくても、PLC内のCPUがメモリに登録しているバージョン1のプログラムのパスワードと、ダウンロードしようとするバージョン2のプログラムのパスワードとを比較し、一致すればバージョン2のダウンロードを許可し、一致しなければ許可しないので、バージョン1のプログラムで機械を制御している場合に、別のプログラムがダウンロードされて当該機械を誤動作させてしまうといったことが防止され、ユーザーを保護することができる。
1 プログラミング用ツール
2 PLC
3 ダウンロード専用ツール
4 PLC
2 PLC
3 ダウンロード専用ツール
4 PLC
Claims (1)
- 各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、
上記プログラムダウンロード対象の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、
上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、
上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、
を含むことを特徴とするパスワードによるプログラム保護方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009267629A JP2011113198A (ja) | 2009-11-25 | 2009-11-25 | パスワードによるプログラム保護方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009267629A JP2011113198A (ja) | 2009-11-25 | 2009-11-25 | パスワードによるプログラム保護方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011113198A true JP2011113198A (ja) | 2011-06-09 |
Family
ID=44235501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009267629A Pending JP2011113198A (ja) | 2009-11-25 | 2009-11-25 | パスワードによるプログラム保護方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011113198A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016099899A (ja) * | 2014-11-25 | 2016-05-30 | 富士電機株式会社 | コントロールシステム、その支援装置、プログラマブルコントロール装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06138925A (ja) * | 1992-10-28 | 1994-05-20 | Fanuc Ltd | 数値制御装置 |
JPH06222815A (ja) * | 1993-01-26 | 1994-08-12 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
JPH10116108A (ja) * | 1996-10-09 | 1998-05-06 | Fuji Electric Co Ltd | プログラミング方法 |
JPH10124308A (ja) * | 1996-10-25 | 1998-05-15 | Mitsubishi Electric Corp | プログラマブルコントローラのプログラム保護方法 |
JP2008165709A (ja) * | 2007-01-05 | 2008-07-17 | Koyo Electronics Ind Co Ltd | モーションプログラム保護方法およびプログラマブルコントローラ |
-
2009
- 2009-11-25 JP JP2009267629A patent/JP2011113198A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06138925A (ja) * | 1992-10-28 | 1994-05-20 | Fanuc Ltd | 数値制御装置 |
JPH06222815A (ja) * | 1993-01-26 | 1994-08-12 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
JPH10116108A (ja) * | 1996-10-09 | 1998-05-06 | Fuji Electric Co Ltd | プログラミング方法 |
JPH10124308A (ja) * | 1996-10-25 | 1998-05-15 | Mitsubishi Electric Corp | プログラマブルコントローラのプログラム保護方法 |
JP2008165709A (ja) * | 2007-01-05 | 2008-07-17 | Koyo Electronics Ind Co Ltd | モーションプログラム保護方法およびプログラマブルコントローラ |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016099899A (ja) * | 2014-11-25 | 2016-05-30 | 富士電機株式会社 | コントロールシステム、その支援装置、プログラマブルコントロール装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669309B2 (en) | Extensible integrated development environment (IDE) platform with open application programming interfaces (APIs) | |
US10901393B2 (en) | Industrial automation control system content protection | |
CN103425909B (zh) | 控制系统、控制装置及程序执行控制方法 | |
JPH0789345B2 (ja) | パーソナルコンピュータのソフトウエアを遠隔位置で起動するための安全システム | |
CN109787957B (zh) | 配置文件的配置方法及相关装置 | |
WO2017066318A1 (en) | Secure code delivery | |
CN104036182A (zh) | 一种信息处理方法、提示方法、服务器及电子设备 | |
KR20140058419A (ko) | 공격 저항을 위하여 어플리케이션 전체에 걸쳐 종속성 네트워크들을 제공하는 방법 및 시스템 | |
US20120239941A1 (en) | Programmable controller system, tool device, tool program, storage medium, and programmable controller | |
JP5198878B2 (ja) | クラスタツールのための安全なユニバーサルコンフィギュレーションソフトウェア | |
JP2011113198A (ja) | パスワードによるプログラム保護方法 | |
JP4938692B2 (ja) | プラズマクラスタツールを設定するための方法 | |
US20100161996A1 (en) | System and Method for Developing Computer Chips Containing Sensitive Information | |
US8352753B2 (en) | Microcontroller and method for starting an application program on a microcontroller by which unauthorized access to data contained in or processed by the microcontroller is prevented | |
JP2010257302A (ja) | セキュア媒体 | |
US8910303B2 (en) | System and method for manipulating security of integrated circuit layout | |
JP2009187177A (ja) | プログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツール | |
WO2016060772A1 (en) | Machine tool post configurator systems and methods | |
JP2005202663A (ja) | 制御用プログラム,コンパイラおよび変換プログラム | |
JP2005038261A (ja) | プログラマブルコントローラシステムおよびプログラム開発支援装置 | |
US20210110006A1 (en) | Controller, Method for Managing License, and Program for Managing License | |
JP2013175082A (ja) | 電子制御装置の検証装置 | |
CN100585607C (zh) | 配置等离子体群集工具的方法 | |
US10621312B2 (en) | Method for operating a computer system to authorize use of software on a process computer | |
JP2005182592A (ja) | 実行ライセンス管理装置とそれを内蔵したコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131022 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140311 |