JP2011113467A - セキュリティ強化装置およびセキュリティ強化方法 - Google Patents

セキュリティ強化装置およびセキュリティ強化方法 Download PDF

Info

Publication number
JP2011113467A
JP2011113467A JP2009271641A JP2009271641A JP2011113467A JP 2011113467 A JP2011113467 A JP 2011113467A JP 2009271641 A JP2009271641 A JP 2009271641A JP 2009271641 A JP2009271641 A JP 2009271641A JP 2011113467 A JP2011113467 A JP 2011113467A
Authority
JP
Japan
Prior art keywords
web application
password
web browser
web
request message
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
Application number
JP2009271641A
Other languages
English (en)
Inventor
Yoichi Kobayashi
洋一 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toppan Inc
Original Assignee
Toppan Printing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toppan Printing Co Ltd filed Critical Toppan Printing Co Ltd
Priority to JP2009271641A priority Critical patent/JP2011113467A/ja
Publication of JP2011113467A publication Critical patent/JP2011113467A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】Webアプリケーションを修正することなくWebブラウザからWebアプリケーションに対する不正な情報の送信を防ぐことができる。
【解決手段】インターフェース310はデータの送受信を行う。ログイン情報データベース330はパスワードをWebアプリケーションのアクセス先を示す情報と関連付けて記憶する。演算装置320は、リクエストメッセージの送信先が特定の送信先である場合、Webブラウザにパスワードの送信を要求し、送信されたパスワードがWebアプリケーションのアクセス先を示す情報と関連付けられてログイン情報データベース330に記憶されているか否かを判定する。パスワードがWebアプリケーションのアクセス先を示す情報と関連付けられて記憶されている場合、演算装置320は、リクエストメッセージを特定の送信先であるWebアプリケーションにインターフェース310を介して送信する。
【選択図】図2

Description

