(57)【要約】  ヘルプ・システムにおいてセキュリティを提供するコンピュータに実装された方法は、アクティブ・コンテンツにアクセスするために呼び出しアプリケーションからの呼び出しを受信することを含む。どの実行モードをアクティブ・コンテンツにアクセスするのに用いるかの決定は、あらかじめ設定された基準に基づきなされる。アクティブ・コンテンツは、次にこの決定された実行モードでアクセスされる。
2008547111.tif 000002
【特許請求の範囲】
【請求項１】
ヘルプ・システムにおいてセキュリティを提供するコンピュータ実装方法であって、
アクティブ・コンテンツにアクセスする呼び出しアプリケーションから呼び出しを受信するステップ、
あらかじめ設定された基準に基づき、前記アクティブ・コンテンツをアクセス可能な実行モードを決定するステップ、および
前記決定された実行モードで前記アクティブ・コンテンツにアクセスするステップ
を備えることを特徴とするコンピュータ実装方法。
【請求項２】
前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定するステップは、前記アクティブ・コンテンツに信頼モードでアクセスするか、またはセーフ・モードでアクセスするかを決定するステップをさらに備え、前記信頼モードは、前記アクティブ・コンテンツ内のコードの実行を許可し、前記セーフ・モードは、前記アクティブ・コンテンツのコンテンツを静的にレンダリングするが前記アクティブ・コンテンツ内のコードの実行を制限することを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
前記あらかじめ設定された基準に基づき、前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定するステップは、前記呼び出しアプリケーションの信頼状態を決定するステップをさらに備え、前記呼び出しアプリケーションは、信頼されたアプリケーション状態および信頼されていないアプリケーション状態のうちの１つを有することができることを特徴とする請求項２に記載のコンピュータ実装方法。
【請求項４】
前記実行モードは、前記呼び出しアプリケーションが前記信頼されていないアプリケーション状態を有すると決定される場合、前記セーフ・モードであると決定されることを特徴とする請求項３に記載のコンピュータ実装方法。
【請求項５】
前記あらかじめ設定された基準に基づき、前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定するステップは、前記アクティブ・コンテンツが信頼されたソースからであるかを決定するステップをさらに備え、前記アクティブ・コンテンツをアクセス可能な前記実行モードは、前記アクティブ・コンテンツが信頼されたソースからであると決定されない場合、前記セーフ・モードであると決定されることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項６】
前記アクティブ・コンテンツが信頼されたソースからであるかを決定するステップは、前記アクティブ・コンテンツが電子的に署名されているかを決定するステップをさらに備え、前記アクティブ・コンテンツは、電子的に署名されていない場合、信頼されていないソースからであると決定されることを特徴とする請求項５に記載のコンピュータ実装方法。
【請求項７】
前記アクティブ・コンテンツが電子的に署名されている場合、前記アクティブ・コンテンツが信頼されたソースからであるかを決定するステップは、前記アクティブ・コンテンツが有効な証明書を有するかを決定するステップをさらに備え、前記アクティブ・コンテンツは、有効な証明書を有さない場合、信頼されていないソースからであると決定されることを特徴とする請求項６に記載のコンピュータ実装方法。
【請求項８】
前記あらかじめ設定された基準に基づき、前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定するステップは、前記アクティブ・コンテンツが有効なクーポンを有するかを決定するステップをさらに備え、前記実行モードは、前記アクティブ・コンテンツが有効なクーポンを有さないと決定される場合、前記セーフ・モードであると決定されることを特徴とする請求項２に記載のコンピュータ実装方法。
【請求項９】
前記あらかじめ設定された基準に基づき、前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定するステップは、前記呼び出しアプリケーションが常駐するコンピュータの操作を管理する管理ポリシーに基づき、前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定するステップをさらに備えることを特徴とする請求項２に記載のコンピュータ実装方法。
【請求項１０】
前記各ステップは、信頼モデルを用いて実装され、前記信頼モデルは、前記管理ポリシーが変更される場合、前記信頼モデルが、前記アクティブ・コンテンツの実行を実施するために前記変更されたポリシーを使用するように、本質的に動的であることを特徴とする請求項９に記載のコンピュータ実装方法。
【請求項１１】
請求項１の前記各ステップを実装するコンピュータ実行可能命令をその上に格納していることを特徴とするコンピュータ可読媒体。
【請求項１２】
コンピュータのユーザに対してヘルプを提供するシステムであって、
アクティブ・コンテンツにアクセスする呼び出しアプリケーションから呼び出しを受信するヘルプ・システム、および
信頼ベース・セキュリティ・モデルを用いて、前記アクティブ・コンテンツをアクセス可能な実行モードを決定するセキュリティ・マネージャ
を備えることを特徴とするシステム。
【請求項１３】
前記セキュリティ・マネージャは、あらかじめ設定された基準に基づき、前記アクティブ・コンテンツをアクセス可能な前記実行モードを決定することを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記セキュリティ・マネージャは、前記アクティブ・コンテンツを信頼モードでアクセスするか、またはセーフ・モードでアクセスするかを決定するように構成され、前記信頼モードは、前記アクティブ・コンテンツ内のコードの実行を許可し、前記セーフ・モードは、前記アクティブ・コンテンツのコンテンツを静的にレンダリングするが前記アクティブ・コンテンツ内のコードの実行を制限することを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記あらかじめ設定された基準は、前記呼び出しアプリケーションの信頼状態を含み、前記呼び出しアプリケーションは、信頼されたアプリケーション状態および信頼されていないアプリケーション状態のうちの１つを有することができ、前記セキュリティ・マネージャは、前記呼び出しアプリケーションの前記信頼状態を決定するようにさらに構成されることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記セキュリティ・マネージャは、前記呼び出しアプリケーションが前記信頼されていないアプリケーション状態を有すると決定される場合、前記実行モードが前記セーフ・モードであると決定するように構成されることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記あらかじめ設定された基準は、前記アクティブ・コンテンツのソースの信頼状態を含み、前記セキュリティ・マネージャは、前記アクティブ・コンテンツの前記ソースの前記信頼状態を決定するようにさらに構成され、前記アクティブ・コンテンツをアクセス可能な前記実行モードは、前記アクティブ・コンテンツが信頼されたソースからであると決定されない場合、前記セーフ・モードであると決定されることを特徴とする請求項１４に記載のシステム。
【請求項１８】
前記アクティブ・コンテンツの前記ソースの前記信頼状態を決定するように構成される前記セキュリティ・マネージャは、さらに前記アクティブ・コンテンツが電子的に署名されているかを決定し、前記アクティブ・コンテンツが電子的に署名されていない場合、前記アクティブ・コンテンツは信頼されていないソースからである、と決定するように構成されることを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記アクティブ・コンテンツが電子的に署名されている場合、前記セキュリティ・マネージャは、前記アクティブ・コンテンツが有効な証明書を有するかを決定することにより前記アクティブ・コンテンツが信頼されたソースからであるかを決定するように構成され、前記アクティブ・コンテンツが有効な証明書を有しない場合、前記アクティブ・コンテンツは信頼されていないソースからであると決定されることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記あらかじめ設定された基準は、前記アクティブ・コンテンツが有効なクーポンを有するかをさらに含み、前記実行モードは、前記アクティブ・コンテンツが有効なクーポンを有しないと決定される場合、前記セーフ・モードであると決定されることを特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
以下の説明は、単に一般的な背景情報を与えるものであり、特許請求の範囲の対象範囲を決定する際の補助として用いられることを意味しない。
【０００２】
コンピューティング環境において、特定のタスクをどのように行うかをユーザに教えるためにヘルプ・システムを有することは普通に見られることである。ヘルプ・システムは、アプリケーションまたはアプリケーション・スイート（バンドルされたアプリケーションおよび関連アプリケーションのグループ）レベルで、あるいはオペレーティング・システム（またはシェル）レベルであることが可能である。一般的には、ヘルプ・システムについては両方のレベルが、ほとんどではないが多くの、組み込みのヘルプ・システムを有するアプリケーションで用いられる。
【０００３】
ヘルプ・コンテンツは、従来、静的なものであり、特定のタスクを完了させる方法に関する、文字で書かれるかまたはグラフィックで示された手順をユーザに提供していた。しかし最近になって、ヘルプ・コンテンツは、静的なテキストからより動的な体験へと移行し始めている。静的なヘルプ・コンテンツから動的なまたはアクティブなヘルプ・コンテンツへの移行では、従来無害なテキストとして見えていたものが、次第にコードを実行させるか、またはユーザの代わりにコードを実行させることを引き起こすことができるようになりつつある。ヘルプ・コンテンツがユーザの代わりに操作を行うことを可能にすることによってユーザを支援するために、ヘルプ・システムにより実行されている操作を監視することによって効率的に操作を実行する目的でおよび／またはユーザに操作の実行方法を教える目的で、ヘルプ型ファイルは次第にアクティブなコンテンツ実行可能コードまたはスクリプトを含むようになっている。このアクティブ・コンテンツ・ファイルは、これらのファイル自体が、また次に実行される他の実行可能なコードを呼び出するなどの方法で制作される可能性がある。アクティブ・ヘルプ・コンテンツの２つの例には、アクティブ・コンテンツ・ウィザード（ＡＣＷ：Active Content Wizard）およびショートカット（Shortcut）が含まれる。
【０００４】
概してＡＣＷは、ある形式または他の形式で、ユーザ・インターフェースと対話し、実質的には直接ユーザ・インターフェースに対してユーザのためにヘルプ・トピックを再生するためのコードを含む。ＡＣＷがユーザ・インターフェースと対話している間、このＡＣＷは、また、この対話に関してユーザに説明を提供する。再生の間、ＡＣＷは、ユーザがユーザ・インターフェースと対話して、ユーザの学習過程において支援する、ファイル名などの特定の情報を入力することを可能とすることができる。ショートカットは、自動的に操作を実行するヘルプ型ファイルである。概して、シェル実行命令（例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システムのＳｔａｒｔ／Ｒｕｎ命令）から実行可能な任意の操作または動作（activity）は、ショートカットを用いて自動的に実行される可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現在、ヘルプ・コンテンツが実行可能なコード（アクティブ・コンテンツ）を含むかまたは呼び出すことが可能であると事実は、ユーザのコンピュータおよびデータがこのようなアクティブ・コンテンツにより、故意にまたは故意ではなく危害をこうむる可能性を生み出す。またアクティブ・ヘルプ・コンテンツは、ウェブ・ページおよび他のリモート・ソースを介して利用可能であり、時にはこのウェブ・ページおよび他のリモート・ソースに自動的にアクセスされるので、アクティブ・ヘルプ・コンテンツがユーザのコンピュータおよびデータに危害を加える機会がさらに多く存在することになる。
【課題を解決するための手段】
【０００６】
本説明は、詳細な説明において以下にさらに説明される概念の選択を簡略化した形で紹介するために提供される。本説明は、特許請求の範囲の対象のキーとなる機能または基本的な機能を明確にすることを意図せず、特許請求の範囲の対象範囲を決定する際の補助として用いられることを意図していない。
【０００７】
アクティブ・コンテンツのための信頼モデル（trust model）は、エンド・ユーザが安全で、セキュアな方法でヘルプ・コンテンツをダウンロードおよび／またはインストールして実行することを可能とする。この信頼モデルは、ユーザおよび／または管理者により信頼されているコンテンツのみがコードを呼び出すことを許可される、またはサード・パーティの拡張機能を使用することを許可される、ことを強制することにより、ユーザのデータおよびシステムを保護する。いくつかの実施形態では、これらの決定のベースは、呼び出しアプリケーションおよび表示されるコンテンツ・セットに置かれ、また、アプリケーションを実行する特定のユーザ、および特定のコンピュータおよび／またはユーザに対して設定されたポリシー、にも置かれる。これらのうちの１つが実行に必要とされる権限または信頼を有していない場合、ヘルプ・システムはセーフ・モードをデフォルトとし、このモードでは、コンテンツは静的になりシステムに危害を加えることはできなくなる。
【発明を実施するための最良の形態】
【０００８】
ヘルプ・コンテンツは、静的なテキストからより動的な体験へと移行している。この動的な体験を提供するために、ヘルプ・コンテンツは、時には、コードを実行させることができなければならず、またはユーザの代わりにコードを実行させるようにしなければならない。開示された実施形態は、セキュリティに基づく信頼モデルを提供し、それによりエンドユーザを保護し、信頼されたコンテンツのみがコードの実行を引き起こし、ユーザの代わりに操作を行うことを可能にする。
【０００９】
概して、ヘルプ・システム、および特に以下に説明するセキュリティ・ヘルプ・システムの実施形態に基づく信頼モデルは、しばしば、インターネットおよび／またはローカル・ネットワークであるネットワーク化したパーソナル・コンピュータ（ＰＣ）の環境において稼動する。図１を参照して以下に一般的に説明されるコンピューティング環境は、開示された実施形態が実装可能なコンピューティング環境の一例である。しかし、図示の実施形態の別の態様を説明する前に、図１に示されている、適切なコンピューティング環境の例を説明することが有用である可能性がある。
【００１０】
図１は、図示の実施形態の１つまたは複数の態様が実装可能である、適したコンピューティング・システム環境１００の例を示す。コンピューティング・システム環境１００は、適したコンピューティング環境の単なる一例であり、図示の実施形態の使用または機能の範囲に関してなんらかの制限を示唆することを意味しない。またコンピューティング環境１００は、例示のオペレーティング環境１００に示されるコンポーネントの任意の１つまたは組合せに関して任意の依存関係または要件を有するとみなすべきでない。
【００１１】
図示の実施形態は、多数の他の汎用または特殊用途のコンピューティング・システム環境または構成で稼動可能である。図示の実施形態で使用するのに適する可能性がある、よく知られたコンピューティング・システム、環境、および／または構成の例は、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベース・システム、セットトップボックス、プログラム可能な家庭電化製品、ネットワークＰＣ、ミニ・コンピュータ、メインフレーム・コンピュータ、電話通信システム、任意の上記のシステムまたは装置等を含む分散コンピューティング環境などを含むが、これに限定されない。
【００１２】
図示の実施形態は、プログラム・モジュールなど、コンピュータにより実行されるコンピュータ実行可能命令の一般的なコンテキストで説明可能である。概して、プログラム・モジュールには、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。また図示の実施形態は、分散コンピューティング環境で実行することができ、分散コンピューティング環境では、タスクは、通信ネットワークを通してリンクされるリモートの処理装置により実行される。分散コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含む、ローカルおよびリモートのコンピュータ記憶媒体の両方に配置することができる。プログラムおよびモジュールにより実行されるタスクは、以下に図の助けを借りて説明される。当業者は、本明細書で提供される説明および図をプロセッサが実行可能な命令として実装でき、これらの命令は任意の形態のコンピュータ可読媒体上に書き込み可能である。
【００１３】
図１を参照すると、例示のシステムは、コンピュータ１１０の形態の汎用コンピューティング装置を含む。コンピュータ１１０のコンポーネントは、処理装置１２０、システム・メモリ１３０、およびシステム・メモリを含む様々なシステム・コンポーネントを処理装置に接続するシステム・バス１２１を含んでよいが、これに限定されない。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および任意の様々なバスアーキテクチャを用いるローカル・バスを含む、いくつかの種類のうちの任意のバス構造とすることができる。例として、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ：Industry Standard Architecture）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Micro Channel Architecture）バス、拡張ＩＳＡ（ＥＩＳＡ：Enhanced ISA）バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション（ＶＥＳＡ：Video Electronics Standards Association）ローカル・バス、およびＭｅｚｚａｎｉｎｅバスとしても知られている周辺コンポーネント・インターコネクト（ＰＣＩ：Peripheral Component Interconnect）バスを含むが、これに限定されない。
【００１４】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によりアクセス可能で、揮発性および不揮発性媒体、取り外し可能および固定式媒体の両方を含む任意の利用可能な媒体とすることができる。例として、限定されないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えることができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報を格納するための任意の方法または技術で実装された、揮発性および不揮発性、取り外し可能および固定式媒体の両方を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶装置、または所望の情報を格納するために使用可能でコンピュータ１１０によりアクセス可能である任意の他の媒体を含むがこれに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを、搬送波または他の搬送メカニズムなどの変調されたデータ信号に具現化し、および任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、情報を信号内に符号化するように設定または変更された１つまたは複数の特性を有する信号を意味する。例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含むがこれに限定されない。上記の任意の組合せもまた、コンピュータ可読媒体の範囲の中に含まれるものとする。
【００１５】
システム・メモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１およびランダム・アクセス・メモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形態でのコンピュータ記憶媒体を含む。基本入力／出力システム１３３（ＢＩＯＳ）は、起動中などにコンピュータ１１０内の要素同士での情報の転送を助ける基本ルーチンを含むが、通常、ＲＯＭ１３１に格納される。通常、ＲＡＭ１３２は、処理装置１２０により即座にアクセス可能な、および／または現在操作中の、データおよび／またはプログラム・モジュールを含む。例として、図１は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７を示すが、これに限定されない。
【００１６】
また、コンピュータ１１０は、他の取り外し可能／固定式、揮発性／不揮発性のコンピュータ記憶媒体を含んでよい。単なる例として、図１は、固定式不揮発性磁気媒体から読み込み、またはこの媒体に書き込むハードディスク・ドライブ１４１、取り外し可能な不揮発性磁気ディスク１５２から読み込み、またはこのディスク１５２に書き込む磁気ディスク・ドライブ１５１、およびＣＤ−ＲＯＭまたは他の光媒体などの取り外し可能な不揮発性光ディスク１５６から読み込み、またはこのディスク１５６に書き込む光ディスク・ドライブ１５５を示す。例示のオペレーティング環境で使用可能な他の取り外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等を含むがこれに限定されない。一般的にはハードディスク・ドライブ１４１は、インターフェース１４０などの固定式メモリ・インターフェースを通してシステム・バス１２１に接続され、一般的には磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は、インターフェース１５０などの取り外し可能なメモリ・インターフェースによりシステム・バス１２１に接続される。
【００１７】
上述し図１に示されたドライブおよびそれらに関連したコンピュータ記憶媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラム・モジュールおよび他のデータを格納する。例えば図１では、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６およびプログラム・データ１４７を格納するように示されている。これらのコンポーネントは、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７と同じでも異なってもよいことに留意されたい。オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７は、少なくともこれらが異なるコピーであることを示すために本明細書では異なる番号を付けている。
【００１８】
ユーザは、キーボード１６２、マイクロフォン１６３、およびマウス、トラックボールまたはタッチ・パッドなどのポインティング装置１６１など、入力装置を通してコンピュータ１１０に命令および情報を入力できる。他の入力装置（図示せず）として、ジョイスティック、ゲーム・パッド、衛星放送用パラボラ・アンテナ、スキャナ等を含むことができる。しばしばこれらおよび他の入力装置は、システム・バスに接続されるユーザ入力インターフェース１６０を通して処理装置１２０に接続されるが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ）などの他のインターフェースおよびバス構造により接続することができる。モニタ１９１または他の種類の表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステム・バス１２１に接続される。モニタに加え、コンピュータは、出力周辺インターフェース１９５を通して接続可能な、スピーカ１９７およびプリンタ１９６などの他の周辺出力装置も含んでよい。
【００１９】
コンピュータ１１０は、リモート・コンピュータ１８０などの１つまたは複数のリモート・コンピュータへの論理接続を用いて、ネットワーク環境で動作する。リモート・コンピュータ１８０は、パーソナル・コンピュータ、ハンドヘルド装置、サーバ、ルータ、ネットワークＰＣ、ピア装置または他のよく知られたネットワーク・ノードであってよく、一般的には、コンピュータ１１０に関連して上述した多くのまたはすべての要素を含む。図１で示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークも含んでよい。このようなネットワーキング環境は、事務所、事業体規模のコンピュータ・ネットワーク、イントラネットおよびインターネットで身近なものである。
【００２０】
ＬＡＮネットワーキング環境で使用されるとき、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を通してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用されるとき、一般的には、コンピュータ１１０は、インターネットなどのＷＡＮ１７３を介して通信を確立するモデム１７２または他の手段を含む。モデム１７２は、内蔵または外付けであってよく、ユーザ入力インターフェース１６０または他の適切なメカニズムを介してシステム・バス１２１に接続可能である。ネットワーク環境において、コンピュータ１１０に関連して示されたプログラム・モジュールまたはその一部は、リモート・メモリ記憶装置内に格納することができる。例として、図１は、リモート・アプリケーション・プログラム１８５をリモート・コンピュータ１８０上に常駐するものとして示すがこれに限定されない。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段が用いられることができることが理解されよう。
【００２１】
次に図２を参照すると、ヘルプ・システムおよび信頼ベース・セキュリティ・モデルが実装または具現化される、コンピュータ・システムまたはコンピューティング環境２００がより一般的に示されている。コンピュータ２０５が図２に示され、このコンピュータ２０５は、ＰＣ、ラップトップ・コンピュータ、ノートブック・コンピュータ、または他のモバイルまたは非モバイル・コンピュータを含む、任意の様々なコンピューティング環境であることができる。しかしコンピュータ２０５は、任意の特定の種類のコンピューティング環境に制限されない。
【００２２】
コンピュータ２０５は、アプリケーションまたはオペレーティング・システム（ＯＳ）ソフトウェア２０７（今後「アプリケーション２０７」または「呼び出しアプリケーション２０７（calling application）」と呼ぶ）およびヘルプ・システム２１０をホスト（host）し、実行させ、または他の形でサポートする。必要なときに、アプリケーション２０７は、ヘルプ・システム２１０を呼び出してローカル・ヘルプ・コンテンツ２１５（「ローカル」という用語はコンピュータ２０５上に配置されていることを示す）にアクセスする。一般的には、ローカル・ヘルプ・コンテンツ２１５（ならびにリモート・ヘルプ・コンテンツ２２０および／または２３５）は、現在ますます増加する量のアクティブ・コンテンツを含むことになる。「アクティブ・コンテンツ」という語は、コードを実行するか、またはコードを実行させることを引き起こすことができるコンテンツを指す。アクティブ・コンテンツの例には、例えば、上述のようにＡＣＷおよびショートカットが含まれる。
【００２３】
いくつかの実施形態では、呼び出しアプリケーション２０７はまた、ヘルプ・システム２１０を呼び出すかまたはヘルプ・システム２１０に要求し、それによりインターネット２３０あるいは他のグローバルなまたはローカルでないコンピュータ・ネットワークを介してコンピュータ２０５に接続されるサーバ・コンピュータ２２５によってアクティブ・ヘルプ・コンテンツ２２０にアクセスすることができる。同様に、呼び出しアプリケーション２０７は、ヘルプ・システム２１０を呼び出し、それにより同一のローカル・ネットワーク（例えば同一の組織等の中の）２４５に接続されるコンピュータ２４０によってアクティブ・ヘルプ・コンテンツ２３５にアクセスすることができる。
【００２４】
またコンピュータ２０５は、アクティブ・ヘルプ・コンテンツへの、すなわちローカルアクティブ・コンテンツ２１５とリモートアクティブコンテンツ２２０および２３５との両方へのアプリケーション２０７のアクセスを管理するセキュリティ・マネージャ２５０を具現化するように構成される。セキュリティ・マネージャ２５０は信頼ベース・セキュリティ・モデル２６０を使用し、このセキュリティ・モデル２６０は、どのアプリケーションまたはユーザがアクティブ・コンテンツにアクセスでき、どのアクティブ・コンテンツがアクセスされることができるかを決定するルールのセットと考えることができる。またセキュリティ・マネージャ２５０は、アクティブ・コンテンツを有するヘルプ・ファイルまたは他のファイルのための２つの実行モードをアクティブ化およびコントロールするが、追加のまたは異なるモードも使用できる。これらの実行モードは、単に例のために、信頼モードおよびセーフ・モードと本明細書では呼ばれる。これらの実行モードは、以下により詳細に説明される。モデル２６０内に定義されまたはモデル２６０により要求される基準を用いてこれらの実行モードをコントロールすることに加え、セキュリティ・マネージャ２５０は、管理ポリシー２４７にも基づきこれらのセキュリティ・モードをコントロールする。例示のために、これらのポリシーは、ネットワーク２４５を介してコンピュータ２０５に接続される管理者のコンピュータ２４６から提供されるものとして表される。ポリシー２４７は、特定のユーザ、特定のコンピュータ、特定の呼び出しアプリケーション、または特定のアクティブ・コンテンツに対して実行のどのモードが要求されるかを決定する際に他の基準を無効にできる。
【００２５】
説明したように、ヘルプ・トピックは、ビヘイビア（behavior）、ＡＣＷ、およびショートカットなどのコードを呼び出すことができる。ヘルプ・システム２１０が、例えば、ビヘイビアおよびタイル（タイルは、レンダリング等などのいくつかのサービスを提供する、ヘルプ・システムへのプラグインである）を使用して、拡張性がある場合、カスタム・コードも同様に呼び出される可能性がある。例えば、あるビヘイビアは、マシンの状態（ユーザがドメイン上にいるか否か）を明らかにしたり、または対話型（「＋」および「−」を有する展開メニュー）であったりする。このビヘイビアはトピックを「アクティブ」にする、しかし、それらのビヘイビアはまた、あるレベルのリスクをユーザのマシンに持ち込むことになる。具体的にはビヘイビアは、ユーザが既にインストールしているコードである。セキュリティ・マネージャ２５０により実装された信頼モデル２６０は、コンテンツを保護する（secure）目的を果たす。具体的には、「信頼されていない」コンテンツが、「その他の点ではセキュアなコード」が「その他の点ではセキュアなマシン」上で実行することを引き起こす可能性があり、その結果は、ユーザにとって悲惨なものとなる可能性がある。
【００２６】
ユーザがヘルプ・トピックを要求すると、ヘルプ・システム２１０は、そのトピックへの、および次に推移的に、潜在的に危険なコード（ビヘイビア、アクティブ・コンテンツ・ウィザード等）へのアクセスを許可するか拒否するかを決定する必要がある。セキュリティ・マネージャ２５０およびその信頼ベース・セキュリティ・モデル２６０はそのコントロールを行う。本来、ヘルプ・システムがその時点ではそのトピックを信頼するかを決定しなければならない。以下に、より詳細に説明するように、信頼ベース・セキュリティ・モデル２６０は、任意の所与の時点での任意の所与のトピックに対する信頼を決定する方法を指定する。信頼モデル２６０は、信頼されていないか、または明確に信頼されなかったものを実行する結果として起きる悪意ある攻撃からユーザのコンピュータを保護する。信頼された悪意あるコードは、やはり否定的な結果を招く可能性があるが、信頼されていないコードは実行することが防止される。いくつかの「攻撃」は、意図せずに破壊的であるビヘイビアを呼び出すことが起こってしまう親切なヘルプである可能性がある。例示の実施形態では、信頼モデル２６０は、これに対しても同様に保護する。一般的に、しかし網羅的な一覧としてあげてはいないが、セキュリティ・マネージャ２５０により実装された信頼ベース・セキュリティ・モデルは、次のような領域を保護する。  
・  ヘルプ・システム全体（ヘルプを使用するシナリオにおいて）の全体的な完全性（integrity）。ヘルプ・システムは、ディスク上のファイルまたはレジストリ内のエントリを変更するなどの、システムへの予期しない修正からユーザを防御（protect）する。同様に、ヘルプの使用は、システムの信頼性に影響を与えさせてはならない。  
・  ユーザのプライバシー。ヘルプ・システムは、アプリケーションまたはインターネットを介してデータを予期せずに渡すことを助けてはならない。  
・  現在インストールされているヘルプの完全性。これは、上記の「全体的な完全性」の範疇にはいる可能性があるが、ヘルプの使用または新しいヘルプのインストールが、以前に動いていたヘルプを壊してはならないことに特に留意するだけの価値がある。  
・  また信頼モデルは、十分な特権（privilege）を持たないユーザがアクティブ・コンテンツを実行することを禁止する。また信頼モデルは、システム管理者により設定されたポリシーを守り、両方の悪意あるコードに抗して、およびアクティブ・コンテンツを実行することを制限された特権を持つユーザから、ヘルプ・システムの完全性（ヘルプ・シナリオにおける）を防御する。
【００２７】
セキュリティ・マネージャ２５０およびその信頼モデル２６０は、エンド・ユーザが安全でセキュアな方法でヘルプ・コンテンツをダウンロードおよび／またはインストールすることを可能にする。それは、ユーザにより信頼されているコンテンツだけが、コードを呼び出すことを許可されるかまたはサード・パーティの拡張機能を使用することを許可されるような方法で、アクティブ・コンテンツへのアクセスを管理する。別の利点は、企業、相手先ブランド製造（ＯＥＭ）、またはコンテンツを配信する任意の者が自分のヘルプ資料（コンテンツ・セット）を悪意ある攻撃からのスパミング（spamming）およびなりすまし（spoofing）から防御される状態に保つ能力である。以下に説明するように、セキュアなコンテンツに対する要求の１つは、そのコンテンツが電子署名をされることを要求するというものである。また、配信元によりコンテンツが電子署名をされることを要求することにより、悪意あるコンテンツを追求する手掛りができ、データの完全性を検証することが可能となる。
【００２８】
セキュリティ・マネージャ２５０は、２つの主要なルール、すなわち、ヘルプに特権の上昇を引き起こすことを許さないというルールと、ユーザがそのコンテンツを明示的にまたは暗黙的に信頼していない場合、またはマシンのポリシーがそれを許さない場合にはそのコンテンツに実行を引き起こすことを許さないというルールを実施する。例えば、たとえユーザがコンテンツを信頼する場合でも、企業のドメイン管理者がワークステーションからウェブへのすべてのアクセスを切断する場合、セキュリティ・マネージャは、コードの実行を許可しない。ヘルプを要求するアプリケーションは、チェックされる特権を有し、同一の資格証明書／特権が、任意のリソースにアクセスしたり、またはコードを実行する場合にいつも使われる。これは、ヘルプ・システムが、特権のより低いアプリケーションにより使用されて、より特権がより高いコンテキストでコードを実行するという利用を防ぐ。特権が十分に低い場合、またはポリシーが命令する場合、潜在的に危険なコンテンツは使用不可にされる。
【００２９】
エンド・ユーザは、アプリケーションおよびそのヘルプをインストールし、ヘルプ・コンテンツが署名されている証明書を信頼することにより、明示的にヘルプを信頼できる。さらに、暗黙的な信頼（implicit trust）は、信頼された証明書ストア内に既にインストールされた証明書で署名されているヘルプ・コンテンツをインストールすることにより与えられる。この信頼がないと、ヘルプは、静的なテキストとして機能し、サード・パーティのコードを呼び出さず、またはヘルプ・システムのどの潜在的に安全でないアクティブな機能も利用されることを許可しない。情報のセットとしてのヘルプ・コンテンツは、同一の証明書を持つコンテンツのみがそのコンテンツ・セットの子として存在可能であるため、署名されていることにより防御されることができる。しかし、いくつかの実施形態では、特定の証明書からのコンテンツが以前に信頼されていたとしても、システムは、特に異なるアプリケーションに対して、または他のコンテンツ・セットに対して、任意の新しいコンテンツを受け入れるためにユーザからの明示的な許可を要求することができる。言い換えれば、ユーザが特定の企業またはコンテンツ・プロバイダからの証明書を持つアプリケーション用のコンテンツを受け入れるとしても、それは、ユーザがその同一の企業の別の製品からのコンテンツを自動的に受け入れることを意味しない。例示の実施形態の他の機能は、コンテンツのセットまたはサブセットが別のコンテンツ・セットにプラグインすることを許可するクーポン・ファイルまたはキーの概念を使用している。このキーは、親のコンテンツ・セットの元の所有者によりコントロールされ、指定された組織に与えられる。
【００３０】
電子署名は、オンラインコンテンツが信頼モデルに関与することを検証して許可するために、用いられる。したがって、サーバまたは記憶装置から来るヘルプ・コンテンツは、コード実行を引き起こすことができるか、または高度なアクティブ・ビヘイビアを利用できるかを安全にチェックして決定することができる。
【００３１】
実施形態に方法についてより詳細な説明が次に行われる。セキュリティ・マネージャ２５０は、いくつかの実施形態では、信頼ベース・セキュリティ・モデル２６０を用いてこれらの方法を実行するように構成される。図３を参照すると、信頼ベース・セキュリティを実装するために例示の実施形態内でセキュリティ・マネージャ２５０により用いられる機能を有するヘルプコンテンツ・ファイルまたはファイル群３００が示されている。図示のように、この特定の実施形態に依存して、コンテンツ３００は、電子署名３０５、証明書３１０、およびクーポンまたはキー３１５のうちのいくつかまたはすべてを含むべきである。すべての実施形態が、信頼されたコンテンツとみなすのにこれら３つのすべてを必要とするわけではないが、これらの機能の３つすべてが用いられる例が説明される。
【００３２】
署名３０５は、電子ドキュメントまたはファイルのソースを示す任意の所望の電子署名形式とすることができる。例えば、署名３０５は、電子的に署名しＸＭＬドキュメントを認証する、Ｗ３Ｃ規格によるＸＭＬ（Extensible Markup Language）署名とすることができる。他の電子署名形式も同様に使用可能である。電子署名３０５を付加する場合、電子証明書３１０も同様に必要とすることができる。電子証明書は、ＶｅｒｉＳｉｇｎ，Ｉｎｃなどの民間の証明オーソリティを通じて得ることができ、署名の信頼性を証明する。
【００３３】
電子クーポン（またはキー）３１５も、ヘルプ・コンテンツ３００内に含めることができる。一般的に、電子クーポンは、２つの電子ドキュメントの間の関係をセキュアに識別する方法である。したがって、電子クーポンは、コンテンツのセットまたはサブセットが別のコンテンツ・セットにプラグインすることを許可するいくつかの実施形態で使用される。このクーポンまたはキーは、親のコンテンツ・セットの元の所有者によりコントロールされ、指定された組織に与えられる。
【００３４】
次に図４を参照すると、ヘルプ・システム内のセキュリティを提供する方法の実施形態を示す流れ図４００が示されている。セキュリティ・マネージャ２５０は、信頼ベース・セキュリティ・モデル２６０を用いて、図４に示されるような方法を実装するように構成可能である。ブロック４０５に示すように、この方法は、アクティブ・コンテンツにアクセスする呼び出しアプリケーション（すなわち、図２に示されるアプリケーション２０７）からの呼び出しを受信することを含む。そのアクティブ・コンテンツは、サーバ・コンピュータからダウンロード可能であるコンテンツ（コンテンツ２２０など）、またはアプリケーション２０７と同じコンピュータ上のコンテンツとすることができる。呼び出しアプリケーション２０７からの呼び出しを受信した後、あらかじめ設定された基準（例えば、信頼ベース・セキュリティ・モデル２６０により定められる）に基づき、どの実行モードがそのアクティブ・コンテンツにアクセスするために使用可能かが（例えば、セキュリティ・マネージャ２５０によって）決定される。これは図４のブロック４１０で示されるステップに示される。次にブロック４１５に示されるように、この方法は、決定された実行モードでアクティブ・コンテンツをアクセスするステップを含む。
【００３５】
上述のように、いくつかの実施形態では、アクティブ・コンテンツにアクセスするために使用可能な実行モードはセーフ・モードおよび信頼モードを含む。信頼モードは通常の実行モードであり、信頼モードでは、コードまたは他のアクティブ・コンテンツの実行または呼び出しは、その呼び出しアプリケーションの特権で許可され、及び起動する。セーフ・モードでは、呼び出しアプリケーションおよびターゲット・アクティブ・コンテンツの一方または両方で信頼を欠いていることを意味し、アクティブ・コンテンツ・ファイルのコンテンツは、可能な範囲で静的にレンダリングまたは表示されるが、アクティブ・コンテンツ内のコードの実行は制限される。例えば、セーフ・モードでは、ＡＣＷおよびシェル実行コンテンツの呼び出しを禁止することができる。また、オンライン・ヘルプ・コンテンツへのアクセスの禁止がこのモードでは実施可能である。アクティブ・コンテンツ・ファイルを静的にレンダリングするために、タイトル、状態プローブおよびビヘイビアは、ＳＥＥ制約（SEE-constrained）の環境でレンダリング可能である。ＳＥＥ（Secure Execution Environment）という用語は、制限され管理されたアプリケーションに対する特別な権限セットを指す。ＳＥＥ制約という用語は概して、ＳＥＥ許可でアセンブリをサンドボックス化する（sandbox）ランタイム環境（おそらくアプリケーション・ドメイン（appdomain））を表す。言い換えれば、ヘルプ・システムは、権限を上げるためのアセンブリによる任意の試みを拒否する。２つの実行モードがこの実施形態例で使用されるが、別の個数の実行モードが他の実施形態で使用可能であることに留意されたい。また、ＳＥＥを使用する代わりに、従来のネイティブ・コード・ベースのセキュリティがいくつかのモードに対して使用可能である。
【００３６】
アクティブ・コンテンツにアクセスするために特定の呼び出しに応じて、実行モードをコントロールするあらかじめ設定された基準は、実施形態例において、  
（１）呼び出しアプリケーションの信頼状態（信頼された、信頼されていない等）と
（２）要求されたアクティブ・コンテンツが信頼されたソースからであるか  
を含む。要求されたアクティブ・コンテンツが信頼されたソースからであるかについての決定は、いくつかの実施形態ではいくつかの基準を含むことが可能である。例えば、１つの基準は、アクティブ・コンテンツが電子的に署名されているか（図３の３０５）である。電子的に署名されていない場合、信頼されたソースからではないと決定される。アクティブ・コンテンツが電子的に署名されている場合であっても、いくつかの実施形態では信頼されたソースであるためには、アクティブ・コンテンツは有効な証明書（図３の３１０）を有する必要がある。さらに別の実施形態では、要求されたアクティブ・コンテンツは、信頼されたソースからであるためには有効なクーポンまたはキー（図３の３１５）を有することがさらに（または代替として）必要である。これは、上述のように、具体的には、コンテンツ（「子のコンテンツ」）を別のコンテンツ（「親のコンテンツ」）にプラグインしようと試みるときに、使われる。
【００３７】
図５は、アクティブ・コンテンツがどの実行モードでアクセス可能であるかを決定する処理における、上述の異なる基準を示す流れ図５００である。判定５０５で、最初に、呼び出しアプリケーションが信頼されたアプリケーションであるかが決定される。呼び出しアプリケーションのアプリケーション状態（application status）が信頼されていない（５０６で表される信頼されていない呼び出しアプリケーション状態）場合、アクティブ・コンテンツは、セーフ・モード（５１０で表される）でアクセスされる。呼び出しアプリケーションの信頼状態が信頼できるものである（５０７で表される信頼された呼び出しアプリケーション状態）場合、実行モード決定処理は判定５１５に続き、この判定でアクティブ・コンテンツ（例えば、ヘルプ・ファイル）が署名されているか否かが決定される。署名されていない場合、アクティブ・コンテンツはセーフ・モード５１０でアクセスされる。アクティブ・コンテンツが署名されている場合、処理は判定５２０に続き、この判定でコンテンツが有効な証明書を有するかが決定される。さらに、コンテンツが有効な証明書を有さない場合、アクティブ・コンテンツはセーフ・モードでアクセスされる。上述のように、判定５１５および５２０は、アクティブ・コンテンツが信頼されたソースからであるかに関する全判定５１２の一部である。
【００３８】
上述のように他の任意の実施形態では、実行モードを決定するステップまたは処理は、判定５２５をさらに含むことが可能であり、この判定で、要求されたコンテンツが有効なクーポンを有するかが決定される。有さないと、セーフ・モード５１０がこの場合も選択された実行モードとなる。これらの基準すべてが満たされる場合、アクティブ・コンテンツは、信頼モードでアクセス可能であり、５３０で表される。しかし、ポリシー２４７は、他の判定ステップが異なる結論に至る場合であっても、どのモードが使用されるかを決定付けることができることに留意されたい。
【００３９】
次に図６を参照すると、信頼されたコンテンツと信頼されていないコンテンツの間の遷移を表した図が示されている。アプリケーションが信頼モードで信頼されたアクティブ・コンテンツ６０５にアクセス中であり、信頼されていないアクティブ・コンテンツ６１０にアクセスする呼び出しが受信されると、セキュリティ・マネージャ２５０は、６０７に示すようにセーフ・モードへと遷移を引き起こす。しかしそれとは対照的に、次に信頼されたアクティブ・コンテンツ６１５にアクセスする呼び出しが受信される場合、セキュリティ・マネージャ２５０は、信頼されていないコンテンツ６１０の特権の上昇を防ぐために６１２に示すようにセーフ・モードで動作し続ける。
【００４０】
しかし、セキュリティ・マネージャ２５０が、信頼されたコンテンツ６２０にアクセス中、信頼モードで動作している場合、他の信頼されたコンテンツ６２５は、信頼されたモードからセーフ・モードへ遷移することなくアクセス可能である。これは図６の６２２で表されている。これは、第１の信頼されたコンテンツは特権の上昇を行わないため、信頼モードにとどまってのる間に他の信頼されたコンテンツがアクセス可能であることを示している。
【００４１】
本主題は、構造的な機能および／または方法論的な行為に特有な言葉で説明されてきたが、添付の特許請求の範囲で定義される主題は、上述の具体的な機能または動作（acts）に必ずしも限定されないことを理解されたい。むしろ、上述の具体的な機能および行為は、特許請求の範囲を実装する例示的な形式として開示されている。
【図面の簡単な説明】
【００４２】
【図１】開示した概念が実行可能な一般的なコンピューティング環境のブロック図である。
【図２】コンピューティング環境における信頼ベース・セキュリティ・モデルの実装のブロック図である。
【図３】例示的な実施形態によるヘルプ・コンテンツの機能を示す図である。
【図４】例示的な方法の実施形態を示す流れ図である。
【図５】例示的な方法のより詳細な実施形態を示す流れ図である。
【図６】信頼されたコンテンツと信頼されていないコンテンツの間の遷移を示す図である。
【図１】
2008547111.tif 000003
【図２】
2008547111.tif 000004
【図３】
2008547111.tif 000005
【図４】
2008547111.tif 000006
【図５】
2008547111.tif 000007
【図６】
2008547111.tif 000008