(57)【要約】  以下のように動作するコンピューティング・デバイス。アプリケーション・ソフトウェアは一意のソフトウェア識別子を含み、該ソフトウェア識別子は、（どのアプリケーションソフトウェアにも割当て可能な）非保護範囲、或いは、（デジタル署名されたソフトウェアによってのみ利用される）保護範囲から取得されたものである。インストールの際は、一意のソフトウェア識別子が、既にデバイスにインストール済のソフトウェアに割り当てられた識別子と衝突しないように検証され、もし、ソフトウェア識別子が保護範囲からのものであれば、インストールされるソフトウェアはデジタル的に署名されている。一意の識別子の所有権の検証は、アプリケーションが署名される際にも実行される。
2009505196.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・デバイスの動作方法であって、
ａ．前記デバイス上で動作するアプリケーション・ソフトウェアにおける全ての実行ファイルは、格納データや前記デバイス上の他のリソースへのアクセスが許可される前に前記デバイスによりチェックされる内蔵の自己証明を含んでいなければならず、
ｂ．自己証明は、グローバル一意識別子（ＧＵＩＤ）の形式を有し、
ｃ．前記デバイス上で有効とされるＧＵＩＤの範囲は、保護範囲と非保護範囲に分割され、
ｄ．製造時に前記デバイスに含まれないアプリケーション・ソフトウェアは全て、実行可能となる前に単一のコンポーネント（インストーラ）により前記デバイスにインストールされなければならず、
ｅ．アプリケーション・ソフトウェアは、インストール前にインストーラによって認証されていなければならないデジタル署名により、サインされていてもよいし、サインされていなくてもよく、
ｆ．製造時或いは、その後のいずれの時点においても、インストーラは必ず、前記デバイスにインストールされるべきソフトウェア内のどんな実行ファイルのＧＵＩＤも、該デバイスに既にインストールされているどの実行ファイルのＧＵＩＤと一致しないようにし、
ｇ．インストーラは、有効なデジタル証明により署名されていない限り、保護範囲内のＧＵＩＤを有する実行ファイルを有するアプリケーション・ソフトウェアはインストールしない
ことを特徴とする方法。
【請求項２】
請求項１に記載の方法に従って動作するように構成されたコンピューティング・デバイス上で実行されるソフトウェアの生成方法であって、
アプリケーションは、ソフトウェアの所有者、製造者或いは創作者、または、それらが知るところの権限のあるエージェントのいずれかに割り当てられていないＧＵＩＤを有する実行ファイルを含む場合、デジタル的に署名されない
ことを特徴とする方法。
【請求項３】
請求項１に記載の方法に対応して動作するように構成されたコンピューティング・デバイス。
【請求項４】
請求項２に記載の方法に対応してソフトウェアを生成するように構成されたコンピューティング・デバイス。
【請求項５】
コンピューティング・デバイスを請求項１に記載の方法に従って動作をさせるか、或いは、コンピューティング・デバイスに請求項２又は３に記載の方法に従ったソフトウェアを製造させる、オペレーティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、より安全なコンピューティング・デバイスを提供するためのコンピューティング・デバイスの動作手段を開示する。特には、アプリケーションソフトウェアに実行時間における識別子の証明を提供することを可能とする改善された方法を提供する、コンピューティング・デバイスの動作手段を開示する。
【背景技術】
【０００２】
コンピューティング・デバイスとの語には、デスクトップコンピュータ、ラップトップコンピュータ、ＰＤＡ、携帯電話、スマートフォン、デジタルカメラ、デジタル音楽プレーヤが含まれるが、これらに限定されるものではない。コンピューティング・デバイスにはまた、多くの他の工業的、家庭的な電子機器とともに、上述の１つ以上のクラスのデバイスの機能を集約した集約型のデバイスも含まれる。
【０００３】
コンピューティングデバイスの所有者或いはユーザが、新規アプリケーションや新規機能を追加するためにソフトウェアのインストールを行うことが可能なコンピュータデバイスは、オープンデバイスと呼ばれる。このようにしてデバイスの利便性を拡張することは明らかに利益がある一方で、その利便性は所有者やユーザにとって重大な安全性の危険をもたらす可能性があることも明らかである。コンピューティング・デバイスが他のデバイスにネットワークを介して接続する場合、そのリスクはネットワークに接続する他の全てのデバイスにまで拡張されうるものであって、ネットワーク自体の完全性を脅かすものとなりかねない。
【０００４】
今や、悪意のあるプログラム（或いは、マルウェア）がオープン・コンピューティング・デバイスに影響を及ぼす重大なリスクが存在することが、広く知られている。近年のインターネット記事（http://en.wikipedia.org/wiki/Malware）は、１１種の異なるマルウェアを特定して記述しており、マルウェアには、ウィルス(Viruses)、ワーム(Worms)、ワビット(Wabbits)、トロイ(Trojans)、バックドア(Backdoors)、スパイウェア(Spyware)、エクスプロイット(Exploits)、ルートキット(Rootkits)、キーロガー(Key Loggers)、ダイヤラ(Dialers)、ＵＲＬインジェクタ(URL injectors)が含まれる。
【０００５】
オープン・コンピューティング・デバイスは一般的に、オペレーティングシステム（ＯＳ）を備えている。システム・ハードウェアを管理したり、実行アプリケーション・ソフトウェアの動作を可能とする共通に利用される設備のプラットフォームを提供したりするだけでなく、近年のオペレーティング・システムは、そのようなアプリケーションソフトウェアのライフサイクルを管理するための機能も提供している。オペレーティング・システムは、実行に先だってアプリケーション・ソフトウェアをロードし、アプリケーションが終了した場合にはリソースを解放し、そのようなソフトウェアのインストール及び削除の両方を取り扱う。
【０００６】
オペレーティング・システムは、それゆえに、様々なタイプのマルウェアからプログラム可能なコンピューティング・デバイスを保護することに自然と労力を裂いている。好ましく設計され、プラットフォームの安全性に注力したオペレーティング・システムは、
ａ．マルウェアがデバイスにインストールされるのを妨げる措置を講じ、
ｂ．マルウェアがデバイスに辿り着いた場合に、自動的に感染を検出し、
i. マルウェアの実行を妨げる措置を講じ、マルウェアが実行された場合に
ii.マルウェアが与えるダメージを制限する措置を講ずるべきである。
【０００７】
上記の機能を提供するための公知の技術は数多く存在する。これらの技術は、マルウェア或いはマルウェアに感染したソフトウェアを識別し、それらがデバイスにインストールされることを妨げることを目的とする。それらは一般的に、認証技術と証明技術の組合せに依存しており、境界セキュリティ（perimeter security）を提供する。インストールされるべきアプリケーションは、通常は改竄を検知するための、創作者が良好な状態であることを確認するための検証可能な署名済証明書、及び、パッケージコンテンツの１以上のハッシュあるいは他のタイプのメッセージダイジェストと共にパッケージ化されている。アプリケーションの出所が安全であることがその完全性と共に一度確認されれば、そのアプリケーションは高い保証の下にコンピューティング・デバイスに安全にインストールすることができる。
【０００８】
上述の機能（ｂ）を提供するための技術はより変化に富んでいる。当該技術では、アクセス制御リストを利用することができる。このリストによれば、デバイスのユーザは、センシティブな操作を可能とするソフトウェアを利用するためには特権が認められる必要があり、これらの特権が認められない場合には係る操作へのアクセスは拒絶されてしまう。このアプローチは、デバイスのユーザのみをモニターしており、ユーザが実行するソフトウェア・アプリケーション自体をモニタしていない点で影響を受けやすい。
【０００９】
機能（ｂ）を提供するためのよりよいアプローチは、ソフトウェア・ケーパビリティ・モデルである。これは、“セキュアな移動体無線装置”についての国際特許出願ＰＣＴ／ＧＢ０３／０２３１１号と、“保護されたファイルシステムを有する移動体無線装置”についての特許文献２とに開示されている。
【００１０】
国際特許出願ＰＣＴ／ＧＢ０３／０２３１１号は、どうすれば、コンピューティング・デバイス上で実行可能なソフトウェアの全てについてセンシティブな操作を行うために所定のソフトウェア・ケーパビリティの許可を必須のものとすることができるか、について記述している。そのようなアプリケーション・ソフトウェアの全てのアクティビティは、転覆の心配のないデバイス上のコアソフトウェアであるＴＣＢ（Trusted Computing Base）により監視されている。ＴＣＢは典型的には、アプリケーション・ランチャーとファイルシステムとを含む。
【００１１】
国際特許出願ＰＣＴ／ＧＢ０３／０２３１３号は、どのようにしてケーパビリティ・モデルをコンピューティング・デバイスのデータストレージシステムの保護に拡張するかを記載している。具体的には、身元証明やデータにアクセスするための特別のケーパビリティを要求することにより、アプリケーションソフトウェアが、該アプリケーションソフトウェアに属しない任意のプライベートデータにアクセスすることを妨げるように、データストレージシステムを領域分割している。
【００１２】
ここで、実行可能なソフトウェアのアイテムにより提供されるこの身元証明は、アクセス制御機構によって要求される身元証明と同一のものではなく、デバイスのユーザ或いは所有者がアクセス時に提供するようなパスワードやパスフレーズ、或いは生体データの形態を採るものではないし、係る形態を採ることはできない点は理解しておく必要がある。その代わり、この身元証明は、グローバルに一意に保証される識別子の形態を採ることができ、実行可能なソフトウェアのビルト時に許可されている。
【００１３】
従来的な身元証明は、デジタル的に署名された証明書、或いは、グローバル一意識別子（ＧＵＩＤ）である。
【００１４】
デジタル的に署名された証明書は、ソフトウェアインストール時に利用されるが、非常に計算が重く、コンピューティング・デバイスの実行時に継続的に使用するには負荷が大きすぎる。
【００１５】
それとは対照的に、ＧＵＩＤは迅速で簡単に検証することが可能であり、バイナリ実行ファイルに含まれ、簡単な算術比較により実行時においても簡単に検証可能である。ＧＵＩＤは既に数多くのコンピューティング・デバイスにおいて利用されている。例えば、マイクロソフトは１２８ビットＧＵＩＤをいくつかの目的のために利用しており、これらは中央集約型のＩＥＥＥイーサネット(登録商標)ＭＡＣアドレス割当てデータベースに間接的に依存しており、そこから生成される（http://standards.ieee.org/regauth/oui/index.shtml参照）。このソリューションの完全性は、ＩＥＥＥ ＧＵＩＤ割当てアルゴリズムを尊重する全てのユーザに依存しており、ＭＡＣアドレスが成りすましやスプーフィング攻撃に対してなんら防御能力を有しないことは良く知られている。この特徴を該手法に追加することで、二次的な中央データベース管理の追加的な暗号化手法における認証問題を解決することができよう。
【００１６】
（ＯＳバージョン９．０より前の）シンビアンＯＳは、３２ビットＵＩＤを発行するために協調動作する中央データベースを利用している。パームＯＳ４のキャラクタ生成ＩＤ（Palm OS 4 character Creator IDs）も、同様のメカニズムを利用していた。これらのケースでは認証は適用も実施もされていなかった。実際、どのソフトウェアも、どんな識別でも使用することができたし、ＧＵＩＤを特定の識別された実行ファイルのために限定して利用することもなかった。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
当業者には明らかであるが、ＧＵＩＤを安全なものとするためには、中央の識別子割当機関が必要とされるだけでなく、認証及び証明方法は本質的なものであり、これらは、申請者及び各利用に対してＧＵＩＤが許可されることを必要としている。
【００１８】
ここでは、仮に負荷の低い方法が好ましいとしても、潜在的に負荷の高い手続を避けるための明白な方法は存在しない。さらに、ケーパビリティのない署名されていないソフトウェアは、理想的にはオープンプラットフォームに自由にインストール可能であるべきであるが、係る要請と、センシティブな安全性を高めるべきアプリケーションの保護の必要性とを調整するための明白な方法はない。
【課題を解決するための手段】
【００１９】
本発明の第１の側面によれば、コンピューティング・デバイスの動作方法が提供される。そこでは、
ａ．デバイス上で動作するアプリケーション・ソフトウェアにおける全ての実行ファイルは、格納データやデバイス上の他のリソースへのアクセスが許可される前にデバイスによりチェックされる内蔵の自己証明を含んでいなければならず、
ｂ．自己証明は、グローバル一意識別子（ＧＵＩＤ）の形式を有し、
ｃ．デバイス上で有効とされるＧＵＩＤの範囲は、保護範囲と非保護範囲に分割され、
ｄ．製造時にデバイスに含まれないアプリケーション・ソフトウェアは全て、実行可能となる前に単一のコンポーネント（インストーラ）によりデバイスにインストールされなければならず、
ｅ．アプリケーション・ソフトウェアは、インストール前にインストーラによって認証されていなければならないデジタル署名により、サインされていてもよいし、サインされていなくてもよく、
ｆ．製造時或いは、その後のいずれの時点においても、インストーラは必ず、デバイスにインストールされるべきソフトウェア内のどんな実行ファイルのＧＵＩＤも、該デバイスに既にインストールされているどの実行ファイルのＧＵＩＤと一致しないようにし、
ｇ．インストーラは、有効なデジタル証明により署名されていない限り、保護範囲内のＧＵＩＤを有する実行ファイルを有するアプリケーション・ソフトウェアはインストールしない。
【００２０】
本発明の第２の側面によれば、第１の側面の方法に従って動作するように構成されたコンピューティング・デバイス上で実行されるソフトウェアの生成方法を提供する。アプリケーションは、ソフトウェアの所有者、製造者或いは創作者、または、それらが知るところの権限のあるエージェントのいずれかに割り当てられていないＧＵＩＤを有する実行ファイルを含む場合、デジタル的に署名されない。
【００２１】
発明の第３の側面によれば、第１の側面の方法に対応して動作するように構成されたコンピューティング・デバイスが提供される。
【００２２】
発明の第４の側面によれば、コンピューティング・デバイスに、発明の第１の側面に従って動作をさせるか、或いは、発明の第２の側面に従ったソフトウェアを製造させる、オペレーティング・システムが提供される。
【発明を実施するための最良の形態】
【００２３】
添付図面を参照して、本発明の実施形態を一例として説明する。
【００２４】
本質的に、本発明は、デバイスをオープンデバイスとして維持しつつ、センシティブなソフトウェアを保護するための負荷の少ない方法を提供するものである。
【００２５】
・ここで、ＧＵＩＤを境界セキュリティと結合してデバイス上のプライベートデータを保護するために利用する場合、インストール対象の実行ファイルがローカルで一意の識別子を有することの確認は、境界セキュリティのために必要である、デバイスにおいて利用されないグローバルに一意のＩＤのスプーフィングを含めたデータを盗み出す行為は、実際には存在しないデータに対する攻撃である。
【００２６】
・いくつかのソフトウェアは、高度にセンシティブな動作を行い、高度にセンシティブなデータを保存するが、全てのソフトウェアがこのタイプに属するものではない。例えば、ホームバンキングのアプリケーション・ソフトウェアに属するデータを保護するセキュリティ方法は、アーケードゲームに適用可能である必要はない。よって、ＧＵＩＤの範囲を、高度セキュリティのアプリケーションのために確保されるセクションと、セキュリティ度の低いアプリケーションのために確保されるセクションとに分割することで、特定のカテゴリのソフトウェアに適用される締め付けを緩くすることができる。
【００２７】
本発明は、以下のような３つの関連する側面を有する。
【００２８】
１．実行可能なソフトウェアがコンピューティング・デバイス上にインストールされる場合は常に、ローカルの一意性の検証がＧＵＩＤに対して行われる。もし、他のソフトウェアユニットが既にそのＧＵＩＤを利用してインストールされている場合、新しいインストールは失敗に終わる。この手続は図１に示されている。コンピューティング・デバイスが、全ての実行可能なソフトウェアが単一の指定ソフトウェアインストーラを必ず利用する基本的な境界セキュリティ方法を採用すると、この方法はそれ自体で、全てのＧＵＩＤがデバイス上で一意であり、それゆえに既にインストールされているアプリケーションがスプーフィングされず、デバイス上の既存のＧＵＩＤにより保護されている全てのプライベートデータが、依然としてプライベートであり続けることを保証するのに十分である。
【００２９】
２．ＧＵＩＤの数値範囲のサブセット（例えば、３２ビットＵＩＤの範囲の下位半分）は、署名されたアプリケーション専用の範囲として確保しておくことができる。本発明の文脈において、この範囲を”保護範囲”と呼ぶ。デバイス内のインストーラは、この範囲のＧＵＩＤを有するソフトウェアのインストールを、それが署名されていない限りは拒否するであろう。この手続は図１において記載されている。
【００３０】
３．アプリケーションが署名されると、認証チェックでは、署名される実行ファイルが、ソフトウェアの所有者に割り当てられていないＧＵＩＤを必ず利用しないようにする。この方法は、図２に示されている。
【００３１】
以上をまとめると、これらの方法は以下のことを意味する。
【００３２】
ａ．全てのソフトウェアは、どのような単一デバイス上であっても、ローカルな一意性が保証される。
【００３３】
ｂ．署名されたソフトウェアは、グローバルな一意性が保証される。
【００３４】
ｃ．保護された識別子は、３２ビット割当て空間において一意であり続ける。
【００３５】
本発明は、コンピューティング・デバイスの従前の動作方法に対して明白なアドバンテージを提供するものである。
【００３６】
１．識別子を検証するために暗号化メカニズムが必要とされない。
【００３７】
２．署名されていないソフトウェアのインストール時でも、暗号化メカニズムが必要とされない。
【００３８】
３．全てのソフトウェアは少なくともローカルで一意な識別子を有し、よって、ローカルの全てのプライベートデータが保護されることが保証される。
【００３９】
４．署名されていないソフトウェアが、ＤＯＳ（denial of service）アタック、或いは、他のどんな目的を持ったものであっても、保護範囲に属するＧＵＩＤを利用する署名されたソフトウェアに成りすますことができないことを保証する。
【００４０】
５．一般に、ＧＵＩＤの実行時のチェックでは、それらがどのようにして割り当てられたかを考慮する必要がない。
【００４１】
要するに、アプリケーション・ソフトウェアは一意のソフトウェア識別子を含み、該ソフトウェア識別子は、（どのアプリケーションソフトウェアにも割当て可能な）非保護範囲、或いは、（デジタル署名されたソフトウェアによってのみ利用される）保護範囲から取得されたものである。インストールの際は、一意のソフトウェア識別子が、既にデバイスにインストール済のソフトウェアに割り当てられた識別子と衝突しないように検証され、もし、ソフトウェア識別子が保護範囲からのものであれば、インストールされるソフトウェアはデジタル的に署名されている。一意の識別子の所有権の検証は、アプリケーションが署名される際にも実行される。
【００４２】
本発明を特定の実施形態と関連して説明したが、特許請求の範囲において定義される本発明の範囲から逸脱することなく、修正を行ってもよいことは理解されるであろう。
【図面の簡単な説明】
【００４３】
【図１】発明の実施形態に対応したコンピューティング・デバイスの動作方法を示すフローチャートである。
【図２】発明の実施形態に対応したソフトウェアパッケージを効果的に署名するコンピューティング・デバイスの動作方法を示すフローチャートである。
【図１】
2009505196.tif 000003
【図２】
2009505196.tif 000004
【国際調査報告】
2009505196.tif 000005
2009505196.tif 000006
2009505196.tif 000007