[go: up one dir, main page]

JP5929175B2 - 情報処理装置、情報処理システムおよびプログラム - Google Patents

情報処理装置、情報処理システムおよびプログラム Download PDF

Info

Publication number
JP5929175B2
JP5929175B2 JP2011285195A JP2011285195A JP5929175B2 JP 5929175 B2 JP5929175 B2 JP 5929175B2 JP 2011285195 A JP2011285195 A JP 2011285195A JP 2011285195 A JP2011285195 A JP 2011285195A JP 5929175 B2 JP5929175 B2 JP 5929175B2
Authority
JP
Japan
Prior art keywords
token
request
response
value
identification information
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
JP2011285195A
Other languages
English (en)
Other versions
JP2013134655A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2011285195A priority Critical patent/JP5929175B2/ja
Priority to US13/710,745 priority patent/US8984608B2/en
Priority to EP12197642.7A priority patent/EP2611102B1/en
Publication of JP2013134655A publication Critical patent/JP2013134655A/ja
Application granted granted Critical
Publication of JP5929175B2 publication Critical patent/JP5929175B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、ウェブ・アプリケーションに関し、より詳細には、脆弱性対策が施されたウェブ・アプリケーションを実現する情報処理装置、情報処理システムおよびプログラムに関する。
近年のネットワーク技術およびウェブ技術の発達および普及により、オンライン・ショッピングのようなインターネット・サービスのみならず、複合機などの組み込み機器にもウェブ技術が導入されている。例えば、複合機に設定用のウェブ・インタフェースを設けることにより、ウェブ・ブラウザを通じて複合機の各種設定を簡便に行えるようになっている。
一方、近年ウェブ・アプリケーション特有の脆弱性も懸念されており、SQLインジェクション、XSS(クロス・サイト・スクリプティング)、CSRF(Cross Site Request Forgeries:クロス・サイト・リクエスト・フォージェリ)などと呼ばれる種々の脆弱性が知られている。CSRFは、悪意のあるページを閲覧した際に、JavaScript(登録商標)等が実行されて、ブラウザが複合機のウェブ・ユーザインタフェースへ向けて、悪意のあるパラメータをポストする:その際に、ブラウザに保存されているCookie値が用いられるので、正規のhttpセッションとして受理される:という脆弱性である。
上述したようなウェブ・アプリケーション特有の脆弱性は、オンライン・ショッピングのようなインターネット上のサービスのみならず、複合機などの組み込み機器においても問題となっている。例えば、複合機であれば、CSRFにより、正規の管理者ユーザによる要求であるかのように複合機の各種設定が勝手に変更させられてしまう等の問題がある。
上記CSRF脆弱性に対するウェブ・アプリケーション設計者側の対策としては、ユーザに対しユーザIDおよびパスワードなどの認証情報の入力を求める手法、Cookieとともにワンタイムまたは固定の認証用トークンを付してメッセージのやり取りする手法が知られている。上記認証用トークンを用いる手法は、入力フォームに推測されにくい文字列をサーバ側で管理し、その文字列をhiddenパラメータなどとして指定し、そのパラメータの整合性をチェックする手法である。
上述したウェブ・アプリケーション特有の脆弱性に対処する従来技術としては、その他特開2010−113566号公報(特許文献1)が知られている。特許文献1は、ネットワークを介した攻撃に対する堅牢性を向上させることを目的として、ウェブ・アプリケーションのソースコードを修正せず、フック処理を経由することで攻撃を防止する構成を開示する。より具体的には、特許文献1は、ネットワークを介して受信される処理要求に応じ要求された処理に対して予め定義されたタイミングでフックし、該タイミングにおいて所定の処理を割り込ませ、呼び出しに応じ、アクセスの内容と処理要求ごとに処理実行手段に対するリソースへのアクセス権限が定義された第一の定義情報とに基づいてアクセスの許否を判定する構成を開示する。
上述したように従来技術においても、種々のCSRF脆弱性の対策が知られている。しかしながら、上記認証情報の入力を求める手法では、利用者側からの視点では、既にログイン画面で認証を行っているにもかかわらず再度認証情報を入力するのは煩雑な操作でとなってしまう。上記従来技術の認証用トークンを利用する従来技術の手法では、ユーザ毎にリクエスト検証のための認証用トークンを生成し、それをメモリ上に保管しておく必要があり、メモリ効率が低下するという問題があった。メモリ効率の低下は、複合機などのリソースに制約がある組み込み機器や、膨大な量のページ処理や膨大なユーザがログインするウェブ・アプリケーションにおいて特に問題となる。また、上記特許文献1に開示される技術は、CSRF脆弱性に対処する技術であるが、メモリ効率を改善できるものではなかった。
本発明は、上記従来技術における問題点に鑑みてなされたものであり、本発明は、ユーザ毎にリクエスト検証のための認証用トークンを別途メモリ上に保管しておく必要がなく、またユーザに対し認証情報の入力を求める手間をかけず、リクエストの正当性の検証が可能な情報処理装置、情報処理システムおよびプログラムを提供することを目的とする。
本発明では、上記課題を解決するために、下記特徴を有する、情報処理装置、上記情報処理装置を含む情報処理システム、および上記情報処理装置を実現するためのプログラムを提供する。本発明の情報処理装置は、ネットワークを介したリクエストおよびレスポンスを含むトランザクションを管理する第1セッション管理手段と、認証されたユーザの認証識別情報を管理する第2セッション管理手段を含む。本情報処理装置は、さらに、第1のリクエストに応答して、要求元ユーザの認証識別情報を取得し、内部で管理される管理値を用いて、第1レスポンスに含めるトークン値を生成するトークン生成手段と、第2のリクエストに応答して、要求元ユーザの認証識別情報を取得し、前記管理値を用いて計算されたトークン値と、該リクエストに含まれるトークン値とを比較して、リクエストの正誤を検証するトークン検証手段とを含む。
上記構成によれば、認証されたユーザの認証識別情報を用いて計算したトークン値を認証用トークンとして用いることにより、ウェブ・アプリケーション内部で認証用トークンをメモリ上で管理することを要さず、メモリ効率高く脆弱性対策を行うことが可能となる。その際には、ユーザに対し認証情報の入力等を求めなくともよいため、利用者に手間もかけない。
本実施形態による複合機が配置されるネットワーク環境を示す構成図。 本実施形態による複合機のハードウェア構成図。 本実施形態による複合機のソフトウェア構成およびハードウェア構成を示す図。 本実施形態による複合機が実現するシステム設定用ウェブ・アプリケーションのブロック図。 本実施形態による複合機が実現する、システム設定用ウェブ・アプリケーションの詳細なブロック図。 本実施形態におけるクライアント端末−複合機間で実行される設定処理フローを示すシーケンス図。 クライアント端末のウェブ・ブラウザ上に表示される各種画面を例示する図。 本実施形態における複合機においてトークン生成部が実行する、トークン生成処理を示すフローチャート。 本実施形態における複合機においてトークン検証部が実行する、トークン検証処理を示すフローチャート(1/2)。 本実施形態における複合機においてトークン検証部が実行する、トークン検証処理を示すフローチャート(2/2)。 管理者ユーザが正規に設定が要求された場合の動作を説明する図。 CSRF攻撃を受けた場合の動作を説明する図。 本実施形態のトークン処理によるメモリ効率化を説明する図。 他の実施形態におけるウェブサーバが配置されるネットワーク環境を示す構成図。 他の実施形態によるウェブサーバが実現するウェブ・アプリケーションのブロック図。
以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下に説明する実施形態では、情報処理装置として、外部のクライアント端末からネットワークを介して各種設定を行うためのウェブ・アプリケーションを備える複合機を一例に説明する。
以下、図1を参照して、本実施形態による複合機が配置されるネットワーク環境の全体構成について説明する。図1は、本実施形態による複合機が配置されるネットワーク環境を示す構成図である。図1に示すネットワーク環境10は、インターネットやローカル・エリア・ネットワーク(LAN)などのネットワーク12と、それぞれネットワーク12に接続されるクライアント端末14と、複合機20とを含む。
複合機20は、コピー、スキャナ、プリント、ファクシミリなどの各種画像機能を備えており、ユーザに対して固有の画像サービスを提供する。複合機20は、さらに、外部のクライアント端末14に対し、上記画像機能等に関連した各種設定を行うためのウェブ・ユーザインタフェースを提供し、管理者からのリモート設定を受け付ける。正当な管理ユーザによりなされた設定変更のみを受け付けることが好ましいことから、本実施形態の複合機20は、CSRF脆弱性の不正リクエストに対処するべく、詳細を後述するトークン処理を実装している。
クライアント端末14は、ウェブ・ブラウザを実装しており、複合機20の管理者ユーザが操作する端末である。管理者ユーザは、クライアント端末14上で動作するウェブ・ブラウザを用いて、複合機20が提供するウェブ・ユーザインタフェースにアクセスし、クライアント端末14が備えるディスプレイ上に表示された各種設定画面から各種設定を行うことができる。本実施形態のクライアント端末14は、正当な管理ユーザであることを示すため、複合機20から発行された認証用トークンを付してリクエストを送信する。
以下、本実施形態の複合機20のハードウェア構成について説明する。図2は、本実施形態による複合機のハードウェア構成図である。図2に示す複合機20は、ハードウェア構成として、CPU(Central Processing Unit)22と、メモリ24と、NIC(Network Interface Card)26と、オペレーション・パネル28と、スキャナ30と、プロッタ32と、HDD(Hard Disk Drive)34とを含み構成される。
CPU22は、複合機20の全体制御を行う制御手段である。メモリ24は、CPU22によるプログラム処理を可能とする実行記憶空間を提供し、描画用メモリ、コピー用画像バッファや符号バッファとしても用いられる。CPU22は、内部バス36を介してHDD34に接続される。HDD34は、CPU22からの入出力要求に応答してデータの書込または読み出しを実行する。HDD34は、複合機20の各画像機能に対応するプログラムを格納し、画像データ、文書データ、プログラム、フォントデータやフォームデータなども蓄積する。
CPU22は、また、内部バス36を介してNIC26と接続する。NIC26は、複合機20をインターネットやLANなどのネットワークに接続するインタフェース機器であり、ネットワーク12を介した各種指令を受付ける。CPU22は、さらに、内部バス36を介して、ハードキーおよびタッチパネルなどの入力装置および液晶ディスプレイなどの表示装置を備えるオペレーション・パネル28に接続されておいる。オペレーション・パネル28は、オペレータからの各種指示の入力を受付けや画面表示を行うためのユーザ・インタフェースを提供する。
スキャナ30は、原稿台にセットされた原稿を読み込み、原稿から生成した文書データをメモリ24やHDD34に保存する。プロッタ32は、要求に応じて、CPU22における画像処理の結果を印刷出力する。
なお、詳細な説明は割愛するが、上記クライアント端末14としては、パーソナル・コンピュータやワークステーションなどの汎用コンピュータ装置、および携帯電話やスマートフォン、タブレット端末、PDA(Personal Digital Assistance)などの携帯情報端末を挙げることができる。クライアント端末14は、ハードウェア構成として、例えば、CPU、メモリ、HDD、NIC、ディスプレイ装置、マウスやキーボードなどの入力装置を備える。
図3は、本実施形態による複合機20のソフトウェア構成およびハードウェア構成を示す図である。図3に示す複合機20は、種々のソフトウェア・コンポーネントが含まれるソフトウェア部42と、複合機起動部44と、種々のハードウェア・リソースが含まれるハードウェア部46とを含み構成される。
ハードウェア部46は、モノクロ・レーザプリンタ(B&WLP)56と、カラー・レーザプリンタ(ColorLP)58と、メディア・リンク・コントローラ(MLC)60と、スキャナやファクシミリなどのハードウェア・リソース62とを含む。ソフトウェア部42は、複合機としての機能を提供するための各種アプリケーション64〜70が含まれるアプリケーション層48と、プラットフォーム層50とを含む。
アプリケーション層48は、プリンタ、コピー、ファックスおよびスキャナなどの画像処理に関するユーザ・サービス固有の処理を行う。図3に示した実施形態では、アプリケーション層48は、プリンタ機能を提供するプリンタ・アプリケーション64と、コピー機能を提供するコピー・アプリケーション66と、スキャナ機能を提供するスキャナ・アプリケーション68と、詳細を後述するウェブ・アプリケーション70とを含む。
プラットフォーム層50は、OS54とともに、アプリケーション64〜70からの処理要求を解釈して、ハードウェア資源の獲得要求を発生するコントロール・サービス層52を含む。上記OSとしては、例えば、UNIX(登録商標)を採用することができるが、WINDOWS(登録商標)やその他のいかなるOSを採用することを妨げない。ソフトウェア部42の各ソフトウェア・コンポーネントは、UNIX(登録商標)などのOS上に、プロセス単位で並列的に起動される。
各種コントロール・サービスとしては、図3に示した実施形態では、ネットワーク制御サービス(NCS)72と、デリバリー制御サービス(DCS)74と、オペレーションパネル制御サービス(OCS)76と、ファクシミリ制御サービス(FCS)78と、エンジン制御サービス(ECS)80と、メモリ制御サービス(MCS)82と、ユーザ情報制御サービス(UCS)84と、システム制御サービス(SCS)86とが含まれる。
SCS86は、各種アプリケーションの管理、システム画面表示、LED表示、ハードウェア資源の管理および割込みアプリケーションの制御などを行う。UCS84は、ユーザ情報を管理する。MCS82は、画像メモリの取得および解放、画像データの圧縮・伸張等のメモリ制御などを行う。ECS80は、モノクロ・レーザプリンタ56、カラー・レーザプリンタ58、スキャナなどのエンジンを制御し、画像読取処理および画像形成処理を実行する。
FCS78は、GSTNインタフェースと接続し、GSTN網を使用したファクシミリ送受信、バックアップメモリで管理されている各種ファクシミリ・データの登録/引用、ファクシミリ読み取りなどを制御する。OCS76は、オペレータと本体制御との間のインタフェースとなるオペレーションパネルの制御を行う。DCS74は、HDDなどに蓄積された蓄積文書の配信を制御を行う。NCS72は、NICを制御して、複合機20をイーサネット(登録商標)と接続させ、ネットワークI/Oを必要とするアプリケーションに対して共通に利用可能なサービスを提供する。
プラットフォーム層50とアプリケーション層48との間には、アプリケーション・プログラム・インタフェース(API)88を有する。プラットフォーム層50は、API88に含まれる予め定義された関数により、各種アプリケーション64〜70からの処理要求を受信する。プラットフォーム層50とハードウェア部46との間には、エンジン・インタフェース90が設けられる。
複合機起動部44は、複合機20の電源投入時に最初に実行され、上述までのプラットフォーム層50およびアプリケーション層48のソフトウェア群(プロセス)に対応する制御プログラムを、図示しないROMやHDD34などから読出す。そして、複合機起動部44は、読み出した制御プログラムを、CPU22の実行記憶空間を提供するメモリ24上に展開し、各プロセスを起動することにより、上述した、および後述するソフトウェア手段および各処理を実現する。
複合機20は、上述のソフトウェア群により、ハードウェア・リソースを制御し、ユーザ指令や外部コンピュータからの入力に応答して、コピー、ファクシミリ、カラーコピーなど複合機としての機能をユーザに提供する。本実施形態による複合機20は、外部のクライアント端末に対し、上記アプリケーション64〜68や各種コントロール・サービス72〜86に関連した各種設定を行うためのウェブ・アプリケーション70を提供する。本実施形態によるウェブ・アプリケーション70は、後述するトークン処理により、CSRF脆弱性による不正リクエストに対処しながら、正当な管理者からのリモート設定を受け付ける。
なお、上述したアプリケーション、コントロール・サービスおよびハードウェアは、種々の組み合わせにより構成することができ、特定の用途、機種に対応して追加・削除することができる。また、図3に示した実施形態では、複合機としての各アプリケーションや制御サービスにおける共通部分を抽出して、プラットフォーム化した構成として参照したが、複合機20のハードウェア構成およびソフトフェアの構成は、特に限定されるものではない。
以下、本実施形態によるトークン処理を実装したシステム設定用ウェブ・アプリケーションについて、図4〜図10を参照しながら説明する。図4は、本実施形態による複合機20が実現するシステム設定用ウェブ・アプリケーションに関連したブロック図である。図4には、システム設定用ウェブ・アプリケーションに関連する構成として、HTTPデーモン102と、システム設定用ウェブ・アプリケーション110と、アプリケーション/コントロール・サービス126と、画面定義部128と、XML(eXtensible Markup Language)スキーマ130と、言語リソースXML132と、XSL(XML Stylesheet Language)134とが示されている。
HTTPデーモン102は、ウェブサーバ・プログラムである。HTTPデーモン102は、クライアント端末14からのリクエストに応答して、複合機20に実装されるシステム設定用ウェブ・アプリケーション110に要求を渡し、処理結果をレスポンスとしてクライアント端末14に送信する。
システム設定用ウェブ・アプリケーション110は、モジュールとして、ライブラリ群112と、ウェブページ・ハンドラ(以下、WPHと参照する。)118と、ウェブページ・ファンクション(以下、WPFと参照する。)122と、ウェブサービス・ファンクション124とを含み構成される。
図4中の画面定義部128は、システム設定用ウェブ・アプリケーションの各画面の入力データおよび出力データの構造を定義する画面定義データを保持する。本実施形態では、画面定義データにはトークン処理が適用される保護対象のアプリケーション画面であるか否かも定義される。WPF122およびWPH118は、画面定義部128が保持する画面の入出力データの定義に従って生成され、各画面のウェブページを実現するための処理関数を構成する。
図4に示すライブラリ群112は、WPF122およびWPH118から呼び出される各種ライブラリ114,116を含む。フレームワーク・ライブラリ114は、ウェブ・アプリケーションのフレームワークとして提供されるものであり、ウェブ・アプリケーション共通の処理APIを提供する。本実施形態によるトークン処理は、フレームワーク・ライブラリ114により提供される。
図4に示す複数のライブラリ116に含まれるウェブページ・ライブラリは、ウェブ・アプリケーション110とHTTPデーモン102との仲介を行っており、HTTPデーモン102が受け付けたクライアント端末14からのリクエストをウェブ・アプリケーション110に渡すとともに、ウェブ・アプリケーション110による処理結果をHTTPデーモン102に渡し、処理結果を含むレスポンスをクライアント端末14へ返信させる。図4に示す複数のライブラリ116に含まれるHTTPライブラリは、HTTPリクエストを解析するためのライブラリであり、XMLライブラリは、XMLを扱うライブラリである。
アプリケーション/コントロール・サービス126は、図3に示したアプリケーション層48の各アプリケーション64〜68およびコントロール・サービス層52の各コントロール・サービス72〜86を代表したものである。ウェブサービス・ファンクション124は、アプリケーション/コントロール・サービス126から各種情報を取り出して、WPF122に渡す。WPF122は、ウェブページの表示に関する画面固有の処理を実行するものであり、上記ウェブサービス・ファンクション124を介して取得した複合機20内部で管理される情報を用いて、ウェブページへ変換するために必要なデータ変換を行い、データをWPH118に渡す。WPF122は、また、レスポンスから必要なデータを選択して、ウェブサービス・ファンクション124を介してアプリケーション/コントロール・サービス126にデータを渡す。
WPH118は、ウェブページの操作を管理しており、入出力データのDOM(Document Object Model)ツリーを生成する。タイプライブラリ120は、文字または文字列の型を扱うライブラリである。上述したDOMツリーは、画面生成前のデータをツリー構造としたデータであり、このDOMツリーから、XMLスキーマ130を用いてタイプライブラリ120がXMLで記述し、XSLTプロセッサ104が言語リソースXML132およびXSL134を用いてHTMLデータに変換する。そして、HTTPデーモン102が、変換されたHTMLデータをクライアント端末14に送信する。
図5は、本実施形態による複合機20が実現する、システム設定用ウェブ・アプリケーションの詳細なブロックを示す。本システム設定用ウェブ・アプリケーション110おいて、保護対象となる処理は、少なくとも2段階のHTTPトランザクションを経て行われる。例えばある設定項目を登録しようとする場合、クライアント端末14と複合機20との間で、設定用フォームを要求する第1リクエストおよび設定用フォームを含む第1レスポンスからなる第1のトランザクションと、設定用フォームから設定内容の登録を要求する第2リクエストおよび登録処理結果を含む第2レスポンスからなる第2のトランザクションとが行われる。実装によっては、登録処理前に、設定用フォームから設定内容の確認を要求する第3リクエストおよび内容確認画面を含む第3レスポンスからなる第3のトランザクションなど、付加的なトランザクションが行われる場合もある。
図5には、上記設定用フォームを要求する第1リクエストおよび設定内容登録を要求する第2リクエストを処理するための処理関数118a,118b,122a,122bが示されている。wpf_SettingInputForm()122aと、SettingInputForm_handler()118aとは、上記第1リクエストに対応して、設定用フォーム画面にかかる処理を実行する設定フォーム処理関数Form()を構成する。同様に、wpf_SettingRegistration()122bと、SettingRegistraion_handler()118bとは、上記第2リクエストに対応して、設定内容登録処理を実行する登録処理関数Regist()を構成する。ここで、登録処理関数Regist()に対応する画面が、保護対象のアプリケーション画面であると定義されている。
また、本実施形態のシステム設定用ウェブ・アプリケーション110は、2階層のセッション管理を行っており、HTTPセッション管理部136と、認証セッション管理部138とを含む。HTTPセッション管理部136は、HTTPセッションIDの発行および管理を行い、クライアント端末14のウェブ・ブラウザ150と、複合機20のウェブ・アプリケーション110との間のネットワークを介したHTTPトランザクションのセッション管理を行っている。認証セッション管理部138は、ログイン認証をしたクライアント端末14を操作するユーザに対して与える認証セッションIDの発行および管理を行う。
上記認証セッションIDは、ログインしているユーザに紐付けられるものであり、複合機20とウェブ・ブラウザ150との両方で保持される。認証セッションIDは、本実施形態における認証されたユーザの認証識別情報である。これに対して上記HTTPセッションIDは、ログインの有無にかかわらず、クライアント(ユーザ)に紐付けられるものであり、同様に複合機20とウェブ・ブラウザ150の両方で保持される。HTTPセッションIDは、本実施形態におけるトランザクションの認証識別情報である。
ライブラリ群112のフレームワーク・ライブラリ114は、より詳細には、トークン生成部140と、トークン検証部142とを含む。トークン生成部140は、上記第1のリクエストへ応答する第1レスポンスに含めるために認証用トークンを生成する機能を有し、APIを介してこの機能をWPH118に提供する。トークン検証部142は、上記第2リクエストを受信した際に、該第2リクエストに含まれる認証用トークンの正誤を検証する機能を有し、APIを介してこの機能をWPH118およびWPF122に提供する。
本実施形態のトークン生成部140およびトークン検証部142は、上記認証セッション管理部138が管理する認証されたユーザの認証セッションIDを試みて、取得が成功した場合は、認証セッションIDをシードとして用いてトークンの値を計算し、これを用いて認証用トークンの生成および検証を行う。トークン生成部140およびトークン検証部142は、一方でユーザの認証セッションIDが取得されなかった場合には、取得可能な識別情報から段階的にトークン計算のためのシードの取得を試みる。
上記シードの候補となる取得可能な識別情報としては、上記HTTPセッションIDを用いることができ、その他、ウェブ・ブラウザ150のユーザエージェント情報を用いることができる。ユーザエージェント情報は、ユーザが使用しているブラウザの情報、OSの情報を含んでおり、上記認証セッションIDおよびHTTPセッションIDとは異なり、ブラウザ側で生成され複合機20に送られる情報である。
WPH118は、クライアント端末14からの全リクエスト(上記第1リクエストが含まれる。)に対し、フレームワーク・ライブラリ114のAPIを使用してトークン生成部140の機能を呼び出し、認証トークンを生成させて、認証用トークンのDOMツリーを生成する。認証用トークンのDOMツリーを元に、XSLで定義されたスタイルシートが適用されて、HTTPレスポンスが含むHTTPデータ内に認証用トークンが埋め込まれる。
WPH118は、上記第2リクエストなど保護対象として指定されたWPH118へのリクエスト時には、フレームワーク・ライブラリ114のAPIを使用してトークン検証部142の機能を呼び出し、トークンの正誤を判定する。WPH118は、正誤判定の結果に応じて処理を分岐させる。また、WPF122も、保護対象として指定されたWPH118へのリクエスト時には、フレームワーク・ライブラリ114のAPIを使用してトークン検証部142の機能を呼び出し、トークンの正誤を判定する。例えば同一URLに対して参照および設定処理が混在する場合には、WPF122側でトークンの正誤の判定を行うよう構成される。
以下、図6を参照しながら、クライアント端末14および複合機20間で実行される、トークン処理を含む設定処理について説明する。図6は、本実施形態におけるクライアント端末14−複合機20間で実行される設定処理フローを示すシーケンス図である。
図6に示す処理は、例えば管理者がウェブ・ブラウザを用いて設定用ウェブ・アプリケーションの設定用フォームのURLを指定したことに応答して開始し、ステップS100では、ウェブ・ブラウザ150は、複合機20に対し、設定フォーム画面を要求する設定フォーム・リクエストを送信する。複合機20は、設定フォーム・リクエストを受信すると、設定フォーム処理関数Form()を起動する。設定フォーム処理関数Form()は、図5に図示したwpf_SettingInputForm()122aと、SettingInputForm_handler()118aとから構成され処理関数である。
ステップS101では、設定フォーム処理関数Form()は、フレームワーク・ライブラリ114のAPIを使用してトークン生成処理を実行する。ステップS102では、設定フォーム処理関数Form()は、生成されたトークン値を設定用フォームに埋め込んで、認証用トークンが含まれる設定用フォームのHTMLデータをレスポンスとして、ウェブ・ブラウザ150に送信する。上記設定用フォームのHTMLデータは、受信したクライアント端末14のウェブ・ブラウザ150に対し、埋め込まれた認証用トークンを含めて設定登録リクエストを送信するよう指令するコードを含む。ウェブ・ブラウザ150は、受信したレスポンスに含まれるHTMLから設定フォーム画面200を作成し、ディスプレイ上に表示する。
図7(A)は、クライアント端末14のウェブ・ブラウザ150上に表示される設定フォーム画面200を例示する図である。図7(A)に示すように、設定フォーム画面200は、設定項目を選択するためのプルダウンメニュー202,204と、設定をキャンセルするための戻るボタン206と、設定ボタン208とを含む。設定ボタン208には、埋め込まれた認証用トークンを含めて設定登録リクエストを送信するよう指令するコードが関連付けられており、設定ボタン208のクリック・イベントに応答して、設定登録要求が送信されるよう構成されている。
再び図6を参照すると、管理者が設定フォーム画面200において設定内容を入力し、設定ボタン208をクリックしたことに応答して、ステップS103では、ウェブ・ブラウザ150は、上記コードに従って、複合機20に対し、認証トークンとともに設定登録リクエストを送信する。複合機20は、設定登録リクエストを受信すると、登録処理関数Regist()を起動する。登録処理関数Regist()は、図5に図示したwpf_SettingRegistration()122bと、SettingRegistration_handler()118bとから構成される処理関数である。
ステップS104では、登録処理関数Regist()は、フレームワーク・ライブラリ114のAPIを使用して認証トークン検証処理を実行する。ここで、フレームワーク・ライブラリ114からリクエストに含まれる認証用トークンが正しい旨の回答を受けた場合は、登録処理関数Regist()は、渡された設定内容を反映させる処理を実行する。この場合、ステップS105では、登録処理関数Regist()は、設定内容が成功裡に反映されたことを表す設定成功画面のHTMLデータをレスポンスとしてウェブ・ブラウザ150に送信する。ウェブ・ブラウザ150は、レスポンスを受信して、受信したレスポンスに含まれるHTMLから設定成功画面210を作成し、表示する。
図7(B)は、クライアント端末14のウェブ・ブラウザ150上に表示される設定成功画面210を例示する図である。図7(B)に示すように、設定成功画面210は、設定内容の表示212と、設定フォーム前の画面に戻るための戻るボタン214とを含む。戻るボタン214には、例えば、システム設定のトップ画面に戻るリンクが埋め込まれる。
再び図6を参照すると、登録処理関数Regist()は、一方で、フレームワーク・ライブラリ114からリクエストに含まれる認証用トークンが不正である旨の回答を受けた場合は、渡された設定内容の反映処理をキャンセルする。この場合、ステップS106では、登録処理関数Regist()は、設定内容の反映が失敗した旨を表す設定失敗画面のHTMLデータをレスポンスとしてウェブ・ブラウザ150に送信する。ウェブ・ブラウザ150は、受信したレスポンスに含まれるHTMLから設定失敗画面220を作成し、表示する。
図7(C)は、クライアント端末14のウェブ・ブラウザ150上に表示される設定失敗画面220を例示する図である。図7(C)に示すように、設定失敗画面220は、設定が失敗した旨の表示222と、設定フォーム前の画面に戻るための戻るボタン224とを含む。
以下、図8、並びに図9および図10を参照しながら、複合機20が実行するトークン処理について詳細を説明する。図8は、本実施形態における複合機20において、フレームワーク・ライブラリ114のトークン生成部140が実行する、トークン生成処理を示すフローチャートである。図8に示す処理は、WPH118からAPIを介してトークン生成部140が呼び出されたことに応答して、ステップS200から開始される。
ステップS201では、トークン生成部140は、WPH118から渡された引数をチェックする。ステップS201で、引数が正しいと判定された場合(正常)は、ステップS202へ処理が進められる。ステップS202では、トークン生成部140は、ライブラリ116のHTTPライブラリを用いて、認証セッションIDの取得を試みる。ステップS203では、トークン生成部140は、認証セッションIDの取得が成功したか否かを判定する。認証セッションIDは、システム設定用ウェブ・アプリケーション110にユーザが正常にログインし、ログイン状態が維持されている場合には取得に成功するが、未ログイン状態では取得に失敗する。
ステップS203で、認証セッションIDの取得が成功したと判定された場合(YES)は、ステップS207へ直接処理が進められる。一方、ステップS203で、認証セッションIDの取得が失敗したと判定された場合(NO)には、ステップS204へ処理が分岐される。ステップS204では、トークン生成部140は、ライブラリ116のHTTPライブラリを用いて、HTTPセッションIDの取得を試みる。ステップS205では、トークン生成部140は、HTTPセッションIDの取得が成功したか否かを判定する。HTTPセッションIDは、HTTPセッションIDの有効期限経過前であれば、ログイン済であるか否かに関わらず取得されるが、全くの初回アクセスであったり、HTTPセッションIDの有効期限が過ぎていたりした場合は取得に失敗する。
ステップS205で、HTTPセッションIDの取得が成功したと判定された場合(YES)には、ステップS207へ直接処理が進められる。一方、ステップS205で、認証セッションIDに引き続いてHTTPセッションIDの取得も失敗したと判定された場合(NO)には、ステップS206へ処理が分岐される。ステップS206では、トークン生成部140は、ウェブ・ブラウザ150のユーザエージェント情報を取得し、User−Agentの”/”直後の所定文字数(例えば2)の文字列をデフォルト値とし、ステップS207へ処理を進める。
ステップS207では、上述までに取得された認証セッションID、HTTPセッションIDまたはデフォルト値をトークン計算のための第1シードとして決定する。ステップS208では、トークン生成部140は、トークン計算のため第2シードとして、複合機20内部で管理され、通常外部から参照ができない内部管理値を取得する。内部管理値としては、特に限定されるものではないが、複合機20で動作しているプログラムのプロセスIDなどを用いることができる。この内部管理値は、特に限定されるものではないが、当該システム設定用ウェブ・アプリケーション110が実行している間、不変である値を用いることが好ましい。
ステップS209では、トークン生成部140は、上記取得された第1シードと第2シードとを用いて、認証用トークンの値を計算する。トークン値の計算は、簡便には、第1シードと第2シードを乗算した値を用いることができる。トークン値の計算は、特に限定されるものではなく、その他、適当なハッシュ関数を用いて計算することができ、第1シードおよび第2シードをハッシュ関数に入力し、計算された出力値を認証用トークンとして用いることができる。
ステップS210では、トークン生成部140は、認証用トークンの生成が成功したか否かを判定する。ステップS210で、認証用トークンの生成が成功したと判定された場合(YES)は、ステップS211で、トークン生成部140は、要求元のWPH118またはWPF122に認証トークンを出力し、ステップS213で本処理を終了する。一方、ステップS201で、引数が不正であると判定された場合(不正)、ステップS210で、認証用トークンの生成が失敗した場合(NO)は、ステップS212で、要求元のWPH118にエラーを出力し、ステップS213で本処理を終了する。
図9および図10は、本実施形態における複合機20において、フレームワーク・ライブラリ114のトークン検証部142が実行する、トークン検証処理を示すフローチャートである。なお、図9および図10は、ポイントAおよびポイントBを経由して連結されていることに留意されたい。図9および図10に示す処理は、WPH118またはWPF122からAPIを介してトークン検証部142が呼び出されたことに応答して、ステップS300から開始される。
ステップS301では、トークン検証部142は、WPH118またはWPF122から渡された引数をチェックする。ステップS301で、引数が正しいと判定された場合(正常)は、ステップS302へ処理が進められる。ステップS302では、トークン検証部142は、ライブラリ116のウェブページ・ライブラリを用いて、HTTPリクエストに含まれるリクエスト情報の取得を試みる。ステップS303では、トークン検証部142は、リクエスト情報の取得が成功したか否かを判定する。ステップS303で、リクエスト情報の取得が成功したと判定された場合(YES)は、ステップS304へ処理が進められる。
ステップS304では、トークン検証部142は、ライブラリ116のHTTPライブラリを用いて、リクエスト情報からHTTPリクエストに埋め込まれた認証用トークンの取得を試みる。ステップS305では、トークン検証部142は、埋め込まれた認証用トークンの取得が成功したか否かを判定する。ステップS305で、埋め込まれた認証用トークンの取得が成功したと判定された場合(YES)は、ステップS306へ処理が進められる。
ステップS306では、トークン検証部142は、ライブラリ116のHTTPライブラリを用いて、認証セッションIDの取得を試みる。ステップS307では、トークン検証部142は、認証セッションIDの取得が成功したか否かを判定する。ステップS307で、認証セッションIDの取得が成功したと判定された場合(YES)は、ステップS311へ直接処理が進められる。一方、ステップS307で、認証セッションIDの取得が失敗したと判定された場合(NO)には、ステップS308へ処理が分岐される。
ステップS308では、トークン検証部142は、ライブラリ116のHTTPライブラリを用いて、HTTPセッションIDの取得を試みる。ステップS309では、トークン検証部142は、HTTPセッションIDの取得が成功したか否かを判定する。ステップS309で、HTTPセッションIDの取得が成功したと判定された場合(YES)には、ステップS311へ直接処理が進められる。一方、ステップS309で、HTTPセッションIDの取得も失敗したと判定された場合(NO)には、ステップS310へ処理が分岐される。ステップS310では、トークン検証部142は、ウェブ・ブラウザ150のユーザエージェント情報からデフォルト値を取得し、ステップS311へ処理を進める。
ステップS311では、トークン検証部142は、上述までに取得された認証セッションID、HTTPセッションIDまたはデフォルト値を第1シードとして決定する。ステップS312では、トークン検証部142は、第2シードとして内部管理値を取得する。ステップS313では、トークン検証部142は、上記取得された第1シードと第2シードとを用いて、上述したトークン生成部140で用いたものと同一の関数を用いて検証用トークンの値を計算する。
ステップS314では、トークン検証部142は、検証用トークンの生成が成功したか否かを判定する。ステップS314で、検証用トークンの生成が成功したと判定された場合(YES)は、ポイントAを経由して、図10に示すステップS315へ処理を進める。ステップS315では、トークン検証部142は、ステップS304で取得された、埋め込まれた認証用トークンと、ステップS313で計算された検証用トークンの値とを比較する。ステップS316では、トークン検証部142は、埋め込まれた認証用トークンと、計算された検証用トークンの値とが一致しているか否かを判定する。ステップS316で、一致すると判定された場合(YES)は、ステップS317へ処理が進められる。ステップS317では、トークン検証部142は、戻り値を「TRUE」に設定し、ステップS320で本処理を終了させる。戻り値「TRUE」は、リクエストに含まれる認証用トークンが正しい旨を表している。
一方、ステップS316で、一致しないと判定された場合(NO)は、ステップS318へ分岐される。ステップS318では、トークン検証部142は、デバッグ出力をし、ステップS319で、戻り値を「FALSE」に設定し、ステップS320で本処理を終了させる。戻り値「FALSE」は、リクエストに含まれる認証用トークンが誤っている旨を表す。
ステップS301で引数が不正であると判定された場合(不正)、ステップS303でリクエスト情報の取得が失敗した場合(NO)、ステップS305で認証用トークンの取得に失敗した場合(NO)、ステップS314で検証用トークンの再計算が失敗した場合(NO)は、ポイントBを経由して、同様にステップS318へ分岐させられる。ステップS318では、トークン検証部142は、デバッグ出力をし、ステップS319で、戻り値を「FALSE」に設定し、ステップS320で本処理を終了させる。
図11は、管理者ユーザにより正規に設定が要求された場合の動作を説明する図である。これに対し図12は、不正に設定が要求された場合(CSRF攻撃を受けた場合)の動作を説明する図である。なお、図11および図12の両方の場合において、クライアント端末14は、正規の管理者ユーザとして複合機20のシステム設定用ウェブ・アプリケーション110にログインしているものとする。つまり、HTTPセッションIDおよび認証セッションIDの両方が、ウェブ・ブラウザ150と複合機20との間で共有されているものとする。
図11を参照して、正規の設定が要求される場合の動作について説明する。正規の設定が要求される場合は、まずステップS401で、クライアント端末14は、第1リクエストとして、CookieにHTTPセッションID(sesid=15385963)を含めて、所定のURLを指定するGETリクエストを複合機20に送信する。ここではGETリクエストとしているが、POSTリクエストでもよい。これを受けて、複合機20は、トークン生成部140を用いて認証用トークン(sesidSTR=a3e53d5aba)を生成し、適宜有効期限を設定する。ステップS402では、複合機20は、設定フォーム画面に認証用トークンを埋め込んで、第1レスポンスを返信する。
クライアント端末14は、第1レスポンスを受信すると、設定フォーム画面を表示する。ステップS403では、クライアント端末14は、第2リクエストとして、設定フォーム画面を介して設定された設定内容とともに第1レスポンスに含まれる認証用トークンを付して、所定のURLを指定するPOSTリクエストを複合機20に送信する。これを受けて、複合機20は、トークン検証部142を用いて認証用トークン(sesidSTR=a3e53d5aba)の検証を行う。ここでは、HTTPセッションIDが一致し、埋め込まれた認証用トークンと、再計算された検証用トークとも一致するので、リクエストの正当性が確認され、設定内容の登録処理を実行する。ステップS404では、複合機20は、設定変更が成功裡に完了した旨を第2レスポンスとして返信する。
図12を参照して、不正に設定が要求される場合、すなわちCSRF攻撃を受けた場合の動作について説明する。CSRFは、悪意のあるページを閲覧した際に、Javascript(登録商標)等が実行されたりして、ブラウザが複合機のウェブ・ユーザインタフェースへ向けて、悪意のあるパラメータをポストし、これが正規のHTTPセッションとして受理されてしまうという脆弱性である。
不正に設定が要求される場合として、ここでは、ステップS501で、クライアント端末14が悪意のあるウェブサーバ18にリクエストを送信し、ステップS502で、悪意のあるウェブページを含むレスポンスを受信したケースを考える。この悪意のあるウェブページには、複合機20のシステム設定用アプリケーション110のURLを指定し、悪意のあるパラメータをポストする悪意のあるコードが含まれる。図12中に例示する悪意のあるウェブページ230では、戻るボタン232がクリックされることにより、複合機20に悪意のあるパラメータをポストするコードが埋め込まれおり、このコードには、何らかのトークンが埋め込まれる場合もある。
ステップS503では、クライアント端末14は、上記悪意のあるコードの実行結果として、複合機20に対し、第2リクエストとして、悪意のある設定内容とともにPOSTリクエストを複合機20に送信する。上記悪意のウェブページは、クライアント端末14のウェブ・ブラウザ150で開かれ、POSTリクエストは、クライアント端末14のウェブ・ブラウザ150から行われるので、リクエスト自体は、クライアント端末14からのHTTPセッションとして受理される。
これを受けて、複合機20は、トークン検証部142を用いて認証用トークンの検証を行うが、この場合、HTTPセッションIDが一致するものの、付されたトークン値と、認証セッションIDなどを用いて計算された検証用トークとが一致しないため、リクエストの正当性が否定され、設定内容をキャンセルする。ステップS504では、複合機20は、設定変更が失敗した旨をレスポンスとして返信する。
図13は、本実施形態のトークン処理によるメモリ効率化を説明する図である。従来技術のトークン処理では、HTTPセッションIDおよび認証セッションIDに加え、これらの関連付けて、リクエスト検証のためトークン値をメモリ上に保持しなければならなかった。これに対して、本実施形態のトークン処理では、認証セッションIDおよび内部管理値をシードとしてリクエスト毎に検証用トークン値が計算されて比較が行われるため、別途トークンをメモリ上に管理しておく必要がなく、高いメモリ効率が達成される。
以上説明した実施形態によれば、リクエストを検証するための検証用トークンが、アプリケーションの認証セッションIDを用いて再計算されるため、ユーザ毎に検証用トークンをメモリ上に保持する必要がない。このため、別途トークンを保持する実装に比較してメモリ効率を向上させることができる。また、トークンの計算は、認証セッションIDに加えて内部管理値を用いて行われるため、認証セッションIDが漏洩してしまうことも防止される。
また、上記実施形態では、ログイン前に表示されるアプリケーション画面、ログイン後に表示されるアプリケーション画面、また保護対象として明示的に定義されたアプリケーション画面など、各種画面に応じて用いる認証情報を変更することで、トークンの生成方法を変更することもできる。また、認証セッションIDが取得できない場合の代替手段として、HTTPセッションIDなど他の認証情報を利用したり、ユーザエージェント情報を利用したりすることができるので、メモリ効率を落とさずに、全てのユーザに対して脆弱性対応が可能となる。
なお、上述までの実施形態では、複合機20が備えるシステム設定用ウェブ・プリケーションに適用した場合を一例として説明してきた。しかしながら、上述したトークン処理が適用可能な構成は、上記複合機が備えるシステム設定用ウェブ・アプリケーションに限定されるものではない。例えば他の実施形態では、図14に示すように、多数のクライアント端末304a〜304dに対して、オンライン・ショッピングなどのウェブ・アプリケーションを提供するウェブサーバ310として、情報処理装置を構成することもできる。
図15は、ウェブサーバ310として構成した他の実施形態によるウェブサーバのブロック図を示す。図15に示すように、ウェブサーバ310は、機能構成として、HTTPデーモン402と、ウェブ・アプリケーション410と、画面定義部428と、XMLスキーマ430と、言語リソースXML432と、XSL434とを含む。この実施形態では、ウェブサーバ310は、図3に示すアプリケーション/コントロール・サービス126に代えて、ウェブ・アプリケーション上で提供される各種データ426を備える。トークン生成部およびトークン検証部を含む他の構成については、上述した複合機20による実施形態と同様とすることができる。
以上説明したように、上述までの実施形態によれば、本発明は、ユーザ毎にリクエスト検証のための認証用トークンをメモリ上に保管しておく必要がなく、ユーザに対し認証情報の入力を求める手間をかけず、リクエストの正当性の検証が可能な、情報処理装置、情報処理システムおよびプログラムを提供することができる。
なお、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
10,300…ネットワーク環境、12,302…ネットワーク、14,304…クライアント端末、18…悪意のあるウェブサーバ、20…複合機、22…CPU、24…メモリ、26…NIC、28…オペレーション・パネル、30…スキャナ、32…プロッタ、34…HDD、36…内部バス、42…ソフトウェア部、44…複合機起動部、46…ハードウェア部、48…アプリケーション層、50…プラットフォーム層、52…コントロール・サービス層、54…OS、56…モノクロ・レーザプリンタ、58…カラー・レーザプリンタ、60…MLC、62…ハードウェア・リソース、64…プリンタ・アプリケーション、66…コピー・アプリケーション、68…スキャナ・アプリケーション、70…ウェブ・アプリケーション、72…NCS、74…DCS、76…OCS、78…FCS、80…ECS、82…MCS、84…UCS、86…SCS、88…API、90…エンジン・インタフェース、102,402…HTTPデーモン、104,404…XSLTプロセッサ、110…システム設定用ウェブ・アプリケーション、112,412…ライブラリ群、114,414…フレームワーク・ライブラリ、116,416…ライブラリ、118,418…WPH、120,420…タイプライブラリ、122,422…WPF、124,424…ウェブサービス・ファンクション、126,426…アプリケーション/コントロール・サービス、128,428…画面定義部、130,430…XMLスキーマ、132,432…言語リソースXML、134,434…XSL、136…HTTPセッション管理部、138…認証セッション管理部、140…トークン生成部、142…トークン検証部、150…ウェブブラウザ、200…フォーム画面、202…プルダウンメニュー、204…プルダウンメニュー、206…戻るボタン、208…設定ボタン、210…設定成功画面、212…表示、214…戻るボタン、220…設定失敗画面、222…表示、224…戻るボタン、230…悪意のあるウェブページ、232…戻るボタン、310…ウェブサーバ、410…ウェブ・アプリケーション、426…各種データ
特開2010−113566号公報

