(57)【要約】  ネットワーク(10)の中において複数の装置が動的および発展的な(evolutive)コミュニティー(100)を形成し、少なくとも一つの発展的な運用を実行する方法。このネットワークには、少なくとも第１の装置(210)を有している。本方法は、第１の装置(210)から第２の装置(220)まで、ネットワーク(10)を通じて、少なくとも一つのメッセージ(244)を送信するステップを備える。このネットワーク中において、第１の装置(210)は、第２の装置(220)から、少なくとも一つのメッセージ(244)に対して受領通知がなくてもこの方法を続ける。本方法は、クロックを持たない装置に対しての実施に適している。方法を実行するための装置もクレームされている。【選択図】図２
2009526457.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置が第２の装置の識別情報を記憶し、かつ前記第２の装置は前記第１の装置の識別情報を記憶し、前記第１の装置を前記第２の装置と結びつける方法であって：
前記第２の装置と結びつくべき旨の命令を、前記第１の装置が受信し；
前記第１の装置によって生成された前記第２の装置のための証明書を、前記第１の装置が前記第２の装置に送信し；
前記第１の装置が前記第２の装置と結びつくことができる旨の指示を前記第１の装置が記憶し；
前記第２の装置が前記第１の装置と結びつくことができる旨の指示を、前記第２の装置が記憶しない場合、前記第２の装置のための前記証明書を前記第２の装置が廃棄し；
前記第２の装置によって生成される第１の装置のための証明書を、第２の装置から取得できるよう第１の装置が要請し；
前記第２の装置が前記第１の装置と結びつくことができる旨の指示を、前記第２の装置が記憶しない場合、前記要請を前記第２の装置が拒否し；
前記第１の装置と結びつくべき旨の命令を、前記第２の装置が受信し；
前記第２の装置が前記第１の装置と結びつくことができる旨の指示を前記第２の装置が記憶し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を、前記第２の装置が、前記第１の装置に送信し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を、前記第１の装置が記憶し；
前記第１の装置によって生成される第２の装置のための証明書を、第１の装置から取得できるよう第２の装置が要請し；
前記第１の装置によって生成された前記第２の装置のための前記証明書を、第１の装置が、前記第２の装置に送信し；及び
前記第１の装置によって生成された前記第２の装置のための前記証明書を、前記第２の装置が記憶する；
手順を有する方法。
【請求項２】
第１の装置が第２の装置の識別情報を記憶し、かつ前記第２の装置は前記第１の装置の識別情報を記憶し、前記第１の装置を前記第２の装置と結びつける、前記第１の装置における方法であって：
前記第２の装置と結びつくべき命令を受信し；
前記第１の装置によって生成された前記第２の装置のための証明書を、前記第２の装置に送信し；
前記第１の装置が前記第２の装置と結びつけることができる旨の指示を記憶し；
前記第２の装置によって生成される前記第１の装置のための証明書を、前記第２の装置から要請し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を、前記第２の装置から受信し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を記憶し；
前記第１の装置によって生成された前記第２の装置のための前記証明書の要請を、前記第２の装置から受信し；及び
前記第１の装置によって生成された前記第２の装置のための前記証明書を、前記第２の装置に送信する；
手順を有する方法。
【請求項３】
第１の装置が第２の装置の識別情報を記憶し、かつ前記第２の装置は前記第１の装置の識別情報を記憶し、前記第１の装置を前記第２の装置と結びつける、前記第２の装置における方法であって：
前記第１の装置によって生成された前記第２の装置のための証明書を受信し；
前記第２の装置が前記第１の装置と結びつけることができる旨の指示を、前記第２の装置が記憶していない場合、前記第１の装置によって生成された前記第２の装置のための証明書を廃棄し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を求める要請を前記第１の装置から受信し；
前記第２の装置が前記第１の装置と結びつけることができる旨の指示を、前記第２の装置が記憶していない場合、前記要請を拒否し；
前記第１の装置と結びつくべき旨の命令を受信し；
前記第２の装置が前記第１の装置と結びつけることができる旨の指示を記憶し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を、前記第１の装置に送信し；
前記第１の装置によって生成される前記第２の装置のための証明書を、前記第１の装置から受け取れるよう要請し；
前記第１の装置によって生成された前記第２の装置のための前記証明書を、前記第１の装置から受信し；及び
前記第１の装置によって生成された前記第２の装置のための前記証明書を記憶する；
手順を有する方法。
【請求項４】
第２の装置を結びつけるのに適しており、前記第２の装置の識別情報を記憶している第１の装置であって：
第２の装置を結びつけるための命令を受信するための手段；
通信のための適切な手段は、：
前記第１の装置によって生成された前記第２の装置のための証明書を、前記第２の装置に送信し；
前記第２の装置によって生成される前記第１の装置のための証明書の要請を、前記第２の装置に送信し；
前記第２の装置によって生成された前記第１の装置のための前記証明書を、前記第２の装置から受信し；
前記第１の装置によって生成された前記第２の装置のための前記証明書の要請を、前記第２の装置から受信し；
前記第１の装置によって生成された前記第２の装置のための前記証明書を、前記第２の装置に送信し；
以下のものを記憶するのに適した記憶手段：
前記第２の装置と結びつくべき旨の命令の、前記受信手段の受信に応じて、前記第１の装置が前記第２の装置と結びつけることができる旨の指示；
前記第２の装置によって生成された前記第１の装置のための前記証明書の記憶；及び
前記第２の装置と結びつけることができる旨の指示を記憶しない場合、前記第２の装置からいかなるメッセージも廃棄し、かつ前記第２の装置からのいかなる要請も拒否するように適合した処理を行うための手段；
を有する第１の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル通信網、特に動的で、発展的な（evolutive）、異種のネットワークに適用される。ネットワークには無線要素が含まれる。
【背景技術】
【０００２】
［定義］
理解を助けるために語句の定義を以下に示す。なお、この定義は意味を限定するためのものではない。
「動的ネットワーク」：動的ネットワークとは、ネットワーク中の装置が、存在または不在であり得るネットワークをいう。
「発展的なネットワーク」：発展的なネットワークとは、新規な装置がネットワークに参加することができ、既存の装置はネットワークから離脱することができ、また、（例えば、装置が盗まれたときには）切断され得るネットワークをいう。
「異種ネットワーク」：全ての装置が、ネットワークの中の他の全ての装置と通信することが可能であるというわけではない。例えば、ネットワークの１つの部分がIEEE802.11g標準に対応する場合、ネットワークの他の部分は標準のIEEE802.3に適合している場合、通信を行うためには、双方の橋渡しをする装置が必要となる。
「双方向接続」：２台の装置のいずれからも、他の装置と通信を開始することが可能であるとき、双方向接続されているという。
「コミュニティ」：コミュニティとは、実在するものと結びついている装置の集合をいう。例えばシングル・ユーザまたは一群のユーザ（例えば家族または会社サービス）を意味する。
「コミュニティに関する知識」：コミュニティに結びついた（帰属した）装置は、結びついていることを知っている。すなわち、装置は、自身がコミュニティと結びついているということを知っている、そして、その装置は、少なくともいくつかの他の装置がコミュニティに存在することを知っている。
［従来技術］
特許文献１（WO2005/057876）は、コミュニティ内での、安全で、ユーザーフレンドリーな発展的なシステムの運用、および信頼されていない装置の追放を提供するシステムを開示している。各々のネットワーク装置は、それが帰属するコミュニティのローカル情報（local  representation）を記憶する。この情報は、それ自体のための証明可能な識別情報を含んでいる。それぞれの装置に関して以下の3つのリストからなる。すなわち、1）装置によって信頼されている、２）装置から信頼されており、その装置を信頼する、３）装置から信頼されていない。各々の装置は、ネットワークの他の装置との信頼された接続を確立ために、プロトコルを実行することが可能である。
【特許文献１】国際公開第２００５／０５７８７６号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術は、良好な方策であるではあるが、動作するためには、装置に内部クロックを必要とする。
【０００４】
将来は、ますます多くの装置が内部クロックを欠いたものとなると予想されている。いわゆる「賢い塵」（smart  dust）と呼ばれているものがこの例である。このため、この種の装置のための安全な、ユーザーフレンドリーな、発展的な運用を実行するということを可能にすることが必要である。この課題の解決の更なる利点は、プロトコルを実行するために必要な処理電力を最小にする改善が可能であることがわかっているということである。本発明は、この種の改良を提供するものである。
【課題を解決するための手段】
【０００５】
本発明は、第１の態様において、動的で発展的なコミュニティにおける少なくとも一つのネットワークの装置の発展的な運用を実行する方法を提供する。ネットワークは、少なくとも第１の装置を有する。本方法は、クロックを持たない装置を対象とする実施に適している。ネットワークの上で、第１の装置は、第２の装置に少なくとも一つのメッセージを送り、第２の装置から少なくとも一つのメッセージの受領通知が送られて来なくても、本方法の実行を続ける。
【０００６】
好ましい実施例において、動的で発展的なネットワークは、少なくとも部分的に無線ネットワークで構成される。
【０００７】
更なる好ましい実施例において、動的で発展的なネットワークは、少なくとも部分的に送電線キャリアネットワークで構成される。
【０００８】
他の好ましい実施例において、動的で発展的なネットワークは、異種（heterogeneous）ネットワークである。
【０００９】
さらにもう一つの好ましい実施例において、少なくとも一つの発展的な運用は、動的で発展的なコミュニティへ、第２の装置の組み入れが行われることである。望ましい態様としては、第１の装置は、まず第２の装置を組み入れてほしい旨の命令をユーザから受け取り、第１の装置の証明書を第２の装置に送り、第２の装置の信頼のレベルを「信頼されるもの」に設定する。そして、さらに第１の装置は、第２の装置に第２の装置のための証明書を返送するよう要請して、第２の装置から第２の装置のための証明書を受け取って、第２の装置のための証明書を記憶する。望ましくは、第１の装置のための証明書および第２の装置のための証明書のうちの少なくとも１つは、認証局によって認証されなくてよい。
【００１０】
第２の態様では、本発明は、動的で発展的なコミュニティにおける少なくとも一つの発展的な装置の運用を実行するのに適している、ネットワーク上の装置を提供する。
【００１１】
装置は、第２の装置にネットワークの上のインタフェースを経て、少なくとも一つのメッセージを送信するのに適しているプロセッサを有し、第２の装置から少なくとも一つのメッセージの受領通知が送られてこなくても、本発明の方法の実行を続ける。
【発明を実施するための最良の形態】
【００１２】
図1は、本発明の用途として、ネットワーク10における典型的なコミュニティ100を例示している。装置の非制限的な具体例としては、パーソナル・コンピューター（PC）101、102、TVセット103、記憶装置104、PDA（パーソナル携帯情報機器）105、および「賢い塵」（smart  dust）と呼ばれる温度計106がある。図１に示されているように、PDA105はコミュニティ100に帰属していない。但し、それはネットワーク10の要素であってもよい。第２のPC102、記憶装置104、およびTVセット103は、第１のバス121によって接続されている。また、第１のバス121には、第１の無線通信ユニット112も接続されている。第１の無線通信ユニット112は、第２の無線通信ユニット111と通信できることを保証する。これによって、第１の無線通信ユニット112は、第２のバス122を経て第１のPC101と接続される。無線通信ユニット111、112は、同様にPDA105と通信することができる。温度計106は、内部クロックを備えおらず、好ましくは電波通信によって無線通信ユニット111、112のうちの１つと通信する。装置は、双方向ネットワーク・インターフェース（たとえば、WiFi、イーサネット（登録商標）、IEEE1394等）、暗号モジュールおよびメモリ（RAM、FLASH等）を有することが望ましい。
【００１３】
本発明に基づくプロトコルを実装する装置Aは、以下の情報を記憶する：
・装置固有の第１の公開／秘密キーのキーペア（PA、SA）。このペアーは、署名の生成および検証のために用いられる。生成および検証には、それぞれ公開キーアルゴリズムSignGenAlgoおよびSignVerAlgoが用いられる。
・装置固有の第２の公開／秘密キーのキーペア（RPA、RSA）。このペアーは、取り消し情報の生成および検証のために用いられる。生成および検証には、それぞれ公開キーアルゴリズムSignGenAlgoおよびSignVerAlgoが用いられる。
・公開用の固有の識別子PIA（証明可能な識別情報とも呼ばれる）。PIは、装置の公開キーPのおよび取り消し公開キーRPの結合したものを、アルゴリズムHashAlgo用いて要約したものである。
・乱数発生器アルゴリズムRandAlgo
装置は、同様にコミュニティの他の装置に関する以下の情報の少なくとも一部を有するコミュニティに関する知識表（CKT:Community  Knowledge  Table）を記憶する：
・装置識別情報：証明可能な識別情報PI。
・ステータス：装置が他の装置のために有する信頼のレベル：
「知られている（KNOWN）」というステータスは、装置が他の装置の識別情報を知っていることを意味する。「信頼されている（TRUSTED）」というステータスは、装置は他の装置を知っており信頼していることを意味する。そして、「取り消された（REVOKED）」というステータスは、装置は装置がコミュニティにもはや帰属しないとみなされていることを意味する。
・公開キー：Pおよび／またはRP。
・証明書または証明書の連鎖または取り消しの情報。
装置Aは、自身の秘密キーSAを用いて、自己の証明書CertA(A)を生成する。証明書には、都合がよいことに、2つの構造すなわち、情報構造と、署名構造とを有している。情報構造は情報を提供する、そして、署名構造は情報が真正であることを担保する。
証明書CertA(A)は、好ましくは以下の情報を含む：
情報構造において：
・Aの証明可能な識別情報（PIA）、
・Aの一般の取り消しキー（RPA）、そして、
・Aの公開キー（PA）
署名構造で、Aの秘密キーSAによる情報構造の署名。
【００１４】
また、装置Aが、対象の装置Bのための証明書CertA(B)を生成することも可能である。
AがBの証明書CertB(B)を取得している場合には、Aは、Bの公開キーPB、取り消し公開キーPRB、および識別情報PIBを入手することが可能である。この情報を用いて、以下の情報を有する署名および証明書CertA(B)作ることができる。
情報構造において、
・署名者の証明可能な識別情報（PIA）、
・対象の証明可能な識別情報（PIB）
・対象の公開キー（PB）
・対象の取り消し公開キー（RPB）、そして、
署名構造で、署名者の秘密キーSAによる情報構造の署名。
【００１５】
このように、証明書の連鎖ができあがる。すなわち、装置Aは装置Bを認証し、次に装置Bは装置Cを認証するというように連鎖する。この場合、最初の証明書はCertZ(X)と記述される。そして、次に、CertC(Z)、CertB(C)およびCertA(B)と連鎖する。便宜のために、この種のチェーンはこの典型的なケースにおいてCertA*(X)と記述することにする。ここで、インデックスは最新の発行人を意味し、アスタリスクは証明書の連鎖を意味し、括弧の中の文字は最初に証明された装置を意味する。
【００１６】
証明書の連鎖で装置が検査（検証）されるのは、ループが連鎖しているとき、または自動的な装置の組み入れがなされるときであることが望ましい。（詳細は後述する）
証明書（または取り消し情報）を検証するために、装置は、それらを発行した装置の公開キー（または取り消し公開キー）を使用する、例えば、装置Dは、CertA(B)を検証するためにPAを用いる。証明書の連鎖を検証するためには、装置は、チェーンの全ての証明書を検証する。
【００１７】
［発展的な運用］
コミュニティ管理者が発展的な運用を実行すると仮定する。コミュニティ管理者とは、コミュニティ内の装置の管理者すべて（すなわち権威を持つユーザ）を指す。
当業者は、上記の定義すなわち装置の管理者自信が管理者となれることを歓迎するであろう。また、管理人が装置に関する決定権を有することも歓迎するであろう。同様に、コミュニティのあらゆる管理人がその他の管理人をその中で信頼するものと仮定する。装置の間で信頼を「借りることができる」ことは、都合がよい。すなわち、たとえば、AおよびBのコミュニティで、Aの管理人がCを信頼している場合、Bの管理人もBがCを信頼することを認めることになる。また、公開キーおよび取り消し公開キーは、信頼された装置が発行する証明書の中に記憶されていると仮定する。
【００１８】
装置初期化（Device  Initialization）は、装置をコミュニティに組み入れるための準備するために実行される。
a.  装置は、RandAlgoを使用して、公開／秘密キーペア（P、S）を生成する。
b.  装置は、RandAlgoを使用して、取り消し公開／秘密キーペア（RP、RS）を生成する。
c.  装置は、そのコミュニティーに関する知識表（CKT:Community  Knowledge  Table）を空にする。
d.  装置は、ユーザ・メッセージ「初期化成功」を表示する。
【００１９】
装置再初期化（Device  Re-initialization）は、たとえば装置が譲渡された場合や、装置のユーザが変わった場合、他の識別情報の下でコミュニティに再組み入れするため、装置を準備する目的で実行される。
a.  装置は、その公開／秘密キーペア（P、S）および（RP、RS）を消去する。
b.  装置は、そのCKTを空にする。
c.  装置は、RandAlgoを使用して、新規な公開／秘密キーペア（P、S）を生成する。
d.  装置は、RandAlgoを使用して、新規な取り消し公開／秘密キーペア（RP、RS）を生成する。
e.  装置は、ユーザ・メッセージ「再初期化成功」を表示する。
【００２０】
装置の組み入れは、装置をコミュニティの一部分とするために実行される。コミュニティ管理者は、装置BをAのコミュニティに組み入れるよう、装置Aに要求する。AがBに割り当てたステータスに応じて、以下の4つの可能性がある。
1.  AがステータスをBに割り当てていない場合。
a.  Aは、証明書を要請するメッセージをBに送信する。
b.  BがAを信頼する場合、BはCertB(A)を生成する。Bは、これを証明書メッセージに入れてAに送信する。もし、BがAを信頼しない場合、Bは応答しない。
c.  もしAがCertB(A)を受信した場合、AはこれをCKTに記憶する。
d.  Aは、ユーザ・メッセージとして「組み入れ成功」を表示する。
2.  AがBを信頼する場合
a.  Aは、ユーザ・メッセージ「装置はすでに信頼されているので、組み入れ処理は不可能」を表示する。
3.  AがBを知っている場合
a.  Aは、証明書CertA(B)を生成して、証明書メッセージに入れてBに送信する。
b.  Aは、そのCKTのBの状態を信頼されている（TRUSTED）に変える。
c.BがAを信頼する場合、BはCertA(B)をそのCKTに記憶する。BがAを信頼しない場合、Bはその証明書を廃棄する。
d.  Aは、証明書を要請するメッセージをBに送信する。
e.  BがAを信頼する場合、BはCertB(A)を生成する。Bは、これを証明書メッセージに入れてAに送信する。もし、BがAを信頼しない場合、Bは応答しない。
f.  もしAがCertB(A)を受信した場合、AはこれをCKTに記憶する。
g.  Aは、ユーザ・メッセージとして「組み入れ成功」を表示する。
4.  Aは、取り消された旨のステータスをBに割り当てた場合
a.  Aは、ユーザ・メッセージ「装置は取り消されているので、組み入れ処理は不可能」を表示する。
【００２１】
装置追放は、コミュニティから届かない装置を取り除くために実行される。
a.  装置Aは、装置Aが信頼し、知っており、そして、通信できない装置の全ての証明可能な識別情報PIを表示する。
b.  コミュニティー管理人は、リストから装置Bを選ぶ。
c.  Aは、取り消された旨のステータスをBに割り当てる。
d.  Aは、取り消し証明書RevocA(B)を生成して、記憶する。
e.  Aは、ユーザ・メッセージとして「追放成功」を表示する。
【００２２】
装置の取り消しは、コミュニティから装置（装置A）を取り除くために用いる。
a.  装置Aは信用しており、そして、通信可能な装置Bを選択する。この種の装置が見つからない場合、装置Aはユーザ・メッセージとして「装置の取り消しは、あとで再度試みてください」と表示する。
b.  Aは、RevocA(A)を生成して、これを取り消し情報メッセージに入れてBに送り、タイマーをセットする。
c.  Bは、取り消し情報メッセージを受信して、取り消された旨ステータスをAに割り当てる。
d.  Bは、RevocB(A)を生成して、記憶する。
e.  Bは、RevocB(A)を含む取り消し受領通知メッセージを返す。
f.  Aが、タイマー時間のタイムアウト前に、取り消し受領通知メッセージを受信しなかった場合、Aは、「あとで装置の取り消しを再び試みてください」とのユーザ・メッセージを表示する。
g.  もし、Aが取り消し受領通知メッセージを受信した場合、Aは、
i.  その公開／秘密キーペア（P、S）および（RP、RS）を消去する。
ii.  そのCKTを空にする。
iii.  RandAlgoを使用して新規な公開／秘密キーペア（P、S）を生成する。
iv.  RandAlgoを使用して新規な公開／秘密キーペア（RP、RS）を生成する。
v.  コミュニティー管理者に対して、Aがコミュニティーから正常に取り除かれた旨を通知する。
vi.「取り消しに成功した」とのユーザ・メッセージを表示する。
【００２３】
ここで留意すべき点がある。もし、装置の取り消しが行われている最中において、「あとで装置の取り消しを再び試みてください」というメッセージが表示される可能性がある場合には、あらゆる発展的な運用は、クロックを必要とせずに可能性だということである。この場合、装置Aが本当に削除されたことを検証するのは、コミュニティ管理者次第である。一方、装置Aが内部クロックのない装置であり、装置B内部クロックを有している場合もある。この場合には、内蔵タイマーを用いることができる。
【００２４】
クロックのないプロトコルを実行することができることの有利な効果は、使われる証明書が認証局によって署名されている必要はないということである。加えて、このことは、認証局によって証明書を検証することができないコミュニティおいても、このプロトコルが、利用できることを意味する。たとえば、コミュニティにインターネット接続がない場合が当てはまる。
【００２５】
［他の運用］
コミュニティに関する知識の拡散は、コミュニティにおいて、コミュニティに関する知識を広げるために用いる。コミュニティの各々の装置は、通信可能な信頼された装置に対して、そのCKT内の証明書／取り消し情報を定期的に送信する。
1.  装置Aは、そのCKTを含むコミュニティに関する知識メッセージを送信する。
2.  メッセージの受信に応じて、装置Bは、
a.に取り消された旨のステータスを持つ各々の装置Xに対して：
i.  BがいかなるステータスもXにこれまで割り当てなかった場合、BはPXおよびRPXをそのCKTに記憶して、取り消された旨のステータスをXに割り当てる。
ii.  BがXを知っているかまたは信頼する場合、Bは取り消された旨のステータスをXに割り当てる。
iii.  Bは、RevocB(X)を生成して、そのCKTに記憶する。
b.  Aによって信頼されているかまたは知られている各々の装置Xに対して：
i.  BがいかなるステータスもXにこれまで割り当てなかった場合、BはPXおよびRPXをそのCKTに記憶して、知られている旨のステータスをXに割り当て、証明書の連鎖CertX*(B)を記憶する。これは、CertX(A)またはCertX*(A)と、CertA(B)の組合せである。
ii.  BがXを知っているかまたは信頼する場合であって、受信したCertX*(A)とCertA(B)の組合せがCKTのCertX*(B)より短い場合、CKTのCertX*(B)をその受信した組合せと交換する。
iii.  Bが、既に取り消された旨のステータスをXに割り当てている場合、何もなされない。
【００２６】
自動的な装置の組み入れは、ユーザまたはコミュニティ管理者の介入なしに、装置をコミュニティに組み入れるために用いられる。コミュニティに関する知識の拡散によって、装置Bは、装置Aによって信頼されているかまたは知られていることを、Aが認識した場合であって、Aが証明書の連鎖CertB*(A)を記憶しており、Bは通信可能である場合、次のステップが実行される：
1.  Aは、CertB*(A)から成る証明書メッセージの連鎖を送信する。
2.  Bが、いかなるステータスもAにこれまで割り当てなかった場合：
a.  Bは、PAおよびRPAをそのCKTに加えて、信頼されている旨のステータスをAに割り当てる。
b.  Bは、証明書CertB(A)を生成する。
c.  Bは、AにCertB(A)を含む証明書メッセージを送信する。
d.  Aは、そのCKT中のCertB*(A)をCertB(A)と交換する。
3.  BがAを信頼する場合：
a.  Bは、証明書CertB(A)を生成する。
b.  Bは、AにCertB(A)を含む証明書メッセージを送信する。
c.  Aは、そのCKT中のCertB*(A)をCertB(A)と交換する。
4.  BがAを知っている場合：
a.  Bは、Aに信頼されている旨のステータスをAに割り当てる。
b.  Bは、証明書CertB(A)を生成する。
c.  Bは、AにCertB(A)を含む証明書メッセージを送信する。
d.  Aは、そのCKT中のCertB*(A)をCertB(A)と交換する。
5.  Bが、取り消された旨のステータスをAに割り当てている場合：
a.  Bは、証明書の連鎖メッセージを破棄する。
【００２７】
ブラックリストは、ユーザが組み入れを決して望まない装置（例えば隣のネットワーク装置）があるということを知っている場合に使用される。ユーザの装置が、ユーザに対し、繰り返して、これらの装置の組み入れを求めることは、面倒なことである。そして、ユーザの装置がこれらの装置を候補装置のリストに追加してゆくとしたら、ユーザが本当に組み入れを望む装置を見つけることをより難しくすることになり、やはり面倒である。
【００２８】
ブラックリストを機能させるためには、各々の装置は、そのCKT中に装置のブラックリストBLを記憶すればよい。
【００２９】
ブラックリストは、コミュニティに関する知識の拡散によって、他の装置に伝えられる。
【００３０】
装置はブラックリストにある装置を取扱わない。このことは、例えば装置がユーザにブラックリスト中の装置を組み入れるよう求めないことを意味する。
【００３１】
なお、以前にブラックリストに記載された装置であっても、ブラックリストに記載している装置を組み入れの候補であることができるようにするために、（標準の取り消しの代わりに）別のリストを使用することは、容易に「unblacklist」装置になるための可能性を与える。
【００３２】
信頼された装置のリストは、若干のアプリケーションのために必要とされるかもしれない。その場合は、装置Aは、相互に信頼された装置MT（mutually  trusted）のリストをそのCKTに記憶する。Aが信頼された装置からBに関して取り消し情報を受信する場合、Aは信頼されたリストMTからBを取り去る。AがBを信頼し、そしてBからコミュニティに関する知識メッセージを受信する場合、AはBをそのMTリストに追加する。
【００３３】
なお、上述のアルゴリズムの説明で、装置Aは、ユーザが現在使用している装置である点に留意する必要がある。特定の運用では、ユーザが複数の装置と相互に作用することを必要とすることがある。最初に装置Bであった装置は後で装置Aになることができる。なぜなら、現在の装置が何であっても、アルゴリズムは同じだからである。
【００３４】
図2は、典型的なシナリオによる、コミュニティへの装置の組み入れを例示する。図2において、装置X210が装置Y220を知っている（それは、上述の装置の組み入れ中の説明での第3の可能性に対応する）。装置Y220が装置X210を信頼しない、そして、両方の装置210、220が、それぞれ他の装置の識別情報PIXおよびPIYを知っていると仮定する。なぜなら、メッセージ矢印232および234によって示されるように、両方の識別情報は以前にブロードキャストされているためである。
【００３５】
装置Y220は、ＣＰＵ221を含み、本方法を実行するのに適している。記憶装置222は、例えば証明書を記憶する。そしてインタフェース（I/O）223は通信のためのものである。
なお、装置X210も同様にこれらの構成要素を含むが、それらは明確にするため図2において例示されない。
【００３６】
ユーザ200が装置Xに対して装置Yを組み入れるよう命令240すると、組み入れが始まる。装置Xが証明書CertX(Y)を生成242すると、この証明書がメッセージ244に入れられて装置Y送信される。メッセージ244の受信に対応して、装置Yは、装置Xを信頼しないこと決定し、メッセージ244を廃棄246する。
【００３７】
装置Xは、装置Yがメッセージ244を廃棄したとは知らず、プロトコルの実行を続け、ユーザ200が装置Yを組み入れるよう命令した通り、装置Yのステータスを「信用された：TRUSTED」に変更248する。それから、装置Xはメッセージ250を送信する。そして、装置Yから対応する証明書CertY(X)を要請する。装置Yがまだ装置Xを信頼していないため、装置Yは要請250を拒否252する。
【００３８】
この点で、プロトコルは、停止する（実際に続けることはできない）。これは実際に予定通りのことである点に留意する必要がある。
【００３９】
ユーザ200は装置Y側に移る。ここで留意すべき点は、上述のプロトコルの記述において、装置Yは、（今までの説明では、装置Bであったが）以下の説明では、装置Aとなる。ただし、図２の装置Yは、明確性を確保するためそのままとしてある。加えて、ユーザ200が装置Xを組み入れるよう装置Yに命令するとき、プロトコルは、事実上、再開する点に留意する必要がある。
【００４０】
ユーザ200は、それから装置Yに装置Xを組み入れるように命じる254。装置Yは、のCertY(X)を生成256して、それをメッセージ258に含めて装置Xに送信する。ユーザ200が装置Xを組み入れるよう命令した通り、装置Xのステータスを「信用された：TRUSTED」に変更260する。証明書メッセージ258の受信に応じて、装置XはYを信用しているので、装置Xは証明書CertY(X)を記憶する262。これは、先に示した、装置Yが装置Xを信頼しなかった状況とは異なる点に注意する必要がある。
【００４１】
装置Xが装置Yを信頼するかどうかに関係なく、装置Yは、その時点で、これを知る方法を有しないが、上記で装置Xが行ったのと同様、プロトコルを継続する。そして、装置Yはメッセージ264を送信し、装置XからCertX(Y)を要請する。装置Xが装置Yを信頼しているため、XはCertX(Y)を有するメッセージ266を返す。なお、装置Xが、先のステップ242において作成した証明書CertX(Y)を記憶していない場合、Xは証明書を生成する必要がある点に注意する。
【００４２】
証明書メッセージ266の受信に応じて、装置Yは、証明書CertX(Y)を記憶する268、そして、ユーザに対して、組み入れが成功している旨を示す270。
【００４３】
前述のように、図2の実施例から、プロトコルはクロックを用いずに実行され得る。プロトコルは実行され続ける、そして、それがどこかでスタックした場合、ユーザ200はプロトコルを再開するために行動を起こすことができる。したがって、受領通知は必要なく、また装置がこれらの受領通知を受け取るタイムアウトも必要はない。ハッカーはこれらのタイムアウトによって作られるいかなる盲点も利用することができないため、これはプロトコルの安全性を高めることができる。
【００４４】
本発明のさまざまな特徴および効果およびその好ましい実施例は、添付の図面中に記載されている。図面は、本発明を端的に説明するものであって、本発明の範囲を制限するためのものではない。
【００４５】
［好適なアルゴリズム］
SignGenAlgoはRSASSA-PSS-SiGNと呼ばれている望ましい署名生成アルゴリズムである。PKCS#1,RSA  Cryptography  Standard,Version  2.1,RSA  Laboratories  2002.において説明されている。
SignVerAlgoはRSASSA-PSS-VERIFYと呼ばれている望ましい署名生成アルゴリズムである。PKCS#1,RSA  Cryptography  Standard,Version  2.1,RSA  Laboratories  2002.において説明されている。
HashAlgoはSHA-1ハッシュアルゴリズムである。FIPS  Publication  180-1:Secure  Hash  Standard,  National  Institute  of  Standards  and  Technology,1994.
RandAlgoは、NIST  Special  Publication  800-22において特定される全ての試験にパスするランダムなアルゴリズムである:A  Statistical  Test  Suite  for  Random  and  Pseudorandom  Number  Generators  for  Cryptographic  Applications,2001.
【図面の簡単な説明】
【００４６】
【図１】本発明が用いられる典型的なコミュニティの例示を示す図である。
【図２】典型的なシナリオによってコミュニティに装置を組み入れる例を示す図である。
【符号の説明】
【００４７】
１０１  PC
１０２  PC
１０３  TV
１０４  記憶装置
１０５  ＰＤＡ
２００  ユーザ
２１０  X
２２０  Y
２２１  CPU
２２２  メモリ
２２３  入出力
２３２  PIX
２３４  PIY
２４０  Yを組み入れほしい旨の要求
２４２  CertX(Y)の生成
２４４  CertX(Y)
２４６  メッセージの廃棄
２４８  Yを信用する
２５０  CertY(X)の要求
２５２  要求の拒否
２５４  Xを組み入れほしい旨の要求
２５６  CertY(X)の生成
２５８  CertY(X)
２６０  Xを信用する
２６２  CertY(X)の記憶
２６４  CertX(Y)の要求
２６６  CertX(Y)
２６８  CertX(Y)の記憶
２７０  組み入れOK
【図１】
2009526457.tif 000003
【図２】
2009526457.tif 000004
【国際調査報告】
2009526457.tif 000005
2009526457.tif 000006
2009526457.tif 000007