JP2014525638A - アプリケーションのためのコンテンツの管理 - Google Patents

アプリケーションのためのコンテンツの管理 Download PDF

Info

Publication number
JP2014525638A
JP2014525638A JP2014529792A JP2014529792A JP2014525638A JP 2014525638 A JP2014525638 A JP 2014525638A JP 2014529792 A JP2014529792 A JP 2014529792A JP 2014529792 A JP2014529792 A JP 2014529792A JP 2014525638 A JP2014525638 A JP 2014525638A
Authority
JP
Japan
Prior art keywords
content
computing device
application
code element
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014529792A
Other languages
English (en)
Other versions
JP2014525638A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014525638A publication Critical patent/JP2014525638A/ja
Publication of JP2014525638A5 publication Critical patent/JP2014525638A5/ja
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

アプリケーションに対してコンテンツを管理するための技術を説明する。1つ又は複数の実装において、コンテンツ管理ポリシーの第1のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されるアプリケーションの第1の部分に対して実施し、コンテンツ管理ポリシーの第2のセットを、コンピューティングデバイスのコード要素を呼び出すことが許可されないアプリケーションの第2の部分に対して実施する。さらに、コンテンツにコンテンツ管理ポリシーの第1のセットを適用するか、コンテンツ管理ポリシーの第2のセットを適用するかの判断を、アプリケーションのどの部分がコンテンツを要求しているかに基づいて行う。

Description