Claims (9)

  1. ネットワークに接続される情報処理装置であって、
    前記ネットワークを介したリクエストおよびレスポンスを含むトランザクションを管理する第1セッション管理手段と、
    認証されたユーザの認証識別情報を管理する第2セッション管理手段と、
    第1のリクエストに応答して、要求元ユーザの認証識別情報を取得し、内部で管理される管理値を用いて、第1レスポンスに含めるトークン値を生成するトークン生成手段と、
    第2のリクエストに応答して、要求元ユーザの認証識別情報を取得し、前記管理値を用いてトークン値を計算するトークン計算手段と、
    前記第2のリクエストに応答して、前記トークン計算手段によって計算されたトークン値と、前記第2のリクエストに含まれるトークン値とを比較して、正誤を検証するトークン検証手段と
    を含む、情報処理装置。
  2. 前記トークン生成手段および前記トークン計算手段は、それぞれ、要求元ユーザの認証識別情報が取得されなかった場合に、取得可能な識別情報から段階的にトークン計算のための第1シードの取得を試み、取得された第1シードと、第2シードとして前記管理値とを用いて、トークン値を計算する、請求項1に記載の情報処理装置。
  3. 前記トークン生成手段および前記トークン計算手段は、それぞれ、要求元ユーザの認証識別情報が取得されなかった場合に、トランザクションの認証識別情報を取得し、前記要求元ユーザの認証識別情報に代えて前記トランザクションの認証識別情報を第1シードとし、前記管理値を第2シードとして、トークン値を計算する、請求項1または2に記載の情報処理装置。
  4. 前記トークン生成手段および前記トークン計算手段は、それぞれ、要求元ユーザの認証識別情報が取得されず、トランザクションの認証識別情報が取得されなかった場合に、ユーザエージェント情報を取得し、前記ユーザエージェント情報を前記第1シードとしてトークン値を計算する、請求項3に記載の情報処理装置。
  5. 前記トークン生成手段によるトークン値の生成と、前記トークン検証手段によるトークン値の検証とを適用する保護対象のアプリケーション画面が定義されている、請求項1〜4のいずれか1項に記載の情報処理装置。
  6. 前記第1レスポンスは、受信したクライアントに対し、該第1レスポンスが含むトークン値を含めて第2リクエストを送信するよう指令するデータを含む、請求項1〜5のいずれか1項に記載の情報処理装置。
  7. 前記第1セッション管理手段は、HTTPリクエストおよびHTTPレスポンスを含むHTTPトランザクションを管理し、前記第2セッション管理手段は、ウェブ・アプリケーションでのログイン認証されたユーザのセッションを管理し、前記トークン値は、ハッシュ関数を用いて算出される、請求項1〜6のいずれか1項に記載の情報処理装置。
  8. ネットワークを介して接続されるサーバとクライアントとを含む情報処理システムであって、前記サーバは、
    前記ネットワークを介した前記クライアントとのリクエストおよびレスポンスを含むトランザクションを管理する第1セッション管理手段と、
    認証されたユーザの認証識別情報を管理する第2セッション管理手段と、
    第1のリクエストに応答して、前記クライアントのユーザの認証識別情報を取得し、内部で管理される管理値を用いて、第1レスポンスに含めるトークン値を生成するトークン生成手段と、
    第2のリクエストに応答して、前記クライアントのユーザの認証識別情報を取得し、前記管理値を用いてトークン値を計算するトークン計算手段と、
    前記第2のリクエストに応答して、前記トークン計算手段によって計算されたトークン値と、前記第2のリクエストに含まれるトークン値とを比較して、正誤を検証するトークン検証手段と
    を含み、前記クライアントは、前記サーバから前記第1レスポンスを受信し、前記第1レスポンスが含むトークン値を付して第2リクエストを前記サーバに送信するブラウザ手段を含む、情報処理システム。
  9. ネットワークに接続される情報処理装置であって、前記ネットワークを介したリクエストおよびレスポンスを含むトランザクションを管理する第1セッション管理手段、認証されたユーザの認証識別情報を管理する第2セッション管理手段、第1のリクエストに応答して、要求元ユーザの認証識別情報を取得し、内部で管理される管理値を用いて、第1レスポンスに含めるトークン値を生成するトークン生成手段第2のリクエストに応答して、要求元ユーザの認証識別情報を取得し、前記管理値を用いてトークン値を計算するトークン計算手段、および前記第2のリクエストに応答して、前記トークン計算手段によって計算されたトークン値と、前記第2のリクエストに含まれるトークン値とを比較して、正誤を検証するトークン検証手段を含む、当該情報処理装置の各手段として、コンピュータを機能させるためのプログラム
