(57)【特許請求の範囲】
【請求項１】
Ｗｅｂサーバとして機能する工業用機器であって、
セッションＩＤを用いて一連のアクセス処理を識別するとともに、前記セッションＩＤの採番の際に、前記セッションＩＤとアクセス元のＩＰアドレスとを関連付けて記録するセッション管理部と、
セッションＩＤが特定されたアクセスに対して、アクセス元のＩＰアドレスが、当該セッションＩＤと関連付けられたＩＰアドレスと一致するかどうかを判定する判定部と、
外部からの入力に基づき、前記判定部による判定を停止する手段と、を備え、
前記セッション管理部は、前記判定部が一致しないと判定した場合に当該アクセスを不正と判断することを特徴とする工業用機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバとして機能する工業用機器におけるセッション管理に関する。
【背景技術】
【０００２】
コンピュータネットワークに接続し、Ｗｅｂサーバとして機能するペーパレスレコーダ、データロガー、波形表示装置等の工業用機器が実用化されている。Ｗｅｂサーバとして機能する工業用機器を用いることで、ＰＣ等の端末装置で動作する汎用的なＷｅｂブラウザを介して工業用機器のモニタリングを行なったり、工業用機器に対する各種設定を行なったりすることができるようになる。
【０００３】
一般に、工業用機器では、コンピュータネットワークにおけるコンテンツ送受信の標準的なプロトコルであるＨＴＴＰ（Hypertext Transfer Protocol）を用いてＷｅｂサービスを提供しているが、ＨＴＴＰはステートレスなプロトコルであり、一回のリクエストとレスポンスにより処理が完結する。このため、一連の処理であることを識別する仕組みは別途用意しなければならない。
【０００４】
ネットショッピング等の電子商取引を提供するＷｅｂサーバ等では、特定のＷｅｂクライアントとの一連の処理を管理する必要があることから、一連の処理をセッションＩＤで識別するセッション管理が広く行なわれている。セッション管理は、例えば、Ｃｏｏｋｉｅと呼ばれる仕組みが用いられている。
【０００５】
Ｃｏｏｋｉｅを利用した従来のセッション管理について図４のブロック図および図５のフロー図を参照して説明する。図４に示すように、サーバ装置４３０と端末装置４１０とがコンピュータネットワーク４８０で接続しているものとする。端末装置４１０では、汎用的なＷｅｂブラウザ部４２０が動作していて、サーバ装置４３０が提供するＷｅｂサイトにアクセスしている。
【０００６】
サーバ装置４３０は、Ｗｅｂサーバ部４４０とログイン処理部４５０とユーザ管理部４６０とコマンド処理部４７０とを備えており、Ｗｅｂフロントエンドとして機能するＷｅｂサーバ部４４０には、セッション管理部４４１が設けられている。ユーザ管理部４６０では、登録ユーザのユーザＩＤとパスワードとを管理している。
【０００７】
端末装置４１０のユーザが、Ｗｅｂブラウザ部４２０を利用してアクセスしたＷｅｂサイト上で、入力要求にしたがってユーザＩＤとパスワードとを入力すると（図５：Ｓ４０１）、サーバ装置４３０のユーザ管理部４６０がユーザ認証を行なう（Ｓ４０２）。ここでは、端末装置４１０のユーザはユーザ登録を済ませており、ユーザとして認証されるものとする。
【０００８】
セッション管理部４４１は、このアクセスに関する一連の処理を識別するためのセッションＩＤを採番し（Ｓ４０３）、所定の記憶領域に保存する（Ｓ４０４）。セッションＩＤは、例えば、テーブル形式で保存する。テーブルには、セッションＩＤの他に、例えば、タイムアウト時間、有効期限、使用／未使用フラグ等を記録しておく。テーブル形式ではなく、セッションＩＤ毎の個別ファイルで保存してもよい。
【０００９】
そして、Ｗｅｂサーバ部４４０が、採番したセッションＩＤをＣｏｏｋｉｅにセットし（Ｓ４０５）、ユーザ認証のレスポンスとしてＣｏｏｋｉｅを含めた情報をＷｅｂブラウザ部４２０に送信する（Ｓ４０６）。Ｗｅｂブラウザ部４２０は、レスポンスに対応したＷｅｂページを表示するとともに、Ｃｏｏｋｉｅを記憶する。
【００１０】
ユーザが、Ｗｅｂページ上でメニュークリック等の操作を行なうと、Ｗｅｂブラウザ部４２０は、操作に対応したコマンドとＣｏｏｋｉｅにセットされたセッションＩＤをＷｅｂサーバ部４４０に送信する（Ｓ４０７）。
【００１１】
Ｗｅｂサーバ部４４０のセッション管理部４４１は、セッション管理用のテーブルを参照し、受信したセッションＩＤによりセッションを識別して、一連の処理であることを認識する（Ｓ４０８）。この際に、有効期限、タイムアウト等のチェックも行なう。そして、コマンド処理部４７０が、識別したセッションに対応したコマンド処理を行なって（Ｓ４０９）、Ｗｅｂサーバ部４４０が、セッションＩＤを含むレスポンスをＷｅｂブラウザ部４２０に送信する（Ｓ４１０）。
【００１２】
このように、Ｃｏｏｋｉｅを利用することによりセッション管理を行なうことができ、サーバ装置４３０は、セッションＩＤによりセッションを識別し、同一セッションＩＤであれば同一ユーザの同一のセッションが継続中であると判断することができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−１４０１６３号公報
【特許文献２】特開２０１５−５２８８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
セッションＩＤを用いることで、Ｗｅｂアクセスのセッション管理を行なうことができるが、工業用機器では、モニタリングを行なったり、各種設定を行なったりする程度のＷｅｂアクセスであることから、セッション管理の必要性に乏しく、従来、セッション管理は行なっていなかった。
【００１５】
しかしながら、近年のセキュリティ意識の高まりや、業界として遵守すべき標準規則の要求等から、工業用機器でもセッション管理の必要性が認識されるようになっている。例えば、工業用機器でセッション管理を行なうことで、コンピュータネットワークを介して受け付けたユーザ別の操作ログを記録することができるようになり、安全管理上有益な情報を蓄積することが可能となる。
【００１６】
ところで、工業用機器でセッション管理を行なうとすると、セッション管理の信頼性を高めるために、セッション管理に対する攻撃を考慮しなければならない。セッション管理に対する攻撃としては、セッションＩＤを不正に取得し、取得したセッションＩＤを用いて当事者になりすまして通信を行なうセッションハイジャックが代表的である。
【００１７】
セッションハイジャックを防ぐための技術として、例えば、特許文献１には、クライアントからの要求のたびにセッションＩＤを採番することが開示され、特許文献２には、サーバ側が管理する条件でセッションＩＤを採番することが開示されている。
【００１８】
これらの技術をＷｅｂサーバとして機能する工業用機器に適用することでセッションハイジャックを防止することができるが、工業用機器におけるセッションＩＤ管理処理が煩雑となる。工業用機器では、測定、記録といった本来の処理に影響を与えないために、セッション管理の負荷は少ない方が好ましい。
【００１９】
そこで、本発明は、Ｗｅｂサーバとして機能する工業用機器において、簡易な処理でセッションハイジャックを防止できるようにすることを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するため、本発明のＷｅｂサーバとして機能する工業用機器は、セッションＩＤを用いて一連のアクセス処理を識別するとともに、前記セッションＩＤの採番の際に、前記セッションＩＤとアクセス元のＩＰアドレスとを関連付けて記録するセッション管理部と、セッションＩＤが特定されたアクセスに対して、アクセス元のＩＰアドレスが、当該セッションＩＤと関連付けられたＩＰアドレスと一致するかどうかを判定する判定部と、外部からの入力に基づき、前記判定部による判定を停止する手段と、を備え、前記セッション管理部は、前記判定部が一致しないと判定した場合に当該アクセスを不正と判断することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、Ｗｅｂサーバとして機能する工業用機器において、簡易な処理でセッションハイジャックを防止できるようになる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態の工業用機器を含んだネットワーク構成例を示すブロック図である。
【図２】セッション管理用テーブルの構成例を示す図である。
【図３】本実施形態の工業用機器の動作を説明するフロー図である。
【図４】Ｃｏｏｋｉｅを利用した従来のセッション管理を説明するブロック図である。
【図５】Ｃｏｏｋｉｅを利用した従来のセッション管理を説明するフロー図である。
【発明を実施するための形態】
【００２３】
本発明の実施の形態について図面を参照して説明する。図１は、本実施形態の工業用機器１００を含んだネットワーク構成例を示すブロック図である。本図に示すように、Ｗｅｂサーバとして機能する工業用機器１００と端末装置２００とがコンピュータネットワーク３００を介して接続しているものとする。
【００２４】
工業用機器１００は、例えば、ペーパレスレコーダ、データロガー、波形表示装置等の計装機器とすることができるが、工業用途の機器であれば、これらの機器に限られない。
【００２５】
端末装置２００では、汎用的なＷｅｂブラウザ部２１０が動作していて、工業用機器１００にアクセス可能となっている。端末装置２００は、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ、スマートフォン等の一般的な情報処理装置を用いることができる。
【００２６】
工業用機器１００は、Ｗｅｂサーバ部１１０とログイン処理部１２０とユーザ管理部１３０とコマンド処理部１４０とを備えている。なお、工業用機器１００としての本来の動作である測定処理、記録処理等を行なうブロックは省略している。
【００２７】
Ｗｅｂフロントエンドとして機能するＷｅｂサーバ部１１０には、セッション管理部１１１とＩＰアドレス判定部１１２とが設けられている。セッション管理部１１１は、端末装置２００からのアクセスを受け付けると、セッションＩＤを採番してセッション管理用テーブルに記録する。
【００２８】
このとき、アクセス元の端末装置２００のＩＰアドレスを取得して、採番したセッションＩＤと関連付けてセッション管理用テーブルに記録する。ただし、セッション管理用テーブル形式ではなく、セッション毎に個別のファイルに記録してもよい。
【００２９】
図２は、セッション管理用テーブルの構成例を示す図である。本図に示すように、セッション管理用テーブルは、セッションＩＤ、ＩＰアドレス、タイムアウトカウントを関連付けて記録するテーブルである。さらに、ログイン情報、ユーザ権限、使用／未使用等の他の情報を関連付けて記録してもよい。セッション管理用テーブルは、Ｗｅｂサーバ部１１０が参照可能な所定の記憶領域に格納される。
【００３０】
なお、タイムアウトカウントは、Ｗｅｂブラウザ部２１０からの次回アクセスまでのタイムアウトタイミングを内部タイマーのカウント値で表したものである。もちろん、タイムアウトカウントに限られず、有効期限を設けたり、タイムアウト時間を設定したりしてもよいし、タイムアウトを設定しないようにしてもよい。
【００３１】
セッション管理部１１１は、端末装置２００からセッションＩＤを含んだアクセスを受け付けると、受け付けたセッションＩＤとセッション管理用テーブルとからセッションを特定する。受け付けたセッションＩＤがセッション管理用テーブルに登録されていない場合には、セッションＩＤが特定できないとしてアクセスを拒否する。あるいは、新たなアクセスとして取り扱って、セッションＩＤを採番してもよい。
【００３２】
ＩＰアドレス判定部１１２は、セッションＩＤが特定されたアクセスに係るＩＰアドレスが、セッション管理用テーブルでそのセッションＩＤに関連付けられているＩＰアドレスと一致するかどうかを判定する。セッション管理部１１１は、ＩＰアドレス判定部１１２の判定の結果、ＩＰアドレスが一致しない場合には、セッションハイジャックのおそれのある不正アクセスであると判断する。不正アクセスであると判断した場合には、例えば、コマンドを処理せずに、エラーのレスポンスを返す。あるいは、アクセスに対するレスポンスを返さないようにセッションを終了したり、不正である旨のレスポンスを行なうようにしてもよい。さらには、コマンドを処理せずに、送られてきたセッションＩＤを削除するようＣｏｏｋｉｅに設定し、レスポンスを返してもよい。
【００３３】
ユーザ管理部１３０は、登録ユーザのユーザＩＤとパスワードとを管理する。ユーザ名、ユーザ属性等の情報を加えてもよい。コマンド処理部１４０は、端末装置２００のＷｅｂブラウザ部２１０を介してユーザから受け付けたコマンドに対する処理を行なう。
【００３４】
次に、本実施形態の工業用機器１００の動作について図３のフロー図を参照して説明する。
【００３５】
端末装置２００のユーザが、Ｗｅｂサーバ部１１０が提供するログイン画面でユーザＩＤとパスワードとを入力すると（Ｓ１０１）、工業用機器１００のユーザ管理部１３０がユーザ認証を行なう（Ｓ１０２）。ここでは、端末装置２００のユーザはユーザ登録を済ませており、ユーザとして認証されるものとする。
【００３６】
セッション管理部１１１は、このアクセスに関する一連の処理を識別するためのセッションＩＤを採番する（Ｓ１０３）。そして、アクセス元の端末装置２００のＩＰアドレスと採番したセッションＩＤとを関連付けてセッション管理用テーブルに記録する（Ｓ１０４）。
【００３７】
Ｗｅｂサーバ部１１０が、採番したセッションＩＤをＣｏｏｋｉｅにセットし（Ｓ１０５）、ユーザ認証のレスポンスとしてＣｏｏｋｉｅを含めた情報をＷｅｂブラウザ部２１０に送信する（Ｓ１０６）。Ｗｅｂブラウザ部２１０は、レスポンスに対応したＷｅｂページを表示するとともに、Ｃｏｏｋｉｅを記憶する。
【００３８】
ユーザが、Ｗｅｂページ上でメニュークリック等の操作を行なうと、Ｗｅｂブラウザ部２１０は、操作に対応したコマンドとＣｏｏｋｉｅにセットされたセッションＩＤをＷｅｂサーバ部１１０に送信する（Ｓ１０７）。
【００３９】
Ｗｅｂサーバ部１１０のセッション管理部１１１は、セッション管理用テーブルを参照し、受信したセッションＩＤによりセッションを識別して、一連の処理であることを認識する（Ｓ１０８）。具体的には、受信したセッションＩＤと一致するセッションＩＤがセッション管理用テーブルに記録されていれば、一連の処理であると判定する。
【００４０】
セッションＩＤによりセッションを識別すると、ＩＰアドレス判定部１１２が、このアクセスのＩＰアドレスが、セッション管理用テーブルで識別されたセッションＩＤに関連付けられているＩＰアドレスと一致するかどうかを判定する（Ｓ１０９）。
【００４１】
その結果、ＩＰアドレスが一致している場合には（Ｓ１０９：Ｙｅｓ）、セッションハイジャックのおそれがないものとして、コマンド処理部１４０が、識別したセッションに対応したコマンド処理を行なって（Ｓ１１０）、Ｗｅｂサーバ部１１０が、セッションＩＤを含むレスポンスをＷｅｂブラウザ部２１０に送信する（Ｓ１１１）。なお、タイムアウト等の他の条件は満たしているものとする。
【００４２】
一方、ＩＰアドレスが一致しない場合には（Ｓ１０９：Ｎｏ）、セッション管理部１１１は、セッションハイジャックのおそれのある不正アクセスであると判断する。そして、Ｗｅｂサーバ部１１０は、コマンドを処理せず、エラーのレスポンスを返す（Ｓ１１２）。
【００４３】
このように、本実施形態の工業用機器１００は、セッションＩＤとＩＰアドレスとを関連付けて記録し、セッションＩＤが識別されると、アクセス元のＩＰアドレスが、識別されたセッションＩＤに関連付けられて記録されているＩＰアドレスと一致するかどうかの判定を行なう。そして、ＩＰアドレスが一致しない場合には不正アクセスとして判断する。これにより、簡易な処理でセッションハイジャックを防止することができる。
【００４４】
なお、本発明の工業用機器は、上記の実施形態に限られず種々の変形が可能である。例えば、セッションハイジャックのおそれがあることの判断材料としてＩＰアドレスを利用したが、ＩＰアドレスに限られず、アクセス元の通信機器を特定する情報であれば利用することができる。このため、ＩＰアドレスに代えて、あるいは、ＩＰアドレスに加えて、ＭＡＣアドレス等の機器固有の識別子をセッション管理用テーブルに記録して一致不一致を判定するようにしてもよい。
【００４５】
また、工業用機器１００に、あらかじめ登録されたＩＰアドレス以外からのアクセスを拒否する機能を持たせることで、さらに、安全管理を徹底させることができる。この場合、許可ＩＰアドレスを登録した許可ＩＰアドレステーブルを別途設けるとともに、アクセス要求があった際に、そのアクセスに係るＩＰアドレスが許可ＩＰアドレステーブルに登録されている場合のみアクセスを許可する許可ＩＰアドレス管理部を工業用機器１００内に設ければよい。
【００４６】
また、上述の実施形態では、セッションハイジャックを防止するために、セッションＩＤとＩＰアドレスとを関連付けて記録するようにしていたが、さらに、アクセスの際のリンク元を示すリファラ情報を関連付けて記録するようにしてもよい。
【００４７】
リファラ情報を記録することにより、同一セッションＩＤ、同一ＩＰアドレスであっても、リファラが異なるアクセスを拒否することで、クロスサイトリクエストフォージェリ対策を行なうことができるようになる。
【００４８】
また、移動体端末装置のようにログイン後にＩＰアドレスが変化する可能性があるアクセス形態に対応するため、ＩＰアドレス判定部１１２におけるＩＰアドレスの一致判定機能は、管理者の設定により停止できるようにしてもよい。
【符号の説明】
【００４９】
１００…工業用機器、１１０…サーバ部、１１１…セッション管理部、１１２…アドレス判定部、１２０…ログイン処理部、１３０…ユーザ管理部、１４０…コマンド処理部、２００…端末装置、２１０…Ｗｅｂブラウザ部、３００…コンピュータネットワーク
【図１】
0006537017.tif 000002
【図２】
0006537017.tif 000003
【図３】
0006537017.tif 000004
【図４】
0006537017.tif 000005
【図５】
0006537017.tif 000006