JP6394326B2 - 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム Download PDF

Info

Publication number
JP6394326B2
JP6394326B2 JP2014238662A JP2014238662A JP6394326B2 JP 6394326 B2 JP6394326 B2 JP 6394326B2 JP 2014238662 A JP2014238662 A JP 2014238662A JP 2014238662 A JP2014238662 A JP 2014238662A JP 6394326 B2 JP6394326 B2 JP 6394326B2
Authority
JP
Japan
Prior art keywords
request
server
token
information processing
communication
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.)
Active
Application number
JP2014238662A
Other languages
English (en)
Other versions
JP2016099924A (ja
Inventor
昌志 平崎
昌志 平崎
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2014238662A priority Critical patent/JP6394326B2/ja
Publication of JP2016099924A publication Critical patent/JP2016099924A/ja
Application granted granted Critical
Publication of JP6394326B2 publication Critical patent/JP6394326B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、セキュリティ対策が施されたサーバ装置に対して、任意のリクエストを送信可能とする情報処理装置等に関する。
近年、通信ネットワーク技術の普及に伴い、様々なサービスがインターネット等の通信ネットワークを介して提供されおり、WWW(World Wide Web)を用いて各種サービス(Webサービス)を提供するWebサイトが増大している。
このようなWebサイトの増加に伴い、係るWebサイトあるいは、Webサイトが提供するサービスのユーザを標的とした攻撃も増加傾向にある。このような攻撃の一つとして、リクエスト強要(Cross−site Request Forgery、以下CSRFと称する)と呼ばれる攻撃手法がある。
CSRF攻撃は、Webサイトに仕掛けられた罠(攻撃用)のリンク等をユーザにアクセスさせることにより、当該ユーザが接続している別のWebサイトに対して、意図しない通信データであるリクエスト(例えば、HTTP(Hyper Text Transfer Protcol)リクエスト)の発行や、Webアプリケーションに対する操作の実行等を強要する攻撃手法である。
CSRF攻撃の具体例として、ユーザが利用するクライアント(Webブラウザ等)とWebサイトを構成するサーバ(以下単に「サーバ」と称する場合がある)との間のセッション情報を用いて、当該サーバに対して不正なHTTPリクエスト送信を行う攻撃がある。係るセッション情報は、例えば、クライアントとWebサイトとの間の通信セッションにおいて認証処理(以下「Web認証」と称する)が実行済みであることを識別可能なデータであり、Cookieデータ等により、サーバとクライアントとの間で共有される。
このような攻撃を抑制し、ユーザが意図しない不正なリクエストを受け付けないように、WebサイトにおいてCSRF攻撃に対する対策が実施される場合がある。この場合、Webサイトを構成するサーバは、クライアントに対して、サーバが受信したリクエストの正当性を検証(認証)する際に用いられる情報である認証用トークン(以下「CSRFトークン」と称する)を含むコンテンツを提供(通知)する。換言すると、係る認証用トークンは、クライアントからサーバに送信されたリクエストの正当性を表す情報であり、係る認証トークンを検証(認証)することにより、サーバは、リクエストの正当性を確認可能である。これにより、サーバと、クライアントとの間の通信においては、セッション情報とは別に、係る認証用トークン(CSRFトークン)が送受信される。
より具体的には、例えば、サーバが、CSRFトークンをhiddenフィールドとして含むコンテンツ(例えばHTMLにより記述されたドキュメント等)をクライアントに提供する。そして、サーバは、クライアントから受け付けるリクエストに正しいCSRFトークンが含まれているか否かに基づいて、係るリクエストの正当性を認証する。CSRFトークンが不正である場合、サーバは、係る不正なCSRFトークンを含むリクエストを排除する。このようなCSRF対策が行われることで、正しいCSRFトークンが含まれない任意のリクエストが、サーバ側で排除される。
このようなCSRF対策に関連して、例えば、以下のような特許文献が開示されている。
特許文献1(特開2013−134655号公報)は、ウェブ・アプリケーションにおいて、CSRF攻撃に対する脆弱性対策を施す技術を開示する。特許文献1に開示された技術は、CSRF対策のためにコンテンツに設定される認証用トークンを、サーバとクライアントとの間で共有されるセッションID(Identifier:識別情報)と、サーバ側で保持する管理値から算出する。これにより、特許文献1に開示された技術は、サーバ側で認証用のID自体をメモリに保持することなく、クライアントから送信されたリクエストに付与された認証用トークンの正当性を確認可能である。
特許文献2(特開2013−003820号公報)は、上記特許文献1と同様、CSRF対策のためにコンテンツに埋め込まれるトークンを、サーバとクライアントとの間で共有されるCookieと、サーバ側で保持する隠しキーとを用いて算出する技術を開示する。
特許文献3(特開2010−165079号公報)は、サーバと通信網を介して接続されたユーザ端末とを含む通信ネットワークにおいて、ユーザ端末が特定のサーバにログインしている場合に、当該ユーザ端末から他のサーバに対するリクエストを遮断する技術を開示する。特許文献3に開示された技術は、ユーザ端末が特定のサーバにログインしている場合、他のサーバに対するリクエストの送信を一律に制限することから、不正なリクエストの送信を一律に抑制可能である。
特開2013−134655号公報 特開2013−003820号公報 特開2010−165079号公報
上記説明したように、Webサーバ又はWebアプリケーションにおいて、CSRF対策を実施することはセキュリティの観点から重要である。しかしながら、係る対策を実施した場合、ユーザが意図した正当なリクエストであっても、正しいCSRFトークンが含まれない場合には、係る正当なリクエストはサーバ側でガード(排除)されてしまう。
ユーザがサーバ(Webサイト)に対して任意のリクエストを発行(送信)する場合、当該リクエストに正しいCSRFトークンを含められるとは限らない。多くの場合、CSRFトークンはサーバ側で生成され、攻撃者に推測されないような値(例えば、ランダムな値)が設定される。これより、ユーザが意図的に、CSRFトークンが含まれるコンテンツを介さずに任意のリクエストをサーバに送信しようとしても、当該CSRFトークンの取得が困難であり、結果として正当なリクエストを送信できない場合がある。この場合、ユーザの利便性が低下するという問題がある。また、CSRFトークンが含まれるコンテンツを取得したWebブラウザ等において任意のリクエストを実行可能なアプリケーションを提供することは、他のセキュリティ問題(例えば、XSS(Cross Site Scripting)等)に対する対策の観点から、必ずしも望ましいとはいえない。
これに対して、上記特許文献1及び特許文献2は、いずれも周知のCSRF対策におけるCSRFトークンの算出及び検証方法に関する技術を開示するのみであり、上記説明したような問題を解決可能な技術ではない。また、上記特許文献3に開示された技術は、送信制限を実施する中継装置によって、クライアントからサーバに送信されるリクエストを遮断する技術であり、上記問題を解決可能な技術ではない。
本発明は、上記のような事情を鑑みてなされたものである。即ち、本発明は、サーバから提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、当該サーバに対して任意のリクエストを発行可能な情報処理装置等を提供することを主たる目的とする。
上記の目的を達成すべく、本発明の一態様に係る情報処理装置は、以下の構成を備える。即ち、本発明の一態様に係る情報処理装置は、通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第1のトークンを含む通信データを受信する第1の通信処理手段と、上記第1の通信処理手段が保持する上記第1のトークンを含む上記リクエストを生成し、当該生成した上記リクエストを上記サーバに対して送信可能な、上記第1の通信処理手段とは異なる第2の通信処理手段と、を備える。
また、本発明の一態様に係る情報処理方法は、以下の構成を備える。即ち、本発明の一態様に係る情報処理方法は、情報処理装置が、通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第1のトークンを含む通信データを第1の通信処理手段を用いて受信し、上記第1の通信処理手段が保持する上記第1のトークンを含む上記リクエストを生成し、上記第1の通信処理手段とは異なる第2の通信処理手段を用いて、生成した上記リクエストを上記サーバに対して送信する。
また、同目的は、上記構成を有する情報処理装置、並びに対応する情報処理方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体等によっても達成される。
本発明によれば、サーバから提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、当該サーバに対して任意のリクエストを発行可能な情報処理装置等を提供可能である。
図1は、本発明の第1の実施形態におけるユーザ端末及びサーバ装置の機能的な構成を例示するブロック図である。 図2は、本発明の第1の実施形態における第2のクライアント及びスクリプトが提供する機能を例示する図である。 図3は、本発明の第1の実施形態における第2のクライアントの機能的な構成を例示するブロック図である。 図4は、本発明の第1の実施形態におけるWebサーバの機能的な構成を例示するブロック図である。 図5は、本発明の第1の実施形態におけるユーザ端末及びサーバ装置の動作を例示するシーケンス(その1)である。 図6は、本発明の第1の実施形態におけるユーザ端末及びサーバ装置の動作を例示するシーケンス(その2)である。 図7は、本発明の第1の実施形態におけるユーザ端末及びサーバ装置の動作を例示するシーケンス(その3)である。 図8は、本発明の第2の実施形態における情報処理装置の機能的な構成を例示するブロック図である。 図9は、本発明の各実施形態に係る情報処理装置を実現可能なハードウェアの構成を例示する図である。
次に、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は単なる例示であり、本発明の技術範囲はそれらには限定されない。また、以下の各実施形態において説明する情報処理装置は、専用のハードウェア装置により実現されてもよく、1以上の物理的なコンピュータ又は仮想的なコンピュータ又はそれらの組合せを用いて実現されたシステムとして実現されてもよい。なお、係る情報処理装置を実現可能なハードウェア構成については後述する。
本発明の各実施形態に関する説明に先立って、本発明の理解を容易にするため、本発明に関する技術的背景及び課題について詳細に説明する。
情報通信技術の発達に伴い、上記説明したようなWebサービスあるいはWebアプリケーションが組み込まれた情報機器が普及している。より具体的には、例えば、各種サーバ装置などを構成する情報処理装置(コンピュータ等)を制御可能なBMC(Base Board Management Controller:ベースボードマネージメントコントローラ)に、Webサーバ機能が実装される場合がある。
係るBMCは、例えば、情報処理装置にファームウェア(例えば、ベースボードに組み込まれるファームウェア)等の形式で組み込まれ、情報処理装置に関する電源制御、センサ監視、及び、各種情報取得等を実行する。係るBMCがWebサーバ機能を有する場合、当該Webサーバに対するリクエスト(HTTPリクエスト)を用いて、係る情報処理装置の操作、あるいは、情報取得が可能である。この場合、係るリクエストには、例えば、BMCに対する各種制御コマンド等が含まれてもよい。
Webサーバ機能を有するBMCにおいて、上記した周知のCSRF対策が実施された場合、正当なCSRFトークンを含まないリクエストは、Webサーバによって排除される。即ち、係るCSRF対策が実施された場合、BMCに対して任意のリクエスト(HTTPリクエスト)を用いた各種コマンドの発行、及び、情報取得が自由に行えない場合がある。なお、この場合の任意のリクエストは、例えば、BMCサーバに対して、CSRFトークンが設定されたコンテンツ(例えば、”hidden”フィールドにCSRFトークンが設定されたHTMLのフォーム等)を介さずに送信するリクエストである。
より具体的には、この場合、Webサーバから直接CSRFトークンを提供されたクライアント(例えばWebブラウザ等のアプリケーション)や、CSRFトークンが設定コンテンツ等を介さずに、直接BMCのWebサーバに対して、任意のリクエストを送信することが困難になる。これにより、ユーザの利便性が損なわれる場合がある。
以上を鑑みて、以下に説明する各実施形態においては、Webサーバ機能を有するBMCを具体例として、サーバから提供される、当該サーバに送信されたリクエストの正当性を表す情報(CSRFトークン)を用いることにより、当該サーバに対して任意のリクエストを発行可能とする技術について説明する。なお、本発明はこれには限定されず、BMC以外の任意のWebサーバに適用可能である。
<第1の実施形態>
以下、本発明の第1の実施形態について説明する。なお、以下においては、Webサーバ機能を提供するBMCを有するサーバ装置と、当該Webサーバに対して各種リクエストを送信するクライアント装置(ユーザ端末)とにより構成されるシステムを具体例として説明する。
図1は、本実施形態におけるクライアント端末101及びサーバ装置102の機能的な構成の具体例を示すブロック図である。図1に例示するように、本実施形態においては、ユーザ端末101と、BMC103を備えたサーバ装置102とが、任意の通信ネットワークを介して相互に通信可能に接続される。
ユーザ端末101とサーバ装置102とを接続する通信ネットワークは、インターネット等の広域ネットワークであってもよく、LAN(Local Area Network)等の構内ネットワークであってもよい。なお、本実施形態においては、ユーザ端末101と、サーバ装置102との間はIP(Internet Protocol)プロトコルを用いて通信可能であることを仮定する。また、ユーザ端末101と、サーバ装置102(特には後述するWebサーバ103a)との間は、HTTPプロトコルによる各種リクエストが送受信可能であることを仮定する。
ユーザ端末101は、後述するサーバ装置102と、通信ネットワーク(通信回線)を介して通信可能に接続された情報処理装置である。係るユーザ端末は、例えば、通信機能を有する任意の情報処理装置(例えば、各種コンピュータ、携帯情報端末等)であってもよい。
ユーザ端末101は、Webブラウザ101aを有する。Webブラウザ101aにおいて動作するWebクライアント101b、スクリプト101c、及び、ユーザ端末101aにおいて実行される第2のクライアントプログラム(以下、単に「第2のクライアント」と称する)101dは、後述するサーバ装置102におけるBMC103から取得される。
Webブラウザ101aは、Webサーバにより提供される各種コンテンツを解釈可能なソフトウェア・プログラム(各種のコンピュータ・プログラム)である。Webブラウザ101aは、現在では広く知られた周知のブラウザ・アプリケーションであってよい。なお、Webブラウザ101aは、後述するユーザ104が利用可能なUI(User Interface、ユーザインタフェース)を備えたアプリケーションとして提供されてもよい。また、Webブラウザ101aは、通信処理及びコンテンツ解釈処理の機能を提供するライブラリとして提供されてもよい。
Webブラウザ101aは、後述するWebサーバ103aに対してWebクライアント101b及び、スクリプト101cを取得するリクエストを発行することにより、これらを取得(受信)する。この際、Webブラウザ101aと、Webサーバ103aとの間では認証処理が実行され、認証済みのセッションであることを表すCookie(セッション情報)、及び、CSRFトークンが発行されてもよい。係るCookieは、Webブラウザ101aに設定されてもよい。係るCSRFトークンは、取得されたコンテンツ(例えば、Webクライアント101b)に設定されてもよい。Webブラウザ101aが、Webサーバ103aに対してリクエスト(HTTPリクエスト)を送信する際には、係るCookieとCSRFトークンとが通信データに付加される。なお、係る認証処理、Cookie及びCSRFトークンの発行は、後述するWebクライアント101bとWebサーバ103aとの間で実行されてもよい。
Webクライアント101bは、ユーザ104からの要求に応じて、後述するWebサーバ103aとの間で各種リクエストの送信及びレスポンスの受信を実行する。また、Webクライアント101bは、後述するスクリプト101cを含み、係るスクリプト101cに実装された処理を実行する。Webクライアント101bは、例えば、サーバ装置102におけるBMC103においてコンテンツ103bとして保持され、上記Webブラウザ101aにより、サーバ103aを介して取得される。
Webクライアント101bは、例えば、Webブラウザ101aにおいて解釈及び実行されるコンテンツとして実現可能である。この場合、係るコンテンツは、HTML(HyperText Markup Language)等により記述されたドキュメントであってもよい。また、係るコンテンツは、例えば、JavaScript(登録商標)、Java(登録商標)等のプログラム記述言語により記述された、ユーザ端末101側で実行されるプログラム(コンピュータ・プログラム)であってもよい。また、係るコンテンツは、例えば、Webサーバ103aにおいて処理されるCGI(Common Gateway Interface)、JSP(Java Server Pages)等を利用する処理を含んでもよい。
Webクライアント101bは、Webブラウザ101aの機能を用いて、Webサーバ103aとの間の通信処理を実行してもよい。
スクリプト101cは、Webクライアント101cに含まれるコンテンツであり、Webクライアント101cの一部として実現されてもよい。スクリプト101cは、例えば、BMC103においてスクリプト103cとして保持され、上記Webブラウザ101aにより、サーバ103aを介して取得される。
スクリプト101c(スクリプト103c)は図2に例示するように、以下の機能を備える。これらの機能は、それぞれの機能を実現する処理を実装したプログラムにより実現可能である。なお、スクリプト101cとスクリプト103cとは同様としてよい。
・CSRFトークンを取得する機能(図2の201)、
・第2のクライアントプログラムを取得する機能(図2の202)、
・CSRFトークンを提供して、第2のクライアントプログラムを起動する機能(図2の203)。
Webクライアント101bは、上記説明したスクリプト101cの機能を用いて、ユーザ104からの要求に応じて、Webサーバ103aから第2のクライアント101dを取得し、取得した第2のクライアント101dを起動する。この際、Webクライアント101b(スクリプト101c)は、第2のクライアント101dに対して上記CSRFトークンを提供する。
例えば、第2のクライアント101dがJava(登録商標)等により実装されたプログラムとして実現される場合、Webクライアント101bは、係るプログラムを起動する際に引数としてCSRFトークンを指定してもよい。より具体的には、例えば、Webクライアント101bは、Java(登録商標)プログラム(アプレット等)の起動タグにCSRFトークンを含むHTMLを動的に生成し、係るHTMLをロードすることにより、第2のクライアント101dを起動してもよい。なお、本実施形態はこれには限定されず、第2のクライアント101dを起動する方法、及び、第2のクライアントに対してCSRFトークンを提供する方法は、当該第2のクライアントの具体的な実装等に応じて、適宜選択してよい。
第2のクライアント101dは、ユーザ端末101において実行可能なプログラム(コンピュータ・プログラム)であり、Webサーバ103aとの間で各種リクエストの送信及びレスポンスの受信を実行する。第2のクライアント101dは、例えば、Java(登録商標)などのプログラム記述言語により実装されたプログラムであってもよい。第2のクライアント101dは、例えば、BMC103において第2のクライアント103dとして保持され、上記Webブラウザ101aにより、サーバ103aを介して取得される。
第2のクライアント101d(第2のクライアント103d)は、図2に例示するように、以下の機能を備える。なお、第2のクライアント101dと第2のクライアント103dとは同様としてよい。
・任意のクエスト(HTTPリクエスト)の作成に用いる情報の入力を受け付ける機能(図2の204)、
・入力情報を元に任意のリクエストを生成する機能(図2の205)、
・任意のリクエスト発行(送信)時にCSRFトークンを付加する機能(図2の206)、
・リクエストに対するレスポンスを受信する機能(図2の207)。
これらの機能は、それぞれの機能を実現する処理を実装したプログラムにより実現可能である。ユーザ104は、第2のクライアント101dが実現するこれらの機能を用いて、サーバ装置102(特にはBMC103におけるWebサーバ103a)に対して、任意のリクエストを送信する。即ち、ユーザ104は、Webブラウザ101aとは切り離された第2のクライアント101dを用いて、Webサーバ103aに対し任意のリクエストを発行(送信)する。
図3は、第2のクライアント101dの機能的な構成の具体例を示す図である。なお、図3に例示する構成は一つの具体例であり、第2のクライアント101dをどのような構成要素に区分けするかは、適宜選択してよい。
情報入力部301は、ユーザ104からリクエストの作成に用いられる情報の入力を受け付ける情報入力インタフェースである。係る情報入力部301は、ユーザ104に対して、例えば、リクエストの生成に用いられる情報を設定可能なフィールド、リクエスト送信ボタン、及び、リクエストに対するレスポンスを表示するフィールド等を備えたUIを提供してもよい。係るUIをどのように構成するかは、任意に定めてよい。ユーザ104は、例えば、サーバ装置102に関する各種制御を実行するコマンドや、サーバ装置102の情報を取得するコマンド等を、情報入力部301に対して入力してもよい。
リクエスト作成部302は、情報入力部301に入力された情報を用いてリクエストを作成(生成)する。係るリクエストは、例えば、HTTPにおけるPOSTリクエストによりWebサーバ103aに送信される送信データである。係る送信データの具体的な形式は、サーバ装置102の仕様等に応じて、適宜選択してよい。
CSRFトークン付加部303は、リクエスト作成部302において作成されたリクエストに対して、CSRFトークンを付加する。上記したように、第2のクライアント101dが起動される際、Webクライアント101b(スクリプト101c)から、CSRFトークンが提供される。これより、CSRFトークン付加部303は、Webサーバ103aから提供された正しいCSRFトークンを参照可能である。従って、CSRFトークン付加部303は、Webサーバ103aに対して送信されるリクエストに対して、正しいCSRFトークンを設定可能である。
通信部304は、CSRFトークンが付加されたリクエストを、サーバ装置102(特には、Webサーバ103a)に対して送信する。また、通信部304は、サーバ装置102(特には、Webサーバ103a)から、上記送信したリクエストに対するレスポンスを受信する。
レスポンス解析部305は、通信部304がサーバ装置102から受信したレスポンスを解析する。レスポンス解析部305は、例えば、BMC103が各種コマンドを実行した結果や、サーバ装置102から取得した各種情報等を、受信したレスポンスから抽出する。レスポンス解析部305は、係る解析結果を情報入力部301に通知してもよい。情報入力部301は、レスポンス解析部305の解析結果をUIに表示してもよい。
上記のように構成された、第2のクライアント101dは、スクリプト101cあるいはWebクライアント101bを参照することにより、CSRFトークンを参照(取得)してもよい。一例として、スクリプト101c及びWebクライアント101bがHTML及び各主スクリプト言語等を用いて記載されたコンテンツであり、第2のクライアント101dがJava(登録商標)を用いて実装されたプログラム(例えばアプレット)である場合を仮定する。この場合、第2のクライアント101dは、スクリプト101cあるいはWebクライアント101bの実体であるコンテンツ(例えばHTML)の内容を参照可能である。これより、第2のクライアント101dは、例えば、係るコンテンツにおいてCSRFトークンが含まれるフィールドを参照することにより、CSRFトークンを参照(取得)可能である。
以上のように構成されたユーザ端末101の具体的な動作については、後述する。
次に、サーバ装置102の機能的な構成について説明する。サーバ装置102は、コンピュータ等の情報処理装置を用いて構成される。図1に例示するように、サーバ装置102は、BMC103を備える。
BMC103は、サーバ装置102に関する各種制御を実行可能なコンポーネントである。BMC103は、例えば、図示しない演算装置(プロセッサ)と、記憶装置(例えば、フラッシュメモリ等)等のハードウェアにより構成されてもよい。この場合、係る記憶装置にBMCの機能が実装されたファームウェア(コンピュータ・プログラム)が格納され、係るファームウェアが、図示しない演算装置によって実行されることにより、BMC103の機能が提供されてもよい。以下、BMC103の機能的な構成について説明する。
BMC103は、少なくともWebサーバ103aを備える。また、BMC103は、サービス処理部103eを備えてもよい。また、BMC103は、コンテンツ103b、スクリプト103c、第2のクライアント103dを保持する。
Webサーバ103aは、ユーザ端末101との間で、HTTPを用いた通信を実行する。具体的には、Webサーバ103aは、ユーザ端末101(特には、Webブラウザ101a、Webクライアント101b、及び、第2のクライアント101d)からリクエスト(HTTPリクエスト)を受信し、それらに対してレスポンスを送信する。Webサーバ103aは、上述したように、ユーザ端末101(特には、Webブラウザ101a、Webクライアント101b)との間で認証処理を実行し、認証済みのセッションであることを表すCookie(セッション情報)、及び、CSRFトークンを発行する。
図4は、Webサーバ103aの機能的な構成を例示する図面である。なお、図4に例示する構成は一つの具体例であり、Webサーバ103aをどのような構成要素に区分けするかは、適宜選択してよい。
通信部401は、ユーザ端末101から各種リクエスト(HTTPリクエスト)を受信する。また、通信部401は、後述するレスポンス返却部405において生成されたレスポンス(HTTPレスポンス)を、ユーザ端末101に送信する。
リクエスト解析部402は、通信部401において受信したリクエストを解析する。リクエスト解析部402は、例えば、受信したリクエストを解析することにより、係るリクエストに含まれるCookie及びCSRFトークンを抽出してもよい。
また、リクエスト解析部402は、ユーザ端末から受信したリクエストが認証処理に関するリクエストである場合、リクエスト処理部404に対して、認証処理の実行を通知してもよい。この場合、リクエスト処理部404は、サーバ装置102の仕様等に応じて適切な認証処理を実行してもよい。
CSRFトークン認証部403は、リクエスト解析部402における解析結果に基づいて、CSRFトークンの正当性を認証(検証)する処理を実行する。CSRFトークン認証部403は、係るCSRFトークンが正常ではない(正当なCSRFトークンではない)場合は、係るリクエストを拒否するよう、リクエスト処理部404に通知してもよい。これにより、正常なCSRFトークンを含まない不正なリクエストは、Webサーバ103aにおいて排除(拒否)される。
リクエスト処理部404は、リクエスト解析部402の解析結果に基づいて、ユーザ端末101から送信されたリクエストに関する処理を実行する。リクエスト処理部404は、サービス処理部103eに対して、ユーザ端末101から送信されたリクエストに関する処理の実行を依頼(通知)してもよい。
リクエスト処理部404は、ユーザ端末101から送信されたリクエストが認証処理に関するリクエストである場合、認証に関する処理を実行する。係る認証に関する処理は、例えば、BMC103(Webサーバ103a)に対するログイン認証、認証済みセッションを表すCookieの生成、及び、CSRFトークンの生成等の処理を含んでもよい。なお、係るCSRFトークンは、CSRFトークン認証部403において生成されてもよい。
また、リクエスト処理部404は、ユーザ端末101から受信したリクエストに含まれるCSRFトークンが正常ではない場合、係るリクエストに関する処理を拒否する(実行しない)。
次に、レスポンス返却部405は、リクエスト処理部404における処理の結果を用いて、ユーザ端末101に送信するレスポンス(HTTPレスポンス)を生成する。上記したように、CSRFトークンが正常ではない場合、レスポンス返却部405は、ユーザ端末101に対して、エラーを表すレスポンスを生成する。なお、生成されたレスポンスは、通信部401によりユーザ端末101に送信される。
Webサーバ103aは、ユーザ端末101からのリクエストに応じて、コンテンツ103b、スクリプト103c、及び、第2のクライアント103dを、ユーザ端末101に送信可能である。コンテンツ103b、スクリプト103c、及び、第2のクライアント103dは、BMC103における、図示しない記憶装置に保持されていてもよい。
コンテンツ103bは、上記説明したWebクライアント101bを含む、任意のコンテンツである。スクリプト103cは、上記説明したスクリプト101cと同様である。なお、スクリプト103cは、コンテンツ103bの一部に含まれてもよい。第2のクライアント103dは、上記説明した第2のクライアント101dと同様である。
ユーザ端末101から送信される、コンテンツ103b、スクリプト103c、又は、第2のクライアント103dの取得を要求するリクエストに関して、Webサーバ103aは、CSRFトークンを検証してもよい。
サービス処理部103eは、ユーザ端末101から送信された各種リクエストに応じて、サーバ装置102に対する各種制御を実行する。サービス処理部103eは、例えば、ユーザ端末101から送信された、BMC103に対する制御コマンドを実行し、係る実行結果をWebサーバ103aに通知してもよい。
次に、上記のように構成された、本実施形態におけるユーザ端末101、及び、サーバ装置102の動作について、図5乃至図7を参照して説明する。以下においては、ユーザ104の要求に基づいて、Webクライアント101b及びスクリプト101cが、サーバ装置102からユーザ端末101に取得されていることを仮定する。この場合、例えば、ユーザ104が、Webブラウザ101aを用いて、Webサーバ103aから、Webクライアント101b(コンテンツ103b)及びスクリプト101c(スクリプト103c)を取得してもよい。
図5は、本実施形態におけるユーザ端末101及びサーバ装置102の動作を例示するシーケンス図である。より具体的には、図5は、Webクライアント101bとWebサーバ103aとの間における認証処理(Cookie及びCSRFトークンの取得処理を含む)のシーケンスと、Webクライアント101bからの、CSRFトークンを含むリクエストの発行(送信)処理のシーケンスに関する具体例を例示する。
まず、ユーザ104は、ユーザ端末101を用いて、サーバ装置102(特には、Webサーバ103a)へのアクセスする(ステップS501)。より具体的には、ユーザ104は、Webクライアント101bを用いて、Webサーバ103aにアクセスする処理を実行する。この場合、ユーザ104は、例えば、Webブラウザ101aを介して、Webクライアント101bを操作してもよい。
Webクライアント101bは、Webサーバ103aに対して、Webサーバに対するアクセス要求を送信する(ステップS502)。以下においては、Webクライアント101bが、Webサーバ103aにおける認証を要するコンテンツに対するアクセスを要求したことを仮定する。
係るアクセス要求に対して、Webサーバ103aはレスポンスを生成し、係るレスポンスをWebクライアント101bに送信する(ステップS503)。この場合、係るレスポンスは、例えば、Webサーバ103aにおいて必要とする認証情報の入力を、Webクライアント101bに求めるものであってもよい。より具体的には、例えば、Webサーバ103aは、ログイン認証において必要とする認証情報を入力させるコンテンツ(例えば認証ページ等)を、Webクライアント101bに送信してもよい。
次に、Webクライアント101bは、Webサーバ103aに対して、認証情報を含む認証要求を送信する(ステップS504)。
係る認証要求を受信したWebサーバ103aは、ログイン認証処理(ステップS505)を実行する。この場合、Webサーバ103aは、Webクライアント101bから送信された認証情報に基づいて、Webクライアント101bからのログインを許可するか否かを判定してもよい。
Webサーバ103aは、ステップS505におけるログイン認証処理が成功した場合、Webクライアント101bとの間のセッションが認証済みであることを表すCookieを生成する(ステップS506)。
Webサーバ103aは、ステップS505におけるログイン認証処理が成功した場合、Webクライアント101bとの間で送受信されるリクエストの正当性を表す情報であるCSRFトークンを生成する(ステップS507)。
ステップS505乃至ステップS507における処理を実行した後、Webサーバ103aは、Webクライアント101bに対して、Cookie及びCSRFトークンを返却する(ステップS508)。より具体的には、Webサーバ103aは、Webクライアント101bに対して、Cookie及びCSRFトークンを含むレスポンスを送信する。
係るレスポンスを受信したWebクライアント101bは、当該レスポンスに含まれるCookieを保存する(ステップS509)。具体的には、Webクライアント101bは、Webブラウザ101aに対して、係るCookieを書き込む(保持させる)。Webブラウザ101aにCookieを保持させる方法は周知であることから、詳細な説明は省略する。
また、Webクライアント101bは、Webサーバ103aから受信したレスポンスに含まれるCSRFトークンを保持する(ステップS510)。Webクライアント101bは、Webサーバ101aからレスポンスとして受信した、CSRFトークンを含むコンテンツ自体を保持してもよい。また、Webクライアント101bは、係るコンテンツからCSRFトークンを抽出して、係るCSRFトークンを保持してもよい。
図5に例示する具体例においては、Webクライアント101bがステップS502乃至S510の処理を実行するが、係る処理は、Webブラウザ101aが実行してもよい。この場合、Webブラウザ101aは、Webサーバ103aから、Cookie及びCSRFトークンが設定されたレスポンスとして、Webクライアント101b(及びスクリプト101c)を含むコンテンツを受信してもよい。
上記ステップS501乃至S510の後、ユーザ104が、ユーザ端末101を用いて、Web操作を実行する(ステップS511)。ユーザ104は、係るWeb操作として、例えば、第2のクライアント103dの取得を要求してもよい。
次に、Webクライアント101bは、ステップS511におけるWeb操作の内容に応じて、Cookie及びCSRFトークンを含むHTTPリクエストを生成する(ステップS512)。即ち、ステップS511以降のWeb操作に伴い、Webサーバ103aに送信されるリクエストには、CSRFトークンが付加される。
次に、Webクライアント101bは、ステップS512において生成したHTTPリクエストを、Webサーバ103aに送信する(ステップS513)。
Webサーバ103aは、ステップS513において送信されたリクエストに含まれる、CSRFトークンを認証(検証)する(ステップS514)。Webサーバ103aは、ステップS507において発行したCSRFトークンと、ステップS513において送信されたリクエストに含まれるCSRFトークンとが一致した場合に、当該リクエストを正当なリクエストとして認証してもよい(認証成功)。
ステップS514においてCSRFトークンを認証した結果、正当なリクエストである場合、Webサーバ103aは、係るリクエストに関する処理を実行する(ステップS515)。
次に、Webサーバ103aは、ステップS515における処理の結果に基づいてレスポンスを生成し、係るレスポンスをWebクライアント101bに返却(送信)する(ステップS516)。
Webクライアント101bは、ステップS516において送信されたレスポンスを受信する(ステップS517)。係るレスポンスは、例えば、Webブラウザ101aに表示されてもよい。
以上説明したステップS501乃至ステップS517は、CSRF対策が実施されたWebサーバ103aと、Webクライアント101bとの間で実行される、リクエスト及びレスポンスの送受信処理である。
次に、図6を参照して、CSRF攻撃により、Webブラウザ101aから、Webサーバ103aに対して直接リクエストが発行される場合の動作について説明する。以下の説明においては、Webクライアント101b(あるいはWebブラウザ101a)と、Webサーバ103aとの間で認証処理が実行済みであることを仮定する(ステップS601)。係る認証処理は、例えば、図5におけるステップS502乃至S510と同様としてよい。
まず、ユーザ104の操作により、意図しない不正なHTTPリクエストの送信がWebブラウザに通知される(ステップS602)。例えば、ユーザ104が、攻撃者が用意した攻撃用のリンクに誤ってアクセスすることにより、不正なHTTPリクエストが実行される。
係るHTTPリクエストが実行された場合、Webブラウザ101aは、Webブラウザ101aにおいて保持しているCookieを含むリクエストを生成する(ステップS603)。そして、Webブラウザ101aは、係るリクエストを、HTTPリクエストとしてWebサーバ103aに発行(送信)する(ステップS604)。上記ステップS603乃至ステップS604の処理によって、Webブラウザ101aが保持するCookieは、不正なHTTPリクエストに利用されてしまう。しかしながら、通常不正なHTTPリクエスト操作においては、正しいCSRFトークンが不明であることから、ステップS603において生成されるリクエストには、正しいCSRFトークンが含まれない。
ステップS604において送信されたリクエストを受信したWebサーバ103aは、係るリクエストに対するCSRF認証処理を実行する(ステップS605)。係る処理は、図5におけるステップS514と同様としてよい。
この場合、Webサーバ103aは、ステップS604において送信されたリクエストに含まれるCSRFトークンと、Webクライアント101b(あるいはWebブラウザ101a)に対してCSRFトークンとが一致しないことを確認する。結果として、Webサーバ103aは、係るリクエストが正当なリクエストではないと判定する。Webサーバ103aは、ステップS604において送信されたリクエストにCSRFトークンが含まれない場合も、係るリクエストが正当なリクエストではないと判定してよい。これにより、Webサーバ103aは、不正なHTTP操作に伴うリクエストを排除する。
次に、Webサーバ103aは、受信したリクエストが不正であることを表すレスポンスをWebブラウザ101aに通知する(ステップS606)。Webブラウザ101aは、Webサーバ103aからのレスポンスに基づいて、リクエストが失敗した場合の処理を実行する(ステップS607)。この場合、Webブラウザ101aは、例えば、リクエストの失敗を表すコンテンツを表示してもよい。
以上説明した動作により、正しいCSRFトークンを保持するWebクライアント101以外からの不正なリクエストが、Webサーバ103aにおいて排除される。
次に、図7を参照して、本実施形態における第2のクライアント101dを用いた、Webサーバ103aに対するリクエストの送信について説明する。以下の説明においては、Webクライアント101b(あるいはWebブラウザ101a)と、Webサーバ103aとの間で認証処理が実行済みであることを仮定する(ステップS701)。係る認証処理は、例えば、図5におけるステップS502乃至S510と同様としてよい。
まず、ユーザ104は、ユーザ端末101を用いて、第2のクライアント101dを取得する操作を実行する(ステップS702)。
係る操作を受け付けたWebクライアント101bは、Webサーバ103aに対して、第2のクライアント101d(BMC103が保持する第2のクライアント103d)の取得(ダウンロード)を要求するリクエストを送信する(ステップS703)。なお、この際送信されるリクエスト(HTTPリクエストにもCSRFトークンが付与されてよく、Webサーバ103aは係るCSRFトークンを認証(検証)してもよい。
ステップS703において送信されたリクエストを受け付けたサーバ103aは、BMC103が保持する第2のクライアント103dを、レスポンスとして送信する(ステップS704)。
次に、Webクライアント101bは、Webサーバ103aから取得した第2のクライアントを起動する(ステップS705)。具体的には、Webクライアント101bが、スクリプト101cを実装された機能(図2における203)を実行することにより、第2のクライアント101dを実行する。この際、Webクライアント101bは、認証処理(ステップS701)においてWebサーバ103aより発行されたCookie及びCSRFトークンを、第2のクライアント101dに提供する。具体的には、Webクライアント101bは、Cookie及びCSRFトークンを起動時のパラメータ(引数)として、第2のクライアント101dを実行(起動)してもよい。また、第2のクライアント101dは、スクリプト101cを参照することにより、Cookie及びCSRFトークンを取得してもよい。
ステップS705の結果、第2のクライアント101dが実行(起動)される(ステップS706)。
次に、ユーザ104は、第2のクライアント101dに対して、任意のリクエストの送信を要求する操作を実行する(ステップS707)。係るリクエストは、例えば、サーバ装置102に対する各種制御リクエスト(BMC103に対するコマンド)、あるいは、サーバ装置102の情報を取得するリクエスト等を含んでもよい。
次に、第2のクライアント101dは、ステップS707において要求されたリクエストに応じて、Cookie及びCSRFトークンを含むHTTPリクエストを生成する(ステップS708)。即ち、ステップS709において生成されるHTTPリクエストには、正しいCSRFトークンが含まれる。
次に、第2のクライアント101dは、ステップS708において生成されたHTTPリクエストを、Webサーバ103aに対して送信する(ステップS709)。
Webサーバ103aは、ステップS709において送信されたリクエストに含まれる、CSRFトークンを認証(検証)する(ステップS710)。Webサーバ103aは、認証処理(ステップS701)において発行したCSRFトークンと、ステップS709において送信されたリクエストに含まれるCSRFトークンとが一致した場合に、当該リクエストを正当なリクエストとして認証してもよい(認証成功)。
ステップS710においてCSRFトークンを認証した結果、正当なリクエストである場合、Webサーバ103aは、係るリクエストに関する処理を実行する(ステップS711)。
次に、Webサーバ103aは、ステップS711における処理の結果に基づいてレスポンスを生成し、係るレスポンスを第2のクライアント101dに返却(送信)する(ステップS712)。
上記ステップS710乃至S712は、それぞれ図5におけるステップS514乃至S516と同様としてもよい。
次に、第2のクライアント101dは、ステップS712において送信されたレスポンスを受信する(ステップS713)。第2のクライアントは、例えば、係るレスポンスをUIに表示してもよい。
上記説明した処理により、ユーザ104は、Webブラウザ101a及びWebクライアント101bとは独立した第2のクライアント101dを用いて、任意のリクエストをWebサーバ103aに送信可能である。
以上説明した本実施形態におけるユーザ端末101(特には、Webクライアント101b及び第2のクライアント101d)によれば、CSRF対策が実施されたWebサーバ(Webサーバ103a等)に対して、任意のリクエストを送信可能である。なぜならば、CSRF対策が実施されたサーバ装置102(特には、Webサーバ103a)から取得されたセキュアな通信に用いられる情報(CSRFトークン等)が、ユーザ端末101(特には、Webクライアント101b及び第2のクライアント101d)から送信されるリクエストに含まれるからである。上記したように、係るCSRFトークンは、サーバに送信されたリクエストの正当性を表す情報である。
より具体的には、本実施形態によれば、第2のクライアント101dが実行される際、Webクライアント101bからCSRFトークンが提供される。第2のクライアント101dは、係るCSRFトークンを参照することにより、正しいCSRFトークンを含んだリクエストを、Webサーバ103aに送信可能である。これにより、ユーザ端末101からサーバ装置102に送信される各リクエストには、正しいCSRFトークンが含まれる。
また、本実施形態によれば、ユーザ端末101からサーバ装置102に対してリクエストを送信する経路がWebブラウザ101aあるいはWebクライアント101bに限定されない。即ち、本実施形態によれば、Webブラウザ101aあるいはWebクライアント101bとは独立した第2のクライアント101dから、サーバ装置102(特にはWebサーバ103a)に対してリクエストを送信可能である。これより、CSRF攻撃だけでなくクロスサイトスクリプティング(XSS)等、Webブラウザ101aを標的とした他の攻撃に対する安全性が高まる。
以上より、本実施形態によれば、サーバ(サーバ装置102)から提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、当該サーバに対して任意のリクエストを発行可能な情報処理装置(ユーザ端末101)等を提供可能である。
<第1の実施形態の変形例>
上記説明した第1の実施形態の変形例について説明する。本変形例におけるユーザ端末101、及び、サーバ装置102の機能的な構成は上記第1の実施形態と同様としてよい。
上記説明した第1の実施形態においては、Webクライアント101bは、第2のクライアント101dを実行(起動)する際に、CSRFトークン及びCookie等の情報を提供する。
これに対して、本変形例においては、Webサーバ103aが、第2のクライアント101d(BMC103における第2のクライアント103d)を送信する際(図7におけるステップS704)、係る第2のクライアント101dに、CSRFトークンを設定する(埋め込む)。換言すると、ステップS703及びステップS704においてWebクライアント101bが取得する第2のクライアント101dには、CSRFトークンが含まれている(埋め込まれている)。
以上のように構成された本変形例によれば、上記第1の実施形態と同様、第2のクライアント101dは、設定されたCSRFトークンを参照することで、正しいCSRFトークンを含んだリクエストを、Webサーバ103aに送信可能である。これにより、ユーザ端末101からサーバ装置102に送信される各リクエストに、CSRFトークンが含まれる。また、本変形例は、上記第1の実施形態と同様の構成を有することから、上記第1の実施形態と同様の効果を奏する。
以上より、本実施形態によれば、サーバ(サーバ装置102)から提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより任意のリクエストを発行可能な情報処理装置(ユーザ端末101)等を提供可能である。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
図8は、本実施形態における情報処理装置801の機能的な構成を例示するブロック図である。図8に例示するように、本実施形態における情報処理装置801は、第1の通信処理部802と、第2の通信処理部803とを備える。また、情報処理装置801は、サーバ804と任意の通信回線を介して通信可能に接続されている。以下、情報処理装置801の構成要素について説明する。
第1の通信処理部802は、通信回線を介して通信可能に接続されたサーバ804から、当該サーバに送信されたリクエストの正当性を表す第1のトークンを含む通信データを受信する。係る第1の通信処理部802は、例えば、上記第1の実施形態におけるWebクライアント101bと同様としてもよい。
第2の通信処理部803は、上記第1の通信処理部が保持する上記第1のトークンを含む他のリクエストを生成する。そして、第2の通信処理部803は、当該生成したリクエストを、上記サーバに対して送信する。係る第2の通信部803は、通信データを上記サーバに対して送信可能な、上記第1の通信処理部802とは異なる送信手段である。係る第2の通信処理部803は、例えば、上記第1の実施形態における第2のクライアント101dと同様としてもよい。
具体例として、サーバ装置804においてCSRF対策が実施されている場合を仮定する。この場合、第1の通信処理部802は、例えば、当該サーバ804に送信された通信データの正当性を表す情報であるCSRFトークン(第1のトークン)を、サーバ804から受信する。そして、第2の通信処理部803は、上記第1の通信処理具802が受信したCSRFトークンを含むリクエストを生成し、当該生成したリクエストをサーバ804に対して送信する。この場合、第1の通信処理部802は、例えば、係る第1のトークンを保持するとともに、第2の通史処理部803に対して当該第1のトークンを提供してもよい。これにより、第2の通信処理部803は、サーバ804から提供される、サーバ804に対して送信されたリクエストの正当性を表す情報(CSRFトークン)を用いて、任意のリクエストをサーバ804に対して送信可能である。
以上より、本実施形態における情報処理装置801は、サーバ(サーバ804)から提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、任意のリクエストを発行可能である。なぜならば、上記第1の通信処理部802がサーバ804から受信した第1のトークンを含むリクエストを、上記第2の通信処理部803がサーバ804に対して可能であるからである。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
以下の説明において、上記各実施形態において説明したユーザ端末101、情報処理装置801、及びサーバ装置102をまとめて、単に「情報処理装置」と称する。また、ユーザ端末101、情報処理装置801、及びサーバ装置102の構成要素を、単に「情報処理装置の構成要素」と称する。
上記各実施形態において説明した情報処理装置は、専用のハードウェア装置により構成してもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。
例えば、各構成要素をハードウェアにより実現する場合、各構成要素は、それぞれの機能を提供可能な集積回路をSoC(System on a Chip)等により実装されてもよい。この場合、例えば、各構成要素が保持するデータは、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
また、この場合、各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。
また、上述した情報処理装置は、図9に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。
図9における演算装置901は、汎用のCPU(Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置901は、例えば後述する不揮発性記憶装置903に記憶された各種ソフトウェア・プログラムを記憶装置902に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるWebクライアント101b、第2のクライアント101d、Webサーバ103a、第1の通信処理部802、第2の通信処理部803等は、演算装置901により実行されるソフトウェア・プログラムとして実現可能である。
記憶装置902は、演算装置901から参照可能な、RAM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置902は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置903は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置903は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
ネットワークインタフェース906は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。上記各実施形態において、ユーザ端末101はネットワークインタフェース906を介して、サーバ装置102と接続されてもよい。また、情報処理装置801は、ネットワークインタフェース906を介して、サーバ804と接続されてもよい。
ドライブ装置904は、例えば、後述する記憶媒体905に対するデータの読み込みや書き込みを処理する装置である。
記憶媒体905は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
入出力インタフェース907は、外部装置との間の入出力を制御する装置である。
上述した各実施形態を例に説明した本発明は、例えば、図9に例示したハードウェア装置により情報処理装置を構成し、係るハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより実現されてもよい。この場合、係る装置に対して供給したソフトウェア・プログラムを、演算装置901が実行することによって、本発明が実現されてもよい。
上述した各実施形態において、上記各図(例えば、図1、図3、図4、及び図8)に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールを不揮発性記憶装置903に記憶しておき、演算装置901がそれぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置902に読み出すよう構成してもよい。
また、これらのソフトウェアモジュールの間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュールの間は、相互に通信可能に接続可能である。
更に、上記各ソフトウェア・プログラムを記憶媒体905に記録しておき、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置904を通じて当該ソフトウェア・プログラムを不揮発性メモリ903に格納するよう構成してもよい。
なお、上記の場合において、上記情報処理装置への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
また、上述した情報処理装置、あるいは、当情報処理装置の構成要素は、図9に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図9に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図9に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
101 ユーザ端末
101a Webブラウザ
101b Webクライアント
101c スクリプト
101d 第2のクライアント
102 サーバ装置
103 BMC
103a Webサーバ
103b コンテンツ
103c スクリプト
103d 第2のクライアント
103e サービス処理部
301 情報入力部
302 リクエスト作成部
303 CSRFトークン付加部
304 通信部
305 レスポンス解析部
401 通信部
402 リクエスト解析部
403 CSRFトークン認証部
404 リクエスト処理部
405 レスポンス返却部
801 情報処理装置
802 第1の通信処理部
803 第2の通信処理部
804 サーバ
901 演算装置
902 記憶装置
903 不揮発性記憶装置
904 ドライブ装置
905 記憶媒体
906 ネットワークインタフェース
907 入出力インタフェース

Claims (9)

  1. 通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第1のトークンを含む通信データを受信する第1の通信処理手段と、
    前記第1の通信処理手段が保持する前記第1のトークンを含む前記リクエストを生成し、当該生成した前記リクエストを前記サーバに対して送信可能な、前記第1の通信処理手段とは異なる第2の通信処理手段と、を備え
    前記第2の通信処理手段は、自装置において実行可能なアプリケーションであり、
    前記第1の通信処理手段は、
    前記アプリケーションの取得を要求する、前記第1のトークンを含む前記リクエストを生成し、
    当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
    当該取得した前記アプリケーションを自装置において実行する
    情報処理装置。
  2. 前記第1の通信処理手段は、前記第2の通信処理手段に対して、前記サーバから受信した前記第1のトークンを提供する、
    請求項1に記載の情報処理装置。
  3. 前記第2の通信処理手段は、
    任意の前記リクエストの生成に関するデータの入力を受け付け、
    当該受け付けたデータを用いて前記第1のトークンを含む前記リクエストを生成し、
    当該生成した前記リクエストを前記サーバに対して送信する
    請求項1または請求項2に記載の情報処理装置。
  4. 前記第1の通信処理手段は、
    前記サーバに対する認証要求を含む前記リクエストを送信し、
    当該リクエストを受信した前記サーバにより生成された、前記サーバと、前記第1の通信処理手段との間の認証済みの通信セッションを表す第2のトークンと、前記第1のトークンとを含む前記通信データを前記サーバから受信し、
    前記第2の通信処理手段は、
    前記第1のトークンと、前記第2のトークンとを含む前記リクエストを前記サーバに対して送信する
    請求項1乃至請求項3のいずれかに記載の情報処理装置。
  5. 通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第1のトークンを含む通信データを受信する第1の通信処理手段と、
    前記第1のトークンを含む前記リクエストを生成し、当該リクエストを前記サーバに対して送信可能な前記第1の通信処理手段とは異なる第2の通信処理手段と、を備え、
    前記第2の通信処理手段は、前記サーバに保持されるとともに、前記サーバにより前記第1のトークンが設定された、自装置において実行可能なアプリケーションであり、
    前記第1の通信処理手段は、
    前記アプリケーションの取得を要求する、前記第1のトークンを含む前記リクエストを生成し、
    当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
    当該取得した前記アプリケーションを自装置において実行する、情報処理装置。
  6. 請求項1乃至請求項のいずれかに記載の情報処理装置と、
    通信回線を介して前記情報処理装置と通信可能に接続されたサーバ装置と、を備え、
    前記サーバ装置は、
    前記情報処理装置からの要求に応じて、当該情報処理装置から前記サーバ装置に対して送信されたリクエストの正当性を表す第1のトークンを含む通信データを当該情報処理装置に送信し、
    前記情報処理装置に送信した前記第1のトークンと、前記情報処理装置における前記第2の通信処理手段から受信した他の前記リクエストに含まれる第1のトークンとを比較した結果に基づいて、当該受信した他の前記リクエストが不正なリクエストではないと判断した場合には、当該受信した他の前記リクエストに基づいて、前記情報処理装置からの要求に応じた処理を実行する、情報処理システム。
  7. 請求項1乃至請求項5のいずれかに記載の情報処理装置と、
    通信回線を介して前記情報処理装置と通信可能に接続されたサーバ装置と、を備え、
    前記サーバ装置は、
    前記情報処理装置からの要求に応じて、当該情報処理装置から前記サーバ装置に対して送信されたリクエストの正当性を表す第1のトークンを含む通信データを当該情報処理装置に送信し、
    前記情報処理装置からの要求に応じて、前記情報処理装置において実行可能なアプリケーションを、前記情報処理装置に送信し、
    前記情報処理装置に送信した前記第1のトークンと、前記情報処理装置において実行された前記アプリケーションから受信した他の前記リクエストに含まれる前記第1のトークンとを比較した結果に基づいて、当該受信した他の前記リクエストが不正なリクエストではないと判断した場合には、当該受信した他の前記リクエストに基づいて、前記情報処理装置からの要求に応じた処理を実行する、情報処理システム。
  8. 情報処理装置が、
    通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第1のトークンを含む通信データを第1の通信処理手段を用いて受信し、
    前記第1の通信処理手段が保持する前記第1のトークンを含む前記リクエストを生成し、
    前記第1の通信処理手段とは異なる第2の通信処理手段を用いて、生成した前記リクエストを前記サーバに対して送信し、
    前記第2の通信処理手段は、自装置において実行可能なアプリケーションであり、
    前記第1の通信処理手段は、
    前記アプリケーションの取得を要求する、前記第1のトークンを含む前記リクエストを生成し、
    当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
    当該取得した前記アプリケーションを自装置において実行する、
    情報処理方法。
  9. 通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性表す第1のトークンを含む通信データを第1の通信処理手段を用いて受信する処理と、
    前記第1の通信処理手段が保持する前記第1のトークンを含む前記リクエストを生成する処理と、
    前記第1の通信処理手段とは異なる第2の通信処理手段を用いて、生成した前記リクエストを前記サーバに対して送信する処理と、をコンピュータに実行させ
    前記第2の通信処理手段は、自装置において実行可能なアプリケーションであり、
    前記第1の通信処理手段は、
    前記アプリケーションの取得を要求する、前記第1のトークンを含む前記リクエストを生成し、
    当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
    当該取得した前記アプリケーションを自装置において実行する、
    コンピュータ・プログラム。
JP2014238662A 2014-11-26 2014-11-26 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム Active JP6394326B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014238662A JP6394326B2 (ja) 2014-11-26 2014-11-26 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014238662A JP6394326B2 (ja) 2014-11-26 2014-11-26 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2016099924A JP2016099924A (ja) 2016-05-30
JP6394326B2 true JP6394326B2 (ja) 2018-09-26

Family

ID=56077923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014238662A Active JP6394326B2 (ja) 2014-11-26 2014-11-26 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP6394326B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114076B2 (en) * 2003-05-23 2006-09-26 International Business Machines Corporation Consolidated technique for authenticating a user to two or more applications
US7546463B2 (en) * 2004-11-30 2009-06-09 Sap Ag Method and system for delegating authority in an online collaborative environment
JP4770203B2 (ja) * 2005-03-08 2011-09-14 三菱電機株式会社 アプリケーション取得方式及びアプリケーション取得方法
JP4525609B2 (ja) * 2006-02-22 2010-08-18 日本電気株式会社 権限管理サーバ、権限管理方法、権限管理プログラム
JP2008226015A (ja) * 2007-03-14 2008-09-25 Fujitsu Ltd セッション権限管理方法
KR101451870B1 (ko) * 2012-08-20 2014-10-16 네이버 주식회사 인증 공유에 의한 애플리케이션 로그인 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
JP2016099924A (ja) 2016-05-30

Similar Documents

Publication Publication Date Title
CN108369615B (zh) 动态更新captcha质询
US10225260B2 (en) Enhanced authentication security
EP2919435B1 (en) Communication terminal and secure log-in method and program
EP3488590B1 (en) Securing ordered resource access
US9369460B2 (en) Authentication manager
US9106642B1 (en) Synchronizing authentication sessions between applications
US20100043065A1 (en) Single sign-on for web applications
US9112828B2 (en) Method for defending against session hijacking attacks and firewall
US8869258B2 (en) Facilitating token request troubleshooting
US9369286B2 (en) System and methods for facilitating authentication of an electronic device accessing plurality of mobile applications
US9104838B2 (en) Client token storage for cross-site request forgery protection
US10911485B2 (en) Providing cross site request forgery protection at an edge server
CN112491776B (zh) 安全认证方法及相关设备
Ferry et al. Security evaluation of the OAuth 2.0 framework
CN111865882B (zh) 一种微服务认证方法和系统
US10554643B2 (en) Method and system to provide additional security mechanism for packaged web applications
RU2638779C1 (ru) Способ и сервер для вьполнения авторизации приложения на электронном устройстве
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
CN114500054A (zh) 服务访问方法、服务访问装置、电子设备以及存储介质
Li et al. Your code is my code: Exploiting a common weakness in OAuth 2.0 implementations
JP6574265B2 (ja) 認証制御システム、サーバ装置、認証制御方法、及びプログラム
JP5383923B1 (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム
KR20200106435A (ko) 유저 인증 장치 및 방법
JP6394326B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム
CN105554170B (zh) 一种dns报文的处理方法、装置及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180813

R150 Certificate of patent or registration of utility model

Ref document number: 6394326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150