JP2011285195A 2011-12-27 2011-12-27 情報処理装置、情報処理システムおよびプログラム Active JP5929175B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011285195A JP5929175B2 (ja) 2011-12-27 2011-12-27 情報処理装置、情報処理システムおよびプログラム
US13/710,745 US8984608B2 (en) 2011-12-27 2012-12-11 Image processing apparatus, image processing system, and computer-readable storage medium for generating a token value
EP12197642.7A EP2611102B1 (en) 2011-12-27 2012-12-18 Providing a web application with measures against vulnerabilities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011285195A JP5929175B2 (ja) 2011-12-27 2011-12-27 情報処理装置、情報処理システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2013134655A JP2013134655A (ja) 2013-07-08
JP5929175B2 true JP5929175B2 (ja) 2016-06-01

Family

ID=47602968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011285195A Active JP5929175B2 (ja) 2011-12-27 2011-12-27 情報処理装置、情報処理システムおよびプログラム

Country Status (3)

Country Link
US (1) US8984608B2 (ja)
EP (1) EP2611102B1 (ja)
JP (1) JP5929175B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886938B1 (en) * 2012-12-31 2014-11-11 Intuit Inc. System and method for cross-site reference forgery attack prevention using double validated tokens with time sensitivity
US9740779B2 (en) * 2013-10-01 2017-08-22 AsterionDB, Inc. System, method and program instructions for tying together a media URL and multimedia in a database
CN105450587B (zh) 2014-07-28 2018-08-24 国际商业机器公司 用于保护网络通信安全的方法和装置
JP6418966B2 (ja) * 2015-01-29 2018-11-07 キヤノン株式会社 画像形成システム、画像形成装置、該システムの制御方法、及びプログラム
US10243924B2 (en) 2015-08-18 2019-03-26 Ricoh Company, Ltd. Service providing system, service providing method, and information processing apparatus
US9866592B2 (en) 2015-09-28 2018-01-09 BlueTalon, Inc. Policy enforcement system
US9742761B2 (en) * 2015-11-10 2017-08-22 International Business Machines Corporation Dynamic authentication for a computing system
US9871825B2 (en) 2015-12-10 2018-01-16 BlueTalon, Inc. Policy enforcement for compute nodes
US20170262279A1 (en) * 2016-03-12 2017-09-14 Wipro Limited Methods and systems for developing user customizable web application frameworks
US10162958B2 (en) 2016-03-15 2018-12-25 Ricoh Company, Ltd. Information processing system, information processing method, and non-transitory computer program product
CN106572106B (zh) * 2016-11-07 2020-02-21 福建星海通信科技有限公司 一种tbox终端和tsp平台之间报文传输的方法
US10341864B2 (en) 2017-03-03 2019-07-02 Verizon Patent And Licensing Inc. Network-based device registration for content distribution platforms
US10924509B2 (en) * 2017-09-29 2021-02-16 Salesforce.Com, Inc. Cross-site request forgery protection
US11245679B1 (en) * 2017-11-15 2022-02-08 Veritas Technologies Llc Securing external access to runtime services in appliances
US20200279235A1 (en) * 2019-03-01 2020-09-03 American Express Travel Related Services Company, Inc. Payment transfer processing system
CN111832015A (zh) * 2019-04-18 2020-10-27 北京京东尚科信息技术有限公司 异常请求识别方法、装置、系统、介质及电子设备
US11363070B2 (en) * 2020-01-05 2022-06-14 International Business Machines Corporation Preventing cross-site request forgery
JP7619081B2 (ja) * 2021-02-25 2025-01-22 株式会社リコー 電子機器、ライブラリ、処理方法
CN113297563B (zh) * 2021-06-18 2023-01-24 海光信息技术股份有限公司 访问片上系统特权资源的方法、装置及片上系统
US20240095336A1 (en) * 2022-09-16 2024-03-21 Truist Bank Generating token value for enabling a non-application channel to perform operation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6877095B1 (en) * 2000-03-09 2005-04-05 Microsoft Corporation Session-state manager
US6978364B1 (en) * 2000-04-12 2005-12-20 Microsoft Corporation VPN enrollment protocol gateway
US20030115480A1 (en) * 2001-12-17 2003-06-19 Worldcom, Inc. System, method and apparatus that employ virtual private networks to resist IP QoS denial of service attacks
US7373347B2 (en) 2002-07-22 2008-05-13 Ricoh Company, Ltd. Information processing apparatus and information processing method
JP2004103008A (ja) 2002-08-22 2004-04-02 Ricoh Co Ltd 情報処理装置及び情報処理方法
US7263614B2 (en) * 2002-12-31 2007-08-28 Aol Llc Implicit access for communications pathway
JP4873852B2 (ja) * 2004-02-26 2012-02-08 株式会社リコー 第一の通信装置、情報処理装置、情報処理プログラム、記録媒体
TWI271076B (en) * 2004-07-02 2007-01-11 Icp Electronics Inc Security gateway with SSL protection and method for the same
JP4667908B2 (ja) * 2005-02-28 2011-04-13 三菱電機株式会社 クライアント端末及びシングルサインオンシステム
US8424073B2 (en) * 2006-11-13 2013-04-16 Microsoft Corporation Refreshing a page validation token
US8533795B2 (en) * 2007-03-19 2013-09-10 Ricoh Company, Ltd. Information processing apparatus, information processing method, information processing program, and computer-readable medium
US7992198B2 (en) * 2007-04-13 2011-08-02 Microsoft Corporation Unified authentication for web method platforms
JP2010113566A (ja) 2008-11-07 2010-05-20 Fujitsu Ltd 情報処理装置、アクセス制御方法、及びプログラム
KR20110064697A (ko) * 2009-12-08 2011-06-15 삼성전자주식회사 정보 업데이트 방법 및 그 장치
US8438649B2 (en) * 2010-04-16 2013-05-07 Success Factors, Inc. Streaming insertion of tokens into content to protect against CSRF
US8756665B2 (en) * 2011-07-08 2014-06-17 International Business Machines Corporation Authenticating a rich client from within an existing browser session

