説明

情報処理装置及び通信システム及びユーザ認証方法及びプログラム

【課題】PLCにアクセスする端末でユーザ認証とアクセス制御を行う。
【解決手段】開発・設定端末2は、暗号化されたユーザ認証情報を有し、ベース共有情報を生成し、ベース共有情報から暗号鍵を生成し、ベース共有情報をPLC1に送信する。PLCは、ユーザ管理第一鍵を有し、受信したベース共有情報から前記暗号鍵と同じ鍵を生成し、当該鍵でユーザ管理第一鍵を暗号化し、暗号化したユーザ管理第一鍵を送信する。開発・設定端末は、暗号化されたユーザ管理第一鍵を前記暗号鍵で復号し、復号後のユーザ管理第一鍵とユーザ管理第二鍵を用いてユーザ認証情報を復号してユーザ認証を行う。また、開発・設定端末は、暗号化されたアクセス権限情報を有し、前記暗号鍵と同じ鍵で暗号化されたユーザ管理第一鍵をPLCから受信し、前記暗号鍵で復号し、復号後のユーザ管理第一鍵とユーザ管理第二鍵を用いてアクセス権限情報を復号してアクセス制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ認証技術に関し、例えば、PLC(Programmable Logic Controller:プログラマブル・ロジック・コントローラ)にアクセスする際のユーザ認証技術に関する。
【背景技術】
【0002】
PLCは、産業分野等で用いられている制御装置である。センサやスイッチといった入力装置から信号の入力を得て、演算を行い、モータやアクチュエータといった出力装置へ信号を出力するといった機能を持っている。
PLCは、入力装置や出力装置といった被制御装置と、ネットワークまたはワイヤで接続される。
PLCは、被制御装置に対する制御動作を、内部に備えたプログラムと各種パラメータに基づいて行う。通常、PLCが備えるプログラムと各種パラメータの作成は、パーソナルコンピュータ(以下、パソコンという)等で行う。
作成されたプログラムと各種パラメータは、USB(Universal Serial Bus)やシリアル接続、あるいはネットワーク接続を介して、パソコンからPLCへロードされる。
パソコンからPLCへプログラム等をロードする際、これまでは特に、セキュリティが考慮されていないか、あるいは、簡易なセキュリティ機能を利用しているだけだった。
具体的には、セキュリティが考慮されていない場合、誰でも、どんなプログラム等でも、パソコンからPLCへ条件なしにロードすることが出来た。
簡易なセキュリティ機能の一例には、単一パスワード機能がある。この機能では、ロードを行う人がパソコン上でパスワードを入力し、プログラム等のロードに先立ち、パソコンはPLCへ入力されたパスワードを送り、事前にPLCに登録されたパスワードと一致した場合にのみ、PLCはプログラムのロードを許可するというものである。
【0003】
通常の情報システムでは、ユーザが直接操作するクライアントよりも、クライアントを介してアクセスする先となるサーバのほうが処理能力および記憶容量が大きい。
PLCおよび開発・設定端末から構成されるシステムは、通常の情報システムとは異なり、開発・設定端末を介してアクセスする先のPLCのほうが、開発・設定端末よりも処理能力および記憶容量が小さい。
そのため、通常の情報システムで利用されるセキュリティ方式をそのまま適用することは出来ない。
類似した状況におけるユーザ認証実現手段として、例えば特許文献1では、使用許可証発行装置がユーザ認証を代行する方法が開示されている。
【特許文献1】特開2004−4412号公報(図2)
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来技術には、次のような課題がある。
利用者端末とサーバ以外に、使用許可証発行装置という第3の装置が必要なため、煩雑である。
サーバ資源のアクセス制御の仕組みがないため、利用を許可されたユーザはサーバ上の資源を無制限に使用できてしまう。
【0005】
本発明では、以上のような課題を解決することを主な目的としており、PLCに代表されるアクセス先装置へのアクセス時に使用するユーザ認証情報とアクセス権限情報を開発・設定端末に代表される情報処理装置に配置することで、アクセス先装置と比して能力の高い情報処理装置とアクセス先装置のみで、アクセス先装置に対するユーザ認証およびアクセス制御を可能とすることを主な目的とする。
【課題を解決するための手段】
【0006】
本発明に係る情報処理装置は、
アクセス先装置に接続され、前記アクセス先装置のリソースへのアクセスに先立ち、自装置を利用するユーザのユーザ認証を行う情報処理装置であって、
ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納する暗号ユーザ認証情報格納部と、
ユーザからのユーザ認証要求を入力する要求入力部と、
前記要求入力部によりユーザ認証要求が入力された際に、前記暗号ユーザ認証情報の復号のための復号鍵を前記アクセス先装置から受信し、受信した復号鍵を用いて前記暗号ユーザ認証情報を復号し、復号後のユーザ認証情報を用いてユーザ認証を行うユーザ認証制御部とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、アクセス先装置へのアクセス時に使用するユーザ認証情報を情報処理装置に配置し、更に、情報処理装置に配置されるユーザ認証情報を暗号化し、アクセス先装置から情報処理装置に送信される鍵を用いて暗号化されたユーザ認証情報を復号し、復号後のユーザ認証情報を用いて情報処理装置においてユーザ認証を行うこととしたので、アクセス先装置のほうが、情報処理装置よりも処理能力および記憶容量が小さくても、第3の装置を用いることなく、ユーザ認証を行うことが可能となる。
【発明を実施するための最良の形態】
【0008】
実施の形態1.
図1は、本発明の実施の形態1における通信システムのシステム構成を示すものである。
PLC1は、開発・設定端末2と接続媒体3で接続されている。
開発・設定端末2は、PLC1で動作するプログラムの開発やパラメータの生成、および、プログラムやパラメータをPLCへ設定するための開発・設定端末である。
接続媒体3は、例えば、USB、シリアルケーブル、あるいはネットワークケーブルである。
PLC1はアクセス先装置の例であり、開発・設定端末2は情報処理装置の例である。
【0009】
PLC1及び開発・設定端末2の内部構成の詳細及びそれぞれの内部構成要素の動作の詳細は図面を参照して後述するが、ここでは、本実施の形態におけるPLC1と開発・設定端末2の動作例を概説する。
開発・設定端末2(情報処理装置)は、PLC1(アクセス先装置)のリソースへのアクセスに先立ち、自装置を利用するユーザのユーザ認証を行う。
開発・設定端末2は、ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納し、ユーザからのユーザ認証要求を入力した際に、ベース共有情報を生成し、生成したベース共有情報を用いて暗号鍵を生成し、暗号鍵と同じ鍵をPLC1に生成させるためにベース共有情報をPLC1に送信する。
PLC1は、復号鍵を格納し、開発・設定端末2からベース共有情報を受信し、受信したベース共有情報を用いて前記暗号鍵と同じ鍵を生成し、生成した鍵を用いて前記復号鍵を暗号化し、暗号化した復号鍵を開発・設定端末2に送信する。
開発・設定端末2では、PLC1により前記暗号鍵と同じ鍵で暗号化された復号鍵をPLC1から受信し、受信した暗号化された復号鍵を前記暗号鍵で復号し、復号後の復号鍵を用いて暗号ユーザ認証情報を復号し、復号後のユーザ認証情報を用いてユーザ認証を行う。
【0010】
また、開発・設定端末2は、更に、ユーザのアクセス権限を示すアクセス権限情報であって、暗号化が行われている暗号アクセス権限情報を格納し、PLC1の特定リソースへのアクセス要求を入力した際に、PLC1により前記暗号鍵と同じ鍵で暗号化された復号鍵をPLC1から受信し、受信した暗号化された復号鍵を前記暗号鍵で復号する。
そして、復号後の復号鍵を用いて暗号アクセス権限情報を復号し、復号後のアクセス権限情報を用いてPLC1の特定リソースへのアクセス許否を判断し、アクセスが許可された場合にPLC1の特定リソースへのアクセスを行う。
【0011】
図2は、PLC1と開発・設定端末2の構成の詳細を示している。
PLC1は、認証領域ログイン制御部101a、認証領域共有鍵記憶部102a、PLCユーザ認証制御部103a、PLCアクセス制御部104a、ユーザ管理第一鍵記憶部105、PLC公開鍵/秘密鍵記憶部110から構成される。
なお、ユーザ管理第一鍵記憶部105に格納されているユーザ管理第一鍵は、上記の復号鍵の例である。
【0012】
開発・設定端末2は、認証領域ログイン制御部101b、認証領域共有鍵記憶部102b、PLCユーザ認証制御部103b、PLCアクセス制御部104b、ユーザDB106、ユーザ管理第二鍵記憶部107、アクセス権DB108、ユーザ入出力部109から構成される。
【0013】
ユーザDB106は、暗号ユーザ認証情報格納部の例であり、ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納している。
【0014】
認証領域ログイン制御部101bは、暗号鍵生成部の例であり、ユーザ入出力部109によりユーザ認証要求が入力された際に、暗号鍵を生成するとともに、生成した暗号鍵と同じ鍵をPLC1に生成させる。具体的には、認証領域ログイン制御部101bは、暗号鍵を生成するためのベース共有情報を生成し、生成したベース共有情報を用いて暗号鍵を生成し、暗号鍵と同じ鍵をPLC1に生成させるためにベース共有情報をPLC1に送信する。
また、認証領域ログイン制御部101bは、ユーザ入出力部109によりユーザ認証要求が入力される度に原則として異なる暗号鍵を生成する。
【0015】
PLCユーザ認証制御部103bは、ユーザ認証制御部の例であり、ユーザ入出力部109によりユーザ認証要求が入力された際に、暗号ユーザ認証情報の復号のためのユーザ管理第一鍵(復号鍵)をPLC1から受信し、受信したユーザ管理第一鍵を用いて暗号ユーザ認証情報を復号し、復号後のユーザ認証情報を用いてユーザ認証を行う。
より具体的には、PLCユーザ認証制御部103bは、認証領域ログイン制御部101bにより生成された暗号鍵と同じ鍵で暗号化されたユーザ管理第一鍵をPLC1から受信し、受信した暗号化されたユーザ管理第一鍵を前記暗号鍵で復号し、更に、ユーザ管理第二鍵記憶部107に記憶されているユーザ管理第二鍵と復号後のユーザ管理第一鍵とを用いてユーザ管理鍵(新たな復号鍵)を生成し、生成したユーザ管理鍵を用いて暗号ユーザ認証情報を復号する。
また、PLCユーザ認証制御部103bは、ユーザ管理鍵の生成後に、PLC1から受信したユーザ管理第一鍵を破棄し、また、暗号ユーザ認証情報の復号後に、ユーザ管理鍵を破棄する。
【0016】
ユーザ管理第二鍵記憶部107は、ユーザ管理第二鍵(復号鍵)を記憶する。
【0017】
アクセス権DB108は、暗号ユーザ認証情報格納部の例であり、ユーザのアクセス権限を示すアクセス権限情報であって、暗号化が行われている暗号アクセス権限情報を格納する。
【0018】
PLCアクセス制御部104bは、アクセス制御部の例であり、ユーザ入出力部109によりPLC1の特定リソースへのアクセス要求が入力された際に、暗号アクセス権限情報の復号のためのユーザ管理第一鍵(復号鍵)をPLC1から受信し、受信したユーザ管理第一鍵とユーザ管理第二鍵記憶部107に記憶されているユーザ管理第二鍵とを用いてユーザ管理鍵を生成し、生成したユーザ管理鍵を用いて暗号アクセス権限情報を復号し、復号後のアクセス権限情報を用いてアクセス要求にて要求されたアクセスの許否を判断する。
PLCアクセス制御部104bは、PLC1の特定リソースへのアクセスが許可されると判断した場合に、アクセス要求にて要求されたアクセスを実現するための処理、つまり特定リソースに対する処理を要求する処理要求を生成するとともに、認証領域ログイン制御部101bにより生成されたMAC鍵(処理要求認証鍵)を用いて処理要求の認証値を生成し、処理要求と認証値とをPLC1に対して送信する。
また、PLCアクセス制御部104bは、ユーザ管理鍵の生成後に、PLC1から受信したユーザ管理第一鍵を破棄し、また、暗号アクセス権限情報の復号後に、ユーザ管理鍵を破棄する。
また、PLCアクセス制御部104bは、処理要求と認証値のPLC1への送信後に、暗号鍵とMAC鍵(処理要求認証鍵)とを破棄する。
【0019】
ユーザ入出力部109は、要求入力部の例であり、ユーザからのユーザ認証要求及びアクセス要求を入力する。
【0020】
図3は、ユーザDB106の一例を示している。
ユーザDB106には、ユーザ認証情報として、ユーザIDとパスワードハッシュの組が保持されている。
ユーザDB106は、一般的なユーザID−パスワードの管理テーブルであり、パスワードハッシュは、パスワードでも、パスワードハッシュにソルトと呼ばれる乱数を加えたものであっても良い。ユーザをグループ分けして、グループIDを付与しても良い。
なお、ユーザDB106では、前述したように、暗号化された状態でユーザ認証情報が記憶されている。
【0021】
図4は、アクセス権DB108において記憶されているアクセス権限情報の一例を示している。
PLC1上でアクセス制御対象の名称と、そのアクセス権限の組が保持されている。
読出し、書込みは、アクセス権限の一例である。
アクセス権限の付与は、ユーザ単位、ユーザに付与したグループ単位、ユーザ単位とグループ単位の組合せを単位とする場合などがある。
図4では、ユーザ単位にアクセス権限が付与されており、名称がfile1である対象は、User1は読出し(r)と書込み(w)、User2は読出し(r)、User3は読出し(r)と書込み(w)のアクセス権限を持っていることを表している。アクセス権DB108は、ユーザIDと対象の名称が与えられた時、そのユーザがどんなアクセス権限を持っているかを検索できれば、図4に示した以外の形態であってもかまわない。
なお、アクセス権DB108では、前述したように、暗号化された状態でアクセス権限情報が記憶されている。
【0022】
次に、主にPLCユーザ認証制御部103a、103bの動作を示している図5と図7、および主に認証領域ログイン制御部101a、101bの動作を示している図6を用いて、ユーザ認証手順を示す。
【0023】
図5は、主にPLCユーザ認証制御部103a、103bの動作を示している。
開発・設定端末2では、ユーザ入出力部109で、ユーザから、ユーザID、パスワード、PLC名を含むユーザ認証要求を受取ると(S501)(要求入力ステップ)、PLCユーザ認証制御部103bは認証領域ログイン済みかどうかを判定する(S502)。
判定は、指定されたPLCに対応するMAC(Message Authentication Code)鍵と暗号鍵があるかどうかで行う。
ログイン済みでない場合には、認証領域ログイン制御部101bが、認証領域ログイン処理を実施する(S503)。
PLCユーザ認証制御部103bはログインが完了したか判定し(S504)、完了しない場合には、ユーザ入出力部109からユーザに対し、否認を通知する(S505)。
S502で認証領域ログイン済みの場合とS504でログイン完了の場合には、PLCユーザ認証制御部103bはユーザ管理鍵生成処理を行う(S506)(復号鍵受信ステップ)。
次に、PLCユーザ認証制御部103bは、ユーザ管理鍵生成処理(S506)において生成したユーザ管理鍵を用いてユーザDB106の暗号ユーザ認証情報を復号し、参照できる状態にする(S507)(復号ステップ)。
次に、PLCユーザ認証制御部103bは、ユーザ管理鍵を廃棄した後(S508)、ユーザ認証処理を実行する(S509)(ユーザ認証ステップ)。
ユーザ認証処理は、一般的な方法を用いる。例えば、S501で受付けたパスワードのハッシュ値を求め、求めたハッシュ値と、ユーザDBの該当するユーザIDに対応するパスワードハッシュを比較し、一致していたらユーザを認証するというものである。承認されたかを判定し(S510)、不可の場合にはユーザ入出力部109からユーザに対し、否認を通知する(S505)。
許可の場合には、PLCユーザ認証制御部103bは、ユーザセッションIDを生成し(S511)、ユーザ入出力部109からユーザに対し、ログイン承認を通知する(S512)。
ユーザセッションIDは、ログアウトするまでの間、ユーザIDと関連付けて保持される。
【0024】
図6は、主に認証領域ログイン制御部101a、101bの動作を示しており、図5の認証領域ログイン処理(S503)の詳細動作である。
開発・設定端末2では、認証領域ログイン制御部101bがPLC1の認証領域ログイン制御部101aに対し、認証領域ログイン要求を送信する(S601)。
PLCでは、認証領域ログイン要求を受信すると(S602)、認証領域ログイン制御部101aが、チャレンジを生成し(S603)、開発・設定端末2へ送信する(S604)。チャレンジの一例は、乱数である。
開発・設定端末2では、チャレンジを受信すると(S605)、認証領域ログイン制御部101bが、認証領域共有鍵記憶部102bに保持している認証領域共有鍵を用いてチャレンジ応答を生成し(S606)、PLC1へ送信する(S607)。
PLC1では、チャレンジ応答を受信すると(S608)、認証領域ログイン制御部101aが、f(チャレンジ)を生成し(S609)、S608で受信したチャレンジ応答と比較する(S610)。
チャレンジ応答の生成に一方向ハッシュ関数を用いた場合には、fは、同じ一方向ハッシュ関数になる。チャレンジ応答の生成に、暗号化を用いた場合には、fは復号関数になる。
S610で両者が一致しない場合には、認証領域ログイン制御部101aは、開発・設定端末2に対し、否認応答を送信する(S611)。
一致した場合には、認証領域ログイン制御部101aは、開発・設定端末2に対し、ログイン承認応答を送信する(S612)。
開発・設定端末2では、PLC1からの応答を受信すると(S613)、認証領域ログイン制御部101bが、ログイン承認応答か確認し(S614)、ログイン承認応答でない場合には、処理を終える。
ログイン承認応答である場合には、認証領域ログイン制御部101bは、ベース共有情報を生成し(S615)、認証領域共有鍵を用いて暗号化し(S616)、PLC1へ送信する(S617)。
PLC1では、ベース共有情報を受信すると(S618)、認証領域ログイン制御部101aが認証領域共有鍵を用いて復号し、ベース共有情報を得る(S619)。
更に、認証領域ログイン制御部101aは、ベース共有情報を元にMAC鍵と暗号鍵を生成し(S620)、生成した暗号鍵を使用してベース共有情報を暗号化した上で開発・設定端末2へ送信する(S621)。
開発・設定端末2では、認証領域ログイン制御部101bが、S617でベース共有情報を送信した後、暗号化する前のベース共有情報を元に、MAC鍵と暗号鍵を生成する(S622)。詳細は、後述するが、このMAC鍵は、処理要求認証鍵の例である。
更に、認証領域ログイン制御部101bは、PLC1からベース共有情報を受信すると(S623)、S622で生成した暗号鍵を使用して復号し、S615で生成した情報と同じになることを確認して終了する。
【0025】
図7は、図5のユーザ管理鍵生成処理(S506)の詳細動作である。
開発・設定端末2では、PLCユーザ認証制御部103bが、PLC1に対してユーザ管理第一鍵要求を送信する(S701)。
PLC1では、ユーザ管理第一鍵要求を受信すると(S702)、PLCユーザ認証制御部103aが、ユーザ管理第一鍵記憶部105からユーザ管理第一鍵を取出し、認証領域ログイン処理(図6のS620)で作成した暗号鍵を使用して、ユーザ管理第一鍵の暗号化を行い(S703)、開発・設定端末2へ送信する(S704)。
開発・設定端末2は、ユーザ管理第一鍵を受信すると(S705)(復号鍵受信ステップ)、PLCユーザ認証制御部103bが、認証領域ログイン処理(図6のS622)で作成した暗号鍵を使用して復号する(S706)。
次に、PLCユーザ認証制御部103bは、復号したユーザ管理第一鍵とユーザ管理第二鍵記憶部107に保持されているユーザ管理第二鍵を用いて、ユーザ管理鍵を生成する(S707)。
ユーザ管理第一鍵とユーザ管理第二鍵を、それぞれ単独で用いてユーザ管理鍵を生成できてはいけない。また、ユーザ管理鍵から、ユーザ管理第一鍵とユーザ管理第二鍵が生成できてはいけない。ユーザ管理鍵の生成には、例えば次の式を用いる。ユーザ管理鍵=Hash(ユーザ管理第一鍵+ユーザ管理第二鍵)。ここで、Hashは、一方向ハッシュ関数を表し、+は、前後の項を連接することを表している。ユーザ管理鍵生成後、PLCユーザ認証制御部103bは、ユーザ管理第一鍵を破棄する(S708)。
【0026】
なお、以上の説明では、開発・設定端末2は、PLC1からのユーザ管理第一鍵と記憶しているユーザ管理第二鍵とを用いてユーザ管理鍵を生成することとしているが、これに代えて、PLC1から暗号化されたユーザ管理鍵を受信し、受信した暗号化されたユーザ管理鍵を暗号鍵で復号し、復号したユーザ管理鍵を用いてユーザDB106の暗号ユーザ認証情報の復号を行うようにしてもよい。
また、以上の説明では、開発・設定端末2は、ユーザ管理鍵を生成した後であってユーザ管理鍵による暗号ユーザ認証情報の復号の前に、ユーザ管理第一鍵を破棄することとしているが、暗号ユーザ認証情報の復号の後に、ユーザ管理鍵とユーザ管理第一鍵の両者を破棄するようにしてもよい。
【0027】
次に、図8を用いて、PLC1へのアクセス時の処理を示す。
図8は、主にPLCアクセス制御部104a、104bの動作を示している。
開発・設定端末2では、ユーザ入出力部109で、ユーザから、処理要求と対象名(アクセス対象となる特定のリソース)を含むアクセス要求を受取ると(S801)、PLCアクセス制御部104bが、ユーザセッションIDがあるかどうか判定する(S802)。
ユーザセッションIDない場合には、ユーザ入出力部109からユーザに対し、エラーを通知する(S803)。
ユーザセッションIDがある場合には、ユーザ管理鍵生成処理を行う(S804)。
ユーザ管理鍵生成処理(S804)は、ユーザ管理鍵生成処理(S506)と同じであり、詳細動作は図7に示したとおりである。つまり、PLC1から暗号化されたユーザ管理第一鍵を受信し、暗号鍵でユーザ管理第一鍵を復号し、ユーザ管理第二鍵記憶部107のユーザ管理第二鍵と復号したユーザ管理第一鍵とを用いてユーザ管理鍵を生成する。
開発・設定端末2では、PLCアクセス制御部104bが、生成したユーザ管理鍵を用いてアクセス権DB108を復号し、参照できる状態にする(S805)。
次に、PLCアクセス制御部104bは、ユーザ管理鍵を廃棄した後(S806)、アクセス権の確認を行う(S807)。
アクセス権の確認は、一般的な方法を用いる。
例えば、ユーザセッションIDに対応付けられたユーザIDが、S801で受付けた名称を持つ対象のアクセス権限を、アクセス権DBから取出し、S801で受付けた処理要求が許可されているかの確認を行う。
次に、PLCアクセス制御部104bは、アクセス権を確認することにより、ユーザから要求されたアクセスが当該ユーザに許可されているかどうかの判定を行い(S808)、許可されていない場合には、ユーザ入出力部109からユーザに対し、否認を通知する(S809)。
許可されている場合には、対象と処理が記載された処理要求を生成し(S810)、処理要求のMACを生成する(S811)。MACは、広く採用されているHMAC方式によって、図6のS622で生成したMAC鍵(処理要求認証鍵)を鍵として生成する。
次に、PLCアクセス制御部104bは、処理要求とそのMACを合わせてPLC1へ送信する(S812)。
PLC1では、処理要求とMACを受信すると(S813)、PLCアクセス制御部104aが処理要求の検証を行う。
検証は、図6のS620で生成したMAC鍵を鍵として、HMAC方式を用いて受信した処理要求からMACを生成し、受信したMACと比較することで行う。
S813で受信したMACとS814で生成したMACを比較し(S815)、両者が異なる場合は、PLCアクセス制御部104aは、開発・設定端末2へエラー応答を送信する(S816)。
両者が一致した場合、PLCアクセス制御部104aは、S813で受取った処理要求に基づき、PLC上の対象に読出しや書込みといった操作を行い(S817)、開発・設定端末2へ処理結果を送信する(S818)。
開発・設定端末2は、処理結果を受信すると(S819)、ユーザ入出力部109からユーザに対し、処理結果を通知する(S820)。
【0028】
次に、図9を用いて、認証領域ログイン制御部101a、101bにおけるログアウト手順を示す。
【0029】
開発・設定端末2は、ユーザ入出力部109で、ログアウト要求を受取ると(S901)、PLCユーザ認証制御部103bが、PLC1へログアウト要求を送信する(S902)。
PLC1では、ログアウト要求を受信すると(S903)、認証領域ログイン制御部101aがMAC鍵と暗号鍵を破棄し(S904)、ログアウト完了を開発・設定端末2へ送信する(S905)。
開発・設定端末2では、S902の後、認証領域ログイン制御部101bがMAC鍵と暗号鍵を破棄し(S906)、PLC1からログアウト完了を受信する(S907)。
さらに、PLCユーザ認証制御部103bは、ログアウト処理を行っているユーザのユーザセッションIDを破棄し(S908)、ユーザ入出力部109からユーザに対し、ログアウト完了を通知する(S909)。
【0030】
次に、図10を用いて、開発・設定端末2とPLC1が同一の認証領域共有鍵を認証領域共有鍵記憶部102a、102bへ保持する手順を示す。
開発・設定端末2は、PLC1に対して、PLC1の公開鍵を証明する証明書を要求する(S1001)。
PLC1は、要求を受信すると(S1002)、PLC公開鍵/秘密鍵記憶部110に保持されている証明書を送信する(S1003)。
開発・設定端末2は、証明書を受信すると(S1004)、認証領域共有鍵を生成し(S1005)、証明書に含まれている公開鍵を用いて認証領域共有鍵を暗号化し(S1006)、PLC1へ送信する(S1007)。
PLC1は、認証領域共有鍵を受信すると(S1008)、PLC公開鍵/秘密鍵記憶部110に保持されている秘密鍵を用いて、認証領域共有鍵を復号する(S1009)。
復号した認証領域共有鍵を認証領域共有鍵記憶部102aへ保管し(S1010)、保管完了を開発・設定端末へ送信する(S1011)。
開発・設定端末2は、保管完了を受信すると(S1012)、S1005で生成した認証領域共有鍵を認証領域共有鍵記憶部102bへ保管し(S1013)、処理を終える。
【0031】
次に、図11を用いて、ユーザDB106およびアクセス権DB108の生成手順を示す。
開発・設定端末2は、ユーザ入出力部109で、ユーザDB106およびアクセス権DB108の生成要求を受取ると(S1101)、認証領域ログイン済みかどうかを判定する(S1102)。
S1102はS502と同様であり、判定は、指定されたPLCに対応するMAC(Message Authentication Code)鍵と暗号鍵があるかどうかで行う。
ログイン済みでない場合には、認証領域ログイン処理を実施する(S1103)。
S1103はS503と同様であり、詳細動作は図6に示してある。ログインが完了したか判定し(S1104)、完了しない場合には、ユーザ入出力部109からユーザに対し、否認を通知する(S1105)。
S1102で認証領域ログイン済みの場合とS1104でログイン完了の場合には、ユーザ管理第一鍵と第二鍵の生成を行う(S1106)。
生成方法の一例は、乱数を用いる方法である。ユーザ管理第一鍵を、認証領域ログイン時に生成し認証領域ログイン制御部101bが持っている暗号鍵によって暗号化し(S1107)、PLC1へ送信する(S1108)。
PLC1は、ユーザ管理第一鍵を受信すると(S1109)、認証領域ログイン時に生成し認証領域ログイン制御部101aが持っている暗号鍵によって復号する(S1110)。
復号したユーザ管理第一鍵をユーザ管理第一鍵記憶部105へ保管し(S1111)、保管完了を開発・設定端末2へ送信する(S1112)。
開発・設定端末2は、S1108でユーザ管理第一鍵を送信した後、ユーザ管理第二鍵をユーザ管理第二鍵記憶部107へ保管する(S1113)。
PLC1からの保管完了を受信すると(S1114)、S1106で生成したユーザ管理第一鍵とユーザ管理第二鍵を用いて、ユーザ管理鍵を生成する(S1115)。
生成手順はS707と同様である。
ユーザ管理鍵生成後、ユーザ管理第一鍵とユーザ管理第二鍵を破棄する(S1116)。
ユーザDBとアクセス権DBを生成した後、S1115で生成したユーザ管理鍵を用いてユーザDBとアクセス権DBを暗号化する(S1117)。
ユーザ管理鍵を破棄し(S1118)、ユーザ入出力部109からユーザに対し、生成完了を通知する(S1119)。
【0032】
このように、PLCへのアクセス時に使用するユーザ認証情報とアクセス権限情報を開発・設定端末に配置し、更に、開発・設定端末に配置されるユーザ認証情報とアクセス権限情報を暗号化し、PLCから開発・設定端末に送信される鍵を用いて暗号化されたユーザ認証情報及びアクセス権限情報を復号し、復号後のユーザ認証情報及びアクセス権限情報を用いて開発・設定端末においてユーザ認証及びアクセス制御を行うこととしたので、アクセス先であるPLCのほうが、開発・設定端末よりも処理能力および記憶容量が小さくても、第3の装置を用いることなく、ユーザ認証およびアクセス制御が可能となる。
【0033】
以上、本実施の形態では、次の特徴を備えたユーザ認証・アクセス権限管理方式について説明した。
1)PLCのリソース(ファイルやメモリ)へのアクセスを、ユーザ毎に制御する際に、PLC上にはユーザの認証情報やアクセス権限情報を保持しない。
2)その代わり、ユーザの認証情報やアクセス権限情報は、ユーザがPLCへアクセスする際に使用する端末側に配置する。
3)端末側に置かれたユーザの認証情報やアクセス権限情報は、端末単独では使用することは出来ない。端末とPLCが、互いに接続を許可した相手であることを確認した上で、PLC上に保持した鍵を使用することで、初めてユーザの認証情報やアクセス権限情報を利用することが出来る。
4)端末とPLCが、互いに接続を許可した相手であることの確認には、両者が、同じ情報を持っていることを確認することにより行う。また、ここで用いる情報は、両者が合意の上で、変更できるものとする。
【0034】
最後に、本実施の形態に係る開発・設定端末2のハードウェア構成例について説明する。
図12は、本実施の形態に示す開発・設定端末2のハードウェア資源の一例を示す図である。なお、図12の構成は、あくまでも開発・設定端末2のハードウェア構成の一例を示すものであり、開発・設定端末2のハードウェア構成は図12に記載の構成に限らず、他の構成であってもよい。
【0035】
図12において、開発・設定端末2は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
【0036】
通信ボード915は、図1に示すように、接続媒体3を介してPLC1に接続されている。この他に、通信ボード915は、例えば、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
【0037】
上記プログラム群923には、本実施の形態の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、本実施の形態の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の暗号化」、「〜の復号」、「〜の生成」、「〜の設定」、「〜の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、本実施の形態で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0038】
また、本実施の形態の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、本実施の形態の「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」の手順や方法をコンピュータに実行させるものである。
【0039】
このように、本実施の形態に示す開発・設定端末2は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【0040】
なお、本実施の形態では、アクセス先装置の例としてPLCを用いて説明したが、情報処理装置がアクセス先とする装置は、PLCに限らず、情報処理装置とデータの送受信が可能な機器であれば、どのような機器でもよい。
【図面の簡単な説明】
【0041】
【図1】実施の形態1に係る通信システムの構成例を示す図。
【図2】実施の形態1に係るPLCと開発・設定端末の構成例を示すフローチャート図。
【図3】実施の形態1に係るユーザDBの内容例を示す図。
【図4】実施の形態1に係るアクセス権DBの内容例を示す図。
【図5】実施の形態1に係る開発・設定端末の動作例を示すフローチャート図。
【図6】実施の形態1に係る認証領域ログイン処理の詳細を示すフローチャート図。
【図7】実施の形態1に係るユーザ管理鍵生成処理の詳細を示すフローチャート図。
【図8】実施の形態1に係るPLCへのアクセス時の動作例を示すフローチャート図。
【図9】実施の形態1に係るログアウト時の動作例を示すフローチャート図。
【図10】実施の形態1に係る認証領域共有化鍵の格納時の動作例を示すフローチャート図。
【図11】実施の形態1に係るユーザDB及びアクセス権DBの生成時の動作例を示すフローチャート図。
【図12】実施の形態1に係る開発・設定端末のハードウェア構成例を示す図。
【符号の説明】
【0042】
1 PLC、2 開発・設定端末、3 接続媒体、101 認証領域ログイン制御部、102 認証領域共有鍵記憶部、103 PLCユーザ認証制御部、104 PLCアクセス制御部、105 ユーザ管理第一鍵記憶部、106 ユーザDB、107 ユーザ管理第二鍵記憶部、108 アクセス権DB、109 ユーザ入出力部、110 PLC公開鍵/秘密鍵記憶部。

