JPWO2015118751A1 - 情報処理装置、情報処理方法、プログラム、及びサーバ - Google Patents

情報処理装置、情報処理方法、プログラム、及びサーバ Download PDF

Info

Publication number
JPWO2015118751A1
JPWO2015118751A1 JP2015561164A JP2015561164A JPWO2015118751A1 JP WO2015118751 A1 JPWO2015118751 A1 JP WO2015118751A1 JP 2015561164 A JP2015561164 A JP 2015561164A JP 2015561164 A JP2015561164 A JP 2015561164A JP WO2015118751 A1 JPWO2015118751 A1 JP WO2015118751A1
Authority
JP
Japan
Prior art keywords
information
developer
content
processing apparatus
information processing
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.)
Granted
Application number
JP2015561164A
Other languages
English (en)
Other versions
JP6471698B2 (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of JPWO2015118751A1 publication Critical patent/JPWO2015118751A1/ja
Application granted granted Critical
Publication of JP6471698B2 publication Critical patent/JP6471698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】開発者に応じて機能の利用を制限し、かつ、機能の不正利用を抑止することが可能な情報処理装置、情報処理方法、プログラム、及びサーバを提案する。【解決手段】ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得する取得部と、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元であるか否かを判定する判定部と、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元である場合に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御する制御部と、前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記判定が行われた開発元の情報を関連付けるコンテンツ処理部と、を備える、情報処理装置。【選択図】図1

Description

本開示は、情報処理装置、情報処理方法、プログラム、及びサーバに関する。
近年では、デジタルカメラやテレビジョン装置等のデバイスや、PC(Personal Computer)等のような情報処理装置を、スマートフォンのようなユーザ端末を介して操作する機能が提供されている。
ユーザ端末を介して情報処理装置を操作する機能は、例えば、ユーザ端末に専用のアプリケーションプログラム(以降では、単に「アプリケーション」と呼ぶ)をインストールすることにより実現される。
また、情報処理装置の動作を制御するアプリケーションを開発できるように、情報処理装置の動作を制御するためのプログラム(API:Application Programming Interface)を一般の開発者に対して提供する場合がある。
特開平10−83310号公報
上記のように提供されるAPIについて、特定の契約を結んだ開発者や、APIの利用に対して課金を行った開発者のみへの、当該APIの公開が望まれる場合がある。そのため、APIの利用、即ち、当該APIに対応した機能の利用を、開発者に応じて制限できる仕組みが求められている。
一方で、APIの利用権限を持たない開発者が作成したアプリケーションが、開発者を示す情報(以降では、「開発元識別情報」と呼ぶ場合がある)を詐称することで、本来は利用権限のないAPIが不正に利用される場合が推測される。
そこで、本開示では、開発者に応じて機能の利用を制限し、かつ、機能の不正利用を抑止することが可能な、新規かつ改良された情報処理装置、情報処理方法、プログラム、及びサーバを提案する。
本開示によれば、ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得する取得部と、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元であるか否かを判定する判定部と、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元である場合に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御する制御部と、前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記判定が行われた開発元の情報を関連付けるコンテンツ処理部と、を備える、情報処理装置が提供される。
また、本開示によれば、ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得することと、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元であるか否かを判定することと、プロセッサが、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元である場合に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御することと、前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記判定が行われた開発元の情報を関連付けることと、を含む、情報処理方法が提供される。
コンピュータに、ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得することと、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元であるか否かを判定することと、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元である場合に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御することと、前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記判定が行われた開発元の情報を関連付けることと、を実行させるプログラムが提供される。
また、本開示によれば、コンテンツの取得に係るアプリケーションプログラムに関連付けられた開発元の情報と、事前申請された開発元であると判定された開発元に対応した前記開発元の情報が暗号化された暗号化情報とが関連付けられた前記コンテンツを、端末から取得するコンテンツ取得部と、前記コンテンツに関連付けられた開発元の情報と、前記暗号化情報が示す開発元の情報とを比較し、当該コンテンツに関連付けられた開発元の情報が改変されているか否かを判定する判定部と、を備えるサーバが提供される。
以上説明したように本開示によれば、開発者に応じて機能の利用を制限し、かつ、機能の不正利用を抑止することが可能な情報処理装置、情報処理方法、プログラム、及びサーバが提供される。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
本開示の実施形態に係る情報処理システムの適用分野について説明するための図である。 同実施形態に係る情報処理システムの概略的なシステム構成の一例を示した図である。 同実施形態に係る情報処理装置及びユーザ端末の概略的な機能構成の一例を示したブロック図である。 同実施形態に係る情報処理システムにおけるAPIへのアクセス制御に係る処理の概要について説明するための説明図である。 APIへのアクセス制御に係る処理の概要について説明するための図である。 APIへのアクセス制御に係る処理の概要について説明するための図である。 APIへのアクセス制御に係る処理の概要について説明するための図である。 同実施形態に係る管理サーバの構成の一例を示したブロック図である。 同実施形態に係る情報処理装置及びユーザ端末におけるAPIへのアクセス制御に係る処理に着目した機能構成の一例を示したブロック図である。 同実施形態に係る管理サーバの一連の動作を示したシーケンス図である。 同実施形態に係る情報処理装置におけるAPIへのアクセス制御に係る一連の動作の一例を示したシーケンス図である。 同実施形態に係る情報処理装置及びユーザ端末におけるコンテンツの取得に係る処理に着目した機能構成の一例を示したブロック図である。 同実施形態に係る情報処理装置が生成するコンテンツのデータの一例を示した図である。 コンテンツに関する情報表示の一例である。 同実施形態の実施例1に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例1に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例1に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例1に係る情報処理システムの適用例について説明するための図である。 同実施形態の実施例1に係る情報処理システムの適用例について説明するための図である。 同実施形態の実施例1に係る情報処理システムの一連の動作の一例を示したシーケンス図である。 同実施形態の実施例2に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例3に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例3に係る情報処理システムの一連の動作の一例を示したシーケンス図である。 同実施形態の実施例4に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例4に係る情報処理システムの一連の動作の一例を示したシーケンス図である。 同実施形態の実施例5に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例5に係る情報処理システムの一連の動作の一例を示したシーケンス図である。 同実施形態の実施例6に係る情報処理システムの概要について説明するための図である。 同実施形態の実施例6に係る情報処理システムの一連の動作の一例を示したシーケンス図である。 同実施形態の実施例7に係る情報処理システムの一連の動作の一例を示したシーケンス図である。 本開示の実施形態に係る情報処理装置のハードウェア構成の一例である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.課題の整理
2.概略的な構成
2.1.システム構成
2.2.情報処理装置及びユーザ端末の構成
3.APIへのアクセス制御
3.1.概要
3.2.管理サーバの構成
3.3.情報処理装置及びユーザ端末の構成
3.4.処理
3.3.1.事前申請に係る動作
3.3.2.APIへのアクセス制御に係る動作
3.5.情報処理装置及びユーザ端末の処理
4.コンテンツの取得
5.実施例
5.1.実施例1:コンテンツの属性情報として開発元情報を記録する例1
5.2.実施例2:コンテンツの属性情報として開発元情報を記録する例2
5.3.実施例3:プレビュー画像上へ開発元情報を重畳させる例
5.4.実施例4:実画像上へ開発元情報を重畳させる例
5.5.実施例5:履歴情報として開発元情報を記録する例
5.6.実施例6:履歴情報として記録された開発元情報の表示例
5.7.実施例7:複数のアプリケーションを動作させる場合の例
6.ハードウェア構成
7.まとめ
<1.課題の整理>
まず、図1を参照しながら、本開示の実施形態に係る情報処理システムの課題について整理する。図1は、本開示の実施形態に係る情報処理システムの適用分野について説明するための図である。
近年では、図1に示すように、デジタルカメラ10aやテレビジョン装置10b等のデバイスや、PC(Personal Computer)等のような情報処理装置10cを、スマートフォンのようなユーザ端末20を介して操作する機能が提供されている。なお、以降では、デジタルカメラ10a、テレビジョン装置10b、及び情報処理装置10cを総じて、「情報処理装置10」と呼ぶ場合がある。
ユーザ端末20を介して情報処理装置10を操作する技術は、例えば、ユーザ端末20に専用のアプリケーションd10をインストールし、当該アプリケーションd10を媒介として、情報処理装置10の動作を制御することにより実現される。
また、情報処理装置10の動作を制御するアプリケーションd10を開発できるように、情報処理装置10の動作を制御するためのAPIを一般の開発者に対して提供する場合がある。
上記のように提供されるAPIの中には、基本的な動作を制御するためのAPIや、細かい制御を可能とするAPI、または、付加的な機能を実現するためのAPI等のように多様な種類のAPIが含まれている場合がある。このようなAPIの中には、一般の開発者に公開可能なものから、特定の契約を結んだ開発者や、APIの利用に対して課金を行った開発者にのみ公開可能なものが含まれる場合もある。そのため、APIの公開範囲、即ち、情報処理装置10が提供する機能の利用に関する制限を、開発者に応じて変更できるような仕組みが求められている。
しかしながら、APIの利用権限を持たない開発者が作成したアプリケーションが、開発者を示す識別情報(以降では、「開発元識別情報」と呼ぶ場合がある)を詐称することで、本来は利用権限のないAPIを利用可能とする不正が行われる場合が推測される。そのため、開発元の詐称によるAPIの不正利用を抑止する技術も求められている。
APIの不正利用を抑止する手法としては、例えば、鍵共有方式に基づきユーザ端末20と情報処理装置10で送受信される情報を暗号化することで、通信路上での盗聴を防止する方法が挙げられる。しかしながら、スマートフォンのようなユーザ端末20にダウンロードされたアプリケーションは、逆アセンブルされる恐れがある。このことは、ユーザ端末20が情報を暗号化するために保持する鍵情報についても同様であり、鍵情報が逆アセンブルされ不正に公開された場合には、暗号化に基づく情報の保護が意味をなさなくなる場合もある。
また、他の方法として、例えば、開発者ごとの権限情報を、情報処理装置10やユーザ端末20とは異なる外部サーバ等で管理し、情報処理装置10がサーバ上の権限情報を参照することで、APIへのアクセス制御を実現する方法もある。しかしながら、情報処理装置10の中には、デジタルカメラ等のようにインターネットのような外部ネットワークにアクセスするためのインタフェースを持たないものもあり、外部サーバに対して常時アクセス可能とすることが困難な場合がある。また、ユーザ端末20側についても、外部サーバに対して常時アクセス可能とすることが困難な場合がある。例えば、ユーザ端末20の中には、デジタルカメラ等のような情報処理装置10との間で、Wi−Fi(Wireless Fidelity)(登録商標)のような技術に基づき直接通信を行う場合に、外部ネットワークにアクセスできないものもある。
また、外部ネットワークへのアクセスを前提としない情報処理装置10は、例えば、ファームウェアアップデート等により内部の情報を更新するため、当該内部の情報を適宜更新することが困難な場合もある。そのため、例えば、APIに対する特定の開発者の権限を判定するための情報を、情報処理装置10側に記憶させる手法は現実的ではない場合がある。
また、他の手法として、アプリケーション自体に正当性を示す証明書(例えば、デジタル証明書)を付与することで、当該証明書に基づきAPIに対するアクセス権限の正当性を判断する手法もある。しかしながら、ユーザ端末20で動作するアプリケーションに添付された証明書を情報処理装置10側で検証する場合には、当該アプリケーション自体を情報処理装置10に送信する必要があり、アプリケーションを起動するための負荷が増大する。
以上の点から、ユーザ端末20内の情報が参照された場合においても、情報処理装置10が外部ネットワークに接続可能か否かに関わらず、開発元の詐称に伴うAPIの不正利用を抑止する仕組みが求められている。
そこで、本開示では、開発者に応じてAPIの利用を制限し、かつ、開発元の詐称に伴うAPIの不正利用を抑止することが可能な情報処理システムを提案する。
<2.概略的な構成>
次に、本実施形態に係る情報処理システムの概略的な構成について説明する。本実施形態に係る情報処理システムは、開発者u50が情報処理装置10の動作を制御するためのアプリケーションを開発できるように、当該情報処理装置10の動作制御に係るAPI群50を、開発者u50に公開するための仕組みを提供する。
[2.1.システム構成]
まず、図2を参照しながら、本実施形態に係る情報処理システムの概略的な構成について説明する。図2は、本実施形態に係る情報処理システムの概略的なシステム構成の一例を示した図である。
図2に示すように、本実施形態に係る情報処理システムは、情報処理装置10と、ユーザ端末20と、管理サーバ30と、コンテンツ管理サーバ70と、開発者端末80と、アプリケーション提供サーバ90とを含む。
開発者端末80は、開発者u50がアプリケーションを開発するための端末を示している。なお、以降では、開発者u50が開発したアプリケーションを「アプリケーションd10」と記載する場合がある。
管理サーバ30は、事前登録された開発者u50に対して、API群50のうち、利用が制限されたAPIに対しするアクセスを制御(許可)するための制御情報を発行する。開発者u50は、管理サーバ30から発行された制御情報を開発したアプリケーションd10に関連付けることで、当該アプリケーションd10の処理として、情報処理装置10に、利用が制限されたAPIを実行させることが可能となる。
アプリケーション提供サーバ90は、開発者u50が開発したアプリケーションd10を、一般のユーザu20に有償または無償で提供するためのサーバを模擬的に示している。アプリケーション提供サーバ90の具体的な一例としては、アプリケーションストアのような配信チャネルを提供するサーバが挙げられる。ユーザ端末20は、例えば、アプリケーション提供サーバ90で公開されているアプリケーションd10をダウンロードすることで取得する。
なお、アプリケーション提供サーバ90を介したアプリケーションd10の提供方法はあくまで一例であり、開発者u50が開発したアプリケーションd10をユーザ端末20が取得できれば、本実施形態に係る情報処理システムの構成は限定されない。例えば、アプリケーションd10は、可搬媒体などに記憶された状態でユーザu20に提供されてもよい。この場合には、ユーザu20が、可搬媒体中のアプリケーションd10をユーザu20にインストールすることで、ユーザ端末20中にアプリケーションd10が記憶される。
コンテンツ管理サーバ70は、情報処理装置10等により取得された画像データ等のコンテンツを管理・記憶するためサーバを模擬的に示している。コンテンツ管理サーバ70は、例えば、情報処理装置10で取得されたコンテンツを記憶するための記憶領域を提供したり、記憶されたコンテンツを複数のユーザ間で共有するためのサービスを提供する。具体的な一例として、コンテンツ管理サーバ70は、SNS(Social Networking Service)等のように複数のユーザ間での情報共有を可能とするサービスを提供するためのサーバとして構成され得る。
管理サーバ30と、コンテンツ管理サーバ70と、開発者端末80と、アプリケーション提供サーバ90と、ユーザ端末20とは、ネットワークn0を介して接続されている。ネットワークn0は、例えば、インターネット、専用線、LAN(Local Area Network)、または、WAN(Wide Area Network)等により構成される。なお、異なる装置間を接続するネットワークであれば、ネットワークn0の態様は限定されない。
また、管理サーバ30、コンテンツ管理サーバ70、開発者端末80、アプリケーション提供サーバ90、及びユーザ端末20のうちの一部の構成間のネットワークを他の構成間のネットワークとは物理的または論理的に別のネットワークとして構成してもよい。具体的な一例として、管理サーバ30と開発者端末80との間を、VPN(Virtual Private Network)の技術を利用することで、インターネットのような外部ネットワークから論理的に隔離してもよい。
情報処理装置10は、ユーザ端末20でアプリケーションd10が実行されることで動作が制御される制御対象を示している。情報処理装置10とユーザ端末20とは、ネットワークn1を介して接続されている。ネットワークn1としては、例えば、Wi−Fiのような装置間の直接通信における無線通信の経路が挙げられる。なお、以降は、ネットワークn1を、情報処理装置10とユーザ端末20との間の直接通信における無線通信の経路として説明するが、情報処理装置10とユーザ端末20との間で通信が確立できれば、その態様は限定されないものとする。
情報処理装置10は、自身の動作を制御するためのAPI群50を記憶しており、アプリケーションd10の実行に基づくユーザ端末20からの指示に応じて、API群50の中から対応するプログラム(API)を動作させる。
[2.2.情報処理装置及びユーザ端末の構成]
次に、図3を参照しながら、本実施形態に係る情報処理装置10及びユーザ端末20の概略的な機能構成について説明する。図3は、本実施形態に係る情報処理装置10及びユーザ端末20の概略的な機能構成の一例を示したブロック図である。
まず、ユーザ端末20に着目する。図3に示すように、ユーザ端末20は、通信部202と、コンテンツ記憶部204とを含み、アプリケーション25がインストールされている。なお、アプリケーション25は、前述した情報処理装置10の動作を制御するためのアプリケーションd10が実行されることにより実現される機能を模式的に示している。アプリケーション25は、認証処理部250と、処理実行部260とを含む。
通信部202は、情報処理装置10と通信を行うためのインタフェースである。通信部202は、例えば、ユーザ端末20と情報処理装置10との間で、Wi−Fi等のような無線通信を確立するためのデバイスであり得る。なお、無線通信に限らず、ユーザ端末20と情報処理装置10との間で通信を確立できれば、通信部202の態様は特に限定されない。なお、以降では、ユーザ端末20内の各構成が情報処理装置10側の構成とデータの送受信を行う場合には、特に記載が無い場合においても、通信部202を介してデータの送受信を行うものとする。
また、通信部202は、コンテンツ管理サーバ70との間で通信可能に構成されていてもよい。この場合には、通信部202は、ユーザ端末20とコンテンツ管理サーバ70との間で、例えば、インターネットのような通信経路を介して通信を確立するデバイスであり得る。なお、図3に示す例では、説明をわかりやすくするために、通信部202が、情報処理装置10及びコンテンツ管理サーバ70の双方と通信可能に示しているが、必ずしも当該構成には限定されない。例えば、情報処理装置10との間で通信を確立する場合と、コンテンツ管理サーバ70との間で通信を確立する場合とのそれぞれについて、通信を確立するためのデバイスを別々に設けてもよいことは言うまでもない。
認証処理部250は、利用が制限されたAPIに対してアクセスするための申請を、情報処理装置10に行うための構成を模式的に示したものである。なお、認証処理部250による処理の詳細については、「3.APIへのアクセス制御」として別途後述する。
処理実行部260は、インストールされたアプリケーション25に定義された各処理を実行することで、情報処理装置10の動作を制御するための構成を模式的に示したものである。認証処理部250により、利用が制限されたAPIに対してアクセスするための申請が事前に実行されることで、処理実行部260は、アプリケーション25に定義された各処理として、当該APIにアクセスし、情報処理装置10の動作を制御することが可能となる。
なお、処理実行部260が、アプリケーション25に定義された各処理としてAPIにアクセスすることで実現される情報処理装置10の動作は、必ずしもコンテンツの取得に限定されるものではない。
例えば、カメラとして構成された情報処理装置10を制御することで画像を撮像させる場合には、処理実行部260は、APIにアクセスすることで、露光条件、ホワイトバランス、または露光感度等のような画像の撮像(即ち、コンテンツの取得)に係る制御を行ってもよい。また、他の一例として、処理実行部260は、情報処理装置10がサポートするAPIの一覧等のような管理情報を、APIにアクセスすることで情報処理装置10に通知させてもよい。なお、以降では、「APIへのアクセスを受けてコンテンツを取得する」と記載した場合には、当該APIは、コンテンツの取得を直接的に示す機能に限定されず、上記に示す例のように、コンテンツの取得に係る一連の処理において実行される機能も含むものとする。
また、処理実行部260は、情報処理装置10の動作を制御することにより、情報処理装置10にコンテンツを取得させ、取得されたコンテンツを当該情報処理装置10からネットワークn1を介して取得してもよい。この場合には、処理実行部260は、取得したコンテンツをコンテンツ記憶部204に記憶させてもよい。
コンテンツ記憶部204は、取得されたコンテンツを記憶するための記憶部である。コンテンツ記憶部204は、ユーザ端末20に設けられた記憶デバイス(ストレージ)として構成され得る。また、他の一例として、コンテンツ記憶部204は、ユーザ端末20に対して着脱可能な可搬媒体として構成されてもよい。
なお、処理実行部260は、コンテンツ記憶部204に記憶されたコンテンツを、通信部202を介してコンテンツ管理サーバ70に送信(転送)可能に構成されていてもよい。また、アプリケーション25に限らず、ユーザ端末20にインストールされた他のアプリケーションが、コンテンツ記憶部204に記憶されたコンテンツをコンテンツ管理サーバ70に送信(転送)してもよい。
次に、情報処理装置10に着目する。図3に示すように、情報処理装置10は、通信部102と、処理部130と、コンテンツ取得部190と、鍵情報記憶部104と、通知部106と、識別情報記憶部108と、コンテンツ記憶部110とを含む。また、処理部130は、認証処理部150と、処理実行部170とを含む。
通信部102は、ユーザ端末20と通信を行うためのインタフェースである。なお、通信部102の構成は、前述した通信部202と同様であるため詳細な説明は省略する。また、以降では、情報処理装置10内の各構成がユーザ端末20側の構成とデータの送受信を行う場合には、特に記載が無い場合においても、通信部102を介してデータの送受信を行うものとする。
また、通信部102は、コンテンツ管理サーバ70との間で通信可能に構成されていてもよい。この場合についても、通信部102の構成は、前述した通信部202と同様であり得る。即ち、図3に示す例では、説明をわかりやすくするために、通信部102が、ユーザ端末20及びコンテンツ管理サーバ70の双方と通信可能に示しているが、必ずしも当該構成には限定されない。
コンテンツ取得部190は、後述する処理実行部170からの指示に応じて、各種コンテンツを取得するための構成である。コンテンツ取得部190は、取得したコンテンツを処理実行部170に出力する。
なお、コンテンツ取得部190により取得されるコンテンツの具体的な一例としては、静止画や動画のような画像データが挙げられる。画像データをコンテンツとして取得する場合には、コンテンツ取得部190は、例えば、画像を撮像可能な撮像素子、または、当該撮像素子を備えたデバイス(例えば、カメラ)により構成され得る。
また、他の一例として、コンテンツ取得部190は、音声データをコンテンツとして取得してもよい。このように、音声データをコンテンツとして取得する場合には、コンテンツ取得部190は、例えば、マイクのような音声を集音可能なデバイスにより構成され得る。
なお、上記に示すコンテンツの例はあくまで一例であり、コンテンツ取得部190により取得されるコンテンツの種別を限定するものではなく、当該コンテンツの取得方法についても限定されない。また、取得されるコンテンツの種別や、当該コンテンツの取得方法に応じて、コンテンツ取得部190の構成が異なる場合があることは言うまでない。
通知部106は、情報処理装置10の利用者(即ち、ユーザu20)に対して情報を通知するための構成である。例えば、通知部106は、後述する認証処理部150から指定された通知情報をユーザu20に通知する。
なお、通知部106によりユーザu20に通知される通知情報の具体的な一例として文字情報や画像情報が挙げられる。文字情報や画像情報をユーザu20に通知する場合には、通知部106は、例えば、当該文字情報や画像情報を表示可能な表示部、または、当該表示部を備えたデバイス(例えば、ディスプレイ)により構成され得る。
また、他の一例として、通知部106は、音声情報を通知情報としてユーザu20に通知してもよい。このように、音声情報をユーザu20に通知する場合には、通知部106は、例えば、スピーカのような音声を出力可能なデバイスにより構成され得る。
認証処理部150は、ユーザ端末20にインストールされたアプリケーション25の開発者が事前申請された開発者か否かを、鍵情報記憶部104に記憶された鍵情報に基づき判定する。そして、認証処理部150は、判定結果に応じて、利用が制限されたAPIへの当該アプリケーション25からのアクセスを制限または解除する。
鍵情報記憶部104は、アプリケーション25の開発者が事前申請された開発者か否かを判定するための鍵情報をあらかじめ記憶している。なお、認証処理部150が、鍵情報記憶部104に記憶された鍵情報に基づき、アプリケーション25の開発者が事前申請された開発者か否かを判定する処理の詳細については、「3.APIへのアクセス制御」として別途後述する。
識別情報記憶部108は、認証処理部150により事前申請された開発者であると判定された、当該開発者を識別するための識別情報を記憶するための記憶部である。
コンテンツ記憶部110は、例えば、コンテンツ取得部190により取得されたコンテンツや、当該コンテンツに関連付けられた情報(例えば、コンテンツの取得に係る履歴情報)を記憶するための記憶部である。コンテンツ記憶部110は、情報処理装置10に設けられた記憶デバイス(ストレージ)として構成され得る。また、他の一例として、コンテンツ記憶部110は、情報処理装置10に対して着脱可能な可搬媒体として構成されてもよい。
なお、情報処理装置10の各構成、即ち、通信部102、処理部130、コンテンツ取得部190、鍵情報記憶部104、通知部106、識別情報記憶部108、及びコンテンツ記憶部110は、各種演算処理を実行するための回路により構成することが可能である。これらの一連の構成は、例えば、当該回路により構成されるIC(Integrated Circuit)等のデバイスにより実現してもよいし、一部の構成を別のデバイスにより実現してもよい。
<3.APIへのアクセス制御>
[3.1.概要]
本実施形態に係る情報処理システムでは、情報処理装置10は、自身の動作を制御するためのAPI群50に対する開発者u50の利用申請の状況に応じて、アプリケーションd10からAPI群50中の各APIへのアクセスを制御する。
そこで、まず、図4を参照しながら、本実施形態に係る情報処理システムにおける、APIへのアクセス制御に係る処理の概要について説明する。図4は、本実施形態に係る情報処理システムにおけるAPIへのアクセス制御に係る処理の概要について説明するための説明図である。なお、図4に示す例では、図2に示した各構成のうち、APIへのアクセス制御に係る構成のみに着目して示しており、その他の構成については記載を省略している。
本実施形態に係る情報処理システムでは、管理サーバ30が、開発者u50からの申請に基づき、API群50のうち申請が承認されたAPIの制限を解除するためのアクセス制御情報d30を当該開発者u50に対して発行する。
具体的には、管理サーバ30は、開発者u50により指定された当該開発者u50の開発者名d20と、API群50のうち使用するAPIのリストとを、当該開発者u50が操作する開発者端末80から取得する。管理サーバ30は、「開発者名d20」が示す開発者u50に対して識別情報d22を発行する。
また、管理サーバ30は、取得したAPIのリストに基づき、リスト中に指定されたAPIに対するアクセスを制御(許可)するためのアクセス制御情報d30を生成する。なお、アクセス制御情報d30の内容については、当該アクセス制御情報d30を生成する具体的な構成の説明とあわせて別途後述する。
また、管理サーバ30は、あらかじめ生成された鍵情報k10を記憶しており、開発者名d20と、識別情報d22と、アクセス制御情報d30とを、当該鍵情報k10に基づき符号化して符号化情報d32を生成する。
管理サーバ30は、発行した識別情報d22と、生成したアクセス制御情報d30及び符号化情報d32とを、開発者u50の開発者端末80に送信する。以上により、開発者u50が、API群50のうち利用の申請を行ったAPIを使用してアプリケーションd10を開発するための事前申請が完了する。
なお、本実施形態に係る情報処理システムでは、開発者u50は、開発するアプリケーションd10において利用の申請を行ったAPIを使用する場合には、開発者名d20と、識別情報d22と、アクセス制御情報d30と、符号化情報d32とを当該アプリケーションd10内に埋め込む。なお、以降では、開発者名d20と、識別情報d22とを総じて「開発元識別情報」と呼ぶ場合がある。
また、開発元識別情報と、アクセス制御情報d30と、符号化情報d32とを総じて「認証情報」と呼ぶ場合がある。このような構成により、情報処理装置10は、アプリケーションd10が実行された場合に、アプリケーションd10に埋め込まれた認証情報を取得し、取得した認証情報に基づき、開発者u50がAPIの利用権限を有しているかを確認することが可能となる。なお、情報処理装置10による、認証情報に基づくAPIの利用権限の有無の確認に係る動作の詳細については別途後述する。
また、アプリケーションd10への、認証情報の埋め込みについては、APIの動作によりルール化することが可能である。具体的な一例として、API群50のうち利用申請が必要なAPIについては、アプリケーションd10が実行された場合に、当該アプリケーションd10に埋め込まれた認証情報が提示されない場合には、利用制限が解除されないように処理を定義しておけばよい。
開発者u50により開発され、認証情報が埋め込まれたアプリケーションd10は、例えば、アプリケーション提供サーバ90で公開される。これにより、ユーザu20は、開発者u50が開発したアプリケーションd10を、アプリケーション提供サーバ90からダウンロードして自身のユーザ端末20にインストールすることが可能となる。
次に、ユーザ端末20にインストールされたアプリケーションd10が実行されることで、ユーザ端末20がネットワークn1を介して情報処理装置10にアクセスした場合の動作に着目して説明する。
本実施形態に係る情報処理装置10は、アプリケーションd10の実行に伴いユーザ端末20からのアクセスを受けた場合に、当該ユーザ端末20からアプリケーションd10に埋め込まれた認証情報を取得する。
このとき、ユーザ端末20は、認証情報のうち、開発元識別情報及びアクセス制御情報d30に対して不可逆処理を施さずに情報処理装置10に送信する。また、ユーザ端末20は、認証情報のうち少なくとも開発元識別情報に対して暗号化処理及び符号化処理のいずれも施さずに、情報処理装置10への送信対象としてもよい。なお、ここでの暗号化処理及び符号化処理は、データの保護を目的とした暗号化処理及び符号化処理を指し、所定の通信方式に基づき通信を行うための暗号化処理及び符号化処理を指すものではない。
また、ユーザ端末20は、認証情報に含まれる符号化情報d32を更に符号化して、情報処理装置10に送信してもよい。このとき、ユーザ端末20は、符号化情報d32を符号化するための鍵情報(例えば、乱数)を情報処理装置10から取得してもよい。なお、ユーザ端末20による符号化情報d32の符号化に係る処理の詳細については、別途後述する。
情報処理装置10は、ユーザ端末20から取得した認証情報に基づき、当該認証情報中に含まれる開発元識別情報が示す開発者u50が、APIの利用申請を行った開発元であるか否かを判別する。
具体的な一例として、情報処理装置10は、ユーザ端末20から取得した開発者名d20、識別情報d22、及びアクセス制御情報d30を符号化して符号化情報d42を生成し、当該符号化情報d42に基づき、開発者u50に対する判別を行ってもよい。
この場合には、情報処理装置10は、管理サーバ30に記憶された鍵情報k10をあらかじめ取得し記憶しておく。情報処理装置10は、ユーザ端末20から取得した開発元識別情報及びアクセス制御情報d30を、鍵情報k10に基づき符号化して符号化情報d42を生成する。そして、情報処理装置10は、生成した符号化情報d42と、取得した符号化情報d32とを比較し、これらが一致するか否かに基づき、開発元識別情報が示す開発者u50が、APIの利用申請を行った開発元であるか否かを判別すればよい。
なお、上記に示した判別方法はあくまで一例であり、情報処理装置10が、取得した認証情報に基づき、開発元識別情報が示す開発者u50が、APIの利用申請を行った開発元であるか否かを判別できれば、その態様は限定されない。
開発者u50がAPIの利用申請を行った開発元であることが確認できたら、情報処理装置10は、認証情報中のアクセス制御情報d30に基づき、利用申請が行われているAPIを認識する。そして、情報処理装置10は、アプリケーションd10の実行に伴い呼び出されるAPIが、アクセス制御情報d30に基づき認識できるAPI中に含まれるか否かに応じて、自身による当該APIの実行を制御する。
また、開発者u50がAPIの利用申請を行った開発元であることが確認できた場合には、情報処理装置10は、開発元識別情報が示す開発者u50の情報を、例えば表示部に識別可能に表示させてもよい。例えば、図5は、本実施形態に係る情報処理システムの適用例について説明するための図であり、情報処理装置10とユーザ端末20との間の接続確立時にアプリケーションd10の開発元を示す情報を表示させる場合の例を示している。図5に示すように、情報処理装置10は、ディスプレイとして構成された通知部106に、開発元識別情報が示す開発者u50を識別可能に提示した開発元情報v10を表示させている。
なお、開発元識別情報が示す開発者u50を識別可能に提示可能であれば、開発元情報v10の態様は特に限定されない。具体的な一例として、情報処理装置10やユーザ端末20が音声情報を出力可能な出力部(例えば、スピーカー)を備えている場合には、情報処理装置10は、開発元情報v10を音声情報として、当該出力部を介して出力してもよい。なお、開発元情報v10を音声情報として出力する場合には、例えば、通知部106は、当該出力部として構成され得ることは言うまでもない。
ここで、開発者u50が、事前申請を行わずに、事前申請を行った他の開発者の情報に詐称した認証情報をアプリケーションd10に埋め込んだものとする。この場合には、アプリケーションd10の提供時にダウンロードサイト等に示される開発元と、アプリケーションd10の実行に伴い表示される開発元とが一致しなくなる。例えば、図6は、本実施形態に係る情報処理システムの適用例について説明するための図であり、ダウンロードサイトv90の一例を示している。
図6に示すように、ダウンロードサイトv90には、提供対象となるアプリケーションd10に関する情報として、当該アプリケーションd10の開発を示した開発元情報v92が表示される。前述の通り、開発者u50が、事前申請を行った他の開発者の情報に詐称した場合には、図5に示した通知部106に通知される開発元情報v10と、図6に示したダウンロードサイトv90に提示される開発元情報v92とが一致しなくなる。なお、可搬媒体を利用してインストールした場合には、例えば、当該可搬媒体のパッケージ上の記載や、ホームページ等で公開されている情報に基づき、本来の開発元を確認することも可能である。
また、アプリケーションd10の実行時に、開発元識別情報に対して暗号化や符号化が施されずに情報処理装置10に送信されるため、ユーザ端末20と情報処理装置10との間のネットワークn1に開発元識別情報が露出することとなる。
以上のように、本実施形態に係る情報処理システムでは、アプリケーションd10の実行時に、ユーザ端末20に、当該アプリケーションd10に埋め込まれた開発元識別情報が示す開発元情報を提示させる。これにより、開発元の詐称によりAPIが不正利用されていたとしても、アプリケーションd10を利用するユーザに開発元が詐称されていることを気付かせることが可能となる。また、このように開発元の詐称がアプリケーションd10を利用するユーザにより検知されることで、開発元の不正がユーザに知られることとなるため、副次的に、開発元の詐称に伴うAPIの不正利用を抑止することが可能となる。
なお、情報処理装置10が、開発元情報v10を提示するタイミングは特に限定されない。具体的な一例として、情報処理装置10は、ユーザ端末20で実行されたアプリケーションd10に基づき動作が制御されている間は、開発元情報v10を通知部106に通知させていてもよい。
例えば、図7は、本実施形態に係る情報処理システムの適用例について説明するための図であり、情報処理装置10としてデジタルカメラを使用し、ユーザ端末20からの操作に基づきデジタルカメラによる撮像を制御する場合の一例を示している。
図7に示す例では、デジタルカメラによる撮像に伴い、表示部として構成された通知部106に撮像された画像v20aが表示されるとともに、当該画像v20aがユーザ端末20に転送され、画像v20bとしてユーザ端末20の表示部206に表示されている。このとき、デジタルカメラは、通知部106に表示された画像v20aとあわせて開発元情報v10を表示させてもよい。このように、アプリケーションd10が動作している期間中に開発元情報v10を表示させることで、ユーザu20に対して、動作しているアプリケーションd10と開発元情報v10が示す開発元との関係をより意識づけることが可能となる。
[3.2.管理サーバの構成]
次に、図8を参照しながら、管理サーバ30の詳細な構成について説明する。図8は、本実施形態に係る管理サーバ30の構成の一例を示したブロック図である。
図8に示すように、管理サーバ30は、開発元情報取得部302と、識別情報生成部304と、開発元情報記憶部306と、符号化情報生成部308と、鍵情報記憶部310とを含む。
開発元情報取得部302は、開発者u50により指定された当該開発者u50の開発者名d20と、API群50のうち使用するAPIのリストとを、当該開発者u50が操作する開発者端末80から取得する。
なお、開発元情報取得部302が、開発者名d20と、APIのリストとを取得する方法は特に限定されない。例えば、開発元情報取得部302は、メールを媒介として、開発者端末80から開発者名d20と、APIのリストとを取得してもよい。
また、他の一例として、開発元情報取得部302は、開発者名d20及びAPIのリストを指定するための画面を生成してもよい。この場合には、開発者u50は、例えば、開発者端末80を操作して管理サーバ30にアクセスし、開発元情報取得部302が提示する画面に対して操作を行うことで、開発者名d20及びAPIのリストを指定してもよい。
開発元情報取得部302は、取得した開発者名d20と、APIのリストとを識別情報生成部304に出力する。
識別情報生成部304は、開発者名d20と、APIのリストとを開発元情報取得部302から取得する。識別情報生成部304は、「開発者名d20」が示す開発者u50に対して識別情報d22を発行する。
また、識別情報生成部304は、取得したAPIのリストに基づき、リスト中に指定されたAPIに対するアクセスを制御(許可)するためのアクセス制御情報d30を生成する。
アクセス制御情報d30は、例えば、利用が許可されたAPI名の一覧でもよいし、API名を示す識別情報(例えば、APIを示す番号)の一覧でもよい。また、APIの管理単位に応じてアクセス制御情報の内容を適宜変更してもよい。例えば、パッケージ単位で管理している場合には、アクセス制御情報d30は、利用が許可されたパッケージ名の一覧でもよい。また、開発者を所定の種別に分けて管理し、当該開発者の種別ごとに利用可能なAPIを定義している場合には、アクセス制御情報d30は、開発者の種別を示す情報でもよい。このように、利用が許可されたAPIを識別可能であれば、アクセス制御情報d30の態様は特に限定はされない。
識別情報生成部304は、取得した開発者名d20と、発行した識別情報d22と、生成したアクセス制御情報d30とを関連付けて、開発元情報として開発元情報記憶部306に記憶させる。なお、既に開発元情報が登録された開発者u50から、新たに利用するAPIに関する登録の申請を受けた場合には、識別情報生成部304は、開発元情報記憶部306に記憶された当該開発者u50の開発元情報を更新するように動作させてもよい。
識別情報生成部304は、取得した開発者名d20と、発行した識別情報d22と、生成したアクセス制御情報d30とを、符号化情報生成部308に出力する。
符号化情報生成部308は、開発者名d20と、識別情報d22と、アクセス制御情報d30とを、識別情報生成部304から取得する。
符号化情報生成部308は、開発者名d20と、識別情報d22と、アクセス制御情報d30とを、あらかじめ生成された鍵情報k10に基づき符号化して符号化情報d32を生成する。なお、鍵情報k10は、鍵情報記憶部310に記憶されている。
このとき、符号化情報生成部308は、符号化の方式として不可逆的な符号化方式を用いてもよい。なお、符号化情報d32を生成するための符号化方式は、鍵情報に基づき符号化可能であれば、その方法は限定されない。符号化情報d32を生成するための符号化方式の一例として、鍵付きハッシュが挙げられる。
符号化情報生成部308は、識別情報d22と、アクセス制御情報d30と、符号化情報d32とを、開発者u50の開発者端末80に送信する。これにより、開発者u50が、利用申請を行ったAPIを使用してアプリケーションd10を開発するための情報、即ち、識別情報d22、アクセス制御情報d30、及び符号化情報d32が、開発者u50に通知される。
以上により、開発者u50が、API群50のうち利用の申請を行ったAPIを使用してアプリケーションd10を生成するための事前申請が完了する。なお、アプリケーションd10が、情報処理装置10内のAPI群50を利用するためには、開発元識別情報、アクセス制御情報d30、及び符号化情報d32を情報処理装置10に通知する必要がある。そのため、例えば、開発者u50により開発されたアプリケーションd10には、管理サーバ30から開発者u50に通知された開発元識別情報、アクセス制御情報d30、及び符号化情報d32が埋め込まれることとなる。なお、開発元識別情報、アクセス制御情報d30、及び符号化情報d32が情報処理装置10に通知されれば、必ずしもこれらの情報をアプリケーションd10に埋め込む必要はない。
[3.3.情報処理装置及びユーザ端末の構成]
次に、図9を参照しながら、APIへのアクセス制御に係る情報処理装置10及びユーザ端末20の詳細な構成について説明する。図9は、本実施形態に係る情報処理装置10及びユーザ端末20におけるAPIへのアクセス制御に係る処理に着目した機能構成の一例を示したブロック図であり、その他の構成については記載を省略している。なお、ユーザ端末20には、開発者u50のより開発されたアプリケーションd10が、「アプリケーション25」としてインストールされているものとして説明する。
まず、ユーザ端末20に着目する。図9に示すように、ユーザ端末20には、アプリケーション25がインストールされており、当該アプリケーション25がインストールされることで、認証処理部250が機能としてユーザ端末20に組み込まれる。認証処理部250は、通信処理部252と、符号化処理部254と、アクセス制御情報記憶部256と、符号化情報記憶部258とを含む。
アクセス制御情報記憶部256は、開発元識別情報(即ち、開発者名d20及び識別情報d22)と、アクセス制御情報d30とを記憶する記憶部である。また、符号化情報記憶部258は、符号化情報d32を記憶する記憶部である。
通信処理部252は、情報処理装置10からのデータの取得や、情報処理装置10へのデータの送信を行う。以下に、通信処理部252の具体的な動作について説明する。
アプリケーションd10のうち、認証処理部250に相当する機能が実行されると、通信処理部252は、情報処理装置10に対して符号化のための鍵情報の生成を依頼し、その応答として鍵情報k20を情報処理装置10から取得する。なお、鍵情報k20の詳細については、情報処理装置10の構成の説明とあわせて別途後述する。
情報処理装置10から鍵情報k20を取得すると、通信処理部252は、取得した鍵情報k20を符号化処理部254に出力する。また、通信処理部252は、鍵情報k20の出力に対する応答として、符号化処理部254から符号化情報d52を取得する。符号化情報d52は、前述した符号化情報d32が、鍵情報k20に基づき符号化された情報である。なお、符号化情報d52の生成に係る処理については、符号化処理部254の動作とあわせて別途後述する。
また、通信処理部252は、アクセス制御情報記憶部256から、開発元識別情報及びアクセス制御情報d30を読み出す。通信処理部252は、取得した符号化情報d52と、アクセス制御情報記憶部256から読み出した開発元識別情報及びアクセス制御情報d30とを、認証情報として情報処理装置10に送信する。
このとき、通信処理部252は、認証情報のうち、開発元識別情報及びアクセス制御情報d30に対して不可逆処理を施さずに情報処理装置10に送信する。また、通信処理部252は、認証情報のうち少なくとも開発元識別情報に対して暗号化処理及び符号化処理のいずれも施さずに、情報処理装置10への送信対象としてもよい。なお、ここでの暗号化処理及び符号化処理は、データの保護を目的とした暗号化処理及び符号化処理を指し、所定の通信方式に基づき通信を行うための暗号化処理及び符号化処理のみを指すものではない。
符号化処理部254は、通信処理部252から鍵情報k20を取得する。鍵情報k20を取得すると、符号化処理部254は、符号化情報記憶部258から符号化情報d32を読み出す。符号化処理部254は、読み出した符号化情報d32を取得した鍵情報k20に基づき符号化して、符号化情報d52を生成する。
このとき、符号化処理部254は、符号化の方式として不可逆的な符号化方式を用いる。なお、符号化情報d52を生成するための符号化方式は、鍵情報に基づき符号化可能であり、かつ、不可逆的であれば、その方法は限定されない。符号化情報d52を生成するための符号化方式の一例として、鍵付きハッシュが挙げられる。
符号化処理部254は、生成した符号化情報d52を通信処理部252に出力する。
次に、情報処理装置10の構成について、特に認証処理部150の構成に着目して説明する。図9に示すように、認証処理部150は、乱数生成部152と、認証情報取得部154と、判定部156と、通知制御部158と、アクセス制御部160とを含む。
鍵情報記憶部104は、鍵情報k10を記憶する記憶部である。鍵情報記憶部104には、前述した管理サーバ30の鍵情報記憶部310に記憶された鍵情報と同様の鍵情報k10が記憶されている。
乱数生成部152は、ユーザ端末20から鍵情報の生成に係る依頼を受けると、符号化のための鍵情報k20を生成する。鍵情報k20の具体的な一例として、乱数のようにランダムに生成された情報が挙げられる。なお、鍵情報k20は、乱数に限らず、符号化処理を行うための鍵の役割を果たせば、その態様は特に限定されない。
乱数生成部152は、生成した鍵情報k20をユーザ端末20に送信する。これにより、ユーザ端末20は、鍵情報k20に基づき符号化情報d32を符号化して、符号化情報d52を生成することが可能となる。
また、乱数生成部152は、生成した鍵情報k20を判定部156に出力する。
認証情報取得部154は、情報処理装置10から認証情報として、開発元識別情報、アクセス制御情報d30、及び符号化情報d52を取得する。認証情報取得部154は、取得した認証情報を判定部156に出力する。
判定部156は、ユーザ端末20から送信された認証情報を取得し、取得した認証情報に基づき、当該認証情報中の開発元識別情報が示す開発元が、事前申請された開発元であるか否かを判定する。なお、開発元識別情報が示す開発元は、ユーザ端末20で実行されたアプリケーションd10の開発元を示している。以下に、判定部156による判定処理の一例について説明する。
判定部156は、鍵情報k20を乱数生成部152から取得する。また、判定部156は、認証情報を認証情報取得部154から取得する。また、判定部156は、鍵情報記憶部310から鍵情報k10を読み出す。
判定部156は、取得した認証情報中の開発元識別情報及びアクセス制御情報d30を鍵情報k10に基づき符号化して、符号化情報d42を生成する。なお、このとき判定部156は、管理サーバ30の符号化情報生成部308と同様の符号化処理に基づき、符号化情報d42を生成する。即ち、符号化情報d52の生成元である符号化情報d32が、認証情報中の開発元識別情報及びアクセス制御情報d30に基づき符号化情報生成部308で生成されている場合には、符号化情報d32及びd42は一致することとなる。
符号化情報d42を生成したら、判定部156は、生成した符号化情報d42を鍵情報k20に基づき符号化して、符号化情報d62を生成する。なお、このとき判定部156は、ユーザ端末20の符号化処理部254と同様の符号化処理に基づき、符号化情報d62を生成する。
判定部156は、生成した符号化情報d62と、取得した符号化情報d52とを比較し、一致する場合には、開発元識別情報が示す開発元が、事前申請された開発元であると認識する。なお、このとき、符号化情報d32及びd42が一致する場合には、同様の鍵情報k20に基づき同様の符号化処理により符号化された符号化情報d52及びd62は一致することとなる。
なお、上述した判定部156の処理は、あくまで一例であり、取得した認証情報に基づき、当該認証情報中の開発元識別情報が示す開発元が、事前申請された開発元であるか否かを判定できれば、その動作は限定されない。例えば、判定部156がインターネットのような外部ネットワークを介して管理サーバ30と通信可能であれば、取得した認証情報中の開発元識別情報が正しいか否かを、当該外部ネットワークを介して管理サーバ30に問い合わせてもよい。
また、上記では、符号化情報d32を鍵情報k20により符号化してユーザ端末20から情報処理装置10に送信する例について説明したが、鍵情報k20による符号化を行わずに、符号化情報d32をユーザ端末20から情報処理装置10に送信してもよい。その場合には、鍵情報k20の生成及び送信に係る処理や、鍵情報k20に基づく符号化情報d32の符号化処理を実行する必要が無いことは言うまでもない。また、情報処理装置10は、ユーザ端末20から符号化情報d32を取得し、取得した符号化情報d32が、鍵情報k10に基づき生成した符号化情報d42と一致するか否かに基づき判定を行えばよい。
開発元識別情報が示す開発元が事前申請された開発元であると認識したら、判定部156は、アクセス制御情報d30をアクセス制御部160に出力する。また、判定部156は、開発元識別情報が示す開発元が事前申請された開発元であると認識された認証情報のうち、少なくとも開発元識別情報(もしくは、当該開発元識別情報が示す開発元の情報)を、識別情報記憶部108に記憶させる。なお、このとき判定部156は、認証情報に含まれる一連の情報を識別情報記憶部108に記憶させてもよい。
また、判定部156は、開発元識別情報が示す開発元が事前申請された開発元であることが判別されたことを、ユーザ端末20に通知してもよい。この通知を受けて、ユーザ端末20は、利用に関する事前申請を行ったAPIの呼び出しを行えばよい。
また、判定部156は、開発元識別情報が示す開発元を示す情報、例えば、開発者名d20及び識別情報d22のうち少なくともいずれかを通知制御部158に出力してもよい。なお、以降では、判定部156は、開発者名d20及び識別情報d22の双方を通知制御部158に出力したものとして説明する。
アクセス制御部160は、判定部156からアクセス制御情報d30を取得する。アクセス制御部160は、ユーザ端末20の処理実行部260(図3参照、詳細は後述する)によりアプリケーションd10が実行されAPIが呼び出された場合には、アクセス制御情報d30の内容に基づき、当該APIの実行を許可または制限する。
具体的な一例として、呼び出されたAPIが特に利用を制限されておらず、事前申請を必要としない場合には、アクセス制御部160は、当該APIの実行を許可する。APIの実行が許可されると、情報処理装置10の処理実行部170(図3参照、詳細は後述する)により、当該APIが実行される。
また、呼び出されたAPIの利用が制限されており、アクセス制御情報d30により当該APIの利用が許可されている場合には、アクセス制御部160は、当該APIの実行を許可する。
一方で、呼び出されたAPIの利用が制限されており、アクセス制御情報d30により当該APIの利用が許可されていない場合には、アクセス制御部160は、当該APIの実行を制限または禁止する。このとき、アクセス制御部160は、呼び出されたAPIの実行が許可されていない旨を、ユーザ端末20に通知してもよい。
以上のようにして、アクセス制御部160は、アクセス制御情報d30に基づきAPI群50中の各APIの実行を制御する。
通知制御部158は、開発者名d20及び識別情報d22を判定部156から取得する。通知制御部158は、取得した開発者名d20及び識別情報d22、即ち、実行されたアプリケーションd10の開発元を示す情報を識別可能に通知部106に通知させる。
通知部106は、例えば、ディスプレイ等の表示媒体として構成され得る。具体的な一例として、情報処理装置10がデジタルカメラの場合には、通知部106は、情報の確認や撮像された画像の参照を行うために設けられたディスプレイ等が挙げられる。
また、他の一例として、通知部106は、スピーカ等の音声情報を出力するための出力媒体として構成され得る。この場合には、実行されたアプリケーションd10の開発元を示す情報は、音声情報として通知部106から出力されることは言うまでもない。
このように、実行されたアプリケーションd10の開発元を示す情報を識別可能に表示させることで、例えば、開発元を示す情報を詐称することでAPIが不正に利用されている場合に、この不正利用を検知することが可能となる。
具体的には、開発元を示す情報を詐称している場合には、通知部106に通知される情報が、該当するアプリケーションの取得時にダウンロードサイト等に示される開発元と一致しなくなる。そのため、アプリケーションの実行に伴い取得された開発元を示す情報を識別可能に表示させることで、開発元を示す情報が詐称されている場合に、この開発元を示す情報の詐称を、情報処理装置10を使用しているユーザu20示唆することが可能となる。
なお、開発元を示す情報を識別可能に提示させる場合には、この開発元を示す情報の提示自体により、開発元の詐称に伴うAPIの不正利用を抑止することも可能となる。そのため、開発元を示す情報を識別可能に提示させる場合には、ユーザ端末20から情報処理装置10に開発者名d20または識別情報d22を送信するときに、これらの情報に対して可逆的な暗号化処理や符号化処理を施してもよい。この場合には、判定部156は、開発者名d20または識別情報d22に施された暗号化処理や符号化処理を復号し、復号された開発者名d20または識別情報d22に基づき上述した判定処理を実行すればよい。
また、上記では、開発者ごとに利用可能なAPIを制限する例について説明したが、APIの利用を制限する管理単位は運用に応じて適宜変更することも可能である。例えば、アプリケーションごとに利用可能なAPIを制限する場合には、アプリケーションごとに異なるアクセス制御情報d30を発行してもよい。このとき、アプリケーションごとに発行されるアクセス制御情報d30は、1つの識別情報d22に関連付けて管理してもよいし、それぞれについて異なる識別情報d22を発行してもよい。なお、アクセス制御情報d30が異なる場合には、各アクセス制御情報d30に基づき生成される符号化情報d32も異なるため、APIに対するアクセス制御をアプリケーション単位で切り替えることが可能となる。
なお、上記に示す例では、情報処理装置10は、一連のAPIのうち、利用が制限された一部のAPIを識別するためにアクセス制御情報d30を使用し、当該一部のAPIに対するアクセス制御を実行していた。一方で、各APIを区別せずに単に一連のAPIについて、利用が可能か否かを判断するのみの場合には、情報処理装置10は、必ずしもアクセス制御情報d30を使用しなくてもよい。また、この場合には、アクセス制御情報d30の生成、管理サーバ30及び開発者端末80間におけるアクセス制御情報d30の送受信、及びアプリケーションd10へのアクセス制御情報d30の埋め込みに係る処理は、必ずしも必要ないことは言うまでもない。
[3.4.処理]
次に、本実施形態に係る情報処理システムにおける、APIへのアクセス制御に係る処理の流れについて説明する。なお、以降では、特に、開発者u50がAPI群50の利用のための事前申請に係る動作と、ユーザ端末20からの情報に基づき情報処理装置10がAPI群50の利用を制御する動作とに着目して説明する。
{3.3.1.事前申請に係る動作}
まず、図10を参照しながら、開発者u50が管理サーバ30に対してAPI群50の利用に関する事前申請を行う場合の、管理サーバ30の処理の流れについて説明する。図10は、本実施形態に係る管理サーバ30の一連の動作を示したシーケンス図である。
(ステップS102)
開発元情報取得部302は、開発者u50により指定された当該開発者u50の開発者名d20と、API群50のうち使用するAPIのリストとを、当該開発者u50が操作する開発者端末80から取得する。開発元情報取得部302は、取得した開発者名d20と、APIのリストとを識別情報生成部304に出力する。
(ステップS104)
識別情報生成部304は、開発者名d20と、APIのリストとを開発元情報取得部302から取得する。識別情報生成部304は、「開発者名d20」が示す開発者u50に対して識別情報d22を発行する。
また、識別情報生成部304は、取得したAPIのリストに基づき、リスト中に指定されたAPIに対するアクセスを制御(許可)するためのアクセス制御情報d30を生成する。
識別情報生成部304は、取得した開発者名d20と、発行した識別情報d22と、生成したアクセス制御情報d30とを、符号化情報生成部308に出力する。
(ステップS106)
符号化情報生成部308は、開発者名d20と、識別情報d22と、アクセス制御情報d30とを、識別情報生成部304から取得する。
符号化情報生成部308は、開発者名d20と、識別情報d22と、アクセス制御情報d30とを、あらかじめ生成された鍵情報k10に基づき符号化して符号化情報d32を生成する。なお、鍵情報k10は、鍵情報記憶部310に記憶されている。
このとき、符号化情報生成部308は、符号化の方式として不可逆的な符号化方式を用いる。なお、符号化情報d32を生成するための符号化方式は、鍵情報に基づき符号化可能であり、かつ、不可逆的であれば、その方法は限定されない。符号化情報d32を生成するための符号化方式の一例として、鍵付きハッシュが挙げられる。
(ステップS108)
符号化情報生成部308は、識別情報d22と、アクセス制御情報d30と、符号化情報d32とを、開発者u50の開発者端末80に送信する。これにより、開発者u50が、利用申請を行ったAPIを使用してアプリケーションd10を開発するための情報、即ち、識別情報d22、アクセス制御情報d30、及び符号化情報d32が、開発者u50に通知される。
{3.3.2.APIへのアクセス制御に係る動作}
次に、図11を参照しながら、ユーザ端末20からの指示を受けて、情報処理装置10が、API群50の利用に関する権限を確認し、API群50に対するアクセス制御を行う場合の、情報処理装置10及びユーザ端末20の処理の流れについて説明する。図11は、本実施形態に係る情報処理装置10におけるAPIへのアクセス制御に係る一連の動作の一例を示したシーケンス図である。
(ステップS202)
アプリケーションd10のうち、認証処理部250に相当する機能が実行されると、通信処理部252は、情報処理装置10に対して符号化のための鍵情報の生成を依頼する。
乱数生成部152は、ユーザ端末20から鍵情報の生成に係る依頼を受けると、符号化のための鍵情報k20を生成する。鍵情報k20の具体的な一例として、乱数のようにランダムに生成された情報が挙げられる。なお、鍵情報k20は、乱数に限らず、符号化処理を行うための鍵の役割を果たせば、その態様は特に限定されない。
(ステップS204)
乱数生成部152は、生成した鍵情報k20をユーザ端末20に送信する。また、乱数生成部152は、生成した鍵情報k20を判定部156に出力する。情報処理装置10から鍵情報k20を取得すると、通信処理部252は、取得した鍵情報k20を符号化処理部254に出力する。
(ステップS206)
符号化処理部254は、通信処理部252から鍵情報k20を取得する。鍵情報k20を取得すると、符号化処理部254は、符号化情報記憶部258から符号化情報d32を読み出す。符号化処理部254は、読み出した符号化情報d32を取得した鍵情報k20に基づき符号化して、符号化情報d52を生成する。
このとき、符号化処理部254は、符号化の方式として不可逆的な符号化方式を用いる。なお、符号化情報d52を生成するための符号化方式は、鍵情報に基づき符号化可能であり、かつ、不可逆的であれば、その方法は限定されない。符号化情報d52を生成するための符号化方式の一例として、鍵付きハッシュが挙げられる。
符号化処理部254は、生成した符号化情報d52を通信処理部252に出力する。通信処理部252は、鍵情報k20の出力に対する応答として、符号化処理部254から符号化情報d52を取得する。
(ステップS208)
また、通信処理部252は、アクセス制御情報記憶部256から、開発元識別情報(即ち、開発者名d20及び識別情報d22)と、アクセス制御情報d30とを読み出す。通信処理部252は、取得した符号化情報d52と、アクセス制御情報記憶部256から読み出した開発元識別情報及びアクセス制御情報d30とを、認証情報として情報処理装置10に送信する。
このとき、通信処理部252は、認証情報のうち、開発元識別情報及びアクセス制御情報d30に対して不可逆処理を施さずに情報処理装置10に送信する。また、通信処理部252は、認証情報のうち少なくとも開発元識別情報に対して暗号化処理及び符号化処理のいずれも施さずに、情報処理装置10への送信対象としてもよい。
(ステップS210)
認証情報取得部154は、情報処理装置10から認証情報として、開発元識別情報、アクセス制御情報d30、及び符号化情報d52を取得する。認証情報取得部154は、取得した認証情報を判定部156に出力する。
判定部156は、鍵情報k20を乱数生成部152から取得する。また、判定部156は、認証情報を認証情報取得部154から取得する。また、判定部156は、鍵情報記憶部310から鍵情報k10を読み出す。
判定部156は、取得した認証情報中の開発元識別情報及びアクセス制御情報d30を鍵情報k10に基づき符号化して、符号化情報d42を生成する。なお、このとき判定部156は、管理サーバ30の符号化情報生成部308と同様の符号化処理に基づき、符号化情報d42を生成する。
符号化情報d42を生成したら、判定部156は、生成した符号化情報d42を鍵情報k20に基づき符号化して、符号化情報d62を生成する。なお、このとき判定部156は、ユーザ端末20の符号化処理部254と同様の符号化処理に基づき、符号化情報d62を生成する。
判定部156は、生成した符号化情報d62と、取得した符号化情報d52とを比較し、一致する場合には、開発元識別情報が示す開発元が、事前申請された開発元であると認識する。
(ステップS212)
開発元識別情報が示す開発元が事前申請された開発元であると認識したら、判定部156は、アクセス制御情報d30をアクセス制御部160に出力する。また、判定部156は、開発元識別情報が示す開発元が事前申請された開発元であると認識された認証情報のうち、少なくとも開発元識別情報(もしくは、当該開発元識別情報が示す開発元の情報)を、識別情報記憶部108に記憶させる。なお、このとき判定部156は、認証情報に含まれる一連の情報を識別情報記憶部108に記憶させてもよい。
なお、開発元識別情報が示す開発元が事前申請された開発元であると認識できなかった場合には、判定部156は、ユーザ端末20からのアクセスを拒否してもよい。この場合には、ユーザ端末20側は、判定部15からのアクセス拒否に関する通知を受けて、アプリケーションd10を終了させてもよい。また、他の一例として、判定部156は、開発元識別情報が示す開発元が事前申請された開発元であると認識できなかった場合には、事前申請を必要としないAPIのみへのアクセスを許可したアクセス制御情報をアクセス制御部160に出力してもよい。
また、判定部156は、開発元識別情報が示す開発元を示す情報、例えば、開発者名d20及び識別情報d22のうち少なくともいずれかを通知制御部158に出力してもよい。なお、以降では、判定部156は、開発者名d20及び識別情報d22の双方を通知制御部158に出力したものとして説明する。
通知制御部158は、開発者名d20及び識別情報d22を判定部156から取得する。通知制御部158は、取得した開発者名d20及び識別情報d22、即ち、実行されたアプリケーションd10の開発元を示す情報を識別可能に通知部106に通知させる。
(ステップS214)
また、判定部156は、開発元識別情報が示す開発元が事前申請された開発元であることが判別されたことを、ユーザ端末20に通知してもよい。この通知を受けて、ユーザ端末20は、利用に関する事前申請を行ったAPIの呼び出しを行えばよい。
(ステップS216、S218)
アクセス制御部160は、判定部156からアクセス制御情報d30を取得する。アクセス制御部160は、ユーザ端末20の実行部(図示しない)によりアプリケーションd10が実行されAPIが呼び出された場合には(ステップS216)、アクセス制御情報d30の内容に基づき、当該APIの実行を許可または制限する(ステップS218)。
具体的な一例として、呼び出されたAPIが特に利用を制限されておらず、事前申請を必要としない場合には、アクセス制御部160は、当該APIの実行を許可する。APIの実行が許可されると、情報処理装置10の実行部(図示しない)により、当該APIが実行される。
また、呼び出されたAPIの利用が制限されており、アクセス制御情報d30により当該APIの利用が許可されている場合には、アクセス制御部160は、当該APIの実行を許可する。
一方で、呼び出されたAPIの利用が制限されており、アクセス制御情報d30により当該APIの利用が許可されていない場合には、アクセス制御部160は、当該APIの実行を制限または禁止する。このとき、アクセス制御部160は、呼び出されたAPIの実行が許可されていない旨を、ユーザ端末20に通知してもよい。
以上のようにして、アクセス制御部160は、アクセス制御情報d30に基づきAPI群50中の各APIの実行を制御する。
<4.コンテンツの取得>
次に、本実施形態に係る情報処理装置10における、コンテンツの取得に係る処理について説明する。本実施形態に係る情報処理装置10は、アプリケーション25からAPI群50中の各APIへのアクセスを受けてコンテンツを取得した場合には、当該コンテンツに対して、事前申請された開発元であると判定された開発元識別情報が示す開発元の情報を関連付ける。このような構成により、本実施形態に係る情報処理システムは、例えば、アプリケーション25が開発元を詐称することでAPIが不正に利用された場合においても、コンテンツに関連付けられた開発元の情報に基づき当該詐称を検知する仕組みを提供する。
そこで、以降では、図12を参照しながら、特に情報処理装置10側の構成に着目して説明する。図12は、本実施形態に係る情報処理装置10及びユーザ端末20におけるコンテンツの取得に係る処理に着目した機能構成の一例を示したブロック図であり、その他の構成については記載を省略している。なお、ユーザ端末20には、開発者u50のより開発されたアプリケーションd10が、「アプリケーション25」としてインストールされているものとして説明する。
図12に示すように、情報処理装置10の処理実行部170は、制御部172と、コンテンツ処理部174と、暗号化処理部176とを含む。
アプリケーション25に定義された各処理のうち情報処理装置10の制御に係る処理が処理実行部260により実行されると、処理実行部260により、当該制御を行うためのAPIの呼出しが、情報処理装置10に対して行われる。処理実行部260からのAPIの呼出しが行われると、認証処理部150(具体的には、アクセス制御部160)により、対象となるAPIのアクセス制御が行われる。このとき、前述した認証処理部150による認証処理により、アプリケーション25の開発元が事前に申請された開発元であると判定されている場合には、認証処理部150は、呼出しが行われたAPIの実行を、制御部172に対して許可する。
制御部172は、認証処理部150の許可を受けて、処理実行部260から呼び出されたAPIをAPI群50の中から抽出し、抽出した当該APIを実行する。このとき、制御部172は、APIの実行結果を処理実行部260に返却してもよい。
また、制御部172は、処理実行部260から呼出しが行われたAPIの実行を受けて、コンテンツ取得部190にコンテンツを取得させてもよい。なお、このとき実行されるAPIは、コンテンツの取得を行うための機能であってもよいし、コンテンツの取得自体ではなく、コンテンツを取得するための一連の処理の中で実行される機能であってもよい。当該APIにより実現される機能の一例として、例えば、露光条件、ホワイトバランス、または露光感度等のようなコンテンツの取得に係る設定を行うための機能や、情報処理装置10がサポートするAPIの一覧のような管理情報を通知する機能等が挙げられる。
制御部172は、呼出しが行われたAPIの実行を受けてコンテンツ取得部190からコンテンツを取得した場合には、当該コンテンツをコンテンツ処理部174に出力し、当該コンテンツに対して開発元の情報の関連付けをコンテンツ処理部174に指示する。この応答として、制御部172は、開発元(即ち、事前に申請された開発元)の情報が関連付けられたコンテンツをコンテンツ処理部174から取得し、当該コンテンツを処理実行部260に出力してもよい。
コンテンツ処理部174は、制御部172からコンテンツを取得すると、識別情報記憶部108に記憶された開発元識別情報、即ち、事前申請された開発元であることが確認された当該開発元を示す開発元識別情報を抽出する。そして、コンテンツ処理部174は、抽出した開発元識別情報、または、当該開発元識別情報が示す開発元の情報を、取得したコンテンツに関連付ける。なお、開発元識別情報が示す開発元の情報とは、当該開発元が識別可能に提示された情報であり、以降では単に「開発元情報」と記載する場合がある。
また、抽出された開発元識別情報、または、当該開発元識別情報が示す開発元情報と、取得されたコンテンツとが関連付けられれば、その方法は特に限定されない。具体的な一例として、コンテンツ処理部174は、取得したコンテンツの属性情報として、開発元情報を当該コンテンツに付帯することで、コンテンツと開発元情報とを関連付けてもよい。また、他の一例として、コンテンツ処理部174は、コンテンツと、当該コンテンツとは異なるファイルに記録された開発元情報とを関連付けてもよい。なお、以降では、説明をわかりやすくするために、コンテンツ処理部174は、取得したコンテンツに対して、抽出した開発元識別情報が示す開発元情報を関連付けるものとして説明する。
また、コンテンツ処理部174は、取得したコンテンツに対して、暗号化処理が施された開発元の情報(以降では「暗号化情報」と呼ぶ場合がある)を関連付けてもよい。この場合には、暗号化処理部176が、識別情報記憶部108に記憶された開発元識別情報を抽出し、抽出した開発元識別情報が示す開発元情報に対して暗号化処理を施すことで暗号化情報を生成する。そして、暗号化処理部176は、生成した暗号化情報をコンテンツ処理部174に出力する。コンテンツ処理部174は、暗号化処理部176から取得した暗号化情報をコンテンツに対して関連付ければよい。なお、暗号化処理部176は、開発元識別情報を暗号化することで暗号化情報を生成してもよいことは言うまでもない。
なお、開発元の情報を暗号化するための鍵情報は、例えば、暗号化処理部176が読み出し可能な場所にあらかじめ記憶させておく。また、以降では、開発元の情報を暗号化するための鍵情報を、「鍵情報k30」と呼ぶ場合がある。
また、暗号化情報を処理対象とする構成(詳細は後述するが、例えば、コンテンツ管理サーバ70)は、鍵情報k30、または、鍵情報k30に対応した復号化のための鍵情報を読み出し可能に構成されていてもよいことは言うまでもない。
このように、本実施形態に係る情報処理システムでは、取得したコンテンツに対して開発元情報を関連付けることで、コンテンツに関連付けられた当該開発元情報に基づき、開発元の詐称によるAPIの不正利用を検出する仕組みを提供する。なお、開発元情報と、取得されたコンテンツとを関連付ける方法の具体例と、当該開発元情報に基づきAPIの不正利用を検出する仕組みの詳細とについては、実施例として別途後述する。
また、制御部172は、開発元情報が関連付けられたコンテンツを、ユーザ端末20(例えば、処理実行部260)に送信してもよい。また、情報処理装置10が、コンテンツ管理サーバ70と通信可能に構成されている場合には、制御部172は、開発元情報が関連付けられたコンテンツを、当該コンテンツ管理サーバ70に送信(転送)してもよい。また、開発元情報が関連付けられたコンテンツは、コンテンツ記憶部110のような、情報処理装置10に設けられた記憶媒体に記憶されてもよい。このとき、開発元情報が関連付けられたコンテンツをコンテンツ記憶部110に記憶させる主体は、制御部172であってもよいし、コンテンツ処理部174であってもよい。また、上述した、開発元情報が関連付けられたコンテンツをユーザ端末20への送信に係る処理と、当該コンテンツをコンテンツ記憶部110に記憶させる処理とは、いずれかのみが実行されてもよいし、双方が実行されてもよいことは言うまでもない。
なお、上述した、開発元の判定結果に基づき利用が制限されたAPIへのアクセス制御が有効な期間については、情報処理装置10は、あらかじめ設定されたルールに基づき管理すればよい。例えば、情報処理装置10は、ユーザ端末20との間のネットワークn1が有効な期間(即ち、コネクションが確立されている期間)のみ利用が制限されたAPIへのアクセスを有効にし、ネットワークn1の切断以降は無効としてもよい。なお、当該APIへのアクセスを無効とした以降に、再度当該APIへのアクセスを求められた場合には、情報処理装置10は、アプリケーションの開発元の判定を再度実行すればよい。
また、情報処理装置10は、利用が制限されたAPIに対してアクセスするアプリケーションごとにセッションを発行し、当該セッションが有効な期間のみ、当該APIへのアクセスを有効とし、セッションの切断以降は無効としてもよい。このような構成により、情報処理装置10は、複数のアプリケーションから当該APIに対してアクセスされた場合おいても、発行したセッションに基づきアプリケーションごとにアクセス制御を行うことが可能となる。
なお、情報処理装置10は、APIへのアクセスを無効とした場合には、識別情報記憶部108に記憶された開発元識別情報を、例えば削除することで無効化してもよい。
以上、図12を参照しながら、本実施形態に係る情報処理装置10における、コンテンツの取得に係る処理について説明した。次いで、以降では、本実施形態に係る情報処理装置10の実施例として、開発元識別情報が示す開発元の情報と、取得されたコンテンツとを関連付ける方法の具体例と、当該開発元の情報に基づきAPIの不正利用を検出する仕組みの詳細とについて説明する。
<5.実施例>
[5.1.実施例1:コンテンツの属性情報として開発元情報を記録する例1]
まず、実施例1として、コンテンツに対し、属性情報として開発元情報及び暗号化情報を付帯した場合における、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明する。
まず、図13を参照する。図13は、本実施形態に係る情報処理装置10が生成するコンテンツd70のデータの一例を示した図であり、当該コンテンツに対して属性情報を関連付けるためのヘッダのデータ構造の一例を示している。
図13に示すように、コンテンツd70のヘッダには、IFD(Image File Directory)と呼ばれる、各属性情報をタグ付けして記録するための領域が定義されている。例えば、「0thIFD」は、あらかじめ決められた種別の情報を記録するための領域である。0thIFDには、例えば、コンテンツd70の取得に使用されたソフトウェアの情報を記録するための「Software」タグが定義されている。変形例1に係る情報処理装置10は、例えば、「Software」タグに開発元情報を記録する。
また、コンテンツd70のヘッダには、「ExifIFD」と呼ばれるIFDが規定されている場合がある。「ExifIFD」は、EXIF(Exchangeable image file format)と呼ばれるフォーマットに基づき規定されたIFDであり、当該IFD中には、「Makernote」と呼ばれるIFDが規定されている。「MakerNote」は、コンテンツの取得元である情報処理装置10のメーカーが、関連付けるタグを自由に定義できるIFDの一例である。変形例1に係る情報処理装置10は、例えば、「MakerNote」に「Encrypted data」として示された暗号化情報を記録するIFDを定義し、当該IFDの「Remote application developer name」タグに、暗号化情報を記録する。
このように、変形例1に係る情報処理装置10(具体的には、コンテンツ処理部174)は、例えば、このSoftwareタグに開発元情報を記録し、Remote application developer nameに暗号化情報を記録することで、コンテンツd70に対して開発元情報を関連付ける。
なお、0thIFDに記録された情報は、例えば、OS(Operating System)の機能により、コンテンツd70に関する情報(プロパティ)として参照することが可能である。例えば、図14は、コンテンツに関する情報の表示画面v30の一例であり、Windows(登録商標)の機能により、コンテンツのプロパティを表示した場合の表示例を示している。図14に示すように、表示画面v30には、0thIFDのSoftwareタグに記録された開発元情報が、プログラム名v32として表示されている。これにより、例えば、ユーザ端末20のユーザu20は、コンテンツd70の取得に利用したアプリケーションの開発元を確認することが可能である。
一方で、0thIFDに記録された情報は、例えば、アプリケーションの処理により改変することが可能である。そのため、例えば、ユーザ端末20で実行されたアプリケーションが、開発元を詐称することで不正にAPIを利用してコンテンツを取得した場合に、当該コンテンツのSoftwareタグに記録された開発元情報を改変することで、不正利用を隠蔽する場合が考えられる。
ここで、図15を参照する。図15は、実施例1に係る情報処理システムの概要について説明するための図であり、Softwareタグに記録された開発元情報が改変される場合の一例について示している。なお、図15に示す例は、情報処理装置10が、画像データをコンテンツd70として取得する、所謂デジタルカメラとして構成された場合を示している。
例えば、ユーザ端末20において、APIの利用が許可されていない開発元「YYYYY」のアプリケーションが、APIの利用が許可された開発元「XXXXX」に詐称することで、情報処理装置10にコンテンツd70を取得させたとする。この場合には、情報処理装置10からユーザ端末20に送信されたコンテンツd70には、画像d72と、開発元が「XXXXX」であることを示す開発元情報d74と、開発元情報d74を暗号化した暗号化情報d76とが含まれている。
この情報処理装置10から送信されたコンテンツd70に対して、開発元「YYYYY」のアプリケーションが、開発元「XXXXX」を示す開発元情報d74を、開発元「YYYYY」を示す開発元情報d74aに改変したとする。この場合には、例えば、図14に示す画面v30のプログラム名v32には、開発元「YYYYY」の開発元情報が表示されることになる。そのため、ユーザ端末20のユーザu20は、当該アプリケーションがAPIを不正に利用するアプリケーションであると気付かずに使用し続けてしまう可能性がある。
そこで、変形例1に係る情報処理システムでは、例えば、当該コンテンツがコンテンツ管理サーバ70にアップロード(即ち、送信または転送)された場合に、APIが不正に利用されていることを、当該コンテンツ管理サーバ70で検出する。以下に、図16〜図18を参照しながら、コンテンツ管理サーバ70の動作について説明する。
まず、図16を参照する。図16は、ユーザ端末20からコンテンツ管理サーバ70に、ネットワークn1を介してコンテンツがアップロードされる場合に着目した場合における、概略的なシステム構成を示している。具体的には、図16に示す例では、開発元「XXXXX」を示す開発元情報d74が、開発元「YYYYY」を示す開発元情報d74aに詐称されたコンテンツd70aがコンテンツ管理サーバ70にアップロードされた場合を示している。なお、コンテンツ管理サーバ70の各構成のうち、ユーザ端末20からコンテンツd70を取得する構成が「コンテンツ取得部」の一例に相当する。
変形例1に係るコンテンツ管理サーバ70は、ユーザ端末20から取得したコンテンツd70に付帯された開発元情報d74と暗号化情報d76とを比較し、開発元情報d74が改変されているか否かを判定する。なお、コンテンツ管理サーバ70の各構成のうち、コンテンツd70に付帯された開発元情報d74と暗号化情報d76とを比較することで、開発元情報d74が改変されているか否かを判定する構成が「判定部」の一例に相当する。
具体的には、コンテンツ管理サーバ70に、暗号化情報d76を復号するための鍵情報、即ち、暗号化情報d76の生成に用いられた鍵情報k30に対応した復号化のための鍵情報をあらかじめ記憶させておく。そして、コンテンツ管理サーバ70は、当該復号化のための鍵情報に基づき暗号化情報d76を復号し、復号された開発元情報を、コンテンツd70に付帯された開発元情報d74と比較する。このとき、コンテンツd70に付帯された開発元情報d74が改変されている場合(即ち、改変された開発元情報d74aが付帯されている場合)には、比較結果が不一致となる。
また、他の一例として、コンテンツ管理サーバ70に、暗号化情報d76の生成に用いられた鍵情報k30をあらかじめ記憶させておいてもよい。この場合には、コンテンツ管理サーバ70は、コンテンツd70に付帯された開発元情報d74を鍵情報k30に基づき暗号化し、暗号化された開発元情報d74を、暗号化情報d76と比較すればよい。このとき、コンテンツd70に付帯された開発元情報d74が改変されている場合には、比較結果が不一致となる。
以上のようにして、コンテンツ管理サーバ70は、コンテンツd70に付帯された開発元情報d74と暗号化情報d76との比較結果に基づき、開発元情報d74の改変、ひいては、開発元の詐称によるAPIの不正利用を検出することが可能となる。
また、開発元の詐称によるAPIの不正利用を検出した場合には、コンテンツ管理サーバ70は、当該コンテンツd70の取得に用いられたアプリケーションが不正なアプリケーションである旨を、ユーザ端末20を介してユーザu20に通知してもよい。
例えば、図17に示す例では、ユーザ端末20は、コンテンツd70aのアップロードに対する応答として通知された内容を、メッセージv40としてユーザu20に提示している。これにより、ユーザu20は、コンテンツ管理サーバ70にアップロードしたコンテンツd70aの取得に使用したアプリケーションが、不正なアプリケーションであることを認識することが可能となる。
また、他の一例として、コンテンツ管理サーバ70は、開発元の詐称によるAPIの不正利用を検出した場合に、改変された開発元情報d74aに示された開発元を記録及び管理してもよい。
例えば、図18に示す例では、コンテンツ管理サーバ70は、改変された開発元情報d74aに示された開発元「YYYYY」を、ブラックリストd80に記録することで管理している。このような構成により、例えば、コンテンツ管理サーバ70の管理者(もしくは、カメラメーカーの関係者)は、ブラックリストd80を参照することで、開発元情報d74を詐称した開発者、即ち、開発元の詐称によりAPIを不正利用した開発元を特定することが可能となる。
また、他の一例として、コンテンツ管理サーバ70は、ユーザu20が、コンテンツ管理サーバ70にアクセスすることで、コンテンツ管理サーバ70に記憶されたコンテンツd70を参照した場合に、暗号化情報d76中に示された開発元情報を提示してもよい。
例えば、図19は、ユーザu20が、ユーザ端末20上でブラウザを起動し、当該ブラウザを介して、コンテンツ管理サーバ70に記憶されたコンテンツd70aを参照した場合の例を示している。図19に示す例では、コンテンツ管理サーバ70は、コンテンツd70a中の暗号化情報d76を復号し、復号された開発元情報を、当該コンテンツd70a中の画像d72と共にユーザ端末20に通知している。参照符号v42は、コンテンツ管理サーバ70からユーザ端末20に通知された開発元情報、即ち、暗号化情報d76から復号された開発元情報を示している。
ここで、暗号化情報d76中に示された開発元情報は、暗号化の際に使用された鍵情報k30、及び、当該鍵情報k30に対応した復号化のための鍵情報を有する構成でなければ改変することが困難である。即ち、コンテンツd70に付帯された開発元情報d74が改変された場合においても、コンテンツ管理サーバ70により、暗号化情報d76中に示された開発元情報として、改変前の開発元情報d74が提示されることとなる。
そのため、開発元情報d74が改変されている場合には、ユーザu20は、ユーザ端末20に記憶されたコンテンツd70の開発元情報d74aと、コンテンツ管理サーバ70により提示される開発元情報とが異なることを認識することが可能となる。即ち、ユーザu20は、コンテンツ管理サーバ70により提示される開発元情報に基づき、コンテンツ管理サーバ70にアップロードしたコンテンツd70aの取得に使用したアプリケーションが、不正なアプリケーションであることを認識することが可能となる。
次に、図20を参照しながら、変形例1に係る情報処理システムの一連の動作の流れについて説明する。図20は、実施例1に係る情報処理システムの一連の動作の一例を示したシーケンス図である。なお、図20に示す例では、ユーザ端末20にインストールされたアプリケーションd10が実行されることで、情報処理装置10内のAPIが利用され、当該情報処理装置10により画像データがコンテンツとして取得される場合を示している。
(ステップS302、S304)
ユーザ端末20においてアプリケーションd10が実行されると、まず、情報処理装置10において、開発元の認証に係る処理が実行される。即ち、情報処理装置10により、当該アプリケーションd10の開発元が、事前申請された開発元か否かが判定され、判定結果に基づき当該情報処理装置10内のAPIへのアクセスが制御される。また、このとき、情報処理装置10は、事前申請された開発元であると判定された開発元の開発元識別情報を記憶する。なお、開発元の認証に係る処理については、図11に基づき前述した内容と同様のため、詳細な説明は省略する。
(ステップS306)
開発元の認証に係る処理が完了し利用が制限されたAPIへのアクセスが許可されると、ユーザ端末20は、許可されたAPIにアクセスすることで、情報処理装置10の動作を制御する。ここでは、ユーザ端末20は、利用が制限されたAPIにアクセスすることで情報処理装置10に対して画像の撮影を指示したものとして説明する。
(ステップS308)
アプリケーションd10の実行に基づき、ユーザ端末20から画像の撮影に係る指示を受けると、情報処理装置10は、画像d72を撮像し、撮像された画像d72に基づき画像データ(即ち、コンテンツ)d70を生成する。
また、情報処理装置10は、開発元の認証時に記憶した開発元識別情報が示す開発元情報d74を暗号化することで暗号化情報d76を生成する。そして、情報処理装置10は、開発元情報d74と暗号化情報d76とを、属性情報として画像データd70に付帯する。
(ステップS310)
情報処理装置10は、開発元情報d74と暗号化情報d76とが付帯された画像データd70を、ユーザ端末20に出力する。
(ステップS399)
ここで、アプリケーションd10が、開発元を詐称して情報処理装置10のAPIにアクセスしたものとし、当該アプリケーションd10の処理により、画像データd70中の開発元情報d74が、開発元情報d74aに改変されたものとする。なお、開発元情報d74が開発元情報d74aに改変された画像データd70を、以降では、「画像データd70a」と記載する場合がある。
(ステップS312)
ユーザ端末20は、アプリケーションd10の実行に基づき、情報処理装置10から取得した画像データd70をコンテンツ管理サーバ70にアップロードする。ここでは、アプリケーションd10により、画像データd70中の開発元情報d74が開発元情報d74aに改変された画像データd70aが、コンテンツ管理サーバ70にアップロードされたものとして説明する。
(ステップS314)
コンテンツ管理サーバ70は、ユーザ端末20から画像データd70aを取得すると、あらかじめ記憶された鍵情報を基に、画像データd70aに付帯された開発元情報d74aと、暗号化情報d76とを比較する。このとき、暗号化情報d76は改変前の開発元情報d74に基づき生成されているため、改変後の開発元情報d74aとの比較結果は不一致となり、コンテンツ管理サーバ70は、当該比較結果に基づき、開発元の詐称によるAPIの不正利用を検出する。
(ステップS316)
開発元の詐称によるAPIの不正利用を検出した場合には、コンテンツ管理サーバ70は、当該コンテンツd70の取得に用いられたアプリケーションが不正なアプリケーションである旨を、ユーザ端末20を介してユーザu20に通知する。これにより、ユーザu20は、コンテンツ管理サーバ70にアップロードしたコンテンツd70aの取得に使用したアプリケーションが、不正なアプリケーションであることを認識することが可能となる。
また、コンテンツ管理サーバ70は、開発元の詐称によるAPIの不正利用を検出した場合に、改変された開発元情報d74aに示された開発元を、ブラックリストd80に記録することで管理してもよい。このような構成により、例えば、コンテンツ管理サーバ70の管理者(もしくは、カメラメーカーの関係者)は、ブラックリストd80を参照することで、開発元情報d74を詐称した開発者、即ち、開発元の詐称によりAPIを不正利用した開発元を特定することが可能となる。
以上説明したように、変形例1に係る情報処理システムでは、情報処理装置10は、取得したコンテンツに対して、事前申請された開発元であると判定された開発元の開発元情報と、当該開発元情報を暗号化した暗号化情報とを属性情報として付帯する。このとき、暗号化情報中に示された開発元情報は、暗号化の際に使用された鍵情報、及び、当該鍵情報に対応した復号化のための鍵情報を有する構成でなければ改変することが困難である。そのため、変形例1に係る情報処理システムに依れば、コンテンツに付帯された開発元情報が改変された場合においても、暗号化情報との比較に基づき、当該開発元情報の改変、ひいては、開発元の詐称によるAPIの不正利用を検出することが可能となる。
なお、上記に示す例では、コンテンツ管理サーバ70が開発元の詐称によるAPIの不正利用を検出する例について説明したが、当該検出に係る処理の主体は、必ずしもコンテンツ管理サーバ70には限定されない。なお、コンテンツ管理サーバ70以外の構成により、開発元の詐称によるAPIの不正利用を検出する場合には、当該構成に、暗号化情報を処理するための鍵情報(即ち、鍵情報k30、もしくは、当該鍵情報k30に対応した復号化のための鍵情報)を記憶させておく必要があることは言うまでもない。
[5.2.実施例2:コンテンツの属性情報として開発元情報を記録する例2]
次に、実施例2に係る情報処理システムについて説明する。前述した実施例1では、コンテンツに対して、開発元情報及び暗号化情報を属性情報として付帯することで、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明した。実施例2では、コンテンツに対して、開発元情報のみを属性情報として付帯した場合(即ち、暗号化情報を付帯しない場合)において、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明する。以下に、図21を参照しながら、実施例2に係る情報処理システムの概要について説明する。
図21は、ユーザ端末20におけるアプリケーションの実行に基づき情報処理装置10で取得されたコンテンツd70が、ユーザ端末20と、当該ユーザ端末20とは異なる端末60とのそれぞれからコンテンツ管理サーバ70にアップロードされる例を示している。なお、端末60は、PC(Personal Computer)等のような、ユーザ端末20とは異なる端末を示している。
端末60は、例えば、情報処理装置10で可搬媒体に記録されたコンテンツd70を、当該可搬媒体から読み出すことで取得し、取得したコンテンツd70をコンテンツ管理サーバ70にネットワークn0を介してアップロードする。また、情報処理装置10がネットワークn0にアクセス可能な場合には、当該情報処理装置10自身が、コンテンツ管理サーバ70へのコンテンツd70のアップロードを行ってもよい。
コンテンツ管理サーバ70は、例えば、端末60からコンテンツd70を取得すると、当該コンテンツd70に含まれる画像d72と、同じ画像を含むコンテンツを既に取得している否かを確認する。
ここで、ユーザ端末20において、アプリケーションにより、コンテンツd70における開発元情報d74が開発元情報d74aに改変され、改変後のコンテンツd70aが、ユーザ端末20からコンテンツ管理サーバ70にアップロードされているものとする。この場合には、コンテンツ管理サーバ70は、コンテンツd70aを抽出し、抽出したコンテンツd70aと、端末60から取得したコンテンツd70との間で、属性情報として付帯された開発元情報を比較する。
このとき、図21の例のように、ユーザ端末20において、アプリケーションにより開発元情報d74が開発元情報d74aに改変されている場合には、コンテンツ管理サーバ70による開発元情報の比較において、比較結果が不一致となる。
即ち、開発元情報の比較結果が不一致となった場合には、少なくとも比較対象であるコンテンツd70及びd70aのうちのいずれかにおいて、開発元情報d74が改変されていることとなる。そのため、開発元情報の比較結果が不一致となった場合には、コンテンツ管理サーバ70は、画像d72の取得時に、開発元の詐称によるAPIの不正利用が行われた可能性があると認識することが可能となる。
なお、開発元情報の比較結果が不一致となった場合には、コンテンツ管理サーバ70は、比較対象であるコンテンツd70及びd70aの送信元(即ち、端末60及びユーザ端末20)のいずれかもしくは双方に、不正なアプリケーションによりコンテンツが取得された可能性がある旨を通知してもよい。
以上説明したように、変形例2に係る情報処理システムでは、コンテンツ管理サーバ70は、既に取得しているコンテンツと同じ画像d72を含むコンテンツd70を取得した場合には、当該コンテンツ間で開発元情報の比較を行う。このとき、開発元情報の比較結果が不一致となった場合には、比較対象となるコンテンツのうち少なくともいずれかの開発元情報が改変されていることとなる。そのため、変形例2に係る情報処理システムに依れば、同じ画像を含む異なるコンテンツ間で開発元情報を比較することで、当該開発元情報の改変、ひいては、開発元の詐称によるAPIの不正利用を検出することが可能となる。
なお、上記に示す例では、コンテンツd70が、画像d72を含む画像データの場合を例に説明したが、画像d72のようにコンテンツの実データが比較可能なものであれば、コンテンツd70の種別は、上記に示すような画像データには限定されない。例えば、コンテンツd70は、音声情報を含む実データとして含む音声データであってもよい。
[5.3.実施例3:プレビュー画像上へ開発元情報を重畳させる例]
次に、実施例3として、画像データの取得に際し、プレビュー画像をコンテンツとして取得し、当該プレビュー画像上に開発元情報を重畳表示させることで、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明する。例えば、図22は、実施例3に係る情報処理システムの概要について説明するための図である。なお、本説明において、「プレビュー画像」とは、例えば、リアルタイムに更新されるライブビュー画像のように、ユーザからの撮像指示に基づき撮像される画像データとは別に取得または生成される画像を示している。
図22に示すように、実施例3に係る情報処理システムでは、情報処理装置10は、画像d72の撮像に際し、ユーザ端末20からプレビュー画像の表示に係る指示を受けると、生成したプレビュー画像d78に対して開発元情報を重畳させる。これにより、ユーザu20は、情報処理装置10においてAPIの利用に際し判定が行われた開発元の情報を、ユーザ端末20の表示部206に表示されたプレビュー画像v44を介して確認することが可能となる。
なお、情報処理装置10は、プレビュー画像d78に対して開発元情報を重畳する位置や時間をランダムに変更してもよい。
次に、図23を参照しながら、実施例3に係る情報処理システムの一連の動作の流れについて説明する。図23は、実施例3に係る情報処理システムの一連の動作の一例を示したシーケンス図である。なお、図23に示す例では、ユーザ端末20にインストールされたアプリケーションd10が実行されることで、情報処理装置10内のAPIが利用され、当該情報処理装置10によりプレビュー画像がコンテンツとして取得される場合を示している。
(ステップS402、S404)
ユーザ端末20においてアプリケーションd10が実行されると、まず、情報処理装置10において、開発元の認証に係る処理が実行される。即ち、情報処理装置10により、当該アプリケーションd10の開発元が、事前申請された開発元か否かが判定され、判定結果に基づき当該情報処理装置10内のAPIへのアクセスが制御される。また、このとき、情報処理装置10は、事前申請された開発元であると判定された開発元の開発元識別情報を記憶する。なお、開発元の認証に係る処理については、図11に基づき前述した内容と同様のため、詳細な説明は省略する。
(ステップS406)
開発元の認証に係る処理が完了し利用が制限されたAPIへのアクセスが許可されると、ユーザ端末20は、許可されたAPIにアクセスすることで、情報処理装置10の動作を制御する。ここでは、ユーザ端末20は、利用が制限されたAPIにアクセスすることで情報処理装置10に対してプレビュー画像の提示を指示したものとして説明する。
(ステップS408)
アプリケーションd10の実行に基づき、ユーザ端末20からプレビュー画像の提示に係る指示を受けると、情報処理装置10は、プレビュー画像d78を撮像する。なお、このとき、情報処理装置10は、画像d72を撮像し、撮像された画像d72に基づきプレビュー画像d78を生成してもよい。
(ステップS410)
次いで、情報処理装置10は、開発元の認証時に記憶した開発元識別情報を抽出し、抽出した開発元識別情報が示す開発元情報を、生成したプレビュー画像d78に重畳させる。
(ステップS412)
そして、情報処理装置10は、開発元情報が重畳されたプレビュー画像d78をユーザ端末20に出力する。なお、このとき、情報処理装置10は、プレビュー画像d78に対して開発元情報を重畳する位置や時間をランダムに変更してもよい。
(ステップS414)
ユーザ端末20は、プレビュー画像の提示に係る指示に対する応答として、情報処理装置10からプレビュー画像d78を取得し、取得したプレビュー画像d78を表示部206(例えば、ディスプレイ)に表示させる。これにより、ユーザu20は、情報処理装置10においてAPIの利用に際し判定が行われた開発元(即ち、事前に申請された開発元)の情報を、ユーザ端末20に表示されたプレビュー画像v44を介して確認することが可能となる。
以上説明したように、実施例3に係る情報処理システムでは、情報処理装置10は、生成したプレビュー画像に対して開発元情報を重畳させる。これにより、ユーザu20は、情報処理装置10においてAPIの利用に際し判定が行われた開発元の情報を、ユーザ端末20の表示部206に表示されたプレビュー画像を介して確認することが可能となる。
ここで、ユーザ端末20にインストールされたアプリケーションが、開発元を詐称することで不正にAPIを利用していた場合には、ユーザu20は、当該アプリケーションのダウンロード時に示される開発元と異なる開発元の情報を確認することとなる。即ち、実施例3に係る情報処理システムでは、このような仕組みを利用して、開発元の詐称によりAPIが不正利用されていたとしても、アプリケーションを利用するユーザに開発元が詐称されていることを気付かせることが可能となる。
なお、実施例3に係る情報処理システムでは、前述したように情報処理装置10側で、プレビュー画像に対して開発元情報を重畳させる。このような構成により、実施例3に係る情報処理システムでは、アプリケーション側でプレビュー画像に重畳された開発元情報を改変するためには、例えば、プレビュー画像に対して画像処理を施す必要があるため、当該開発元情報の改変が困難である。
また、情報処理装置10側において、プレビュー画像に対して開発元情報を重畳する位置や時間が変更された場合には、アプリケーション側では、開発元情報が重畳された位置や時間を特定することが実質的に困難である。そのため、実施例3に係る情報処理システムにおいては、アプリケーション側でプレビュー画像に重畳された開発元情報を改変することは極めて困難である。以上説明したような仕組みを利用して、実施例3に係る情報処理システムは、開発元の詐称に伴うAPIの不正利用を検出、ひいては、抑止することが可能となる。
[5.4.実施例4:実画像上へ開発元情報を重畳する例]
次に、実施例4に係る情報処理システムについて説明する。実施例3に係る情報処理システムでは、プレビュー画像をコンテンツとして取得し、当該プレビュー画像上に開発元情報を重畳表示させていた。実施例4に係る情報処理システムでは、撮像される画像(即ち、実画像)をコンテンツとして、当該実画像に開発元情報を重畳表示させることで、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明する。例えば、図24は、実施例4に係る情報処理システムの概要について説明するための図である。
図24に示すように、実施例4に係る情報処理システムでは、情報処理装置10は、ユーザ端末20から画像d72の撮像に係る指示を受けると、撮像した画像d72(即ち、実画像)に対して開発元情報を重畳させる。そして、情報処理装置10は、開発元情報が重畳された画像d72(以降では、「画像d72b」と記載する場合がある)をユーザ端末20に出力する。このような構成により、ユーザu20は、取得した画像d72bを参照することで、情報処理装置10においてAPIの利用に際し判定が行われた開発元の情報を、例えば、ユーザ端末20の表示部206に表示された画像v46を介して確認することが可能となる。
なお、情報処理装置10は、開発元情報が重畳された画像d72bを、コンテンツ記憶部110(例えば、可搬媒体等)に記憶してもよい。
また、画像d72は、静止画に限らず動画であってもよい。画像d72を動画として取得する場合には、情報処理装置10は、例えば、当該動画を構成するフレームのうち、一部のフレーム(例えば、最後のフレーム)に開発元情報を重畳させてもよい。
次に、図25を参照しながら、実施例4に係る情報処理システムの一連の動作の流れについて説明する。図25は、実施例4に係る情報処理システムの一連の動作の一例を示したシーケンス図である。なお、図25に示す例では、ユーザ端末20にインストールされたアプリケーションd10が実行されることで、情報処理装置10内のAPIが利用され、当該情報処理装置10により画像(実画像)がコンテンツとして取得される場合を示している。
(ステップS502、S504)
ユーザ端末20においてアプリケーションd10が実行されると、まず、情報処理装置10において、開発元の認証に係る処理が実行される。なお、当該開発元の認証に係る動作は、前述した実施例3(図23参照)と同様ため、詳細な説明は省略する。
(ステップS506)
開発元の認証に係る処理が完了し利用が制限されたAPIへのアクセスが許可されると、ユーザ端末20は、許可されたAPIにアクセスすることで、情報処理装置10の動作を制御する。ここでは、ユーザ端末20は、利用が制限されたAPIにアクセスすることで情報処理装置10に対して画像の撮影を指示したものとして説明する。
(ステップS408)
アプリケーションd10の実行に基づき、ユーザ端末20から画像の撮影に係る指示を受けると、情報処理装置10は、画像d72を撮像する。
(ステップS410)
次いで、情報処理装置10は、開発元の認証時に記憶した開発元識別情報を抽出し、抽出した開発元識別情報が示す開発元情報を、撮像した画像d72に重畳させる。
(ステップS412)
そして、情報処理装置10は、開発元情報が重畳された画像d72bをユーザ端末20に出力する。なお、このとき、情報処理装置10は、画像d72bをコンテンツ記憶部110(例えば、可搬媒体等)に記憶してもよい。
このような構成により、ユーザu20は、取得した画像d72bを参照することで、情報処理装置10においてAPIの利用に際し判定が行われた開発元の情報を、例えば、ユーザ端末20の表示部206に表示された画像v46を介して確認することが可能となる。
以上説明したように、実施例4に係る情報処理システムでは、情報処理装置10は、撮像した画像に対して開発元情報を重畳させる。これにより、ユーザu20は、情報処理装置10においてAPIの利用に際し判定が行われた開発元の情報を、例えば、ユーザ端末20の表示部206に表示された画像を介して確認することが可能となる。
ここで、ユーザ端末20にインストールされたアプリケーションが、開発元を詐称することで不正にAPIを利用していた場合には、ユーザu20は、当該アプリケーションのダウンロード時に示される開発元と異なる開発元の情報を確認することとなる。即ち、実施例4に係る情報処理システムでは、このような仕組みを利用して、開発元の詐称によりAPIが不正利用されていたとしても、アプリケーションを利用するユーザに開発元が詐称されていることを気付かせることが可能となる。
なお、実施例4に係る情報処理システムでは、前述したように情報処理装置10側で、画像に対して開発元情報を重畳させる。このような構成により、実施例4に係る情報処理システでは、実施例3の場合と同様に、アプリケーション側で画像に重畳された開発元情報を改変するためには、例えば、画像に対して画像処理を施す必要があるため、当該開発元情報の改変が困難である。以上説明したような仕組みを利用して、実施例4に係る情報処理システムは、開発元の詐称に伴うAPIの不正利用を検出、ひいては、抑止することが可能となる。
[5.5.実施例5:履歴情報として開発元情報を記録する例]
次に、実施例5として、取得されたコンテンツに対して、当該コンテンツの取得や、情報処理装置10とユーザ端末20との間の接続に関する履歴情報を関連付けることで、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明する。例えば、図26は、実施例5に係る情報処理システムの概要について説明するための図である。なお、図26に示す例は、画像d72をコンテンツとして取得する場合について示している。
図26に示すように、実施例5に係る情報処理システムでは、情報処理装置10は、ユーザ端末20にインストールされたアプリケーションの指示に基づく画像d72の撮像に際し、各処理の履歴情報を、例えば、管理データd90に記録する。このとき、情報処理装置10は、管理データd90に記録する履歴情報に対し、事前申請された開発元であることが確認された開発元情報を埋め込む。また、情報処理装置10は、画像d72の取得に関する履歴情報に対し、当該画像d72を示す情報(例えば、識別情報)をあわせて埋め込んでもよい。
このような構成により、例えば、参照符号v48で示すように、情報処理装置10で撮像された画像d72をユーザ端末20に送信し、当該ユーザ端末20の表示部206に表示させた場合においても、管理データd90自体は情報処理装置10側で管理される。そのため、例えば、ユーザ端末20側のアプリケーションにより、画像d72に関連付けられた開発元情報が改変されたとしても、管理データd90を参照することで、APIのアクセスに利用された開発元(即ち、事前申請された開発元)を確認することが可能となる。
次に、図27を参照しながら、実施例5に係る情報処理システムの一連の動作の流れについて説明する。図27は、実施例5に係る情報処理システムの一連の動作の一例を示したシーケンス図である。なお、図27に示す例では、ユーザ端末20にインストールされたアプリケーションd10が実行されることで、情報処理装置10内のAPIが利用され、当該情報処理装置10により画像データがコンテンツとして取得される場合を示している。
(ステップS602、S604)
ユーザ端末20においてアプリケーションd10が実行されると、まず、情報処理装置10において、開発元の認証に係る処理が実行される。なお、当該開発元の認証に係る動作は、前述した実施例3(図23参照)と同様ため、詳細な説明は省略する。
(ステップS606)
開発元の認証に係る処理が完了すると、情報処理装置10は、当該処理に関する履歴情報を生成し、当該履歴情報に、事前申請された開発元であることが確認された開発元情報を埋め込む。そして、情報処理装置10は、開発元情報が埋め込まれた履歴情報を、管理データd90に記録する。
(ステップS608)
開発元の認証に係る処理が完了し利用が制限されたAPIへのアクセスが許可されると、ユーザ端末20は、許可されたAPIにアクセスすることで、情報処理装置10の動作を制御する。ここでは、ユーザ端末20は、利用が制限されたAPIにアクセスすることで情報処理装置10に対して画像の撮影を指示したものとして説明する。
(ステップS610)
アプリケーションd10の実行に基づき、ユーザ端末20から画像の撮影に係る指示を受けると、情報処理装置10は、画像d72を撮像する。
(ステップS612)
画像d72の撮像が完了すると、情報処理装置10は、当該画像d72の撮像に関する履歴情報を生成し、当該履歴情報に、画像d72を示す情報と、事前申請された開発元であることが確認された開発元情報とを埋め込む。そして、情報処理装置10は、開発元情報が埋め込まれた履歴情報を、管理データd90に記録する。
以上のようにして、撮像されたd72と、管理データd90に記録された履歴情報とが関連付けられる。
なお、管理データd90は、情報処理装置10側で管理されるコンテンツとは異なるデータであり、かつ、当該コンテンツに関する情報が記録されるデータであれば、履歴情報を管理するためのデータには限定されない。
以上説明したように、実施例5に係る情報処理システムでは、情報処理装置10は、コンテンツの取得に係る処理の実行に際し、当該処理の履歴情報に事前申請された開発元であることが確認された開発元情報を埋め込み、管理データd90に記録する。
このような構成により、例えば、ユーザ端末20側で、コンテンツに関連付けられた開発元情報が改変されたとしても、情報処理装置10側に管理された管理データd90を参照することで、APIのアクセスに利用された開発元(即ち、事前申請された開発元)を確認することが可能となる。
[5.6.実施例6:履歴情報として記録された開発元情報の表示例]
次に、情報処理装置10に記録されたコンテンツをPCのような端末60で参照する際に、実施例5で示した管理データd90に記録された開発元情報をあわせて提示することで、開発元の詐称に伴うAPIの不正利用を検出する仕組みの一例について説明する。例えば、図28は、実施例5に係る情報処理システムの概要について説明するための図である。なお、図28に示す例は、画像d72をコンテンツとして取得する場合について示している。
図28に示す例では、情報処理装置10で取得された画像d72を端末60に転送する際に、管理データd90をあわせて転送する。なお、情報処理装置10から端末60への画像d72及び管理データd90の転送は、例えば、ネットワークを介した通信により実現されてもよいし、可搬媒体を介したデータの移動により実現されてもよい。
端末60は、画像d72及び管理データd90を取得すると、管理データd90から画像d72の取得に関する履歴情報を特定し、特定した履歴情報に埋め込まれた開発元情報を抽出する。そして、端末60は、参照符号v80で示すように、取得した画像d72に対して、履歴情報から抽出された開発元情報を関連付けて提示する。
次に、図29を参照しながら、実施例6に係る情報処理システムの一連の動作の流れについて説明する。図29は、実施例6に係る情報処理システムの一連の動作の一例を示したシーケンス図である。なお、図29に示す例では、ユーザ端末20にインストールされたアプリケーションd10が実行されることで、情報処理装置10内のAPIが利用されて当該情報処理装置10により取得された画像を、端末60側で表示させる場合について示している。
(ステップS702、S704)
端末60から、履歴情報が記録された管理データd90の送信が要求されると(ステップS702)、情報処理装置10は、当該要求に基づき管理データd90を端末60に送信する(ステップS704)。
(ステップS706、S708)
次いで、端末60から、情報処理装置10に記録された画像d72の送信が要求されると(ステップS706)、情報処理装置10は、当該要求に基づき画像d72を端末60に送信する(ステップS708)。
(ステップS710)
端末60は、画像d72及び管理データd90を取得すると、管理データd90から画像d72の取得に関する履歴情報を特定し、特定した履歴情報に埋め込まれた開発元情報を抽出する。そして、端末60は、取得した画像d72に対して、履歴情報から抽出された開発元情報を関連付けて提示する。
なお、上記に示した一連の動作は、例えば、端末60にインストールされたアプリケーション(例えば、情報処理装置10のメーカーが提供するアプリケーション)により実現さ得る。
以上、説明したように、実施例6に係る画像処理システムでは、情報処理装置10で取得された画像d72を端末60に転送する際に、当該画像d72の取得に係る履歴情報が記録された管理データd90をあわせて転送する。そして、端末60は、取得した画像d72と、管理データd90に履歴情報として記録された開発元情報とを関連付けて提示する。
このとき、提示される開発元情報は、情報処理装置10側で管理された管理データd90中に記録された情報であるため、ユーザ端末20で動作するアプリケーションによる改変は困難である。即ち、実施例6に係る画像処理システムに依れば、ユーザu20は、画像d72の取得に際し、APIのアクセスに利用された開発元の情報(即ち、事前申請された開発元の情報)を確認することが可能となり、ひいては、開発元の詐称によるAPIの不正利用を検出することが可能となる。
[5.7.実施例7:複数のアプリケーションを動作させる場合の例]
次に、実施例7として、ユーザ端末20側で動作する複数のアプリケーションのそれぞれから、情報処理装置10内のAPIに対してアクセスされる場合における動作の一例について、図30を参照しながら説明する。図30は、実施例7に係る情報処理システムの一連の動作の一例を示したシーケンス図であり、複数のアプリケーションそれぞれについて、情報処理装置10とユーザ端末20との間で暗号化通信を行う場合の一例について示している。
なお、本説明では、図30に示すように、管理ソフト(例えば、OS)がユーザ端末20と情報処理装置10との間のコネクション(接続)を確立し、当該コネクションを介してアプリケーションa1及びa2が、情報処理装置10内のAPIにアクセスするものとして説明する。
(ステップS802)
ユーザ端末20と情報処理装置10との間で情報の送受信を行うために、まず、ユーザ端末20と情報処理装置10との間のコネクション(即ち、通信経路)が確立される。この場合には、例えば、ユーザ端末20の管理ソフトから情報処理装置10に対して接続要求が送信され、当該接続要求に基づき、ユーザ端末20と情報処理装置10との間でコネクションが確立される。なお、ユーザ端末20と情報処理装置10との間で確立されるコネクションの一例として、Wi−Fiのような装置間の直接通信における無線通信の経路が挙げられる。
(ステップS811)
次に、アプリケーションa1が、情報処理装置10内のAPIにアクセスする場合の動作について説明する。まず、アプリケーションa1は、情報処理装置10に対して暗号化された通信経路の確立を要求する。アプリケーションa1からの要求を受けて、情報処理装置10は、当該アプリケーションa1との間で暗号化された通信経路を確立する。なお、通信経路を暗号化するための技術として、例えば、SSL(Secure Sockets Layer)やTLS(Transport Layer Security)が挙げられる。
(ステップS813)
暗号化された通信経路を確立すると、情報処理装置10は、確立された通信経路を介してアプリケーションa1にセッションキーk31を発行する。以降、アプリケーションa1は、情報処理装置10との間の通信経路が確立されている間は、情報処理装置10から発行されたセッションキーk31に基づき、当該情報処理装置10との間で情報の送受信を行う。
(ステップS815)
例えば、アプリケーションa1は、開発元の認証に係る処理を実行する場合に、情報処理装置10に対し、認証情報とあわせてセッションキーk31を、暗号化された通信経路を介して送信する。
情報処理装置10は、アプリケーションa1から送信されたセッションキーk31に基づき、あわせて送信される情報や指示が当該アプリケーションa1から送信されたものであると認識する。
(ステップS817)
また、情報処理装置10は、アプリケーションa1から送信された認証情報に基づき開発元の認証に係る処理を実行し、認証情報として送付された開発元識別情報をセッションキーk31に関連付けて管理してもよい。
このような構成により、情報処理装置10は、アプリケーションa1からのAPIにアクセスされた場合に、あわせて送信されるセッションキーk31に基づき、同様のセッションキーk31が関連付けられた開発元識別情報に対応したアクセス制御を行うことが可能となる。
なお、情報処理装置10は、セッションキーk31が有効な限り、同セッションキーk31が関連付けられた開発元識別情報に対応したアクセス制御を継続する。
(ステップS819)
なお、アプリケーションa1から通信の終了が指示されると、情報処理装置10は、当該アプリケーションa1との間の通信経路(即ち、暗号化された通信経路)を切断する。このとき、情報処理装置10は、セッションキーk31を無効化(破棄)してもよい。また、情報処理装置10は、セッションキーk31を無効化した場合には、当該セッションキーk31と関連付けて管理している開発元識別情報をあわせて無効化(破棄)してもよい。
(ステップS821)
また、アプリケーションa2が、情報処理装置10内のAPIにアクセスする場合についても、アプリケーションa1の場合と同様である。即ち、情報処理装置10は、アプリケーションa2からの要求を受けて、当該アプリケーションa2との間で暗号化された通信経路を確立する。
(ステップS823)
また、暗号化された通信経路を確立すると、情報処理装置10は、確立された通信経路を介してアプリケーションa2にセッションキーを発行する。なお、このとき情報処理装置10は、アプリケーションa2に対して、アプリケーションa1とは異なるセッションキーk32を発行する。以降、アプリケーションa2は、情報処理装置10との間の通信経路が確立されている間は、情報処理装置10から発行されたセッションキーk32に基づき、当該情報処理装置10との間で情報の送受信を行う。
(ステップS829)
そして、アプリケーションa2から通信の終了が指示されると、情報処理装置10は、当該アプリケーションa2との間の通信経路(即ち、暗号化された通信経路)を切断する。このとき、情報処理装置10は、アプリケーションa1の場合と同様に、セッションキーk32と、当該セッションキーk32に関連付けて管理している開発元識別情報とを無効化(破棄)してもよい。
(ステップS804)
また、ユーザ端末20の管理ソフトからコネクションの切断に係る指示を受けると、情報処理装置10は、ユーザ端末20と情報処理装置10との間で確立されたコネクションを切断する。
以上説明したように、変形例7に係る情報処理システムでは、情報処理装置10は、異なる複数のアプリケーションa1及びa2それぞれに対して、異なるセッションキーを発行する。そして、情報処理装置10は、各アプリケーションから情報及び指示とあわせて送信されるセッションキーに基づき、情報及び指示の送信元であるアプリケーションを識別し、当該アプリケーションに対応したアクセス制御を行う。
なお、各アプリケーションに対応するセッションキーは、暗号化された通信経路を介して、情報処理装置10から各アプリケーションに発行されるため、他のアプリケーションが当該セッションキーを認識することは困難である。また、情報処理装置10は、アプリケーションからセッションキーが送信されなかった場合や、当該アプリケーションに対して発行したセッションキーとは異なるセッションキーが送信された場合には、当該アプリケーションからの指示を拒否することも可能である。
このような構成により、変形例7に係る情報処理システムでは、例えば、ユーザ端末20において、開発元を詐称してAPIを不正に利用するアプリケーションから、正常なアプリケーションの処理を保護することが可能となる。
<6.ハードウェア構成>
以上、本開示の実施形態を説明した。上述した情報処理装置10による情報処理は、以下に説明するような情報処理装置10のハードウェアとの協働により実現される。
図31は、情報処理装置10のハードウェア構成の一例を示した説明図である。図31に示したように、情報処理装置10は、CPU(Central Processing Unit)901と、ROM(Read Only Memory)902と、RAM(Random Access Memory)903と、入力装置908と、出力装置910と、ストレージ装置911と、ドライブ912と、通信装置913と、撮像装置914とを備える。
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置10内の動作全般を制御する。CPU901は、例えば、各種演算処理を実行するための回路により構成することが可能である。また、CPU901は、マイクロプロセッサであってもよい。このCPU901は、各種プログラムに従って様々な機能を実現することが可能である。例えば、上述した情報処理装置10における処理部130、即ち、認証処理部150及び処理実行部170の各処理は、CPU901により実現され得る。
ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバスなどから構成されるホストバスにより相互に接続されている。
入力装置908は、ボタンやスイッチなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。情報処理装置10のユーザは、該入力装置908を操作することにより、情報処理装置10に対して処理動作を指示したりすることができる。
出力装置910は、例えば、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置およびランプなどの表示装置を含む。さらに、出力装置910は、スピーカおよびヘッドホンなどの音声出力装置を含む。例えば、表示装置は、撮像された画像や生成された画像などを表示する。一方、音声出力装置は、音声データ等を音声に変換して出力する。なお、上述した情報処理装置10における通知部106は、出力装置910により実現され得る。
ストレージ装置911は、本実施形態にかかる情報処理装置10の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置911は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置911は、CPU901が実行するプログラムや各種データを格納する。
ドライブ912は、記憶媒体用リーダライタであり、情報処理装置10に内蔵、あるいは外付けされる。ドライブ912は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM903に出力する。また、ドライブ912は、リムーバブル記憶媒体に情報を書き込むこともできる。
なお、上述した情報処理装置10における鍵情報記憶部104、識別情報記憶部108、及びコンテンツ記憶部110は、RAM903、ストレージ装置911、またはドライブ912に装着されたリムーバブル記憶媒体により実現され得る。
通信装置913は、例えば、ネットワークNに接続するための通信デバイス等で構成された通信インタフェースである。特に、本開示の実施形態に係る通信装置913は、無線LAN(Local Area Network)対応通信装置を含む。なお、通信装置915は、LTE(Long Term Evolution)対応通信装置や、有線による通信を行うワイヤー通信装置を含んでもよい。なお、上述した情報処理装置10における通信部102は、通信装置913により実現され得る。
撮像装置914は、CPU901の制御に従い、レンズを介して静止画像又は動画像を撮影する機能を有する。撮像装置914は、撮像した画像をストレージ装置911やドライブ912に装着されたリムーバブル記憶媒体に記憶させてもよい。なお、上述した情報処理装置10におけるコンテンツ取得部190は、例えば、撮像装置914により実現され得る。
CPU901、ROM902、及びRAM903は、バス904を介して相互に接続されている。また、入力装置908、出力装置910、ストレージ装置911、ドライブ912、通信装置913、及び撮像装置914は、インタフェース907を介してバス906に接続されており、当該バス906とバス904とはブリッジ905を介して接続される。これにより、CPU901、ROM902、RAM903、入力装置908、出力装置910、ストレージ装置911、ドライブ912、通信装置913、及び撮像装置914は、相互に接続される。
なお、ネットワークNは、ネットワークNに接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワークNは、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワークNは、IP−VPN(Internet Protocol−Virtual Private Network)などの専用回線網を含んでもよい。
また、図31に示すハードウェア構成はあくまで一例であり、上述した本開示の実施形態に係る情報処理装置10の動作を実現できれば図31に示したハードウェア構成には限定されない。
また、コンピュータに内蔵されるCPU、ROM及びRAMなどのハードウェアを、上記した情報処理装置が有する構成と同等の機能を発揮させるためのプログラムも作成可能である。また、当該プログラムを記録した、コンピュータに読み取り可能な記憶媒体も提供され得る。
<7.まとめ>
以上のように、本実施形態に係る情報処理装置システムに依れば、情報処理装置10は、アプリケーションd10に関連付けられた開発元識別情報をユーザ端末20から取得し、取得した開発元識別情報が示す開発元が、事前申請された開発元か否かに応じてAPIの実行を制御する。このような構成により、情報処理装置10は、開発者に応じてAPIの利用を制限することが可能となる。
また、本実施形態に係る情報処理装置システムに依れば、情報処理装置10は、取得されたコンテンツに対して、事前申請された開発元であることが判別された開発元情報を関連付ける。このような構成により、本実施形態に係る情報処理装置システムは、コンテンツに関連付けられた開発元情報に基づき、開発元の詐称によるAPIの不正利用を検出する仕組みを提供し、ひいては、当該不正利用を抑止することが可能となる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得する取得部と、
前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元の認証処理を行う認証処理部と、
前記認証処理の後に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御する制御部と、
前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記認証処理が行われた前記開発元の情報を関連付けるコンテンツ処理部と、
を備える、情報処理装置。
(2)
前記コンテンツ処理部は、前記認証処理が行われた開発元の情報を、取得した前記コンテンツに付帯することにより、当該コンテンツと当該開発元の情報とを関連付ける、前記(1)に記載の情報処理装置。
(3)
前記コンテンツ処理部は、前記認証処理が行われた開発元の情報が暗号化された暗号化情報を、取得した前記コンテンツに付帯することにより、当該コンテンツと当該開発元の情報とを関連付ける、前記(2)に記載の情報処理装置。
(4)
前記コンテンツに関連付けられた暗号化情報は、当該コンテンツに付帯された開発元の情報が改変されているか否かを判定するための情報である、前記(3)に記載の情報処理装置。
(5)
前記開発元の情報が付帯された前記コンテンツは、前記ユーザ端末に送信される、前記(2)に記載の情報処理装置。
(6)
前記コンテンツは、画像データであり、
前記コンテンツ処理部は、前記画像データに基づき表示される画像上に、前記認証処理が行われた開発元の情報を重畳させることで、当該画像データに当該開発元の情報を関連付ける、前記(1)〜(5)のいずれか一項に記載の情報処理装置。
(7)
前記画像データに基づき表示される画像は、当該画像データに含まれる画像の実データである、前記(6)に記載の情報処理装置。
(8)
前記画像データに基づき表示される画像は、当該画像データに含まれる画像の実データに基づくプレビュー画像である、前記(6)に記載の情報処理装置。
(9)
前記コンテンツ処理部は、前記コンテンツに関連付けられた管理データに、前記認証処理が行われた開発元の情報を記録することで、当該コンテンツと当該開発元の情報とを関連付ける、前記(1)〜(8)のいずれか一項に記載の画像処理装置。
(10)
前記コンテンツに関連付けられた管理データは、当該コンテンツの取得に係る履歴を管理するためのデータである、前記(9)に記載の画像処理装置。
(11)
前記認証処理部は、前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元が事前申請された開発元であるか否かを判定する、前記(1)〜(10)のいずれか一項に記載の情報処理装置。
(12)
前記制御部は、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元である場合に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御する、前記(11)に記載の情報処理装置。
(13)
前記認証処理が行われた開発元の情報の示す前記アプリケーションプログラムの開発元を識別可能に通知するための通知制御部を備える、前記(1)〜(12)のいずれか一項に記載の画像処理装置。
(14)
音声情報を出力するための音声出力部を備え、
前記通知制御部は、前記認証処理が行われた開発元の情報を、音声情報として前記音声出力部から出力させる、前記(13)に記載の画像処理装置。
(15)
表示部を備え、
前記通知制御部は、前記認証処理が行われた開発元の情報を前記表示部に表示させる、前記(13)に記載の画像処理装置。
(16)
ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得することと、
プロセッサが、前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元の認証処理を行うことと、
前記認証処理の後に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御することと、
前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記認証処理が行われた前記開発元の情報を関連付けることと、
を含む、情報処理方法。
(17)
コンピュータに、
ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得することと、
前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元の認証処理を行うことと、
前記認証処理の後に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御することと、
前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記認証処理が行われた前記開発元の情報を関連付けることと、
を実行させるプログラム。
(18)
ユーザ端末が有するアプリケーションプログラムであって、情報処理装置により取得されるコンテンツの取得に係るアプリケーションプログラムに関連付けられた開発元の情報と、前記情報処理装置により認証された開発元に対応した前記開発元の情報が暗号化された暗号化情報とが関連付けられた前記コンテンツを、取得するコンテンツ取得部と、
前記アプリケーションプログラムに関連付けられた開発元の情報と、前記暗号化情報が示す開発元の情報とを比較し、当該コンテンツに関連付けられた開発元の情報が改変されているか否かを判定する判定部と、
を備えるサーバ。
(19)
前記判定の結果を前記情報処理装置に通知する通知部を備える、前記(18)に記載のサーバ。
10 情報処理装置
15 判定部
20 ユーザ端末
25 アプリケーション
30 管理サーバ
70 コンテンツ管理サーバ
80 開発者端末
80 端末
90 アプリケーション提供サーバ
102 通信部
104 鍵情報記憶部
106 通知部
108 識別情報記憶部
110 コンテンツ記憶部
130 処理部
150 認証処理部
152 乱数生成部
154 認証情報取得部
156 判定部
158 通知制御部
160 アクセス制御部
170 処理実行部
172 制御部
174 コンテンツ処理部
176 暗号化処理部
190 コンテンツ取得部
202 通信部
204 コンテンツ記憶部
206 表示部
250 認証処理部
252 通信処理部
254 符号化処理部
256 アクセス制御情報記憶部
258 符号化情報記憶部
260 処理実行部
302 開発者情報取得部
304 識別情報生成部
306 開発者情報記憶部
308 符号化情報生成部
310 鍵情報記憶部

Claims (19)

  1. ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得する取得部と、
    前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元の認証処理を行う認証処理部と、
    前記認証処理の後に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御する制御部と、
    前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記認証処理が行われた前記開発元の情報を関連付けるコンテンツ処理部と、
    を備える、情報処理装置。
  2. 前記コンテンツ処理部は、前記認証処理が行われた開発元の情報を、取得した前記コンテンツに付帯することにより、当該コンテンツと当該開発元の情報とを関連付ける、請求項1に記載の情報処理装置。
  3. 前記コンテンツ処理部は、前記認証処理が行われた開発元の情報が暗号化された暗号化情報を、取得した前記コンテンツに付帯することにより、当該コンテンツと当該開発元の情報とを関連付ける、請求項2に記載の情報処理装置。
  4. 前記コンテンツに関連付けられた暗号化情報は、当該コンテンツに付帯された開発元の情報が改変されているか否かを判定するための情報である、請求項3に記載の情報処理装置。
  5. 前記開発元の情報が付帯された前記コンテンツは、前記ユーザ端末に送信される、請求項2に記載の情報処理装置。
  6. 前記コンテンツは、画像データであり、
    前記コンテンツ処理部は、前記画像データに基づき表示される画像上に、前記認証処理が行われた開発元の情報を重畳させることで、当該画像データに当該開発元の情報を関連付ける、請求項1に記載の情報処理装置。
  7. 前記画像データに基づき表示される画像は、当該画像データに含まれる画像の実データである、請求項6に記載の情報処理装置。
  8. 前記画像データに基づき表示される画像は、当該画像データに含まれる画像の実データに基づくプレビュー画像である、請求項6に記載の情報処理装置。
  9. 前記コンテンツ処理部は、前記コンテンツに関連付けられた管理データに、前記認証処理が行われた開発元の情報を記録することで、当該コンテンツと当該開発元の情報とを関連付ける、請求項1に記載の情報処理装置。
  10. 前記コンテンツに関連付けられた管理データは、当該コンテンツの取得に係る履歴を管理するためのデータである、請求項9に記載の情報処理装置。
  11. 前記認証処理部は、前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元が事前申請された開発元であるか否かを判定する、請求項1に記載の情報処理装置。
  12. 前記制御部は、前記開発元識別情報の示す前記アプリケーションプログラムの開発元が事前申請された開発元である場合に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御する、請求項11に記載の情報処理装置。
  13. 前記認証処理が行われた開発元の情報の示す前記アプリケーションプログラムの開発元を識別可能に通知するための通知制御部を備える、請求項1に記載の情報処理装置。
  14. 音声情報を出力するための音声出力部を備え、
    前記通知制御部は、前記認証処理が行われた開発元の情報を、音声情報として前記音声出力部から出力させる、請求項13に記載の情報処理装置。
  15. 表示部を備え、
    前記通知制御部は、前記認証処理が行われた開発元の情報を前記表示部に表示させる、請求項13に記載の情報処理装置。
  16. ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得することと、
    プロセッサが、前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元の認証処理を行うことと、
    前記認証処理の後に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御することと、
    前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記認証処理が行われた前記開発元の情報を関連付けることと、
    を含む、情報処理方法。
  17. コンピュータに、
    ユーザ端末が有するアプリケーションプログラムに関連付けられた開発元識別情報を、当該ユーザ端末から取得することと、
    前記開発元識別情報に基づいて、前記アプリケーションプログラムの開発元の認証処理を行うことと、
    前記認証処理の後に、前記ユーザ端末からの指示に基づき、自身が有する機能の実行を制御することと、
    前記機能の実行を受けてコンテンツを取得し、取得した前記コンテンツに、前記認証処理が行われた前記開発元の情報を関連付けることと、
    を実行させるプログラム。
  18. ユーザ端末が有するアプリケーションプログラムであって、情報処理装置により取得されるコンテンツの取得に係るアプリケーションプログラムに関連付けられた開発元の情報と、前記情報処理装置により認証された開発元に対応した前記開発元の情報が暗号化された暗号化情報とが関連付けられた前記コンテンツを、取得するコンテンツ取得部と、
    前記アプリケーションプログラムに関連付けられた開発元の情報と、前記暗号化情報が示す開発元の情報とを比較し、当該コンテンツに関連付けられた開発元の情報が改変されているか否かを判定する判定部と、
    を備えるサーバ。
  19. 前記判定の結果を前記情報処理装置に通知する通知部を備える、請求項18に記載のサーバ。
JP2015561164A 2014-02-06 2014-11-25 情報処理装置、情報処理方法、プログラム、及びサーバ Active JP6471698B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014021477 2014-02-06
JP2014021477 2014-02-06
PCT/JP2014/081074 WO2015118751A1 (ja) 2014-02-06 2014-11-25 情報処理装置、情報処理方法、プログラム、及びサーバ

Publications (2)

Publication Number Publication Date
JPWO2015118751A1 true JPWO2015118751A1 (ja) 2017-03-23
JP6471698B2 JP6471698B2 (ja) 2019-02-20

Family

ID=53777568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561164A Active JP6471698B2 (ja) 2014-02-06 2014-11-25 情報処理装置、情報処理方法、プログラム、及びサーバ

Country Status (5)

Country Link
US (1) US10318715B2 (ja)
EP (1) EP3073403B1 (ja)
JP (1) JP6471698B2 (ja)
CN (1) CN105940403B (ja)
WO (1) WO2015118751A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259413B (zh) * 2016-12-28 2021-06-01 华为技术有限公司 一种获取证书、鉴权的方法及网络设备
JP7077688B2 (ja) * 2018-03-15 2022-05-31 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
JP7394597B2 (ja) 2019-11-19 2023-12-08 キヤノン株式会社 情報処理装置及びその制御方法及びプログラム及び情報処理システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092275A (ja) * 2003-09-12 2005-04-07 Minolta Co Ltd 処理装置、ネットワークシステム、制御方法、および制御プログラム
US20080155698A1 (en) * 2006-12-22 2008-06-26 Schlumberger Technology Corporation Method of and system for watermarking applicatoin modules
JP2009116865A (ja) * 2007-10-18 2009-05-28 Hitachi Ltd 情報提供方法及び広告提供方法
US20110225074A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation System and method for providing information as a service via web services
JP2012098814A (ja) * 2010-10-29 2012-05-24 Toshiba Corp 情報処理装置及びプログラム
US20130227424A1 (en) * 2012-02-28 2013-08-29 Microsoft Corporation Web-Based Interaction With a Local System

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5825877A (en) 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
JPH10301773A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JP4166437B2 (ja) * 2001-01-31 2008-10-15 株式会社日立製作所 真正性出力方法及びその実施装置並びにその処理プログラム
US8789204B2 (en) * 2009-12-22 2014-07-22 Nokia Corporation Method and apparatus for secure cross-site scripting
EP2519909A4 (en) * 2009-12-31 2017-06-28 Nokia Technologies Oy Method and apparatus for a content protection
EP2727307A4 (en) * 2011-07-01 2015-05-06 Nokia Corp SOFTWARE AUTHENTICATION
CN102271130B (zh) * 2011-07-22 2014-09-10 四川长虹电器股份有限公司 实现软件安全交付及分发的方法
US9495849B2 (en) * 2011-08-05 2016-11-15 Rsi Video Technologies, Inc. Security monitoring system
US8844026B2 (en) * 2012-06-01 2014-09-23 Blackberry Limited System and method for controlling access to secure resources
US9105110B2 (en) * 2012-08-04 2015-08-11 Fujifilm North America Corporation Method of simulating an imaging effect on a digital image using a computing device
US20150022666A1 (en) * 2013-07-22 2015-01-22 Intellivision Technologies Corp. System and method for scalable video cloud services
US9887845B2 (en) * 2013-10-30 2018-02-06 Gilbarco Cryptographic watermarking of content in fuel dispensing environments
US11336648B2 (en) * 2013-11-11 2022-05-17 Amazon Technologies, Inc. Document management and collaboration system
US9276934B2 (en) * 2014-03-31 2016-03-01 Cellco Partnership Self-activation of user device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092275A (ja) * 2003-09-12 2005-04-07 Minolta Co Ltd 処理装置、ネットワークシステム、制御方法、および制御プログラム
US20080155698A1 (en) * 2006-12-22 2008-06-26 Schlumberger Technology Corporation Method of and system for watermarking applicatoin modules
JP2009116865A (ja) * 2007-10-18 2009-05-28 Hitachi Ltd 情報提供方法及び広告提供方法
US20110225074A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation System and method for providing information as a service via web services
JP2012098814A (ja) * 2010-10-29 2012-05-24 Toshiba Corp 情報処理装置及びプログラム
US20130227424A1 (en) * 2012-02-28 2013-08-29 Microsoft Corporation Web-Based Interaction With a Local System

Also Published As

Publication number Publication date
CN105940403A (zh) 2016-09-14
EP3073403A4 (en) 2017-05-10
EP3073403B1 (en) 2019-01-09
US10318715B2 (en) 2019-06-11
JP6471698B2 (ja) 2019-02-20
CN105940403B (zh) 2019-09-06
US20160306951A1 (en) 2016-10-20
EP3073403A1 (en) 2016-09-28
WO2015118751A1 (ja) 2015-08-13

Similar Documents

Publication Publication Date Title
KR102137673B1 (ko) 어플리케이션 연결 방법 및 이를 이용하는 시스템
KR101981258B1 (ko) 개인 클라우드 기기를 이용한 컨텐츠 공유 방법 및 이를 적용한 전자 기기, 그리고 개인 클라우드 시스템
TWI539838B (zh) 用於接取憑證供應的方法與裝置
KR101583206B1 (ko) 인터넷 사이트에 업로드되는 멀티미디어에서 사용자의 프라이버시를 보호하는 시스템 및 방법
US9189060B2 (en) Method of controlling information processing apparatus and information processing apparatus
US9608966B2 (en) Information handling device, information output device, and recording medium
WO2020019387A1 (zh) 一种视频资源文件的获取方法和管理系统
WO2014002343A1 (en) Terminal device, information processing system, information processing method, and program
JP6223634B2 (ja) 情報処理システム及び情報処理方法及び情報処理プログラム
JP6471698B2 (ja) 情報処理装置、情報処理方法、プログラム、及びサーバ
JP5781678B1 (ja) 電子データ利用システム、携帯端末装置、及び電子データ利用システムにおける方法
WO2020090165A1 (ja) 情報処理プログラム、情報処理装置および情報処理方法
CN116756750A (zh) 医疗敏感数据采集脱敏方法
JP5678150B2 (ja) ユーザ端末、鍵管理システム、及びプログラム
JP2015001817A (ja) 情報処理装置、情報処理方法、及びプログラム
JP5834118B2 (ja) 情報操作装置、情報出力装置および情報操作プログラム
KR100960092B1 (ko) 이미지 데이터 등록 방법 및 시스템
JP2009218710A (ja) 撮像装置、情報処理装置、撮像方法、及び情報処理方法
EP2827537B1 (en) Filtering messages containing illegally copied content out of a telecommunication network
JP2016103677A (ja) 撮像装置、サーバ、及びシステム
WO2021039055A1 (ja) 撮像装置、画像データ処理方法、プログラム
JPWO2015093020A1 (ja) カメラ端末装置、シンクライアントサーバ装置、カメラシステム、および制御方法
JP2016028532A (ja) 情報操作装置、情報出力装置および情報操作プログラム
WO2016195060A1 (ja) 画像処理システム、サーバ装置、サーバ装置の制御方法、及びプログラム
WO2020100235A1 (ja) 情報処理方法、情報処理プログラム、情報処理装置及び情報処理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190107

R151 Written notification of patent or utility model registration

Ref document number: 6471698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190208

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190214