(57)【要約】  ファイルの暗号化ハッシュまたはその他の識別子を用いて、１つまたは複数のコンテントランク付けを見出すための、コンピュータ上のファイルの認証を提供する。ソースランク付けおよびパブリッシャランク付けと併せてコンテントランク付けを使用して、ユーザ、製造者または法人ＩＴ部門が設定する認証ポリシーに対してファイルを評価する。ランク付けが低いという理由で疑わしいファイルは、コンピュータ上で実行することを許可されない。ほとんど情報が得られないファイルは、許可するか否かをユーザの判定に委ねる。ランク付けサービスは、編集者のまたはユーザの調査に基づいて集計的コンテントランク付けを提供し、評価中のファイルの暗号化ハッシュに基づいてそれらの検索可能なランク付けにインデックスを付与する。ランク付けサービスは、許可リストまたは排除リストを提供するか、またはファイルの暗号化ハッシュを含むクエリに個別に応答することができる。
2008535057.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能コードを含むファイルを認証するためのコンピュータに実装される方法であって、
認証ポリシーを確立することと、
前記ファイルのためのコンテント従属識別子を決定することと、
前記ファイルに関する証拠を検索することであって、前記検索は前記コンテント従属識別子に基づく検索を含むことと、
前記認証ポリシーを用いて前記ファイルを認証するか否かを決定することと、
を含むことを特徴とする方法。
【請求項２】
前記証拠を検索することが、１つまたは複数のランク付けサービスに問い合わせることを含むこと、
を特徴とする請求項１に記載の方法。
【請求項３】
前記証拠を検索することが、許可リストまたは排除リストのうち少なくとも１つを検索することを含むこと、
を特徴とする請求項１に記載の方法。
【請求項４】
前記ファイルに関する証拠を検索することであって、前記検索は前記ファイルの署名付きパブリッシャ（publisher）に基づくことをさらに含むこと、
を特徴とする請求項１に記載の方法。
【請求項５】
前記ファイルに関する証拠を検索することであって、前記検索は前記ファイルのソースアドレスに基づくことをさらに含むこと、
を特徴とする請求項１に記載の方法。
【請求項６】
前記証拠のコレクションを検索することであって、ＩＰアドレスの少なくとも一部を検索することを含むこと、
を特徴とする請求項５に記載の方法。
【請求項７】
前記証拠の集合体を検索することが、ドメイン名の少なくとも一部を検索することを含むこと、
を特徴とする請求項５に記載の方法。
【請求項８】
前記コンテント従属識別子が、前記ファイルのコンテントの暗号化ハッシュを含むこと、
を特徴とする請求項１に記載の方法。
【請求項９】
コンピュータが受信中の前記ファイルに応答して、認証ポリシーを評価することをさらに含むこと、
を特徴とする請求項１に記載の方法。
【請求項１０】
前記ファイルを認証する旨の決定に応答して、その認証ファイルの認証を格納することをさらに含むこと、
を特徴とする請求項１に記載の方法。
【請求項１１】
ファイルのランク付けを提供するためのコンピュータに実装される方法であって、
前記ファイルに関するコンテント従属識別子を含むランク付け要求を受信することと、
前記ファイルに関する証拠を検索することであって、前記検索はコンテント従属識別子に基づくことと、
ランク付け要求に対する応答を提供することであって、前記応答は前記ファイルのランク付けを含むことと
を含むことを特徴とする方法。
【請求項１２】
前記コンテント従属識別子は、前記ファイルのコンテントの暗号化ハッシュを含むこと、
を特徴とする請求項９に記載の方法。
【請求項１３】
前記ランク付け要求は、前記ファイルに関するソースアドレスをさらに含み、この方法は、
ソースアドレスのランク付けを検索することであって、前記検索は前記ファイルのソースアドレスに基づくこと
をさらに含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記ランク付け要求は、前記ファイルに関する情報として前記ファイルに署名するために使用した公開キーをさらに含み、この方法は、
前記ファイルのパブリッシャのランク付けを検索することであって、前記検索は前記公開キー情報に基づくこと
をさらに含むことを特徴とする請求項９に記載の方法。
【請求項１５】
前記応答は、前記ファイルに関するプライバシー情報、前記ファイルに関するアンインストール情報、前記ファイルに関するウィルス情報、または前記ファイルに関する自動更新情報のうち少なくとも１つをさらに含むこと、
を特徴とする請求項９に記載の方法。
【請求項１６】
コンピュータ実行可能コードを含むファイルを認証するためのシステムであって、
前記ファイルと前記ファイルに関する情報とを格納するように構成された記憶要素と、
前記記憶要素に結合された処理装置であって、前記ファイルのためのコンテント従属識別子を決定し、前記コンテント従属識別子を用いて前記ファイルに関する情報のための証拠の集合体を検索し、検索結果と認証ポリシーとに基づいて前記ファイルを認証するか否かを決定するように構成された処理装置と、
を含むことを特徴とするシステム。
【請求項１７】
前記コンテント従属識別子が、前記ファイルのコンテントの暗号化ハッシュであること、
を特徴とする請求項１６に記載のシステム。
【請求項１８】
前記処理装置はさらに、前記ファイルのソースに関する情報を前記記憶要素中に格納し、前記ファイルのソースに関する情報を検索し、ソース検索の結果と認証ポリシーとに基づいて前記ファイルを認証するか否かを決定するように構成されていること、
を特徴とする請求項１６に記載のシステム。
【請求項１９】
前記処理装置はさらに、前記ファイルのパブリッシャに関する情報を前記記憶要素中に格納するように構成されており、前記パブリッシャは前記ファイルに結合している公開キーに基づいて決定されること、
を特徴とする請求項１６に記載のシステム。
【請求項２０】
前記処理装置はさらに、前記コンテント従属識別子を含むクエリを形成し、前記クエリを１つまたは複数のランク付けサービスに送信し、１つまたは複数の前記ランク付けサービスから前記ファイルのランク付けを受信するように構成されていること、
を特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様は、ソフトウェアコードをインストールまたは実行する前にその信頼性を確立することに関する。
【背景技術】
【０００２】
ユーザおよびオペレーティングシステムがその防止に懸命に取り組んだとしても、パーソナルコンピュータは悪意のあるソフトウェアの温床となることがある。いわゆるマルウェア（例えば、ワーム、トロイの木馬、ダウンロードなど）は、コンピュータを攻撃し、ファイルを削除し、個人情報を盗用し、ユーザの交信先で増殖し、概して疑うことのないユーザを困らせることができる。コンピュータがマルウェアに感染すると、作業成果の喪失、コンピュータ性能の低下、および混乱を収拾しようとして費やす時間のため、ユーザの生産性が低下する。このような生産性の低下によって，個人および企業は、毎年多額の時間と費用を負担することになる。
【０００３】
図２に、コンピュータ２０９に対する各種ソフトウェアのエントリポイントを示している。各エントリポイントは、マルウェアおよびその他の望ましくないソフトウェアがコンピュータ２０９上にコピーまたはインストールされうる通信路を表している。マルウェアという用語は、故意の悪質なソフトウェアという意味で使用しており、コンピュータ２０９が属するユーザまたは企業の利益に反して実行され、不埒な目的を有する、コンピュータウイルス（例えば、ワーム、トロイの木馬）、キーストローク・ロガー、アドウェア、スパイウェア、およびその他のプログラムを含むことができる。
【０００４】
望ましくないソフトウェアすべてが、必ずしもマルウェアであるとは限らない。このようなソフトウェアは、不埒な目的は有しないが、望ましくない副作用を有することがある。例えば、企業によっては、従業員がインスタントメッセージソフトウェアを使用することを禁じているところがある。このようなプログラムは集中力を妨げることがあるからである。両親および別の組織は、ピアツーピアのファイル交換ネットワークがそのコンピュータには不適切であると気付くことがある。おそらく、ダウンロードからコンピュータウイルスを捕捉するためであろう。それがなければ好意的なソフトウェアが望ましくないと見なされる別の理由には、ファイルサイズが大きすぎる、ネットワーク通信量が過度になる、システムが不適合を起こす、年齢によっては不適切な内容である、あるいはそのプログラムが単に迷惑なだけである、などがあげられる。
【０００５】
図２に戻ると、実行可能コードをコンピュータ２０９にダウンロード、コピー、またはそうでなければインストールすることのできるエントリポイントが多数ある。ファイアウォール２０２によるフィルタリングをしていない、または部分的にしかフィルタリングしていないに関わらず、マルウェアおよびその他の望ましくないソフトウェアの最も一般的なソースは、おそらくインターネット２０１であろう。ウェブブラウザ、電子メールプログラム、ファイル交換ネットワーク、インスタントメッセージプログラム、インターネットリレーチャット（ＩＲＣ）、およびインターネットに接続するその他のプログラムを介して、意図的にまたは意図せず、実行可能コードをダウンロードすることがある。通常、ユーザは意図せずインターネットからマルウェアのダウンロードを開始する（他の望ましくないソフトウェアを意図的にダウンロードすることもある）ものの、マルウェアによっては、ハッカーまたは別のコンピュータが、コンピュータ２０９上に存在するソフトウェア脆弱性を介して、コンピュータ２０９に注入することが可能である。
【０００６】
ネットワークに接続しているコンピュータ２０９への他のソフトウェアエントリポイントは、ＬＡＮ接続を介して直接または間接的に接続されている可能性のある第２のコンピュータ２０３である。ユーザが第２のコンピュータ２０３からファイルのコピーを開始する場合もあれば、第２のコンピュータ２０３がコンピュータ２０９へ自動的にファイルをコピーする場合もある。第２のコンピュータ２０３は、サーバ、またはネットワークによって接続されるその他のセキュリティが弱められているコンピューティング装置である可能性がある。ユーザは、自分自身のネットワークの中から来る実行可能コードを信用する傾向があり、その潜在的な脆弱性がいつくかのマルウェアによって利用されてきたのである。
【０００７】
マルウェアおよび他の望ましくないソフトウェアの追加のソースには、音楽プレーヤまたは携帯電話（図示せず）等の、携帯情報端末２０４または他の同期装置が含まれている可能性がある。また、ＵＳＢドライブ２０５等の携帯メモリ装置、または外付けハードディスク装置（図示せず）もソフトウェアのソースとなりうる。また、ＤＶＤ  ＲＯＭ２０６、ＣＤ  ＲＯＭ、フロッピィディスクなど、従来のソフトウェアのソースも、望ましくないコードを含むことがある。結局のところ、十分な経験を有するユーザ２１０でさえも、ファイルを１つもコピーしていないにもかかわらず、悪意のある、または望ましくないコードを直接コンピュータ２１０に入力してしまう可能性がある。このようなユーザ２１０でさえ、例えば、スクリプトをタイプ入力し、それを実行してコンピュータ２０９の上で使用したキーストロークまたはクレジットカード番号をすべて追跡される可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
パーソナルコンピュータのユーザの範囲（spectrum）は、それぞれがコンピュータセキュリティに対して払う注意に基づいて、３つの範疇に分類することができる。一端には、極めて熱心なユーザがいる。彼らは、ファイアウォールおよびアンチウィルスプログラムを実行し、直ちにパッチを適用し、ダウンロードのデジタル証明書を点検し、ソフトウェアをすべてインストール前に調査するユーザである。もう一端には、無頓着なユーザがいる。彼らは、何もかもインストールし、信頼性の低いネットワーク上でファイルを交換し、セキュリティメッセージを無視するユーザで、彼らのマシンは、まさしく好意的なものと悪意のあるものの両方のソフトウェアの混合体である。
【０００９】
この両極端の中間に、ユーザ全体の最大のグループがある。これらの真面目なユーザは、自分のコンピュータを安全に保ちたいとは思うが、新しいソフトウェアまたはマルウェアの調査に全力を注ぐ時間もないし、各インストールの決定についてその意味合いを充分には理解していない。ユーザの善意にもかかわらず、時には知識がないために、容易に騙されてマルウェアをインストールしてしまう。公知のマルウェアのトリックを回避するユーザであっても、マルウェアが急速に進化するため、ソフトウェアによっては回避することができない。一旦感染すると、これらのユーザは、悪意のあるソフトウェアの痕跡をすべて発見して削除する苦労を味わうことになる。
【００１０】
つまり、真面目なパーソナルコンピュータのユーザは、マルウェアに対して自分のコンピュータを防御するための新規な方法およびシステムを必要とする。これらユーザは、各パブリッシャおよびアプリケーションを調査するのに多大の時間を費やすことなく、新規プログラムのインストールについて信頼性のある決定をすることができるようになる必要がある。これらユーザは、自分のコンピュータを、マシンがコンピュータ工場出荷時に備えていたと思われる既知の良好な状態に保持する信頼性の高い方法を必要とする。これらのユーザは、ソフトウェアの熟練者になることなく、マルウェアの作者が用いたトリックおよび／またはソフトウェアに伴う別の問題を回避することができることを必要とする。マルウェアおよび他の望ましくないソフトウェアの問題に対する解決策が有効であるためには、上述のエントリポイントすべてではなくとも、その大部分を介して到着するソフトウェアから、コンピュータ１１０を保護することができなければならない。
【課題を解決するための手段】
【００１１】
以下で、本発明のいくつかの態様について基本的理解を与えるため、簡単に概要を示す。この概要は、本発明の広範な概観ではない。本発明の重要または決定的な要素を同定するものでもなければ、本発明の範囲を限定するものでもない。以下の概要は，単に本発明のいくつかの考え方を、以下のより詳細な記述に対する前置として、簡略な形で示しているに過ぎない。
【００１２】
本発明の第１の態様は、コンピュータ実行可能コードを含むファイルの認証を提供する。ファイル、そのファイルのソースとパブリッシャ情報、および／またはその他の証拠について、１つまたは複数のコンテントランク付けの評価を含む可能性のある認証ポリシーを確立する。コンテントランク付けは、例えば、ファイルの暗号化ハッシュを作成し、そのハッシュに基づいてランク付けサービスに問い合わせることによって求めることができる。ファイルのハッシュに加えて、１つのファイルに対して識別子（例えば、公開キー、アプリケーション名、など）の１つまたは組合せを用いることができる。
【００１３】
本発明の第２の態様により、ファイルのランク付けを提供することができる。ファイルの暗号化ハッシュ、その他の識別子、または識別子の組合せを含む可能性のあるランク付け要求を受信する。このハッシュは、コンテントランク付け検索のための検索キーとして使用することができる。任意のコンテントランク付けが見出されると、それに基づいて応答を生成することができる。応答には、ソースおよび／またはパブリッシャのランク付けをも含むことができる。
【００１４】
本発明のこれらおよびその他の態様は、以下の発明を実施するための最良の形態において、図面と関連づけて説明するものとする。
【発明を実施するための最良の形態】
【００１５】
図示されたさまざまな実施形態を以下で説明するにあたり、添付図面を参照する。添付図面は、説明の一部を形成するものであり、本発明が実践されうるさまざまな実施形態を図解により示している。本発明の範囲と精神から逸脱することなく、他の実施形態を使用することができ、かつ構造的および機能的な変更を行うことができることが理解されよう。以下の説明において、一定の項目を互いに接続する、または接続されると説明しているが、これらの項目は、直接または間接のいずれでも接続されうると理解されたい。
【００１６】
添付図面を考慮して以下の記述を参照することにより、本発明およびその利点をさらに完全に理解することができる。なお、添付図面において、類似の参照番号は類似の機能を示している。
【００１７】
動作環境
図１は、本発明の態様を実施することのできる適切なコンピューティングシステム環境１００の例を示している。コンピューティングシステム環境１００は、適切なコンピューティングシステム環境の１例に過ぎず、本発明の使用または機能性に関して何ら制限を示唆するものではない。また、コンピューティングシステム環境１００は、図示されたコンピューティングシステム環境１００に示す構成要素のいずれか１つまたは組合せに対し、何らかの従属性または必要条件を有すると解釈してもならない。
【００１８】
本発明は、多数の他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明の使用に適する可能性のある公知のコンピューティングシステム、環境、および／または構成の例としては、以下に限定するものではないが、パーソナルコンピュータ（ＰＣ）、サーバコンピュータ、携帯情報端末（ＰＤＡ）やタブレットＰＣまたはラップトップＰＣなどその他の携帯用装置、マイクロプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたは装置の何れかを含む分散コンピューティング環境などがある。
【００１９】
本発明の態様は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令という一般的な文脈において説明することが可能である。一般的に、プログラムモジュールには、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。また、本発明は分散コンピューティング環境で動作可能で、通信ネットワークを介して連結されているリモート処理装置によってタスクが実行される。分散コンピューティング環境において、プログラムモジュールは、ローカルおよびリモート双方の、メモリ記憶装置を含むコンピュータ記憶媒体の中に置かれる。
【００２０】
図１を参照すると、図示されているコンピューティングシステム環境１００は、コンピュータ１１０の形態を取る汎用コンピューティング装置を含む。コンピュータ１１０の構成要素は、これらに限定するものではないが、処理装置１２０と、システムメモリ１３０と、システムメモリ１３０を含む各種システム構成要素を処理装置１２０に結合するシステムバス１２１とを含む。システムバス１２１は、メモリバスまたはメモリコントローラを含むバス構造のいくつかの型のいずれか、周辺バス、および各種のバスアーキテクチャのうちいずれかを用いるローカルバスであってよい。１例として、限定するものではないが、このようなアーキテクチャには、インダストリスタンダードアーキテクチャ（ＩＳＡ）バス、マイクロチャンネルアーキテクチャ（ＭＣＡ）バス、エンハンスドＩＳＡアーキテクチャ（ＥＩＳＡ）バス、ビデオエレクトロニクススタンダーヅアソシエーション（ＶＥＳＡ）ローカルバス、アドバンストグラフィックポート（ＡＧＰ）バス、およびメザニンバスとしても知られているペリフェラルコンポーネントインタコネクト（ＰＣＩ）バスがある。
【００２１】
一般に、コンピュータ１１０は各種のコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータ１１０がアクセスすることのできる、揮発性、不揮発性、着脱可能、および着脱不可能な媒体など、任意の利用可能な媒体とすることができる。１例として、限定するものではないが、コンピュータ読取可能媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、揮発性、不揮発性、着脱可能、および着脱不可能な媒体を含み、コンピュータ読取可能な命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を格納するため、任意の方法または技術で実装される。コンピュータ記憶媒体は、これらに限定するものではないが、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリまたはその他のメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタルビデオディスク（ＤＶＤ）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、もしくは、所望の情報を格納するため使用することが可能でコンピュータ１１０がアクセスすることのできる任意のその他の媒体を含む。通信媒体は一般に、コンピュータ読取可能命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波等の変調データ信号または別の伝送機構で具現するもので、あらゆる情報配信媒体を含む。「変調データ信号」という用語は、その特性の１つまたは複数が、情報を信号の中に符号化する方法で設定または変更されている信号を意味する。１例として、限定するものではないが、通信媒体は、有線ネットワークまたは直接配線接続等の有線媒体と、音響、無線周波数（ＲＦ）（例えば、ブルートゥース、ＷｉＦｉ、超広帯域無線）、光（例えば、赤外線）、およびその他の無線媒体など無線媒体とを含む。あらゆる単一のコンピュータ読取可能媒体だけでなく、複数のコンピュータ読取可能媒体のあらゆる組合せもまた、コンピュータ読取可能媒体という用語の範囲内に含まれることを意図するものである。
【００２２】
システムメモリ１３０は、ＲＯＭ１３１およびＲＡＭ１３２等の、揮発性および／または不揮発性の形を取るコンピュータ記憶媒体を含む。基本入出力システム（ＢＩＯＳ）１３３は、一般にＲＯＭ１３１の中に格納されており、スタートアップ時などにコンピュータ１１０中の要素間で情報転送を補助する基本ルーチンを含む。ＲＡＭ１３２は一般に、処理装置１２０が即座にアクセスすることができ、かつ／または、ＲＡＭ上で処理装置１２０によって現在操作されている、データおよび／またはプログラムモジュールを含む。１例として、限定するものではないが、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を含むコンピュータ読取可能な命令の形式におけるソフトウェアを示している。
【００２３】
コンピュータ１１０は、その他のコンピュータ記憶媒体も含む。例としてあげるにとどめるが、図１には、着脱不可能な不揮発性磁気媒体に対して読取または書込を行うハードディスクドライブ１４１と、着脱可能な不揮発性磁気ディスク１５２に対して読取または書込を行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭ、ＤＶＤ等の着脱可能な不揮発性光ディスク１５６またはその他の光学式媒体に対して読取または書込を行う光ディスクドライブ１５５とが図示されている。図示されている動作環境に使用することのできるコンピュータ記憶媒体には、これらに限定するものではないが、磁気テープカセット、フラッシュメモリカード、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭ等が含まれる。ハードディスクドライブ１４１は一般に、インターフェース１４０など着脱不可能なメモリインターフェースを介してシステムバス１２１に接続されており、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インターフェース１５０など着脱可能なメモリインターフェースによってシステムバス１２１に接続されている。
【００２４】
上記の図１に示したドライブおよびそれに関連するコンピュータ記憶媒体によって、コンピュータ読取可能命令、データ構造、プログラムモジュールおよびその他のデータがコンピュータ１１０に格納される。例えば、図１において、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納しているものとして図示されている。なお、これらの構成要素は、それぞれオペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同一であることもあれば、異なることもある。図１においては、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７には異なる参照番号を割り当てて、これらが異なるコピーであることを示している。ユーザは、キーボード１６２や、通常マウス、トラックボールまたはタッチパッドと称されるポインティング装置１６１等の入力装置を介して、コンピュータ１１０にコマンドおよび情報を入力する。このようなポインティング装置は圧力情報を提供するが、入力の位置だけでなく、ポインティング装置をクリックまたはタッチするときに加えられる圧力も提供することが可能である。その他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナ等が含まれる。これらおよびその他の入力装置は、システムバス１２１に結合されているユーザ入力インターフェース１６０を介して処理装置１２０に結合されていることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）、またはＩＥＥＥ１３９４シリアルバス（ファイアワイア）など、その他のインターフェースおよびバス構造を用いて接続されていてもよい。また、モニタ１８４およびその他の型の表示装置が、ビデオアダプタ１８３等のインターフェースを介してシステムバス１２１に結合されている。ビデオアダプタ１８３は、それ自体の専用処理装置およびメモリに加えて、最新の２Ｄまたは３Ｄグラフィック能力を有することがある。
【００２５】
コンピュータ１１０はまた、デジタイザ１８５を含むことがあり、ユーザはスタイラス１８６を用いて入力を行うことができる。デジタイザ１８５は、モニタ１８４またはその他の表示装置に統合されているか、あるいはデジタイザパッド等の別個の装置の一部としてもよい。コンピュータ１１０は、スピーカ１８９およびプリンタ１８８等の、その他の周辺出力装置を含むこともあり、これらは出力周辺インターフェース１８７を介して接続されている場合がある。
【００２６】
コンピュータ１１０は、リモートコンピュータ１８０等の、１つまたは複数のリモートコンピュータに対する論理接続を用いて、あるネットワーク環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他の共通ネットワークノードであってよく、一般にコンピュータ１１０に関して上述した要素の多数またはすべてを含んでいるが、図１にはメモリ記憶装置１８１のみを図示する。図１に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、それらに加えて、または代替え方法として、インターネット等のその他のネットワークを含んでいてもよい。このようなネットワーク環境は、家庭、事務所、企業規模コンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【００２７】
ＬＡＮネットワーク環境において使用する場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続されている。ＷＡＮネットワーク環境において使用する場合、コンピュータ１１０は、インターネット等のＷＡＮ１７３の上で通信を確保するため、モデモ１７２またはその他の装置を含むことがある。モデム１７２は、内蔵または外付けのいずれであってもよく、ユーザ入力インターフェース１６０またはその他の適切な機構を介してシステムバス１２１に接続することができる。あるネットワーク環境において、コンピュータ１１０に関係して図示されているプログラムモジュール、またはそれらの一部が、リモート記憶装置１８１の中などにリモートで格納されることがある。例として、これに限定するものではないが、図１では、リモートアプリケーションプログラム１８２を、メモリ装置１８１に常駐するものとして図示している。示したネットワーク接続は図示のためのもので、コンピュータ間の通信連結を確立する別の手段を使用してもよいことは理解されるであろう。
【００２８】
アプリケーションのアイデンティティ
コンピュータ実行可能コードを正確に認識することにより、ファイル名に依存することなく、適切にソフトウェアを識別することができる。コンピュータ１１０上のコンピュータ実行可能コードは、ハードディスクドライブ１４１上またはその他の形態のメモリ中に格納されているかにかかわらず、事実上、従来のコンピュータファイルの中に常に格納されている。それぞれのファイルには、一般に読取可能でファイルのコンテントについて何らかの手掛かりを与えるファイル名を付けることができる。しかしながら、ファイル名は容易に変更することができるので、ファイルの中に格納する実行可能コードのアイデンティティに関して信頼性のある方法ではない。同一ファイル名を有する同一ファイルであっても、更新および改訂を有することがあるので、同一名のファイル（例えば、ｗｉｎｗｏｒｄ．ｅｘｅ）のコンテントが全く異なる実行可能コードの断片を含むことがある。その上、元のプログラムに悪意のあるコードを直接注入して、馴染みのアプリケーションの中のコードをデジタル的に修正してセキュリティが弱められる可能性がある。
【００２９】
ファイルのコンテントのハッシュを用いると、ファイルを識別するより信頼性の高い、コンテント固有の方法が得られる。ファイルを識別する信頼性の高いその他の方法には、ファイル名、ファイルサイズ、関連する公開キー、またはそれらのいくつかの組合せを用いることが含まれることもある。暗号化ハッシュは、コンピュータセキュリティ専門家の間で公知のコンテント固有の１ツールである。これらはデジタル署名の作成に頻繁に使用され、メッセージおよびファイルがそれらの自称するソースから本当に由来することを確認するに当たって使用される。暗号化ハッシュは、本質的にデジタル指紋であって、ファイルのコンテントに基づいている可能性がある。ファイル名は無視してもよい。ハッカーは容易にファイル名を模倣することはできるけれども、修正版を用いてファイルのコンテントを模倣し、かつ同一の暗号化ハッシュを維持することは事実上不可能である。
【００３０】
図３は、本発明の図示された実施形態によって提供されるコンテント固有識別子を作成するための暗号化ハッシュの使用について図示したものである。利用するハッシュは、ＳＨＡ−１またはＭＤ−５など任意の周知のハッシュ関数の生成物（product）、または任意の実質的に唯一のコンテント固有ハッシュ関数の生成物である。これらのハッシュ関数は、メッセージ、すなわちファイルのデジタルコンテントを採用し、標準的な数学関数を介してメッセージを実行してダイジェストすなわちデジタル指紋を生成する。これは１２８ビット、１６０ビット、または任意の大きさのデータの塊である。メッセージの中の僅かな変化で根本的に異なるダイジェストを生成するので、そのダイジェストは、そのアイデンティティの他は、ファイルのコンテントについて有用な情報を何も与えない。全く同一のコンテントを有する（追加データを有しない）２つのファイルは、全く同一のダイジェストを生成することになる。異なる２つのファイルが全く同一のダイジェストを有する可能性は極めて低く、よって実質的に唯一のコンテント従属識別子を作成する。実行可能コードを含むファイルに対して唯一のダイジェストを作成する過程および結果を、ここではアプリケーションのアイデンティティと称する。
【００３１】
図３に示した実施形態において、メッセージ３０１は、一定の大きさとコンテントを有するファイル「ＧｏｏｄＦｉｌｅ．ｅｘｅ」とする。ファイルのデジタルコンテントは、好意的であると信じられる実行可能コードを含む。ハッシュ関数３０５を介してファイルのコンテントを実行すると、１２８ビットを有するダイジェスト３１１が得られる。偽造メッセージ３０２は、「ＧｏｏｄＦｉｌｅ．ｅｘｅ」と称するファイルであるが、それが同一ファイルであることに確信はない。まず、偽造メッセージ３０２はサイズが異なり、その内容がメッセージ３０１と同一でないことは容易に指摘できる。偽造メッセージ３０２のコンテントを同じハッシュ関数３０５を介して実行すると、全く異なるダイジェスト３０２が得られる。このダイジェストの相違により、偽造メッセージ３０２は、メッセージ３０１と同一のコンテントを含まないことを確認することができる。偽造メッセージ３０３は、大きい難問を提示する。このファイルは、同一ファイル名と、バイト単位で全く同一のサイズとを有する。これは、実にインサイドメッセージ３０１と非常に同じコードのように見える。しかしながら、悪意のあるコードセグメント３２０が注入されており、ファイルサイズが同一になるようにいくつかのコードを置き換えている。しかしながら、このファイルを同一ファイル関数３０５を介して実行すると、異なるダイジェスト３１３が得られる。ここでも、ダイジェストにおけるこの相違の故に、偽造メッセージ３０３は、メッセージ３０１と同一の「ＧｏｏｄＦｉｌｅ．ｅｘｅ」でないことを確信する。
【００３２】
このようなハッシュ関数は、好意的な実行可能コードを含むと分かっているコンピュータファイルすべてについて計算を行ってもよい。ダイジェストのこのリストを、ここでは許可リストと称する。同様に、悪意のある実行可能コードを含むと分かっているコンピュータファイルすべてについてハッシュ関数を計算してもよく、そのリストをここでは排除リストと称する。これらのリストは、既知のアプリケーションを含むだけでなく、動的にリンクされたコードを含むファイル、スクリプトを含むドキュメント、およびコンピュータにとって望ましくない可能性のある命令を含むあらゆるその他のファイルをも含む。既知の実行可能コードのダイジェストの許可リストと排除リストを有することにより、コンピュータは、最近ダウンロードまたはコピーしたファイルに対するダイジェストを作成して、それを既知ダイジェストのカタログと比較することができる。このようにして、ファイル内に含まれる命令を一行毎に解析することなく、または別の証拠に頼ることなく、偽造アプリケーションおよび公知の悪質コードを実行することを排除することが可能である。
【００３３】
既知ダイジェストのリストを有するだけでは、悪質コードすべてをコンピュータにインストールしたり実行することを排除するのには、充分でない可能性がある。実行可能コードを含むファイルで、インターネットサーバおよびＣＤ  ＲＯＭに常駐するものは、世界中で文字通り数百万件もある。良質および悪質の新たな実行可能コードは、毎日書かれている。既知ダイジェストのリストを保持することは出発点ではあるが、コンピュータ上にダウンロードまたはそうでなければインストールされる実行可能コードが望ましくないか否かを判定するには追加の証拠が必要である。
【００３４】
このような追加の証拠には、ネットワークアドレスまたはその一部（例えば、インターネットプロトコル（ＩＰ）アドレスまたはＩＰアドレスの一部）および／またはドメインまたはドメインの一部（例えば、ｍａｌｗａｒｅ．ｃｏｍ）等のソフトウェアをダウンロードする場所が含まれる。証拠にはまた、任意のデジタル署名されたコードのための公開キーも含まれ、ダウンロードされても、コピーされてもよい。また、良質または悪質と分かっているＩＰアドレス（またはＩＰアドレスの一部）、良質または悪質と分かっているドメイン（またはドメインの一部）、および／または良質または悪質と分かっている証明書署名者に関する各種許可リストおよび／または排除リストに対して、コードのソースに関するそれぞれの証拠を比較することができる。ファイル自体を評価するほど信頼性は高くないけれども、実行可能コードのソースおよび署名を調べることによって、そのコードの実行、ダウンロード、またはコピーを行うべきか否かについて追加の証拠を提供する。加えて、ファイル識別子（または複数の識別子）に関する証拠を組合せることで、より強力な形の証拠を提供する働きをすることができる。
【００３５】
最終的に、個々のコンピュータユーザは、アプリケーションのアイデンティティ、ソース、署名に加えてその他の証拠に基づいて、自分自身のためのポリシーを発達させることができる。ユーザは、自分のコンピュータを構成して、あるファイルは自動的に排除し、別のファイルは自動的にインストールするようにできる。一定の閾値を欠いたファイルがあると、ユーザにダイアログを示して、インストレーションを信頼するか否かの判定を問い合わせることを要求する場合がある。しかしながら、望ましいのは、このようなダイアログを最小限にし、ユーザを煩わずことなく、あらゆる効率を失わないようにすることである。このような信頼ポリシーに関しては、さらに以下で述べる。
【００３６】
図４は、本発明の図示された実施形態によって提供される望ましくないソフトウェアをコンピュータ１１０から排除するための階層的な方法の例を示すものである。企業のコンピュータユーザ４０５が、コンピュータ１１０を使用している。このコンピュータ１１０は、企業サーバ４０１およびインターネットサービスプロバイダ（ＩＳＰ）４０２を介して、インターネット４０３に接続している。その他の構成要素、ルータ、ネットワーク機器、モデムなども、図示されている装置の間に接続されているので、図示している接続は見本に過ぎない。各装置４０２、４０１、１１０は、排除ポリシーが実装されたソフトウェア４１２、４１１、４１０を有し、それぞれインターネット４０３から入ってくるソフトウェアについての証拠を用いる。各々は、上述のように、アプリケーションのアイデンティティを使用してダイジェストを作成し、次いでそれらを各種の許可リストおよび排除リストと比較することができる。各ドライブ上のソフトウェア４１２、４１１、４１０はまた、それぞれの入ってくるソフトウェアのソースおよび公開キーについての証拠を使用し、ここでも関連証拠を含む許可リストおよび排除リストを使用して、ファイルを選択的に許可または排除することができる。更新の頻度、処理能力など各種条件を考慮できるようにするため、異なるレベルで異なるポリシーを制定してもよい。
【００３７】
ファイルＡ−Ｅはそれぞれ、電子メールの添付ファイルまたはある種類や別の種類のインターネットダウンロードとして、コンピュータ１１０によって要求されたり、コンピュータ１１０に送信されたものである。ＩＳＰ４０２において、１つまたは複数のサーバにインストールされているソフトウェアが、すべてのインターネット交信の中で顧客に配信される特定のファイルを点検することができる。このソフトウェアは、すべてのファイルに対してハッシュを実行し、ソースＩＰアドレスまたはＩＰアドレスの一部、公開キー、およびドメインを評価する。しかしながら、ＩＳＰ４０２が扱う膨大な交信量に鑑みて、ＩＰアドレスおよびドメインのみを評価することがある。着信ファイル毎にダイジェストを構築するための計算要件は、ＩＳＰ４０２が扱うには大き過ぎるので、別の形の証拠を，別のファイル識別子との組合せで利用する場合がある。加えて、このような計算がもたらす遅延は、エンドユーザ４０５にとっては、特にユーザが明確に要求したダウンロードについては望ましくないことがある。通り一遍の検索であっても、特定のＩＰアドレスから来るものはすべて常に悪意があることを承知しているＩＳＰ４２０は、ファイルＢを排除することができる場合がある。ＩＳＰレベルで行うファイルのフィルタリングはいずれも、最も楽観的なものに過ぎない傾向があり、ほとんどのファイルを許可し、それらの許可に反対する証拠が圧倒的なファイルのみを排除する。これには、例えば、電子メールワームおよびトロイの木馬が含まれることがある。
【００３８】
企業サーバ４０１がファイルＡおよびＣ−Ｅを受信すると、ここでも再びダイジェスト、ソース、および／または公開キーに基づいて評価する。このレベルにおいては、計算要件がハッシュ計算を可能にするので、追加の形の証拠を含む可能性のある各種の許可リストおよび／または排除リストに対してファイルを比較することができる。企業サーバ４０１は、既知の悪質ファイルだけでなく、一定のファイルも企業ポリシーを理由に削除する。例えば、アプリケーションのアイデンティティを用いて、企業サーバ４０１は、概して、インターネットチャットプログラムまたはインスタントメッセージプログラムを排除する場合がある。このようにして、企業サーバ４０１は、ユーザが禁止ファイルをインストールすることもちろん、ダウンロードすることを最初から禁止する。加えて、企業レベルにおいては、許可リストまたは排除リストのいずれにも載っていないアプリケーションは、ユーザに渡すことが可能である。ここではファイルＡはおそらくゲームであるという理由で、企業ポリシーに基づいて排除する。またファイルＤは、いずれのリストにも認められないので、通過が許可される。
【００３９】
最後に、ファイルＣおよびＤがコンピュータ１１０に達するときまでに、防御の２つの別の層によって、不十分なレベルでのみだとしても、既に評価を終えている。コンピュータ１１０の上で動作するソフトウェア４１０は、ファイルＣおよびＤについてさらに証拠を評価することが可能である。アプリケーションＣは、そのダイジェストがインストール可能アプリケーションの許可リストに載っているので、コンピュータ１１０の記憶装置４１５にインストールすることを許可される。企業サーバ４０１では認識されなかったファイルＤは、コンピュータ１１０の上のいずれの既知リストにも載っていない。しかしながら、アドレスのソースドメインが疑わしいと分かっているので、コンピュータ１１０に設定しているポリシーがファイルＤを排除する。
【００４０】
ランク付けサービス
図４に示す設定は、その防御のレベルが複数なので好適とすることができる一方で、小企業、家庭、および啓発されていない企業に常駐するコンピュータには、防御のレベルを追加する余裕がない可能性がある。これらのマシン上のソフトウェアは、ファイルの許可および排除に関連する作業全部を行わなければならない可能性がある。したがって、これらのコンピュータは、信頼することのできるファイル、ＩＰアドレス（またはＩＰアドレスの一部）、公開キー、およびドメイン（またはドメインの一部）についての情報源を必要とする。
【００４１】
図５は、本発明の図示された実施形態によって提供される、コンピュータ１１０によるソフトウェアランク付けサービスの使用を示している。コンピュータユーザ４０５は、ソフトウェアをコンピュータ１１０の上にインストールまたはコピーすることを選択的に排除または許可するために、コンピュータ１１０の上のソフトウェアが許可リストまたは排除リストを使用することができるようにすることを希望する。コンピュータユーザ４０５は、実行可能コードを含む疑わしいファイル５０１「Ｕｎｋｎｏｗｎ．ｄｌｌ」をまさにダウンロードしたところである。コンピュータ１１０は、ハッシュ関数３０５を用いてデジタル指紋５０２を作成する。加えて、コンピュータ１１０は、疑わしいファイル５０１について１つまたは複数の証拠を、ダウンロードの時刻および日付、ソースＩＰアドレス（またはＩＰアドレスの一部）およびソースドメイン名（またはドメインの一部）の形で収集する。このような追加の証拠には、疑わしいファイル５０１の公開キーについての情報を含むこともある。インターネット上にない別の装置からコンピュータ１１０へファイルをコピーする場合は、ソースについての情報は少ない可能性がある。
【００４２】
ソフトウェアをインストールして実行可能コードをフィルタリングするとき、コンピュータユーザ４０５はイントラネットまたはインターネット等のネットワークを介して利用することのできるたくさんのランク付けサービス５１０、５１１、５１２の中からランク付けサービスを選択することができる。代案として、コンピュータ１１０を工場から出荷する前に、相手先商標製造会社（ＯＥＭ）がこのソフトウェアをインストールしておく場合がある。いずれの場合も、ランク付けサービスは、ユーザのためにまたはユーザにより予め選択されていることがある。
【００４３】
ランク付けサービスとは、個々のソフトウェアファイルおよび／またはソフトウェアのソースに関する信頼勧告を提供するものである。ランク付けサービスは、完全な許可リストおよび／または排除リストをコンピュータ１１０に対して提供する。代案として、コンピュータ１１０が、ファイルについての識別子および一連の証拠を用意して、ランク付けサービスに対して問い合わせをし、ランク付けサービスから勧告を付した応答を入手する。いずれの場合も、ユーザ、ＯＥＭ、または企業のＩＴ部門があるランク付けサービスを選択した理由は、そのランク付けサービスの所有主が正確で信頼するに足る選択を行ってくれると信じるからである。
【００４４】
接続プロバイダ５１０、ソフトウェアまたはハードウェア販売業者５１１、もしくは第三者プロバイダ５１２（これに対してコンピュータ１１０は何の関係もない）は、ランク付けサービスを作成しかつ維持する場合がある。ランク付けサービスの接続プロバイダ５１０には、コンピュータ１１０が所属する企業の企業ＩＴ部門、インターネット接続を提供するインターネットサービスプロバイダ、またはファイアウォール販売業者等のネットワークソフトウェアの販売業者が含まれる可能性がある。ソフトウェアまたはハードウェア販売業者５１１は、コンピュータ１１０に対する既存の関係に基づいてランク付けサービスを提供することができる。オペレーティングシステム（ＯＳ）販売業者は、オペレーティングシステムを用いてファイルをフィルタリングするソフトウェアを提供し、許可リストおよび排除リストを有するコンピュータ１１０を予め普及させることができる。加えて、ＯＳ販売業者（例えば、マイクロソフト、レッドハット、アップル）は、リストに対する更新を提供する他、ランク付けクエリを処理する。同様に、ＯＥＭ販売業者（例えば、デル、東芝）は、このようなソフトウェアを提供し、またランク付けサービスも行うことがある。最後に、ファイルをフィルタリングするソフトウェアが別個にパッケージされて、それを販売する販売業者がランク付けサービスを提供することも可能である。それぞれの場合、コンピュータ１１０が事前の信頼関係を有する筈の組織が、コンピュータ１１０に対する更新されたランク付けサービスを提供する義務を負うことがある。
【００４５】
ランク付けサービスの第三者提供者５１２には、ユーザ４０５が信頼するオンライン団体およびパブリッシャが含まれる可能性がある。これには、既にソフトウェアおよび製品をランク付けしているパブリッシャ（例えば、ＣＮＥＴ、ＰＣ  Ｍａｇａｚｉｎｅ、Ｃｏｎｓｕｍｅｒ  Ｒｅｐｏｒｔｓ、Ｊａｃｋ  ＆  Ｊｉｌｌ  Ｍａｇａｚｉｎｅ）、関心のあるオンライン団体（例えば、ＭＳＤＮ（マイクロソフト開発者ネットワーク）、Ｓｌａｓｈｄｏｔ、教会、専門家団体、など）、または別の信頼のある情報提供者（例えば、シマンティック、マカフィー）が含まれる可能性がある。加えて、ユーザのグループが結束し、好ましいもののリストおよび排除リストを用いて、自分達自身のランク付けサービスを形成することもある。
【００４６】
ランク付けサービス５１０、５１１、５１２は、コンピュータ１１０に対して実行可能コードを含む個々のファイルおよびファイルのソースについての情報を提供する。この情報は、データベース、フラットファイル、ウェブページ、またはその他の構造化記憶媒体の中に格納することができる。ファイルには、計算されたハッシュダイジェストまたはその他の識別子に基づいてインデックスを付与することができる。コンピュータ１１０がランク付けサービスに問い合わせるとき、そのクエリは疑わしいファイルの（コンピュータ１１０が計算することができる）ダイジェストまたは別の識別子を含み、ソースおよび公開キー情報が添付されている可能性がある。クエリに応答して、ランク付けサービスは、コンピュータ１１０から受信するダイジェストを検索キーとして用いて、ファイルに関する勧告の検索を実行することができる。自分自身の情報源（例えば、他のユーザのフィードバックまたは経験、編集および／または技術的な評価など）に基づいて、ランク付けサービスは、応答として、コンテントランク付けという形の勧告を提供することができる。
【００４７】
ランク付けサービスはまた、ＩＰアドレスまたはその一部、ドメイン、または（証明書から）パブリッシャ、または公開キーに関して、データベース（またはその他の構造化記憶）を検索することがある。自分自身の情報源（例えば、そのソースからの別のファイルについての経験、発信国、プライバシーポリシーなど）に基づいて、ランク付けサービスは、コンテントランク付けの代替え方法として（または、コンテクストランク付けに追加して）ソースランク付けを提供することができる。特定のファイルについて支持したり反対する確実なコンテントランク付けの方が、ソース勧告よりも強力であると予測できるが、ソースランク付けはコンピュータ１１０および／またはユーザ４０５がそのファイルをインストールしたり、動作させるか否かの判定に十分な情報を提供することが可能である。
【００４８】
ランク付けサービスは、認証ポリシーがインストール又は動作するかを決定するに当たって、使用することのできるファイルについての追加情報を提供することが可能な場合がある。これは以下の項目を含むことがある。そのファイルを推薦するか？そのファイルはウィルスに感染していないか？そのファイルは、標準の追加／削除オプションを提供するか？そのファイルは、ファイアウォールポートまたはファイルアソシエーション等のシステム設定を上書きするか？そのファイルは、デフォルトで自動更新を行うか？そのファイルはプライバシー保証を使用しているか？パブリッシャは推薦されているか？そのファイルには、どれ程の危険性があるか？そのファイルは、着信接続に関してポートでリッスンするか？そのファイルは、ファイアウォール設定を自動的に変更してポートでリッスンするか？アプリケーションの編集上の見直しがあるか？パブリッシャのプライバシー保証に関してさらに情報があるか？
ランク付けサービスが直面する１つの困難は、ユーザがアプリケーションをインストールした後に生じるコンテントの更新およびソフトウェアのパッチである。例えば、Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）等のオペレーティングシステムは、定期的に更新およびパッチを要求して、新たな機能を提供したり、バグおよびセキュリティホールをパッチすることがある。新しいパッチはそれぞれ、コンテント従属識別子を有し、追跡されるソフトウェアのデータベースのサイズが、不必要と思われるほど大幅に増大することがある。ランク付けサービスは、個々の更新またはパッチを追跡することなく、関連ソフトウェアの同族を追跡する場合がある。例えば、受信したクエリが、更新の識別子だけでなく、更新中のソフトウェアの識別子をも含む場合がある。加えて、受信したクエリが、更新またはパッチ、ならびに元になるソフトウェア双方の署名付きパブリッシャを含む場合がある。２つのソフトウェアに同一パブリッシャが署名しており、パブリッシャの信頼性が高いときは、実際に評価することなく、その更新に肯定的なランク付けを与える。これにより、ランク付けサービスは、あらゆるパッチまたは更新を評価する必要を免れることができる。
【００４９】
図６は、本発明の図示された実施形態によって提供されるランク付けサービスを用いるファイル認証のための方法を示している。実行可能コードを含む新たなファイルがコンピュータ１１０内で検出されると、ステップ６０１において、ファイルに関する情報を格納する。これらの情報は、パブリッシャ、ソース、ダウンロードの時刻、ファイルサイズ、およびインストールやアプリケーションの実行を決定するのを補助することができるその他の証拠に関する情報を含む。ステップ６０２において、コンピュータ１１０は、おそらく事実上唯一のコンテント従属識別子を作成するＳＨＡ−１、ＭＤ−５、または別のハッシュ関数を用いて、コンテント従属識別子またはファイルに対する識別子を決定する。ステップ６０３において、コンテントランク付けを取得するため、１つまたは複数のランク付けサービスに宛てて送信するクエリをアセンブルする。このクエリは、コンテント従属識別子、ソースおよび公開キー情報、ダウンロード時刻などを含むＸＭＬまたはＨＴＭＬセグメントを含んでいてもよい。クエリで提供する情報は、第一に疑わしいファイルのアイデンティティを確認することを意味し、望ましくは、１つまたは複数のランク付けサービスから最も正確なランク付けを調達することを意味することがある。このクエリは、代替方法として、所定のテキストまたはバイナリクエリを含む多数のその他の形式のうち１つを取ってもよい。１又は複数のランク付けサービスは、応答の形式中でファイルについての証拠を提供することができる。
【００５０】
ステップ６０４において、コンピュータ１１０は、インストレーションまたは実行ポリシーに対してファイルの評価を行う。このポリシーは、ユーザ、事業主、ハードウェア販売業者、オペレーティングシステム販売業者、またはその他の関係者によって構成されたものでありうる。このポリシーは、一定の場合にユーザクエリを含むことがある。判定６０５において、このポリシーを用いてファイルを認証する場合は、認証の事実を格納するものとする。実行可能コードが実際に実行するためにフェッチ中または処理中であるとき、この実行可能コードが認証されているか否かを調べるために再度点検する場合があるため、この認証を記憶することは重要である場合がある。必ずしもコンピュータ１１０に入力される実行可能コードのすべてを捕捉するわけではないので（例えば、ユーザがそれをキーボードを介して入力する場合）、コードは、それを実行する毎に認証について点検する必要がある可能性がある。このような点検は、コンピュータの中で、オペレーティングシステム等の下位レベルにインストールすることができる。このようなステップを有することにより、予め認証されたコードだけを実行することが確実になることがある。認証ポリシーがファイルを認証しないときは、ステップ６０７において、ファイルを隔離するものとする。これは、そのファイルを削除するか、または悪意のあるコードに関してさらに検査することを意味する場合がある。いずれにせよ、このファイルはさらに検査しなければ実行できないか、または別の形の証拠が追加されなければ限定されたモードでのみ実行することができる場合があるかのいずれかである。
【００５１】
図７は、本発明の図示された実施形態によって提供されるポリシーを用いるファイル認証を評価するための方法を示す。ここでは、コンピュータ１１０は、最近追加したファイルに関する証拠を収集し終えている。ステップ７０１において、コンピュータ１１０は、証拠の第１の証拠群を検査して認証を決定する。ここでその証拠に対するランク付けがあってもよい。例えば、ステップ７０２においてコンテントランク付けをまず検査し、次にステップ７０３においてパブリッシャを検査し、ついでステップ７０４においてソースアドレスを検査してもよい。上に記載するランク付けサービスが提供する追加情報等の追加の証拠を使用することもある。判定７０５において、設定しているポリシーに対して証拠の１つ１つまたは組合せを評価する。検査した最初の証拠がコンテントに基づくランク付けまたは多重のランク付けであって、問い合わせたランク付けサービスのいずれも有用な情報を提供しない場合は、追加の情報が必要となることがある。判定７１０において、プログラムを救済できる追加の証拠が入手可能であるとき、コンピュータ１１０はポリシーを評価し直すことがある。他の証拠を利用することができない場合は、ステップ７０９においてファイルを認証しない。判定７０５に戻って、ポリシーに基づいてファイルを認証すると判定した場合は、ステップ７０６において、そのファイルを認証する。ポリシーが、ファイルを認証すべきか否か明確でないと決定すると、ステップ７０７において、ダイアログをユーザに提示して、問題のファイルに関するコンテントランク付けを含む情報を提供することがある。このとき、ステップ７０８において、ユーザはファイルを認証するか否かを判定する。
【００５２】
ポリシーは、個々のユーザが制定してもよいし、事業体レベルで制定して企業ソフトウェアポリシーを施行してもよい。ポリシーは、コンピュータ製造者、またはオペレーティングシステムもしくはファイルフィルタリングソフトウェアの供給者がデフォルトで制定することもある。さらに、ユーザまたは事業体管理者が、複数のランク付けサービスウェブサイト、またはいくつかの異なるランク付けサービスに対するアクセスを提供する単一のウェブサイトを訪問することにより、ランク付けサービスに加入している場合もある。ポリシーの構成には、複雑なインターフェース、複雑なルールの階層を備えるのに十分な柔軟性のあるインターフェースをユーザに提供することが必要な場合がある。構成したセキュリティポリシーの１例として、次のようなものであってよい。（１）マイクロソフト（登録商標）が署名したソフトウェアはすべて信頼する、（２）公知であって、かつＰＣ  Ｍａｚａｇｉｎｅが推奨するソフトウェアはすべて信頼する（署名は必要ない）、（３）その他の署名ソフトウェアに関してはユーザにプロンプトする、および（４）その他の無署名ソフトウェアはすべて拒否する。複数のランク付けサービスの間では、確実に衝突が生じる（例えば、ＣＮＥＴはあるソフトウェアを良質だとするが、Ｓｈａｓｈｄｏｔはそれを悪質であるとする）。これらの衝突の調整には、上述の優先システムなど構成可能なポリシーが必要である場合がある。代替のポリシーが、加入ランク付けサービスすべてが認めるソフトウェアのみを許可すること、特定のランク付けサービスまたは特定のパブリッシャの評価に重きを置くことなどを含んでいてもよい。
【００５３】
図８は、本発明の図示された実施形態によって、コンピュータ１１０が提供する第三者ランク付けを含む認証ダイアログ見本８０１を示している。ユーザの認証ポリシーがダイアログを呼び出すとき、ダイアログ８０１は、特定のファイル８０３を認証すべきか否かを問い合わせる。ユーザを煩わせないように、このようなダイアログの使用は最小限にとどめるのが望ましい。ダイアログ８０１は、ファイル８０３についての情報、プログラムのランク付けサービスのレビュー８０２の他、インストレーションを認証または拒否するボタン８０４、８０５を含む。以前に認証されていない実行可能コードを初めて実行しようとしたり、コンピュータ１１０にインストールしたり、コンピュータ１１０に転送するとき、８０１と同様のダイアログを用いることがある。加えて、これに限定するものではないが、実行可能コードが、ブラウザスタートページを変更すること、ネットワークにアクセスすること、特定のレジスタキーに書き込むことなどを含むコンピュータ１１０の敏感な態様に初めてアクセスしたり、それを修正しようとするとき、このようなダイアログを使用することがある。
【００５４】
図９は、本発明の図示された実施形態が提供するような、ファイルに関するランク付けを提供するための方法を示す。ランク付けサービスは、ここに示したものと同様の方法を使用して、コンテントおよびソースランク付けを作成してもよい。上述のように、ランク付けサービスはランク付けのデータベースを保持することとする。ユーザがファイルをインストールしたり、実行しようとするとき、コンピュータ１１０は、所定のフォーマット（例えば、ＸＭＬまたはＨＴＭＬ）を用いて、ランク付けサービスに対するクエリを発行することがある。この所定のフォーマットは、事実上唯一のコンテント従属識別子（単数または複数）を含む。また、このクエリは、ファイルソース情報を含んでいてもよい。ステップ９０１において、ランク付けサービスはこのクエリを受信し、ステップ９０２において、コンテント従属識別子（単数または複数）を検索キーとして用いてコンテントランク付けを検索する。判定９０３においてランク付けを見出すと、ステップ９０４において、そのコンテントランク付けを応答に追加する。判定９０５においてファイルソースに関する情報が入手可能であるときは、ステップ９０６において、そのソース情報を応答に追加する。ステップ９０７において、上述の種類の追加情報があれば応答に追加する。ステップ９０８において応答をコンピュータ１１０に返送する。
【００５５】
本発明を実行する現在好適なモードを含む具体的な例に関連して、本発明を記述したが、当業者であれば、上述の装置および技術に関して多数の変形および置換があり、それらが添付の請求項に規定するような本発明の精神および範囲中にあることを理解するであろう。請求項のいかなる要素も、「のための手段」、「のためのステップ」、「のための諸ステップ」という語句をその要素に含めない限り、ｍｅａｎ−ｐｌｕｓ−ｆｕｎｃｔｉｏｎ（機能的クレーム）であるとして解釈してはならない。また、方法の請求項における番号付きのステップは、符号付けのみの目的であって、諸ステップの特定の順序付けを要求するものと解釈してはならない。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態による１つまたは複数の態様に用いることのできる動作環境を図示する機能的ブロック図である。
【図２】本発明の図示されている実施形態によって提供される各種のソフトウェアエントリポイントを示している。
【図３】本発明の図示されている実施形態によって提供される、コンテント固有識別子を作成するための暗号化ハッシュの使用を示している。
【図４】本発明の図示されている実施形態によって提供される、望ましくないソフトウェアを排除するための階層的方法を示している。
【図５】本発明の図示されている実施形態によって提供されるソフトウェアランク付けサービスの使用を示している。
【図６】本発明の図示されている実施形態によって提供されるファイル認証のための方法を示す流れ図である。
【図７】本発明の図示されている実施形態によって提供されるポリシーを用いてファイル認証を評価するための方法を示す流れ図である。
【図８】本発明の図示されている実施形態によって提供される第三者ランク付けを含む認証ダイアログのサンプルを示している。
【図９】本発明の図示された実施形態によって提供される、ファイルについてのランク付けを提供するための方法を示す流れ図である。
【図１】
2008535057.tif 000003
【図２】
2008535057.tif 000004
【図３】
2008535057.tif 000005
【図４】
2008535057.tif 000006
【図５】
2008535057.tif 000007
【図６】
2008535057.tif 000008
【図７】
2008535057.tif 000009
【図８】
2008535057.tif 000010
【図９】
2008535057.tif 000011
【国際調査報告】
2008535057.tif 000012