WO2015122009A1 - サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 - Google Patents
サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 Download PDFInfo
- Publication number
- WO2015122009A1 WO2015122009A1 PCT/JP2014/053618 JP2014053618W WO2015122009A1 WO 2015122009 A1 WO2015122009 A1 WO 2015122009A1 JP 2014053618 W JP2014053618 W JP 2014053618W WO 2015122009 A1 WO2015122009 A1 WO 2015122009A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- cookie
- authentication
- service
- request
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
Abstract
サービスを効率的に提供するサービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置を提供する。情報処理装置が、クライアント装置から受信したセッションの認証要求に応答して、認証に成功した場合に、前記セッションに関連するデータを生成するとともに当該データを含む前記認証に関するクッキーを生成し、前記クッキーと前記データとを前記クライアント装置に送信する送信工程と、前記情報処理装置が、前記クライアント装置から、前記データがクエリパラメータとして付与されるサービス要求と前記クッキーとを受信する受信工程と、前記情報処理装置が、前記クッキーに含まれる前記データと、前記クエリパラメータとして付与される前記データとが一致する場合に、前記サービス要求のサービスを前記クライアント装置に提供する提供工程と、を有する。
Description
本発明は、サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置に関する。
SaaS(Software as a Service)は、ユーザにアプリケーション(アプリとも称する)などのソフトウエアの機能を提供するサービスである。SaaS上でのサービスに、利用者データ記憶部の利用サービスを提供することで、個人や法人が利用する様々なアプリのデータを集約することができる。利用者データ記憶部はアクセス制限機能を有し、例えば、認証Cookieや認証トークンに基づいたアクセス制御が行われる。
認証Cookieを利用する場合、サーバは、クライアントによるユーザ認証に成功した場合に認証Cookieをクライアントに送信する。クライアントは、利用者データ記憶部へのアクセスを示すサービス要求に認証Cookieを付与してサーバに送信する。サーバは認証Cookieに基づいて、利用者データ記憶部へのアクセス許可を行う。
しかし、特定のプログラムについて認証が成功した場合に、サーバが認証Cookieを発行し、発行した認証Cookieと同じ認証Cookieがクライアントから取得できたか否かでそのクライアントのアクセス可否を判定すると、そのクライアント上で同一のWebブラウザを利用する他のプログラムも発行された認証Cookieを利用し、サーバの利用者データ記憶部へ不正にアクセスできてしまうという問題がある。
1つの側面は、本発明は、不正アクセスの抑制を図ったサービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置を提供する。
第1の側面によれば、サービス提供方法は、情報処理装置が、クライアント装置から受信したセッションの認証要求に応答して、認証に成功した場合に、前記セッションに関連するデータを生成するとともに当該データを含む前記認証に関するクッキーを生成し、前記クッキーと前記データとを前記クライアント装置に送信する送信工程と、前記情報処理装置が、前記クライアント装置から、前記データがクエリパラメータとして付与されるサービス要求と前記クッキーとを受信する受信工程と、前記情報処理装置が、前記クッキーに含まれる前記データと、前記クエリパラメータとして付与される前記データとが一致する場合に、前記サービス要求のサービスを前記クライアント装置に提供する提供工程と、を有する。
第1の側面によれば、不正アクセスの抑制を図ることができる。
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[サービス提供システム]
図1は、本実施の形態例におけるサービス提供ステムの構成の一例を示す図である。図1の例において、クライアント装置(以下、クライアントと称する)30a~30cは、ネットワーク50を介して複数の情報処理装置(以下、サーバと称する)10、20と接続する。クライアント30a~30cは、例えば、パーソナルコンピュータや携帯端末等である。
図1は、本実施の形態例におけるサービス提供ステムの構成の一例を示す図である。図1の例において、クライアント装置(以下、クライアントと称する)30a~30cは、ネットワーク50を介して複数の情報処理装置(以下、サーバと称する)10、20と接続する。クライアント30a~30cは、例えば、パーソナルコンピュータや携帯端末等である。
図1の例におけるサーバ10、20は、例えば、Webサーバである。サーバ10、20はそれぞれ、予め登録されたアカウント情報に基づいたユーザ認証機能を有する。また、サーバ10、20は、アクセス制限を有するユーザ領域RSDを有する。ユーザ領域RSDは、例えば、ユーザ単位に、画像や動画等のリソースを格納する。
各サーバ10、20は、クライアント30a~30cからの認証要求に応答して、認証結果をクライアント30a~30cに送信する。そして、サーバ10、20は、クライアント30a~30bから送信されたリソースのアクセス要求に応答して、認証結果に応じて、ユーザ領域RSDに格納されるリソースを提供する。
[サーバの構成]
図2は、図1に示す本実施の形態例におけるサーバ10のハードウェア構成を説明する図である。図2は、サーバ10の構成を示すが、サーバ20も同様の構成を有する。図2に示すサーバ10は、例えば、CPU(Central Processing Unit)101、RAM(Random Access Memory)201や不揮発性メモリ202等を備えるメモリ102、通信インタフェース部103を有する。各部は、バス104を介して相互に接続する。
図2は、図1に示す本実施の形態例におけるサーバ10のハードウェア構成を説明する図である。図2は、サーバ10の構成を示すが、サーバ20も同様の構成を有する。図2に示すサーバ10は、例えば、CPU(Central Processing Unit)101、RAM(Random Access Memory)201や不揮発性メモリ202等を備えるメモリ102、通信インタフェース部103を有する。各部は、バス104を介して相互に接続する。
CPU101は、バス104を介してメモリ102等と接続すると共に、サーバ10全体の制御を行う。メモリ102のRAM201は、CPU101が処理を行うデータ等を記憶する。メモリ102の不揮発性メモリ202は、CPU101が実行するOS(Operating System)のプログラムを格納する領域(図示せず)や、本実施の形態例における認証プログラムを格納する領域pr1、リソース提供プログラムを格納する領域pr2を備える。また、不揮発性メモリ202は、アクセス制限を有するユーザ領域RSDを有する。ユーザ領域RSDは、例えば、各ユーザの画像や動画等のリソースRSを格納する。不揮発性メモリ202は、HDD(Hard disk drive)、不揮発性半導体メモリ等で構成される。
認証プログラム領域pr1の認証プログラム(以下、認証プログラムpr1と称する)、及び、リソース提供プログラム領域pr2のリソース提供プログラム(以下、リソース提供プログラムpr2と称する)は、CPU101の実行によって、本実施の形態例における認証処理、及び、リソースRSの提供処理を実現する。また、通信インタフェース部103は、ネットワーク50を介して、他のサーバ20またはクライアント30a~30c等の通信機器との間でデータの送受信を制御する。
図3は、図1、図2に示すサーバ10のソフトウェアブロック図である。図3は、サーバ10のブロック図を示すが、サーバ20のブロック図も図2と同様である。サーバ10の認証プログラムpr1(図2)は、例えば、ユーザ認証モジュール(以下、ユーザ認証部と称する)110とリクエスト判定モジュール(以下、リクエスト判定部と称する)120とを有する。サーバ10のリソース提供プログラムpr2(図2)は、リソースアクセスモジュール(以下、リソースアクセス部と称する)130を有する。
ユーザ認証部110は、認証モジュール(以下、認証部と称する)111、暗号化モジュール(以下、暗号化部と称する)112、乱数生成モジュール(以下、乱数生成部)113を有する。認証部111は、クライアント30a~30cからの認証要求(HTTPリクエスト)に応答し、クライアント30a~30cから送信されたアカウント情報(ユーザIDとパスワード)に基づくユーザ認証を行う。例えば、認証部111は、認証要求に付与されるアカウント情報が、予め登録されたユーザのアカウント情報と一致するか否かを判定し、認証を行う。
認証に成功した場合、認証部111は、サーバ10におけるユーザの役割を示す役割情報を含む認証トークンを発行すると共に、乱数生成部113にデータcookie_peerを生成させる。データcookie_peerは、例えばnonceと呼ばれる、数字または文字をランダムに有するデータである。暗号化部112は、認証部111が生成した認証トークン、及び、データcookie_peerを暗号化する。認証部111は、暗号化された認証トークン及びデータcookie_peerを含む認証Cookieを生成し、認証トークンと、データcookie_peerとを、クライアント30a~30cに送信する。
また、リクエスト判定部120は、データ判定モジュール(以下、データ判定部と称する)121、復号モジュール(以下、復号部と称する)122を有する。データ判定部121は、クライアント30a~30cからリソースアクセス要求(HTTPリクエスト)を受信すると、リソースアクセス要求に付与された認証Cookieに含まれる、認証トークン及びデータcookie_peerを復号部122に復号させる。そして、データ判定部121は、復号されたデータcookie_peerと、リソースアクセス要求のクエリパラメータに付与されるデータcookie_peerとを比較し、両者が一致するときにリソースアクセス要求が正当なリソースアクセス要求である旨、判定する。
リソースアクセス要求が正当であると判定された場合、リソースアクセス部130のアクセスモジュール(以下、アクセス部と称する)131は、認証トークンに基づいてリソースRSにアクセスする。例えば、アクセス部131は、認証トークンに含まれる役割情報に対応する権限の範囲内で、リソースアクセス要求の対象のリソースRSにアクセスする。そして、データ判定部121は、アクセス部131を介して取得した対象のリソースRSを、クライアント30a~30cに送信する。
続いて、本実施の形態例のサービス提供システムにおけるクライアント30a~30cのハードウェア構成及びソフトウェアブロック図を例示する。
[クライアントの構成]
図4は、図1に示すクライアント30aのハードウェア構成を説明する図である。図4は、クライアント30aの構成例を示すが、例えば、クライアント30b、30cも同様の構成を有する。クライアント30aは、例えば、CPU(Central Processing Unit)301、RAM(Random Access Memory)401や不揮発性メモリ402とを備えるメモリ302、グラフィック処理装置303、入力インタフェース部304、光学ドライブ装置305、通信インタフェース部306を有する。各部は、バス307を介して相互に接続する。
図4は、図1に示すクライアント30aのハードウェア構成を説明する図である。図4は、クライアント30aの構成例を示すが、例えば、クライアント30b、30cも同様の構成を有する。クライアント30aは、例えば、CPU(Central Processing Unit)301、RAM(Random Access Memory)401や不揮発性メモリ402とを備えるメモリ302、グラフィック処理装置303、入力インタフェース部304、光学ドライブ装置305、通信インタフェース部306を有する。各部は、バス307を介して相互に接続する。
CPU301は、バス307を介してメモリ302と複数の周辺機器と接続すると共に、クライアント30a全体の制御を行う。メモリ302のRAM401は、クライアント30aのCPU301の処理の実行のため使用される。また、メモリ302の不揮発性メモリ402は、CPU301が実行するOS(Operating System)のプログラム格納領域(図示せず)や、Webブラウザプログラムを格納する領域411を有する。Webブラウザプログラム領域411のWebブラウザプログラム(以下、Webブラウザ411と称する)は、CPU301の実行によって、本実施の形態例におけるWebのウェブブラウザ処理を実現する。
また、メモリ302のRAM401は、Webアプリケーションプログラムを格納する領域412を有する。Webアプリケーションプログラム領域412のWebアプリケーションプログラム(以下、Webアプリケーション412と称する)は、CPU301の実行によって、本実施の形態例におけるWebアプリケーションの処理を実現する。
グラフィック処理装置303は、モニタ311と接続する。グラフィック処理装置303は、CPU301からの命令に従って、画像をモニタ311の画面に表示する。モニタ311は、例えば、液晶表示装置などである。入力インタフェース部304は、キーボード312やマウス313と接続する。入力インタフェース部304は、キーボード312やマウス313から受信する信号をCPU301に送信する。
光学ドライブ装置305は、レーザ光などを利用して、光ディスク314に記録されたデータの読み取りを行う。光ディスク314は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク314は、例えば、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等である。通信インタフェース部306は、ネットワーク50を介して、サーバ10、20等との間でデータの送受信を行う。
図5は、本実施の形態例におけるクライアント30aのソフトウェアブロック図を説明する図である。クライアント30aは、例えば、Webブラウザ411と、Webブラウザ411がアクセスするメモリ領域403、Webアプリケーション412と、Webアプリケーション412がアクセスするメモリ領域404とを有する。
Webブラウザ411は、Webページを閲覧するためのプログラムである。Webブラウザ411は、サーバ10からHTML(HyperText Markup Language)ファイルや画像ファイル等をダウンロードし、レイアウトを解析してWebページを表示、再生する。メモリ領域403は、図4に示すRAM401の領域であって、Webブラウザ411に対して設定される認証Cookieが保管されるメモリ領域である。
また、Webアプリケーション412は、インターネット等のネットワーク50(図4)を介して動作するプログラムである。Webアプリケーション412は、Webブラウザ411上で動作するJavaScript(登録商標)等のプログラムとWebサーバ(サーバ10)側のプログラムとが協調することによって動作する。メモリ領域404は、図4に示すRAM401の領域であって、Webアプリケーション412によって使用され、Webアプリケーション412の終了に応じて解放されるメモリ領域である。
Webブラウザ411は、サーバ10から受信したHTTPレスポンスに認証Cookieが付与される場合、認証Cookieをメモリ領域403に格納する。また、Webアプリケーション412は、HTTPレスポンスに認証トークンやデータcookie_peerが付与される場合、認証トークンやデータcookie_peerをメモリ領域404に格納する。
次に、本実施の形態例におけるサービス提供方法を説明する前に、認証Cookieによる認証の基本動作を図に基づいて説明する。
[認証Cookieによる認証]
図6は、認証Cookieによる認証の基本動作を説明する図である。図6の例に示すWebアプリケーションA412Aは、善意のWebアプリケーション412であって、WebアプリケーションB412Bは、悪意のWebアプリケーション412である。また、サーバ10のユーザ領域RSDは、ユーザ認証に成功したユーザのみがアクセス可能な領域であって、動画や画像等のリソースRSが格納される。
図6は、認証Cookieによる認証の基本動作を説明する図である。図6の例に示すWebアプリケーションA412Aは、善意のWebアプリケーション412であって、WebアプリケーションB412Bは、悪意のWebアプリケーション412である。また、サーバ10のユーザ領域RSDは、ユーザ認証に成功したユーザのみがアクセス可能な領域であって、動画や画像等のリソースRSが格納される。
ユーザが、クライアント30a上で動作するWebブラウザ411のアドレス欄にサーバ10が提供するサービスのURL(Uniform Resource Locator)を入力すると、Webブラウザ411は、WebページをリクエストするHTTPリクエストをサーバ10に送信する。そして、サーバ10は、HTTPレスポンスとして、Webページが記述されるWebアプリケーションA412Aをクライアント30aにダウンロードする。
そして、WebアプリケーションA412Aは、Webブラウザ411を介して、サーバ10が提供するサービスにサインインするためのユーザ認証画面を表示する。WebアプリケーションA412Aは、ユーザのサインイン操作に応答して、入力されたアカウント情報を含むHTTPリクエストをサーバ10に送信する(a1)。サーバ10の認証部110は、クライアント30aから送信されたHTTPリクエストに含まれるアカウント情報に基づいて、ユーザの認証処理を行う。ユーザを正当なユーザであると認証した場合、認証部110は、HTTPレスポンスとして、認証の結果情報と、認証に成功したことを示す情報とを有する認証Cookieをクライアント30aにダウンロードする(a2)。
クライアント30aのWebブラウザ411は、サーバ10から受信した認証CookieをWebブラウザ411に規定されるメモリ領域403に格納する。また、WebアプリケーションA412Aは、HTTPレスポンスの内容に基づいて認証結果を、Webブラウザ411を介してモニタ311に表示する。
次に、WebアプリケーションA412Aが、サーバ10の、ユーザ領域RSDに格納されるリソースにアクセスする場合、リソースの提供を要求するHTTPリクエストをサーバ10に送信する(a3)。このとき、Webブラウザ411は、HTTPリクエストに自動的に認証Cookieを付与する。サーバ10は、HTTPリクエストを受信すると、認証Cookieに基づいてユーザが認証済みであることを検知し、ユーザ領域RSD内に格納される対象のリソースをクライアント30aに提供する。
続いて、悪意のあるWebアプリケーションB412Bを説明する。図6は、例えば、WebアプリケーションB412Bによるクロスサイトリクエストフォージェリによる攻撃の一例を示す。WebアプリケーションB412Bは、例えば、WebアプリケーションA412Aのダウンロード時に、不正に、クライアント30aの同一Webブラウザ411管理下にダウンロードされる場合がある。例えば、WebアプリケーションB412Bは、WebアプリケーションA412Aが生成するWebページの一部に含まれる場合がある。
WebアプリケーションB412Bは、予め検知した、WebアプリケーションA412Aと同一のURIにアクセスするHTTPリクエストを送信する(a10)。WebアプリケーションB412Bがアクセスする対象のパスはWebアプリケーションA412Aと同一であることから、Webブラウザ411は、WebアプリケーションB412Bが送信するHTTPリクエストに、WebアプリケーションA412Aの認証Cookieを自動的に付与する。認証Cookieは認証済みであることを示す。したがって、未認証のWebアプリケーションB412Bから発行されたHTTPリクエストであるにも関わらず、サーバ10は、認証Cookieに基づいて、ユーザ領域RSD内に格納されるリソースをWebアプリケーションB412Bに提供可能になる。WebアプリケーションB412Bは、サーバ10から受信したリソースに基づいて、リソースの改編や流出を生じさせることができる。
このように、悪意のあるWebアプリケーションB412Bによる認証Cookieの盗用によるリソースのアクセス侵害が可能になってしまう。次に、認証トークンを併用した場合の認証動作を説明する。
[認証トークン併用による認証]
図7は、認証トークン13を併用した場合の認証を説明する図である。認証トークン13は、認証に成功したユーザに発行される情報であって、サーバ10が提供するサービスの提供範囲を定義する役割情報を有する。クライアント30aは、認証トークン13を付与したアクセス要求をサーバ10に送信することによって、認証トークン13が有する役割情報に対応する範囲内で、サーバ10が提供するサービスの提供を受けることができる。
図7は、認証トークン13を併用した場合の認証を説明する図である。認証トークン13は、認証に成功したユーザに発行される情報であって、サーバ10が提供するサービスの提供範囲を定義する役割情報を有する。クライアント30aは、認証トークン13を付与したアクセス要求をサーバ10に送信することによって、認証トークン13が有する役割情報に対応する範囲内で、サーバ10が提供するサービスの提供を受けることができる。
図6と同様にして、Webアプリケーション412(図4、図5)は、ユーザのサインイン操作に応答して、入力されたアカウント情報を含むHTTPリクエストをサーバ10に送信する(a11)。そして、サーバ10は、クライアント30aから送信されたアカウント情報に基づいてユーザを正当なユーザであると認証した場合、HTTPレスポンスとして、認証トークン13をクライアント30aに送信する(a12)。HTTPレスポンスを受信すると、Webアプリケーション412は、認証トークン13をWebアプリケーション412がアクセスするメモリ領域404に保持する。
そして、Webアプリケーション412は、サーバ10のユーザ領域RSD内のリソースRSにアクセスする場合、リソースRSを要求するHTTPリクエストに認証トークン13を付与して、サーバ10に送信する(a13)。Webアプリケーション412は、例えば、リソースRSにアクセスするAPI(Application Programming Interface)を呼び出す場合、Authorizationヘッダに認証トークン13を指定したHTTPリクエストを生成し、サーバ10に送信する。サーバ10は、HTTPリクエストを受信すると、認証トークン13が有する役割情報に基づいて、役割情報に対応する権限の範囲内でAPIを呼び出し、ユーザ領域RSD内に格納される対象のリソースRSにアクセスする。APIの呼び出しに必要な権限が不足する場合、サーバ10は、エラー情報をクライアント30aに送信する。
ただし、リソースRSの要求を指示するHTMLタグに基づいて生成されるHTTPリクエスト(GETリクエスト)には、HTTPリクエストのAuthorizationヘッダに認証トークン13の付与が行われない。そのようなHTMLタグとして、例えば、videoタグやimgタグ、audioタグ等のリソースRSの要求を指示するHTMLタグが挙げられる。HTTPリクエストのAuthorizationヘッダに認証トークン13が付与されていない場合、サーバ10は、リソースRSのアクセスに必要な権限が不足することにより、リソースRSにアクセスできない(a14)。
図7には、videoタグ<video src=https://fqdn/cell/box/movie.mp4/> </video>に基づいて生成されるHTTPリクエストが例示される。このvideoタグは、Webページに対する、動画"https://fqdn/cell/box/movie.mp4/"の埋め込みを指示するタグである。また、図7の例において、動画"https://fqdn/cell/box/movie.mp4/"は、サーバ10のユーザ領域RSDに格納されるリソースRSを示す。図7のvideoタグに基づいて生成されるHTTPリクエストのAuthorizationヘッダには、認証トークン13が付与されていないことから、サーバ10は、動画"https://fqdn/cell/box/movie.mp4/"にアクセスできない。リソースRSにアクセスできない場合、サーバ10は、アクセスエラーを示すHTTPレスポンスをクライアント30aに送信する(a15)。
またここで、imgタグやvideoタグ等のAuthorizationヘッダに認証トークン13を付与しないタイプのHTMLタグに基づくHTTPリクエストに認証トークンを付加するとすれば、HTTPリクエストのクエリパラメータとして認証トークンを付与することになろう。しかし、認証トークンに限らず、クエリパラメータとして付与されたデータは、例えばブラウザ上のアクセス先URLを表示する欄に出力されるというように、ユーザや悪意を持ったアプリケーションから容易に取得可能な状態になってしまう。即ち、クエリパラメータに付与されたデータは容易に露出されるので、セキュリティ上重要な情報をクエリパラメータとして付与することはセキュリティ上好ましくない。
HTMLタグに基づくHTTPリクエストに認証トークンを付加する別の方法として、例えば、Javascript等のプログラム言語を使用することによって、HTMLタグに対応する処理であって、認証トークン13を使用する処理を実現することも考えられる。しかしながら、この方法によると、HTMLタグを使用する場合に対して、プログラム生成や管理に工数を要するとともに多量のメモリを要することから利点が少ない。したがって、HTMLタグに基づいて生成されるHTTPリクエストにしたがって、リソースRSにアクセス可能になることが望ましい。
また、例えば、アクセス対象のリソースRSを、サーバ10内のアクセス制限のかからない領域に格納することによって、HTMLタグに基づいて生成されるHTTPリクエストにしたがって、リソースのアクセス要求が可能になる。しかしながら、アクセス制限のかからない領域には、セキュリティの観点から、個人情報、プライバシーに関わる情報等を格納することが避けられることから、格納可能なリソースが制限される。
図6で説明したとおり、認証Cookie11による認証に基づいてリソースRSにアクセスする場合、悪意のあるWebアプリケーションB412Bによる認証Cookie11の盗用が可能になってしまう。また、図7で説明したとおり、認証トークン13による認証に基づいてリソースRSにアクセスする場合、HTMLタグに基づいて生成されるHTTPリクエストのAuthorizationヘッダには認証トークン13が付与されないため、サーバ10は、アクセス権限を有するリソースRSへのアクセスに失敗する。
したがって、本実施の形態例のサービス提供方法では、サーバ10が、クライアント30aから受信したセッションの認証要求に応答して、認証に成功した場合に、セッションに関連するデータを生成するとともに当該データを含む認証に関する認証Cookie11を生成し、認証Cookie11とデータとをクライアント30aに送信する。そして、サーバ10は、クライアント30aから、データがクエリパラメータとして付与されるサービス要求と認証Cookie11とを受信し、認証Cookie11に含まれるデータと、クエリパラメータとして付与されるデータとが対応する場合に正当なサービス要求であると判定し、サービス要求のサービスをクライアント30aに提供する。
[サービス提供方法の概要]
次に、本実施の形態例のサービス提供方法の概要を、図8、図9に基づいて説明する。
次に、本実施の形態例のサービス提供方法の概要を、図8、図9に基づいて説明する。
図8は、本実施の形態例におけるサービス提供方法の概要を説明する図である。図8は、図6と同様にして、認証Cookie11に基づく認証の例である。図6と同様にして、WebアプリケーションA412Aは、サインイン操作に応答して、入力されたアカウント情報をサーバ10に送信する(b1)。サーバ10は、クライアント30aから送信されたアカウント情報に基づいて、ユーザを正当なユーザであると認証した場合、認証に関する情報を有し、データcookie_peer12を含む認証Cookie11に加えて(b2-2)、データcookie_peer12(b2-1)をクライアント30aに送信する。
クライアント30aのWebブラウザ411は、サーバ10から受信した認証Cookie11をメモリ領域403に格納し(b2-2)、WebアプリケーションA412Aはデータcookie_peer12をWebアプリケーションA412Aがアクセスするメモリ領域404に保持する(b2-1)。メモリ領域404は、WebアプリケーションA412Aのプロセスがアクセスする領域であるため、別のプロセス(例えば、WebアプリケーションB412B)はアクセスできない。即ち、WebアプリケーションB412Bは、WebアプリケーションA412Aがメモリ領域404に保持するデータcookie_peer12を取得できない。
そして、WebアプリケーションA412Aが、サーバ10の、各ユーザのユーザ領域RSDに格納されアクセス制限を有するリソースにアクセスする場合、データcookie_peerを付与した、HTTPリクエストをサーバ10に送信する(b3)。このとき、Webブラウザ411は、HTTPリクエストに自動的に認証Cookie11を付与する。そして、サーバ10は、HTTPリクエストを受信すると、認証Cookie11に含まれるデータcookie_peer12と、HTTPリクエストに付与されるデータcookie_peer12とを比較する。
認証Cookie11に含まれるデータcookie_peer12と、HTTPリクエストに付与されるデータcookie_peer12とが一致する場合、サーバ10は、HTTPリクエストが正当なリソースアクセス要求であることを判定する。この場合、サーバ10は、ユーザ領域RSD内に格納される対象のリソースRSをクライアント30aに提供する。つまり、サーバ10は、データcookie_peer12を含む認証Cookie11と、データcookie_peer12とがセットでHTTPリクエストに付与される場合、HTTPリクエストを正当なアクセス要求である旨、判定する。
一方、図6と同様にして、WebアプリケーションB412Bは、WebアプリケーションA412Aと同一のURIにアクセスするHTTPリクエストを送信する(a10)。また、Webブラウザ411は、WebアプリケーションA412Aの認証Cookie11をHTTPリクエストに自動的に付与する。しかしながら、WebアプリケーションB412Bは、HTTPリクエストのクエリパラメータにデータcookie_peer12の付与を行わない。したがって、認証Cookie11に含まれるデータcookie_peer12と比較するデータcookie_peer12が存在しないため、サーバ10は、HTTPリクエストが不正なリソースアクセス要求である旨、判定する。
また、仮に、攻撃者がHTTPリクエストにデータcookie_peerを付与する仕組みを知っている場合であっても、WebアプリケーションB412Bは、WebアプリケーションA412Aがメモリ領域404に保持するデータcookie_peer12を取得することができない。即ち、認証に成功していないWebアプリケーションは、HTTPリクエストのクエリパラメータにデータcookie_peerを付与できない。したがって、本実施の形態例におけるサービス提供方法によると、WebアプリケーションB412Bは、認証Cookie11を盗用したとしても、リソースRSにアクセスすることができない。
このように、本実施の形態例におけるサーバ10は、データcookie_peer12を含む認証Cookie11と、データcookie_peer12とがセットで付与されるHTTPリクエストを正当なサービス要求であると判定する。つまり、サーバ10は、データcookie_peerを含む認証Cookie11が付与されたHTTPリクエストを受信した場合であっても、認証Cookie11内のデータcookie_peerと一致するデータcookie_peerが付与されていない場合は、当該HTTPリクエストを不正なサービス要求であると判定する。したがって、サーバ10は、認証Cookie11が盗用された場合であっても、不正なサービス要求を検出できる。
サーバ10は、クエリパラメータとしてデータcookie_peerが付与されていても、データcookie_peerが一致しない場合に、当該HTTPリクエストを不正なサービス要求であると判定する。即ち、データcookie_peerは、認証Cookie11内のデータdcookie_peerとの突合のみに用いられる。データcookie_peerは、単体では意味を為さないデータであるため、クエリパラメータが盗聴された場合であっても、影響は極めて小さい。
また、サーバ10は、認証に成功する毎に、データcookie_peerを生成し直す。したがって、仮に、クエリパラメータのデータcookie_peerが盗聴されクエリパラメータに付与された場合であっても、現在の認証Cookie11に含まれるデータcookie_peerと一致しない場合、サーバ10は、不正なHTTPリクエストであると判定する。したがって、サーバ10は、クエリパラメータのデータcookie_peerが盗聴された場合であっても、不正なアクセスの発生を抑制できる。
また、本実施の形態例におけるサービス提供方法によると、クライアント30aが送信する情報(データcookie_peer12と認証Cookie11)のみに基づいて、アクセス要求が正当であるか否かが判定可能になる。したがって、サーバ10は、認証に成功したセッション毎に、認証のための情報を管理する必要がない。
図9は、認証トークン13を使用する形態のサービス提供方法の概要を説明する図である。図9は、図7と同様にして、認証トークン13に基づく認証の例である。図7と同様にして、Webアプリケーション412(図4、図5)は、サインイン操作に応答して、入力されたアカウント情報をサーバ10に送信する(b11)。サーバ10は、クライアント30aから送信されたアカウント情報に基づいて、ユーザを正当なユーザであると認証した場合、データcookie_peer12と認証トークン13とを含む認証Cookie11と、データcookie_peer12とをクライアント30aに送信する(b12)。
クライアント30aのWebブラウザ411は、サーバ10から受信した認証Cookie11をメモリ領域403に格納する。また、Webアプリケーション412はデータcookie_peer12及び認証トークン13をWebアプリケーション412がアクセスするメモリ領域404に保持する。
そして、HTMLタグに基づいてユーザ領域RSDに格納されるリソースRSにアクセスする場合、Webアプリケーション412は、HTTPリクエストに、クエリパラメータとしてデータcookie_peerを付与する(b13)。具体的に、クエリパラメータは、HTMLタグのURIの末尾に「?変数名=値」の書式で追加される。図9の例では、videoタグとして、<video src=https://fqdn/cell/box/movie.mp4?cookie_peer=Nonce/>を例示する。Nonceは、データcookie_peerの値を示す。また、Webブラウザ411は、HTTPリクエストに自動的に認証Cookie11を付与する。
そして、サーバ10は、HTTPリクエストを受信すると、認証Cookie11に含まれるデータcookie_peer12と、HTTPリクエストに付与されるデータcookie_peer12とが一致する場合に、HTTPリクエストが正当なリソースアクセス要求であることを判定する。正当なリソースアクセス要求であると判定した場合、サーバ10は、認証Cookie11に含まれる認証トークン13が有する役割情報に基づいて、アクセス要求の対象となるリソースRSへの権限があるか否かを判定する。権限がある場合、サーバ10は、リソースRSを取得し、HTTPレスポンスとして、クライアント30aに送信する。
図9に示すように、本実施の形態例のサーバ10は、データcookie_peer12に加えて、さらに、認証トークン13を含む認証Cookie11を生成する。そして、サーバ10は、サービス要求に、データcookie_peer12と認証トークン13とを含む認証Cookie11と、データcookie_peer12とが一対で付与されるときに、認証Cookie11に含まれる認証トークン13の権限情報に基づいて、サービス要求のサービスをクライアント30aに提供する。
これにより、図8で説明した効果に加えて、サーバ10は、Authorizationヘッダに認証トークンが付与されないHTTPリクエストであっても、認証Cookie11に含まれる認証トークン13を使用することにより、認証トークン13に基づくサービスを提供することができる。また、サーバ10は、認証Cookie11に含まれるデータcookie_peer12と、クエリパラメータに指定されるデータcookie_peer12とが一致する場合にのみ、認証Cookie11に含まれる認証トークン13を使用する。即ち、サーバ10は、クエリパラメータとて指定されるデータcookie_peerと一致しない場合に認証トークン13を使用しないことから、認証Cookie11が盗用された場合であっても、不正に認証トークン13が使用されることを回避することができる。
[サービス提供処理]
図10は、図9に示す形態におけるサーバの処理を説明するフローチャート図である。サーバ10は、クライアント30aからHTTPリクエストを受信したか否かを判定する(S11)。クライアント30aから認証要求のHTTPリクエストを受信した場合(S12のYES)、サーバ10の認証部111は、HTTPリクエストに含まれるアカウント情報と、予め登録されるアカウント情報とを照合し、一致するアカウント情報がある場合に、ユーザを正当なユーザであると認証する。ユーザを正当なユーザであると認証した場合、サーバ10の認証部111は認証トークン13を生成し、乱数生成部113は乱数を生成しデータcookie_peer12とする(S14)。
図10は、図9に示す形態におけるサーバの処理を説明するフローチャート図である。サーバ10は、クライアント30aからHTTPリクエストを受信したか否かを判定する(S11)。クライアント30aから認証要求のHTTPリクエストを受信した場合(S12のYES)、サーバ10の認証部111は、HTTPリクエストに含まれるアカウント情報と、予め登録されるアカウント情報とを照合し、一致するアカウント情報がある場合に、ユーザを正当なユーザであると認証する。ユーザを正当なユーザであると認証した場合、サーバ10の認証部111は認証トークン13を生成し、乱数生成部113は乱数を生成しデータcookie_peer12とする(S14)。
前述したとおり、認証トークン13は、認証に成功したユーザに発行されるトークンであって、サーバ10が提供するサービスの提供範囲を定義する役割情報を有する。また、データcookie_peer12は、数字や文字からなるランダムな値であって、認証に成功したセッションに対応して生成される。
次に、サーバ10の暗号化部112は、認証トークン13とデータcookie_peer12とを暗号化し、暗号化した認証トークン13と暗号化したデータcookie_peer12とを含む認証Cookie11を生成する(S15)。暗号化部112は、認証トークン13とデータcookie_peer12とを個別に暗号化して連結した値を認証Cookie11に含めてもよいし、認証トークン13とデータcookie_peer12とを連結した値を暗号化してもよい。なお、サーバ10は、認証トークン13とデータcookie_peerとを必ずしも暗号化しなくてもよい。
また、認証Cookie11は、認証を行ったサーバ10のサービスに対応するURIに対してのみ認証Cookie11が有効である指示、認証Cookie11がクライアント30aのWebブラウザ411を終了時に削除される指示等を含む。そして、サーバ10は、認証Cookie11と、データcookie_peer12と、認証トークン13とをクライアント30aに送信する(S16)。
一方、クライアント30aからリソースのサービス要求のHTTPリクエストを受信した場合(S12のNO、S21のYES)、サーバ10の復号部122は、HTTPリクエストに付与される認証Cookie11に含まれる認証トークン13とデータcookie_peer12とを復号する(S22)。認証トークン13とデータcookie_peer12とが暗号化されていない場合、復号処理は不要である。
HTTPリクエストには、認証Cookie11に加えて、クエリパラメータとしてデータcookie_peer12が付与される。サーバ10のデータ判定部121は、認証Cookie11に含まれ、復号したデータcookie_peer12と、クエリパラメータとして付与されたデータcookie_peer12とを比較する(S23)。一致する場合(S24のYES)、サーバ10のアクセス部131は、認証Cookie11に含まれ、復号した認証トークン13に基づいて、HTTPリクエストが対象とするリソースRSへのアクセス権を確認する(S25)。対象とするリソースRSへのアクセス権がある場合、サーバ10は、対象とするリソースを、HTTPレスポンスとしてクライアント30aに送信する(S26)。
なお、受信したHTTPリクエストのAuthorizationヘッダに認証トークン13が付与される場合、即ち、受信したHTTPリクエストがAPI等に基づくHTTPリクエストの場合、サーバ10は、例えば、認証Cookie11を使用せずに、認証トークン13に基づいて、リソースのアクセスを行う。この場合、サーバ10は、工程S22~S24の処理を省略し、認証トークン13に基づいて、工程S25、S26の処理を行う。
一方、認証Cookie11に含まれ、復号したデータcookie_peer12と、HTTPリクエストに付与されたデータcookie_peer12とが一致しない場合(S24のNO)、サーバ10は、HTTPリクエストの認証エラーを、HTTPレスポンスとして、クライアント30aに送信する(S27)。例えば、サーバ10は、HTTPリクエストが不正なリクエストである旨、クライアント30aに通知する。
図11は、図10に関連するクライアントの処理を説明するフローチャート図である。サインイン操作が行われると、クライアント30a上のWebブラウザ411を介して動作するWebアプリケーション412は、認証要求を示すHTTPリクエストをサーバ10に送信する(S31)。
そして、Webアプリケーション412は、認証要求のHTTPリクエストに対するサーバ10からの応答を待機する。認証成功を示す応答を受信した場合(S32のYES)、Webブラウザ411は認証Cookie11をメモリ領域403に保持し、Webアプリケーション412は認証トークン13及びクエリパラメータとして付与されたデータcookie_peerをメモリ領域404に保持する。次に、Webアプリケーション412は、サーバ10が有するリソースのサービス要求を示すHTTPリクエストがあるか否かを判定する(S33)。
リソースのサービス要求がある場合(S33のYES)、Webアプリケーション412は、リソースのサービス要求が、HTTPリクエストのAuthorizationヘッダに認証トークン13の付与が可能なサービス要求であるか否かを判定する(S34)。Authorizationヘッダに認証トークン13の付与が可能なHTTPリクエストである場合(S34のYES)、Webアプリケーション412は、Authorizationヘッダに認証トークン13を付与したHTTPリクエストをサーバ10に送信する(S35)。このとき、Webブラウザ411は、HTTPリクエストに、自動的に認証Cookie11を付与する。Authorizationヘッダに認証トークン13の付与が可能なHTTPリクエストは、例えば、サーバ10のAPIを呼び出すHTTPリクエスト等である。
一方、Authorizationヘッダに認証トークン13の付与が行えないサービス要求である場合(S34のNO)、Webアプリケーション412は、データcookie_peer12をクエリパラメータとして付与したHTTPリクエストを生成し、サーバ10に送信する(S36)。このとき、Webブラウザ411は、HTTPリクエストに、自動的に認証Cookie11を付与する。HTTPリクエストのAuthorizationヘッダに認証トークンを付与できないサービス要求は、例えば、HTMLタグに基づくHTTPリクエストである。
そして、Webアプリケーション412は、認証トークン13を付与したHTTPリクエスト、または、データcookie_peer12をクエリパラメータとして付与したHTTPリクエストをサーバ10に送信すると、HTTPリクエストに対応するサーバ10からのHTTPレスポンスを待機する(S37)。Webアプリケーション412は、サーバ10からHTTPレスポンスを受信すると、受信したHTTPレスポンスに基づいて処理を行う。
続いて、図10、図11のフローチャートで説明したサーバ10、及び、クライアント30aの処理を、図12~図15に基づいて具体的に説明する。
図12は、認証トークンを併用する形態におけるサーバ10の認証リクエスト受信時の処理を説明する図である。図12に説明する処理は、図3に示すサーバ10のブロック図のユーザ認証部110の処理に対応する。
前述したとおり、サーバ10のユーザ認証部110の認証部111は、クライアント30aからの認証リクエストを受けると(図10のS12)、リクエストに含まれるユーザIDとパスワードに基づいて、パスワード認証を行う(S13)。認証に成功すると、認証部111は認証トークン13を生成するとともに、サーバ10の乱数生成部113はデータcookie_peer12を生成する(S14)。認証トークン13は、例えば、暗号化された文字列を有する。
次に、サーバ10の暗号化部112は、認証トークン13とデータcookie_peer12とを連結させ、暗号化する。そして、暗号化部112は、暗号化した認証トークン13とデータcookie_peer12とを含む認証Cookie11を生成する(S15)。そして、サーバ10は、生成した認証Cookie11に加えて、認証トークン13、データcookie_peer12を、HTTPレスポンスとして、クライアント30aに送信する(S16)。
図13は、認証トークンを併用する形態におけるサーバ10のサービス要求取得時の処理を説明する図である。サーバ10は、例えば、アクセス制限を有するユーザ領域RDSに格納されるリソースRSのサービス要求を示すHTTPリクエストの受信時に(図10のS21)、図13に示す処理を行う。図13に説明する処理は、図3に示すサーバ10のブロック図のリクエスト判定部120の処理に対応する。
前述したとおり、HTTPリクエストには、認証Cookie11が付与されると共に、クエリパラメータとしてデータcookie_peer12が付与される。サーバ10のリクエスト判定部120の復号部122は、受信した認証Cookie11に含まれる情報を復号して、認証トークン13とデータcookie_peer12とを取得する(S22)。そして、リクエスト判定部120のデータ判定部121は、認証Cookie11に含まれるデータcookie_peer12と、クエリパラメータとして付与されたデータcookie_peer12とを突合し(S23)、両者が対応すると判定した場合に(S24のYES)、HTTPリクエストが正当なアクセス要求であると判定する。
HTTPリクエストが正当なアクセス要求である場合、サーバ10のデータアクセス部130は、認証トークン13に基づいて、アクセス要求に対応する対象のリソースのアクセス権を有するか否かを確認する(S25)。アクセス権を有する場合、サーバ10は、HTTPレスポンスとして、対象のリソースをクライアント30aに送信する(S26)。
図14は、図12、図13に対応するクライアント30aのサービス要求処理を説明する図である。前述したとおり、クライアント30aのWebアプリケーション412は、認証に成功した場合(図11のS32のYES)、サーバ10から認証Cookie11とデータcookie_peer12と認証トークン13とを受信する。前述したとおり、Webブラウザ411は、認証Cookie11を、Webブラウザ411がアクセスするメモリ領域403に格納する。また、Webアプリケーション412は、データcookie_peer12及び認証トークン13を、Webアプリケーション412がアクセスするメモリ領域404に格納する。
サーバ10にアクセス要求を送信するとき(S33のYES)、Webアプリケーション412は、HTTPリクエストのAuthorizationヘッダに認証トークン13を付与可能である場合は(S34のYES)、Authorizationヘッダに認証トークン13を付与したHTTPリクエストを生成し、サーバ10に送信する。また、Webブラウザ411は、HTTPリクエストに自動的に認証Cookie11を付与する。
一方、HTTPリクエストのAuthorizationヘッダに認証トークン13を付与できない場合(S34のNO)、Webアプリケーション412は、HTTPリクエストに、クエリパラメータとしてデータcookie_peer12を付加する(S36)。また、Webブラウザ411は、HTTPリクエストに自動的に認証Cookie11を付与する。クエリパラメータとしてデータcookie_peerを付加する処理は、Webアプリケーション412の処理を記述するスクリプトファイルによって指示される。
図15は、Webアプリケーション412の処理を記述するスクリプトファイルscの一例を表す図である。図15のスクリプトファイルscは、Webアプリケーション412としてサーバ10からダウンロードされる。図15の例におけるスクリプトファイルscは、例えば、HTMLタグ及びjavascriptの記述を有する。
図15の記述cd1は、imgタグにクエリパラメータを付加する処理の記述の一例を示す。記述cd1内の記述dc3は、imgタグのsrcにクエリパラメータ”cookie_peer=変数cookie_peer”を連結させる記述を示す。また、記述cd2は、変数cookie_peerに値Nonceを入力する処理を示す。図15の例において、値Nonceは、十数バイトの数字または文字を含むランダムな値である。したがって、記述cd1は、imgタグ<img src= https://fqdn/cell/box/image.jpg?cookie_peer=Nonce>を生成する。図15の例は、ボタンが押下されたときに、関数load()を呼び出し、クエリパラメータが付与されたimgタグを生成する。これにより、クエリパラメータが付与されたHTTPリクエストが生成される。
図16は、認証要求のHTTPリクエスト及びHTTPレスポンスの一例を示す図である。図16のHTTPリクエストR1は、クライアント30aがサーバ10に送信する認証要求のHTTPリクエストの一例であって、図9のHTTPリクエストb11に対応する。図16に示すHTTPリクエストR1のメッセージボディの記述cd10はユーザID及びパスワードを示し、記述cd11は認証Cookie11の返却を指示する設定値を示す。
また、図16のHTTPレスポンスR2は、認証要求に対するレスポンスの一例であって、図9のHTTPレスポンスb12に対応する。図9で説明したとおり、HTTPレスポンスR2は、暗号化されたデータcookie_peer12及び暗号化された認証トークン13とを含む認証Cookie11と、データcookie_peer12と、認証トークン13とを含む。
具体的に、図16に示すHTTレスポンスR2のリクエスト行の”200 OK”は、正常終了ステータスを示す。また、HTTPレスポンスR2のメッセージヘッダに含まれる記述cd12は認証Cookie11を示す。また、HTTレスポンスR2のメッセージボディに含まれる記述cd13は、データcookie_peer12を示し、記述cd14は、認証トークン13を示す。
図17は、リソースのアクセス要求のHTTPリクエスト及びHTTPレスポンスの一例を示す図である。図17のHTTPリクエストR3は、クライアント30aがサーバ10に送信するアクセス要求のHTTPリクエストの一例であって、図9のHTTPリクエストb13に対応する。図9で前述したとおり、HTTPリクエストは、アクセス制限を有するユーザ領域RSDに格納される動画データ”/fqdn/cell/box/movie.mp4”を要求するリクエストである。
図17のHTTPリクエストR3は、認証Cookie11を含み、クエリパラメータとしてデータcookie_peer12が指定される。具体的に、HTTPリクエストR3のリクエスト行に含まれる記述cd15は、クエリパラメータとして付与されるデータcookie_peer12を示す。また、HTTPリクエストR3のメッセージヘッダ内の記述cd16は、認証Cookie11を示す。前述したとおり、認証Cookie11は、暗号化されたデータcookie_peer12と、暗号化された認証トークン13とを含む。
また、図17に示すHTTPレスポンスR4は、図9のHTTPレスポンスb4に対応する。具体的に、HTTレスポンスR4のリクエスト行の”200 OK”は、正常終了ステータスを示し、メッセージボディcd17は、HTTPリクエストのリソースアクセス要求で指定される動画データ”/fqdn/cell/box/movie.mp4”を示す。
以上のように、本実施の形態例におけるサービス提供方法は、情報処理装置(サーバ)10が、クライアント装置(クライアント)30aから受信したセッションの認証要求に応答して、認証に成功した場合に、セッションに関連するデータ(cookie_peer)12を生成するとともに当該データを含む認証に関するクッキー(認証Cookie)11を生成し、クッキーとデータとをクライアント装置に送信する送信工程を有する。また、サービス提供方法は、情報処理装置が、クライアント装置から、データがクエリパラメータとして付与されるサービス要求とクッキーとを受信する受信工程を有する。また、サービス提供方法は、情報処理装置が、クッキーに含まれるデータと、クエリパラメータとして付与されるデータとが一致する場合に、サービス要求のサービスをクライアント装置に提供する提供工程、を有する。
このように、サーバ10は、データcookie_peerを含む認証Cookieとデータcookie_peerとがセットで受信され、両者が一致する場合に、サービス要求が正当なサービス要求であると判定する。認証に成功していないアプリケーションは、認証に成功したアプリケーションの認証Cookieを盗用したとしても、認証Cookieに含まれるデータcookie_peerと対となるデータcookie_peerをHTTPリクエストに付与できない。したがって、サーバ10は、認証に成功していないアプリケーションが送付したHTTPリクエストを不正なHTTPリクエストとして判定可能になる。
また、本実施の形態例におけるサーバ10は、データcookie_peerを判定するための情報を管理する必要がない。つまり、データcookie_peerは、同一のHTTPリクエストに付与される情報と突合されるため、サーバ10は、各セッションのデータcookie_peerを管理する必要がない。したがって、サーバ10は、ユーザが増大した場合であっても、管理コストが増大しないため、正当なサービス要求を判定することができる。
また、クエリパラメータとして付与されるデータcookie_peerを、例えばnonceと呼ばれる乱数値のように、単体では意味を為さないデータにしているため、クエリパラメータが盗聴されたとしても、セキュリティ上のリスクは低く抑えられる。
また、本実施の形態例におけるサービス提供方法の送信工程は、データを暗号化し、暗号化したデータを含むクッキーを送信する工程を含む。また、提供工程は、クッキーに含まれるデータを復号する工程と、クエリパラメータとして付与されるデータと復号したデータとが一致する場合に、サービス要求のサービスをクライアント装置に提供する工程と、を有する。認証Cookieに含まれるデータcookie_peerが暗号化されることによって、クエリパラメータに付与されたデータと対になるデータcookie_peerが認証Cookie11に含まれることが検知され難くなる。これにより、セキュリティレベルがより向上する。
また、本実施の形態例におけるサービス提供方法によると、送信工程では、データに加えて、さらに、情報処理装置が提供するサービス上の権限情報を含む認証トークン13を含むクッキーを生成し、提供工程では、クッキーに含まれるデータと、クエリパラメータとして付与されるデータとが一致する場合に、クッキーに含まれる認証トークンの権限情報に基づいて、サービス要求のサービスをクライアント装置に提供する。
これにより、サーバ10は、認証トークンを付与できないHTTPリクエストであっても、認証Cookie11に基づいて、認証トークン13を取得できる。また、サーバ10は、たとえ、認証トークン13を含む認証Cookie11が盗用された場合でも、両データが一致しない場合に正当なサービス要求であると判定しないため、認証トークン13に基づいて不正にリソースにアクセスが行われることを回避できる。
また、本実施の形態例におけるサービス提供方法の送信工程は、データ及び認証トークンを暗号化し、暗号化したデータと暗号化した認証トークンとを含むクッキーを送信する工程を含む。また、提供工程は、クッキーに含まれるデータと認証トークンとを復号する工程と、クエリパラメータとして付与されるデータと、復号したデータとが一致する場合に、復号した認証トークンの権限情報に基づいて、サービス要求のサービスをクライアント装置に提供する工程と、を有する。データcookie_peerに加えて、認証Cookieに含まれる認証トークンが暗号化されることによって、セキュリティレベルがより向上する。
また、本実施の形態例におけるサービス提供方法の送信工程で生成するデータは、数字、文字のいずれかまたは両方をランダムに有するデータである。データcookie_peerは、単体では意味を為さないデータであるため、クエリパラメータが盗聴された場合でも、セキュリティ上のリスクは抑えられる。
10、20:サーバ、30a~30c:クライアント、11:認証Cookie、12:データcookie_peer、13:認証トークン、411:Webブラウザ、412:Webアプリケーション、311:メモリ領域(Webブラウザ)、312:メモリ領域(Webアプリケーション)、RSD:ユーザ領域、RS:リソース
Claims (14)
- 情報処理装置(10、20)が、クライアント装置(30a~30c)から受信したセッションの認証要求に応答して、認証に成功した場合に、前記セッションに関連するデータ(12)を生成するとともに当該データを含む前記認証に関するクッキー(11)を生成し、前記クッキーと前記データとを前記クライアント装置に送信する送信工程(110)と、
前記情報処理装置が、前記クライアント装置から、前記データがクエリパラメータとして付与されるサービス要求と前記クッキーとを受信する受信工程(120)と、
前記情報処理装置が、前記クッキーに含まれる前記データと、前記クエリパラメータとして付与される前記データとが一致する場合に、前記サービス要求のサービスを前記クライアント装置に提供する提供工程(120、130)と、
を有するサービス提供方法。 - 請求項1において、
前記送信工程は、前記データを暗号化し、前記暗号化したデータを含むクッキーを送信する工程を含み、
前記提供工程は、前記クッキーに含まれる前記データを復号する工程と、前記クエリパラメータとして付与される前記データと前記復号したデータとが一致する場合に、前記サービス要求のサービスを前記クライアント装置に提供する工程と、を有するサービス提供方法。 - 請求項1において、
前記送信工程は、前記データに加えて、さらに、前記情報処理装置が提供するサービス上の権限情報を含む認証トークン(13)を含むクッキーを生成し、
前記提供工程は、前記クッキーに含まれる前記データと、前記クエリパラメータとして付与される前記データとが一致する場合に、前記クッキーに含まれる前記認証トークンの権限情報に基づいて、前記サービス要求のサービスを前記クライアント装置に提供するサービス提供方法。 - 請求項3において、
前記送信工程は、前記データ及び前記認証トークンを暗号化し、前記暗号化したデータと前記暗号化した認証トークンとを含むクッキーを送信する工程を含み、
前記提供工程は、前記クッキーに含まれる前記データと前記認証トークンとを復号する工程と、前記クエリパラメータとして付与される前記データと、前記復号したデータとが一致する場合に、前記復号した認証トークンの権限情報に基づいて、前記サービス要求のサービスを前記クライアント装置に提供する工程と、を有するサービス提供方法。 - 請求項1乃至4のいずれかにおいて、
前記送信工程で生成するデータは、数字、文字のいずれかまたは両方をランダムに有するデータであることを特徴とするサービス提供方法。 - 請求項1乃至5のいずれかにおいて、さらに、
前記クライアント装置が実行するウェブブラウザが、前記クッキーを当該ウェブブラウザがアクセスする第1のメモリ領域に格納するとともに、前記ウェブブラウザを介して動作し前記認証要求を送信したアプリケーションが、前記受信したデータを当該アプリケーションによって使用され、かつ、前記アプリケーションの終了に応じて解放される第2のメモリ領域に格納する格納工程と、を有するサービス提供方法。 - 請求項1乃至6のいずれかにおいて、
前記サービス要求は、HTTPリクエストのAuthorizationヘッダに認証トークンを付与できないコンテンツの送信要求であるサービス提供方法。 - 請求項7において、
前記コンテンツの送信要求は、HTMLタグに基づく要求であるサービス提供方法。 - 情報処理装置と接続するクライアント装置が実行するウェブブラウザを介して動作するアプリケーションが前記情報処理装置に送信した認証要求に応答して、前記セッションに関連するデータを含む前記認証に関するクッキーと前記データとを前記情報処理装置から受信する受信工程と、
前記ウェブブラウザが、前記受信したクッキーを当該ウェブブラウザがアクセスする第1のメモリ領域に格納するとともに、前記認証要求を送信したアプリケーションが、前記受信したデータを当該アプリケーションによって使用され、かつ、前記アプリケーションの終了に応じて解放される第2のメモリ領域に格納する格納工程と、
前記ウェブブラウザは、前記データをクエリパラメータとして付与した前記情報処理装置に対するサービス要求を、前記クッキーとともに前記情報処理装置に送信する送信工程と、
を有するサービス要求方法。 - プロセッサと、
サービス要求の対象となる情報を記憶するメモリと、を有し、
前記プロセッサは、クライアント装置から受信したセッションの認証要求に応答して、認証に成功した場合に、前記セッションに関連するデータを生成するとともに当該データを含む前記認証に関するクッキーを生成し、前記クッキーと前記データとを前記クライアント装置に送信し、前記クライアント装置から、前記データがクエリパラメータとして付与される前記サービス要求と前記クッキーとを受信し、前記受信したクッキーに含まれる前記データと、前記クエリパラメータとして付与される前記データとが一致する場合に、前記メモリに記憶される情報を対象とする前記サービス要求のサービスを前記クライアント装置に提供する情報処理装置。 - 請求項10において、
前記プロセッサは、前記認証に成功した場合に、さらに、前記クッキーを暗号化し、前記暗号化したデータを含むクッキーを生成し、前記サービス要求と前記クッキーとを受信したときに、前記受信したクッキーに含まれる前記データを復号し、前記クエリパラメータとして付与される前記データと、前記復号したデータとが一致する場合に、前記サービス要求のサービスを前記クライアント装置に提供する情報処理装置。 - 請求項10において、
前記プロセッサは、前記認証に成功した場合に、前記データに加えて、さらに、前記情報処理装置が提供するサービス上の権限情報を含む認証トークンを含むクッキーを生成し、前記サービス要求と前記クッキーとを受信したときに、前記受信したクッキーに含まれる前記データと、前記クエリパラメータとして付与される前記データとが一致する場合に、前記クッキーに含まれる前記認証トークンの権限情報に基づいて、前記サービス要求のサービスを前記クライアント装置に提供する情報処理装置。 - 請求項12において、
前記プロセッサは、前記認証に成功した場合に、さらに、前記認証トークンを暗号化し、暗号化した前記データと前記認証トークンとを含むクッキーを生成し、前記サービス要求と前記クッキーとを受信したときに、前記受信したクッキーに含まれる前記データと前記認証トークンとを復号し、前記クエリパラメータとして付与される前記データと、前記復号したデータとが一致する場合に、前記復号した認証トークンの権限情報に基づいて、前記サービス要求のサービスを前記クライアント装置に提供する情報処理装置。 - プロセッサと、
ウェブブラウザがアクセスする第1のメモリ領域と、前記ウェブブラウザを介して動作するアプリケーションによって使用され、かつ、前記アプリケーションの終了に応じて解放される第2のメモリ領域とを備えるメモリと、を有し、
前記プロセッサは、前記アプリケーションが情報処理装置に送信した認証要求に応答して、前記セッションに関連するデータを含む前記認証に関するクッキーと前記データとを前記情報処理装置から受信し、前記受信したクッキーを前記第1のメモリ領域に格納するとともに、前記受信したデータを前記アプリケーションの前記第2のメモリ領域に格納し、前記データをクエリパラメータとして付与した前記情報処理装置に対するサービス要求を、前記クッキーとともに前記情報処理装置に送信するクライアント装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/053618 WO2015122009A1 (ja) | 2014-02-17 | 2014-02-17 | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 |
JP2015562673A JP6546100B2 (ja) | 2014-02-17 | 2014-02-17 | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 |
US15/238,152 US10581806B2 (en) | 2014-02-17 | 2016-08-16 | Service providing method, service requesting method, information processing device, and client device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/053618 WO2015122009A1 (ja) | 2014-02-17 | 2014-02-17 | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/238,152 Continuation US10581806B2 (en) | 2014-02-17 | 2016-08-16 | Service providing method, service requesting method, information processing device, and client device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015122009A1 true WO2015122009A1 (ja) | 2015-08-20 |
Family
ID=53799771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/053618 WO2015122009A1 (ja) | 2014-02-17 | 2014-02-17 | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10581806B2 (ja) |
JP (1) | JP6546100B2 (ja) |
WO (1) | WO2015122009A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018005283A (ja) * | 2016-06-27 | 2018-01-11 | 富士通株式会社 | 情報提供プログラム、情報提供方法および情報提供システム |
JP2022543947A (ja) * | 2019-08-13 | 2022-10-17 | グーグル エルエルシー | ブラウザクッキーを保護する |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015122009A1 (ja) * | 2014-02-17 | 2015-08-20 | 富士通株式会社 | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 |
US9923929B2 (en) * | 2015-11-20 | 2018-03-20 | Nasdaq, Inc. | Systems and methods for in-session refresh of entitlements associated with web applications |
CN109033885B (zh) * | 2017-06-09 | 2022-11-18 | 腾讯科技(深圳)有限公司 | 一种数据响应方法、终端设备以及服务器 |
JP6904183B2 (ja) * | 2017-09-12 | 2021-07-14 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
CN111371811B (zh) * | 2020-04-23 | 2022-08-09 | Oppo广东移动通信有限公司 | 一种资源调用方法、资源调用装置、客户端及业务服务器 |
US20220150234A1 (en) * | 2020-11-12 | 2022-05-12 | Arris Enterprises Llc | Providing credentials from web hosted application to a network device on a local network |
US20230388246A1 (en) * | 2022-05-25 | 2023-11-30 | Softiron Limited | Resource-Sharing System with Cryptographically Enforced Fair Access |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003323409A (ja) * | 2002-05-07 | 2003-11-14 | Seiko Epson Corp | シングルサインオンシステム、そのプログラム及びその方法 |
US20040078604A1 (en) * | 2002-10-18 | 2004-04-22 | Mike Rice | Device independent authentication system and method |
JP2012511776A (ja) * | 2008-12-09 | 2012-05-24 | マイクロソフト コーポレーション | プラグインコードによりホストされたアプリケーションの分離方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182142B1 (en) * | 1998-07-10 | 2001-01-30 | Encommerce, Inc. | Distributed access management of information resources |
US6920560B2 (en) * | 1999-12-30 | 2005-07-19 | Clyde Riley Wallace, Jr. | Secure network user states |
US6600169B2 (en) * | 2000-09-22 | 2003-07-29 | Andreas Stintz | Quantum dash device |
US20020073197A1 (en) * | 2000-12-11 | 2002-06-13 | Ibm Corporation | Method and apparatus for customizing performance of a browser for a given network connection |
US7206932B1 (en) * | 2003-02-14 | 2007-04-17 | Crystalvoice Communications | Firewall-tolerant voice-over-internet-protocol (VoIP) emulating SSL or HTTP sessions embedding voice data in cookies |
US20030023754A1 (en) * | 2001-07-27 | 2003-01-30 | Matthias Eichstadt | Method and system for adding real-time, interactive functionality to a web-page |
KR100553273B1 (ko) * | 2003-11-14 | 2006-02-22 | 주식회사 넷츠 | 엑스트라넷 액세스제어 장치 및 방법 |
US7571322B2 (en) * | 2004-08-10 | 2009-08-04 | Microsoft Corporation | Enhanced cookie management |
US8402141B2 (en) * | 2004-09-28 | 2013-03-19 | International Business Machines Corporation | Gracefully reestablishing an expired browser session |
JP2006243924A (ja) * | 2005-03-01 | 2006-09-14 | Nec Corp | ウェブサイトのための安全なセッション管理用プログラム、セッション管理方法、及びセッション管理システム |
US7890634B2 (en) * | 2005-03-18 | 2011-02-15 | Microsoft Corporation | Scalable session management |
JP2007310512A (ja) | 2006-05-16 | 2007-11-29 | Mitsubishi Electric Corp | 通信システム、サービス提供サーバおよびユーザ認証サーバ |
US8479020B2 (en) * | 2007-07-25 | 2013-07-02 | Motorola Mobility Llc | Method and apparatus for providing an asymmetric encrypted cookie for product data storage |
TW201216657A (en) * | 2010-10-07 | 2012-04-16 | Hon Hai Prec Ind Co Ltd | Method for Managing Cookie |
CN102438000B (zh) * | 2011-03-11 | 2015-09-30 | 北京奇虎科技有限公司 | 一种多账户登录方法及设备 |
US8918853B2 (en) * | 2011-06-29 | 2014-12-23 | Sharp Laboratories Of America, Inc. | Method and system for automatic recovery from lost security token on embedded device |
US8918850B2 (en) * | 2011-08-01 | 2014-12-23 | Google Inc. | Share cookie on native platform in mobile device without having to ask for the user's login information |
US9578111B2 (en) * | 2012-06-08 | 2017-02-21 | International Business Machines Corporation | Enabling different client contexts to share session information |
US20140207566A1 (en) * | 2013-01-23 | 2014-07-24 | Trademob GmbH | Device session identification system |
WO2015122009A1 (ja) * | 2014-02-17 | 2015-08-20 | 富士通株式会社 | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 |
-
2014
- 2014-02-17 WO PCT/JP2014/053618 patent/WO2015122009A1/ja active Application Filing
- 2014-02-17 JP JP2015562673A patent/JP6546100B2/ja active Active
-
2016
- 2016-08-16 US US15/238,152 patent/US10581806B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003323409A (ja) * | 2002-05-07 | 2003-11-14 | Seiko Epson Corp | シングルサインオンシステム、そのプログラム及びその方法 |
US20040078604A1 (en) * | 2002-10-18 | 2004-04-22 | Mike Rice | Device independent authentication system and method |
JP2012511776A (ja) * | 2008-12-09 | 2012-05-24 | マイクロソフト コーポレーション | プラグインコードによりホストされたアプリケーションの分離方法 |
Non-Patent Citations (2)
Title |
---|
HIDEAKI YANAGIHARA ET AL.: "Authentication and Access Control Technology Corresponding to Authority Management", FIT2002 FORUM ON INFORMATION TECHNOLOGY IPPAN KOEN RONBUNSHU, vol. 4, September 2002 (2002-09-01), pages 37 - 38, XP055218905 * |
HIROSHI YUKI: "Kantan Jisso de Manabu Web Gijutsu 2006 Dai 8 Kai Cookie--Jotai Kanri to Tracking", NIKKEI SOFTWARE, vol. 10, no. 3, January 2007 (2007-01-01), pages 104 - 115 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018005283A (ja) * | 2016-06-27 | 2018-01-11 | 富士通株式会社 | 情報提供プログラム、情報提供方法および情報提供システム |
JP2022543947A (ja) * | 2019-08-13 | 2022-10-17 | グーグル エルエルシー | ブラウザクッキーを保護する |
JP7319380B2 (ja) | 2019-08-13 | 2023-08-01 | グーグル エルエルシー | ブラウザクッキーを保護する |
US11949688B2 (en) | 2019-08-13 | 2024-04-02 | Google Llc | Securing browser cookies |
Also Published As
Publication number | Publication date |
---|---|
JPWO2015122009A1 (ja) | 2017-03-30 |
JP6546100B2 (ja) | 2019-07-17 |
US10581806B2 (en) | 2020-03-03 |
US20160359846A1 (en) | 2016-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6546100B2 (ja) | サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置 | |
US9853957B2 (en) | DRM protected video streaming on game console with secret-less application | |
US9996679B2 (en) | Methods and apparatus for device authentication and secure data exchange between a server application and a device | |
US9070112B2 (en) | Method and system for securing documents on a remote shared storage resource | |
US9191394B2 (en) | Protecting user credentials from a computing device | |
WO2017028804A1 (zh) | 一种Web实时通信平台鉴权接入方法及装置 | |
US20170149571A1 (en) | Method, Apparatus and System for Handshaking Between Client and Server | |
US20170041312A1 (en) | Transaction processing method and client based on trusted execution environment | |
US10033703B1 (en) | Pluggable cipher suite negotiation | |
JP2016510962A (ja) | 暗号化ネットワークストレージスペース | |
US8977857B1 (en) | System and method for granting access to protected information on a remote server | |
CN110011950B (zh) | 一种视频流地址的鉴权方法及装置 | |
JP5373852B2 (ja) | 認証システム及び認証方法 | |
WO2020123926A1 (en) | Decentralized computing systems and methods for performing actions using stored private data | |
CN108235067B (zh) | 一种视频流地址的鉴权方法及装置 | |
TW201242320A (en) | Secure login method | |
CN113329242A (zh) | 一种资源管理的方法和装置 | |
JP2006244420A (ja) | 識別情報生成管理装置およびシステムならびにプログラム | |
CN106470186B (zh) | 一种以跳转方式访问第三方资源的方法 | |
CN111182010B (zh) | 一种本地服务提供方法及装置 | |
US11240210B2 (en) | Methods, apparatuses, and systems for acquiring local information | |
JP2007060581A (ja) | 情報管理システム及び方法 | |
CN112653676B (zh) | 一种跨认证系统的身份认证方法和设备 | |
CN116170164A (zh) | 请求调度的方法、装置、电子设备及存储介质 | |
JP2016115162A (ja) | 認証システム、認証端末装置、登録端末装置、認証方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14882612 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015562673 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14882612 Country of ref document: EP Kind code of ref document: A1 |