本発明は、セキュリティ強化装置およびセキュリティ強化方法に関する。
Web(ウェブ)システムはWebアプリケーションとWebブラウザからなるサーバクライアント型のシステムであり、インターネットの普及に伴って広く利用されている。
図16は、従来のWebシステムにおけるWebブラウザとWebアプリケーションとの動作手順を示したシーケンス図である。
(ステップS501)Webブラウザは、情報を送信するための入力画面の表示要求を含んだリクエストメッセージをWebアプリケーションに送信する。
(ステップS502)Webアプリケーションは、送信されたリクエストメッセージに含まれる要求に基づいて処理を行う。ここでは、ステップS501でWebブラウザが送信したリクエストメッセージには情報を送信するための入力画面の表示要求が含まれているため、Webアプリケーションは、情報の入力画面を表示させるためのレスポンスメッセージをWebブラウザに送信する。
(ステップS503)Webブラウザは、送信されたレスポンスメッセージに従って、情報を入力するための画面を表示する。Webブラウザのユーザは、情報を入力するための画面に情報を入力する。
(ステップS504)Webブラウザは、ステップS503で入力された情報を含んだリクエストメッセージをWebアプリケーションに送信する。
(ステップS505)Webアプリケーションは、送信されたリクエストメッセージに含まれる要求に基づいて処理を行う。ここでは、ステップS504でWebブラウザが送信したリクエストメッセージには情報が含まれているため、Webアプリケーションは、情報の登録処理を行う。
(ステップS506)Webアプリケーションは、情報の登録処理が完了したため、情報の登録処理が完了したことを通知する画面(確認画面)データを含んだレスポンスメッセージをWebブラウザに送信する。
(ステップS507)Webブラウザは、送信されたレスポンスメッセージに従って、情報の登録処理が完了したことを通知する画面(確認画面)を表示する。
上述のように、Webシステムは、上述したステップS501からステップS507のような処理を行う。ここでは、Webシステムに含まれるWebブラウザの動作環境は多岐に渡るため、Webアプリケーションの提供者がWebブラウザの動作環境を制限出来るケースはあまり無い。そのため、どのようなWebブラウザからでもWebアプリケーションにリクエストメッセージを送信することができる。従って、インターネットを利用して重要な情報の送受信を行う場合には、Webアプリケーション側がWebブラウザから送られてくる情報を厳しくチェックする必要がある。
また、Webの技術は、その技術の進化が速いことも一因となって、例えば数年前の技術で作られたWebアプリケーションには処理フローに由来する脆弱性が見つかる事が少なからずある。その脆弱性につけ込んだ攻撃の一つにリクエスト強要(CSRF、Cross−site Request Forgery)と呼ばれる攻撃がある(例えば、非特許文献1参照)。
このCSRFは、ユーザが正規の手順に従って利用しているWebブラウザを、別のサイトに用意したコンテンツ上の罠のリンクを踏ませる等の手段で不正に操作させることで、(例えば、インターネットショッピングの最終決済や、退会等のWebアプリケーションの重要な処理を呼び出すようユーザを誘導する)ユーザの意図しない情報(ときには重大な情報となる)をWebアプリケーションに対して送信させてしまうことにより、被害を及ぼす攻撃である。
これを防ぐ有効な対策の一つとしては、Webアプリケーションのプログラムを修正して脆弱性を解消することが考えられる。例えば、重要度の高い情報の送信時には、それが確かにユーザの正しい操作によって送信された物であるか否かを判定することによって手続きの安全を図る処理をWebアプリケーションに組み込むという技術も知られている。
"IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第4章 セッション対策:リクエスト強要(CSRF)対策"、[online]、[平成21年11月24日検索]、インターネット<URL:https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/301.html>
しかしながら、Webアプリケーションのプログラムの修正を行うことにより脆弱性を解消させる場合には、プログラム修正の手法がWebアプリケーションによって個々に異なってしまう。その為に、プログラムの修正コストは、一般的に、Webアプリケーションの数に比例して増大してしまう。従って、プログラムの修正に必要とされるコストを負担する立場の者にとっては、経済的に非常に大きな問題ともなりえる。
また、現実にはWebアプリケーション開発時の情報の引き継ぎが不十分であったり、継続的な修正が必要という認識が無かったりすることから、脆弱性を含んだままのWebアプリケーションがそのまま運用され続けてしまうケースも多々実在すると云われている。
本発明は、Webアプリケーションを修正することなく、WebブラウザからWebアプリケーションに対して不正な情報の送信を防ぐことができるセキュリティ強化装置およびセキュリティ強化方法を提供することを目的とする。
本発明は、Webブラウザが動作する端末装置と、Webアプリケーションが動作するサーバ装置と、セキュリティ強化装置とが通信可能なネットワークで接続しているWebシステムにおけるセキュリティ強化装置であって、前記Webアプリケーションおよび前記Webブラウザとデータの送受信を行う通信部と、前記Webブラウザが前記Webアプリケーションにログインする際に用いるパスワードを、当該Webアプリケーションのアクセス先を示す情報と関連付けて記憶するログイン情報データベースと、前記Webブラウザから前記Webアプリケーションに送信されるリクエストメッセージの送信先が特定の送信先である場合、当該Webブラウザに前記パスワードの送信を要求し、当該Webブラウザから送信された前記パスワードが当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されているか否かを判定する判定部と、前記判定部によって、当該Webブラウザから送信された前記パスワードは当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されていると判定された場合、前記リクエストメッセージを前記特定の送信先である前記Webアプリケーションに前記通信部を介して送信する制御部と、を備えたことを特徴とするセキュリティ強化装置である。
この構成によれば、通信部は、WebアプリケーションおよびWebブラウザとデータの送受信を行う。また、ログイン情報データベースは、WebブラウザがWebアプリケーションにログインする際に用いるパスワードを、当該Webアプリケーションのアクセス先を示す情報と関連付けて記憶する。また、判定部は、WebブラウザからWebアプリケーションに送信されるリクエストメッセージの送信先が特定の送信先である場合、当該Webブラウザにパスワードの送信を要求し、当該Webブラウザから送信されたパスワードが当該Webアプリケーションのアクセス先を示す情報と関連付けられてログイン情報データベースに記憶されているか否かを判定する。また、判定部によって、当該Webブラウザから送信されたパスワードは当該Webアプリケーションのアクセス先を示す情報と関連付けられてログイン情報データベースに記憶されていると判定された場合、制御部場、リクエストメッセージを特定の送信先であるWebアプリケーションに通信部を介して送信する。
また、本発明のセキュリティ強化装置において、前記通信部は、Webブラウザから前記Webアプリケーションに送信される情報がログイン情報を含んだリクエストメッセージである場合、当該リクエストメッセージを前記Webアプリケーションに送信して、当該Webアプリケーションから当該リクエストメッセージに対するレスポンスメッセージを受信し、前記制御部は、前記レスポンスメッセージに含まれる文字列にログインが成功したことを示す文字列が含まれている場合、前記リクエストメッセージのログイン情報に含まれる前記パスワードを当該Webアプリケーションのアクセス先を示す情報と関連付けて前記ログイン情報データベースに記憶させることを特徴とする。
この構成によれば、通信部は、WebブラウザからWebアプリケーションに送信される情報がログイン情報を含んだリクエストメッセージである場合、当該リクエストメッセージをWebアプリケーションに送信して、当該Webアプリケーションから当該リクエストメッセージに対するレスポンスメッセージを受信する。また、制御部は、レスポンスメッセージに含まれる文字列にログインが成功したことを示す文字列が含まれている場合、リクエストメッセージのログイン情報に含まれるパスワードを当該Webアプリケーションのアクセス先を示す情報と関連付けてログイン情報データベースに記憶させる。
また、本発明は、Webブラウザが動作する端末装置と、Webアプリケーションが動作するサーバ装置と、セキュリティ強化装置とが通信可能なネットワークで接続しているWebシステムにおけるセキュリティ強化方法であって、通信部が、前記Webアプリケーションおよび前記Webブラウザとデータの送受信を行う通信ステップと、ログイン情報データベースが、前記Webブラウザが前記Webアプリケーションにログインする際に用いるパスワードを、当該Webアプリケーションのアクセス先を示す情報と関連付けて記憶するログイン情報記憶ステップと、判定部が、前記Webブラウザから前記Webアプリケーションに送信されるリクエストメッセージの送信先が特定の送信先である場合、当該Webブラウザに前記パスワードの送信を要求し、当該Webブラウザから送信された前記パスワードが当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されているか否かを判定する判定ステップと、前記判定ステップで、当該Webブラウザから送信された前記パスワードは当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されていると判定された場合、制御部が、前記リクエストメッセージを前記特定の送信先である前記Webアプリケーションに前記通信部を介して送信する制御ステップと、を含んだことを特徴とするセキュリティ強化方法である。
第1の発明によると、セキュリティ強化装置は、Webブラウザから送信されたリクエストメッセージを特定の送信先であるWebアプリケーションに送信する前に、Webブラウザにパスワードの入力を行わせ、Webブラウザに入力されたパスワードが、Webアプリケーションへのログインが成功した際に用いたパスワードである場合に、通信部は、リクエストメッセージを特定の送信先であるWebアプリケーションに送信する。これにより、Webアプリケーションを修正することなくWebブラウザからWebアプリケーションに対する不正な情報の送信を防ぐことができる効果がある。
また、第2の発明によると、セキュリティ強化装置は、WebブラウザがWebアプリケーションへのログインが成功した際に用いたパスワードをログイン情報データベースに記憶させることができるため、予めパスワードを記憶させることなく、WebブラウザからWebアプリケーションに対する不正な情報の送信を防ぐことができる効果がある。
また、第3の発明によると、セキュリティ強化方法は、Webブラウザから送信されたリクエストメッセージを特定の送信先であるWebアプリケーションに送信する前に、Webブラウザにパスワードの入力を行わせ、Webブラウザに入力されたパスワードが、Webアプリケーションへのログインが成功した際に用いたパスワードである場合に、リクエストメッセージを特定の送信先であるWebアプリケーションに送信する。これにより、Webアプリケーションを修正することなくWebブラウザからWebアプリケーションに対する不正な情報の送信を防ぐことができる効果がある。
本発明の第1の実施形態におけるセキュリティ強化装置を含んだWebシステムの構成を示した概略図である。 本発明の第1の実施形態におけるセキュリティ強化装置の構成を示したブロック図である。 本発明の第1の実施形態におけるログイン情報テーブルのデータ構造を示した概略図である。 本発明の第1の実施形態における入力画面テーブルのデータ構造を示した概略図である。 本発明の第1の実施形態におけるセッション管理テーブルのデータ構造を示した概略図である。 本発明の第1の実施形態におけるパスワード再入力画面(1)を示した概略図である。 本発明の第1の実施形態におけるパスワード再入力画面(2)を示した概略図である。 本発明の第1の実施形態において、WebブラウザからWebアプリケーションに送信するリクエストメッセージの構造を示した説明図である。 本発明の第1の実施形態において、WebアプリケーションからWebブラウザに送信するレスポンスメッセージの構造を示した説明図である。 本発明の第1の実施形態におけるセキュリティ強化装置が、WebブラウザからWebアプリケーションに送信されるパスワードを抽出してログイン情報データベースに記憶させる手順を示したフローチャートである。 本発明の第1の実施形態において、Webブラウザから保護対象のURLで示されるWebアプリケーションに情報を送信する際の、Webブラウザとセキュリティ強化装置とWebアプリケーションとの動作手順を示したシーケンス図である。 本発明の第1の実施形態におけるセキュリティ強化装置が、Webブラウザから送信された情報のみを保護対象のURL示されるWebアプリケーションに転送する手順を示したフローチャートである。 本発明の第2の実施形態におけるセキュリティ強化装置の構成を示したブロック図である。 本発明の第2の実施形態におけるパスワード変更情報テーブルのデータ構造を示した概略図である。 本発明の第2の実施形態におけるセキュリティ強化装置が、WebブラウザからWebアプリケーションに送信されるパスワードの変更メッセージを含んだリクエストメッセージに含まれる変更後のパスワードを抽出してログイン情報データベースに記憶させる手順を示したフローチャートである。 従来のWebシステムにおけるWebブラウザとWebアプリケーションとの動作手順を示したシーケンス図である。
(第1の実施形態)
以下、本発明のセキュリティ強化装置の第1の実施形態について図面を参照して説明する。図1は、本実施形態におけるセキュリティ強化装置を含んだWeb(ウェブ)システムの構成を示した概略図である。図示する例では、Webシステムは、端末装置100と、Webアプリケーションサーバ200と、セキュリティ強化装置300と、ネットワーク400とを含んでいる。なお、サービス提供側が、Webアプリケーションサーバ200とセキュリティ強化装置300とを構築する。
端末装置100は、入力部と、制御部と、通信部と、記憶部と、表示部とを備え、ソフトウェアであるWebブラウザ101を動作させる装置である。例えば、端末装置100は、パーソナルコンピュータや携帯電話である。
Webアプリケーションサーバ200は、入力部と、制御部と、通信部と、記憶部と、表示部とを備え、ソフトウェアであるWebアプリケーション201を動作させる装置である。例えば、Webアプリケーションサーバ200は、サーバ装置である。
セキュリティ強化装置300は、端末装置100上で動作しているWebブラウザ101と、Webアプリケーションサーバ200上で動作しているWebアプリケーション201との間の通信を仲介する装置であり、Webブラウザ101から送信される情報をWebアプリケーション201に転送する装置である。
ネットワーク400は、端末装置100とセキュリティ強化装置300とを通信可能に接続している。また、Webアプリケーションサーバ200とセキュリティ強化装置300とは通信可能なネットワークで接続されている。これにより、端末装置100上で動作しているWebブラウザ101と、Webアプリケーションサーバ200上で動作しているWebアプリケーション201とは互いにデータの送受信を行うことができる。
次に、セキュリティ強化装置300の構成について説明する。図2は、本実施形態におけるセキュリティ強化装置300の構成を示したブロック図である。図示する例では、セキュリティ強化装置300は、インターフェース310(通信部)と、演算装置320(判定部、制御部)と、ログイン情報データベース330と、入力画面データベース340と、セッション管理データベース350とを備えている。
インターフェース310は、他の装置とデータの送受信を行う。演算装置320は、プログラムに基づいて演算を行い、セキュリティ強化装置300が備える各部の制御を行う。ログイン情報データベース330はハードディスクなどの記憶装置であり、ログイン情報テーブルを記憶する。入力画面データベース340はハードディスクなどの記憶装置であり、入力画面テーブルを記憶する。セッション管理データベース350は、セッション管理テーブルを記憶する。
次に、ログイン情報データベース330が記憶するログイン情報テーブルについて説明する。図3は、本実施形態におけるログイン情報テーブルのデータ構造を示した概略図である。図示する例では、ログイン情報テーブルは表形式のデータ構造を有しており、「ログイン情報が送付されるURL」と、「パスワード識別子」と、「ログイン成功画面に含まれる文字列」とのデータ項目を有する。また、ログイン情報テーブルは、各データ項目の情報を行毎に関連付けて記憶している。
「ログイン情報が送付されるURL」は、Webブラウザ101から送信されるログイン情報を含んだリクエストメッセージの送付先を示すURLである。「パスワード識別子」は、リクエストメッセージのメッセージボディに含まれるパスワードを示す識別子である。「ログイン成功画面に含まれる文字列」は、ログインが成功した場合に、Webアプリケーションから送信されるレスポンスメッセージのメッセージボディに含まれる文字列を示している。
次に、ログイン情報テーブルの各行が示す内容について説明する。例えば、行301に示す例では、Webブラウザ101から送信されるログイン情報を含んだリクエストメッセージの送付先が「http://www.example.jp/login.cgi」である場合、このリクエストメッセージのメッセージボディに含まれるパスワードは「param1」の値である。また、このリクエストメッセージによるログインが成功した場合には、Webアプリケーション201から送信されるレスポンスメッセージのメッセージボディに「ようこそexampleへ」が含まれていることを示している。なお、他の行に示す例は図示するとおりである。
次に、入力画面データベース340が記憶する入力画面テーブルについて説明する。図4は、本実施形態における入力画面テーブルのデータ構造を示した概略図である。図示する例では、入力画面テーブルは表形式のデータ構造を有しており、「保護対象のURL」と、「パスワード再入力画面データ」とのデータ項目を有する。また、入力画面テーブルは、各データ項目の情報を行毎に関連付けて記憶している。
「保護対象のURL」は、Webブラウザ101から送信されるリクエストメッセージの送付先のURLのうち、保護対象のURL(特定の送信先)である。例えば、ユーザ情報の登録および更新を行う情報の送信先を示すURLや、商品の注文情報の送信先など、重要な情報の送信先のURLが保護対象のURLとして考えられる。なお、具体例を挙げたが、どのようなURLを保護対象のURLとしてもよい。
「パスワード再入力画面データ」は、保護対象のURLで示された宛先に送信する情報を含んだリクエストメッセージがWebブラウザ101から送信された場合、当該Webブラウザ101に送信する、パスワードの再入力を促す画面であるパスワード再入力画面を表示させるためのパスワード再入力画面データを示している。
次に、入力画面テーブルの各行が示す内容について説明する。例えば、行401に示す例では、Webブラウザ101から送信されるリクエストメッセージの送付先が保護対象のURL「http://www.example.jp/userinfo.cgi」である場合、セキュリティ強化装置300は、このリクエストメッセージの送信元であるWebブラウザ101に「パスワード再入力画面データ(1)」を送信することを示している。なお、他の行に示す例は図示するとおりである。
次に、セッション管理データベース350が記憶するセッション管理テーブルについて説明する。図5は、本実施形態におけるセッション管理テーブルのデータ構造を示した概略図である。図示する例では、セッション管理テーブルは表形式のデータ構造を有しており、「アクセス先」と、「セッションID」と、「パスワード」と、「有効期限」とのデータ項目を有する。また、セッション管理テーブルは、各データ項目の情報を行毎に関連付けて記憶している。
「アクセス先」は、Webアプリケーション201のホスト名である。「セッションID」は、「アクセス先」で特定されるWebアプリケーション201に接続しているWebブラウザ101を一意に特定するIDである。「パスワード」は、「セッションID」で特定されるWebブラウザ101が、「アクセス先」で特定されるWebアプリケーション201へのログインに成功した際のパスワードである。「有効期限」は、「セッションID」で特定されるWebブラウザ101とのセッションの有効期限を示す。なお、有効期限が切れた行の情報は消去される。例えば、演算装置320は、1時間間隔にセッション管理データベース350のセッション管理テーブルの「有効期限」を読み出し、有効期限が切れた行の情報を消去する。
次に、セッション管理テーブルの各行が示す内容について説明する。例えば、行501に示す例では、Webアプリケーション201のホスト名は「www.example.jp」であり、このホスト名で特定されるWebアプリケーション201に接続しているWebブラウザ101を一意に特定するセッションIDは「4a5d71b53f8c2」であり、このWebブラウザ101がWebアプリケーション201へのログインに成功した際のパスワードは「6K7rp8Di」であり、このセッションの有効期限は「Sun, 6−Dec−2009 12:05:10 GMT」であることを示している。「Sun, 6−Dec−2009 12:05:10 GMT」は、グリニッジ標準時2009年12月6日(日曜日)12時5分10秒を示している。なお、他の行に示す例は図示するとおりである。また、図示する例では、パスワードの値をそのままセッション管理テーブルに記憶しているが、ハッシュ化した値を記憶してもよい。
次に、本実施形態におけるパスワード再入力画面について説明する。図6は、本実施形態におけるパスワード再入力画面(1)を示した概略図である。パスワード再入力画面(1)は、パスワード入力領域601と、OKボタン602と、cancelボタン603とを含んでいる。また、パスワード再入力画面(1)は、画面上部に「ユーザ情報を更新します 確認の為パスワードを入れて下さい」を表示している。
図7は、本実施形態におけるパスワード再入力画面(2)を示した概略図である。パスワード再入力画面(2)は、パスワード入力領域701と、OKボタン702と、cancelボタン703とを含んでいる。また、パスワード再入力画面(2)は、画面上部に「注文情報を更新します 確認の為パスワードを入れて下さい」を表示している。
次に、本実施形態において、Webブラウザ101からWebアプリケーション201に送信するリクエストメッセージの構造について説明する。図8は、本実施形態において、Webブラウザ101からWebアプリケーション201に送信するリクエストメッセージの構造を示した説明図である。
Webブラウザ101からWebアプリケーション201に送信するリクエストメッセージは、リクエストラインと、リクエストヘッダと、メッセージボディとを含んでいる。例えば、リクエストラインの「POST」の値が、リクエストメッセージの送信先のパスである。また、リクエストヘッダの「host」の値が、リクエストメッセージの送信先のホスト名である。また、リクエストヘッダの「Cookie:session」の値がセッションIDである。また、メッセージボディのうち、ログイン情報テーブルの「パスワード識別子」で特定される値が、Webアプリケーション201へのログインの際にWebブラウザ101が送信するパスワードである。また、リクエストヘッダとメッセージボディとの間には空行を含んでいる。この空行は、リクエストヘッダとメッセージボディとの区切りを示す。
図示する例では、リクエストラインは「POST /cgi−bin/login.cgi」であり、リクエストヘッダは「host: www.example.com[改行]User−Agent: MOZILLA1/0[改行]Content−Type: text/plain[改行]Content−Length: 54[改行]Cookie: session=aaaabbbb」であり、メッセージボディは「username=aaaaa&param1=xxxyyzzz」である。
リクエストライン「POST /cgi−bin/login.cgi」であるため、リクエストメッセージの送信先のパスは「/login.cgi」である。また、リクエストヘッダ「host: www.example.com」であるため、リクエストメッセージの送信先のホスト名は「www.example.com」である。また、リクエストヘッダ「Cookie:session=aaaabbbb」であるため、セッションIDは「aaaabbbb」である。また、ログイン情報テーブルの「ログイン情報が送付されるURL」「http://www.example.com/login.cgi」に関連付けられている「パスワード識別子」が「param1」である場合、メッセージボディ「param1=xxxyyzzz」であるため、Webアプリケーション201へのログインの際にWebブラウザ101が送信するパスワードは「xxxyyzzz」である。
次に、本実施形態において、Webアプリケーション201からWebブラウザ101に送信するレスポンスメッセージの構造について説明する。図9は、本実施形態において、Webアプリケーション201からWebブラウザ101に送信するレスポンスメッセージの構造を示した説明図である。
Webアプリケーション201からWebブラウザ101に送信するレスポンスメッセージは、レスポンストラインと、レスポンスヘッダと、メッセージボディとを含んでいる。例えば、レスポンスヘッダの「Set−Cookie:session」の値がセッションIDである。また、レスポンスヘッダの「Set−Cookie:expires」の値が有効期限である。また、メッセージボディの「<html> </html>」タグで囲まれた文字列が、Webブラウザ101が表示する画面を示す。また、リクエストヘッダとメッセージボディとの間には空行を含んでいる。この空行は、リクエストヘッダとメッセージボディとの区切りを示す。
図示する例では、レスポンストラインは「HTTP1.1 200 OK」であり、レスポンスヘッダは「Data:Sun,06−Dec−2009 08:05:10 GMT[改行]Content−Type: text/html[改行]Content−Length: 89[改行]Set−Cookie: session=aaaabbbb expires= Sun,06−Dec−2009 12:05:10 GMT;」であり、メッセージボディは「<html>[改行]〜中略〜[改行]ログインに成功しました[改行]〜中略〜[改行]</html>」である。
レスポンスヘッダ「Set−Cookie:session=aaaabbbb」であるため、セッションIDは「aaaabbbb」である。また、レスポンスヘッダ「Set−Cookie:expires= Sun,06−Dec−2009 12:05:10 GMT;」であるため、有効期限は「Sun,06−Dec−2009 12:05:10 GMT」である。また、メッセージボディ「<html>[改行]〜中略〜[改行]ログインに成功しました[改行]〜中略〜[改行]</html>」であるため、Webブラウザ101が表示する画面は「〜中略〜[改行]ログインに成功しました[改行]〜中略〜」を表示する。
次に、本実施形態におけるセキュリティ強化装置300の動作について説明する。Webブラウザ101は、Webアプリケーション201にログインする際に、Webアプリケーション201にパスワードを送信する。Webアプリケーション201は、例えば、送信されたパスワードがWebアプリケーションサーバ200の記憶部に登録されているパスワードである場合、Webブラウザ101のログインを許可する。
このとき、セキュリティ強化装置300は、Webブラウザ101がWebアプリケーション201に送信するパスワードを抽出する。また、セキュリティ強化装置300は、Webブラウザ101のログインが成功した場合、抽出したパスワードをログイン情報データベース330に記憶させる。そして、Webブラウザ101から保護対象のURLで示されたWebアプリケーション201にリクエストメッセージを送信する際に、そのWebブラウザ101がログイン済みのWebブラウザ101であることを確認するために、ログイン情報データベース330に記憶させているパスワードを利用する。
具体的には、Webブラウザ101から保護対象のURLで示されたWebアプリケーション201にリクエストメッセージを送信する際に、セキュリティ強化装置300は、Webブラウザ101にパスワードを送信させる。そしてセキュリティ強化装置300は、送信されたパスワードとログイン情報データベース330に記憶させているパスワードとが一致した場合、Webブラウザ101から送信されたリクエストメッセージをWebアプリケーション201に転送する。これにより、Webアプリケーションを修正することなく、Webブラウザから保護対象のURLで示されたWebアプリケーションに対して不正な情報の送信を防ぐことができる。
次に、セキュリティ強化装置300が、Webブラウザ101からWebアプリケーション201に送信されるパスワードを抽出してログイン情報データベース330に記憶させる手順について説明する。図10は、本実施形態におけるセキュリティ強化装置300が、Webブラウザ101からWebアプリケーション201に送信されるパスワードを抽出してログイン情報データベース330に記憶させる手順を示したフローチャートである。
(ステップS101)セキュリティ強化装置300のインターフェース310は、Webブラウザ101からWebアプリケーション201宛に送信されたリクエストメッセージを受信する。演算装置320は、インターフェース310が受信したリクエストメッセージのURLを取得し、ステップS102の処理に進む。例えば、リクエストメッセージリクエストヘッダの「host」に含まれているホスト名と、リクエストラインの「POST」に含まれているパスとを合わせたものがURLである。図8に示したリクエストメッセージのURLは、ホスト名「www.example.com」であり、パス「/login.cgi」であるため、URLは「www.example.com/login.cgi」である。
(ステップS102)演算装置320は、ステップS101で取得したリクエストメッセージのURLが、ログイン情報データベース330の「ログイン情報が送付されるURL」に記憶されているログイン情報の送信先を示すURLである場合、ステップS101でインターフェース310が受信したリクエストメッセージのメッセージボディに含まれているパスワードを抽出し、記憶部に記憶させる。その後、ステップS103の処理に進む。
例えば、ステップS101で取得したリクエストメッセージのURLが「www.example.com/login.cgi」である場合、図3に示したログイン情報テーブルの行301に記憶されているため、演算装置320はステップS101で取得したリクエストメッセージのURLが、ログイン情報データベース330の「ログイン情報が送付されるURL」に記憶されているログイン情報の送信先を示すURLであると判定する。
また、例えば、ログイン情報テーブルの「ログイン情報が送付されるURL」「http://www.example.com/login.cgi」に関連付けられている「パスワード識別子」が「param1」であり、ステップS101で取得したリクエストメッセージのメッセージボディのparam1の値が「xxxyyzzz」である場合、param1の値がパスワードであるため、演算装置320は、ステップS101でインターフェース310が受信したリクエストメッセージのメッセージボディに含まれているパスワード「xxxyyzzz」を抽出する。
(ステップS103)セキュリティ強化装置300のインターフェース310は、ステップS101で受信したリクエストメッセージを、Webアプリケーション201に転送する。Webアプリケーション201は、転送されたリクエストメッセージに含まれるパスワードが予めWebアプリケーションサーバ200の記憶部に登録されているパスワードである場合、ログインが成功したことを示すレスポンスメッセージをWebブラウザ101に送信する。
セキュリティ強化装置300のインターフェース310は、Webアプリケーション201からWebブラウザ101に送信するレスポンスメッセージを受信する。また、インターフェース310は、受信したレスポンスメッセージをWebブラウザ101に転送する。その後、ステップS104の処理に進む。
(ステップS104)演算装置320は、ステップS103でインターフェース310が受信したレスポンスメッセージのメッセージボディに、ステップS102で判定したURLと関連付けて記憶されている「ログイン成功画面に含まれる文字列」に記憶されている文字列と同一の文字列が含まれている場合、Webブラウザ101のログインが成功したと判定する。演算装置320が、Webブラウザ101のログインが成功したと判定した場合はステップS105の処理に進み、それ以外の場合にはステップS106の処理に進む。
例えば、ステップS101で取得したリクエストメッセージのURLが「www.example.com/login.cgi」である場合、図3に示したログイン情報テーブルの行301の「ログイン成功画面に含まれる文字列」に記憶されている文字列は「ようこそexampleへ」である。これは、ステップS103でインターフェース310が受信したレスポンスメッセージのメッセージボディに、「ようこそexampleへ」が含まれている場合、Webブラウザ101のログインが成功したことを示している。
よって、演算装置320は、ステップS101で取得したリクエストメッセージのURLが「www.example.com/login.cgi」であり、ステップS103でインターフェース310が受信したレスポンスメッセージのメッセージボディに、「ようこそexampleへ」が含まれている場合、Webブラウザ101のログインが成功したと判定する。
(ステップS105)演算装置320は、ステップS103でインターフェース310が受信したレスポンスメッセージのレスポンスヘッダから「セッションID」と「有効期限」を抽出する。続いて、演算装置320は、抽出した「セッションID」と「有効期限」と、「アクセス先(ステップS101で抽出した「ホスト名」)」と、ステップS102で抽出した「パスワード」とを関連付けてセッション管理データベース350のセッション管理テーブルに記憶させ、処理を終了する。
(ステップS106)演算装置320は、ステップS102で抽出して記憶部に記憶させた「パスワード」を記憶部から消去し、処理を終了する。
上述したとおり、ステップS101からステップS106の処理により、セキュリティ強化装置300は、Webブラウザ101のログイン時にWebブラウザ101からWebアプリケーション201に送信されるパスワードを抽出してログイン情報データベース330に記憶させることができる。
次に、Webブラウザ101から保護対象のURLで示されるWebアプリケーション201に情報を送信する際の、Webブラウザ101とセキュリティ強化装置300とWebアプリケーション201との動作手順について説明する。図11は、本実施形態において、Webブラウザ101から保護対象のURLで示されるWebアプリケーション201に情報を送信する際の、Webブラウザ101とセキュリティ強化装置300とWebアプリケーション201との動作手順を示したシーケンス図である。
(ステップS201)Webブラウザ101は、情報を送信するための入力画面の表示要求を含んだリクエストメッセージをWebアプリケーション201に送信する。
(ステップS202)セキュリティ強化装置300のインターフェース310は、Webブラウザ101からWebアプリケーション201宛に送信されたリクエストメッセージを受信する。演算装置320は、インターフェース310が受信したリクエストメッセージのURLを取得する。演算装置320は、取得したリクエストメッセージのURLが、ログイン情報データベース330の「ログイン情報が送付されるURL」または入力画面データベース340の「保護対象のURL」に記憶されているURLであるか否かを判定する。
ここでは、ステップS201で送信されたリクエストメッセージは、情報を送信するための入力画面の表示要求を含んだリクエストメッセージであるため、演算装置320は、取得したリクエストメッセージのURLが、ログイン情報データベース330の「ログイン情報が送付されるURL」または入力画面データベース340の「保護対象のURL」に記憶されているURLではないと判定する。
ステップS201で送信されたリクエストメッセージのURLが、ログイン情報データベース330の「ログイン情報が送付されるURL」または入力画面データベース340の「保護対象のURL」に記憶されているURLではないと演算装置320が判定したため、インターフェース310は、ステップS101で取得したリクエストメッセージをWebアプリケーション201に転送する。
(ステップS203)Webアプリケーション201は、転送されたリクエストメッセージに含まれる要求に基づいて処理を行う。ここでは、ステップS201でWebブラウザ101が送信したリクエストメッセージには情報を送信するための入力画面の表示要求が含まれているため、Webアプリケーション201は、情報の入力画面を表示させるためのレスポンスメッセージをWebブラウザ101に送信する。
(ステップS204)Webブラウザ101は、送信されたレスポンスメッセージに従って、情報を入力するための画面を表示する。Webブラウザ101のユーザは、情報を入力するための画面に情報を入力する。
(ステップS205)Webブラウザ101は、ステップS204で入力された情報を含んだリクエストメッセージをWebアプリケーション201に送信する。
(ステップS206)セキュリティ強化装置300のインターフェース310は、Webブラウザ101からWebアプリケーション201宛に送信されたリクエストメッセージを受信する。演算装置320は、インターフェース310が受信したリクエストメッセージのURLを取得する。演算装置320は、取得したリクエストメッセージのURLが、ログイン情報データベース330の「ログイン情報が送付されるURL」または入力画面データベース340の「保護対象のURL」に記憶されているURLであるか否かを判定する。
ここでは、ステップS205で送信されたリクエストメッセージは、保護対象のURLで示されたWebアプリケーション201宛に送信されたリクエストメッセージであるため、演算装置320は、取得したリクエストメッセージのURLが、入力画面データベース340の「保護対象のURL」に記憶されているURLであると判定する。
(ステップS207)ステップS205で取得したリクエストメッセージのURLが、入力画面データベース340の「保護対象のURL」に記憶されているURLであると演算装置320が判定したため、インターフェース310は、ステップS206で判定したURLと関連付けて記憶されている「パスワード再入力画面データ」に記憶されているパスワード再入力画面データをWebブラウザ101に送信する。
例えば、ステップS205で送信されたリクエストメッセージのURLが「http://www.example.JP・userinfo.cgi」である場合、このURLと関連付けられて図4に示した入力画面データベースに記憶されている「パスワード再入力画面データ」は「パスワード再入力画面データ(1)」である。そのため、インターフェース310は、「パスワード再入力画面データ(1)」をWebブラウザ101に送信する。
(ステップS208)Webブラウザ101は、送信されたパスワード再入力画面データに従って、Webアプリケーション201にログインした際に用いたパスワードを入力するためのパスワード再入力画面を表示する。Webブラウザ101のユーザは、パスワード再入力画面にパスワードを入力し、OKボタンをクリックする。
例えば、「パスワード再入力画面データ(1)」がセキュリティ強化装置300から送信された場合、Webブラウザ101は図6に示したパスワード再入力画面(1)を表示する。そして、Webブラウザ101のユーザは、パスワード再入力画面(1)のパスワード入力領域601に、Webアプリケーション201にログインした際に用いたパスワードを入力し、OKボタン602をクリックする。
(ステップS209)Webブラウザ101は、OKボタンがクリックされたため、ステップS208で入力されたパスワードをセキュリティ強化装置300に送信する。
(ステップS210)セキュリティ強化装置300のインターフェース310は、Webブラウザ101から送信されたパスワードを受信する。演算装置320は、インターフェース310が受信したパスワードが、ステップS206で取得したURLの「アクセス先(ホスト名)」と関連付けてセッション管理データベース350に記憶されている場合、ステップS205で保護対象のURLで示されたWebアプリケーション201宛に送信されたリクエストメッセージは、Webアプリケーション201にログインが成功したWebブラウザ101から送信されたリクエストメッセージであると判定する。
ここでは、ステップS209で送信されたパスワードが、ステップS206で取得したURLの「アクセス先(ホスト名)」と関連付けてセッション管理データベース350に記憶されているため、演算装置320は、ステップS205で送信されたリクエストメッセージは、Webアプリケーション201にログインが成功したWebブラウザ101から送信されたリクエストメッセージであると判定する。
(ステップS211)セキュリティ強化装置300のインターフェース310は、ステップS205で送信されたリクエストメッセージは、Webアプリケーション201にログインが成功したWebブラウザ101から送信されたリクエストメッセージであると演算装置320が判定したため、ステップS205で送信されたリクエストメッセージをWebアプリケーション201に転送する。
(ステップS212)Webアプリケーション201は、転送されたリクエストメッセージに含まれる要求に基づいて処理を行う。ここでは、Webアプリケーション201は、ステップS205でWebブラウザ101が送信したリクエストメッセージに含まれている情報に基づいて処理を行う。
(ステップS213)Webアプリケーション201は、リクエストメッセージに含まれている情報に基づいた処理が完了したため、処理が完了したことを通知する画面(確認画面)データを含んだレスポンスメッセージをWebブラウザ101に送信する。
(ステップS214)Webブラウザ101は、送信されたレスポンスメッセージに従って、処理が完了したことを通知する画面(確認画面)を表示する。
上述したとおり、ステップS201からステップS214の処理により、セキュリティ強化装置300は、Webブラウザ101から送信されたリクエストメッセージを保護対象のURLで示されるWebアプリケーション201に送信する前に、Webブラウザ101にパスワードの入力を行わせる。そして、Webブラウザ101に入力されたパスワードが、Webアプリケーション201へのログインが成功した際に用いたパスワードである場合に、インターフェース310は、リクエストメッセージを保護対象のURLで示されるWebアプリケーションに送信する。これにより、WebブラウザからWebアプリケーションに対する不正な情報の送信を防ぐことができる。
次に、セキュリティ強化装置300が、Webブラウザ101から保護対象のURLで示されるWebアプリケーション201に情報を送信する際に、Webアプリケーション201にログイン済みのWebブラウザ101から送信された情報のみをWebアプリケーション201に転送する手順について説明する。図12は本実施形態におけるセキュリティ強化装置300が、Webアプリケーション201にログイン済みのWebブラウザ101から送信された情報のみを保護対象のURLで示されるWebアプリケーション201に転送する手順を示したフローチャートである。
(ステップS301)セキュリティ強化装置300のインターフェース310は、Webブラウザ101からWebアプリケーション201宛に送信されたリクエストメッセージを受信する。演算装置320は、インターフェース310が受信したリクエストメッセージのURLを取得する。その後、ステップS302の処理に進む。例えば、リクエストメッセージリクエストヘッダの「host」に含まれているホスト名と、リクエストラインの「POST」に含まれているパスとを合わせたものがURLである。図8に示したリクエストメッセージのURLは、ホスト名「www.example.com」であり、パス「/cgi−bin/login.cgi」であるため、URLは「www.example.com/login.cgi」である。
(ステップS302)演算装置320は、ステップS301で取得したリクエストメッセージのURLが、入力画面データベース340の「保護対象のURL」に記憶されている情報の送信先を示すURLである場合、このURLに関連付けて「パスワード再入力画面データ」に記憶されているパスワード再入力画面データをWebブラウザ101に送信する。
例えば、ステップS301で送信されたリクエストメッセージのURLが「http://www.example.JP・userinfo.cgi」である場合、このURLと関連付けられて図4に示した入力画面データベースに記憶されている「パスワード再入力画面データ」は「パスワード再入力画面データ(1)」である。そのため、インターフェース310は、「パスワード再入力画面データ(1)」をWebブラウザ101に送信する。
(ステップS303)Webブラウザ101は、送信されたパスワード再入力画面データに従って、パスワードを入力するためのパスワード再入力画面を表示する。Webブラウザ101のユーザは、パスワード再入力画面にパスワードを入力する。Webブラウザ101は、入力されたパスワードをセキュリティ強化装置300に送信する。セキュリティ強化装置300のインターフェース310は、Webブラウザ101から送信されたパスワードを受信する。
演算装置320は、インターフェース310が受信したパスワードと、ステップS301で取得したURLの「アクセス先(ホスト名)」と関連付けてセッション管理データベース350に記憶されているパスワードとが一致するか否かを比較する。その後、ステップS304の処理に進む。
(ステップS304)演算装置320は、インターフェース310が受信したパスワードと、ステップS301で取得したURLの「アクセス先(ホスト名)」と関連付けてセッション管理データベース350に記憶されているパスワードとが一致した場合、ステップS301で送信されたリクエストメッセージは、Webアプリケーション201にログインが成功したWebブラウザ101から送信されたリクエストメッセージであると判定する。ステップS301で送信されたリクエストメッセージは、Webアプリケーション201にログインが成功したWebブラウザ101から送信されたリクエストメッセージであると演算装置320が判定した場合、ステップS305の処理に進み、それ以外の場合にはステップS306の処理に進む。
(ステップS305)ステップS301で送信されたリクエストメッセージは、Webアプリケーション201にログインが成功したWebブラウザ101から送信されたリクエストメッセージであると演算装置320が判定したため、セキュリティ強化装置300のインターフェース310は、ステップS301で送信されたリクエストメッセージを保護対象のURLで示されるWebアプリケーション201に転送する。その後、処理を終了する。
(ステップS306)ステップS301で送信されたリクエストメッセージは、Webアプリケーション201にログインが成功していないWebブラウザ101から送信されたリクエストメッセージであると演算装置320が判定したため、セキュリティ強化装置300のインターフェース310は、エラー処理を行う。その後、処理を終了する。例えば、エラー処理としては、演算装置320はステップS301で送信されたリクエストメッセージを消去し、Webブラウザ101にエラーメッセージを表示させる。
上述したとおり、本実施形態のセキュリティ強化装置300は、Webブラウザ101のログイン時にWebブラウザ101からWebアプリケーション201に送信されるパスワードを抽出してログイン情報データベース330に記憶させる。そして、セキュリティ強化装置300は、Webブラウザ101から送信されたリクエストメッセージを保護対象のURLで示されるWebアプリケーション201に送信する前に、Webブラウザ101にパスワードの入力を行わせる。
そして、Webブラウザ101に入力されたパスワードが、Webアプリケーション201へのログインが成功した際に用いたパスワードである場合に、インターフェース310は、リクエストメッセージを保護対象のURLで示されるWebアプリケーション201に送信する。これにより、Webブラウザ101から保護対象のURLで示されるWebアプリケーション201に対する不正な情報の送信を防ぐことができる。
なお、例えば、Webブラウザ101に入力されたパスワードが、Webアプリケーション201へのログインが成功した際に用いたパスワードであるか否かの判定には、ログイン情報データベース330に記憶させたパスワードと比較し、一致した場合はWebアプリケーション201へのログインが成功した際に用いたパスワードであると判定する。
また、本実施形態のセキュリティ強化装置300は、Webブラウザ101からWebアプリケーション201に送信される情報がログイン情報を含んだリクエストメッセージである場合、リクエストメッセージをWebアプリケーション201に送信して、Webアプリケーション201からリクエストメッセージに対するレスポンスメッセージを受信する。また、セキュリティ強化装置300は、レスポンスメッセージに含まれる文字列にログインが成功したことを示す文字列が含まれている場合、リクエストメッセージのログイン情報に含まれるパスワードをWebアプリケーション201のアクセス先を示す情報と関連付けてログイン情報データベース330に記憶させる。
これにより、セキュリティ強化装置300は、Webブラウザ101がWebアプリケーション201へのログインが成功した際に用いたパスワードをログイン情報データベース330に記憶させることができるため、予めパスワードをログイン情報データベース330に記憶させることなく、Webブラウザ101からWebアプリケーション201に対する不正な情報の送信を防ぐことができる。
(第2の実施形態)
以下、本発明のセキュリティ強化装置の第2の実施形態について図面を参照して説明する。本実施形態のセキュリティ強化装置と第1の実施形態におけるセキュリティ強化装置とで異なる点は、本実施形態のセキュリティ強化装置は、パスワード変更情報データベース360を備えている点である。なお、本実施形態におけるセキュリティ強化装置を含んだWebシステムの構成は、第1の実施形態におけるセキュリティ強化装置を含んだWebシステムの構成と同様の構成である。
図13は、本実施形態におけるセキュリティ強化装置500の構成を示したブロック図である。図示する例では、セキュリティ強化装置500は、インターフェース310と、演算装置320と、ログイン情報データベース330と、入力画面データベース340と、セッション管理データベース350と、パスワード変更情報データベース360を備えている。
パスワード変更情報データベース360は、パスワード変更情報テーブルを記憶する。なお、インターフェース310と、演算装置320と、ログイン情報データベース330と、入力画面データベース340と、セッション管理データベース350とは、第1の実施形態における各部と同様である。
次に、パスワード変更情報データベース360が記憶するパスワード変更情報テーブルについて説明する。図14は、本実施形態におけるパスワード変更情報テーブルのデータ構造を示した概略図である。
図示する例では、パスワード変更情報テーブルは表形式のデータ構造を有しており、「パスワード変更情報が送付されるURL」と、「パスワード識別子」と、「パスワードの変更成功画面に含まれる文字列」とのデータ項目を有する。また、パスワード変更情報テーブルは、各データ項目の情報を行毎に関連付けて記憶している。
「パスワード変更情報が送付されるURL」は、Webブラウザ101から送信されるパスワード変更情報を含んだリクエストメッセージの送付先を示すURLである。「パスワード識別子」は、リクエストメッセージのメッセージボディに含まれるパスワードを示す識別子である。「パスワードの変更成功画面に含まれる文字列」は、パスワードの変更が成功した場合に、Webアプリケーションから送信されるレスポンスメッセージのメッセージボディに含まれる文字列を示している。
次に、パスワード変更情報テーブルの各行が示す内容について説明する。例えば、行1401に示す例では、Webブラウザ101から送信されるパスワード変更情報を含んだリクエストメッセージの送付先が「http://www.example.jp/change.cgi」である場合、このリクエストメッセージのメッセージボディに含まれるパスワードは「param1」の値である。また、このリクエストメッセージによるパスワードの変更が成功した場合には、Webアプリケーション201から送信されるレスポンスメッセージのメッセージボディに「パスワードを変更しました」が含まれていることを示している。なお、他の行に示す例は図示するとおりである。
次に、セキュリティ強化装置500が、Webブラウザ101からWebアプリケーション201に送信されるパスワードの変更メッセージを含んだリクエストメッセージに含まれる変更後のパスワードを抽出してログイン情報データベース330に記憶させる手順について説明する。図15は、本実施形態におけるセキュリティ強化装置500が、Webブラウザ101からWebアプリケーション201に送信されるパスワードの変更メッセージを含んだリクエストメッセージに含まれる変更後のパスワードを抽出してログイン情報データベース330に記憶させる手順を示したフローチャートである。
(ステップS401)セキュリティ強化装置500のインターフェース310は、Webブラウザ101からWebアプリケーション201宛に送信されたリクエストメッセージを受信する。演算装置320は、インターフェース310が受信したリクエストメッセージのURLを取得する。その後、ステップS402の処理に進む。例えば、リクエストメッセージリクエストヘッダの「host」に含まれているホスト名と、リクエストラインの「POST」に含まれているパスとを合わせたものがURLである。例えば、リクエストメッセージに含まれるホスト名は「www.example.com」であり、パスは「change.cgi」である場合、URLは「www.example.com/change.cgi」である。
(ステップS402)演算装置320は、ステップS401で取得したリクエストメッセージのURLが、パスワード変更情報データベース360の「パスワード変更情報が送付されるURL」に記憶されているパスワード変更情報の送信先を示すURLである場合、ステップS401でインターフェース310が受信したリクエストメッセージのメッセージボディに含まれている変更後のパスワードを抽出し、記憶部に記憶させる。その後、ステップS403の処理に進む。
例えば、ステップS401で取得したリクエストメッセージのURLが「www.example.com/change.cgi」である場合、図14に示したパスワード変更情報テーブルの行1401に記憶されているため、演算装置320はステップS401で取得したリクエストメッセージのURLが、パスワード変更情報データベース360の「パスワード変更情報が送付されるURL」に記憶されているパスワード変更情報の送信先を示すURLであると判定する。
また、例えば、パスワード変更情報テーブルの「パスワード変更情報が送付されるURL」「www.example.com/change.cgi」に関連付けられている「パスワード識別子」が「param1」であり、ステップS401で取得したリクエストメッセージのメッセージボディのparam1の値が「xxxyyzzz」である場合、param1の値がパスワードであるため、演算装置320は、ステップS401でインターフェース310が受信したリクエストメッセージのメッセージボディに含まれているパスワード「xxxyyzzz」を抽出する。
(ステップS403)セキュリティ強化装置500のインターフェース310は、ステップS401で受信したリクエストメッセージを、Webアプリケーション201に転送する。Webブラウザ101がWebアプリケーション201へのログインに使用するパスワードが転送されたリクエストメッセージに含まれる変更後のパスワードに変更された場合、Webアプリケーション201は、パスワードを変更したことを示すレスポンスメッセージをWebブラウザ101に送信する。
セキュリティ強化装置500のインターフェース310は、Webアプリケーション201からWebブラウザ101に送信するレスポンスメッセージを受信する。また、インターフェース310は、受信したレスポンスメッセージをWebブラウザ101に転送する。その後、ステップS404の処理に進む。
(ステップS404)演算装置320は、ステップS403でインターフェース310が受信したレスポンスメッセージのメッセージボディに、ステップS402で判定したURLと関連付けて記憶されている「パスワードの変更成功画面に含まれる文字列」に記憶されている文字列と同一の文字列が含まれている場合、Webブラウザ101がWebアプリケーション201へのログインに使用するパスワードの変更が成功したと判定する。Webブラウザ101がWebアプリケーション201へのログインに使用するパスワードの変更が成功したと演算装置320が判定した場合はステップS405の処理に進み、それ以外の場合には処理を終了する。
例えば、ステップS401で取得したリクエストメッセージのURLが「www.example.com/change.cgi」である場合、図14に示したパスワード変更情報テーブルの行1401の「パスワードの変更成功画面に含まれる文字列」に記憶されている文字列は「パスワードを変更しました」である。これは、ステップS403でインターフェース310が受信したレスポンスメッセージのメッセージボディに、「パスワードを変更しました」が含まれている場合、Webブラウザ101がWebアプリケーション201へのログインに使用するパスワードの変更が成功したことを示している。
よって、演算装置320は、ステップS101で取得したリクエストメッセージのURLが「www.example.com/change.cgi」であり、ステップS403でインターフェース310が受信したレスポンスメッセージのメッセージボディに、「パスワードを変更しました」が含まれている場合、Webブラウザ101がWebアプリケーション201へのログインに使用するパスワードの変更が成功したと判定する。
(ステップS405)演算装置320は、ステップS403でインターフェース310が受信したレスポンスメッセージのレスポンスヘッダから「セッションID」と「有効期限」を抽出する。続いて、演算装置320は、セッション管理データベース350に、抽出した「セッションID」と「アクセス先(ステップS401で抽出した「ホスト名」)」とに関連付けられて記憶されている「パスワード」を、ステップS402で抽出したパスワードに変更して記憶させる。その後、処理を終了する。
上述したとおり、ステップS401からステップS405の処理により、セキュリティ強化装置500は、Webブラウザ101がWebアプリケーション201へのログインに用いるパスワードが変更された場合においても、Webブラウザ101からWebアプリケーション201に送信される変更後のパスワードを抽出してログイン情報データベース330に記憶させることができる。これにより、セキュリティ強化装置500は第1の実施形態のセキュリティ強化装置300と同様の動作を行うことで、Webブラウザ101からWebアプリケーション201に対する不正な情報の送信を防ぐことができる。
なお、上述した第1の実施形態および第2の実施形態におけるセキュリティ強化装置が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の第1の実施形態および第2の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
100・・・端末装置、101・・・Webブラウザ、200・・・Webアプリケーションサーバ、201・・・Webアプリケーション、300,500・・・セキュリティ強化装置、310・・・インターフェース、320・・・演算装置、330・・・ログイン情報データベース、340・・・入力画面データベース、350・・・セッション管理データベース、360・・・パスワード変更情報データベース、400・・・ネットワーク