本発明は、アプリケーションのためにコンテンツを管理(handling)することに関する。
今日のコンピュータユーザは、ビデオコンテンツ、オーディオコンテンツ及びテキストコンテンツなど、様々な種類のコンテンツへのアクセスを有する。しかしながら、必ずしも全てのコンテンツがコンピューティングデバイスデバイス上で使用するのに安全なわけではない。例えば一部のコンテンツは、悪意のある実行コード(例えばマルウェア)を含む可能性があり、そのような悪意のある実行コードが、実行されると、コンピューティングデバイスの特定の部分及び/又はユーザに関するプライベートの情報に対する不正なアクセスを獲得する可能性がある。
悪意のある実行コードが、そのような不正なアクセスを獲得するのを防ぐための技術は存在するが、これらの技術は典型的に、今日のコンテンツ開発者の望みを考慮していない。例えばコンテンツ開発者は、コンピューティングデバイスを介してリモートコンテンツ(例えばウェブコンテンツ)にアクセスすることができるアプリケーションを開発することがある。現在の技術は典型的に、リモートコンテンツがそのコンピューティングデバイスへのアクセスを許可されるかどうかを判定する際に、そのようなリモートコンテンツがそのコンピューティングデバイスを介してどのように処理されるかは考慮しないであろう。さらに、現在の技術では典型的に、コンテンツ開発者は、リモートコンテンツの特定のインスタンスがコンピューティングデバイスへのアクセスを許可されるべきことを指定することができない。
アプリケーションに対してコンテンツを管理するための技術を説明する。1つ又は複数の実装において、コンテンツ管理ポリシーの第1のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されるアプリケーションの第1の部分に対して実施し、コンテンツ管理ポリシーの第2のセットを、コンピューティングデバイスのコード要素を呼び出すことが許可されないアプリケーションの第2の部分に対して実施する。コンテンツにコンテンツ管理ポリシーの第1のセットを適用するか、コンテンツ管理ポリシーの第2のセットを適用するかの判断が、アプリケーションのどの部分がコンテンツを要求しているかに基づいて行われる。
1つ又は複数の実装において、コンピューティングデバイス上で実行しているアプリケーションが、コンピューティングデバイスのコード要素にコンテンツを渡すよう求める要求を含んでいることを検出する。この検出に応答して、上記要求が、コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であるかどうかに基づいて、要求を許可するかどうかの判断を行う。
1つ又は複数の実装において、コンテンツをコード要素に渡すことを求めるアプリケーションからの要求が、コード要素を呼び出すことを許可されたアプリケーションの部分からの要求であるとの判断が、コンピューティングデバイスにおいて行われる。このコンテンツをコード要素に渡してよいかどうかを、コンテンツのソースと、コンテンツのコンテンツタイプとの少なくとも一方に基づいて確認する。
この発明の概要における記載は、以下の発明を実施するための形態の項においてさらに説明される概念の選択を簡略化した形式で紹介するために提供される。この発明の概要における記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を確定する際の助けとして用いられるようにも意図されていない。
以下の詳細な説明は、添付の図面を参照して記述される。図面において、参照符号の左端の桁は、その参照番号が最初に現れた図面を特定する番号である。説明及び図面における異なる例での同じ参照番号の使用は、同様又は同じ項目を示す。
アプリケーションに対するコンテンツの管理のための技術を用いるように動作可能な例示的実装における環境を示す図である。 コンテンツ管理ポリシーが実施される、例示的な実装のプロシージャを示すフロー図である。 コンテンツをコード要素に渡す要求を許可するかどうかの判断を行う、例示的な実装のプロシージャを示すフロー図である。 コンテンツをコード要素に渡してもよいかどうかの判断を行う、例示的な実装のプロシージャを示すフロー図である。 図1及び図6を参照して説明されるコンピューティングデバイスを含む例示的なシステムを示す図である。 本明細書で説明される技術の実施形態を実装するために、図1及び5を参照して説明される任意のタイプのポータブルデバイス及び/又はコンピュータデバイスとして実装することができる例示的なデバイスの様々なコンポーネントを示す図である。
<概要>
コンピューティングデバイスは、様々な種類のソースから様々な種類のコンテンツへのアクセスを有することがある。しかしながら、一部のソースは未知である可能性があり、したがってそのようなソースからのコンテンツは信頼できない可能性がある。さらに一部のタイプのコンテンツは、本質的にセキュリティリスクに関連付けられ、したがってそのようなコンテンツがコンピューティングデバイスの特定の部分にアクセスすることを許可する前に注意を払うべきである。
ある特定のシナリオにおいて、ユーザ(例えばアプリケーションの開発者)が、未知のソースからのコンテンツへアクセスすることを望む可能性がある。例えばユーザは、あるコンピューティングデバイス上で実行されるときに、そのコンピューティングデバイスからリモートのリソースから、及び/又はそのコンピューティングデバイスに対して未知のリソースからコンテンツにアクセスすることを試みるアプリケーションを書く可能性がある。そのようなコンテンツは、テキストコンテンツ、ピクチャ、ビデオ、オーディオ等を含んでよい。本明細書で検討される技術は、安全でないコンテンツが、コンピューティングデバイスの機密部分及び/又は機能への不正なアクセスを獲得することを回避しつつ、コンテンツがアプリケーションによって利用されることを可能にする。
したがって、アプリケーションに対してコンテンツを管理するための技術を説明する。1つ又は複数の実装において、悪意のあるコード(例えばマルウェア)がコンピューティングデバイスの機密部分にアクセスし得る可能性を低減する技術を用いることができる。これは、アプリケーションの機能をローカル区画(local compartment)とリモート区画(remote compartment)とに分離することなど、様々な方法で実施される可能性がある。諸実施形態において、システムレベルのアプリケーションプログラミングインタフェース(API)など、ローカル区画に関連付けられた機能は、アプリケーションがコンピューティングデバイスの機密部分にアクセスできるようにする。したがって、コンテンツの制約がローカル区画に対して実施され、安全でないコンテンツがコンピューティングデバイスの機密部分へのアクセスを獲得することを妨げることができる。さらに、リモート区画に関連付けられた機能は、コンピューティングデバイスの機密部分にアクセスすることができないので、信頼性できない及び/又は安全でないコンテンツへのアクセスを許可することができる。
以下の議論では、最初に、本明細書で説明されるアプリケーションに対するコンテンツの管理の技術を用いるように動作することができる、例示的な環境を説明する。次に、安全でないコンテンツがコンピューティングデバイスの機密部分にアクセスするのを防ぐ、例示的なコンテンツ管理ポリシーを説明する。アプリケーションに対するコンテンツ管理のための技術に関する例示的なプロシージャがその後に説明される。このプロシージャは、例示環境だけでなく他の環境においても用いることができる。したがって、例示環境は例示的なプロシージャを実行することには限定されない。同様に例示的なプロシージャも例示環境における実装に限定されない。
<例示環境>
図1は、アプリケーションに対するコンテンツの管理のための技術を用いるように動作可能な例示的実装における環境100を示す図である。環境100は、1つ又複数のプロセッサ104と、1つ又は複数のコンピュータ読取可能記憶媒体106と、コンピュータ読取可能記憶媒体106上に存在し、プロセッサ104によって実行可能な1つ又は複数のアプリケーション108とを有するコンピューティングデバイス102を含む。コンピューティングデバイス102は、限定ではなく例として、デスクトップコンピュータ、ポータブルコンピュータ、パーソナルデジタルアシスタント(PDA)のようなハンドヘルドコンピュータ、モバイルフォン及びタブレットコンピュータ等のような、任意の適切なコンピューティングデバイスとして具現化され得る。コンピューティングデバイス102の異なる様々な例の1つが、図5及び図6に示されており、これは以下で説明される。
図1のコンピューティングデバイス102は、例えばウェブブラウザなどのブラウザ110も含むように図示されており、ブラウザ110は、ネットワーク112を介してナビゲートするように構成される機能を表す。ネットワーク112はインターネットとして図示されているが、ネットワークは様々な種類の構成を想定することがある。例えばネットワーク112は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、無線ネットワーク、公衆電話網、イントラネット等を含むことがある。さらに、単一のネットワーク112が示されているが、ネットワーク112は複数のネットワークを含むように構成されてもよい。
ブラウザ110は、例えばネットワーク112を介してナビゲートして、1つ又は複数のウェブリソース114から取得可能なコンテンツと対話し、さらに、例えばダウンロードとアップロードを実行するなど、データを1つ又は複数のウェブリソース14に通信するように構成されてもよい。ウェブリソース114は、ネットワーク112を介してアクセス可能なコンテンツを提供するように構成される任意の適切なコンピューティングリソースを含むことができる。そのようなコンテンツの例には、ウェブページ、テキストコンテンツ、ビデオ及びオーディオ等が含まれる。
アプリケーション108の1つ又は複数は、ネットワーク112に、例えば該アプリケーション自身が直接及び/又はブラウザ110を通じてアクセスするように構成されてもよい。例えばアプリケーション108の1つ又は複数は、ウェブリソース114の1つ又は複数にアクセスして、コンテンツを取り出し、及び/又はアップロードするように構成される。したがって、アプリケーション108は、ネットワーク112への直接アクセス又は間接的なアクセスを含む様々な機能のために構成されてもよい。例えばアプリケーション108は、該アプリケーション108によってローカルに利用可能な構成設定及び他のデータであって、別のコンピューティングデバイス上で実行されるアプリケーションと同期される構成設定及び他のデータを含むことができる。このように、これらの構成設定は上記デバイスによって共有されてもよい。様々な他の例も考えられる。したがって、コンピューティングデバイス102は、様々な異なるソースからのコンテンツと様々な方法で対話することがある。
さらに、コンピューティングデバイス102の一部として、オペレーティングシステム116が図示されている。オペレーティングシステム116は、コンピューティングデバイス102のリソースを管理し、及びコンピューティングデバイス102の機能部分に対するアクセスを提供する機能を表す。コンピューティングデバイス102は、アプリケーションマネージャモジュール118も含むように図示されている。アプリケーションマネージャモジュール118は、アプリケーション108のアクティビティをモニタリングして区別するコンピューティングデバイス102の機能を表す。1つ又は複数の実装において、アプリケーションマネージャモジュール118は、アプリケーション108の特定のオペレーションを、そのオペレーションが信頼できるコンテンツを使用するものか、信頼できないコンテンツを使用するものかに基づいて、許可するか、許可しないように構成される。
アプリケーション108の一部として、信頼できるコンテンツ120が図示されている。信頼できるコンテンツ120は、コンピューティングデバイス102に対して、信頼され得るコンテンツとして、及び/又は信頼できるソースから受信したコンテンツとして知られるデータを表している。さらに、ウェブリソース114は、信頼できないコンテンツ122を含むように図示されており、信頼できないコンテンツ122は、コンテンツのソース及び/又はコンテンツの特性に基づいて信頼することができないコンテンツを表す。1つ又は複数の実装において、アプリケーションマネージャモジュール118は、コンテンツを信頼してよいかどうかをコンテンツのソースに基づいて判断するように構成されることがある。例えばコンテンツを、コンピューティングデバイス102に対して内部にあるソースから(例えば信頼性できるコンテンツ120から)受信する場合、アプリケーションマネージャモジュール118は、そのコンテンツは信頼してよいと判定する可能性がある。さらに、コンテンツを、コンピューティングデバイス102の外部及び/又は未知のソースから受信する場合、アプリケーションマネージャモジュール118はそのコンテンツは信頼できないと判定する可能性がある。
さらに、アプリケーション108の一部として、ローカル区画124及びリモート区画126が図示されている。諸実装において、ローカル区画124は、アプリケーション108のうち、コンピューティングデバイス102の特定の機密機能にアクセスすることが許可される部分を表す。例えばローカル区画124は、実行されると、一般にはコンピューティングデバイス102の外部にあるエンティティによるアクセスから保護されるコンピューティングデバイス102の機能及び/又は部分を呼び出すか、この機能及び/又は部分にアクセスするのが許可され得るアプリケーションコードを含む。リモート区画126は、アプリケーション108のうち、コンピューティングデバイス102の特定の機密機能へのアクセスが許可されない部分を表す。例えばリモート区画126に含まれるアプリケーションコードは、実行されるとき、コンピューティングデバイス102の機密機能にアクセスすることを妨げられる。
さらに、アプリケーションマネージャモジュール118の一部として、許可済みコード要素128及びフィルタ済みコード要素130が図示されている。許可済みコード要素128及びフィルタ済みコード要素130は、アプリケーション108によってアクセスされてコンピューティングデバイス102を介して1つ又は複数のタスクを実行することができる、コンピューティングデバイス102の機能の識別子を表す。コード要素の例は、関数、サブルーチン、メソッド、パラメータ、プロパティ、インタフェース(例えばアプリケーションプログラミングインタフェース(API))等である。1つ又は複数の実装において、許可済みコード要素128及び/又はフィルタ済みコード要素130によって識別される特定のコード要素は、コンピューティングデバイス102の機密部分、例えばオペレーティングシステム116によって提供される機能、ユーザコンテンツファイル、プライベートユーザ情報などへのアクセスを提供することができる。許可済みコード要素128及びフィルタ済みコード要素130の一部として列挙した例は、単なる例示のために提示されるものであり、コンピューティングデバイス102の任意の機能及び/又は部分を、許可済みコード要素128及び/又はフィルタ済みコード要素130の一部として含むことができることが認識されよう。
コンピューティングデバイス102において利用可能なコード要素を、許可済みコード要素128とフィルタ済みコード要素130に分けることは、アプリケーション108が、不注意によりコンピューティングデバイス102の機密部分が安全でないコンテンツに公開されるのを回避する助けとなる。例えば許可済みコード要素128は、一般にコンピューティングデバイス102を介して様々なオペレーションを実行するのに制限のないローカル区画124によって呼び出すことができるコード要素を含む。フィルタ済みコード要素130へのアクセスは、安全でないコンテンツが該フィルタ済みコード要素130にアクセスするのを可能にすることを回避するコンテンツ検査(content inspection)の対象となる。例えばアプリケーションが、フィルタ済みコード要素130の1つを呼び出してコンテンツを処理するとき、該コンテンツを検査し、該コンテンツをフィルタ済みコード要素130の1つに渡すのを許可する前に安全であることを確かめる。
アプリケーションマネージャモジュール118は、コード要素がフィルタ済みコード要素130の一部として含まれるべきどうかを決定するための基準を含むことができる。例えばアプリケーションマネージャモジュール118は、特定のコード要素により、コンテンツがコンピューティングデバイス102のドキュメントオブジェクトモデル(DOM:Document Object Model)機能(例えば、ブラウザ110に関連付けられたハイパーテキストマークアップ言語(HTML)DOM機能)にアクセス及び/又は操作することが可能になる場合、その特定のコードがフィルタ済みコード要素130の一部として含まれるべきことを指定することができる。
諸実装において、リモート区画126は、許可済みコード要素128又はフィルタ済みコード要素139へのアクセスを許可されない。これにより、リモート区画126からアクセスされる安全でないコンテンツが、コンピューティングデバイス102の機密部分に許可済みコード要素128又はフィルタ済みコード要素130のいずれかを介してアクセスすることを回避することができる。
図示された例においてコンピューティングデバイス102は、コンテンツ検査モジュール132も含むように図示されている。コンテンツ検査モジュール132は、コンテンツが、例えばアプリケーション108及び/又はブラウザ110を介して、コンピューティングデバイス102によって要求及び/又は取り出されることを検査する、コンピューティングデバイス102の機能を表す。1つ又は複数の実装において、コンテンツ検査モジュール132は、コンテンツがフィルタ済みコード要素130の1つに渡されることを許可する前に、コンテンツを検査して該コンテンツが安全であるかどうかを判断するように構成される。
コンテンツ検査モジュール132は、コンテンツ検査ポリシー134を含む。コンテンツ検査ポリシー134は、コンテンツ検査モジュール132によって、コンテンツ(例えば信頼できるコンテンツ120及び/又は信頼できないコンテンツ122)が安全であるか安全でないかを判断するのに使用されることがある。例えば、コンテンツ検査ポリシー134は、コンテンツが1つ又は複数の基準に合致する場合、そのコンテンツは安全でないと見なされることを指定してもよい。諸実装において、コンテンツ検査ポリシー134は、信頼できないコンテンツが、コンピューティングデバイス102によって及び/又はコンピューティングデバイス102において実行され得る実行コード(例えばスクリプト)を含む場合、その信頼できないコンテンツは安全でないと指定してもよい。そのような実行可能コードは、実行されると、オペレーティングシステム116の機能、コンピューティングデバイス102のユーザに関連付けられたプライベート情報及び同等のものなど、コンピューティングデバイス102の一部に対する不正なアクセスを可能にする可能性がある。
本明細書では、諸実装を、実行可能コードを含む安全でないコンテンツに関して検討するが、コンテンツ検査ポリシー134は、コンテンツが安全であるか安全でないかを判断するのに使用され得る様々な異なる基準及びフィルタを含むことができる。例えばコンテンツ検査モジュール134が、コンテンツが安全でないかどうかを判断するのに使用し得る他の基準は、安全でないと見なされる特定のウェブサイト、コンテンツタイプ、ファイルタイプ、ウェブドメイン及び同等のものの指示を含む。
コンテンツ検査モジュール132が、コンテンツが安全でないと判断する場合、この安全でないコンテンツを、フィルタ済みコード要素130の特定のコード要素に渡すことができない。反対に、コンテンツが安全であると判断される場合、コンテンツは特定のコード要素に渡されてよい。
一般に、本明細書で説明される機能のいずれかを、ソフトウェア、ファームウェア、ハードウェア(例えば固定の論理回路)又はこれらの実装の組み合わせを使用して実装することができる。本明細書で使用されるとき「モジュール」「機能(関数)」、「ロジック」という用語は、一般にソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ソフトウェア実装の場合、モジュール、機能又はロジックは、プロセッサ(例えば1つ又は複数のCPU)において実行されると、指定されたタスクを実行するプログラムコードを表す。プログラムコードを、1つ又は複数のコンピュータ読取可能メモリデバイスに格納することができる。以下で説明される技術の特徴はプラットフォーム独立であり、これは、これらの技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実行されてよいことを意味する。
例えばコンピューティングデバイス102は、例えばプロセッサ、機能ブロックなど、コンピューティングデバイス102のハードウェアにオペレーションを実行させるエンティティ(例えばソフトウェア)を含んでもよい。例えばコンピューティングデバイス102は、該コンピューティングデバイスに、より具体的にはコンピューティングデバイス102のハードウェアにオペレーションを実行させる命令を保持するように構成され得るコンピュータ読取可能媒体を含んでもよい。したがって、命令は、オペレーションを実行するようハードウェアを構成するように機能し、これにより、ハードウェアは機能を実行するように変換されることとなる。命令は、コンピュータ読取可能媒体によって様々な異なる構成によりコンピューティングデバイス102に提供されてもよい。
コンピュータ読取可能媒体の1つの構成が信号担持媒体であり、この場合、コンピュータ読取可能媒体は、命令を、ネットワークなどを介してコンピューティングデバイスのハードウェアに伝送するように構成される。コンピュータ読取可能媒体は、コンピュータ読取可能記憶媒体として構成されてもよく、この場合は信号担持媒体ではない。コンピュータ読取可能記憶媒体の例には、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光ディスク、フラッシュメモリ、ハードディスクメモリ、並びに磁気、光及び命令や他のデータを格納する他の技術を使用し得る他のメモリデバイスが含まれる。
本明細書で説明される技術が動作し得る例示的な環境について説明してきたが、1つ又は複数の実施形態に従って、ローカル区画124及びリモート区画126のためのいくつかの例示的なコンテンツ管理ポリシーの考察を検討する。
<ローカル区画ポリシー>
上述のように、ローカル区画124は、コンピューティングデバイス102のある特定の機密機能へアクセスするのを許可されるアプリケーション108の部分を表す。例えばローカル区画124は、実行されると、例えばコンテンツを処理するのに使用される、許可済みコード要素128及びフィルタ済み要素130で識別されるコード要素をコールすることができるアプリケーション108の実行可能コードを含む。ローカル区画124のプロパティについては、下記で1つ又は複数の実施形態に従って検討する。
<ローカル区画識別>
諸実装において、ローカル区画124の一部として含まれるコンテンツは、ローカル区画124に固有のユニフォームリソース識別子(URI)スキーマを使用して宣言される。例えばローカル区画124の一部として含まれるコンテンツを、「local-compartment://content」などのURIを使用して識別することができる。(例えばアプリケーションマネージャ118及び/又はコンテンツ検査モジュール132によって)コンテンツがこのURIを使用して参照されていると決定されると、コンテンツのソースがローカル区画124に対して知られることとなり、ローカル区画124に固有のプロパティがコンテンツに適用されることとなる。ローカル区画124に固有のURIスキーマが存在しないと、コンテンツは、信頼できないものとして扱われるか、及び/又はリモート区画126に関連付けられるものとして扱われることとなる。
<リモート実行可能コード>
ローカル区画124は、信頼できるコンテンツ120及び/又はコンピューティングデバイス102の外部にあるソースから取り出される実行可能コード(例えばスクリプト)への参照を含むことができない。例えば、ローカル区画124に関連付けられたコンテンツポリシーは、ローカル区画124に含まれるコンテンツが、信頼できるコンテンツ120の外部にある実行可能コンテンツを参照することができないことを指定してもよい。そのような許可されない参照の一例は、スクリプトコンテンツを参照するユニフォームリソースロケータ(URL)である。しかしながら、ローカル区画124は、信頼できるコンテンツ120の一部として含まれる実行可能コンテンツを参照してよい。
<許可済みコード要素へのアクセス>
ローカル区画124は、許可済みコード要素128のコード要素を呼び出すことを許可される。
<フィルタ済みコード要素へのアクセス>
ローカル区画124によって要求され、フィルタ済みコード要素130のコード要素に渡されるコンテンツは、該コンテンツがコード要素に渡される前に安全であることをチェックするようフィルタリングされる。例えばフィルタ済みコード要素130のいずれか1つの対する呼び出しが、(例えば信頼できないコンテンツ122からの)コンテンツのインスタンスに対する参照を含むとき、該コンテンツは、コンテンツ検査モジュール132によってフィルタリングされる。コンテンツ検査モジュール132が、そのコンテンツは安全であると決定した場合、そのコンテンツはコード要素へ渡されるのを許可される。反対に、コンテンツが安全でないと決定される場合、そのコンテンツは、コード要素に渡されるのを回避される。
<コンテンツソース>
諸実装において、ローカル区画124は、信頼できるコンテンツ120の外部にあるソースから、ある特定のタイプのコンテンツにアクセスするのを妨げられる。例えばローカル区画124は、信頼できるコンテンツ120の外部にあるソースからのメディアコンテンツ(例えばビデオコンテンツ、イメージ、オーディオコンテンツ等)にアクセスすることを許可される可能性がある。しかしながら、ローカル区画124は、信頼できるコンテンツ120の外部にソースからの他のタイプのコンテンツ、例えばHTMLコンテンツ、スクリプトコンテンツ、カスケードスタイルシート(CSS)コンテンツなどにアクセスすることを妨げられる可能性がある。これは、アプリケーションが、信頼できないソースからの悪意あるコンテンツ(例えば実行可能コード)に対する参照を含むことを回避することができる。
<第三者ネイティブコード>
諸実装において、アプリケーション108のうちのいずれか1つに関連付けられた第三者ネイティブコードをローカル区画124に格納してもよい。第三者ネイティブコードは、アプリケーション108のうちの1つによって使用されるが、アプリケーションの開発者によって書かれない実行可能コードを参照してもよい。しかしながら、そのような実装において、第三者ネイティブコードが、アプリケーションによって識別される、例えばアプリケーションのマニフェストの一部として宣言される。第三者ネイティブコードがアプリケーションによって宣言される場合、第三者ネイティブコードは、ローカル区画124から実行されるのを回避される可能性がある。
<クロスドメイン要求>
諸実装において、アプリケーション108は、ローカル区画124から、クロスドメインの拡張可能マークアップ言語(XML:extensible markup language)ハイパーテキスト伝送プロトコル(http)要求を呼び出すことを許可される。例えばアプリケーション108は、コンピューティングデバイス102の外部にあるドメインに関連付けられた(例えばウェブサイトからの)メディアコンテンツにポイントするURLを含むことができる。
<文字のエンコード>
コンピューティングデバイス102の機密部分を守るために、文字エンコード制限をローカル区画124に対して実施することができる。諸実装において、文字のエンコードは、コンテンツデータに含まれる文字(例えば記号)がコンピューティングデバイス上で表現される方法を参照する。文字エンコードの例は、ユニバーサル文字セットトランスフォーメーションフォーマット(UTF:Universal Character Set Transformation Format)を含む。特定のタイプの文字エンコードが(例えばマルウェア及び/又は第三者によって)操作され、コンピューティングデバイスの望まない性能及び/又コンピューティングデバイスの機密部分への不正なアクセスを招く可能性がある。したがって、ローカル区画124は、UTF−8などの特定の許可された文字エンコードを使用するように制限されることが可能である。
コンテンツの特定の部分が、宣言型文字エンコードフォーマットを有しない場合、コンテンツを、許可された文字エンコードとして解析する試みを行うことができる。許可された文字エンコードを使用してコンテンツを解析することができる場合、該コンテンツをローカル区画124によって利用して、例えばコンテンツを出力することができる。許可された文字エンコードを使用してコンテンツを解析することができない場合、コンテンツが解析されるのを妨げるエラーを発生させることができる。さらにコンテンツの特定の部分が、許可された文字エンコードとは異なる宣言型文字エンコードを有する場合、コンテンツが解析されるのを妨げるか、及び/又は解析エラーが発生させることができる。
<リモート区画ポリシー>
上述のように、リモート区画126は、コンピューティングデバイス102の特定の機密機能にアクセスすることを許可されないアプリケーション108の部分を表す。例えばリモート区画126はアプリケーション108の実行可能コードを含み、該アプリケーション108の実行可能コードは、実行されるとき、許可済みコード要素128及びフィルタ済みコード要素130で識別されるコード要素をコールすることを許可されない。ウェブコンテンツを参照すると、そのようなコンテンツは、例えばブラウザ110などのウェブブラウザに関連付けられた同じリソース許可に基づいて、リモート区画において実行されることが可能である。リモート区画126の追加のプロパティは、下記で1つ又は複数の実施形態に従って検討する。
<リモート区画識別>
諸実装において、リモート区画126の一部として含まれるコンテンツは、リモート区画126に固有のユニフォームリソース識別子(URI)スキーマを使用して宣言される。例えばリモート区画126の一部として含まれるコンテンツを、「remote-compartment://content」などのURIを使用して識別することができる。コンテンツが、(例えばアプリケーションマネージャモジュール118及び/又はコンテンツ調査モジュール132によって)このURIを使用して参照されていると決定されると、コンテンツのソースがリモート区画126に知られることとなり、リモート区画126に固有のポリシーがコンテンツに適用されることとなる。さらに、「http://」及び「https://」などの他のURIスキーマを使用して参照されるコンテンツは、リモート区画126及び/又は信頼できないソースに関連付けられているものとして扱われることになる。
<リモート実行可能コード>
諸実装において、リモート区画126は、例えば信頼できるコンテンツ120及び/又は信頼できないコンテンツ122など、信頼できるソース及び信頼できないソースからの実行可能コード(例えばスクリプト)への参照を含むことが許可される。リモート区画126はコンピューティングデバイス102の機密部分へのアクセスを有しないので、リモート区画126が信頼できない実行可能コードを参照できるようにしても、コンピューティングデバイス102の機密部分が信頼できない実行可能コードにさらされるリスクはない。
<メディアコンテンツ>
リモート区画126は、例えば信頼できるコンテンツ120及び/又は信頼できないコンテンツ122など、信頼できるソース及び信頼できないソースからのメディアコンテンツへの参照を含むことを許可される。リモート区画126はコンピューティングデバイス102の機密部分へのアクセスは有しないので、リモート区画126が信頼できないメディアコンテンツを参照できるようにしても、コンピューティングデバイス102の機密部分が信頼できないメディアコンテンツに含まれ得る安全でないコンテンツにさらされるリスクはない。
<第三者ネイティブコード>
諸実装において、リモート区画126は、第三者ネイティブコードを呼び出すこと、及び/又は参照することを許可されない。これにより、そのようなコードが、コンピューティングデバイスの機密部分への不正なアクセスを取得することを回避することができる。
<クロスドメイン要求>
諸実装において、リモート区画126は、クロスドメインXML−http要求を含むことを許可されない。これにより、安全でないコンテンツが、リモート区画126からアクセスされるウェブサイト又は他のネットワークリソースを介してアクセスされるのを回避することができる。
<区画間の通信>
諸実装において、リモート区画126とローカル区画124との間の通信を制御して、安全でないコンテンツが区画間で渡されるのを防ぐ。例えば単一の通信技術を使用して区画間の通信を可能にしてもよい。
そのような技術の一例は、例えばpostMessage()メソッドを使用してイベントジェネレータを第1のコンテンツ区画に追加することである。次いで、対応するイベントリスナを、例えばaddEventListener()メソッドを使用して他の区画に追加してもよい。イベントが第1の区画によって生成されると、該イベントはイベントリスナによって他の区画において検出されて、区画間のメッセージの通信を容易にする。
一部のシナリオにおいて、ローカル区画124は、postMessage()メソッドを介してコンテンツを受信し、このコンテンツが、信頼できないソースから受信したものであると決定する可能性がある。このようなシナリオにおいて、本明細書で説明されるコンテンツフィルタリング技術を用いて、そのコンテンツが安全であるか、安全でないかを決定してもよい。さらに、コンテンツが安全でないと決定された場合、該コンテンツを拒否するか、削除することができる。
例示のコンテンツ管理ポリシーを説明してきたが、次に、1つ又は複数の実施形態によるいくつかの例示的なプロシージャの考察について検討する。
<例示的なプロシージャ>
以下の考察では、本明細書で説明されるシステム、デバイス及びコンテンツ管理ポリシーを使用して実装され得るコンテンツ管理技術を説明する。プロシージャのそれぞれの態様は、ハードウェア、ファームウェア又はソフトウェア、又はこれらの組み合わせで実装されてよい。プロシージャは、1つ又は複数のデバイスによって実行されるオペレーションを指定するブロックのセットとして示されているが、オペレーションを実行する順序は、必ずしも個々のブロックによって示されている順序に限定されない。さらに、1つ又は複数の実装にしたがって、特定のプロシージャについて示されているオペレーションを、異なるプロシージャのオペレーションと組み合わせてもよく、及び/又は交換してもよい。以下の考察の一部では、図1の環境100への参照を行う。
図2は、コンテンツ管理ポリシーが実施される、例示的な実装のプロシージャ200を示す。コンテンツ管理ポリシーの第1のセットが、コンピューティングデバイスのコード要素の呼び出しを許可されるアプリケーションの部分に対して実施され、コンテンツ管理ポリシーの第2のセットがコード要素の呼び出しを許可されないアプリケーションの部分に対して実施される(ブロック202)。コンテンツ管理ポリシーの例は、上記及び下記で説明される。コンテンツを参照しているアプリケーションの部分に基づいて、コンテンツにコンテンツ管理ポリシーの第1のセットを適用するか、又はコンテンツ管理ポリシーの第2のセットを適用するかの判断を行う(ブロック204)。例えば信頼できないコンテンツがローカル区画124によって要求される場合、コンテンツ管理ポリシーの第1のセットが適用される。しかしながら、信頼できないコンテンツがリモート区画126によって要求される場合、コンテンツ管理ポリシーの第2のセットが適用される。諸実装において、どの区画がコンテンツを要求しているかの判断は、コンテンツを参照するURIに基づいて行うことができる。
図3は、コンテンツをコード要素に渡す要求を許可するかどうかの判断を行う、例示的な実装のプロシージャ300を示す。コンピューティングデバイス上で実行しているアプリケーションが、コンテンツをコンピューティングデバイスのコード要素に渡す要求を含むことを検出する(ブロック302)。例えばアプリケーション108のいずれか1つが、許可済みのコード要素128又はフィルタ済みコード要素130のいずれか1つにコンテンツのインスタンスが渡されることを要求することがある。
要求が許可されるかどうかの判断が、その要求が、コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であるかどうかに基づいて行われる(ブロック304)。上記で検討した区画を参照して、アプリケーションマネージャ118は、その要求がローカル区画124からのものであるか、リモート区画126からのものであるか判断することができる。要求が、コード要素を呼び出すのを許可されていないアプリケーションの部分からのものである場合(「許可されない」の場合)、コンテンツがコード要素に渡されるのを回避する(ブロック306)。上述のように、リモート区画126はコンピューティングデバイス102のコード要素を呼び出すのを許可されない。したがって、リモート区画126からの要求であると決定された場合、その要求を拒否してよい。
要求が、コード要素を呼び出すことを許可されるアプリケーションの部分からのものである場合(「許可される」の場合)、そのコンテンツをコード要素に渡してよいかどうかが、コンテンツのソース及びコンテンツのコンテンツタイプに基づいて確認される(ブロック308)。上述のように、特定のシナリオにおいて、ローカル区画124はコンピューティングデバイス102のコード要素を呼び出すのを許可される。したがって、要求がローカル区画124からのものであると決定される場合、コンテンツは、該コンテンツがコード要素に渡されてもよいかどうかを判断するのに、更なる精査を受けることがある。コンテンツをコード要素に渡してもよいかどうかを判断する例示の方法を、以下でより詳細に検討する。
図4は、コンテンツをコード要素に渡してもよいかどうかの判断を行う、例示的な実装のプロシージャ400を示す。諸実装において、プロシージャ400は、上述のプロシージャ300のブロック308を実装する、より詳細な技法を表している。コード要素に渡されるよう要求されたコンテンツのソースが、信頼できるソースであるか信頼できないソースであるかを確認する(ブロック402)。コンテンツのソースが信頼できないソースである場合(「信頼できない」の場合)、そのコンテンツのコンテンツタイプが、信頼できないソースから許可されるかどうかの判断を行う(ブロック404)。図1の環境100を参照すると、コンテンツのソースは、信頼できないコンテンツ122であってよい。上述のように、コンテンツの特定のタイプ(例えば実行可能コード)は、信頼できないソースから取り出されてコード要素に渡されることが許可されない。コンテンツタイプが、信頼できないソースから許可されない場合(「いいえ」の場合)、そのコンテンツは、コード要素に渡されるのを回避される(ブロック406)。反対に、コンテンツタイプが、信頼できないソースから許可される場合(「はい」の場合)、プロシージャ400は、以下で説明されるブロック408に進む。コンテンツの特定のタイプ(例えばメディアコンテンツ、フォーマットコンテンツ等)が、信頼できないソースから取り出してコード要素に渡されるのを許可される場合、諸実装において、そのコンテンツが安全であるかどうかの更なる検査の対象となる。
ブロック402に戻ると、コンテンツのソースが信頼できるソースである場合(「信頼できる」の場合)、又はブロック404においてコンテンツタイプが信頼できないソースから許可される場合(「はい」の場合)、コンテンツ要素が、許可済みコード要素であるか、フィルタ済みコード要素であるかの判断を行う(ブロック408)。コード要素が、許可済みコード要素である場合(「許可済み」の場合)、コンテンツは、コード要素に渡されるのを許可される(ブロック410)。諸実装において、許可済みコード要素とフィルタ済みコード要素との間の差異を、例えば許可済みコード要素のセットとフィルタ済みコード要素のセットとを予め指定することによって、明示的に定義することができる。あるいは、フィルタ済みコード要素のセットを予め指定し、特定のコード要素が、そのフィルタ済みコード要素のセットにおいて特定されていないことに基づいて、その特定のコード要素は許可済みコード要素であると暗黙的に決定することができる。コンテンツは、コード要素を使用して処理される(ブロック412)。例えばコンテンツを、プレゼンテーションのために、例えばウェブページ、ドキュメント等の一部として処理することができる。
ブロック408に戻ると、コード要素がフィルタ済みコード要素である場合(「フィルタ済み」の場合)、コンテンツを検査して、該コンテンツがコード要素に渡されるのに安全であるかどうかを確認する(ブロック414)。例えばコンテンツ検査モジュール132は、コンテンツ検査ポリシー134の1つ又は複数をコンテンツに適用して、そのコンテンツが安全であるか安全でないかを判断することができる。上述のように、実行可能コードを含むコンテンツは、フィルタ済みコード要素に渡すのに安全ではないと判断される可能性がある。加えて、安全なコンテンツには、イメージ、テキスト、オーディオ、ビデオ、プレゼンテーションデータ、静的なHTML等の静的なコンテンツが含まれる可能性がある。
代替的な実装において、コード要素に対するコールは、コンテンツ検査スキームから除外されてもよい。例えばコンピューティングデバイスは、コード要素に対するコールが、該コールに関連付けられたコンテンツをコンテンツ検査スキームから免除するとの指示を含むと判断する可能性がある。したがって、コンテンツを最初に検査して該コンテンツが安全でないかどうかを判断することなく、そのコンテンツを使用してコード要素を実行することができる。これにより、アプリケーションの開発者は、コンテンツが検査された場合に拒否され得る状況において、コンテンツ検査機構をバイパスすることができる。
ブロック414に戻ると、コンテンツが、コード要素に渡されるのには安全でないと判断された場合(「安全でない」の場合)、コンテンツを、コード要素に渡すことはできない(ブロック406)。コンテンツが、コード要素に渡されるのに安全であると判断された場合(「安全」の場合)、コンテンツは、コード要素に渡されるのを許可される(ブロック410)。上述のように、コンテンツはコード要素を使用して処理される(ブロック412)。
代替的な実装において、アプリケーションは、安全でないコンテンツが特定のコード要素に渡されるのを許可する前に、そのコンテンツが該コンテンツの安全でない態様を除去することによって浄化され得ることを指示することができる。例えばアプリケーション108は、そのコードで(例えば関数のコールにより)安全でないコンテンツがコンテンツ検査モジュール132に渡されるべきことを指定することができ、コンテンツ検査モジュール132は次いで、安全でない機能(例えば実行可能コード)をそのコンテンツから除去することができる。浄化されたコンテンツをその後、更なる処理のためにコンテンツ要素に渡すことができる。
<例示的なシステム及びデバイス>
図5は、図1を参照して説明したコンピューティングデバイス102を含む例示的なシステム500を図示している。例示的なシステム500は、アプリケーションをパーソナルコンピュータ(PC)、テレビジョンデバイス及び/又はモバイルデバイスにおいて実行するときにシームレスなユーザ経験のためのユビキタスな環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用し、ビデオゲームをプレイし、ビデオを見ている間などにあるデバイスから次のデバイスに遷移する際の共通のユーザ経験のために3つ全ての環境において実質的に同様に動作する。
例示的なシステム500において、複数のデバイスが中央のコンピューティングデバイスを通じて相互接続される。中央コンピューティングデバイスは、これらの複数のデバイスに対してローカルであってもよく、あるいは複数のデバイスからリモートに配置されてもよい。一実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット又は他のデータリンクを通じて上記複数のデバイスに接続される、1つ又は複数のサーバコンピュータのクラウドであってよい。1つ又は複数の実施形態において、この相互接続アーキテクチャは、機能を複数のデバイスにわたって配信し、これらの複数のデバイスのユーザに共通のシームレスな経験を提供することを可能にする。複数のデバイスはそれぞれ、異なる物理的要件及び能力を有していてよく、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスに、該デバイスに対して調整されており、かつ全てのデバイスに対して共通の経験の配信を可能にする。一実施形態において、ターゲットデバイスのクラスが作成され、経験が、デバイスの全体のクラスに対して調整される。デバイスのクラスは、物理的特性、利用のタイプ、又はデバイスの他の特性によって定義されてもよい。
様々な実装において、コンピューティングデバイス102は、コンピュータ502、モバイル504及びテレビジョン506の使用について、様々な異なる構成としてもよい。これらの構成はそれぞれ、一般に異なる構成及び能力を有する可能性があるデバイスを含み、したがってコンピューティングデバイス102は、異なるデバイスクラスの1つ又は複数に従って構成されてもよい。例えばコンピューティングデバイス102は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ502クラスとして実装されてよい。
コンピューティングデバイス102はまた、モバイルフォン、ポータブル音楽プレイヤ、ポータブルゲームデバイス、タブレットコンピュータ、マルチスクリーンコンピュータ等のモバイルデバイスを含むデバイスのモバイル504のクラスとして実装されてもよい。コンピューティングデバイス102はまた、カジュアルな視聴環境において、一般により大きなスクリーンを有するか、このようなスクリーンに接続されるデバイスを含むデバイスのテレビジョン506のクラスとして実装されてもよい。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。本明細書で説明される技術は、コンピューティングデバイス102のこれらの様々な構成によってサポートされてよく、本明細書で説明される技術の特定の例に限定されない。
クラウド508は、コンテンツサービス512のためのプラットフォーム510を含む、及び/又は該プラットフォーム510を表す。プラットフォーム10は、クラウド508のハードウェア(例えばサーバ)及びソフトウェアリソースの基礎となる機能を抽象化する。コンテンツサービス512は、コンピュータ処理がコンピューティングデバイス102からリモートのサーバ上で実行される間に用いることができるアプリケーション及び/又はデータを含んでもよい。コンテンツサービス512を、インターネット上で、及び/又は携帯電話網やWi−Fi(登録商標)ネットワークなどの加入者ネットワークを介したサービスとして提供することができる。
プラットフォーム510は、リソース及び機能を抽象化して、コンピューティングデバイス102と他のコンピューティングデバイスを接続してもよい。プラットフォーム510は、リソースのスケーリングを抽象化して、対応するレベルのスケールを、プラットフォーム510を介して実装されるコンテンツサービス512について生じた需要に提供するように機能してもよい。したがって、相互接続されるデバイスの実施形態において、本明細書で説明された機能の実装を、システム500を通じで分散させてもよい。例えば、機能をコンピューティングデバイス102上に部分的に実装するだけでなく、アプリケーション108、アプリケーションマネージャモジュール118及びコンテンツ検査モジュール132を包含するように示されているクラウド508の機能を抽象化するプラット510を介して実装してもよい。
図6は、例示的なデバイス600の様々なコンポーネントを図示しており、例示的なデバイス600は、図1及び5を参照して説明したような任意のタイプのコンピューティングデバイスとして実装され、本明細書で説明される技術の実施形態を実装することができる。デバイス600は、デバイスデータ604(例えば、受信したデータ、受信しているデータ、放送用にスケジュールされたデータ、データのデータパケット等)の有線及び/又は無線の通信を可能にする通信デバイス602を含む。デバイスデータ604又は他のデバイスコンテンツは、デバイスの構成設定、デバイスに格納されたメディアコンテンツ、及び/又はデバイスのユーザに関連付けられた情報を含むことができる。デバイス600に格納されたメディアコンテンツは、任意のタイプのオーディオ、ビデオ及び/又はイメージデータを含むことができる。デバイス600は、1つ又は複数のデータ入力部606を含み、該データ入力部606を介して、ユーザ選択可能な入力、メッセージ、音楽、テレビメディアコンテンツ、録画されたビデオコンテンツ、並びに任意のコンテンツ及び/又はデータソースから受信した任意の他のタイプのオーディオ、ビデオ及び/又はイメージデータなど、任意のタイプのデータ、メディアコンテンツ及び/又は入力を受信することができる。
デバイス600は、通信インタフェース608も含み、該通信インタフェース608は、シリアル及び/又はパラレルインタフェース、無線インタフェース、任意のタイプのネットワークインタフェース、モデムのうちのいずれか1つ又は複数として、及び任意の他のタイプの通信インタフェースとして実装することができる。通信インタフェース608は、デバイス600と、他の電子的なコンピューティング通信デバイスがデータをデバイス600に通信するための通信ネットワークとの間の接続及び/又は通信リンクを提供する。
デバイス600は、1つ又は複数のプロセッサ610(例えばマイクロプロセッサ、コントローラ等)を含み、該プロセッサ610は、様々なコンピュータ実行可能命令を処理して、デバイス600のオペレーションを制御し、そして本明細書で説明される技術の実施形態を実装する。あるいはまた、デバイス600を、ハードウェア、ファームウェア、あるいは612で全体的に識別される処理及び制御回路と関連して実装される固定の論理回路のうちのいずれか1つ又はこれらの組み合わせで実装することができる。図示されていないが、デバイス600は、該デバイス内の様々なコンポーネントを結合するシステムバス又はデータ転送システムを含むことができる。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び/又は、様々なバスアーキテクチャのいずれかを用いるプロセッサ若しくはローカルバスなどの異なるバス構造のうちのいずれか1つ又は組み合わせを含むことができる。
デバイス600は、1つ又は複数のメモリコンポーネントなどのコンピュータ読取可能媒体614も含み、この媒体の例には、ランダムアクセスメモリ(RAM)、非揮発性メモリ(例えば読取専用メモリ(ROM)、フラッシュメモリ、EPROM、EEPROM等)及びディスク記憶装置が含まれる。ディスク記憶装置は、ハードディスクドライブ、記録可能及び/又は再書き込み可能コンパクトディスク(CD、任意のタイプのデジタル多用途ディスク(DVD)及び同等のものなど、任意のタイプの磁気又は光記憶装置として実装されてよい。デバイス600は大容量記憶メディアデバイス616も含むことができる。
コンピュータ読取可能媒体614は、データ記憶機構を提供して、デバイスデータ604、並びに様々なアプリケーション618及びデバイス600の動作の態様に関連する任意の他のタイプの情報及び/又はデータを格納する。例えばオペレーティングシステム620を、コンピュータ読取可能媒体614によりコンピュータアプリケーションとして保持することができ、プロセッサ610において実行することができる。デバイスアプリケーション618は、デバイスマネージャ(例えばコントロールアプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスにネイティブなコード、特定のデバイスのためのハードウェア抽象レイヤ等)を含むことができる。デバイスアプリケーション618は、本明細書で説明される技術の実施形態を実装する任意のシステムコンポーネント又はモジュールも含む。
この例では、デバイスアプリケーション618は、ソフトウェアモジュール及び/又はコンピュータアプリケーションとして示されるインタフェースアプリケーション622及び入出力モジュール624を含む。入出力モジュール624は、タッチスクリーン、トラックパッド、カメラ、マイクロフォンなど、入力をキャプチャするように構成されるデバイスとのインタフェースを提供するのに使用されるソフトウェアを表す。あるいはまた、インタフェースアプリケーション622及び入出力モジュール624を、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組み合わせとして実装することができる。加えて、入出力モジュール624は、ビジュアル入力とオーディオ入力をそれぞれキャプチャする別個のデバイスなど、複数の入力デバイスをサポートするように構成されてもよい。
デバイス600は、オーディオ及び/又はビデオ入出力システム626も含み、該オーディオ及び/又はビデオ入出力システム626は、オーディオデータをオーディオシステム628に提供し、及び/又はビデオデータをディスプレイシステム630に提供する。オーディオシステム628及び/又はディスプレイシステム630は、オーディオ、ビデオ及びイメージデータを、処理、表示及び/又はそうでなくともレンダリングする任意のデバイスを含むことができる。ビデオ信号及びオーディオ信号を、デバイス600からオーディオデバイスに、及び/又はディスプレイデバイスに、RF(無線周波数)リンク、S−videoリンク、複合ビデオリンク、コンポーネントビデオリンク、DVI(デジタルビデオインタフェース)、アナログオーディオ接続又は他の同様の通信リンクを介して通信することができる。一実施形態において、オーディオシステム628及び/又はディスプレイシステム630は、デバイス600の外部コンポーネントとして実装される。あるいは、オーディオシステム628及び/又はディスプレイシステム630は、例示的なデバイス600の組み込みコンポーネントとして実装される。
<結論>
本発明を、構造的特徴及び/又は方法的動作に特有の言語で説明してきたが、特許請求の範囲によって提示される本発明は、必ずしも説明された具体的な特徴又は動作に限定されない。むしろ、これらの具体的な特徴及び動作は、特許請求に係る発明を実装する例示的な形式として開示される。

Claims (10)

  1. コンピューティングデバイスによる実行に応答して、該コンピューティングデバイスに、
    コンテンツ管理ポリシーの第1のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されるアプリケーションの第1の部分に対して実施させ、コンテンツ管理ポリシーの第2のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されないアプリケーションの第2の部分に対して実施させ、
    コンテンツに前記コンテンツ管理ポリシーの第1のセットを適用するか前記コンテンツ管理ポリシーの第2のセットを適用するかを、前記アプリケーションのどの部分が前記コンテンツを要求しているかに基づいて決定させる
    命令を備えた、1つ又は複数のコンピュータ読取可能記憶媒体。
  2. 前記コード要素は、関数、サブルーチン、メソッド、パラメータ、プロパティ又はインタフェースのうちの1つ又は複数を含む、請求項1に記載の1つ又は複数のコンピュータ読取可能記憶媒体。
  3. 前記コンテンツ管理ポリシーの第1のセットは、前記コンテンツが信頼できない場合、前記コンテンツは実行可能コードを含むことができないことを指定する、請求項1に記載の1つ又は複数のコンピュータ読取可能記憶媒体。
  4. 前記コンテンツ管理ポリシーの第1のセットは、前記コンテンツが信頼できないコンテンツを含み、前記アプリケーションの前記第1の部分が、前記信頼できないコンテンツを前記コード要素の1つに渡されることを要求している場合、前記信頼できないコンテンツが前記コード要素の1つに渡される前に前記信頼できないコンテンツが安全であるかどうかを判断するのに検査されるべきことを指定する、請求項1に記載の1つ又は複数のコンピュータ読取可能記憶媒体。
  5. 前記コンテンツ管理ポリシーの第1のセットは、前記コンピューティングデバイスからローカルで取り出されるコンテンツは、特定の文字エンコードフォーマットを使用してエンコードされるべきこと、又は前記コンテンツは解析を回避されることになることを指定する、請求項1に記載の1つ又は複数のコンピュータ読取可能記憶媒体。
  6. コンピューティングデバイス上で実行しているアプリケーションが、前記コンピューティングデバイスのコード要素にコンテンツを渡すよう求める要求を含んでいることを検出するステップと、
    前記検出に応答して、前記要求が前記コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であるかどうかに基づいて、前記要求を許可するかどうかを判断するステップと
    を含む、方法。
  7. 前記コード要素は、前記コード要素が前記コンピューティングデバイスの特定の機能へのアクセスが可能であることに基づいて、予め指定されたコード要素のグループの一部として含まれる、請求項6に記載の方法。
  8. 前記要求が、前記コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であると判断したことに応答して、前記コンテンツを前記コード要素に渡してよいかどうかを、前記コンテンツのソース及び前記コンテンツのコンテンツタイプに基づいて確認する、請求項6に記載の方法。
  9. 前記コンテンツのソースが前記コンピューティングデバイスからリモートであり、前記コンテンツが実行可能コードを含んでいるとの判断に基づいて、前記コンテンツを前記コード要素に渡さないことを確認するステップを更に含む、請求項8に記載の方法。
  10. 前記要求が、前記コード要素を呼び出すことを許可されないアプリケーションの部分から要求であるとの判断に応答して、前記コンテンツが前記コード要素に渡されるのを回避するステップを更に含む、請求項6に記載の方法。

JP2014529792A 2011-09-07 2012-09-04 アプリケーションのためのコンテンツの管理 Pending JP2014525638A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/227,201 US10445528B2 (en) 2011-09-07 2011-09-07 Content handling for applications
US13/227,201 2011-09-07
PCT/US2012/053620 WO2013036470A1 (en) 2011-09-07 2012-09-04 Content handling for applications

Publications (2)

Publication Number Publication Date
JP2014525638A true JP2014525638A (ja) 2014-09-29
JP2014525638A5 JP2014525638A5 (ja) 2015-10-01

Family

ID=47754187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014529792A Pending JP2014525638A (ja) 2011-09-07 2012-09-04 アプリケーションのためのコンテンツの管理

Country Status (11)

Country Link
US (1) US10445528B2 (ja)
EP (1) EP2754082B1 (ja)
JP (1) JP2014525638A (ja)
KR (1) KR101977428B1 (ja)
CN (1) CN103765431B (ja)
AU (1) AU2012304788B2 (ja)
BR (1) BR112014005052B1 (ja)
CA (1) CA2846877C (ja)
MX (1) MX351857B (ja)
RU (1) RU2626658C2 (ja)
WO (1) WO2013036470A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103117992A (zh) * 2012-09-10 2013-05-22 微软公司 应用的内容处理
US10009379B2 (en) * 2014-12-23 2018-06-26 Peter W. J. Jones Systems and methods for sterilizing email attachments and other communications delivered by email
US9785721B2 (en) * 2014-12-30 2017-10-10 Yahoo Holdings, Inc. System and method for programmatically creating resource locators
WO2017028304A1 (en) * 2015-08-20 2017-02-23 Google Inc. Device-based filtering of content items associated with mobile applications
US20220197993A1 (en) * 2022-03-11 2022-06-23 Intel Corporation Compartment isolation for load store forwarding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004501467A (ja) * 2000-06-21 2004-01-15 マイクロソフト コーポレイション コードアセンブリに関連する許可要求を使用して許可セットをフィルタすること
US20060236100A1 (en) * 2005-04-19 2006-10-19 Guruprasad Baskaran System and method for enhanced layer of security to protect a file system from malicious programs
US20080313648A1 (en) * 2007-06-14 2008-12-18 Microsoft Corporation Protection and communication abstractions for web browsers
JP2010092376A (ja) * 2008-10-10 2010-04-22 Softbank Mobile Corp 情報処理装置、情報処理方法及び情報処理プログラム
US20100186089A1 (en) * 2009-01-22 2010-07-22 International Business Machines Corporation Method and system for protecting cross-domain interaction of a web application on an unmodified browser

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US7051366B1 (en) * 2000-06-21 2006-05-23 Microsoft Corporation Evidence-based security policy manager
US7047562B2 (en) * 2001-06-21 2006-05-16 Lockheed Martin Corporation Conditioning of the execution of an executable program upon satisfaction of criteria
TWI281107B (en) 2001-08-13 2007-05-11 Qualcomm Inc Using permissions to allocate device resources to an application
US7216160B2 (en) * 2001-10-31 2007-05-08 Sun Microsystems, Inc. Server-based application monitoring through collection of application component and environmental statistics
US7242773B2 (en) * 2002-09-09 2007-07-10 Sony Corporation Multiple partial encryption using retuning
US7308648B1 (en) * 2002-11-27 2007-12-11 Microsoft Corporation Method, system, and computer-readable medium for filtering harmful HTML in an electronic document
JP3823925B2 (ja) 2003-02-05 2006-09-20 ソニー株式会社 情報処理装置、ライセンス情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US20040260754A1 (en) * 2003-06-20 2004-12-23 Erik Olson Systems and methods for mitigating cross-site scripting
US7694328B2 (en) * 2003-10-21 2010-04-06 Google Inc. Systems and methods for secure client applications
US7774620B1 (en) * 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US8037527B2 (en) * 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US7624111B2 (en) 2005-06-27 2009-11-24 Microsoft Corporation Active content trust model
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
US8045958B2 (en) * 2005-11-21 2011-10-25 Research In Motion Limited System and method for application program operation on a wireless device
US20070156871A1 (en) * 2005-12-30 2007-07-05 Michael Braun Secure dynamic HTML pages
US9356935B2 (en) 2006-09-12 2016-05-31 Adobe Systems Incorporated Selective access to portions of digital content
US7895296B1 (en) 2006-12-29 2011-02-22 Google, Inc. Local storage for web based native applications
US8584232B2 (en) * 2007-04-23 2013-11-12 Sap Ag Enhanced cross-site attack prevention
JP4395178B2 (ja) * 2007-05-29 2010-01-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツ処理システム、方法及びプログラム
US8181246B2 (en) * 2007-06-20 2012-05-15 Imperva, Inc. System and method for preventing web frauds committed using client-scripting attacks
US20090064337A1 (en) * 2007-09-05 2009-03-05 Shih-Wei Chien Method and apparatus for preventing web page attacks
US9906549B2 (en) * 2007-09-06 2018-02-27 Microsoft Technology Licensing, Llc Proxy engine for custom handling of web content
US20090119769A1 (en) * 2007-11-05 2009-05-07 Microsoft Corporation Cross-site scripting filter
US8650648B2 (en) * 2008-03-26 2014-02-11 Sophos Limited Method and system for detecting restricted content associated with retrieved content
US8220050B2 (en) * 2008-03-31 2012-07-10 Sophos Plc Method and system for detecting restricted content associated with retrieved content
US8806618B2 (en) * 2008-03-31 2014-08-12 Microsoft Corporation Security by construction for distributed applications
US9058483B2 (en) 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US8387152B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Attested content protection
US20100058467A1 (en) 2008-08-28 2010-03-04 International Business Machines Corporation Efficiency of active content filtering using cached ruleset metadata
EP2222081A1 (en) 2009-02-19 2010-08-25 Thomson Licensing Methods and devices for digital content protection
US8413139B2 (en) 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
KR101651283B1 (ko) 2009-11-13 2016-08-26 삼성전자 주식회사 컨텐츠제공시스템 및 그 컨텐츠제공방법, 디스플레이장치 및 그 제어방법
US8719939B2 (en) 2009-12-31 2014-05-06 Mcafee, Inc. Malware detection via reputation system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004501467A (ja) * 2000-06-21 2004-01-15 マイクロソフト コーポレイション コードアセンブリに関連する許可要求を使用して許可セットをフィルタすること
US20060236100A1 (en) * 2005-04-19 2006-10-19 Guruprasad Baskaran System and method for enhanced layer of security to protect a file system from malicious programs
US20080313648A1 (en) * 2007-06-14 2008-12-18 Microsoft Corporation Protection and communication abstractions for web browsers
JP2010092376A (ja) * 2008-10-10 2010-04-22 Softbank Mobile Corp 情報処理装置、情報処理方法及び情報処理プログラム
US20100186089A1 (en) * 2009-01-22 2010-07-22 International Business Machines Corporation Method and system for protecting cross-domain interaction of a web application on an unmodified browser

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016026454; LEO A MEYEROVICH ET AL: '"ConScript: Specifying and Enforcing Fine-Grained Security Policies for JavaScript in the Browser"' Proceedings of the 2010 IEEE SYMPOSIUM on Security and Privacy , 20100516, pages 481-496, IEEE *
JPN6016026456; WebSphere MQ アプリケーション・プログラミング・リファレンス バージョン7.0 第1版, 200804, 799頁, 日本アイ・ビー・エム株式会社 *

Also Published As

Publication number Publication date
CA2846877A1 (en) 2013-03-14
WO2013036470A1 (en) 2013-03-14
MX351857B (es) 2017-10-31
US10445528B2 (en) 2019-10-15
CA2846877C (en) 2020-08-04
EP2754082A4 (en) 2015-05-27
BR112014005052A2 (pt) 2017-03-21
RU2014108837A (ru) 2015-09-20
EP2754082A1 (en) 2014-07-16
KR101977428B1 (ko) 2019-08-28
BR112014005052A8 (pt) 2018-02-06
MX2014002785A (es) 2014-06-05
AU2012304788A1 (en) 2014-03-20
BR112014005052B1 (pt) 2021-09-08
RU2626658C2 (ru) 2017-07-31
EP2754082B1 (en) 2020-09-23
AU2012304788B2 (en) 2016-12-08
CN103765431B (zh) 2016-11-16
CN103765431A (zh) 2014-04-30
KR20140068940A (ko) 2014-06-09
US20130061282A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
US9087190B2 (en) Context-aware permission control of hybrid mobile applications
US8863008B2 (en) Automatic removal of sensitive information from a computer screen
Tuncay et al. Draco: A system for uniform and fine-grained access control for web code on android
US10298586B2 (en) Using a file whitelist
US20140283109A1 (en) Using a uri whitelist
US10757088B2 (en) YARN REST API protection
JP5543010B1 (ja) 所定のサーバに対してログインを要求するログイン要求装置及び方法、並びにこれらに用いられるプログラム
US10891386B2 (en) Dynamically provisioning virtual machines
KR101977428B1 (ko) 애플리케이션용 콘텐츠 핸들링 기법
JP2014526728A (ja) プロセス毎ネットワーキング機能
De Ryck et al. A security analysis of next generation web standards
US20130061316A1 (en) Capability Access Management for Processes
Raval et al. Permissions plugins as android apps
US8732830B2 (en) Scripting engine externalized function execution control
JP6257085B2 (ja) 所定のサーバに対してログインを要求するログイン要求装置及び方法、並びにこれらに用いられるプログラム
Xue et al. A privacy protection model for transparent computing system
JP6328290B2 (ja) 端末、アクセス制限方法およびプログラム
JP6124627B2 (ja) 端末、アクセス制限方法およびプログラム
CN103117992A (zh) 应用的内容处理

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161206