Also Published As

Publication number Publication date
US8984608B2 (en) 2015-03-17
EP2611102B1 (en) 2018-11-28
US20130167214A1 (en) 2013-06-27
JP2013134655A (ja) 2013-07-08
EP2611102A1 (en) 2013-07-03

Similar Documents

Publication Publication Date Title
JP5929175B2 (ja) 情報処理装置、情報処理システムおよびプログラム
JP6098169B2 (ja) 情報処理システム、情報処理装置、プログラム及び認証方法
KR101319636B1 (ko) 디지털 id 제공 방법, 시스템, 및 컴퓨터 판독가능 매체
JP5079383B2 (ja) ロック印刷プロセスを有する印刷装置
US8661506B2 (en) Information processing system, information processing apparatus and information processing method
US8127341B2 (en) Information processing apparatus, information processing method, peripheral apparatus, and authority control system
US20020112162A1 (en) Authentication and verification of Web page content
US8797563B2 (en) Approach for printing policy-enabled electronic documents using locked printing
US10750050B2 (en) IMAGE PROCESSING APPARATUS, METHOD FOR CONTROLLING IMAGE Processing apparatus, program storage medium, system, and method for controlling system for use in biometric authentication
US9311031B2 (en) Approach for printing policy-enabled electronic documents using locked printing and a shared memory data structure
JP2008538241A (ja) 複数のネットワーク・アプリケーションによって文書を管理するシステム及び方法
US20160232335A1 (en) Mechanism for enforcing user-specific and device-specific security constraints in an isolated execution environment on a device
US20100091313A1 (en) System, method and apparatus for processing an embedded barcode
US8701158B2 (en) Information processing system, apparatus, method, and program storage medium
JP2017033339A (ja) サービス提供システム、情報処理装置、プログラム及びサービス利用情報作成方法
US8479006B2 (en) Digitally signing documents using identity context information
JP2008193664A (ja) 多機能プリンタなどの画像処理装置における組み込み機能と外部機能のシームレスな切り換え、機能の除去および追加、画像のサムネイル/プレビューならびにユーザー認証のためのシステムおよび方法
JP6376154B2 (ja) 画像処理システム、情報処理装置、画像処理装置及びプログラム
US20040194108A1 (en) Apparatus and method for securely realizing cooperative processing
US10713098B2 (en) Information processing apparatus and cookie information management method
US20180039771A1 (en) Method of and server for authorizing execution of an application on an electronic device
US20230388311A1 (en) Network system and control method thereof
US20080086639A1 (en) Processor with encryption function, encryption device, encryption processing method, and computer readable medium
JP4682385B2 (ja) コンテンツ管理システム、コンテンツ管理方法およびプログラム
JP4701651B2 (ja) プログラム、サーバ装置、及び制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151028

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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R151 Written notification of patent or utility model registration

Ref document number: 5929175

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151