Claims (3)

  1. Webブラウザが動作する端末装置と、Webアプリケーションが動作するサーバ装置と、セキュリティ強化装置とが通信可能なネットワークで接続しているWebシステムにおけるセキュリティ強化装置であって、
    前記Webアプリケーションおよび前記Webブラウザとデータの送受信を行う通信部と、
    前記Webブラウザが前記Webアプリケーションにログインする際に用いるパスワードを、当該Webアプリケーションのアクセス先を示す情報と関連付けて記憶するログイン情報データベースと、
    前記Webブラウザから前記Webアプリケーションに送信されるリクエストメッセージの送信先が特定の送信先である場合、当該Webブラウザに前記パスワードの送信を要求し、当該Webブラウザから送信された前記パスワードが当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されているか否かを判定する判定部と、
    前記判定部によって、当該Webブラウザから送信された前記パスワードは当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されていると判定された場合、前記リクエストメッセージを前記特定の送信先である前記Webアプリケーションに前記通信部を介して送信する制御部と、
    を備えたことを特徴とするセキュリティ強化装置。
  2. 前記通信部は、Webブラウザから前記Webアプリケーションに送信される情報がログイン情報を含んだリクエストメッセージである場合、当該リクエストメッセージを前記Webアプリケーションに送信して、当該Webアプリケーションから当該リクエストメッセージに対するレスポンスメッセージを受信し、
    前記制御部は、前記レスポンスメッセージに含まれる文字列にログインが成功したことを示す文字列が含まれている場合、前記リクエストメッセージのログイン情報に含まれる前記パスワードを当該Webアプリケーションのアクセス先を示す情報と関連付けて前記ログイン情報データベースに記憶させる
    ことを特徴とする請求項1に記載のセキュリティ強化装置。
  3. Webブラウザが動作する端末装置と、Webアプリケーションが動作するサーバ装置と、セキュリティ強化装置とが通信可能なネットワークで接続しているWebシステムにおけるセキュリティ強化方法であって、
    通信部が、前記Webアプリケーションおよび前記Webブラウザとデータの送受信を行う通信ステップと、
    ログイン情報データベースが、前記Webブラウザが前記Webアプリケーションにログインする際に用いるパスワードを、当該Webアプリケーションのアクセス先を示す情報と関連付けて記憶するログイン情報記憶ステップと、
    判定部が、前記Webブラウザから前記Webアプリケーションに送信されるリクエストメッセージの送信先が特定の送信先である場合、当該Webブラウザに前記パスワードの送信を要求し、当該Webブラウザから送信された前記パスワードが当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されているか否かを判定する判定ステップと、
    前記判定ステップで、当該Webブラウザから送信された前記パスワードは当該Webアプリケーションのアクセス先を示す情報と関連付けられて前記ログイン情報データベースに記憶されていると判定された場合、制御部が、前記リクエストメッセージを前記特定の送信先である前記Webアプリケーションに前記通信部を介して送信する制御ステップと、
    を含んだことを特徴とするセキュリティ強化方法。
