(57)【特許請求の範囲】
【請求項１】
ガジェットコンテナ（３６）のライブラリ（４４）内でホストされる機能をガジェットのプライマリファイル（３５）内に実装する目的で、これらの機能に対するアクセスを要求している係るガジェットの動作を安全にする方法であって、前記プライマリファイル（３５）が、前記プライマリファイル（３５）を用いて前記機能を前記実装することを可能にするために、ウェブホスティングサーバ（４０）によって前記ガジェットコンテナ（３６）に送信され、
前記ガジェットコンテナ（３６）が、公開鍵（２４）／秘密鍵（１４）の暗号化システムに基づいて、前記ウェブホスティングサーバ（４０）から前記ガジェットの前記プライマリファイル（３５）および前記ガジェットの前記プライマリファイル（３５）に関連する署名（１６）を取り出し、
前記ガジェットコンテナ（３６）が、前記公開鍵／前記秘密鍵の暗号化システムの公開鍵（２４）を用いて、前記ガジェットプライマリファイルに関連する前記署名（１６）を復号し、
前記ガジェットコンテナ（３６）が、前記プライマリファイル（３５）に関連する前記署名（１６）が受け入れられるか、もしくは拒否されるかに応じて、そのライブラリ（４４）機能を前記実装することを許可するか、または拒否するかを決定する、方法。
【請求項２】
前記公開鍵／前記秘密鍵の暗号化システムの秘密鍵（１４）を用いて、前記プライマリファイル（３５）コードに応じた識別子（１２）の暗号化から前記プライマリファイル（３５）に関連する前記署名を導出する、請求項１に記載の方法。
【請求項３】
前記プライマリファイル（３５）コードに応じた前記識別子（１２）が、前記プライマリファイル（３５）のハッシュ関数である、請求項２に記載の方法。
【請求項４】
前記ガジェットコンテナ（３６）が、前記ガジェットコンテナ（３６）が前記許可された秘密鍵（１４）を許可された秘密鍵として識別することと、前記プライマリファイル（３５）の完全性を確立することの両方を行うとき、前記ライブラリ（４４）機能に対する前記アクセスを許可することを決定する、請求項１、２、または３のいずれか１項に記載の方法。
【請求項５】
前記秘密鍵（１４）が認識されない場合、もしくは
前記秘密鍵（１４）が許可されない場合、または
前記プライマリファイル（３５）の完全性が確立されない場合、
前記ガジェットコンテナ（３６）が、前記ライブラリ機能（４４）に対する前記アクセスを拒否することを決定する、請求項１、２、または３のいずれか１項に記載の方法。
【請求項６】
許可の欠如を示すメッセージが、前記ガジェットを動作させることを要求しているウェブブラウザ（３２）に送信される、請求項５に記載の方法。
【請求項７】
アクセスを前記許可することが、一定の時間与えられる、請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記プライマリファイルがＸＭＬファイルであり、前記機能が、Ｊａｖａｓｃｒｉｐｔ（登録商標）コードを備える、請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
ガジェットのプライマリファイル（３５）内に実装されることになる機能をホストするガジェットコンテナ（３６）であって、係るプライマリファイル（３５）が、前記ガジェットコンテナ（３６）による要求時に、ウェブホスティングサーバ（４０）から受信され、請求項１乃至９のいずれか１項に記載の方法を実装するために、
公開鍵／秘密鍵の暗号化システムに基づいて、前記ガジェットの前記プライマリファイル（３５）および前記ガジェットの前記プライマリファイル（３５）に関連する署名（１６）を取り出す手段と、
前記公開鍵／前記秘密鍵の暗号化システムの公開鍵を用いて、前記ガジェットプライマリファイルに関連する前記署名を復号する手段（５０）と、
前記ガジェットコンテナ（３６）が、前記プライマリファイル内の関連する前記署名を受け入れるか、もしくは拒否するかに応じて、前記ライブラリ（４４）の機能に対する前記アクセスを許可するか、または拒否する手段とを備える、ガジェットコンテナ（３６）。
【請求項１０】
その動作のために、ガジェットコンテナ（３６）のライブラリ（４４）内でホストされる機能を実装する目的で、これらの機能に対するアクセスを要求しているガジェットプライマリファイル（３５）であって、請求項１乃至８のいずれか１項に記載の方法を実装する目的で、公開鍵（２４）／秘密鍵（１４）の暗号化システムに基づく、前記ガジェットプライマリファイル（３５）に関連する署名（１６）を備える、ガジェットプライマリファイル（３５）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライブラリに対するガジェットアクセス（ｇａｄｇｅｔ  ａｃｃｅｓｓ）を安全にする方法に関する。
【背景技術】
【０００２】
「ウェブ」と呼ばれるワールドワイドウェブは、インターネットを介してアクセス可能な、連結されたハイパーテキストページのシステムである。より正確には、ユーザは、ウェブブラウザを動作させて、離れたウェブサーバ内に格納されたウェブページを自らのコンピュータ上に表示することが可能である。
【０００３】
そのために、ウェブブラウザは、インターネットを経由して、係るウェブページのコードソースをウェブサーバからコンピュータにダウンロードする。
【０００４】
係るウェブページは、テキスト、画像、およびビデオなどのマルチメディアデータを含むこと、ならびに／またはアプリケーションに対するアクセスを提供することが可能である。また、ウェブページは、一般に、ハイパーリンクを使用して、ウェブページ同士の間のナビゲーションを可能にする。
【０００５】
ウェブによって配信されたコンテンツ内の相互接続性および対話性を増大させるために、特定の技術が開発されており、そのような技術は、一般に、ウェブ２．０と名付けられている。
【０００６】
ウェブ２．０は、ユーザが、先のウェブにおけるように、アプリケーションおよび／または情報を取り出すことだけでなく、ユーザがそれらの作成および／または開発に関与することも可能にする。
【０００７】
ウェブ２．０のこのような状況において、ウェブページ内にインストールして、ウェブページ内で実行することが可能なアプリケーションをエンドユーザに提供するために、「ガジェット」または「ウィジェット」と呼ばれる携帯用のソフトウェアプログラムが開発されている。
【０００８】
実際には、ウェブガジェットは、拡張可能ハイパーテキストマークアップ言語（ＸＨＴＭＬ）など、マークアップ言語の作成を可能にする汎用仕様である、拡張可能マークアップ言語（ＸＭＬ）に基づくファイルである。
【０００９】
ガジェットは、その他のアプリケーション内に埋め込まれたオブジェクトにアクセスするために、ＸＨＴＭＬ要素、メタデータ、およびＪａｖａＳｃｒｉｐｔ（登録商標）などのスクリプト言語も使用する。
【００１０】
ガジェットを動作させるために、ウェブブラウザは、その後、プライマリファイルと呼ばれる、ガジェットのＸＭＬファイル内で実装されることになる機能を格納する、その後、ガジェットコンテナと呼ばれる特定のサーバからガジェットをダウンロードする必要がある。
【００１１】
より正確には、このガジェットコンテナは、ウェブホスティングサーバ（Ｗｅｂ  ｈｏｓｔｉｎｇ  ｓｅｒｖｅｒ）にガジェットＸＭＬファイルを送信することを要求し、受信後、係るＸＭＬファイル内、すなわちプライマリファイル内の機能を実装する。
【００１２】
ガジェットは、独立した開発者によって作成されるが、何らかの互換性を提供するために、その中で実装されることになる機能は、事実上、定義および／または標準化されている。その後、ガジェットを実行するために定義された機能のセットは、ライブラリと呼ばれる。
【００１３】
したがって、ウィジェットの動作において、係る機能、すなわち、通常、ＪａｖａＳｃｒｉｐｔ（登録商標）インターフェース、すなわちＪａｖａＳｃｒｉｐｔ（登録商標）ＡＰＩを使用している開発者は、それらの所与の機能に準拠している任意のコンテナを介してそのウィジェットを実装することが可能であるという保証を有する。
【００１４】
一例として、ある特別な機能、すなわち、ｇａｄｇｅｔｓ．ｕｔｉｌ．ｈａｓＦｅａｔｕｒｅ（ｆｅａｔｕｒｅ  ｎａｍｅ）はコンテナ内の別の機能の存在を検査することを可能にする。
【００１５】
それでもなお、ガジェット開発に伴う問題は、ユーザにスパムを送信するためにガジェットを開発する可能性にある。例えば、サービスプロバイダが、ガジェットが電子メールを送信すること、または電話呼を開始することを可能にする新しい標準機能を提供した場合、スパム開発者は、ガジェットの作成を試みる可能性があり、これは、ユーザにスパムを送信するために、その機能を不正に使用することになる。
【００１６】
その問題に関して提案される解決法は、例えば、その使用を限定数の動作に限定することによって、スパミングガジェット（ｓｐａｍｍｉｎｇ  ｇａｄｇｅｔ）の動作を回避するために、ライブラリに対するアクセスを制限することであり得る。それでもなお、この制限は、ガジェット開発理念に従って、ガジェットの開発がどこでもホストされて、誰によっても複製されることを可能にしない。これは、特定の開発者が信頼できることが知られている場合ですら、かつ／またはガジェットのコードがガジェットコンテナ所有者によって周到に検査された場合ですら、ガジェットの開発を抑制することにもなる。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本発明は、ガジェット開発に対する一般アクセスおよびガジェット動作に関する強化されたセキュリティの両方を可能にする方法を提供することによって、係る問題を解決することを目的とする。
【課題を解決するための手段】
【００１８】
そのために、本発明は、ガジェットコンテナのライブラリ内でホストされる機能をガジェットのプライマリファイル内に実装する目的で、これら機能に対するアクセスを要求している係るガジェットの動作を安全にするための方法に関し、このプライマリファイルは、プライマリファイルを用いてそれらの機能を実装することを可能にするために、ウェブホスティングサーバによってそのガジェットコンテナに送信され、
このガジェットコンテナは、公開鍵／秘密鍵の暗号化システムに基づいて、ガジェットのプライマリファイルに関連する署名を用いて、ウェブホスティングサーバからガジェットのプライマリファイルを取り出し、
このガジェットコンテナは、公開鍵／秘密鍵の暗号化システムの公開鍵を用いて、そのガジェットプライマリファイルに関連する署名を制御し、
このガジェットコンテナは、そのガジェットコンテナが、そのプライマリファイルに関連する署名を受け入れるか、もしくは拒否するかに応じて、そのライブラリ機能を実装することを許可するか、または拒否するかを決定する。
【００１９】
本発明による方法は、オープンスタンダードを介してガジェットをプログラムする容易さを維持しながら、ガジェットコンテナ内に格納された特定の機能の使用に関して容易で透明なサービス合意を配信する。
【００２０】
したがって、このガジェットは、暗号化されるのではなく、署名され、その結果、ガジェットを開発するため、および／またはガジェットを使用するために、誰もがそのコードを審査することが可能であるため、本発明はガジェットの手法に完全に準拠する。
【００２１】
一実施形態では、公開鍵／秘密鍵の暗号化システムの秘密鍵を用いて、プライマリファイルコードに応じた識別子の暗号化からプライマリファイルに関連する署名を導出する。
【００２２】
一実施形態では、プライマリファイルコードに応じた識別子は、プライマリファイルのハッシュ関数である。
【００２３】
一実施形態では、このガジェットコンテナは、そのガジェットコンテナが許可された秘密鍵を許可された秘密鍵として識別することと、プライマリファイルの完全性を確立することの両方を行うとき、ライブラリの機能に対するアクセスを許可することを決定する。
【００２４】
一実施形態では、このガジェットコンテナは、
秘密鍵が認識されない場合、もしくは
秘密鍵が許可されない場合、または
プライマリファイルの完全性が確立されない場合、ライブラリ機能に対するアクセスを拒否することを決定する。
【００２５】
この場合、そのガジェットを動作させることを要求しているウェブブラウザに許可の欠如を示すメッセージを送信することが可能である。
【００２６】
一実施形態では、この機能は、そのガジェットを動作させる要求に関連するＩＰアドレスに応じて、動的に生成される。
【００２７】
一実施形態では、アクセスの許可は、一定の時間不足に対して与えられる。
【００２８】
一実施形態では、このプライマリファイルはＸＭＬファイルであり、これらの機能はＪａｖａｓｃｒｉｐｔ（登録商標）コードを備える。
【００２９】
本発明は、ガジェットのプライマリファイル内に実装されることになる機能をホストするガジェットコンテナにも関し、係るプライマリファイルは、ガジェットコンテナによる要求時に、ウェブホスティングサーバから受信され、このガジェットコンテナは、これまでの実施形態のうちのいずれかによる方法を実装するために、
公開鍵／秘密鍵の暗号化システムに基づいて、ガジェットのプライマリファイルに関連する署名を用いてガジェットのプライマリファイルを取り出すための手段と、
公開鍵／秘密鍵の暗号化システムの公開鍵を用いて、ガジェットプライマリファイルに関連する署名を制御するための手段と、
そのガジェットコンテナが、プライマリファイルに関連する署名を受け入れるか、もしくは拒否するかに応じて、ライブラリの機能に対するアクセスを許可するか、または拒否するための手段とを備える。
【００３０】
本発明は、その動作のために、ガジェットコンテナのライブラリ内でホストされる機能を実装する目的で、これらの機能に対するアクセスを要求しているガジェットプライマリファイルにも関し、このガジェットプライマリファイルは、これまでの実施形態のうちのいずれかによる方法を実装するために、公開鍵／秘密鍵の暗号化システムに基づく、そのガジェットプライマリファイルに関連する署名を備える。
【００３１】
本発明の前述の態様および付随する利点の多くは、添付の図面と共に、以下の詳細な説明を参照することによって、これらがより良好に理解されるにつれて、より容易に理解されよう。
【図面の簡単な説明】
【００３２】
【図１】本発明で使用されるようなデジタル署名のための公開鍵／秘密鍵のシステムの動作を表す図である。
【図２】本発明で使用されるようなデジタル署名のための公開鍵／秘密鍵のシステムの動作を表す図である。
【図３】本発明による一方法における一続きの動作を表す図である。
【発明を実施するための形態】
【００３３】
図１および２を参照すると、非対称暗号化としても知れている、公開鍵暗号化を介した署名の本質的な態様が表される。
【００３４】
この形態の暗号化の１つの適用例では、ファイルを暗号化するために複数の異なる秘密鍵のうちのいずれかを使用することが可能であり、一方、そのファイルを暗号化するためにどの秘密鍵が使用されたかを識別する目的で、公開鍵を使用することが可能である。
【００３５】
そのために、公開鍵および秘密鍵は、それによって、公開鍵コードから秘密鍵コードを実質的に導出することができず、一方、秘密鍵ベースの暗号化を復号するために公開鍵を使用することが可能な、数学的に関連するコードである。
【００３６】
さらに、秘密鍵署名は、その後、秘密鍵１４が暗号化する、このファイル１０の識別子１２、例えば、そのハッシュ関数を得るためにファイル処理を必要とする。
【００３７】
その後、秘密鍵１４を用いて識別子１２を暗号化することによって、ファイル１０の暗号化された署名１６が取得される。終えるために、その後、署名されたファイル１９の署名を検証するために使用されるべき公開鍵２４を識別する目的で、証明書１８は暗号化された署名１６とファイル１０とに連結される。
【００３８】
そのために、識別子２２、すなわち、この例によれば、そのハッシュ関数をこのファイル２０から導出するように、かつ、識別子２２’、すなわち、この例によれば、そのハッシュ関数を取得するために、公開鍵２４が署名２６を復号するように、ファイル２０と暗号化された署名２６との両方を取り出す目的で、署名されたファイル１９（図２）は処理される。
【００３９】
識別子１２、２２、および２２’が同一である場合、ファイル２０はファイル１０に対応すること（完全性条件）、およびファイル２０は識別され得る秘密鍵１４によって署名されたこと（識別条件）が確定される。
【００４０】
係る署名識別プロセスは、署名をガジェットコード内に組み込むために秘密鍵が使用される、本発明のこの実施形態において使用される。
【００４１】
より正確には、図１を参照して予め説明されたように、そのハッシュ関数など、係るガジェットコードの識別子を暗号化するために、秘密鍵が使用される。例えば、係る署名は、以下の順序のように、ガジェットのプライマリコード内、すなわちＸＭＬコード内のヘディング「署名」の下に出現し得る。
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Hello world example">
<Require feature="restrictedLibrary"/>
<Signature keyId="EtPPe87EdE33Mqs">
iQCVwUBNl6/9rgiQr+16we9AQExEQP/esoaFA/wLiYrhrfBJqGnMJZRI3WI8jZ/f2fMU3qPfOWGkOoyZBujsq1kMEaxai4m+WqaXIemZdsQFaiRxaJTcrE1Sv+8DeaNTQIgMila/Cp/d1ZGjYkgbfFdat/Y8iualJFiEddMK2L/Mf0hhSo1ozSmxizYY1U
</Signature>
</ModulePrefs>
<Content type="html">
<![CDATA[ <div id="data"></div>
<script type="text/javascript">
restrictedLibrary.action ();
</script>
]]>
</Content>
</Module>
【００４２】
この例において提示される様々なパラメータ、例えば、ＸＭＬタグの名称、ＸＭＬストリーム内のその位置、署名の種類、ガジェット仕様のタイプは、署名されることになるガジェットに応じて異なる可能性があるため、これらのパラメータは本発明の範囲を限定しない点が強調される。
【００４３】
図３を参照して、下に説明される一続きの動作に続いて、ホストされる機能に対するそのアクセスを制御するために、そのコードに関連する秘密署名を用いて、ガジェットコンテナによってガジェットファイルを識別することが可能であり、この場合、秘密鍵／公開鍵を参照するために、図１および２において使用された基準を使用することが可能である。
【００４４】
ガジェット動作から始めると、ウェブブラウザ３２は、ガジェットに関連するＨＴＭＬｉフレームタグ３０の活性化時に、係るガジェットのダウンロードを要求する。例えば、ｉフレームタグは以下のように出現し得る。
<iframe src="http://shindig.alea.net/gadget?url=http:/ /repository.gadget.com/shadok.xml">
【００４５】
ｉフレーム３０が、係るガジェットに関する機能をホストするコンテナ３６に要求３４を送信するようにウェブブラウザ３２を導くと、ガジェットコンテナ３６は、下でプライマリファイルとも呼ばれているＸＭＬファイルなど、ガジェットのＸＭＬファイル３５を得るために、ウェブホスティングサーバ４０に要求３８を送信する。
【００４６】
ウェブホスティングサーバ４０は、ガジェットコンテナ３６のライブラリ４４から取り出された機能を用いてこのプライマリファイル３５を実装させるために、プライマリファイル３５をガジェットコンテナ３６に送信する（ステップ４２）。
【００４７】
本発明によれば、ガジェットコンテナ３６は、係る機能に関してライブラリ４４にアクセスするために、許可４８が必要とされるかどうかを決定する目的で、第１の制御４６を動作させる。
【００４８】
そうである場合、ガジェットコンテナ３６は、ガジェットＸＭＬファイルが、ガジェットコンテナによって許可された公開鍵に対する参照を備えることを確実にする目的で、コントローラ５０を介して第２の制御５２を動作させる。
【００４９】
やはりそうである場合、ガジェットコンテナ３６は、ガジェットＸＭＬファイル３５が有効な署名１６、すなわち、ガジェットコンテナ３６によって参照された署名を備えることを確実にする目的で、第３の制御５４を動作させる。この制御は、図２を参照してすでに説明されたように動作する。
【００５０】
公開鍵２４が許可された秘密鍵１４を識別すること、およびプライマリファイルの完全性を認識することに成功した場合、ガジェットコンテナ３６は、見返りに、ライブラリの必要とされる機能５８、一般に、ＪａｖａＳｃｒｉｐｔ実装コードを得る目的で、そのライブラリ４４に対する要求５６を動作させる。
【００５１】
したがって、すなわち、そのＪａｖａＳｃｒｉｐｔコードを処理することによって、ウェブブラウザ３２にガジェットを動作させるために、アクティブなガジェットコード６０をウェブブラウザ３２に送信することが可能である（ステップ６１）。
【００５２】
ガジェットが、正確な公開鍵を参照しない場合（制御５２）、または受け入れられた秘密鍵を備えない場合もしくは完全性を証明し損なった場合（制御５４）、ガジェットコンテナ３６は、ライブラリ４４にアクセスするための許可を得るためのプロセスを中断して、そのガジェットがそのライブラリに対するアクセスを得るための許可の欠如のメッセージを配信する。
【００５３】
マークアップ言語ウェブベースのページは、ＨＴＭＬベースのウェブページであってよいが、任意の種類のＸＭＬ文書および／または標準一般化マークアップ言語のＳＧＭＬなど、そこから導出されたアプリケーションであってもよい点が強調されなければならない。
【００５４】
本発明は、特許請求される発明の範囲内の関連実施形態の形で導出可能である。例えば、ガジェットに関連する識別署名は、データベース内に格納されて、データベース内で参照されることが可能であり、このガジェットコードは、署名の代わりに、データベースを参照することを備える。
【００５５】
これらの実施形態によれば、ウィジェットのプライマリファイル内で実施されることになる機能は、ウェブサーバのＩＰアドレスに応じて、動的に生成可能であり、かつ／またはこの期間の間、ガジェット機能に関するさらなるクエリ６２がライブラリアクセス制御なしに自動的に受け入れられるように、一定期間の間、アクセスのための所与の許可が与えられる。
【図１】
0005474091.tif 000002
【図２】
0005474091.tif 000003
【図３】
0005474091.tif 000004