(57)【要約】【課題】ライセンス数に対応したアクセス制御を実現する。【解決手段】サーバ固有の情報とライセンス数の情報をハッシュ値化して生成したライセンスキーを、サーバに登録する。登録しようとしているライセンスキーの整合性チェックを実施し、正しいライセンスキーを記録する。サーバ内部に同時アクセスしているクライアント端末数を管理するテーブルと、アクセスしてきた時間などを記録するアクセス状態テーブルを持ち、アクセスしてきたクライアント端末台数がライセンス数以上にならないように管理する。サーバに登録しているライセンス数の情報が正しいかチェックする。サーバ内部に、サーバ情報を登録する管理テーブルを持ち、専用のツールを使用してサーバ情報を登録する。サーバにてシステムを起動する際に、前述の管理テーブルに登録されているサーバ情報が正しいかチェックし、正しかった場合のみシステムが起動する。【選択図】  図1
2016157210.tif 000002
【特許請求の範囲】
【請求項１】
入力されたライセンス情報がサーバ端末に固有な固有情報と整合するかをチェックするチェック部と、前記ライセンス情報からライセンス数を得るライセンス数取得部を有し、前記ライセンス情報が前記固有情報と整合する場合、クライアント端末からアクセスがあったときに、前記ライセンス情報に含まれるライセンス数を超えるクライアント端末のアクセスを抑えるように動作することを特徴とするアクセス制御装置。
【請求項２】
請求項１において、前記ライセンス情報は、前記サーバ端末がアクセス可能なデータベースに登録されることを特徴とするアクセス制御装置。
【請求項３】
請求項２において、前記ライセンス情報に含まれる固有情報は暗号化されていることを特徴とするアクセス制御装置。
【請求項４】
請求項２において、前記ライセンス情報に含まれるライセンス数の情報はハッシュ化されていることを特徴とするアクセス制御装置。
【請求項５】
請求項１において、クライアント端末をアクセス許可した場合は、前記許可したアクセス端末の情報をデータベースに登録することを特徴とするアクセス制御装置。
【請求項６】
請求項１において、入力されたライセンス情報がサーバ端末に固有情報と整合している場合に前記ライセンス情報をデータベースに記憶しておき、前記サーバ端末の起動のときに、前記サーバ端末の固有情報と前記記憶されたライセンス情報が整合するかチェックし、前記チェックの結果が整合性を示している場合に、前記サーバ端末の起動を許可することを特徴とするアクセス制御装置。
【請求項７】
入力されたライセンス情報がサーバ端末に固有な固有情報と整合するかをチェックするチェックステップと、前記ライセンス情報からライセンス数を得るライセンス数取得する取得ステップと、前記ライセンス情報が前記固有情報と整合する場合、クライアント端末からアクセスがあったときに、前記ライセンス情報に含まれるライセンス数を超えるクライアント端末のアクセスを抑えるように動作する抑制ステップを有するアクセス制御方法。
【請求項８】
入力されたライセンス情報がサーバ端末に固有な固有情報と整合するかをチェックするステップと、前記ライセンス情報からライセンス数を得るライセンス数取得するステップと、前記ライセンス情報が前記固有情報と整合する場合、クライアント端末からアクセスがあったときに、前記ライセンス情報に含まれるライセンス数を超えるクライアント端末のアクセスを抑えるように動作するステップとを実行させるアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御装置、アクセス制御方法及びアクセス制御プログラムに係り、特に、アクセス数の制御に好適なアクセス制御装置、アクセス制御方法及びアクセス制御プログラムに関する。
【背景技術】
【０００２】
近年のネットワークを介したシステムでは、一方にサーバ端末を配して、他方にクライアント端末を配して、クライアント端末からサーバ端末にアクセスすることによってシステムを構築することが多い。すなわち、多くの情報はサーバ端末に集中して管理し、その情報について、クライアント端末がアクセスすることでシステムが構成されることが多い。
【０００３】
このようなシステムにおいて、サーバ端末にアクセスするクライアント端末を制限することが必要な場合がある。具体的にはライセンスを受けた端末のみがサーバ端末にアクセスが許可される。しかしながら、許可された数のクライアント端末を超えてアクセスできるように改ざんする使用者が存在する。そのため、システムの不正利用防止の技術が考えられた。
【０００４】
例えば、このような技術として、サーバ装置内部で特定のソフトウェアに対する使用ライセンス数を監視しており、クライアント端末からアクセスが発生した際に、サーバからクライアント端末に対してソフトウェア認証用番号が送信されることにより、ソフトウェア使用ライセンスを各クライアント端末に割当てるというシステムである。また、サーバはライセンス数のみを認知しておくだけで、クライアント端末上で動作するソフトウェアの同時使用数を監視することができると記載されている。
【０００５】
このような技術は例えば特開２００２−６９７２号公報に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−６９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の従来技術のシステムでは、クライアント端末にてサーバから送信されたソフトウェア認証用番号を記録しておく必要があり、認証用番号をクライアント端末とサーバそれぞれにて管理する必要がある。
【０００８】
また、サーバで管理するライセンス情報がライセンス数のみであり、ライセンス数のデータを変更された場合、ライセンス数に応じたアクセス制御を行うことができないことや、ライセンス情報を別のサーバにコピーした場合、ライセンスの不正利用ができてしまう問題があった。
【０００９】
また、サーバ内のアプリケーションプログラムを別サーバへ不正にコピーすることで、アプリケーションプログラムの不正利用がされてしまう問題がある。
【００１０】
本発明の目的は、少なくとも上記の問題点のうちの１つを解決可能なアクセス制御装置、アクセス制御方法及びアクセス制御プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明では、入力されたライセンス情報がサーバ端末に固有な固有情報と整合するかをチェックし、前記ライセンス情報からライセンス数を得るライセンス数取得し、前記ライセンス情報が前記固有情報と整合する場合、クライアント端末からアクセスがあったときに、前記ライセンス情報に含まれるライセンス数を超えるクライアント端末のアクセスを抑えるように動作するように構成した。
【００１２】
より具体的には、サーバ固有の情報とライセンス数の情報を暗号化及び、ハッシュ値化して生成したライセンスキーを、サーバに登録する。サーバでは登録しようとしているライセンスキーの整合性チェックを実施し、正しいライセンスキーのみを記録する。
【００１３】
サーバ内部に同時アクセスしているクライアント端末数を管理するテーブルと、アクセスしてきた時間などを記録するアクセス状態テーブルを持ち、アクセスしてきたクライアント端末台数がライセンス数以上にならないように管理し、所定のライセンス数以上になった場合にはクライアント端末側にエラーを返す仕掛けを設ける。また、サーバに登録しているライセンス数の情報が正しいかチェックする仕掛けを設ける。
【００１４】
サーバ内部に、サーバ情報を登録する管理テーブルを持ち、専用のツールを使用してサーバ情報を登録する。サーバにてシステムを起動する際に、前述の管理テーブルに登録されているサーバ情報が正しいかチェックし、正しかった場合のみシステムが起動する仕掛けを設ける。
【発明の効果】
【００１５】
本発明によれば、不正なサーバ端末へのアクセスを抑えつつも、且つ、サーバ端末とクライアント端末間の通信量を多くすることなる適切な速度の通信の実現が可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施システム構成例である。
【図２】ライセンスキー整合性チェックフロー例である。
【図３】クライアント端末のアクセス管理例である。
【図４】アクセス管理テーブル登録処理前チェック処理フロー例である。
【図５】システム起動時のチェック処理フロー例である。
【図６】ライセンスキー生成に関する例である。
【図７】ライセンス管理テーブル例である。
【発明を実施するための形態】
【００１７】
本発明の実施形態について図面を用いて説明する。以下、図1〜7を用いて説明する。
【００１８】
[全体システム]
図1に、本発明のシステム構成例を示す。
【００１９】
サーバ端末101とクライアント端末103、104、105がネットワークで接続される。サーバ端末101は必要な情報をデータベース102に記録する。また、サーバ端末101はデータベース102から必要な情報を取得して業務を遂行する。なお、データベース１０２には、「データベース情報」（データベース毎に異なる識別情報）が記憶されている。
【００２０】
サーバ端末101とクライアント端末103、104、105で構成されるシステムは、例えば、製造管理システムとして製造プロセスのシステム化を実現するものである。この場合、サーバ端末101には製造指図と標準作業手順書が記憶されている。クライアント端末103、104、105はサーバ端末101にアクセスすることで、サーバ端末101に記憶されている製造指図と標準作業手順書の情報を得てディスプレイに表示する。また、クライアント端末103、104、105はサーバ端末101にアクセスすることで、標準作業手順書の登録・変更として運用手順 （作業手順） を変更することができる。
【００２１】
あるいは、サーバ端末101に各工程の作業の進捗が記憶されている。クライアント端末103、104、105はサーバ端末101にアクセスすることでサーバ端末101から各工程の作業の進捗の情報を得てディスプレイに表示する。クライアント端末103、104、105はサーバ端末101にアクセスすることで作業の確認および承認等の品質管理を登録・変更することができる。
【００２２】
このサーバ端末101とクライアント端末103、104、105のアクセス権限はライセンスキーを介してなされる。
【００２３】
このライセンスキーの発行について、ライセンスキー発行端末106は別ネットワークまたはスタンドアローンで構成されている。
【００２４】
ライセンスキー発行ツール107にて、サーバ情報登録ツール108に事前登録されているサーバ端末固有の情報及びライセンス数などのライセンスキー生成に必要な複数の情報から、ライセンスキーを生成する。ライセンスキーは、暗号化及びハッシュ値化を行った文字列で生成する。
【００２５】
ここでライセンスキー発行について図6を用いて、例えば、ライセンスキーの元情報として、符号601のような「管理番号」（図7に示されるライセンスキー管理テーブル701のようにサーバ毎に異なる番号）、「サーバ固有情報１」「サーバ固有情報２」（ネットワークのおけるアドレス等のサーバ固有な情報）、「ライセンス数情報」（例えばライセンス数は20等）を使用した場合について説明する。ここで挙げられている情報は、あくまで説明する為の例である。
【００２６】
ライセンスキー発行ツール107では、「管理番号」、「サーバ固有情報1」、「サーバ固有情報2」、「データベース情報」、「ライセンス数情報」601の各情報を入力し、ライセンスキーを生成する。ライセンスキー生成は次の順番で行われる。
【００２７】
先ず、入力された情報である「管理番号」、「サーバ固有情報1」、「サーバ固有情報2」を合わせて暗号化(602)することにより「暗号化された情報(604)」を生成する。暗号化は、例えば、ブロック暗号、ストリーム暗号などの暗号化・復号で同じ鍵を使う共通鍵暗号、 暗号化・復号で異なる鍵を使う公開鍵暗号等の既知の暗号化を用いることができる。
【００２８】
次に、入力された情報である「データベース情報」、「ライセンス数情報」をハッシュ値化(603)することにより「ハッシュ値化された情報(605)」を生成する。ここで、ハッシュ化ではハッシュ関数と呼ばれる特殊な計算手順により、任意長の長さのデータから固定長の一見ランダムに見えるハッシュ値を得る。同じデータからは常に同じハッシュ値が得られるが、少しでもデータが異なるとまったく類似しない別のハッシュ値が生成される。
【００２９】
そして、暗号化された情報604とハッシュ値化された情報605を組み合わせることにより(606)、ライセンスキー(607)を生成し、発行する。
【００３０】
暗号化(602)のみならずハッシュ値化(603)の両方を使用している理由は、全てのライセンスキー元情報(601)について暗号化のみを使用してライセンスキーを生成した場合、暗号化方式を解読されると、ライセンスキーが複製されてしまうからである。
【００３１】
さらに、その理由としては、ハッシュ値化のみを使用した場合、ライセンスキーをシステムに登録する際に、ライセンスキーが正しいか整合性チェックを行う処理に時間が掛かってしまうためである。すなわち、ライセンスキー整合性チェック処理では、ライセンスキー情報をサーバ内部にて生成し、登録しようとしているライセンスキーと一致するかを確認している。そのため、ライセンスキーが一致するまで、若しくは、各情報の最大数までハッシュ値生成を行うことになる。そうすると、例で挙げている「管理番号」、「ライセンス数情報」が一致するまでハッシュ値生成し続けることにより、ライセンスキー整合性チェック処理に時間が掛かってしまうというわけである。
【００３２】
以上により、ライセンスキー情報の秘匿性を維持しつつ、整合性チェックの高速化を実現するために暗号化とハッシュ値化を使用してライセンスキーを生成している。
【００３３】
このライセンスキーは、紙に書かれた状態でライセンシーに渡され、或いは、USBメモリーに書込まれた状態でライセンシーに渡される。
【００３４】
[ライセンスキー607をサーバ端末101のデータベース102に登録する処理]
次に、この発行されたライセンスキー607をサーバ端末101のデータベース102に登録する動作を図２のフローを用いて説明する。ライセンスキー607がサーバ端末101のデータベース102に登録されると、後述するように、サーバ端末101とクライアント端末103、104、105で構成されるシステムの起動が可能な状態となり、さらに、クライアント端末103、104、105がサーバ端末101にアクセスすることが可能な状態となる。
【００３５】
ライセンスキー607の登録時に行うには、初めに、上記ライセンスキー607をサーバ101の要求に応じて作業者が打込む、あるいは、ライセンスキー607の情報を記憶したUSBメモリーをI/Oを介して接続するなどの作業がなされる。
【００３６】
このような作業をトリガとして始まるライセンスキー607整合性チェックフロー例を図２に示す。
【００３７】
ライセンスキー607を、サーバ端末101の画面から登録するSTART(201)より、登録しようとしているライセンスキー（キーボートを介して入力/USBから入力）が未登録のものであるかのチェックを行う(202)。すなわち、登録しようとしているライセンスキーが既にデータベース102に登録されているかのチェックを行う。既に同じライセンスキーが登録されていた場合、ライセンスキーの登録を中止し、エラーを表示する(208)。
【００３８】
未登録のライセンスキーであれば、登録しようとしているライセンスキー607から暗号化された情報604を抽出し、複合化処理を行う(203)。すなわち、ライセンスキー607のうちの「管理番号」「サーバ固有情報１」「サーバ固有情報２」を取り出し複合化する。
そして、複合化した値のうちの「サーバ固有情報１」「サーバ固有情報２」が、現に操作しているサーバ端末101の固有の情報と等しいかチェックを行う(204)。
【００３９】
ここで比較している対象は、「ライセンスキー607から複合化した情報」とサーバ端末101が固有に持っている情報(例えば固有のネットワークアドレスなど)である。本処理の意味合いとしては、正しいライセンスキーを登録しようとしているかのチェックができ、不正なライセンスキーを登録できないようにしている。
【００４０】
チェック結果が等しくなかった場合は、ライセンスキー607の登録処理を中断し、エラーを表示する(208)。
【００４１】
チェック結果が等しい場合は、まず、ライセンス数を１と仮定して、「データベース情報」からハッシュ値を生成する(205)。ライセンスキー607のハッシュ値化された情報(605)（「データベース情報」と「ライセンス数」に基づいてハッシュ値が生成された部分）と比較を行いチェックする(206)。次に、ライセンス数を１増加させて同様な比較繰り返す。例えば、ライセンス数をＮと仮定したときに等しくなれば、ライセンス数が特定できる（ハッシュ値が等しくなる）。例えばライセンス数が１００等まで大きく仮定しても等しくならない場合はハッシュ値が等しくないと判断する。
【００４２】
比較したハッシュ値が等しくない場合は、ライセンスキーの登録処理を中断し、エラーを表示する(208)。
【００４３】
ハッシュ値が等しい場合は、データベース102にライセンス管理テーブル701の領域が確保されているところ、ライセンスキー607の情報をライセンス管理テーブル（管理テーブル）701に記録する。(207)。このライセンス管理テーブル（管理テーブル）701に記録されるライセンスキー607の情報としては、本件フローで得られた管理番号及びライセンス数が含まれる。  [システムの起動制御の処理]
ライセンスキー607が管理テーブル701に記録されると、サーバ端末101とクライアント端末103、104、105で構成されるシステムが起動可能となる。サーバ端末101にてシステムを起動する際、図5のチェック処理をサーバ端末101が実施する。
【００４４】
先ず、管理テーブル701にサーバ固有情報1及びサーバ固有情報2が登録されているかチェックを行う(502)。なお、サーバ固有情報1及びサーバ固有情報2は各々のアプリケーションプログラムに固有で且つアプリケーションプログラムの一部をなすように構成されており、アプリケーションプログラムがサーバ端末101にプログラムとして設定されたときに、このアプリケーションプログラム上で固有に保持されたサーバ固有情報1及びサーバ固有情報2が管理テーブル701に転記されるようになっている。
【００４５】
未登録だった場合、エラーを表示しシステムを起動せず終了する(507)。
【００４６】
登録されている場合、登録されているサーバ固有情報1及びサーバ固有情報2を取得する(503)。
【００４７】
次に、ライセンス管理テーブル701からライセンスキー607を取得して、さらに、該ライセンスキー607のうちの暗号化された情報604を複合化して、それによって、ライセンスキー607に記録されたサーバ固有情報1及びサーバ固有情報2を取得する。  504にて生成した複合値と、503で取得したサーバ固有情報1及びサーバ固有情報2が等しいか比較する(505)。
【００４８】
505にて比較している対象は、「データベースに格納されているサーバ情報」と「ライセンスキー607の情報から生成した複合値」である。本処理の意味合いとしては、システムを起動しようとしているサーバが正しいサーバ端末であるかのチェックを行っている。サーバプログラムを不正にコピーしたとしても、システムを起動できないようにしている。
【００４９】
比較した値が異なる場合、エラーメッセージを表示しシステムを起動せず終了する(507)。
【００５０】
等しい場合、システムを起動する(506)。
【００５１】
上記により、他のサーバ端末から不正にアプリケーションプログラムをコピーした場合や、管理テーブルのデータをコピーされた場合にエラー処理となり、システムの不正利用を防ぐことができる。
【００５２】
[クライアント端末103、104、105からサーバ端末101へのアクセス管理]
システム（サーバ端末101とクライアント端末103、104、105で構成されるシステム）が起動されると、クライアント端末103、104、105からサーバ端末101にアクセスが可能な状態となる。ここで、サーバ端末101は、ライセンスキー607が登録されている場合のみ、クライアント端末からの接続を許可し、ライセンスキー607が未登録の場合は、クライアント端末からの接続を許可しない。
【００５３】
図3を使用し、クライアント端末103、104、105がどのようにアクセス管理されるかを説明する。このアクセス管理はアクセス管理テーブル301を介してなされ、アクセス管理テーブル301が、物理的には同じ管理テーブルであるが、記憶状態が遷移した状態をアクセス管理テーブル302及びアクセス管理テーブル304と記する。
【００５４】
サーバ端末101は、アクセスしているクライアント端末103、104、105を管理するアクセス管理テーブル301を持ち、アクセスしてきた端末の情報を登録する(301)。
【００５５】
クライアント端末103、104、105がシステムを終了する場合、サーバ端末101はアクセス管理テーブル301から、該当するクライアント端末情報を削除する(302)。クライアント端末のアクセス数は、アクセス管理テーブル301に登録されているクライアント端末情報（103、104、105のいずれか）の数をカウントして管理する。
【００５６】
例えば、サーバ端末にクライアント端末A(103)とクライアント端末B(104)がアクセスした場合、アクセス管理テーブル301に各クライアント端末情報が登録される(304)。このとき、アクセス管理テーブル301には2レコードあり、このレコード数が現在アクセスしているクライアント端末台数となり、アクセス管理テーブル304についてはアクセス数2台となる。
【００５７】
サーバ端末101にアクセスしたクライアント端末情報を、アクセス管理テーブル301に登録する前に、サーバ端末101が実施するチェック処理フローを図4に示す。
【００５８】
まず、サーバ端末101にアクセスしてきたクライアント端末103、104、105のいずれかが、アクセス管理テーブル301に未登録であるかチェックする(402)。
【００５９】
既に登録されていた場合、アクセス状態テーブル301に登録されている、該当するクライアント端末のアクセス日時情報を更新する。
【００６０】
未登録の場合、データベース102のライセンス管理テーブル701に登録されているライセンス情報(管理番号、ライセンスキー607、ライセンス数)を取得する(403)。
【００６１】
次に、403で取得したライセンス情報のうちのライセンス数を、データベース情報を考慮してハッシュ化する(404)。
【００６２】
そして、得られたライセンス数に基づきハッシュ化した値と、403で取得したライセンスキー607のハッシュ値化された情報606とを比較して等しいか比較を行う(405)。
【００６３】
405にて実質的に比較している対象は、「データベース102に格納されているライセンス数」と「ライセンスキー607のライセンス数部分」である。本処理の意味合いとしては、登録したライセンスキー607情報をユーザが不正に変更していないかのチェックをしている。
【００６４】
生成したハッシュ値が、ライセンスキー607のハッシュ値部分と等しくなかった場合、「ライセンス数チェックエラーです。」などのエラーを表示し、サーバへの接続処理を中断する。
【００６５】
生成したハッシュ値が、ライセンスキー607のハッシュ値部分と等しい場合、現在のアクセス数確認処理を実行する(406)。
【００６６】
現在のアクセス数確認は、アクセス管理テーブルに登録されているクライアント端末数をカウントして確認する。
【００６７】
そして、現在のアクセス数がライセンス数より少ないかチェックする(407)。
アクセス数がライセンス数以上の場合は、「ライセンス数を超えています。」などのエラーを表示し、サーバ端末へのアクセス処理を中断する。
【００６８】
アクセス数がライセンス数未満の場合、アクセス管理テーブルにクライアント端末の情報を登録し(408)、アクセス状態テーブル内の該当する端末のアクセス日時を更新する。
上記により、ライセンス管理テーブルに登録しているライセンスキー607情報のデータを変更された場合、サーバ端末へのアクセスを防ぐことができる。さらに、好ましくは、サーバへの誤ったライセンスキー607登録を防ぐことができ、サーバに登録されているライセンス情報の改ざんを行った場合の不正利用を防ぐことができる。されには、サーバのアプリケーションプログラムを別のサーバにコピーされた場合のシステム不正利用を防ぐことができる。また、ライセンスに基づくクライアント端末台数の制限をかけることにより、ユーザとしては、バリデーションで管理されていない、端末の追加を行うことができなくなる為、その点において関連法令を守ることができる。ライセンスキー607の発行方法を工夫したことにより、ライセンスキー607情報の秘匿性を維持しつつ、整合性チェックの高速化をできる。
【符号の説明】
【００６９】
１０１  コンピュータシステム(サーバ端末)
１０２  データベース
１０３  コンピュータシステム(クライアント端末)
１０４  コンピュータシステム(クライアント端末)
１０５  コンピュータシステム(クライアント端末)
１０６  コンピュータシステム(クライアント端末)
１０７  アプリケーション(ライセンスキー発行ツール)
１０８  アプリケーション(サーバ情報登録ツール)
３０１  データベース
３０２  データベース
７０１  データベース(ライセンス管理テーブル)
【図１】
2016157210.tif 000003
【図２】
2016157210.tif 000004
【図３】
2016157210.tif 000005
【図４】
2016157210.tif 000006
【図５】
2016157210.tif 000007
【図６】
2016157210.tif 000008
【図７】
2016157210.tif 000009