JP2009271641A 2009-11-30 2009-11-30 セキュリティ強化装置およびセキュリティ強化方法 Pending JP2011113467A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009271641A JP2011113467A (ja) 2009-11-30 2009-11-30 セキュリティ強化装置およびセキュリティ強化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009271641A JP2011113467A (ja) 2009-11-30 2009-11-30 セキュリティ強化装置およびセキュリティ強化方法

Publications (1)

Publication Number Publication Date
JP2011113467A true JP2011113467A (ja) 2011-06-09

Family

ID=44235726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009271641A Pending JP2011113467A (ja) 2009-11-30 2009-11-30 セキュリティ強化装置およびセキュリティ強化方法

Country Status (1)

Country Link
JP (1) JP2011113467A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015501996A (ja) * 2011-12-16 2015-01-19 インテル・コーポレーション リモートサーバーに対するセキュアなユーザ認証および証明
JP2020109563A (ja) * 2019-01-04 2020-07-16 株式会社Ihi 組込制御装置及び組込制御装置の処理要求認証方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015501996A (ja) * 2011-12-16 2015-01-19 インテル・コーポレーション リモートサーバーに対するセキュアなユーザ認証および証明
JP2020109563A (ja) * 2019-01-04 2020-07-16 株式会社Ihi 組込制御装置及び組込制御装置の処理要求認証方法
JP7205232B2 (ja) 2019-01-04 2023-01-17 株式会社Ihi 組込制御装置及び組込制御装置の処理要求認証方法

