説明

BLUETOOTH(登録商標)対応デバイスのユーザのセキュリティを保証する方法および装置

【課題】Bluetooth(登録商標)対応デバイスは、1つの周波数から他の周波数に絶え間なくホップする搬送波周波数を用いて通信を行う。従来技術では、ホッピング・シーケンス内の各周波数は、マスタのBluetoothアドレス(BD_ADDR)およびユニバーサル時刻パラメータの既知の関数により決定される。盗聴者が、1つまたは複数の周波数帯域を一定時間以上聞くことにより、検出したホッピング・シーケンスから、デバイスのBD_ADDRを決定することができないようにする。
【解決手段】ホッピング・シーケンスは、マスタのBD_ADDR、ユニバーサル時刻パラメータおよびシードの既知の関数として決定する。シードは乱数または疑似乱数であって、マスタとスレーブのデバイス間で連絡され、デバイスの1つが新しいセッションを開始する度に、または時間の経過とともに変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2000年8月30日に出願された米国仮出願第229130号および2000年9月21日に出願された第234426号の利益を請求する。本出願は、「METHOD AND APPARATUS FOR ENSURING SECURITY OF USERS OF BLUETOOTH−ENABLED DEVICES」という同様の名称の、本出願と同時に出願された同時係属中の米国特許出願第851098号内に述べられた主題もまた述べ請求する。
【0002】
本発明は、小さなローカル・エリア・ネットワーク(LAN)上の無線通信に関し、より詳細にはBluetooth(登録商標)標準にしたがって動作するデバイス間の局所無線通信に関する。
【背景技術】
【0003】
Bluetoothは、セルラー電話、無線ヘッドセット、コンピュータ、プリンタ、自動車、ターンスタイルなどの移動デバイスまたは移動する可能性のあるデバイスの局所無線通信のために最近提案された標準であり、互いに近接するそのようなデバイスが互いに通信することを可能にする(例えば、http://www.bluetooth.com、「Specification of the Bluetooth System」、Core,Specification Volume 1、v.1.1、2001年2月22日、および「Specification of the Bluetooth System」、Profiles、Specification Volume 2、v.1.1、2001年2月22日参照)。本標準は、ハンズフリー通信、容易な同期など現在の機能にまさる様々な諸改善を約束する。したがって本標準は、無線ヘッドセットに接続された電話、自動車の緊急システムに接続された電話、高価で見目の悪いコードなしでプリンタに接続されたコンピュータ、デジタル財布、ターンスタイルおよび商館に接続された電話など、新しいタイプの設計を考慮に入れる。
【0004】
piconetとして既知の小さな無線LAN上で、そのようなデバイスのセット内のすべてのBluetooth対応デバイスは、そのセット内のマスタ・デバイスと通信し、そのマスタ・デバイスは、piconetが確立されるときにマスタとして選択される。マスタ・デバイスは、そのセット内の他のスレーブ・デバイスを制御し、所与の任意の時点において、どのデバイスが送信しどのデバイスが受信するかを判断する。それぞれの無線LAN上のスレーブ・デバイスは、通信が進むためにマスタ・デバイスからおよそ914cm(30フィート)以内である必要がある。Bluetooth対応デバイスが、複数のpiconetの範囲内にある可能性があるので、自分自身のpiconet内の他のデバイスからのそのデバイスが適切に反応すべきメッセージと、そのセットの外部にある他のpiconet上のデバイスからのそのデバイスが無視すべきメッセージとを受信デバイスが区別できるようにするための保護が組込まれる。そのような干渉を防止するために、従来技術のBluetooth標準は、デバイスによって送信されたそれぞれのメッセージがネットワーク・ディスクリプタを含むことを要請した。その場合、同じpiconet上のマスタ・デバイスおよび任意のスレーブ・デバイス間のすべてのメッセージが同じディスクリプタを含むので、他のpiconet上の任意のデバイスが異なるネットワーク・ディスクリプタを有するメッセージを「聞く」ときに、そのデバイスはそのメッセージを無視することがわかる。それぞれのpiconet上で使用されるネットワーク・ディスクリプタは、デバイス識別子、すなわちいわゆる48ビットBluetoothアドレス(BD_ADDR)の関数として決定されるチャネル・アクセス・コード(CAC)であり、そのCACはそのLAN内のマスタに関連付けられ、それぞれのBluetoothデバイスは、そのメモリ内に一意のBD_ADDRを格納している。したがってpiconetの形成時にデバイスがマスタとして指定されるとき、そのBD_ADDRの決定論的関数としてCACが計算され、次いでそのCACは、その定義セット内のマスタと任意のスレーブ・デバイス間で、piconetを介して送信されるすべてのメッセージに対するネットワーク・ディスクリプタとして使用される。マスタのBD_ADDRがわかると、スレーブは、既知の決定論的関数を使用してその同じCACを計算することができ、それによって、どのメッセージを聞くべきか、そのスレーブに逆にメッセージを通信する際に何のネットワーク・ディスクリプタを使用すべきかを知る。
【0005】
この構成の問題は、Bluetoothデバイスを使用する個人のプライバシが攻撃され得ることである。例えば、マスタBluetooth対応セルラー電話、スレーブBluetooth対応無線ヘッドフォン、およびスレーブBluetooth対応CDプレイヤを有するユーザが、レシーバを装備する意図的盗聴者のいる領域に入った場合、その個人は、そのマスタからのメッセージおよびマスタへのメッセージ内で使用されるネットワーク・ディスクリプタを検出し「調査する」ことによって、そのユーザのセルラー電話に関連付けられたネットワーク・ディスクリプタを知ることができる。その後その盗聴者は、同じネットワーク・ディスクリプタを含むメッセージを探して様々な位置で「聞く」ことによって、そのユーザの物理的位置を追跡することができよう。したがって、例えば政治家のセル電話に関連付けられたネットワーク・ディスクリプタが決定される場合、その人が、政治的に問題となり得る場所を訪問すれば、その場所で盗聴しているレシーバによって追跡することができる。さらに、複数の個人のBluetoothデバイスに関連付けられたネットワーク・ディスクリプタが決定された場合、それらの個人のその後のミーティングは、これらの個人に関連付けられたネットワーク・ディスクリプタを含む複数のメッセージの位置および時間の一致によって追跡することができよう。これらのプライバシの問題に加えて、ユーザのネットワーク・ディスクリプタが危うくなると、様々なセキュリティ問題が提示される。具体的には、ネットワーク・ディスクリプタが決定されると、piconet内の受信デバイスがpiconet内からの妥当なデバイスから発生していると仮定するであろう方法で、意図的盗聴者がpiconetにメッセージを注入することができよう。メッセージの真実性を保証することができないので、これは認証問題と称する。
【0006】
これらのセキュリティ問題に対する解決は、我々の前記同時係属中の特許出願内の発明の主題である。その発明は、デバイスから送信されるメッセージおよびデバイスに送信されるメッセージ内のネットワーク・ディスクリプタを検出し次いで探し聞く盗聴者がBluetooth対応デバイスのユーザを追跡するのを実質的に妨害する。
【0007】
しかし、そのようなBluetooth対応デバイスのユーザは依然、そのデバイスによって使用されるチャネル・ホッピング・シーケンスを検出することによってそのユーザを追跡することができるコンピュータ・パワーのある盗聴者による攻撃を受ける可能性がある。Bluetooth標準によれば、2つのデバイス間で送信されるメッセージ・パケットは、同じ単一周波数帯域内では送信されない。むしろメッセージ・タイムスロット内で、メッセージはNのうちの1つの帯域で送信され、ここでNは、米国では79に等しい。次のメッセージ・タイムスロットの開始時に、搬送波周波数は異なる周波数に「ホップ」する。チャネル・ホッピング・シーケンスとして既知の使用周波数のシーケンスは、ユニバーサル時刻パラメータおよびpiconet上で動作するマスタ・デバイスのBD_ADDRの既知の関数として計算される疑似ランダム・パタンである。これにより、それぞれと通信するマスタおよびスレーブ・デバイスは、所与の任意の時点で、どの周波数帯域上で送信かつ受信すべきかを知ることができる。前記のように、BD_ADDRは48ビット・ワードであるので、248の異なるBD_ADDRがあり、それぞれが関連するホッピング・シーケンスを生成する。ホッピング・シーケンスを計算するために使用される関数は既知の必要があるので、強い攻撃者、すなわち著しいコンピュータ・パワーを有する者であれば、それぞれの可能なBD_ADDRに関連付けられたホッピング・シーケンスを決定することができよう。したがって、それぞれのBD_ADDRに対して、そのようなコンピュータに強い盗聴者であれば、そのデバイスが通信していれば、連続するタイムスロット内のどの周波数帯域内で、信号エネルギーが存在すると期待されるか、を決定することができよう。次いでその盗聴者であれば、1つまたは複数の周波数帯域内の複数のメッセージ・タイムスロット内で信号エネルギーの存在を探して聞くであろう。結果としての周波数帯域/メッセージ・タイムスロット・パタンと、それぞれの可能なBD_ADDRに関連付けられたホッピング・パタンのセットを比較することによって、その検出されたパタンを生成することができる単一のBD_ADDRだけが残るまで、異なるBD_ADDRを可能性として連続的に除外することができよう。コンピュータに強い盗聴者が、ユーザのBluetooth対応デバイスのBD_ADDRをそのように識別すると、そのデバイスがそのユーザによって使用され場所から場所に移動されるにつれて、その後そのユーザを、1つまたは複数の周波数帯域内で複数のタイムスロットを介してそのホッピング・パタンを探し聞くことによって追跡することができる。具体的には、その盗聴者は、近くにある自分自身の盗聴レシーバの1つによって受信されているBluetooth対応デバイスによって使用されているホッピング・シーケンスが、追跡されているデバイスのBD_ADDRに関連付けられたホッピング・シーケンスであるかどうかを判断するだけでよい。ホッピング・シーケンスが認識されれば、盗聴者は、そのデバイスおよびそのユーザが、そのレシーバの場所の中にいることを知る。さらに、盗聴者がマスタのBD_ADDRを決定すると、その盗聴者であれば、上述の方法でマスタが送信しているpiconetにメッセージを注入することができよう。
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、上述の問題をなくすより安全な通信方法が必要である。
【課題を解決するための手段】
【0009】
本発明によれば、定義されたデバイスのセット内の複数のデバイスが互いに通信する連続する周波数を選択するために使用されるホッピング・シーケンスは、コンピュータに強い盗聴者であっても、検出された周波数ホッピングのパタンを、そのセット内のデバイスの1つに関連付けられた特定の識別子と関連付けることを妨害する方法でランダム化される。
【0010】
本発明の一実施形態において、ホッピング・シーケンスは、グローバル時刻パラメータ、piconet上のマスタのBD_ADDRなどのデバイスの1つに関連付けられた識別子、および通信デバイスに既知かつ/または提供されている少なくとも1つの乱数などのいわゆるシードの乱数、の既知の関数として決定される。好ましい一実施形態において、その乱数は、新しいセッションが始まる都度定期的に変更され、ここでセッションは、1回の電話の会話、1枚のCDを聞くこと、プリンタ上で1つのジョブを印刷することなどの1つのイベントの存続期間であると定義される。この実施形態において、セッションが始まり、マスタとスレーブの間の通信が始まると、マスタおよび/またはスレーブは、乱数、すなわちシードを選択し、その乱数は、そのセッションに関連付けられたデバイスに通信される。次いでマスタおよびスレーブは、グローバル時刻パラメータ、マスタのBD_ADDR、およびその乱数の既知の関数としてホッピング・シーケンスを計算する。次いでマスタおよびスレーブは、そのセッションの存続期間全体で連続するメッセージ・パケットを送信かつ受信するためのそれぞれの次の周波数帯域を決定するためにその結果としてのホッピング・シーケンスを使用する。新しいセッションが始まるとき、新しい乱数が生成されマスタおよびスレーブに通信され、次いでその乱数は、その新しいセッションのための新しいホッピング・シーケンスを計算するためにマスタおよびスレーブの両方によって使用される。信号エネルギーが存在する周波数帯域を聞くことによって、近接デバイスによって使用されているホッピング・シーケンスを決定しようと企てる意図的盗聴者は、検出された2つの部分的または全体的ホッピング・シーケンスを互いにまたは具体的BD_ADDRに関連付けることができない。さらに盗聴者は、第1ホッピング・シーケンスが第2ホッピング・シーケンスにどこで変換されるのか、両方のホッピング・シーケンスが実際に同じBD_ADDRから生成されていること、を判断できない。さらに進んだセキュリティのために、新しいセッションのためのホッピング・シーケンスを計算する際に使用されるシードは、新しいセッションのために生成された乱数、および前のセッションのために生成された1つまたは複数の乱数の関数とすることができる。それぞれのセッションの開始時にマスタから他のデバイスに送信される乱数は、暗号化することができ、それぞれのデバイス内で鍵を事前確立する必要があるが、盗聴者が盗み聞きしてもその乱数を知ることを防止する。あるいは、乱数を平文で送信することができる。平文で送信される場合、攻撃者は、その数を知るためにセットアップの正確な時刻にいなければならない。さらに、シードを形成するために複数の乱数が一緒に使用されるとき、攻撃する盗聴者は、前のセッションすべての正確なセットアップ時刻にいる必要がある。暗号化された乱数を送信することによって、デバイスからデバイスのアクセスは、他のデバイス、ならびに同じ第1piconet上で動作しているそのようなデバイスまたは第1piconetに物理的に近接しその範囲内にある第2piconet上で動作している他のデバイスのユーザにとって、含めること、または除くことができる。
【図面の簡単な説明】
【0011】
【図1】piconet上で互いに通信するBluetooth対応デバイスを身体に携帯するユーザを示す図である。
【図2】自分のBluetooth対応デバイスが複数のpiconetの範囲内にある2人のユーザを示す図である。
【図3】Bluetooth対応デバイスのユーザの位置を追跡する不法盗聴者を示す図である。
【図4】本発明による、Bluetooth対応デバイスのブロック図である。
【図5】本発明による、第1実施形態の諸ステップを詳述する流れ図である。
【発明を実施するための形態】
【0012】
図1は、3つの活動状態のBluetooth対応デバイス、すなわちセル電話102、無線ヘッドセット103、およびCDプレイヤ104を有するユーザ101を示す。この定義されたセット内のこれらの3つのデバイスが通信するpiconetが確立されるとき、セル電話102はマスタ・デバイスとして確立され、無線ヘッドセット103およびCDプレイヤ104はスレーブ・デバイスである。セル電話102は、仲介者かつコントローラとして動作し、スレーブ103および104からのすべてのメッセージは、その他に渡される前にマスタ・セル電話102に送信される。したがって、例えばCDプレイヤ104のデジタル化されたオーディオ出力は、マスタ・セル電話102にメッセージとして送信されてから、セル電話によって、無線ヘッドセット103に転送されてユーザに享受される。コントローラとしてマスタ・セル電話は、着信電話が到着するとCDプレイヤ104をスイッチ・オフし、次いでユーザが受信できるようにその電話を無線ヘッドセット103に渡すようにプログラムすることができる。一般に、Bluetooth対応デバイスの範囲は、およそ914cm(30フィート)である。したがって、ユーザがCDプレイヤ104をテーブル上に置く場合、セル電話102が自分の身体上に残っていると仮定すると、そのユーザは、受信を維持するために914cm(30フィート)以内に居続ける必要がある。
【0013】
Bluetooth対応デバイスは、図2に示すように、物理的に複数のpiconetの範囲内にあってよく、ここでユーザ202および203によって使用されているデバイスは、互いの範囲内にある。したがって、piconet212上のユーザ202のBluetooth対応セル電話204、ヘッドセット205、およびCDプレイヤ206は、piconet213上のユーザ203のセル電話207、ヘッドセット208、およびラップトップ・コンピュータ209の範囲内にある。前記のように、piconet212上のデバイスの1つが、piconet213上のデバイスのいずれかと干渉することを防止するため、またはその逆のために、Bluetooth標準は、特定のpiconet上のすべてのメッセージ内に使用されるネットワーク・ディスクリプタをそれぞれのメッセージが含むことを要請する。したがって、piconet212上の定義されたセット内のマスタ・セル電話204から送信されるメッセージおよびマスタ・セル電話204に送信されるメッセージは、piconet213上のそれらのメッセージのそれぞれの中のネットワーク・ディスクリプタが、piconet212上のメッセージのそれぞれの中のネットワーク・ディスクリプタとは異なるので、第2の定義されたセット内のデバイス207、208および209によって無視される。
【0014】
前記同時係属中の特許出願は、定義されたセットの外部であるがユーザ202の範囲内にあるレシーバ・デバイス210を介して「聞いて」いる意図的盗聴者が、そのユーザのデバイスによって使用されるネットワーク・ディスクリプタを決定することを実質的に防止する発明を述べる。したがって、送信されたメッセージ内のそのネットワーク・ディスクリプタの存在を探して監視することによってユーザの位置を追跡する能力が妨害される。しかし、前述のように、コンピュータに強い盗聴者であれば依然、複数のメッセージ・タイムスロットを介して1つまたは複数の周波数帯域を監視することによって、ユーザのBluetooth対応デバイスの1つのBD_ADDRを決定することによってユーザの位置を追跡することができよう。上述のように、Bluetooth対応デバイスによって使用されるチャネル・ホッピング・シーケンスは、piconet上のデバイスのセット内のデバイスの1つのBD_ADDRの既知の関数として計算される。したがってコンピュータに強い盗聴者は、それぞれの可能なBD_ADDRに対するホッピング・シーケンスを決定することができる。攻撃する盗聴者が追跡したいと考えるユーザによって使用されているBluetooth対応デバイスの範囲内のレシーバは、複数のメッセージ・タイムスロットを介して1つまたは複数の周波数帯域内の信号エネルギーのパタンを監視するために使用することができる。そのようなパタンを生成することができる1つのチャネル・ホッピング・シーケンスを見つけることができ、次いでそのホッピング・シーケンスを生成する関連BD_ADDRを決定することができる。BD_ADDRが決定されると、ユーザの位置は、そのユーザが他のレシーバの範囲内を通過するにつれて追跡することができ、そのレシーバは、そのBD_ADDRに関連付けられたホッピング・シーケンスに一致する信号エネルギー分布を探して監視している。したがって図3に示すように、ユーザ301が都市中を移動するにつれて、そのユーザは、例えばレシーバ302、303および304によって追跡することができ、それらのレシーバはそれぞれ、同じ決定されたホッピング・シーケンスを探して「聞き」、それによってそのユーザのプライバシを危険にさらす。さらに、ユーザのBD_ADDRが決定されると、piconetの範囲内にいる意図的盗聴者であれば、そのpiconet上の他のデバイスが妥当であると信じるであろう方法でpiconetにメッセージを注入することができよう。したがって、piconet上の他のデバイスであれば、ねつ造された情報を受信し反応するであろう。
【0015】
従来技術に関連付けられた前述の問題を防止するために、本発明は、piconetを介して通信するBluetooth対応デバイスによって使用されるホッピング・シーケンスを修正し、ユニバーサル時刻パラメータおよびデバイスの1つのBD_ADDRからホッピング・シーケンスを決定する関数のパラメータに、ランダム化されたシードを含める。その関数にある程度のランダム化を導入することによって、複数のメッセージ・タイムスロットを介して1つまたは複数の周波数チャネルを聞くことによって、通信デバイスによって使用されているホッピング・シーケンスを検出することができる盗聴者は、検出されたホッピング・シーケンスを、前述の方法で具体的なBD_ADDRに関連づけることができない。好ましい一実施形態において、ホッピング・シーケンスは、ユニバーサル時刻パラメータ、マスタなどデバイスの1つのBD_ADDR、および新しいセッションがpiconet上で始まる都度変更される乱数の所定の関数として決定される。セッションは、図1において、セル電話102を介したユーザによる電話の会話、またはCDプレイヤ104上の単一のCDを演奏することなど、1つのイベントの存続期間によって定義される。したがって、図1のBluetooth対応デバイスに関して、新しいセッションは、新しい電話の会話または新しいCDの演奏開始時に始まる。新しいセッションの開始時に、本発明のこの実施形態によれば、マスタは、マスタのBD_ADDRとともに乱数、すなわちシードをスレーブに送信し、それらは、そのセッションの存続期間の間マスタおよびスレーブによって使用されるホッピング・シーケンスを計算するためにユニバーサル時刻パラメータとともにマスタおよびスレーブの両方によって使用される。好ましい一実施形態において、マスタのBD_ADDR、シード、およびユニバーサル時刻パラメータからホッピング・シーケンスを計算するために使用される関数は、よく既知のSHA1、MD5関数などのいわゆる一方向関数である。そのような一方向関数は、当業者によく理解されているように、関数の出力が与えられた関数に対する入力のリバース・エンジニアリングを防止する。
【0016】
ホッピング・シーケンスを計算するシードとして使用される乱数は、新しいセッションが始まる都度など定期的に変更されるが、代替実施形態では、乱数は静的のままでよい。不利なことに、意図的盗聴者であれば、観測したホッピング・シーケンスを、先に検出されたホッピング・シーケンスに関連付けることができる可能性があるが、そのホッピング・シーケンスを誰に関連付けるかはわからないであろう。したがって、その盗聴者は、同じグループのデバイスが2つのホッピング・シーケンスを生成したと結論付けることはできるが、それらのホッピング・シーケンスは識別不可能であろう。
【0017】
シードとして使用された乱数は、互いに通信するマスタおよびスレーブに提供されて、それぞれが別々に矛盾なくホッピング・シーケンスを計算することができるようにする必要がある。これは、乱数を一方から他方に、例えばマスタからスレーブに送信すること、または第1部分をマスタからスレーブに、残りの第2部分をスレーブからマスタに送信することなどによって、2つの間の通信を介して達成することができる。
【0018】
乱数または乱数の一部は、平文で送信することができ、この構成の単純さがその利点である。不利なことに、乱数がデバイス間で通信されるとき、盗聴者によって盗み聞きされる可能性がある。そのような出来事を防止するために、1つのデバイスからその他に通信される乱数または乱数の一部は、暗号化することができ、そのようなデバイスの両方が鍵を事前確立することを要請する。盗聴者が盗み聞きした乱数を解読することを防止する利点に加えて、乱数を暗号化することは、piconet上の他のデバイス間で送信されているメッセージを特定のユーザおよび/またはデバイスが受信することを除く利点がある。
【0019】
それぞれの新しいセッションの間にデバイス間で全部または部分的に平文で送信される乱数に関するさらに進んだセキュリティは、その乱数を少なくとも1つの前の乱数と組み合わせて使用して、新しいセッション内で使用されるホッピング・シーケンスを計算するために使用されるシードを生成することによって達成することができる。したがって、盗聴者がシードを決定するには、その盗聴者は、新しいセッションの開始時、および前のセッションの開始時にいなければならなかったであろう。
【0020】
図4は、本発明によるBluetooth対応デバイス400を機能的に示すブロック図である。ここに示すように、デバイス400は、そのデバイスをBluetooth仕様にしたがって動作させるBluetooth機能エレメント401と、図1の実施例などにおいて、デバイス400全体がセル電話、無線ヘッドセット、CDプレイヤであるという、特定のタイプのユニットに関連付けられた機能を実行する他のデバイス回路402に機能的に分離する。Bluetooth機能エレメント401は、piconet上の他のデバイスから無線送信メッセージを受信しそのメッセージをレシーバ404に渡す受信アンテナ403を含む。レシーバ404は、復調されたメッセージを出力し、そのメッセージをプロセッサ405に入力する。本発明を実施するために必要な機能、すなわちシード、マスタのBD_ADDR、およびpiconet上の他のデバイス内の同様のクロックと同期されているクロック412の出力から決定されるユニバーサル時刻パラメータの関数としてホッピング・シーケンスを定期的に計算すること、を実行することに加えて、プロセッサ405は、前記同時係属中の特許出願において述べた発明に必要な動作を含む他の必要なBluetooth動作、および本発明の理解には必要ないのでさらには議論されない他の動作を実行する。それぞれの受信メッセージ内の情報は、リンク406を介してデバイス固有処理のためにデバイス回路402に渡され、そのリンク406は、シリアルもしくはパラレル・バスまたは他のケーブル構成あるいは無線接続でよい。デバイス回路402内またはプロセッサ405内のいずれかで発生する送出メッセージは、変調および出力アンテナ408上への出力のためにトランスミッタ407に渡される。共通アンテナは、図4に示す2つの別々のアンテナ403および408の機能を共用することができる。
【0021】
本発明の機能を実行するために、Bluetooth機能エレメント401は、イベント検出器409を含むように示され、このイベント検出器409は、ここに示すように別のエレメント、またはプロセッサ405の一部として組込まれてよい。デバイス400がpiconet上のマスタであり、新しいセッションがそのデバイスのデバイス回路402内で始まる場合、イベント検出器409がトリガされ、それによって新しいホッピング・シーケンスを計算するようにプロセッサ405に信号を送る。新しいセッションがスレーブのデバイス回路内で始まる場合、その情報は、マスタおよびイベント検出器409に通信される。イベント検出器409によってトリガされると、プロセッサ405は、取り出された乱数、このデバイスのマスタのBD_ADDR、およびクロック412からの現在のユニバーサル時刻パラメータの所定の関数としてホッピング・シーケンスを計算する際にシードとして振舞う乱数を乱数ジェネレータ410から取り出す。別のエレメントとして示されているが、乱数ジェネレータ410はプロセッサ405内に組込むことができ、放射能または一方向関数などの暗号化技術などランダム性の様々なソースから乱数を生成することができる。単純化の目的のために、一部ではなくて乱数全体が一部ではなくてマスタ内で乱数ジェネレータ410によって生成され、その乱数がスレーブ内で生成された他の一部によって組み合わされると仮定する。図4に示すように、BD_ADDRは、プロセッサ405に関連付けられたメモリ411内に格納されるが、実際にはBluetooth機能エレメント401の一部としてハードウェアに組込まれてよい。前記のように、ホッピング・シーケンスを計算するために使用される所定の関数は、好ましくは一方向関数である。同様にメモリ411内に格納される、ホッピング・シーケンスを計算するために使用される乱数もまた、同じ関数を使用してホッピング・シーケンスを計算するために、マスタのBD_ADDRおよびユニバーサル時刻パラメータとともに、その乱数が使用されるスレーブに通信される。したがって、デバイス400がpiconet上のマスタではなくてスレーブである場合、メモリ411は、ホッピング・シーケンスを計算するために使用されるマスタのBD_ADDRおよび現在の乱数を格納する。
【0022】
単純化の目的のために、マスタがスレーブに平文で乱数を通信すると仮定する。暗号化される場合、送信鍵がメモリ411から取り出され、プロセッサ405が乱数を暗号化してから、その乱数がスレーブに送信される。スレーブは、乱数を受信すると、メモリ411から受信鍵を取り出し、プロセッサ405が、その鍵を使用して受信した暗号化済の数を解読する。
【0023】
新しいセッションが検出されると、メモリ411内の乱数は、マスタ内の乱数ジェネレータ410によって生成された乱数によって置換され、次のセッションの開始をイベント検出器409が検出するまですべてのメッセージ・パケットを連続的に送信かつ受信するための周波数帯域のシーケンスを決定するために、新しいホッピング・シーケンスがプロセッサ405によって計算される。
【0024】
前述のように、上述の実施形態は、意図的盗聴者がBluetooth対応デバイスのユーザの位置を追跡することを防止するためのさらに進んだ保護すら追加するように修正することができる。具体的には、上述の純粋にセッション・ドリブンの実施形態において、乱数およびマスタのBD_ADDRの関数としてCACを計算する際にシードとして乱数ジェネレータ410によって出力される乱数を使用するのではなくて、乱数ジェネレータ410によって出力された乱数が、少なくとも1つの前の乱数と組み合わされる。次いでこれらの乱数の組合せが、その組合せおよびマスタのBD_ADDRの関数としてCACを計算する際にシードとして使用される。したがってこの実施形態において、セッションがセットアップされるときに攻撃者がいて、マスタからスレーブに渡されている乱数を知る場合、前の乱数が渡されたときのそれぞれの前のセッションがセットアップされたときにもまたいなければ、その攻撃者がCACを計算することはできない。したがってこの実施形態において、Bluetoothエレメント401内のメモリ411は、乱数ジェネレータ410によって出力された少なくとも1つの前の乱数を格納するための少なくとも1つの記憶位置もまた含む。
【0025】
CACがそれぞれのセッションの開始時だけでなくそれぞれのセッション内で定期的に再計算される本発明の第2実施形態もまた、同様に修正することができる。したがって、それぞれのセッションの開始時またはそれぞれのセッション内でそれぞれの定期的間隔の終了時にCACを計算するシードとして使用される乱数は、そのとき乱数ジェネレータ210によって出力された乱数およびメモリ311内に格納された少なくとも1つの前の乱数の組合せである。
【0026】
図5は、本発明のこの第1実施形態の諸ステップを示す流れ図である。ステップ501において、指定されたマスタおよびスレーブ間の通信ネットワークが確立される。ステップ502において、マスタが、マスタのBD_ADDRとともにスレーブに提供されるシードとして使用される乱数を選択する。ステップ503において、マスタのBD_ADDRおよび選択された乱数の決定論的関数としてマスタおよびスレーブによってCACが計算される。ステップ504において、その計算されたCACが、マスタおよびスレーブ間で送信されるすべてのメッセージ内のネットワーク・ディスクリプタとして使用される。ステップ505において、現在のセッションが依然続いているかどうかの判断がなされる。もしそうであれば、ステップ504において再び、同じ計算されたCACが、マスタおよびスレーブ間のすべてのメッセージ内のネットワーク・ディスクリプタとして使用され続ける。ステップ505において、現在のセッションが依然継続中ではないという判断がなされれば、ステップ506において、新しいセッションが始まったかどうかの判断がなされる。もしそうであれば、流れはステップ502に戻り、ここでマスタは、シードとして使用される新しい乱数を選択し、その新しいシードがスレーブに提供される。再び、前述のように、新しいCACがマスタおよびスレーブによって計算され、そのCACは、そのセッションが終了するまでマスタおよびスレーブ間のすべてのメッセージ内のネットワーク・ディスクリプタとして使用される。
【0027】
したがって意図的盗聴者は最初に、自分が取り込むメッセージ内に、第1セッション中に使用するために計算されたCACを「聞く」。そのセッションが終了すると、盗聴者はどのメッセージ内にもCACをもう聞かない。新しいセッションが始まると、盗聴者は、自分が盗み聞きするメッセージ内に、第2セッション中に使用するために計算されたCACを「聞く」。しかし、盗聴者は、CACおよびCACの両方が同じBD_ADDRから生成されたと判断することができず、したがって、Bluetoothユーザが場所から場所に移動するにつれて、そのBluetooth対応デバイスを使用している個人の場所を追跡することが防止される。
【0028】
セッションが、長い電話中などの長い期間続く場合、CACは、上述の第1実施形態において不変のままである。その場合、意図的盗聴者であれば、使用されているCACを探して聞くことによって、そのセッションの存続期間中、ユーザを追跡することができるであろう。そのような状況においてプライバシ侵害の可能性を防止するために、本発明の第2実施形態が、問題に対するよりきめの細かい解決を提供する。本発明の第2実施形態によれば、セッションが始まると、マスタはそのBD_ADDRとともに、ランダムに生成された数およびマスタの内部クロックに関連付けられた時刻パラメータからなるシードをスレーブに送信する。次いでCACが、マスタおよびスレーブによって、BD_ADDR、乱数および時刻パラメータの所定の関数として計算される。その後、同じセッショを通じて、マスタのクロックに関連付けられたそのときの現在の時刻パラメータを使用して所定の存続期間の間隔毎の終了時に、CACが自動的に再計算される。したがってCACは、上述の純粋にセッション・ドリブンの実施形態よりはるかに速い速度で変更される。その場合、意図的盗聴者は、特定のCACを探して「聞く」ことによってBluetooth対応デバイスのユーザの位置を追跡することがより困難になる。
【0029】
この第2実施形態を実施するために、図4内のBluetooth対応デバイス400は、マスタのクロックに関連付けられた時刻パラメータをメモリ411内に格納する。次いでその後プロセッサ405は、マスタのBD_ADDR、現在のセッションの乱数、およびその格納されたマスタの時刻パラメータに基づいて、セッションが始まってからかかった累積された所定の時間間隔によってその時刻パラメータが修正されるときにCACを再計算し、後者の時刻パラメータは、クロック412によって決定される。クロック412は、例示的目的のために別エレメントとして示されているが、実際にはプロセッサ405に組込むことができる。デバイス400がマスタである場合、セッションが始まると、そのときのクロック412の現在値がメモリ411内に格納され、乱数ジェネレータ410によって出力された乱数とともにスレーブに送信される。
【0030】
前述したことは、単に本発明の原理を示すに過ぎない。したがって、本明細書に明示的に述べまたは示してはいないが、本発明の原理を実施し、その精神および範囲内に含まれる様々な構成を当業者が考案できることが理解されよう。さらに、本明細書に列挙されたすべての実施例および条件付き言語は本来、本発明の原理および発明者が当技術を押し進めることに寄与した概念を理解する際に読者を助ける教育の目的のためだけに特に意図したものであり、そのような具体的に列挙された実施例および条件に限定されることがないと解釈されたい。さらに、本発明の原理、態様、実施形態ならびにその具体的実施例を列挙する本明細書中の全ての記述は、その構造および機能的等価物を含むものである。さらにそのような等価物は、現在既知の等価物、ならびに将来開発される等価物の両方、すなわち構造にかかわらず同じ機能を実行する任意の開発されたエレメントを含むものである。したがって、例えば本発明を、無線ネットワーク上のBluetooth対応デバイスによって使用するために上述したが、本発明であれば、定義されたセット内の複数のデバイスが、Bluetooth対応であろうとなかろうと、互いに通信している任意のタイプの通信ネットワーク上で使用することができよう。しかし実際の見地からは、本発明は、デバイスが互いにマスタ・スレーブ関係で通信する無線ネットワーク上で使用される可能性が高い。
【0031】
本明細書内のブロック図は、本発明の原理を実施する例示的回路の概念図を表すことが当業者にはさらに理解されよう。同様に、流れ図は、コンピュータ可読媒体内に実質的に表され、コンピュータまたはプロセッサが明示的に示されようと示されまいと、そのようなコンピュータまたはプロセッサによって実行することができる様々な処理を表すことが理解されよう。
【0032】
「プロセッサ」と示された機能ブロックを含む、図に示す様々なエレメントの機能は、専用ハードウェア、ならびに適切なソフトウェアと関連してソフトウェアを実行することができるハードウェアの使用により提供することができる。プロセッサによって提供されるとき、機能は、単一の専用プロセッサ、単一の共用プロセッサ、またはいくつかを共用することができる複数の個々のプロセッサによって提供することができる。さらに、用語「プロセッサ」の明示的使用は、ソフトウェアを実行することができるハードウェアだけを指すと解釈すべきではなく、デジタル信号プロセッサ(DSP)ハードウェア、ソフトウェアを格納する読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、および不揮発性記憶を制限なしに暗黙的に含むことができる。従来型またはカスタムあるいはその両方の他のハードウェアもまた含むことができる。
【0033】
この請求の範囲において、指定された機能を実行する手段と表現された任意のエレメントは、例えば、a)その機能を実行する回路エレメントの組合せ、またはb)その機能を実行するソフトウェアを実行する適切な回路と組み合わされた任意の形態のしたがってファームウェア、マイクロコードなどを含むソフトウェア、を含むその機能を実行する任意の方法を含むものである。そのような請求の範囲によって定義される本発明は、請求の範囲が求める方法で、様々な列挙された手段によって提供される機能が組み合わされ一緒にされるという事実の中にある。したがって出願人は、それらの機能を提供することができる任意の手段を、本明細書に示す手段と等価であると考える。

