(57)【要約】関連ソフトウエア部品から第１ソフトウエア部品識別子を引き出す過程と、該ソフトウエア部品上で完全性試験を行うことにより完全性試験データを創る過程と、証明書オリジネーターにより該完全性試験データを含む完全性証明書を創る過程と、該完全性証明書オリジネーターにより該完全性証明書を該第１ソフトウエア部品識別子でラベル付けする過程と、ユーザーのコンピュータ（３）により該ソフトウエア部品を検索する過程と、ダウンロードされた該ソフトウエア部品から該ユーザーのコンピュータ（３）により第２ソフトウエア部品識別子を引き出す過程と、該第２ソフトウエア部品識別子を使って該ユーザーのコンピュータ（３）により該完全性証明書を検索する過程と、該ユーザーのコンピュータ（３）により該完全性試験データをユーザーに開示する過程と、を具備するソフトウエア部品を配送するための方法。
2006520936.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエア部品を配送する方法に於いて、該方法が、
関連するソフトウエア部品から第１ソフトウエア部品識別子を引き出す過程と、
該ソフトウエア部品上で完全性試験を行うことにより完全性試験データを創る過程と、
該第１ソフトウエア部品識別子を使って該完全性試験データを含む完全性証明書を該完全性証明書のオリジネーターにより創る過程と、
ユーザーのコンピュータ（３）により該ソフトウエア部品を検索する過程と、
ダウンロードされた該ソフトウエア部品から第２ソフトウエア部品識別子を該ユーザーのコンピュータ（３）により引き出す過程と、
該第２ソフトウエア部品識別子を使って該ユーザーのコンピュータ（３）により該完全性証明書を検索する過程と、
該ユーザーのコンピュータ（３）により該完全性試験データをユーザーに開示する過程と、を具備することを特徴とする該方法。
【請求項２】
更に該第１ソフトウエア部品識別子を使って該関連ソフトウエア部品の該完全性証明書を証明書レジスター（４）内に登録する過程を具備することを特徴とする請求項１の該方法。
【請求項３】
該完全性証明書を該検索する過程が該証明書レジスターにアクセスする過程を備えることを特徴とする請求項２の該方法。
【請求項４】
更に該完全性証明書オリジネーターの素性を検証する過程を具備することを特徴とする請求項１−３の何れかの該方法。
【請求項５】
更に該完全性証明書にデジタル署名を付加する過程を具備することを特徴とする請求項４の該方法。
【請求項６】
該デジタル署名を検証する過程を具備することを特徴とする請求項５の該方法。
【請求項７】
更に該検索される完全性データをユーザーの好む要求とマッチさせる過程を具備することを特徴とする前記請求項の何れかの該方法。
【請求項８】
該関連する完全性証明書が該ユーザーのサイトでレジスターから検索されることを特徴とする請求項１の該方法。
【請求項９】
該関連する完全性証明書が該関連するソフトウエア部品供給者のコンピュータから検索されることを特徴とする請求項１の該方法。
【請求項１０】
該関連する完全性証明書が信頼される証明書オリジネーターのコンピュータから検索されることを特徴とする請求項１の該方法。
【請求項１１】
該完全性証明書が該ユーザーのコンピュータ（３）へイーメールを通してメールされることを特徴とする前記請求項の何れかの該方法。
【請求項１２】
サーバー（４）に於いて、該サーバーが、
−関連するソフトウエア部品から第１ソフトウエア部品識別子を引き出し、
−該ソフトウエア部品上で完全性試験を行うことにより完全性試験データを創り、
−該完全性試験データを含む完全性証明書を証明書オリジネーターにより創り、
−該完全性証明書オリジネーターにより該完全性証明書に該第１ソフトウエア部品識別子でラベル付けし、
−ユーザーのコンピュータ（３）による該ソフトウエア部品の検索を可能にし、
−第２ソフトウエア部品識別子を使う該ユーザーのコンピュータ（３）による該完全性証明書の検索を可能にするよう配置されることを特徴とする該サーバー（４）。
【請求項１３】
ユーザーのコンピュータ（３）に於いて、該コンピュータが、
−ユーザーのコンピュータ（３）によりソフトウエア部品を検索し、
−ダウンロードされた該ソフトウエア部品から第２ソフトウエア部品識別子を該ユーザーのコンピュータ（３）により引き出し、
−該ソフトウエア部品識別子を使って完全性証明書を検索し、
−完全性試験データをユーザーに開示するよう配置されることを特徴とする該ユーザーのコンピュータ（３）。
【請求項１４】
ユーザーのコンピュータ（３）上にインストールするためのコンピュータプログラムを有する、磁気又は光デイスクの様なデータキャリアに於いて、該コンピュータプログラムが、
−ユーザーのコンピュータ（３）によりソフトウエア部品を検索する過程と、
−該検索されたソフトウエア部品からソフトウエア部品識別子を該ユーザーのコンピュータ（３）により引き出す過程と、
−該ソフトウエア部品識別子を使って完全性証明書を検索する過程と、
−完全性試験データをユーザーに開示する過程と、を行うよう該ユーザーのコンピュータ（３）を配置するためであることを特徴とする該データキャリア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウエア部品（ｓｏｆｔｗａｒｅ  ｃｏｍｐｏｎｅｎｔｓ）配送（ｄｉｓｔｒｉｂｕｔｉｏｎ）用のコンピュータプログラムを有する方法、サーバー、ユーザーのコンピュータ（ｕｓｅｒ’ｓ  ｃｏｍｐｕｔｅｒ）、及びソフトウエアキャリア（ｓｏｆｔｗａｒｅ  ｃａｒｒｉｅｒ）に関する。
【背景技術】
【０００２】
現在、年間数十億ドルが誤動作ソフトウエア部品（ｍａｌｆｕｎｃｔｉｏｎｉｎｇ  ｓｏｆｔｗａｒｅ  ｃｏｍｐｏｎｅｎｔｓ）により引き起こされる損失となっている。例えば、インターネットを経由したソフトウエア部品の配送は一般的に受け入れられた慣行であるが、ユーザーのシステム、例えば、ＰＣにダメッジを与える（ｄａｍａｇｉｎｇ）ことなく該ソフトウエアの適当な実行（ｐｒｏｐｅｒ  ｅｘｅｃｕｔｉｏｎ）を保証（ｇｕａｒａｎｔｅｅ）する方法には不適切なところがある（ｉｎａｄｅｑｕａｔｅ）。
【０００３】
この点で下記のことが公知である。
１，関連部品プロバイダーがデジタル証明書（ｄｉｇｉｔａｌ  ｃｅｒｔｉｆｉｃａｔｅ）を使ってそのソフトウエア部品にサインする（ｓｉｇｎｓ）｛例えば、マイクロソフトの（Ｍｉｃｒｏｓｏｆｔ’ｓ）”オーセンチコード（Ａｕｔｈｅｎｔｉｃｏｄｅ）”｝。この公知の方法は下記の様に幾つかの欠点を有する。
−該公知の証明書は該部品自体｛の機能性（ｆｕｎｃｔｉｏｎａｌｉｔｙ）｝には関係せず、それが製造者｛例えば、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）｝により作られたことを証明（ｃｅｒｔｉｆｙ）する。
−該公知の証明書は該部品の機能性に関しての保証（ｇｕａｒａｎｔｅｅ）を提供せず、該部品がこの様な機能性を正しく実現することも保証しない。
【０００４】
最終ユーザー（ｅｎｄ  ｕｓｅｒ）が信頼しているのではない製造者が該公知の証明書を創るかも知れない。
２．該部品は、部品が行い得ることを制限し、制御するようにこの様な部品用の実行環境を提供する’環境ソフトウエア（ｅｎｖｉｒｏｎｍｅｎｔ  ｓｏｆｔｗａｒｅ）’内で実行する。’環境ソフトウエア’の例は、ジャババーチャルマシン（Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）、ビジュアルベーシックランタイム環境（Ｖｉｓｕａｌ  Ｂａｓｉｃ  Ｒｕｎｔｉｍｅ  ｅｎｖｉｒｏｎｍｅｎｔ）、フラッシュ環境（ｔｈｅ  Ｆｌａｓｈ  ｅｎｖｉｒｏｎｍｅｎｔ）である。これは下記欠点を有する。
−最終ユーザーは、この様な環境内で、アクチブな部品がどの機能性を使用出来てそしてどの機能性を使用出来ないかを見出すのが難しい（もし不可能でなくても）。その結果、最終ユーザーは部品を実行することにより彼がラン（ｒｕｎｓ）させるリスクを決定出来ない。
−事実上実行環境がその申し立てた機能性を実現する保証は無く、それが何等かの他の機能性を実行を防止する保証もない。
−該環境ソフトウエア自身がアクチブ部品と見られ得る。この様な部品用には、それが行うと仮定されたものだけを行うことを保証する（オペレーテイングシステムの他の）環境ソフトウエアはない。
３．部品は部品プロバイダーの関心に役立つが、最終ユーザーの関心を危うくする機能性を益々含める傾向がある｛スパイウエア（ｓｐｙ−ｗａｒｅ）｝。該部品プロバイダーはこのソフトウエアにサインする何らの問題も有しないが、ユーザーはなおそれが自分のプライバシーに触れる時この様な機能性を評価しないかも知れない。
４．該部品プロバイダーは或る種のバージョン管理を実施し、安全欠陥が検出された場合ソフトウエアの補修（ｐａｔｃｈｉｎｇ）の目的で、定期的に実行部品に更新をチェックさせる。これは該部品プロバイダーにとって有用であるが、この方法はユーザーが既にあると期待して来た完全性を達成する’事後的（ｐｏｓｔｅｒｉｏｒｉ）’手段（ｍｅａｎ）である。
５．ハードウエア又は他の実体のある製品（ｔａｎｇｉｂｌｅ  ｐｒｏｄｕｃｔｓ）の完全性を保証する方法は既に存在する（例えば、共通基準証明手順（Ｃｏｍｍｏｎ  Ｃｒｉｔｅｒｉａ  ｃｅｒｔｉｆｉｃａｔｉｏｎ  ｐｒｏｃｅｄｕｒｅ）｝。しかしながら、これは動作環境内で用いられるべきソフトウエア部品用のオンライン、実時間の解決策（ｏｎ−ｌｉｎｅ，  ｒｅａｌ−ｔｉｍｅ  ｓｏｌｕｔｉｏｎ）ではない。
【０００５】
現在の開発はソフトウエア及びソフトウエア部品の標準化された試験について公知である。この様なソフトウエアはローバストさ（ｒｏｂｕｓｔｎｅｓｓ）、信頼性の健全性（ｒｅｌｉａｂｉｌｉｔｙ  ｓｏｕｎｄｎｅｓｓ）、完成度（ｃｏｍｐｌｅｔｅｎｅｓｓ）、機能性（ｆｕｎｃｔｉｏｎａｌｉｔｙ）、他の様な基準に関する品質標準に対しテストされ得る。これらの基準は”共通基準（Ｃｏｍｍｏｎ  Ｃｒｉｔｅｒｉａ）｛シーシー（ＣＣ）｝”として公知である。該シーシーは国際コミュニテイ内で広く有用なＩＴ安全の評価用基準（ｃｒｉｔｅｒｉａ  ｆｏｒ  ｅｖａｌｕａｔｉｏｎ  ｏｆ  ＩＴ  ｓｅｃｕｒｉｔｙ）を開発する一連の努力の結果を表す。１９８０年代の早い時期にトラステッドコンピュータシステム評価基準（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｅｖａｌｕａｔｉｏｎ  Ｃｒｉｔｅｒｉａ）｛テーシーエスイーシー（ＴＣＳＥＣ）｝が米国で開発された。続く１０年間に、種々の国が、該テーシーエスイーシーの概念上で形成されるが、一般的により柔軟でＩＴの進化性（ｅｖｏｌｖｉｎｇ  ｎａｔｕｒｅ  ｏｆ  ＩＴ）に適合する評価基準を開発する提案（ｉｎｉｔｉａｔｉｖｅｓ）を始めた。欧州では、欧州委員会が、フランス、ドイツ、ネーデルランドそしてイギリスの国々による合同開発の後１９９１年に情報技術安全評価基準（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  Ｓｅｃｕｒｉｔｙ  Ｅｖａｌｕａｔｉｏｎ  Ｃｒｉｔｅｒｉａ）｛アイテーエスイーシー（ＩＴＳＥＣ）｝第１．２版を刊行した。カナダでは、カナデイアントラステッドコンピュータ製品評価基準（Ｃａｎａｄｉａｎ  Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｄｕｃｔ  Ｅｖａｌｕａｔｉｏｎ  Ｃｒｉｔｅｒｉａ）｛シーテーシーピーイーシー（ＣＴＣＰＥＣ）｝第３．０版が該アイテーエスイーシーとテーシーエスイーシーの取り組みの組み合わせとして１９９３年の早い時期に刊行された。米国では、評価基準用の北米及び欧州の概念の組み合わせへの第２の取り組みとして、情報技術安全用連邦基準草案（ｄｒａｆｔ  Ｆｅｄｅｒａｌ  Ｃｒｉｔｅｒｉａ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  Ｓｅｃｕｒｉｔｙ）｛エフシー（ＦＣ）｝第１．０版も１９９３年の早い時期に刊行された。１９９０年には一般的使用のための国際標準評価基準のセットを開発する作業が国際標準機構（ＩＳＯ）内で始まった。新基準｛シーシー（ＣＣ）｝はグローバルなＩＴ市場で標準化された安全評価結果の相互の認識のためのニーヅに応答するべきである［非特許文献４］。
【０００６】
例えユーザーがデジタル署名（ｄｉｇｉｔａｌ  ｓｉｇｎａｔｕｒｅ）を用いたソフトウエア製造者の素性（ｉｄｅｎｔｉｔｙ）をチェックしても、しかし該ユーザーによりダウンロードされたソフトウエアが該製造者の仕様書と品質標準でコンパイルされている保証（ｇｕａｒａｎｔｅｅ）はない。
【非特許文献１】ｈｔｔｐ：／／ｌｏｏｋｕｐ．ａｔｏｍｉｃａ．ｃｏｍ．／ａｔｏｍｉｃａ２／ｑｕｅｒｙ？ｓ＝ｈａｓｈ  ｖａｌｕｅ｛（ｃ）Ｃｏｍｐｕｔｅｒ  Ｌａｎｇｕａｇｅ  Ｃｏｍｐａｎｙ  Ｉｎｃ｝
【非特許文献２】ｈｔｔｐ：／／ｌｏｏｋｕｐ．ａｔｏｍｉｃａ．ｃｏｍ／ａｔｏｍｉｃａ２／ｑｕｅｒｙ？ｓ＝ｄｉｇｉｔａｌ  ｓｉｇｎａｔｕｒｅ｛（ｃ）Ｃｏｍｐｕｔｅｒ  Ｌａｎｇｕａｇｅ  Ｃｏｍｐａｎｙ  Ｉｎｃ｝
【非特許文献３】ｈｔｔｐ：／／ｗｗｗ．ｃｏｌｕｍｂｉａ．ｅｄｕ／ａｃｉｓ／ｒａｄ／  ｃｏｌｕｍｂｉａｃａ／ｍｏｒｅ−ｉｎｆｏ−ｃａｓ．ｈｔｍｌ
【非特許文献４】ｈｔｔｐ：／／ｗｗｗ．ｃｏｍｍｏｎｃｒｉｔｅｒｉａ．ｏｒｇ／ｄｏｃｓ／ｏｒｉｇｉｎｓ．ｈｔｎｌ
【非特許文献５】ｈｔｔｐ：／／ｗｗｗ．ｎｓｔｌ．ｃｏｍ／
【非特許文献６】ｈｔｔｐ：／／ｗｗｗ．ｉｂｅｔａ．ｃｏｍ／
【非特許文献７】ｈｔｔｐ：／／ｗｗｗ．ｔｎｏ．ｎｌ
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、そこではソフトウエアが良く規定された仕様書及び試験基準により検証（ｖｅｒｉｆｉｅｄ）され得る様な、ソフトウエアの配送（ｄｉｓｔｒｉｂｕｔｉｏｎ）を可能にすることである。
【課題を解決するための手段】
【０００８】
この目的は、ソフトウエア部品（ｓｏｆｔｗａｒｅ  ｃｏｍｐｏｎｅｎｔｓ）の配送用の方法で達成されるが、該方法は、関連ソフトウエア部品から第１ソフトウエア部品識別子（ｆｉｒｓｔ  ｓｏｆｔｗａｒｅ  ｃｏｍｐｏｎｅｎｔｓ  ｉｄｅｎｔｉｆｉｅｒ）を引き出す（ｄｅｒｉｖｉｎｇ）過程と、該ソフトウエア部品の完全性試験（ｉｎｔｅｇｒｉｔｙ  ｔｅｓｔ）を行うことにより完全性試験データを創る過程と、証明書オリジネーター（ｃｅｒｔｉｆｉｃａｔｅ  ｏｒｉｇｉｎａｔｏｒ）により該完全性試験データを有する完全性証明書（ｉｎｔｅｇｒｉｔｙ  ｃｅｒｔｉｆｉｃａｔｅ）を創る過程と、該完全性証明書オリジネーターにより該完全性証明書に該第１ソフトウエア部品識別子をラベル付けする過程と、ユーザーのコンピュータにより該ソフトウエア部品を検索する過程と、ダウンロードされたソフトウエア部品から第２ソフトウエア部品識別子を該ユーザーのコンピュータにより引き出す過程と、該第２ソフトウエア部品識別子を使って該ユーザーのコンピュータにより該完全性証明書を検索する過程と、該ユーザーのコンピュータにより該完全性試験データをユーザーに開示する過程と、を具備する。
【０００９】
この方法では、ソフトウエアを取得したユーザーは、該ソフトウエアが彼の期待、例えば、関係するソフトウエア製造者により指定された版、機能性、安全性、他の様な、彼の期待に適合するかどうかを容易にチェック出来る。
【００１０】
或るソフトウエア部品を使うよう意図するユーザーは、そのソフトウエア部品を選択し、ソフトウエアフアイルの安全ハッシュ値又はダイジェスト（ｓｅｃｕｒｅ  ｈａｓｈ  ｖａｌｕｅ  ｏｒ  ｄｉｇｅｓｔ）すなわち１方向性ハッシュ関数の固定長さ結果（ｆｉｘｅｄ  ｌｅｎｇｔｈ  ｒｅｓｕｌｔ  ｏｆ  ａ  ｏｎｅ−ｗａｙ  ｈａｓｈ  ｆｕｎｃｔｉｏｎ）、を計算することにより、そのソフトウエア識別子（ｓｏｆｔｗａｒｅ  ｉｄｅｎｔｉｆｉｅｒ）を引き出してもよい。該証明書レジスター（ｃｅｒｔｉｆｉｃａｔｅ  ｒｅｇｉｓｔｅｒ）から選択されたソフトウエア部品の完全性証明書が検索され、検査（ｉｎｓｐｅｃｔｅｄ）され、手動で又は例えば該ユーザーのクライアントソフトウエア（ｕｓｅｒ’ｓ  ｃｌｉｅｎｔ  ｓｏｆｔｗａｒｅ）により評価（ｅｖａｌｕａｔｅｄ）されてもよい。該ソフトウエア部品を実行するかしないかの決定はこの様な評価の結果に基づいてもよい。
【００１１】
好ましくは、完全性証明書オリジネーターの素性は該ユーザーにより、例えば、発行者のデジタル署名（ｄｉｇｉｔａｌ  ｓｉｇｎａｔｕｒｅ）をチェックすることにより、検証されるのがよい。デジタル署名はサインされたフアイル（データ）は、恰もそれが電子的にシールされた封筒内で運ばれたかの様に、変えられなかったことを保証する。該”署名（ｓｉｇｎａｔｕｒｅ）”は該フアイルの暗号化されたダイジェスト（１方向性ハッシュ関数）とすることも出来る。該ユーザーは送られた該証明書から第１ダイジェスト（ｆｉｒｓｔ  ｄｉｇｅｓｔ）を抽出し、該受信されたフアイルから第２ダイジェストを計算する。もし第１及び第２ダイジェストがマッチすれば、該フアイルは送信者から完全で、攻撃無しであったことになる（ｔｈｅ  ｆｉｌｅ  ｉｓ  ｐｒｏｖｅｄ  ｉｎｔａｃｔ  ａｎｄ  ｔａｍｐｅｒ  ｆｒｅｅ  ｆｒｏｍ  ｓｅｎｄｅｒ）［非特許文献２］。該完全性証明書オリジネーターは”信頼される（ｔｒｕｓｔｅｄ）”と指示されてもよい。該ユーザーには、彼が望む品質と特性を有するソフトウエアを取得し、該完全性証明書が彼の選んだ完全性証明書オリジネーターから確かに来ることは確実である。
【００１２】
もう１つの側面はユーザーが該ソフトウエア部品の完全性に関し好む（最小の）要求｛ｐｒｅｆｅｒｅｄ（ｅ．ｇ．  ｍｉｎｉｍｕｍ）ｒｅｑｕｉｒｅｍｅｎｔｓ｝を設定してもよいことである。検索される完全性証明書は次いで該ユーザーの好む要求とマッチされてもよく、好ましくは該ユーザーへ報告されるのがよい。それにより例えば、インストール前に自動チェックを可能にする。
【００１３】
もう１つの側面は証明書レジスターから要求された完全性証明書を検索することである。該証明書レジスターは該ユーザーのクライアントソフトウエア、ブラウザー、イーメールクライアント（ｅ−ｍａｉｌ  ｃｌｉｅｎｔ）他の中に定在してもよい。代替えとして、該要求された完全性証明書は、例えば、証明書オリジネーターの、レジスター（例えば、データベース）から検索可能であってもよい。該完全性証明書はソフトウエア供給者自身から受信されてもよい。該レジスターの場所がどうであろうと、該完全性証明書が常に信頼出来る、偏見のないパーテイ、すなわち信頼される証明書オリジネーター、により発行（ｉｓｓｕｅｄ）｛オリジネート（ｏｒｉｇｉｎａｔｅｄ）｝されねばならないことは重要である。そのため完全性証明書は常に該信頼される証明書オリジネーターの１つにより発行されるよう検証されねばならない。その目的で、該ユーザークライアントソフトウエアは信頼され得る１つ以上の証明書オリジネーターの公開鍵（ｐｕｂｌｉｃ  ｋｅｙ）｛ピーケー（ＰＫ）｝証明書を有するレジスターを備えてもよい。加えて、信頼される証明書オリジネーターのデジタル署名は（もう１つの）信頼される第３のパーテイにより検証されてもよい。
【００１４】
該完全性証明書は該ソフトウエア部品の完全性をさすデータを含み、例えば、ローバストさ、信頼性、健全性、完成度他の様な項目に関するその品質の評価（ｒａｔｉｎｇ）を含む。好ましくは共通基準（シーシー）が使われるのがよい。
【００１５】
ソフトウエア部品の完全性データは、完全性レベル（ｉｎｔｅｇｒｉｔｙ−ｌｅｖｅｌｓ）の良く規定されたスケールにより作られた完全性証明書により割り当てられてもよい。各証明書は、例えば、評価方法、使用されたスケール、他についてのデータを含んでもよい。与えられたソフトウエア部品用の完全性証明書を要求したユーザー（又はシステム）はかくして、インストール又は実行の前に前記ソフトウエア部品の完全性を検証（ｖｅｒｉｆｙ）することを可能にされる。
【００１６】
もう１つの側面では、該目的は本発明に依り、関連ソフトウエア部品から第１ソフトウエア部品識別子を引き出し、該ソフトウエア部品に関して完全性試験を行うことにより完全性試験データを創り、証明書オリジネーターにより該完全性試験データを含む完全性証明書を創り、該完全性証明書オリジネーターにより該完全性証明書に第１ソフトウエア部品識別子でラベル付けし、ユーザーのコンピュータにより該ソフトウエア部品の検索を可能にし、第２ソフトウエア部品識別子を使って該ユーザーのコンピュータによる該完全性証明書の検索を可能にするために配置された、サーバーで達成される。
【００１７】
かくして完全性証明書オリジネーターは完全性証明書を創ることが可能になる。
【００１８】
なおもう１つの側面では、該目的は本発明に依って、ソフトウエア部品をユーザーのコンピュータにより検索し、ダウンロードされたソフトウエア部品からソフトウエア部品識別子を該ユーザーのコンピュータにより引き出し、該ソフトウエア部品識別子を使って完全性証明書を検索し、ユーザーへ完全性試験データを開示するよう配置されたユーザーのコンピュータで達成される。
【００１９】
かくしてユーザーはその品質及び機能性用にソフトウエア部品を取得し、チェックすることが出来る。
【００２０】
なおもう１つの側面では、該目的は本発明に依って、ソフトウエア部品をユーザーのコンピュータにより検索し、ダウンロードされたソフトウエア部品からソフトウエア部品識別子を該ユーザーのコンピュータにより引き出し、該ソフトウエア部品識別子を使って完全性証明書を検索し、完全性試験データをユーザーへ開示する過程を行うよう該ユーザーのコンピュータを配置するために、ユーザーのコンピュータ上にインストールするためのコンピュータプログラムを有する、磁気デイスク又は光デイスクの様なデータキャリアで達成される。
【００２１】
かくして上記で説明される方法をバイヤーに適用させるコンピュータプログラムを配送することは可能である。
【実施例１】
【００２２】
図１はネットワーク１，例えばインターネットを示し、それに幾つかのコンテントサーバー（ｃｏｎｔｅｎｔ  ｓｅｒｖｅｒｓ）２及びターミナル（クライアント又はユーザーのコンピュータ）３が接続される。その他に、証明サーバー（ｃｅｒｔｉｆｉｃａｔｅｓ  ｓｅｒｖｅｒ）４が該ネットワーク１へ接続される。該証明サーバー４は（信頼される）証明書オリジネーター５に接続されてもよい。該証明書オリジネーター５により作られた証明書はサーバー４内の又はそれでラベル付けされた証明レジスター（ｃｅｒｔｉｆｉｃａｔｅｓ  ｒｅｇｉｓｔｅｒ）内に登録（ｒｅｇｉｓｔｅｒｅｄ）される。
【００２３】
従来技術に依れば、該クライアントターミナル３はソフトウエア部品を選択、ダウンロードそして実行する能力を有する。各ターミナル３は該サーバー２から、例えばネットワークアドレスｈｔｔｐ：／／ｗｗｗ．ｓｈａｒｅｗａｒｅ．ｃｏｍ経由で、選択されたソフトウエア（又は、他のコンテント）をダウンロードしてもよい。該ソフトウエアをダウンロードする前に、該ターミナルのクライアントソフトウエアは、例えば、図２に示す様に、ユーザークライアントの設定を介して、該ソフトウエア供給者が信頼され得るか否かを訊ねてもよい。
【００２４】
配送ネットワーク１を経由したソフトウエア部品の配送は下記の様に進行する。
【００２５】
或るソフトウエア部品、例えば、知らない発行者（ｕｎｋｎｏｗｎ  ｐｕｂｌｉｓｈｅｒ）により発行（ｉｓｓｕｅｄ）された、インベント（ＩＮＶＥＮＴ）と呼ばれるプログラム、を使うよう意図する、コンピュータ３を使うユーザーは、例えば、ＩＮＶＥＮＴ．ＥＸＥと呼ばれる自己実行ＺＩＰフアイル（ｓｅｌｆ−ｅｘｅｃｕｔｉｎｇ  ＺＩＰ  ｆｉｌｅ  ｃａｌｌｅｄ  ＩＮＶＥＮＴ．ＥＸＥ）に含まれる、関連プログラムフアイルをダウンロードするよう試みるだろう。該ソフトウエア部品は又ユーザーのコンピュータ３へイーメール（ｅｍａｉｌｅｄ）されてもよい。該フアイルＩＮＶＥＮＴ．ＥＸＥをダウンロードした後該プログラムをインストール及び実行する前に、該ユーザーは、該プログラムが該ユーザーのコンピュータ３で望ましくない動作を示す機会を防止、又は少なくとも減じるために、該プログラムの品質、完全性、信頼性他について幾らかでももっと知りたいかも知れない。
【００２６】
本発明の実施例に依れば、ユーザーのコンピュータ３はソフトウエア部品識別子を計算するよう配置される。該ユーザーのコンピュータ３は従って、該ダウンロードされたＩＮＶＥＮＴ．ＥＸＥフアイルのユニークなソフトウエア部品識別子として役立つＩＮＶＥＮＴ．ＥＸＥフアイルの安全ハッシュ又はダイジェスト（ｓｅｃｕｒｉｔｙ  ｈａｓｈ）、例えば１６０ビットハッシュ（１６０−ｂｉｔｓ  ｈａｓｈ）、を計算することが出来るユーティリティ（ｕｔｉｌｉｔｙ）を有してもよい。このユーティリティは該コンピュータのインターネットブラウザー又はメールクライアントへのプラグイン（ｐｌｕｇ−ｉｎ）の形であってもよい。
【００２７】
次に、該ユーザーは該ネットワーク１経由で、該証明サーバー４を介して信頼される完全性証明書オリジネーターへ、該計算された識別子を送信し、該サーバーのレジスターを検索することにより、該識別子とマッチする完全性証明書を請求する。
【００２８】
ネットワーク１はインターネット、会社ラン（ｃｏｍｐａｎｙ  ＬＡＮ）又はダブリューエイエヌ（ＷＡＮ）又は何等かの他のグローバルコンピュータネットワーク（ｇｌｏｂａｌ  ｃｏｍｐｕｔｏｒ  ｎｅｔｗｏｒｋ）であってもよい。
【００２９】
もしサーバー４が該ソフトウエア識別子をラベル付けされた１つの完全性証明書（又はより多くの完全性証明書）を実際見出したなら、該証明書（複数を含む）は該ユーザーのコンピュータ３にダウンロードされてもよい。該ユーザーは次いで該証明レジスターから検索された、該選択されたソフトウエア部品の完全性証明書（複数を含む）に含まれる完全性試験データを読み、評価することが出来る。
【００３０】
該完全性証明書は該証明の源を証明するデジタル署名（ｄｉｇｉｔａｌ  ｓｉｇｎａｔｕｒｅ）を含んでもよい。例えば、デジタル署名アルゴリズム（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）［エフアイピーエス１８６−２、デジタル署名標準（ＦＩＰＳ  １８６−２，  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ｓｔａｎｄａｒｄ）｛デーエスエス（ＤＳＳ）｝］を使うことによる該証明書の署名が使われてもよく、それは、つまりは該証明書上のデジタル署名をチェックすることにより、受信するユーザーに該証明書が信頼される完全性証明書オリジネーターにより発行されたかどうかを検出させる。
【００３１】
幾つかのソフトウエア部品の完全性証明書を配送出来るようにするために、サーバー４はレジスター、例えば、ソフトウエア試験エイジェンシー（ｓｏｆｔｗａｒｅ  ｔｅｓｔｉｎｇ  ａｇｅｎｃｙ）により作られた完全性証明書を含む、例えば、データベース、を保持しなければならない。該ソフトウエア試験エイジェンシーは例えば、ナショナルソフトウエア試験ラボ（Ｎａｔｉｏｎａｌ  Ｓｏｆｔｗａｒｅ  Ｔｅｓｔｉｎｇ  Ｌａｂｓ）｛エヌエステーエル（ＮＳＴＬ）｝［非特許文献５］又はアイベータソフトウエア品質保証（ｉＢｅｔａ  Ｓｏｆｔｗａｒｅ  Ｑｕａｌｉｔｙ  Ａｓｓｕｒａｎｃｅ）［非特許文献６］又はテーエヌオー（ＴＮＯ）［非特許文献７］の様な独立エイジェンシーが好ましい。該試験データは該完全性証明書オリジネーターへ送られてもよい。
【００３２】
試験データを含み、シーシー試験他の様な試験努力の結果を反映する各完全性証明書はユニークなソフトウエア部品識別子でラベル付けされる。
【００３３】
本発明の好ましい実施例では、該ユニークなソフトウエア部品識別子は、例えばセキュア１６０ビットハッシュ関数（ｓｅｃｕｒｅ  １６０  ｂｉｔｓ  ｈａｓｈ  ｆｕｎｃｔｉｏｎ）、から生じるハッシュ値（ｈａｓｈ  ｖａｌｕｅ）により形成される。完全性証明書として登録される試験結果と、該ハッシュ識別子（ｈａｓｈ  ｉｄｅｎｔｉｆｉｅｒ）と、の両者は相互にリンクされ、サーバー４の証明書レジスター内に登録され得る。オプションで、関連ソフトウエアの完全性証明書及びそれらのリンク用識別子（ｌｉｎｋｉｎｇ  ｉｄｅｎｔｉｆｉｅｒｓ）も（又）他のサーバー、例えば、該ソフトウエア供給者サーバー２、及び／又は該ユーザーのコンピュータ３，内に登録されてもよく、それらの、例えばソフトウエア部品の証明書は（未だインストールされてない）オプションとして、例えば、ブラウザー他の様なユーザーターミナルのクライアントソフトウエア内への、プラグインとして、使用されてもよい。
【００３４】
各場合に、完全性証明書がどの位置又はサーバーに登録されても、該完全性証明書オリジネーターは常に独立していなければならない。その理由で、例えば、オリジネーターのデジタル署名をチェックすることにより、該完全性証明書オリジネーターの素性を、該ユーザーが、検証（ｖｅｒｉｆｙ）することは非常に重要である。
【００３５】
最後に、その元（ｏｒｉｇｉｎ）へのチェックを含めて、関連完全性証明書（ｒｅｌｅｖａｎｔ  ｉｎｔｅｇｒｉｔｙ  ｃｅｒｔｉｆｉｃａｔｅ）を受信した後、各証明書の内容が該ユーザーにより個人的に検査され、評価される。該完全性証明書はダウンロードされても、或いはサーバー４からイーメール（ｅｍａｉｌｅｄ）されてもよい。
【００３６】
オプションとして、該ユーザーは該ソフトウエア部品の完全性に関する好む要求（例えば、最小要求）を設定してもよい。例えば、検索される完全性証明を該ユーザーの好む要求にマッチさせるために追加のクライアントプラグイン（ｃｌｉｅｎｔ  ｐｌｕｇ−ｉｎ）がイネーブルにされてもよい（ｅｎａｂｌｅｄ）。
【００３７】
ソフトウエア部品配送者（サーバー２）は、例えば、該（上記例参照）ＩＮＶＥＮＴ．ＥＸＥ（自己実行型）ＺＩＰフアイル内に該証明書を含む様に、関連する完全性証明書を含むソフトウエアパッケージ内の彼等のソフトウエア部品を配送するサービスを提供してもよいことを注意しておく。その場合、ユーザーは該フアイルのハッシュ値のみを計算し、該完全性証明書がそのハッシュ値に実際リンクされるかどうかをチェックし、そして信頼される完全性証明書オリジネーターが該証明書を発しているかどうかをチェックすることだけが必要である。
【００３８】
本方法が、ソフトウエア部品がインターネットの様な配送ネットワーク経由で、又はより従来的な配送手段、つまり関連ソフトウエアを含むＣＤＲＯＭ（又はディスケット）の物理的配送経由で、配送される時適用されてもよいことを注意しておく。上記の様に、該完全性証明書は該ＣＤ又はディスケットのソフトウエアパッケージ内に含まれてもよい。上記で描かれた方法で、ユーザーはソフトウエア部品識別子を計算し、該証明内容を検証し、評価することが出来る様にされる。
【図面の簡単な説明】
【００３９】
【図１】本発明が実行されるアーキテクチャーを略図的に示す。
【図２】新ソフトウエア部品用に安全性設定を入力及び／又は変型するための従来技術のスクリーンダンプ（ｓｃｒｅｅｎ  ｄｕｍｐ）［マイクロソフト（Ｃ）のオーセンチコード（Ｃ）｛Ｍｉｃｒｏｓｏｆｔ  （Ｃ）  Ａｕｔｈｅｎｔｉｃｏｄｅ（Ｃ）｝］を示す。
【図１】
2006520936.tif 000003
【図２】
2006520936.tif 000004
【国際調査報告】
2006520936.tif 000005
2006520936.tif 000006
2006520936.tif 000007