Similar Documents

Publication Publication Date Title
US8918853B2 (en) Method and system for automatic recovery from lost security token on embedded device
JP4616352B2 (ja) ユーザ確認装置、方法及びプログラム
AU2009294201B2 (en) Authorization of server operations
US9294479B1 (en) Client-side authentication
EP2144420A1 (en) Web application security filtering
US20110296038A1 (en) System and method for continuation of a web session
JP4964338B2 (ja) ユーザ確認装置、方法及びプログラム
JP2005512247A (ja) ネットワークユーザ認証システムおよび方法
JP4960738B2 (ja) 認証システム、認証方法および認証プログラム
JP4637773B2 (ja) 個人情報保護プログラムおよび端末
JP2008181310A (ja) 認証サーバおよび認証プログラム
JP6430689B2 (ja) 認証方法、端末およびプログラム
US20140068787A1 (en) Instant account access after registration
JP2008146363A (ja) コンピュータネットワークにおける認証方法
JP5456842B2 (ja) ユーザ確認装置、方法及びユーザ認証システム
JP2011113467A (ja) セキュリティ強化装置およびセキュリティ強化方法
JP2005267529A (ja) ログイン認証方式、ログイン認証システム、認証プログラム、通信プログラムおよび記憶媒体
JP6325654B2 (ja) ネットワークサービス提供装置、ネットワークサービス提供方法、及びプログラム
JP5336262B2 (ja) ユーザ認証システムおよびユーザ認証方法
JP2012159980A (ja) 識別情報の不正な取得を防止するためのサーバ
CN106470186A (zh) 一种以跳转方式访问第三方资源的方法
JP2007323235A (ja) 属性利用承認システム
JP2013251000A (ja) ユーザ確認装置、方法及びプログラム
US8850032B2 (en) System and method of resolving a domain name
JP2010238060A (ja) 認証システム、中継サーバ、及び中継サーバの認証プログラム