【特許請求の範囲】
【請求項1】
定義されたセットに属する複数のデバイスがメッセージを送受信することによって互いに通信するネットワークにおいて、デバイスが使用する方法であって、
前記方法は、
前記定義されたセットに属する複数のデバイスの1つが、ホップする順序を規定するための複数の周波数を含む予測可能なホッピング・シーケンスにしたがって、時間の経過とともに1つの周波数から他の周波数へホップする周波数でメッセージを送信するステップ
を含み、
前記定義されたセットに属する複数のデバイスの1つが、前記ホッピング・シーケンス内のそれぞれの周波数を、前記定義されたセットに属する複数のデバイスの1つに関連付けられる特定の識別子と、ユニバーサル時刻パラメータと、シードとの既知の関数から決定し、それによって前記定義されたセットに属さないデバイスによって受信されるメッセージの中で検出される、送信周波数を変更するパタンが、前記定義されたセットに属する複数のデバイスの1つに関連付けられる特定の識別子に関連付けられることを防止すること
を特徴とする方法。
【請求項2】
前記定義されたセットに属する複数のデバイスは、Bluetooth(登録商標)対応のデバイスであり、
前記特定の識別子は、前記定義されたセット内のマスタ・デバイスに関係付けられるBluetooth(登録商標)アドレス(BD_ADDR)であり、前記定義されたセット内の前記マスタ・デバイス以外のデバイスは前記マスタ・デバイスを通じて通信を行う、
請求項1に記載の方法。
【請求項3】
前記シードは、時間の経過とともに変更される、
請求項1または2に記載の方法。
【請求項4】
前記シードは、前記定義されたセットに属する複数のデバイスのうちの1つのデバイスが新しいセッションを開始するときに変更される、
請求項3に記載の方法。
【請求項5】
前記シードは、現在のセッション内でメッセージを送信するために使われる前記ホッピング・シーケンス内の周波数の順番の一部を決める、少なくとも1つの乱数または疑似乱数である、
請求項4に記載の方法。
【請求項6】
定義されたセットに属する複数のデバイスがメッセージを送受信することによって互いに通信するネットワークにおいて、デバイス内で使用される装置であって、
前記装置は、
ホップする順序を規定するための複数の周波数を含む予測可能なホッピング・シーケンスにしたがって、時間の経過とともに1つの周波数から他の周波数へホップする周波数でメッセージを送信する手段と、
前記ホッピング・シーケンス内のそれぞれの周波数を、前記定義されたセットに属する複数のデバイスのうちの1つのデバイスと関連付けられる特定の識別子と、ユニバーサル時刻パラメータと、シードとの既知の関数から決定し、それによって前記定義されたセットに属さないデバイスによって受信されるメッセージの中で検出される、送信周波数を変更するパタンが、前記定義されたセットに属する複数のデバイスの1つに関連付けられる特定の識別子に関連付けられることを防止する手段と
を含む装置。
【請求項7】
前記定義されたセットに属する複数のデバイスは、Bluetooth(登録商標)対応のデバイスであり、
前記特定の識別子は、前記定義されたセット内のマスタ・デバイスに関係付けられるBluetooth(登録商標)アドレス(BD_ADDR)であり、前記定義されたセット内の前記マスタ・デバイス以外のデバイスは前記マスタ・デバイスを通じて通信を行う、
請求項6に記載の装置。
【請求項8】
前記シードは、時間の経過とともに変更される、
請求項6または7に記載の装置。
【請求項9】
前記シードは、前記定義されたセットに属する複数のデバイスのうちの1つのデバイスが新しいセッションを開始するときに変更される、
請求項8に記載の装置。
【請求項10】
前記シードは、現在のセッション内でメッセージを送信するために使われる前記ホッピング・シーケンス内の周波数の順番の一部を決める、少なくとも1つの乱数または疑似乱数である、
請求項9に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−239414(P2011−239414A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2011−127797(P2011−127797)
【出願日】平成23年6月8日(2011.6.8)
【分割の表示】特願2002−523773(P2002−523773)の分割
【原出願日】平成13年8月28日(2001.8.28)
【出願人】(596092698)アルカテル−ルーセント ユーエスエー インコーポレーテッド (965)
【Fターム(参考)】