【特許請求の範囲】
【請求項1】
アクセス先装置に接続され、前記アクセス先装置のリソースへのアクセスに先立ち、自装置を利用するユーザのユーザ認証を行う情報処理装置であって、
ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納する暗号ユーザ認証情報格納部と、
ユーザからのユーザ認証要求を入力する要求入力部と、
前記要求入力部によりユーザ認証要求が入力された際に、前記暗号ユーザ認証情報の復号のための復号鍵を前記アクセス先装置から受信し、受信した復号鍵を用いて前記暗号ユーザ認証情報を復号し、復号後のユーザ認証情報を用いてユーザ認証を行うユーザ認証制御部とを有することを特徴とする情報処理装置。
【請求項2】
前記情報処理装置は、更に、
前記要求入力部によりユーザ認証要求が入力された際に、暗号鍵を生成するとともに、生成した暗号鍵と同じ鍵を前記アクセス先装置に生成させる暗号鍵生成部を有し、
前記ユーザ認証制御部は、
前記アクセス先装置により前記暗号鍵と同じ鍵で暗号化された復号鍵を前記アクセス先装置から受信し、受信した暗号化された復号鍵を前記暗号鍵で復号し、復号後の復号鍵を用いて前記暗号ユーザ認証情報を復号することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記暗号鍵生成部は、
前記要求入力部によりユーザ認証要求が入力された際に、前記暗号鍵を生成するためのベース共有情報を生成し、生成したベース共有情報を用いて前記暗号鍵を生成し、前記暗号鍵と同じ鍵を前記アクセス先装置に生成させるために前記ベース共有情報を前記アクセス先装置に送信することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記暗号鍵生成部は、
前記要求入力部によりユーザ認証要求が入力される度に異なる暗号鍵を生成することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
情報処理装置は、更に、
復号鍵を記憶する復号鍵記憶部を有し、
前記ユーザ認証情報制御部は、
前記アクセス先装置から受信した復号鍵と前記復号鍵記憶部に記憶されている復号鍵とを用いて新たな復号鍵を生成し、生成した新たな復号鍵を用いて前記暗号ユーザ認証情報を復号することを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記情報処理装置は、
前記ユーザ認証制御部による前記暗号ユーザ認証情報の復号後に、前記アクセス先装置から受信した復号鍵を破棄することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記情報処理装置は、
前記新たな復号鍵の生成後に、前記アクセス先装置から受信した復号鍵を破棄することを特徴とする請求項5に記載の情報処理装置
【請求項8】
前記情報処理装置は、
前記ユーザ認証制御部による前記暗号ユーザ認証情報の復号後に、前記新たな復号鍵を破棄することを特徴とする請求項5に記載の情報処理装置。
【請求項9】
前記情報処理装置は、更に、
ユーザのアクセス権限を示すアクセス権限情報であって、暗号化が行われている暗号アクセス権限情報を格納する暗号ユーザ認証情報格納部と、
前記要求入力部により前記アクセス先装置のリソースへのアクセス要求が入力された際に、前記暗号アクセス権限情報の復号のための復号鍵を前記アクセス先装置から受信し、受信した復号鍵を用いて前記暗号アクセス権限情報を復号し、復号後のアクセス権限情報を用いて前記アクセス要求により要求されたアクセスの許否を判断するアクセス制御部とを有することを特徴とする請求項1に記載の情報処理装置。
【請求項10】
前記情報処理装置は、更に、
前記要求入力部による前記アクセス要求の入力に先立って、暗号鍵を生成するとともに、生成した暗号鍵と同じ鍵を前記アクセス先装置に保有させる暗号鍵生成部を有し、
前記アクセス制御部は、
前記アクセス先装置により前記暗号鍵と同じ鍵で暗号化された復号鍵を前記アクセス先装置から受信し、受信した暗号化された復号鍵を前記暗号鍵で復号し、復号後の復号鍵を用いて前記暗号アクセス権限情報を復号することを特徴とする請求項9に記載の情報処理装置。
【請求項11】
情報処理装置は、更に、
復号鍵を記憶する復号鍵記憶部を有し、
前記アクセス制御部は、
前記アクセス先装置から受信した復号鍵と前記復号鍵記憶部に記憶されている復号鍵とを用いて新たな復号鍵を生成し、生成した新たな復号鍵を用いて前記暗号アクセス権限情報を復号することを特徴とする請求項9に記載の情報処理装置。
【請求項12】
前記情報処理装置は、
前記ユーザ認証制御部による前記暗号アクセス権限情報の復号後に、前記アクセス先装置から受信した復号鍵を破棄することを特徴とする請求項9に記載の情報処理装置。
【請求項13】
前記暗号鍵生成部は、
前記要求入力部による前記アクセス要求の入力に先立って、前記暗号鍵を生成するとともに、処理要求の認証のための処理要求認証鍵を生成し、生成した処理要求認証鍵と同じ鍵を前記アクセス先装置に保有させ、
前記アクセス制御部は、
前記アクセス要求により要求されたアクセスが許可されると判断した場合に、前記アクセス要求により要求されたアクセスを実現する処理を要求する処理要求を生成するとともに、前記処理要求認証鍵を用いて前記処理要求の認証値を生成し、前記処理要求と前記認証値とを前記アクセス先装置に対して送信することを特徴とする請求項10に記載の情報処理装置。
【請求項14】
前記情報処理装置は、
前記アクセス制御部による前記処理要求と前記認証値の前記アクセス先装置への送信後に、前記暗号鍵と前記処理要求認証鍵とを破棄することを特徴とする請求項13に記載の情報処理装置。
【請求項15】
前記情報処理装置は、
前記アクセス先装置として、PLC(Programmable Logic Controller)と接続されていることを特徴とする請求項1に記載の情報処理装置。
【請求項16】
アクセス先装置と、
前記アクセス先装置に接続され、前記アクセス先装置のリソースへのアクセスに先立ち、自装置を利用するユーザのユーザ認証を行う情報処理装置とを有する通信システムであって、
前記情報処理装置は、
ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納し、
ユーザからのユーザ認証要求を入力した際に、ベース共有情報を生成し、生成したベース共有情報を用いて暗号鍵を生成し、前記暗号鍵と同じ鍵を前記アクセス先装置に生成させるために前記ベース共有情報を前記アクセス先装置に送信し、
前記アクセス先装置により前記暗号鍵と同じ鍵で暗号化された復号鍵を前記アクセス先装置から受信し、受信した暗号化された復号鍵を前記暗号鍵で復号し、復号後の復号鍵を用いて前記暗号ユーザ認証情報を復号し、復号後のユーザ認証情報を用いてユーザ認証を行い、
前記アクセス先装置は、
前記復号鍵を格納し、
前記情報処理装置から前記ベース共有情報を受信し、
前記ベース共有情報を用いて前記暗号鍵と同じ鍵を生成し、生成した鍵を用いて前記復号鍵を暗号化し、暗号化した復号鍵を前記情報処理装置に送信することを特徴とする通信システム。
【請求項17】
前記情報処理装置は、更に、
ユーザのアクセス権限を示すアクセス権限情報であって、暗号化が行われている暗号アクセス権限情報を格納し、
前記アクセス先装置のリソースへのアクセス要求を入力した際に、
前記アクセス先装置により前記暗号鍵と同じ鍵で暗号化された復号鍵を前記アクセス先装置から受信し、受信した暗号化された復号鍵を前記暗号鍵で復号し、復号後の復号鍵を用いて前記暗号アクセス権限情報を復号し、復号後のアクセス権限情報を用いて前記アクセス要求により要求されたアクセスの許否を判断し、
前記アクセス先装置は、
前記ベース共有情報を用いて生成した前記暗号鍵と同じ鍵を用いて、格納している前記復号鍵を暗号化し、暗号化した復号鍵を前記情報処理装置に送信することを特徴とする請求項16に記載の通信システム。
【請求項18】
アクセス先装置に接続されたコンピュータが、前記アクセス先装置のリソースへのアクセスに先立ち、当該コンピュータを利用するユーザのユーザ認証を行うユーザ認証方法であって、
前記コンピュータは、
ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納しており、
前記ユーザ認証方法は、
前記コンピュータが、ユーザからのユーザ認証要求を入力する要求入力ステップと、
前記要求入力ステップによりユーザ認証要求が入力された際に、前記コンピュータが、前記暗号ユーザ認証情報の復号のための復号鍵を前記アクセス先装置から受信する復号鍵受信ステップと、
前記コンピュータが、前記復号鍵受信ステップにより受信された復号鍵を用いて前記暗号ユーザ認証情報を復号する復号ステップと、
前記コンピュータが、前記復号ステップにより復号された後のユーザ認証情報を用いてユーザ認証を行うユーザ認証ステップとを有することを特徴とするユーザ認証方法。
【請求項19】
アクセス先装置に接続されたコンピュータに、前記アクセス先装置のリソースへのアクセスに先立ち、当該コンピュータを利用するユーザのユーザ認証を実行させるプログラムであって、
前記コンピュータは、
ユーザ認証のためのユーザ認証情報であって、暗号化が行われている暗号ユーザ認証情報を格納しており、
前記プログラムは、
ユーザからのユーザ認証要求を入力する要求入力処理と、
前記要求入力処理によりユーザ認証要求が入力された際に、前記暗号ユーザ認証情報の復号のための復号鍵を前記アクセス先装置から受信する復号鍵受信処理と、
前記復号鍵受信処理により受信された復号鍵を用いて前記暗号ユーザ認証情報を復号する復号処理と、
前記復号処理により復号された後のユーザ認証情報を用いてユーザ認証を行うユーザ認証処理をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2008−176544(P2008−176544A)
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願番号】特願2007−9042(P2007−9042)
【出願日】平成19年1月18日(2007.1.18)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】