(57)【要約】【課題】パートナーコードのトラストを無効にするために副鍵を失効させ、訂正または修正されたパートナーコードにトラストを認めるための新しい副鍵を再び割り当てるための方法および装置を提供すること。【解決手段】主鍵によって署名されているコードが、任意の第二鍵にトラストを認めることを可能にし、かつ、同じく主鍵によって署名されている解毒剤と称されるコードが、二次キーに与えられているトラストを永久的に失効させることを可能にする方法および装置が提供される。【選択図】図２
2004535118.tif 000002
【特許請求の範囲】
【請求項１】
マスター鍵によって、任意の二次鍵にトラストを認めるためと、任意の二次鍵から当該認められているトラストを失効させるための方法であって、当該方法が、
当該任意の二次鍵にトラストを認めるための、当該マスター鍵によって署名されている権限付与コードを提供するステップと、
当該任意の二次鍵に認められている当該トラストを失効させるための、当該マスター鍵によって署名されている解毒剤コードを提供するステップと、
を有する、方法。
【請求項２】
認められている当該トラストの当該解毒剤コードによる当該失効が、永久的である、請求項1の方法。
【請求項３】
当該権限付与コードの量が、極めて小さく、かつ、当該解毒剤コードの量が、極めて小さい、請求項1の方法。
【請求項４】
当該解毒剤コードが、セキュリティ侵害に対処するためのアップグレードソフトウェアとして実行される、請求項1の方法。
【請求項５】
当該解毒剤コードが、ダウンロード可能である、請求項4の方法。
【請求項６】
それぞれが複数のパートナーエンティティのそれぞれに関連付けられている複数の二次鍵を有する、請求項1の方法。
【請求項７】
当該権限付与コードと解毒剤コードが、汎用コードであり、かつ、
Java言語と、
JavaScript、
のいずれか（ただしこれらに限定されない）によって書かれている、請求項1の方法。
【請求項８】
マスター鍵を使用して、システムのパートナーにトラストを認めるためと、当該認められているトラストをシステムのパートナーから失効させる装置であって、当該装置が、
当該パートナーに関連付けられている副鍵と、
当該副鍵に関連付けられている汎用の権限付与エンティティであって、当該エンティティが、当該パートナーにトラストを認めるために、当該マスター鍵によって署名されている、当該エンティティと、
当該副鍵に関連付けられている汎用の解毒剤エンティティであって、当該エンティティが、当該認められているトラストを当該パートナーから失効させるために、当該マスター鍵によって署名されている、当該エンティティと、
当該パートナーのトラストを認めるためとトラストを失効させるための、当該システムとのインタフェースであって、当該インタフェースが、当該マスター鍵によって署名されている、当該インタフェースと、
を有する、装置。
【請求項９】
当該システムが、システムコードを有し、
当該パートナーが、パートナーコードを有し、
当該権限付与エンティティが、汎用の権限付与コードを有し、
当該解毒剤エンティティが、汎用の解毒剤コードを有し、かつ、
当該インタフェースが、アプリケーションプログラムインタフェース（API）である、
請求項8の装置。
【請求項１０】
当該解毒剤エンティティの適用によって、当該権限付与エンティティの適用が永久的に無効にされる、請求項8の装置。
【請求項１１】
追加のパートナーと、当該マスター鍵によって署名されている対応する追加の副鍵と、当該マスター鍵によって署名されている対応する追加の権限付与エンティティと、当該マスター鍵によって署名されている対応する追加の解毒剤エンティティ、を時間的に後から追加するように適合化できる、請求項8の装置。
【請求項１２】
当該権限付与コードと解毒剤コードが、
Java言語と、
JavaScript、
のいずれか（ただしこれらに限定されない）によって書かれている、請求項9の装置。
【請求項１３】
当該権限付与エンティティが、極めて単純であり、かつ、当該解毒剤エンティティが、極めて単純であり、従って、誤りの発生する機会が排除される、請求項8の装置。
【請求項１４】
当該権限付与エンティティが、当該トラストの当該認可を行うために当該システムインタフェースを使用し、かつ、当該解毒剤エンティティが、当該認められているトラストの当該失効を行うために当該システムインタフェースを使用する、請求項8の装置。
【請求項１５】
当該副鍵が、当該パートナーによって作成される、請求項8の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティトラスト（security trust）に関する。より詳細には、本発明は、主鍵（master key）によって署名されているコードが任意の第二鍵にトラストを認めることを可能にし、かつ、同じく主鍵によって署名されている解毒剤（antidote）と称されるコードが、第二鍵に与えられているトラストを永久的に失効させることを可能にする方法に関する。
【背景技術】
【０００２】
現在のコンピュータシステムは、簡潔に言うなら、これを使用することで会社は大量のコードを大量のエンドユーザーに比較的簡単に配信できる状況にある。このような会社は、自社のコードまたは製品をハッカーまたは未知の不純物から保護するため、一般的にはセキュリティ機構を適用する。セキュリティ機構の1つの例は、証明書失効リスト（CRL）を使用するトラストである。
【０００３】
この文脈において、トラストの定義は2つの部分を有する。第一の部分は、参加者のアイデンティティ（identity）を確立することである。一般的には、参加者は、例えて言えば、何らかの他のエンティティによって署名されている紹介状を有する。署名するエンティティは、一般的には、認証局またはCAと称される。この認証局、または単に証明書は、参加者の名前とシグネチャを確立する。証明書の同義語として使用できる他の用語として、主鍵、スーパー鍵（super key）、およびシステム証明書があげられる。従って、参加者のアイデンティティは、CAによって署名されている紹介状である。
【０００４】
第二の部分は、トラストの記述であり、上記の例えによれば、参加者のトラストを記述する紹介状である。すなわち、第一ステップは、参加者のアイデンティティを確立することであり、第二ステップは、そのようなアイデンティティのトラストが記述されている合意を提供することである。アイデンティティと合意の両方が機能してトラストが確立される。
【０００５】
一般的なコンピュータシステムの観点においては、トラストの実施の一例は、CRLを使用することによって達成される。CRLの使用は、リリースされるソフトウェアとセットにされる（bundled）。リリースされるソフトウェアには、システム証明書が関連付けられている。この証明書は、複数の他の証明書と共に証明書データベースに格納されている。証明書の使用は、最初のシステムコードをリリースしたのと同じエンティティによってリリースされる追加のソフトウェアのリリースに適用されるように適合化できる。これらは、パッチとも称される。署名されたパッチは、エンドユーザーにとっては、そのパッチのみならず、元の署名されたソフトウェアがトラストされるという意味を有する。
【０００６】
元のシステムコードに加えてパートナーコードまたはベンダーコードをリリースする場合には、さらに複雑さの程度が高まる。3種類のコード、すなわち元のシステムコード、パッチ、およびパートナーコードが連携的にシームレスに機能するためには、現在のところ、これらすべてが同じ証明書によって署名されている必要がある。
【０００７】
現在のところ、パートナーコードに誤りがありかつそれが証明書によって署名されていた場合、システムコードとそのパッチには誤りがある可能性がある。現在の対策は、パートナーコードを訂正部分について修正し、それをリリースすることである。しかしながら、誤りのあるパートナーコードが証明書によって署名されていたため、その証明書の効力は失効させる必要がある。証明書の効力が失効すると、署名されている元のシステムコードと署名されているパッチに認められているトラストが、影響を受ける。第二の主鍵または証明書を作成して、元のシステムコード、そのパッチ、および訂正されたパートナーコードを、それらの再リリースの前に、署名する必要がある。
【０００８】
誤りが訂正されたソフトウェア（元のシステムとパッチ）を再リリースすることは、大きな経費がかかって会社に損害を与える不要なプロセスであることは、明らかである。
【０００９】
パートナーソフトウェアのボリュームが大きい（通常は大きい）ときには、訂正されたパートナーソフトウェアを再リリースすることは、会社には負担となる。
【００１０】
このことは、リリース後まで会社またはパートナーに認識されず、かつウイルス性であって、かつ適切な時期に効率的に失効させることのできないコードが含まれるコードを会社のパートナーが供給した場合、会社にとって非常に不利益にもなりうる。
【００１１】
R. Sudama、D. M. Griffin、B. Johnson、D. Sealy、J. Shelhamer、O. H. Tallmanの米国特許第5,619,657号（1997年4月8日）は、トラスト関係のデータベースを利用して管理サーバー間で相互のトラスト関係を確認することによって、管理サーバのネットワーク用のセキュリティ機能を提供する方法を開示している。この開示は、相互にトラスト確立（trusting）して相互に認証する管理サービスのネットワークを使用してコンピュータネットワークのコンポーネント間で管理操作を分散させて、選択されたホストシステムに操作を送信するためのセキュリティを提供する方法から成る。相互の認証とトラストは、依頼のポイントから指定された管理サーバーまでのすべての伝送リンクごとに確立され、この管理サーバーは、選択されたホスト上で管理操作を実行するためにサービスプロバイダを呼び出す。
【００１２】
しかしながら、Sudamaらの方法は、トラストされている関与するアイデンティティに関してデータベースを照会する従来の標準的な手法を必要とし、トラストを失効させるステップは含まない。
【００１３】
M. Gasser、A. C. Goldstein、C. W. Kaufman、B. W. Lampsonの米国特許第55,224,163号（1993年6月29日）は、セッションの公開／秘密暗号鍵ペアを使用することによって、1つの計算セッションにおいて、分散されている計算システム内の1つのエンティティから別のエンティティに認可を委任する方法を開示している。計算セッションの最後に、秘密暗号鍵が消去され、この計算セッションが終了する。
【００１４】
Gasserらの方法では、一時的な、またはセッションベースのセキュリティが扱われている。さらに、秘密暗号鍵を処理する該当ワークステーションが、ユーザの代わりに通信する（speak）ように認可されていることをユーザが認定する必要がある。
【００１５】
以前にパートナーコードに認められているトラストを失効させるための簡潔、単純、かつ効率的な手段を提供することは有利である。
【００１６】
他の証明書によって署名されている他のコードのリリースに影響を与えないように、パートナーコード自身の一意の証明書によってパートナーコードに署名できるようにすることは、有利である。
【００１７】
主鍵によって署名されているすべてのコードを再リリースまたは出荷するのではなく、パートナーコードのトラストを無効にするために副鍵（minor key）を失効させ、訂正または修正されたパートナーコードにトラストを認めるための新しい副鍵を再び割り当てることは、有利である。
【００１８】
【特許文献１】
米国特許第 5,619,657号米国特許第55,224,163号
【発明の開示】
【課題を解決するための手段】
【００１９】
本質的に機能の2つの要素をクライアントに追加する方法および装置が提供される。機能の第一要素は、主鍵によって署名されているコードが、任意の第二のすなわち副鍵に効力またはトラストを認めることを可能にする。機能の第二要素は、主鍵によって署名されている解毒剤と称されるコードが、特定の二次キーに効力を与えることを永久的に不可能にする。
【００２０】
主鍵は、コードの極めて小さい要素のみに署名するために使用される。これらのコード要素は、二次鍵に対するトラストの認可または否認のいずれかを伝える。コードのうちこれらのセクションは小さくかつ単純であるため、コード内に誤り（error）が発生することがなく、従って主鍵を失効させる必要が生じることはない。
【００２１】
解毒剤の考え方は、二次鍵のトラストを永久的に否認できるというものである。トラストコードを再実行することによって解毒剤が適用されると、二次鍵はそれ以上の効果を有することがない。使用の観点からは、このコードフラグメントは、発見されたセキュリティ侵害に対処するためのアップグレードとして実行される。解毒剤を実行するアップグレードにより、アップグレードされたクライアントは、侵害されたトラスト済みコードに注意を払う必要が永久になくなる。これにより、認められたトラストが、侵害された後に良性になる。
【発明を実施するための最良の形態】
【００２２】
本質的には、機能の2つの要素をクライアントに追加する方法および装置が提供される。機能の第一要素は、主鍵によって署名されているコードが、任意の第二のすなわち副鍵に効力またはトラストを認めることを可能にする。機能の第二要素は、主鍵によって署名されている解毒剤と称されるコードが、特定の二次キーに効力を与えることを永久的に不可能にする。
【００２３】
主鍵は、コードの極めて小さい要素のみに署名するために使用される。これらのコード要素は、二次鍵に対するトラストの認可または否認のいずれかを伝える。コードのうちこれらのセクションは小さくかつ単純であるため、コード内に誤り（error）が発生することがなく、従って主鍵を失効させる必要が生じることは絶対にない。
【００２４】
解毒剤の考え方は、二次鍵のトラストを永久的に否認できるというものである。トラストコードを再実行することによって解毒剤が適用されると、二次鍵は何の効果も有さなくなる。使用の観点からは、このコードフラグメントは、発見されたセキュリティ侵害に対処するためのアップグレードとして実行される。解毒剤を実行するアップグレードにより、アップグレードされたクライアントは、侵害されたトラスト済みコードに注意を払う必要が永久になくなる。これにより、認められたトラストが、侵害された後に良性になる。
【００２５】
問題の例
本発明は、問題の一例とその解決策によって理解することができる。この例は、クライアントがエンドユーザにソフトウェアを出荷し、クライアントのパートナーが、このクライアントのソフトウェアへのアドオンとみなすことができるソフトウェアを出荷する場合である。クライアントのソフトウェアとパートナーのソフトウェアの両方がいずれも1つの主鍵によって署名されているときには、問題が発生することがある。
【００２６】
図1を参照して、先行技術の教えでは、主鍵100は、クライアントのシステムコード101に署名する。ある時間の経過後、クライアントは、すべてのコードが調和して機能することを確保するために、同じく主鍵100によって署名されている、コードの追加パッチ102をリリースする。
【００２７】
クライアントのコードに関連するかまたはアドオンされるパートナーコード103を出荷またはリリースする必要がある際、主鍵100は、このパートナーコード103にも署名する。パートナーコード103に誤りがあるかもしれないため、主鍵100によるこのような署名104は危険と考えることができる。このことは、パートナーコード のボリュームが大きいときに特に重大な手間につながることがある。
【００２８】
クライアントが分散されたコード（101−103）を有し、パートナーコード103の一部に誤りがあるときには、問題が生じる。先行技術による訂正手順は、パートナーコード103内の誤りを訂正した後、その訂正を含み、主鍵100によって再び署名された、以前に分散されていたコード（101−103）全体を再配信することである。
【００２９】
問題の例の解決策
本発明の望ましい実施例によると、この問題の解決策は次のようになる。図2に示されるように、パートナーは、二次または副鍵200を作成する。クライアントは、主鍵100の効力に実質的に近い効力を有する副鍵200のトラスト確立を本質的に可能とする、主鍵100によって署名されている権限付与またはトラストコード201を提供する。主鍵100によって署名されているこの権限付与コード201と、副鍵200によって署名されているパートナーコード103とから、トラストされているパートナーコード202が作成される。
【００３０】
主鍵100によって署名されている副鍵権限付与コード201と、副鍵200によって署名されているパートナーコード103とを使用して作成されたトラストを失効させるために、主鍵100によって署名されている解毒剤コード203と称されるコードが作成され、必要時に、トラストされているパートナーコード202のユーザに配信される。
【００３１】
トラスト追加／無効化用のアプリケーションプログラミングインタフェース（API）の小さなコード204が、クライアントのシステム205に提供される。このAPI 204も、主鍵100によって署名されている。権限付与コード201と解毒剤コード203のそれぞれは、システム205が副鍵200によって認められているトラストを追加または無効にする能力を有するように、このAPIを呼び出す。
【００３２】
本発明の望ましい実施例によると、実施は次のように行われる。最初、追加／無効化トラストAPI 204がシステム205に追加される。次いで、クライアントが、それぞれAPI 204を呼び出す小さな権限付与コード201と小さな解毒剤コード203を簡単に書く。この望ましい実施例においては、API、権限付与コード、解毒剤コードのいずれも、JavaまたはJavaScriptプログラミング言語（ただしこれらに制限されない）、またはその他の汎用コードで書かれる。
【００３３】
留意すべき点として、本発明によるトラストの認可と失効は、先行技術による証明書と失効リストの使用の場合と同様に、標準のインフラストラクチャの外側で実行される。また、留意すべき点として、主鍵または証明書は、先行技術では別の証明書または鍵をトラスト確立するのに対して、本発明によるとコードをトラスト確立する。
【００３４】
留意すべき点として、証明書失効リストの一般的な標準の機構では、特定の証明書を検証するときに失効の確認を行うために中央領域にアクセスする必要があるが、本発明は、この機構を必要としない。本発明の望ましい実施例においては、アップロードがエンドユーザにダウンロードされ、この場合にアップロードはトラストの失効を伝える。
【００３５】
留意すべき点として、トラストを無効にする解毒剤コード203は、追加されるトラストを作成する署名されているパートナーコード103と権限付与コード201の組み合わせよりも強力である。すなわち、解毒剤コード203は、この解毒剤コード203の適用時と適用後に、システム205が副鍵200によって署名されているトラストされているパートナーコード202に遭遇したときに、システム205が副鍵200によるトラストを失効させる権利を持ち続けるという永続的な意味を有する。
【００３６】
本発明の望ましい実施例によると、副鍵200の失効後、パートナーが修正されたコード103の再配信に関する準備が完了したときに、新しい副鍵が発行され、トラストの追加能力を回復することができる。
【００３７】
留意すべき点として、クライアントが複数のパートナーを有する場合、本発明の1つの実施例においては、各パートナーは自身の一意の副鍵を有することができる。
【００３８】
エンドユーザの観点
先行技術によると、エンドユーザには、エンドユーザのトラストコードをロードするかまたは実行するか否かをエンドユーザに尋ねるダイアログボックスが提示される。このようなダイアログボックスは、一般的にはエンドユーザを混乱させる。
【００３９】
本発明の望ましい実施例によると、このようなダイアログボックスが回避される。エンドユーザが、パートナーコードのアドオンを含むアップグレードを要求すると、エンドユーザは、（主鍵によって）署名されている権限付与コードと（副鍵によって）署名されているパートナーコードとを、何らの質問を受けることなく実際に受信する。エンドユーザから見ると、システムコード、追加のパッチ、および強力なパートナーコードすべてが連携的にシームレスに機能する。
【００４０】
本発明は、特定の望ましい実施例を参照しながら詳細に説明されているが、この技術分野における通常の技能を有する者には、添付される請求項の精神と範囲から逸脱することなく様々な修正および改良を行うことができることが理解されるであろう。
【図面の簡単な説明】
【００４１】
【図１】先行技術によるトラストシステムの線図を示す。
【図２】本発明によるトラストシステムの線図を示す。
【符号の説明】
【００４２】
100  主鍵
101  システムコード
102  追加パッチ
103  パートナーコード
104  署名
200  副鍵
201  トラストコード
202  パートナーコード
203  解毒剤コード
204  アプリケーションプログラミングインタフェース（API）コード
205  システム
【図１】
2004535118.tif 000003
【図２】
2004535118.tif 000004
【国際公開パンフレット】
2004535118.tif 000005
2004535118.tif 000006
2004535118.tif 000007
2004535118.tif 000008
2004535118.tif 000009
2004535118.tif 000010
2004535118.tif 000011
2004535118.tif 000012
2004535118.tif 000013
2004535118.tif 000014
2004535118.tif 000015
2004535118.tif 000016
2004535118.tif 000017
2004535118.tif 000018
2004535118.tif 000019
2004535118.tif 000020
2004535118.tif 000021
【手続補正書】
【提出日】平成15年11月14日(2003.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マスター鍵を使用して、システムのパートナーにトラストを認め、かつシステムのパートナーからの当該認められているトラストを失効させるための方法であって、当該方法が、
当該パートナーに関連する副鍵を提供するステップと、
当該副鍵に関連する汎用権限付与エンティティを提供するステップであって、当該権限付与エンティティが汎用権限付与コードを有し、かつ当該権限付与エンティティが当該パートナーにトラストを認めるための当該マスター鍵によって署名されている、ステップと、
当該副鍵に関連する汎用解毒剤エンティティを提供するステップであって、当該解毒剤エンティティが一般的な汎用解毒剤コードを有し、かつ当該解毒剤エンティティが、当該パートナーからの当該認められているトラストを失効させるための当該マスター鍵によって署名されている、ステップと、
当該パートナーにトラストを認めかつ当該パートナーからのトラストを失効させる当該システムに、アプリケーションプログラムインタフェース（ＡＰＩ）インタフェースである、当該マスター鍵によって署名されているインタフェースを提供する、ステップとを有し、
当該システムが、システムコードを有し、かつ、当該パートナーが、パートナーコードを有する方法。
【請求項２】
認められている当該トラストの当該解毒剤コードによる当該失効が、永久的である、請求項1の方法。
【請求項３】
当該権限付与コードの量が、極めて小さく、かつ、当該解毒剤コードの量が、極めて小さい、請求項1の方法。
【請求項４】
当該解毒剤コードが、セキュリティ侵害に対処するためのアップグレードソフトウェアとして実行される、請求項1の方法。
【請求項５】
当該解毒剤コードが、ダウンロード可能である、請求項4の方法。
【請求項６】
それぞれが複数のパートナーエンティティのそれぞれに関連付けられている複数の二次鍵を提供するステップを、さらに、有する、請求項1の方法。
【請求項７】
当該権限付与コードと解毒剤コードが、汎用コードであり、かつ、
Java言語と、
JavaScript、
のいずれか（ただしこれらに限定されない）によって書かれている、請求項1の方法。
【請求項８】
マスター鍵を使用して、システムのパートナーにトラストを認めかつシステムのパートナーからの当該認められているトラストを失効させる装置であって、当該装置が、
当該パートナーに関連付けられている副鍵と、
当該パートナーに関連付けられている当該副鍵に関係付けられている汎用権限付与エンティティであって、当該権限付与エンティティが、当該権限付与コードを有し、かつ当該権限付与エンティティが、当該パートナーにトラストを認めるために、当該マスター鍵によって署名されている、権限付与エンティティと、
当該副鍵に関連付けられている汎用解毒剤エンティティであって、当該解毒剤エンティティが、汎用解毒剤コードを有し、かつ当該解毒剤エンティティが、当該パートナーからの当該認められているトラストを失効させるために、当該マスター鍵によって署名されている、解毒剤エンティティと、
当該パートナーにトラストを認めかつ当該パートナーからのトラストを失効させるための、当該システムへのインタフェースであって、当該インタフェースが、当該マスター鍵によって署名されている、インタフェースと、
を有し、
当該システムが、システムコードを有し、かつ当該パートナーが、パートナーコードを有する、装置。
【請求項９】
当該解毒剤エンティティの適用によって、当該権限付与エンティティの適用が永久的に無効にされる、請求項８の装置。
【請求項１０】
追加のパートナーと、当該マスター鍵によって署名されている対応する追加の副鍵と、当該マスター鍵によって署名されている対応する追加の権限付与エンティティと、当該マスター鍵によって署名されている対応する追加の解毒剤エンティティ、を時間的に後から追加するように適合化できる、請求項８の装置。
【請求項１１】
当該権限付与コードと解毒剤コードが、
Java言語と、
JavaScript、
のいずれか（ただしこれらに限定されない）によって書かれている、請求項８の装置。
【請求項１２】
当該権限付与エンティティが、極めて単純であり、かつ、当該解毒剤エンティティが、極めて単純であり、従って、誤りの発生する機会が排除される、請求項8の装置。
【請求項１３】
当該権限付与エンティティが、当該トラストの当該認可を行うために当該システムインタフェースを使用し、かつ、当該解毒剤エンティティが、当該認められているトラストの当該失効を行うために当該システムインタフェースを使用する、請求項8の装置。
【請求項１４】
当該副鍵が、当該パートナーによって作成される、請求項8の装置。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2004535118.tif 000022
【国際調査報告】
2004535118.tif 000023
2004535118.tif 000024