(57)【要約】      （修正有）【課題】Ｂｌｕｅｔｏｏｔｈ（登録商標）対応デバイスは、１つの周波数から他の周波数に絶え間なくホップする搬送波周波数を用いて通信を行う。従来技術では、ホッピング・シーケンス内の各周波数は、マスタのＢｌｕｅｔｏｏｔｈアドレス（ＢＤ＿ＡＤＤＲ）およびユニバーサル時刻パラメータの既知の関数により決定される。盗聴者が、１つまたは複数の周波数帯域を一定時間以上聞くことにより、検出したホッピング・シーケンスから、デバイスのＢＤ＿ＡＤＤＲを決定することができないようにする。【解決手段】ホッピング・シーケンスは、マスタのＢＤ＿ＡＤＤＲ、ユニバーサル時刻パラメータおよびシードの既知の関数として決定する。シードは乱数または疑似乱数であって、マスタとスレーブのデバイス間で連絡され、デバイスの１つが新しいセッションを開始する度に、または時間の経過とともに変更する。【選択図】図５
2011239414.tif 000002
【特許請求の範囲】
【請求項１】
定義されたセットに属する複数のデバイスがメッセージを送受信することによって互いに通信するネットワークにおいて、デバイスが使用する方法であって、
前記方法は、
前記定義されたセットに属する複数のデバイスの１つが、ホップする順序を規定するための複数の周波数を含む予測可能なホッピング・シーケンスにしたがって、時間の経過とともに１つの周波数から他の周波数へホップする周波数でメッセージを送信するステップ
を含み、
前記定義されたセットに属する複数のデバイスの１つが、前記ホッピング・シーケンス内のそれぞれの周波数を、前記定義されたセットに属する複数のデバイスの１つに関連付けられる特定の識別子と、ユニバーサル時刻パラメータと、シードとの既知の関数から決定し、それによって前記定義されたセットに属さないデバイスによって受信されるメッセージの中で検出される、送信周波数を変更するパタンが、前記定義されたセットに属する複数のデバイスの１つに関連付けられる特定の識別子に関連付けられることを防止すること
を特徴とする方法。
【請求項２】
前記定義されたセットに属する複数のデバイスは、Ｂｌｕｅｔｏｏｔｈ（登録商標）対応のデバイスであり、
前記特定の識別子は、前記定義されたセット内のマスタ・デバイスに関係付けられるＢｌｕｅｔｏｏｔｈ（登録商標）アドレス（ＢＤ＿ＡＤＤＲ）であり、前記定義されたセット内の前記マスタ・デバイス以外のデバイスは前記マスタ・デバイスを通じて通信を行う、
請求項１に記載の方法。
【請求項３】
前記シードは、時間の経過とともに変更される、
請求項１または２に記載の方法。
【請求項４】
前記シードは、前記定義されたセットに属する複数のデバイスのうちの１つのデバイスが新しいセッションを開始するときに変更される、
請求項３に記載の方法。
【請求項５】
前記シードは、現在のセッション内でメッセージを送信するために使われる前記ホッピング・シーケンス内の周波数の順番の一部を決める、少なくとも１つの乱数または疑似乱数である、
請求項４に記載の方法。
【請求項６】
定義されたセットに属する複数のデバイスがメッセージを送受信することによって互いに通信するネットワークにおいて、デバイス内で使用される装置であって、
前記装置は、
ホップする順序を規定するための複数の周波数を含む予測可能なホッピング・シーケンスにしたがって、時間の経過とともに１つの周波数から他の周波数へホップする周波数でメッセージを送信する手段と、
前記ホッピング・シーケンス内のそれぞれの周波数を、前記定義されたセットに属する複数のデバイスのうちの１つのデバイスと関連付けられる特定の識別子と、ユニバーサル時刻パラメータと、シードとの既知の関数から決定し、それによって前記定義されたセットに属さないデバイスによって受信されるメッセージの中で検出される、送信周波数を変更するパタンが、前記定義されたセットに属する複数のデバイスの１つに関連付けられる特定の識別子に関連付けられることを防止する手段と
を含む装置。
【請求項７】
前記定義されたセットに属する複数のデバイスは、Ｂｌｕｅｔｏｏｔｈ（登録商標）対応のデバイスであり、
前記特定の識別子は、前記定義されたセット内のマスタ・デバイスに関係付けられるＢｌｕｅｔｏｏｔｈ（登録商標）アドレス（ＢＤ＿ＡＤＤＲ）であり、前記定義されたセット内の前記マスタ・デバイス以外のデバイスは前記マスタ・デバイスを通じて通信を行う、
請求項６に記載の装置。
【請求項８】
前記シードは、時間の経過とともに変更される、
請求項６または７に記載の装置。
【請求項９】
前記シードは、前記定義されたセットに属する複数のデバイスのうちの１つのデバイスが新しいセッションを開始するときに変更される、
請求項８に記載の装置。
【請求項１０】
前記シードは、現在のセッション内でメッセージを送信するために使われる前記ホッピング・シーケンス内の周波数の順番の一部を決める、少なくとも１つの乱数または疑似乱数である、
請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０００年８月３０日に出願された米国仮出願第２２９１３０号および２０００年９月２１日に出願された第２３４４２６号の利益を請求する。本出願は、「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＥＮＳＵＲＩＮＧ  ＳＥＣＵＲＩＴＹ  ＯＦ  ＵＳＥＲＳ  ＯＦ  ＢＬＵＥＴＯＯＴＨ−ＥＮＡＢＬＥＤ  ＤＥＶＩＣＥＳ」という同様の名称の、本出願と同時に出願された同時係属中の米国特許出願第８５１０９８号内に述べられた主題もまた述べ請求する。
【０００２】
本発明は、小さなローカル・エリア・ネットワーク（ＬＡＮ）上の無線通信に関し、より詳細にはＢｌｕｅｔｏｏｔｈ（登録商標）標準にしたがって動作するデバイス間の局所無線通信に関する。
【背景技術】
【０００３】
Ｂｌｕｅｔｏｏｔｈは、セルラー電話、無線ヘッドセット、コンピュータ、プリンタ、自動車、ターンスタイルなどの移動デバイスまたは移動する可能性のあるデバイスの局所無線通信のために最近提案された標準であり、互いに近接するそのようなデバイスが互いに通信することを可能にする（例えば、ｈｔｔｐ：／／ｗｗｗ．ｂｌｕｅｔｏｏｔｈ．ｃｏｍ、「Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｏｆ  ｔｈｅ  Ｂｌｕｅｔｏｏｔｈ  Ｓｙｓｔｅｍ」、Ｃｏｒｅ，Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｏｌｕｍｅ  １、ｖ．１．１、２００１年２月２２日、および「Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｏｆ  ｔｈｅ  Ｂｌｕｅｔｏｏｔｈ  Ｓｙｓｔｅｍ」、Ｐｒｏｆｉｌｅｓ、Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｏｌｕｍｅ  ２、ｖ．１．１、２００１年２月２２日参照）。本標準は、ハンズフリー通信、容易な同期など現在の機能にまさる様々な諸改善を約束する。したがって本標準は、無線ヘッドセットに接続された電話、自動車の緊急システムに接続された電話、高価で見目の悪いコードなしでプリンタに接続されたコンピュータ、デジタル財布、ターンスタイルおよび商館に接続された電話など、新しいタイプの設計を考慮に入れる。
【０００４】
ｐｉｃｏｎｅｔとして既知の小さな無線ＬＡＮ上で、そのようなデバイスのセット内のすべてのＢｌｕｅｔｏｏｔｈ対応デバイスは、そのセット内のマスタ・デバイスと通信し、そのマスタ・デバイスは、ｐｉｃｏｎｅｔが確立されるときにマスタとして選択される。マスタ・デバイスは、そのセット内の他のスレーブ・デバイスを制御し、所与の任意の時点において、どのデバイスが送信しどのデバイスが受信するかを判断する。それぞれの無線ＬＡＮ上のスレーブ・デバイスは、通信が進むためにマスタ・デバイスからおよそ９１４ｃｍ（３０フィート）以内である必要がある。Ｂｌｕｅｔｏｏｔｈ対応デバイスが、複数のｐｉｃｏｎｅｔの範囲内にある可能性があるので、自分自身のｐｉｃｏｎｅｔ内の他のデバイスからのそのデバイスが適切に反応すべきメッセージと、そのセットの外部にある他のｐｉｃｏｎｅｔ上のデバイスからのそのデバイスが無視すべきメッセージとを受信デバイスが区別できるようにするための保護が組込まれる。そのような干渉を防止するために、従来技術のＢｌｕｅｔｏｏｔｈ標準は、デバイスによって送信されたそれぞれのメッセージがネットワーク・ディスクリプタを含むことを要請した。その場合、同じｐｉｃｏｎｅｔ上のマスタ・デバイスおよび任意のスレーブ・デバイス間のすべてのメッセージが同じディスクリプタを含むので、他のｐｉｃｏｎｅｔ上の任意のデバイスが異なるネットワーク・ディスクリプタを有するメッセージを「聞く」ときに、そのデバイスはそのメッセージを無視することがわかる。それぞれのｐｉｃｏｎｅｔ上で使用されるネットワーク・ディスクリプタは、デバイス識別子、すなわちいわゆる４８ビットＢｌｕｅｔｏｏｔｈアドレス（ＢＤ＿ＡＤＤＲ）の関数として決定されるチャネル・アクセス・コード（ＣＡＣ）であり、そのＣＡＣはそのＬＡＮ内のマスタに関連付けられ、それぞれのＢｌｕｅｔｏｏｔｈデバイスは、そのメモリ内に一意のＢＤ＿ＡＤＤＲを格納している。したがってｐｉｃｏｎｅｔの形成時にデバイスがマスタとして指定されるとき、そのＢＤ＿ＡＤＤＲの決定論的関数としてＣＡＣが計算され、次いでそのＣＡＣは、その定義セット内のマスタと任意のスレーブ・デバイス間で、ｐｉｃｏｎｅｔを介して送信されるすべてのメッセージに対するネットワーク・ディスクリプタとして使用される。マスタのＢＤ＿ＡＤＤＲがわかると、スレーブは、既知の決定論的関数を使用してその同じＣＡＣを計算することができ、それによって、どのメッセージを聞くべきか、そのスレーブに逆にメッセージを通信する際に何のネットワーク・ディスクリプタを使用すべきかを知る。
【０００５】
この構成の問題は、Ｂｌｕｅｔｏｏｔｈデバイスを使用する個人のプライバシが攻撃され得ることである。例えば、マスタＢｌｕｅｔｏｏｔｈ対応セルラー電話、スレーブＢｌｕｅｔｏｏｔｈ対応無線ヘッドフォン、およびスレーブＢｌｕｅｔｏｏｔｈ対応ＣＤプレイヤを有するユーザが、レシーバを装備する意図的盗聴者のいる領域に入った場合、その個人は、そのマスタからのメッセージおよびマスタへのメッセージ内で使用されるネットワーク・ディスクリプタを検出し「調査する」ことによって、そのユーザのセルラー電話に関連付けられたネットワーク・ディスクリプタを知ることができる。その後その盗聴者は、同じネットワーク・ディスクリプタを含むメッセージを探して様々な位置で「聞く」ことによって、そのユーザの物理的位置を追跡することができよう。したがって、例えば政治家のセル電話に関連付けられたネットワーク・ディスクリプタが決定される場合、その人が、政治的に問題となり得る場所を訪問すれば、その場所で盗聴しているレシーバによって追跡することができる。さらに、複数の個人のＢｌｕｅｔｏｏｔｈデバイスに関連付けられたネットワーク・ディスクリプタが決定された場合、それらの個人のその後のミーティングは、これらの個人に関連付けられたネットワーク・ディスクリプタを含む複数のメッセージの位置および時間の一致によって追跡することができよう。これらのプライバシの問題に加えて、ユーザのネットワーク・ディスクリプタが危うくなると、様々なセキュリティ問題が提示される。具体的には、ネットワーク・ディスクリプタが決定されると、ｐｉｃｏｎｅｔ内の受信デバイスがｐｉｃｏｎｅｔ内からの妥当なデバイスから発生していると仮定するであろう方法で、意図的盗聴者がｐｉｃｏｎｅｔにメッセージを注入することができよう。メッセージの真実性を保証することができないので、これは認証問題と称する。
【０００６】
これらのセキュリティ問題に対する解決は、我々の前記同時係属中の特許出願内の発明の主題である。その発明は、デバイスから送信されるメッセージおよびデバイスに送信されるメッセージ内のネットワーク・ディスクリプタを検出し次いで探し聞く盗聴者がＢｌｕｅｔｏｏｔｈ対応デバイスのユーザを追跡するのを実質的に妨害する。
【０００７】
しかし、そのようなＢｌｕｅｔｏｏｔｈ対応デバイスのユーザは依然、そのデバイスによって使用されるチャネル・ホッピング・シーケンスを検出することによってそのユーザを追跡することができるコンピュータ・パワーのある盗聴者による攻撃を受ける可能性がある。Ｂｌｕｅｔｏｏｔｈ標準によれば、２つのデバイス間で送信されるメッセージ・パケットは、同じ単一周波数帯域内では送信されない。むしろメッセージ・タイムスロット内で、メッセージはＮのうちの１つの帯域で送信され、ここでＮは、米国では７９に等しい。次のメッセージ・タイムスロットの開始時に、搬送波周波数は異なる周波数に「ホップ」する。チャネル・ホッピング・シーケンスとして既知の使用周波数のシーケンスは、ユニバーサル時刻パラメータおよびｐｉｃｏｎｅｔ上で動作するマスタ・デバイスのＢＤ＿ＡＤＤＲの既知の関数として計算される疑似ランダム・パタンである。これにより、それぞれと通信するマスタおよびスレーブ・デバイスは、所与の任意の時点で、どの周波数帯域上で送信かつ受信すべきかを知ることができる。前記のように、ＢＤ＿ＡＤＤＲは４８ビット・ワードであるので、２４８の異なるＢＤ＿ＡＤＤＲがあり、それぞれが関連するホッピング・シーケンスを生成する。ホッピング・シーケンスを計算するために使用される関数は既知の必要があるので、強い攻撃者、すなわち著しいコンピュータ・パワーを有する者であれば、それぞれの可能なＢＤ＿ＡＤＤＲに関連付けられたホッピング・シーケンスを決定することができよう。したがって、それぞれのＢＤ＿ＡＤＤＲに対して、そのようなコンピュータに強い盗聴者であれば、そのデバイスが通信していれば、連続するタイムスロット内のどの周波数帯域内で、信号エネルギーが存在すると期待されるか、を決定することができよう。次いでその盗聴者であれば、１つまたは複数の周波数帯域内の複数のメッセージ・タイムスロット内で信号エネルギーの存在を探して聞くであろう。結果としての周波数帯域／メッセージ・タイムスロット・パタンと、それぞれの可能なＢＤ＿ＡＤＤＲに関連付けられたホッピング・パタンのセットを比較することによって、その検出されたパタンを生成することができる単一のＢＤ＿ＡＤＤＲだけが残るまで、異なるＢＤ＿ＡＤＤＲを可能性として連続的に除外することができよう。コンピュータに強い盗聴者が、ユーザのＢｌｕｅｔｏｏｔｈ対応デバイスのＢＤ＿ＡＤＤＲをそのように識別すると、そのデバイスがそのユーザによって使用され場所から場所に移動されるにつれて、その後そのユーザを、１つまたは複数の周波数帯域内で複数のタイムスロットを介してそのホッピング・パタンを探し聞くことによって追跡することができる。具体的には、その盗聴者は、近くにある自分自身の盗聴レシーバの１つによって受信されているＢｌｕｅｔｏｏｔｈ対応デバイスによって使用されているホッピング・シーケンスが、追跡されているデバイスのＢＤ＿ＡＤＤＲに関連付けられたホッピング・シーケンスであるかどうかを判断するだけでよい。ホッピング・シーケンスが認識されれば、盗聴者は、そのデバイスおよびそのユーザが、そのレシーバの場所の中にいることを知る。さらに、盗聴者がマスタのＢＤ＿ＡＤＤＲを決定すると、その盗聴者であれば、上述の方法でマスタが送信しているｐｉｃｏｎｅｔにメッセージを注入することができよう。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、上述の問題をなくすより安全な通信方法が必要である。
【課題を解決するための手段】
【０００９】
本発明によれば、定義されたデバイスのセット内の複数のデバイスが互いに通信する連続する周波数を選択するために使用されるホッピング・シーケンスは、コンピュータに強い盗聴者であっても、検出された周波数ホッピングのパタンを、そのセット内のデバイスの１つに関連付けられた特定の識別子と関連付けることを妨害する方法でランダム化される。
【００１０】
本発明の一実施形態において、ホッピング・シーケンスは、グローバル時刻パラメータ、ｐｉｃｏｎｅｔ上のマスタのＢＤ＿ＡＤＤＲなどのデバイスの１つに関連付けられた識別子、および通信デバイスに既知かつ／または提供されている少なくとも１つの乱数などのいわゆるシードの乱数、の既知の関数として決定される。好ましい一実施形態において、その乱数は、新しいセッションが始まる都度定期的に変更され、ここでセッションは、１回の電話の会話、１枚のＣＤを聞くこと、プリンタ上で１つのジョブを印刷することなどの１つのイベントの存続期間であると定義される。この実施形態において、セッションが始まり、マスタとスレーブの間の通信が始まると、マスタおよび／またはスレーブは、乱数、すなわちシードを選択し、その乱数は、そのセッションに関連付けられたデバイスに通信される。次いでマスタおよびスレーブは、グローバル時刻パラメータ、マスタのＢＤ＿ＡＤＤＲ、およびその乱数の既知の関数としてホッピング・シーケンスを計算する。次いでマスタおよびスレーブは、そのセッションの存続期間全体で連続するメッセージ・パケットを送信かつ受信するためのそれぞれの次の周波数帯域を決定するためにその結果としてのホッピング・シーケンスを使用する。新しいセッションが始まるとき、新しい乱数が生成されマスタおよびスレーブに通信され、次いでその乱数は、その新しいセッションのための新しいホッピング・シーケンスを計算するためにマスタおよびスレーブの両方によって使用される。信号エネルギーが存在する周波数帯域を聞くことによって、近接デバイスによって使用されているホッピング・シーケンスを決定しようと企てる意図的盗聴者は、検出された２つの部分的または全体的ホッピング・シーケンスを互いにまたは具体的ＢＤ＿ＡＤＤＲに関連付けることができない。さらに盗聴者は、第１ホッピング・シーケンスが第２ホッピング・シーケンスにどこで変換されるのか、両方のホッピング・シーケンスが実際に同じＢＤ＿ＡＤＤＲから生成されていること、を判断できない。さらに進んだセキュリティのために、新しいセッションのためのホッピング・シーケンスを計算する際に使用されるシードは、新しいセッションのために生成された乱数、および前のセッションのために生成された１つまたは複数の乱数の関数とすることができる。それぞれのセッションの開始時にマスタから他のデバイスに送信される乱数は、暗号化することができ、それぞれのデバイス内で鍵を事前確立する必要があるが、盗聴者が盗み聞きしてもその乱数を知ることを防止する。あるいは、乱数を平文で送信することができる。平文で送信される場合、攻撃者は、その数を知るためにセットアップの正確な時刻にいなければならない。さらに、シードを形成するために複数の乱数が一緒に使用されるとき、攻撃する盗聴者は、前のセッションすべての正確なセットアップ時刻にいる必要がある。暗号化された乱数を送信することによって、デバイスからデバイスのアクセスは、他のデバイス、ならびに同じ第１ｐｉｃｏｎｅｔ上で動作しているそのようなデバイスまたは第１ｐｉｃｏｎｅｔに物理的に近接しその範囲内にある第２ｐｉｃｏｎｅｔ上で動作している他のデバイスのユーザにとって、含めること、または除くことができる。
【図面の簡単な説明】
【００１１】
【図１】ｐｉｃｏｎｅｔ上で互いに通信するＢｌｕｅｔｏｏｔｈ対応デバイスを身体に携帯するユーザを示す図である。
【図２】自分のＢｌｕｅｔｏｏｔｈ対応デバイスが複数のｐｉｃｏｎｅｔの範囲内にある２人のユーザを示す図である。
【図３】Ｂｌｕｅｔｏｏｔｈ対応デバイスのユーザの位置を追跡する不法盗聴者を示す図である。
【図４】本発明による、Ｂｌｕｅｔｏｏｔｈ対応デバイスのブロック図である。
【図５】本発明による、第１実施形態の諸ステップを詳述する流れ図である。
【発明を実施するための形態】
【００１２】
図１は、３つの活動状態のＢｌｕｅｔｏｏｔｈ対応デバイス、すなわちセル電話１０２、無線ヘッドセット１０３、およびＣＤプレイヤ１０４を有するユーザ１０１を示す。この定義されたセット内のこれらの３つのデバイスが通信するｐｉｃｏｎｅｔが確立されるとき、セル電話１０２はマスタ・デバイスとして確立され、無線ヘッドセット１０３およびＣＤプレイヤ１０４はスレーブ・デバイスである。セル電話１０２は、仲介者かつコントローラとして動作し、スレーブ１０３および１０４からのすべてのメッセージは、その他に渡される前にマスタ・セル電話１０２に送信される。したがって、例えばＣＤプレイヤ１０４のデジタル化されたオーディオ出力は、マスタ・セル電話１０２にメッセージとして送信されてから、セル電話によって、無線ヘッドセット１０３に転送されてユーザに享受される。コントローラとしてマスタ・セル電話は、着信電話が到着するとＣＤプレイヤ１０４をスイッチ・オフし、次いでユーザが受信できるようにその電話を無線ヘッドセット１０３に渡すようにプログラムすることができる。一般に、Ｂｌｕｅｔｏｏｔｈ対応デバイスの範囲は、およそ９１４ｃｍ（３０フィート）である。したがって、ユーザがＣＤプレイヤ１０４をテーブル上に置く場合、セル電話１０２が自分の身体上に残っていると仮定すると、そのユーザは、受信を維持するために９１４ｃｍ（３０フィート）以内に居続ける必要がある。
【００１３】
Ｂｌｕｅｔｏｏｔｈ対応デバイスは、図２に示すように、物理的に複数のｐｉｃｏｎｅｔの範囲内にあってよく、ここでユーザ２０２および２０３によって使用されているデバイスは、互いの範囲内にある。したがって、ｐｉｃｏｎｅｔ２１２上のユーザ２０２のＢｌｕｅｔｏｏｔｈ対応セル電話２０４、ヘッドセット２０５、およびＣＤプレイヤ２０６は、ｐｉｃｏｎｅｔ２１３上のユーザ２０３のセル電話２０７、ヘッドセット２０８、およびラップトップ・コンピュータ２０９の範囲内にある。前記のように、ｐｉｃｏｎｅｔ２１２上のデバイスの１つが、ｐｉｃｏｎｅｔ２１３上のデバイスのいずれかと干渉することを防止するため、またはその逆のために、Ｂｌｕｅｔｏｏｔｈ標準は、特定のｐｉｃｏｎｅｔ上のすべてのメッセージ内に使用されるネットワーク・ディスクリプタをそれぞれのメッセージが含むことを要請する。したがって、ｐｉｃｏｎｅｔ２１２上の定義されたセット内のマスタ・セル電話２０４から送信されるメッセージおよびマスタ・セル電話２０４に送信されるメッセージは、ｐｉｃｏｎｅｔ２１３上のそれらのメッセージのそれぞれの中のネットワーク・ディスクリプタが、ｐｉｃｏｎｅｔ２１２上のメッセージのそれぞれの中のネットワーク・ディスクリプタとは異なるので、第２の定義されたセット内のデバイス２０７、２０８および２０９によって無視される。
【００１４】
前記同時係属中の特許出願は、定義されたセットの外部であるがユーザ２０２の範囲内にあるレシーバ・デバイス２１０を介して「聞いて」いる意図的盗聴者が、そのユーザのデバイスによって使用されるネットワーク・ディスクリプタを決定することを実質的に防止する発明を述べる。したがって、送信されたメッセージ内のそのネットワーク・ディスクリプタの存在を探して監視することによってユーザの位置を追跡する能力が妨害される。しかし、前述のように、コンピュータに強い盗聴者であれば依然、複数のメッセージ・タイムスロットを介して１つまたは複数の周波数帯域を監視することによって、ユーザのＢｌｕｅｔｏｏｔｈ対応デバイスの１つのＢＤ＿ＡＤＤＲを決定することによってユーザの位置を追跡することができよう。上述のように、Ｂｌｕｅｔｏｏｔｈ対応デバイスによって使用されるチャネル・ホッピング・シーケンスは、ｐｉｃｏｎｅｔ上のデバイスのセット内のデバイスの１つのＢＤ＿ＡＤＤＲの既知の関数として計算される。したがってコンピュータに強い盗聴者は、それぞれの可能なＢＤ＿ＡＤＤＲに対するホッピング・シーケンスを決定することができる。攻撃する盗聴者が追跡したいと考えるユーザによって使用されているＢｌｕｅｔｏｏｔｈ対応デバイスの範囲内のレシーバは、複数のメッセージ・タイムスロットを介して１つまたは複数の周波数帯域内の信号エネルギーのパタンを監視するために使用することができる。そのようなパタンを生成することができる１つのチャネル・ホッピング・シーケンスを見つけることができ、次いでそのホッピング・シーケンスを生成する関連ＢＤ＿ＡＤＤＲを決定することができる。ＢＤ＿ＡＤＤＲが決定されると、ユーザの位置は、そのユーザが他のレシーバの範囲内を通過するにつれて追跡することができ、そのレシーバは、そのＢＤ＿ＡＤＤＲに関連付けられたホッピング・シーケンスに一致する信号エネルギー分布を探して監視している。したがって図３に示すように、ユーザ３０１が都市中を移動するにつれて、そのユーザは、例えばレシーバ３０２、３０３および３０４によって追跡することができ、それらのレシーバはそれぞれ、同じ決定されたホッピング・シーケンスを探して「聞き」、それによってそのユーザのプライバシを危険にさらす。さらに、ユーザのＢＤ＿ＡＤＤＲが決定されると、ｐｉｃｏｎｅｔの範囲内にいる意図的盗聴者であれば、そのｐｉｃｏｎｅｔ上の他のデバイスが妥当であると信じるであろう方法でｐｉｃｏｎｅｔにメッセージを注入することができよう。したがって、ｐｉｃｏｎｅｔ上の他のデバイスであれば、ねつ造された情報を受信し反応するであろう。
【００１５】
従来技術に関連付けられた前述の問題を防止するために、本発明は、ｐｉｃｏｎｅｔを介して通信するＢｌｕｅｔｏｏｔｈ対応デバイスによって使用されるホッピング・シーケンスを修正し、ユニバーサル時刻パラメータおよびデバイスの１つのＢＤ＿ＡＤＤＲからホッピング・シーケンスを決定する関数のパラメータに、ランダム化されたシードを含める。その関数にある程度のランダム化を導入することによって、複数のメッセージ・タイムスロットを介して１つまたは複数の周波数チャネルを聞くことによって、通信デバイスによって使用されているホッピング・シーケンスを検出することができる盗聴者は、検出されたホッピング・シーケンスを、前述の方法で具体的なＢＤ＿ＡＤＤＲに関連づけることができない。好ましい一実施形態において、ホッピング・シーケンスは、ユニバーサル時刻パラメータ、マスタなどデバイスの１つのＢＤ＿ＡＤＤＲ、および新しいセッションがｐｉｃｏｎｅｔ上で始まる都度変更される乱数の所定の関数として決定される。セッションは、図１において、セル電話１０２を介したユーザによる電話の会話、またはＣＤプレイヤ１０４上の単一のＣＤを演奏することなど、１つのイベントの存続期間によって定義される。したがって、図１のＢｌｕｅｔｏｏｔｈ対応デバイスに関して、新しいセッションは、新しい電話の会話または新しいＣＤの演奏開始時に始まる。新しいセッションの開始時に、本発明のこの実施形態によれば、マスタは、マスタのＢＤ＿ＡＤＤＲとともに乱数、すなわちシードをスレーブに送信し、それらは、そのセッションの存続期間の間マスタおよびスレーブによって使用されるホッピング・シーケンスを計算するためにユニバーサル時刻パラメータとともにマスタおよびスレーブの両方によって使用される。好ましい一実施形態において、マスタのＢＤ＿ＡＤＤＲ、シード、およびユニバーサル時刻パラメータからホッピング・シーケンスを計算するために使用される関数は、よく既知のＳＨＡ１、ＭＤ５関数などのいわゆる一方向関数である。そのような一方向関数は、当業者によく理解されているように、関数の出力が与えられた関数に対する入力のリバース・エンジニアリングを防止する。
【００１６】
ホッピング・シーケンスを計算するシードとして使用される乱数は、新しいセッションが始まる都度など定期的に変更されるが、代替実施形態では、乱数は静的のままでよい。不利なことに、意図的盗聴者であれば、観測したホッピング・シーケンスを、先に検出されたホッピング・シーケンスに関連付けることができる可能性があるが、そのホッピング・シーケンスを誰に関連付けるかはわからないであろう。したがって、その盗聴者は、同じグループのデバイスが２つのホッピング・シーケンスを生成したと結論付けることはできるが、それらのホッピング・シーケンスは識別不可能であろう。
【００１７】
シードとして使用された乱数は、互いに通信するマスタおよびスレーブに提供されて、それぞれが別々に矛盾なくホッピング・シーケンスを計算することができるようにする必要がある。これは、乱数を一方から他方に、例えばマスタからスレーブに送信すること、または第１部分をマスタからスレーブに、残りの第２部分をスレーブからマスタに送信することなどによって、２つの間の通信を介して達成することができる。
【００１８】
乱数または乱数の一部は、平文で送信することができ、この構成の単純さがその利点である。不利なことに、乱数がデバイス間で通信されるとき、盗聴者によって盗み聞きされる可能性がある。そのような出来事を防止するために、１つのデバイスからその他に通信される乱数または乱数の一部は、暗号化することができ、そのようなデバイスの両方が鍵を事前確立することを要請する。盗聴者が盗み聞きした乱数を解読することを防止する利点に加えて、乱数を暗号化することは、ｐｉｃｏｎｅｔ上の他のデバイス間で送信されているメッセージを特定のユーザおよび／またはデバイスが受信することを除く利点がある。
【００１９】
それぞれの新しいセッションの間にデバイス間で全部または部分的に平文で送信される乱数に関するさらに進んだセキュリティは、その乱数を少なくとも１つの前の乱数と組み合わせて使用して、新しいセッション内で使用されるホッピング・シーケンスを計算するために使用されるシードを生成することによって達成することができる。したがって、盗聴者がシードを決定するには、その盗聴者は、新しいセッションの開始時、および前のセッションの開始時にいなければならなかったであろう。
【００２０】
図４は、本発明によるＢｌｕｅｔｏｏｔｈ対応デバイス４００を機能的に示すブロック図である。ここに示すように、デバイス４００は、そのデバイスをＢｌｕｅｔｏｏｔｈ仕様にしたがって動作させるＢｌｕｅｔｏｏｔｈ機能エレメント４０１と、図１の実施例などにおいて、デバイス４００全体がセル電話、無線ヘッドセット、ＣＤプレイヤであるという、特定のタイプのユニットに関連付けられた機能を実行する他のデバイス回路４０２に機能的に分離する。Ｂｌｕｅｔｏｏｔｈ機能エレメント４０１は、ｐｉｃｏｎｅｔ上の他のデバイスから無線送信メッセージを受信しそのメッセージをレシーバ４０４に渡す受信アンテナ４０３を含む。レシーバ４０４は、復調されたメッセージを出力し、そのメッセージをプロセッサ４０５に入力する。本発明を実施するために必要な機能、すなわちシード、マスタのＢＤ＿ＡＤＤＲ、およびｐｉｃｏｎｅｔ上の他のデバイス内の同様のクロックと同期されているクロック４１２の出力から決定されるユニバーサル時刻パラメータの関数としてホッピング・シーケンスを定期的に計算すること、を実行することに加えて、プロセッサ４０５は、前記同時係属中の特許出願において述べた発明に必要な動作を含む他の必要なＢｌｕｅｔｏｏｔｈ動作、および本発明の理解には必要ないのでさらには議論されない他の動作を実行する。それぞれの受信メッセージ内の情報は、リンク４０６を介してデバイス固有処理のためにデバイス回路４０２に渡され、そのリンク４０６は、シリアルもしくはパラレル・バスまたは他のケーブル構成あるいは無線接続でよい。デバイス回路４０２内またはプロセッサ４０５内のいずれかで発生する送出メッセージは、変調および出力アンテナ４０８上への出力のためにトランスミッタ４０７に渡される。共通アンテナは、図４に示す２つの別々のアンテナ４０３および４０８の機能を共用することができる。
【００２１】
本発明の機能を実行するために、Ｂｌｕｅｔｏｏｔｈ機能エレメント４０１は、イベント検出器４０９を含むように示され、このイベント検出器４０９は、ここに示すように別のエレメント、またはプロセッサ４０５の一部として組込まれてよい。デバイス４００がｐｉｃｏｎｅｔ上のマスタであり、新しいセッションがそのデバイスのデバイス回路４０２内で始まる場合、イベント検出器４０９がトリガされ、それによって新しいホッピング・シーケンスを計算するようにプロセッサ４０５に信号を送る。新しいセッションがスレーブのデバイス回路内で始まる場合、その情報は、マスタおよびイベント検出器４０９に通信される。イベント検出器４０９によってトリガされると、プロセッサ４０５は、取り出された乱数、このデバイスのマスタのＢＤ＿ＡＤＤＲ、およびクロック４１２からの現在のユニバーサル時刻パラメータの所定の関数としてホッピング・シーケンスを計算する際にシードとして振舞う乱数を乱数ジェネレータ４１０から取り出す。別のエレメントとして示されているが、乱数ジェネレータ４１０はプロセッサ４０５内に組込むことができ、放射能または一方向関数などの暗号化技術などランダム性の様々なソースから乱数を生成することができる。単純化の目的のために、一部ではなくて乱数全体が一部ではなくてマスタ内で乱数ジェネレータ４１０によって生成され、その乱数がスレーブ内で生成された他の一部によって組み合わされると仮定する。図４に示すように、ＢＤ＿ＡＤＤＲは、プロセッサ４０５に関連付けられたメモリ４１１内に格納されるが、実際にはＢｌｕｅｔｏｏｔｈ機能エレメント４０１の一部としてハードウェアに組込まれてよい。前記のように、ホッピング・シーケンスを計算するために使用される所定の関数は、好ましくは一方向関数である。同様にメモリ４１１内に格納される、ホッピング・シーケンスを計算するために使用される乱数もまた、同じ関数を使用してホッピング・シーケンスを計算するために、マスタのＢＤ＿ＡＤＤＲおよびユニバーサル時刻パラメータとともに、その乱数が使用されるスレーブに通信される。したがって、デバイス４００がｐｉｃｏｎｅｔ上のマスタではなくてスレーブである場合、メモリ４１１は、ホッピング・シーケンスを計算するために使用されるマスタのＢＤ＿ＡＤＤＲおよび現在の乱数を格納する。
【００２２】
単純化の目的のために、マスタがスレーブに平文で乱数を通信すると仮定する。暗号化される場合、送信鍵がメモリ４１１から取り出され、プロセッサ４０５が乱数を暗号化してから、その乱数がスレーブに送信される。スレーブは、乱数を受信すると、メモリ４１１から受信鍵を取り出し、プロセッサ４０５が、その鍵を使用して受信した暗号化済の数を解読する。
【００２３】
新しいセッションが検出されると、メモリ４１１内の乱数は、マスタ内の乱数ジェネレータ４１０によって生成された乱数によって置換され、次のセッションの開始をイベント検出器４０９が検出するまですべてのメッセージ・パケットを連続的に送信かつ受信するための周波数帯域のシーケンスを決定するために、新しいホッピング・シーケンスがプロセッサ４０５によって計算される。
【００２４】
前述のように、上述の実施形態は、意図的盗聴者がＢｌｕｅｔｏｏｔｈ対応デバイスのユーザの位置を追跡することを防止するためのさらに進んだ保護すら追加するように修正することができる。具体的には、上述の純粋にセッション・ドリブンの実施形態において、乱数およびマスタのＢＤ＿ＡＤＤＲの関数としてＣＡＣを計算する際にシードとして乱数ジェネレータ４１０によって出力される乱数を使用するのではなくて、乱数ジェネレータ４１０によって出力された乱数が、少なくとも１つの前の乱数と組み合わされる。次いでこれらの乱数の組合せが、その組合せおよびマスタのＢＤ＿ＡＤＤＲの関数としてＣＡＣを計算する際にシードとして使用される。したがってこの実施形態において、セッションがセットアップされるときに攻撃者がいて、マスタからスレーブに渡されている乱数を知る場合、前の乱数が渡されたときのそれぞれの前のセッションがセットアップされたときにもまたいなければ、その攻撃者がＣＡＣを計算することはできない。したがってこの実施形態において、Ｂｌｕｅｔｏｏｔｈエレメント４０１内のメモリ４１１は、乱数ジェネレータ４１０によって出力された少なくとも１つの前の乱数を格納するための少なくとも１つの記憶位置もまた含む。
【００２５】
ＣＡＣがそれぞれのセッションの開始時だけでなくそれぞれのセッション内で定期的に再計算される本発明の第２実施形態もまた、同様に修正することができる。したがって、それぞれのセッションの開始時またはそれぞれのセッション内でそれぞれの定期的間隔の終了時にＣＡＣを計算するシードとして使用される乱数は、そのとき乱数ジェネレータ２１０によって出力された乱数およびメモリ３１１内に格納された少なくとも１つの前の乱数の組合せである。
【００２６】
図５は、本発明のこの第１実施形態の諸ステップを示す流れ図である。ステップ５０１において、指定されたマスタおよびスレーブ間の通信ネットワークが確立される。ステップ５０２において、マスタが、マスタのＢＤ＿ＡＤＤＲとともにスレーブに提供されるシードとして使用される乱数を選択する。ステップ５０３において、マスタのＢＤ＿ＡＤＤＲおよび選択された乱数の決定論的関数としてマスタおよびスレーブによってＣＡＣが計算される。ステップ５０４において、その計算されたＣＡＣが、マスタおよびスレーブ間で送信されるすべてのメッセージ内のネットワーク・ディスクリプタとして使用される。ステップ５０５において、現在のセッションが依然続いているかどうかの判断がなされる。もしそうであれば、ステップ５０４において再び、同じ計算されたＣＡＣが、マスタおよびスレーブ間のすべてのメッセージ内のネットワーク・ディスクリプタとして使用され続ける。ステップ５０５において、現在のセッションが依然継続中ではないという判断がなされれば、ステップ５０６において、新しいセッションが始まったかどうかの判断がなされる。もしそうであれば、流れはステップ５０２に戻り、ここでマスタは、シードとして使用される新しい乱数を選択し、その新しいシードがスレーブに提供される。再び、前述のように、新しいＣＡＣがマスタおよびスレーブによって計算され、そのＣＡＣは、そのセッションが終了するまでマスタおよびスレーブ間のすべてのメッセージ内のネットワーク・ディスクリプタとして使用される。
【００２７】
したがって意図的盗聴者は最初に、自分が取り込むメッセージ内に、第１セッション中に使用するために計算されたＣＡＣ１を「聞く」。そのセッションが終了すると、盗聴者はどのメッセージ内にもＣＡＣ１をもう聞かない。新しいセッションが始まると、盗聴者は、自分が盗み聞きするメッセージ内に、第２セッション中に使用するために計算されたＣＡＣ２を「聞く」。しかし、盗聴者は、ＣＡＣ１およびＣＡＣ２の両方が同じＢＤ＿ＡＤＤＲから生成されたと判断することができず、したがって、Ｂｌｕｅｔｏｏｔｈユーザが場所から場所に移動するにつれて、そのＢｌｕｅｔｏｏｔｈ対応デバイスを使用している個人の場所を追跡することが防止される。
【００２８】
セッションが、長い電話中などの長い期間続く場合、ＣＡＣは、上述の第１実施形態において不変のままである。その場合、意図的盗聴者であれば、使用されているＣＡＣを探して聞くことによって、そのセッションの存続期間中、ユーザを追跡することができるであろう。そのような状況においてプライバシ侵害の可能性を防止するために、本発明の第２実施形態が、問題に対するよりきめの細かい解決を提供する。本発明の第２実施形態によれば、セッションが始まると、マスタはそのＢＤ＿ＡＤＤＲとともに、ランダムに生成された数およびマスタの内部クロックに関連付けられた時刻パラメータからなるシードをスレーブに送信する。次いでＣＡＣが、マスタおよびスレーブによって、ＢＤ＿ＡＤＤＲ、乱数および時刻パラメータの所定の関数として計算される。その後、同じセッショを通じて、マスタのクロックに関連付けられたそのときの現在の時刻パラメータを使用して所定の存続期間の間隔毎の終了時に、ＣＡＣが自動的に再計算される。したがってＣＡＣは、上述の純粋にセッション・ドリブンの実施形態よりはるかに速い速度で変更される。その場合、意図的盗聴者は、特定のＣＡＣを探して「聞く」ことによってＢｌｕｅｔｏｏｔｈ対応デバイスのユーザの位置を追跡することがより困難になる。
【００２９】
この第２実施形態を実施するために、図４内のＢｌｕｅｔｏｏｔｈ対応デバイス４００は、マスタのクロックに関連付けられた時刻パラメータをメモリ４１１内に格納する。次いでその後プロセッサ４０５は、マスタのＢＤ＿ＡＤＤＲ、現在のセッションの乱数、およびその格納されたマスタの時刻パラメータに基づいて、セッションが始まってからかかった累積された所定の時間間隔によってその時刻パラメータが修正されるときにＣＡＣを再計算し、後者の時刻パラメータは、クロック４１２によって決定される。クロック４１２は、例示的目的のために別エレメントとして示されているが、実際にはプロセッサ４０５に組込むことができる。デバイス４００がマスタである場合、セッションが始まると、そのときのクロック４１２の現在値がメモリ４１１内に格納され、乱数ジェネレータ４１０によって出力された乱数とともにスレーブに送信される。
【００３０】
前述したことは、単に本発明の原理を示すに過ぎない。したがって、本明細書に明示的に述べまたは示してはいないが、本発明の原理を実施し、その精神および範囲内に含まれる様々な構成を当業者が考案できることが理解されよう。さらに、本明細書に列挙されたすべての実施例および条件付き言語は本来、本発明の原理および発明者が当技術を押し進めることに寄与した概念を理解する際に読者を助ける教育の目的のためだけに特に意図したものであり、そのような具体的に列挙された実施例および条件に限定されることがないと解釈されたい。さらに、本発明の原理、態様、実施形態ならびにその具体的実施例を列挙する本明細書中の全ての記述は、その構造および機能的等価物を含むものである。さらにそのような等価物は、現在既知の等価物、ならびに将来開発される等価物の両方、すなわち構造にかかわらず同じ機能を実行する任意の開発されたエレメントを含むものである。したがって、例えば本発明を、無線ネットワーク上のＢｌｕｅｔｏｏｔｈ対応デバイスによって使用するために上述したが、本発明であれば、定義されたセット内の複数のデバイスが、Ｂｌｕｅｔｏｏｔｈ対応であろうとなかろうと、互いに通信している任意のタイプの通信ネットワーク上で使用することができよう。しかし実際の見地からは、本発明は、デバイスが互いにマスタ・スレーブ関係で通信する無線ネットワーク上で使用される可能性が高い。
【００３１】
本明細書内のブロック図は、本発明の原理を実施する例示的回路の概念図を表すことが当業者にはさらに理解されよう。同様に、流れ図は、コンピュータ可読媒体内に実質的に表され、コンピュータまたはプロセッサが明示的に示されようと示されまいと、そのようなコンピュータまたはプロセッサによって実行することができる様々な処理を表すことが理解されよう。
【００３２】
「プロセッサ」と示された機能ブロックを含む、図に示す様々なエレメントの機能は、専用ハードウェア、ならびに適切なソフトウェアと関連してソフトウェアを実行することができるハードウェアの使用により提供することができる。プロセッサによって提供されるとき、機能は、単一の専用プロセッサ、単一の共用プロセッサ、またはいくつかを共用することができる複数の個々のプロセッサによって提供することができる。さらに、用語「プロセッサ」の明示的使用は、ソフトウェアを実行することができるハードウェアだけを指すと解釈すべきではなく、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ソフトウェアを格納する読取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、および不揮発性記憶を制限なしに暗黙的に含むことができる。従来型またはカスタムあるいはその両方の他のハードウェアもまた含むことができる。
【００３３】
この請求の範囲において、指定された機能を実行する手段と表現された任意のエレメントは、例えば、ａ）その機能を実行する回路エレメントの組合せ、またはｂ）その機能を実行するソフトウェアを実行する適切な回路と組み合わされた任意の形態のしたがってファームウェア、マイクロコードなどを含むソフトウェア、を含むその機能を実行する任意の方法を含むものである。そのような請求の範囲によって定義される本発明は、請求の範囲が求める方法で、様々な列挙された手段によって提供される機能が組み合わされ一緒にされるという事実の中にある。したがって出願人は、それらの機能を提供することができる任意の手段を、本明細書に示す手段と等価であると考える。
【図１】
2011239414.tif 000003
【図２】
2011239414.tif 000004
【図３】
2011239414.tif 000005
【図４】
2011239414.tif 000006
【図５】
2011239414.tif 000007