(57)【要約】【課題】システムにかかる負荷を軽減することが可能なセキュリティ機能を搭載したプログラマブルコントローラを提供すること。【解決手段】ユーザを認証するためのユーザ管理情報１とプログラマブルコントローラ内のファイルへのアクセスを制御するためのアクセス制御情報２とを分離し、ユーザの認証とファイルへのアクセスの制御を２段階に分けることで、システムにかかる負荷を軽減する。さらに、アクセス制御情報２をファイル毎に設定することで、アクセスを制御したいファイルの追加に伴う、情報量の増大を抑制できるため、システムにかかる負荷をより軽減することができる。【選択図】        図６
2010146195.tif 000002
【特許請求の範囲】
【請求項１】
外部からのアクセスが許可されたユーザのみがアクセス可能であるとともに、内部に存在するファイルの少なくとも一部にアクセス制御がなされているプログラマブルコントローラにおいて、
ユーザ名、パスワード、およびアクセス権限のレベルであるアクセスレベルを含み、ユーザを認証するための情報として用いられるユーザ管理情報と、前記アクセスレベル毎に前記ファイルへのアクセスの可否を前記ファイルへのアクセス操作に対して定義した情報であるアクセス制御情報とが、保存された非公開メモリ、を備え、
アクセス対象のファイルにアクセスを試みるユーザに対し、前記ユーザがアクセス時に入力したユーザ名およびパスワードと前記ユーザ管理情報に含まれるユーザ名およびパスワードとが一致して前記ユーザが認証され、さらに、前記ファイルに対する前記アクセス制御情報が前記非公開メモリに保存されている場合には、前記ユーザ管理情報にて設定された前記ユーザのアクセスレベルに応じて前記アクセス制御情報にて設定許可された範囲内で前記ファイルへのアクセスを許可することを特徴とするプログラマブルコントローラ。
【請求項２】
前記アクセス制御情報は、前記プログラマブルコントローラ内のファイル毎に設定されていることを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
シーケンスプログラムが記憶されたプログラムメモリと、
制御処理に必要な環境設定データが記憶されたデータメモリと、
をさらに備え、
前記ユーザのアクセス対象となるファイルは、前記プログラムメモリまたは前記データメモリに保存されたファイルであることを特徴とする請求項１または２に記載のプログラマブルコントローラ。
【請求項４】
前記非公開メモリには、さらに、前記プログラマブルコントローラにログインしているユーザについての情報であるログインユーザ情報が記憶されていることを特徴とする請求項１〜３のいずれか１項に記載のプログラマブルコントローラ。
【請求項５】
認証された初期化コマンドに応じて、前記非公開メモリに記憶された前記ユーザ管理情報、前記アクセス制御情報、およびログインユーザ情報を含む前記プログラマブルコントローラ内の全データを消去可能であることを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記ログイン中のユーザが存在しない場合に、全データを消去可能であることを特徴とする請求項５に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象機器をシーケンス制御するプログラマブルコントローラに関し、特にセキュリティ機能を搭載したプログラマブルコントローラに関する。
【背景技術】
【０００２】
従来、セキュリティ機能を搭載したプログラマブルコントローラとしては、以下に説明するものが開示されている。
【０００３】
すなわち、ユーザ名、パスワード、アクセスレベルを含むユーザ情報を記憶したユーザ認証テーブルを格納するメモリカードをプログラマブルコントローラに装着した後、該プログラマブルコントローラにアクセス可能なツールからユーザ名、パスワードを含むユーザ情報を記載したログイン要求コマンドを該プログラマブルコントローラへ送信する。そして、該ログイン要求コマンドに記載されたユーザ名、パスワードと、メモリカードのユーザ認証テーブルのユーザ名、パスワードとが一致した場合に、該プログラマブルコントローラにアクセス可能なツールによる該プログラマブルコントローラへのアクセスを許可する。さらに、該プログラマブルコントローラへのアクセスは、ユーザ認証テーブルに記憶されたアクセスレベルの許可範囲内で可能とする（例えば、特許文献１参照）。なお、特許文献１におけるアクセスレベルの定義は、プログラマブルコントローラ内の各ファイルの各エリア毎に操作（読出し、書込み、実行許可）可否を設定した情報である。
【０００４】
【特許文献１】特開２００３−１６７６０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記従来の技術は、ユーザを認証するための情報とプログラマブルコントローラ内のファイルへのアクセスを制御するための情報を一つのテーブルで一括管理し、ユーザの認証とファイルへのアクセスの制御を前記テーブルで実施しているため、システムに負荷がかかっている。さらに、該情報をユーザ毎に設定しているため、例えば、ユーザによるアクセスを制御したいファイルの追加に伴い、登録されている全ユーザ数分、追加したファイルへのアクセス可否を設定する必要があり、情報量が膨大になる。このこともシステムに負荷がかかる一因となっている。
【０００６】
この発明は、上述の課題を解決するためになされたもので、システムにかかる負荷を軽減することが可能なセキュリティ機能を搭載したプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係るプログラマブルコントローラは、外部からのアクセスが許可されたユーザのみがアクセス可能であるとともに、内部に存在するファイルの少なくとも一部にアクセス制御がなされているプログラマブルコントローラにおいて、ユーザ名、パスワード、およびアクセス権限のレベルであるアクセスレベルを含み、ユーザを認証するための情報として用いられるユーザ管理情報と、前記アクセスレベル毎に前記ファイルへのアクセスの可否を前記ファイルへのアクセス操作に対して定義した情報であるアクセス制御情報とが、保存された非公開メモリ、を備え、アクセス対象のファイルにアクセスを試みるユーザに対し、前記ユーザがアクセス時に入力したユーザ名およびパスワードと前記ユーザ管理情報に含まれるユーザ名およびパスワードとが一致して前記ユーザが認証され、さらに、前記ファイルに対する前記アクセス制御情報が前記非公開メモリに保存されている場合には、前記ユーザ管理情報にて設定された前記ユーザのアクセスレベルに応じて前記アクセス制御情報にて設定許可された範囲内で前記ファイルへのアクセスを許可することを特徴とする。
【発明の効果】
【０００８】
この発明によれば、ユーザ名、パスワード、およびアクセス権限のレベルであるアクセスレベルを含み、ユーザを認証するための情報として用いられるユーザ管理情報と、前記アクセスレベル毎に前記ファイルへのアクセスの可否を前記ファイルへのアクセス操作に対して定義した情報であるアクセス制御情報とを、分割して管理するようにしたので、システムにかかる負荷を軽減することができる、という効果を奏する。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明に係るプログラマブルコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、本実施の形態に係るプログラマブルコントローラの全体構成を示す図である。以下説明するように、本実施の形態のプログラマブルコントローラ１０１は外部からのファイルへのアクセスを制御するセキュリティ機能を搭載している。ここでセキュリティ機能とは、例えば、悪意のあるユーザによるファイルの改竄および盗用、ユーザの誤動作による改変を防止する機能のことを指す。また、図６は、システムメモリの記憶内容を示す図である。
【００１１】
図１に示すように、プログラマブルコントローラ１０１は、ＭＰＵ１０２、プログラムメモリ１０３、システムメモリ１０４、データメモリ１０５、および通信ドライバ１０６を備えており、さらに、外部のツール１０７と接続されている。
【００１２】
図１において、プログラムメモリ１０３は、シーケンスプログラムなどのプログラマブルコントローラ１０１が演算するための情報が格納されたメモリである。ＭＰＵ１０２は、プログラマブルコントローラ１０１の全体動作を統括制御する制御部として機能する。データメモリ１０５は、プログラマブルコントローラ１０１を制御するのに必要な環境設定データが格納されたメモリである。通信ドライバ１０６は、プログラマブルコントローラ１０１とツール１０７との通信を可能にするドライバである。ツール１０７は、プログラマブルコントローラ１０１にアクセス可能なツールである。システムメモリ１０４は、非公開メモリであり、図６に示すように、ユーザを認証するための情報であるユーザ管理情報１、各ファイルへのアクセス（例えば、読出し、書込み、表示）可否をアクセスレベル毎に定義した情報であるアクセス制御情報２、およびプログラマブルコントローラ１０１にログインしているユーザの情報であるログインユーザ情報テーブル３が格納されたメモリである。
【００１３】
図２は、本実施の形態におけるユーザ管理情報１の構成を示した図である。ユーザ管理情報１およびログインユーザ情報テーブル３には、ユーザ名、パスワード、およびアクセスレベルを記憶する。アクセスレベルは、例えば、Administrators、Developers（Level3）、Developers2（Level2）、Developers1（Level1）、Usersの５段階で表現し、プログラマブルコントローラ１０１にアクセスする各ユーザにプログラマブルコントローラ１０１内部のファイルにアクセスする権限を割り当てる。なお、ログインユーザ情報テーブル３の構成もユーザ管理情報１の構成と同様である。
【００１４】
すなわち、図２に示すユーザ管理情報１においては、ユーザ名「SATO」に対応してパスワード「Admini_MAN」および、アクセスレベル「Administrators」が記憶される。同様に、ユーザ名「SUZUKI」に対応してパスワード「User_MAN」および、アクセスレベル「Users」が記憶され、ユーザ名「TAKAHASI」に対応してパスワード「Develop_MAN」および、「Developers（Level3）」が記憶される。なお、ログインユーザ情報テーブル３の構成は、図２に示すユーザ管理情報１と同様であるが、プログラマブルコントローラ１０１にログインしているユーザに対してのみ情報が管理される。
【００１５】
図３は、本実施の形態におけるアクセス制御情報２の構成を示した図である。アクセス制御情報２には、アクセスレベル、およびプログラマブルコントローラ１０１内のファイルへのアクセス（読出し、書込み、表示）可否の情報を記憶する。アクセス制御情報２は、例えば、プログラマブルコントローラ１０１内のファイル毎に設定する。プログラマブルコントローラ１０１から認証されたユーザは、プログラマブルコントローラ１０１内の各ファイルに対して設定されたアクセス制御情報２に従ったアクセスが可能となる。ここで、アクセス対象のファイルに対して設定されたアクセス制御情報２に従ったアクセスとは、プログラマブルコントローラ１０１から認証されたユーザのユーザ管理情報１に設定されている「アクセスレベル」と一致するアクセス管理情報２の「アクセスレベル」に設定された「ファイルへのアクセス可否」に従ったアクセスのことを言う。
【００１６】
すなわち、図３のアクセス制御情報２においては、アクセスレベル「Administrators」に対応するユーザは、「読出し」、「書込み」、「表示」全ての操作が「許可」に設定されていることを示している。同様に、アクセスレベル「Developers（Level3）」に対応するユーザも全ての操作が「許可」に設定されていることを示し、アクセスレベル「Developers（Level2）」、「Developers（Level1）」に対応するユーザは、「読出し」、「表示」の操作が「許可」、「書込み」の操作が「禁止」に設定されていることを示し、アクセスレベル「Users」に対応するユーザは、「読出し」、「書込み」の操作が「禁止」、「表示」の操作のみ「許可」に設定されていることを示している。
【００１７】
次に、図１を参照して、本実施の形態の動作について説明する。プログラマブルコントローラ１０１にアクセスするユーザは、ツール１０７から通信ドライバ１０６を介して、プログラムメモリ１０３およびデータメモリ１０５にアクセスできる。
【００１８】
該ユーザからのアクセス要求を受信したプログラマブルコントローラ１０１は、該ユーザを認証するために、ユーザにユーザ名とパスワードの再入力を要求するためのログイン要求依頼を起動元であるツール１０７に送信する。
【００１９】
次に、プログラマブルコントローラ１０１からのログイン要求依頼を受信したツール１０７は、ログイン画面を表示させ、プログラマブルコントローラ１０１にアクセスするユーザにユーザ名、パスワードの入力を要求する。
【００２０】
ユーザにより、ユーザ名、パスワードの入力がされると、プログラマブルコントローラ１０１は、システムメモリ１０４に格納されているユーザ管理情報１内のユーザ名およびパスワードと入力されたユーザ名およびパスワードとを比較し、比較結果が一致した場合、アクセスしてきたユーザに対応するユーザ管理情報１内のユーザ名、パスワード、およびアクセスレベルをシステムメモリ１０４内のログインユーザ情報テーブル３にコピーし、アクセスを許可する。比較結果が一致しない場合には、アクセスを禁止し、再度、ログイン要求依頼を、通信ドライバ１０６を介して、ツール１０７に送信する。なお、前述のように、プログラマブルコントローラ１０１の制御処理はＭＰＵ１０２により実現されるため、具体的には上記比較処理などはＭＰＵ１０２によって行われ、以下同様である。
【００２１】
プログラマブルコントローラ１０１は、ログインしているユーザがログオフ操作を実行した場合、または、ログインしているユーザからのアクセスが一定時間なかった場合、ログインユーザ情報テーブル内の該ユーザに対応する情報を削除する。
【００２２】
プログラマブルコントローラ１０１は、アクセスしてきたユーザを認証すると、プログラムメモリ１０３内のアクセス対象のファイルまたはデータメモリ１０５内のアクセス対象のファイルに対して設定されたシステムメモリ１０４内のアクセス制御情報２に従って、アクセスを許可する。
【００２３】
すなわち、プログラマブルコントローラ１０１は、アクセスしてきたユーザを認証すると、アクセス対象であるプログラムメモリ１０３内のファイルまたはデータメモリ１０５内のファイルに対して設定されたシステムメモリ１０４内のアクセス制御情報を参照して、ユーザ管理情報１で設定されたアクセスレベルに対応したアクセスを許可する。
【００２４】
例えば、プログラマブルコントローラ１０１から認証されたユーザである「UserA」が、ユーザ管理情報１においてアクセスレベル「Developers（Level2）」に設定されており、アクセス対象の「ファイルA」に対して設定されたアクセス制御情報２において、「Developers（Level2）」のアクセス操作が「書込み」のみ禁止に設定されていれば（図３）、プログラマブルコントローラ１０１は、「UserA」の「ファイルA」に対するアクセスとして「読出し」、「表示」のみ許可し、「書込み」は禁止する。
【００２５】
図４は、プログラマブルコントローラ１０１が、ツール１０７を介してアクセスしてきたユーザを認証し、アクセス対象のファイルへのアクセスを許可するまでのプログラマブルコントローラ１０１の動作を示すフローチャートである。
【００２６】
図４に示すように、まず、プログラマブルコントローラ１０１は、ツール１０７から通信ドライバ１０６を介して、ログイン要求コマンドを受信すると（Ｓ１）、システムメモリ１０４に格納されているユーザ管理情報１中のユーザ名およびパスワードに、ユーザが入力したユーザ名およびパスワードと一致するものがあるかどうかを確認する（Ｓ２）。
【００２７】
Ｓ２において一致するものがなければ（Ｓ２，Ｎｏ）、再度、ログイン要求依頼をツール１０７に送信し（Ｓ３）、ユーザにユーザ名とパスワードの再入力を要求する。
【００２８】
Ｓ２において一致するものがあれば（Ｓ２，Ｙｅｓ）、ログインユーザ情報テーブル３に該ユーザに対応するユーザ管理情報１内の情報（ユーザ名、パスワード、およびアクセスレベル）をコピーし（Ｓ４）、続いて、システムメモリ１０４を参照してアクセス対象のファイルに対してアクセス制御情報２が設定されているか否かを調べる（Ｓ５）。
【００２９】
アクセス対象のファイルに対してアクセス制御情報２が設定されている場合は（Ｓ５，Ｙｅｓ）、設定されているアクセス制御情報２を参照し、該ユーザに設定されたアクセスレベルに合致するアクセスレベルに対して許可された範囲内で該ユーザによるアクセスを許可する（Ｓ６）。
【００３０】
また、アクセス対象のファイルに対してアクセス制御情報２が設定されていない場合は（Ｓ５，Ｎｏ）、該ユーザに設定されたアクセスレベルに依らず、該ファイルへのアクセスを制限なく許可する（Ｓ７）。
【００３１】
本実施の形態によれば、従来一括で管理していた情報（すなわち、ユーザを認証し、ファイルへのアクセスを制御するための情報）をユーザ管理情報１とアクセス制御情報２とに分割することで、システムにかかる負荷を軽減できる効果がある。
【００３２】
さらに、アクセス制御情報２をファイル毎に設定することで、アクセスを制御したいファイルの追加に伴って、登録されているユーザ数分、追加したファイルへのアクセス可否を設定する必要がなくなり、情報量の増大を抑制できるため、システムにかかる負荷をさらに軽減できる。
【００３３】
例えば特許文献１のように、従来のユーザを認証する仕組みを搭載したプログラマブルコントローラは、ユーザを認証するための情報およびアクセス対象のファイルへのアクセスを制御するための情報を一括で管理しており、ユーザを認証してからプログラマブルコントローラ内のアクセス対象のファイルにアクセスするまでの一連の処理を単一のテーブルで実現しているため、システムに大きな負荷がかかっていた。さらに、ユーザ毎にファイルへのアクセスを制御するための情報を設定していることで、アクセスを制御したいファイルの追加に伴い、全登録ユーザ数分、追加したファイルへのアクセス可否を設定する必要があり、情報量が増大するため、システムに、より大きな負荷がかかっていた。
【００３４】
本実施の形態では、従来一括で管理していたユーザを認証するための情報とプログラマブルコントローラ内のファイルへのアクセスを制御する情報とを分離し、ユーザの認証とファイルへのアクセスの制御を２段階に分けることで、システムにかかる負荷を軽減する。さらに、ファイルへのアクセスを制御するための情報をファイル毎に設定することで、アクセスを制御したいファイルの追加に伴う、情報量の増大を抑制できるため、システムにかかる負荷をより軽減することができる。
【００３５】
なお、特許文献１におけるアクセスレベルの定義は、本実施の形態におけるアクセスレベルの定義とは異なる。特許文献１におけるアクセスレベルの定義は、プログラマブルコントローラ内の各ファイルの各エリア毎に操作（読出し、書込み、実行許可）可否を設定した情報のことである。一方、本実施の形態におけるアクセスレベルの定義は、プログラマブルコントローラにアクセスするユーザに付与された操作権限のレベルの種類のことである。
【００３６】
実施の形態２．
管理者がパスワードを忘れてしまったため、プログラマブルコントローラのセキュリティが機能しなくなる場合がある。管理者が自身のパスワードを忘れてしまった場合の復旧手段として、メーカーに問い合わせることで、パスワードを取得する手段がある。しかしながら、この場合、メーカーは購入者を判別することは可能であるが、購入者が該プログラマブルコントローラの管理者であることは判別できないという問題がある。
【００３７】
また、別の復旧手段として、忘れにくい解答とその質問を予め設定し、その質問に解答し、正解することでパスワードを取得する手段などがある。しかしながら、予め設定した質問に対する解答を万が一、忘れてしまった場合の復旧手段がないという問題がある。
【００３８】
本実施の形態では、管理者が自身のパスワードを忘れてしまった場合でもメーカーにパスワードを問い合わせることなくそのセキュリティ機能を復旧可能なプログラマブルコントローラについて説明する。なお、本実施の形態に係るプログラマブルコントローラは、実施の形態１で説明した構成（図１、図６参照）を備えている。
【００３９】
自身のパスワードを忘れた管理者は、図１のプログラマブルコントローラ１０１に対して、初期化パスワードコマンドを発行することができる。プログラマブルコントローラ１０１は、初期化パスワードコマンドを受信すると、システムメモリ１０４内のログインユーザ情報テーブル３を参照して、ログイン中のユーザが存在するかどうかを確認し、存在しなければ、予め設定されたシステムメモリ１０４内の初期化パスワードと管理者がプログラマブルコントローラ１０１にアクセス時に入力した初期化パスワードとが一致するかどうかを確認する。パスワードが一致すれば、プログラマブルコントローラ１０１は、システムメモリ１０４内のユーザ管理情報１、アクセス制御情報２、およびログインユーザ情報テーブル３、ならびに、プログラムメモリ１０３およびデータメモリ１０５内の全データを削除する。
【００４０】
図５は、管理者が自身のパスワードを忘れた場合に、プログラマブルコントローラ１０１が、セキュリティに関する情報（ユーザ管理情報１、アクセス制御情報２、およびログインユーザ情報テーブル３）とプログラムメモリ１０３およびデータメモリ１０５内部の全データを削除する処理順序を示すフローチャートである。
【００４１】
プログラマブルコントローラ１０１は、ツール１０７から通信ドライバ１０６を介して、初期化パスワードコマンドを受信すると（Ｓ２０）、現在プログラマブルコントローラ１０１にログインしているユーザがいないかどうかをシステムメモリ１０４内のログインユーザ情報テーブル３を参照して確認する（Ｓ２１）。
【００４２】
ログインしているユーザがいる場合（Ｓ２１，Ｙｅｓ）、すなわち、ログインユーザ情報テーブル３内にユーザが登録されている場合、プログラマブルコントローラ１０１は、ツール１０７に初期化不可メッセージを送信する（Ｓ２２）。
【００４３】
ログインしているユーザがいない場合（Ｓ２１，Ｎｏ）、すなわち、ログインユーザ情報テーブル３内にユーザが登録されていない場合、受信した初期化パスワードコマンド中の初期化パスワードと予めシステムメモリ１０４内に記憶されている初期化パスワードとを比較し、一致するかどうかを調べる（Ｓ２３）。
【００４４】
初期化パスワードが一致した場合（Ｓ２３，Ｙｅｓ）、システムメモリ１０４内に記憶されているユーザ管理情報１、アクセス制御情報２、ログインユーザ情報テーブル３を削除するとともに、プログラムメモリ１０３およびデータメモリ１０５内に記憶されている全データを削除する（Ｓ２４）。
【００４５】
初期化パスワードが一致しない場合（Ｓ２３，Ｎｏ）、ツール１０７に初期化不可メッセージを送信する。なお、初期化パスワードとは、プログラマブルコントローラ１０１を工場出荷時の状態に戻すための予め一意に設定されたパスワードのことを指す。
【００４６】
上記のように、プログラマブルコントローラ１０１にアクセスする管理者が初期化パスワードコマンドを実行し、プログラマブルコントローラ１０１を工場出荷時の状態に戻すことで、万が一、管理者が自身のパスワードを忘れた場合でも、セキュリティに関する情報をプログラマブルコントローラ１０１に再設定することにより、再度、セキュリティ機能を搭載したプログラマブルコントローラ１０１として使用することができる。
【産業上の利用可能性】
【００４７】
本発明に係るプログラマブルコントローラは、システム開発者を階層別に分類し、アクセス権限を割り当てるようなシステム開発に有用である。また、本発明に係るプログラマブルコントローラは、パスワードを忘れた場合の復旧手段を搭載しておかなければならないようなシステム開発に有用である。
【図面の簡単な説明】
【００４８】
【図１】実施の形態１に係るプログラマブルコントローラの全体構成を示す図である。
【図２】実施の形態１におけるユーザ管理情報の構成を示した図である。
【図３】実施の形態１におけるアクセス制御情報の構成を示した図である。
【図４】実施の形態１において、プログラマブルコントローラが、ツールを介してアクセスしてきたユーザを認証し、アクセス対象のファイルへのアクセスを許可するまでの動作を示すフローチャートである。
【図５】管理者が自身のパスワードを忘れた場合に、プログラマブルコントローラが、セキュリティに関する情報と内部の全データを削除する処理順序を示すフローチャートである。
【図６】システムメモリの記憶内容の一例を示す図である。
【符号の説明】
【００４９】
１  ユーザ管理情報
２  アクセス制御情報
３  ログインユーザ情報テーブル
１０１  プログラマブルコントローラ
１０２  ＭＰＵ
１０３  プログラムメモリ
１０４  システムメモリ
１０５  データメモリ
１０６  通信ドライバ
１０７  ツール
【図１】
2010146195.tif 000003
【図２】
2010146195.tif 000004
【図３】
2010146195.tif 000005
【図４】
2010146195.tif 000006
【図５】
2010146195.tif 000007
【図６】
2010146195.tif 000008