プローブを使用する2つの装置間のセキュアなワイヤレスリンク
【課題】2つの装置間のセキュアなワイヤレスリンクを提供する。
【解決手段】ネットワークに参加していない2つの装置間の平文ワイヤレス送信を使用して装置間にセキュアなワイヤレス通信リンクを確立することができる。一方の装置は、ペアリングの確立を求めていることを示す第1のプローブをブロードキャストする。他方の装置は、第2のプローブで応答し、付加的なプローブを使用して更なる情報を交換することで共有シークレットを確立できる。一方の装置が、共有シークレットから導出された暗号キーを使用してメッセージを暗号化することにより他方の装置へメッセージを送信でき、暗号化されたメッセージは、プローブ内で送信する。受信側装置は、プローブから暗号メッセージを抽出し、暗号キーを使用して解読できる。暗号メッセージは、ワイヤレスネットワークに参加するために受信側装置により使用可能なクレデンシャルを含むことができる。
【解決手段】ネットワークに参加していない2つの装置間の平文ワイヤレス送信を使用して装置間にセキュアなワイヤレス通信リンクを確立することができる。一方の装置は、ペアリングの確立を求めていることを示す第1のプローブをブロードキャストする。他方の装置は、第2のプローブで応答し、付加的なプローブを使用して更なる情報を交換することで共有シークレットを確立できる。一方の装置が、共有シークレットから導出された暗号キーを使用してメッセージを暗号化することにより他方の装置へメッセージを送信でき、暗号化されたメッセージは、プローブ内で送信する。受信側装置は、プローブから暗号メッセージを抽出し、暗号キーを使用して解読できる。暗号メッセージは、ワイヤレスネットワークに参加するために受信側装置により使用可能なクレデンシャルを含むことができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、電子装置間のワイヤレス通信に係り、より詳細には、2つの装置間のセキュアなワイヤレスリンクに係る。
【背景技術】
【0002】
ワイヤレスネットワークが至る所に存在してきている。インスティテュート・オブ・エレクトリカル・アンド・エレクトロニックス・エンジニアズ(IEEE)は、電子装置が互いに通信できるようにするための“WiFi”とも称される802.11規格群を発布した。これら規格(802.11a、802.11b、802.11g及び802.11nを含む)は、装置間で情報を通信するための周波数、変調、データレート及びメッセージフォーマットを規定している。一般的に、802.11適合のワイヤレスネットワーク(「WiFiネットワーク」とも称される)では、WiFiネットワークを管理する指定の「アクセスポイント」が、しばしば、インターネットへのワイヤード接続と共に存在する。他の動作の中で、アクセスポイントは、ネットワーク装置間にメッセージをルーティングすることができる。WiFiネットワークは、アクセスポイントが周期的にブロードキャストできる名前(アクセスポイントと対話するネットワークアドミニストレーターにより一般的に構成可能である)を有し、そしてその名前を知っているか又はアクセスポイントのブロードキャストメッセージからネットワーク名を発見する装置が、アクセスポイントに「参加(join)」要求を送信することによりネットワークに参加することができる。一般的に、アクセスポイントは、ネットワークに参加した装置間のみにメッセージをルーティングする。
【0003】
当然、ワイヤレス信号は、容易に傍受される。従って、WiFi規格は、ワイヤード・イクイバレント・プライバシー(WEP)、WiFiプロテクテッド・アクセス(WPA)、及びIEEE802.11i(“WPA2”としても知られている)のような種々のセキュリティプロトコルを与える。これらのプロトコルは、ネットワークを経て送られる情報が暗号化されるようにすると共に、使用すべき特定の暗号技術を指定する。WiFiネットワークアクセスポイントは、特定のセキュリティプロトコルに対して構成することができる。
【0004】
一般的に、セキュアなWiFiネットワークに参加する装置は、メッセージを暗号化し解読するのに使用できるネットワーク特有のパスワード又はキーを知る必要がある。このパスワード又はキーは、一般的に、装置間でワイヤレス通信されないが、セキュアなWiFiネットワークのアクセスポイントは、ネットワークへの参加を試みる装置が、例えば、ランダムチャレンジを正しく暗号化することにより、パスワード又はキーを知っていることを証明することを要求する。セキュアなWiFiネットワークにコンピュータを接続するために、ユーザは、例えば、コンピュータで実行されるネットワークコンフィギュレーションプログラムにより発生されたプロンプトに応答して、ネットワークアドミニストレーターからパスワードを得て、それをコンピュータに入力することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、最近、WiFiイネーブル型装置の世界は、ある範囲の周辺装置を含ませるためにコンピュータを越えて拡張し始めた。例えば、通信のために802.11規格を使用するワイヤレスプリンタが開発された。ある周辺装置は、限定されたユーザインターフェイスしかもたず、ユーザがWiFiネットワークのためのパスワード又はキーを装置へ入力することを困難又は不可能にする。多くの場合、先ず、ワイヤードインターフェイス(例えば、USB)を経て周辺装置をコンピュータへ接続して、WiFiインターフェイスを構成し、次いで、周辺装置をワイヤレス動作モードにスイッチすることが必要となる。
【課題を解決するための手段】
【0006】
本発明の幾つかの実施形態は、ネットワークにまだ参加していない装置間でメッセージを交換するためのワイヤレスネットワークプロトコルのサポートをレバレッジすることにより2つの装置(ここでは「コントローラ」及び「アクセサリ」と称される)間にセキュアなワイヤレスリンク(ここでは「ペアリング」と称される)を確立するための技術を提供する。このようなメッセージは、ここでは「プローブ要求」及び「プローブ応答」又はより一般的に「プローブ」と称される。IEEE802.11規格に基づくワイヤレスネットワークのケースでは、プローブ要求及びプローブ応答フレームをプローブとして使用することができる。ここに使用するプローブは、コンピュータ、移動装置、周辺装置、等を含む2つのWiFiイネーブル型装置間でメッセージのシーケンスを交換するのに使用できるものである。そのシーケンスは、2つの装置間に共有シークレットを確立するのに使用できるメッセージを含むことができ、共有シークレットが確立されると、2つの装置は、これに限定されないが、装置の1つがワイヤレスネットワークに参加できるようにする情報(例えば、ネットワーク名及びパスワード又は他のクレデンシャル)を含む他のメッセージをセキュアに通信することができる。
【0007】
適当に構成されたワイヤレスインターフェイスを伴う2つの装置がペアリングを確立することができる。ここに述べる幾つかの実施形態では、1つの装置(コントローラ)は、それとペアになり得る装置をサーチしていることを通知するために初期プローブをブロードキャストすることができる。別の装置(アクセサリー)は、ペアリングを要求する別のプローブで初期プローブに応答することができる。2つの装置は、共有シークレットを確立し、及び/又は他方が同じ共有シークレットを有することを検証できる。ある実施形態では、共有シークレットは、更に別のプローブを交換することにより確立され及び/又は検証される。他の実施形態では、共有シークレットを確立するのに必要な全ての情報をプローブの初期交換において与えることができ、そしてユーザ確認のような別のメカニズムを通して共有シークレットを検証することができる。各装置は、共有シークレットを使用して、付加的な暗号及び認証キーを発生することができる。これらのキーは、付加的なプローブ要求及びプローブ応答を使用して装置間に送信できるメッセージコンテンツをセキュアなものにする(例えば、暗号化及び/又は認証する)ために使用することができる。
【0008】
ある実施形態では、装置間で交換されるセキュアなものとされたメッセージコンテンツは、セキュアなワイヤレスネットワークに参加するのに必要なクレデンシャル、例えば、ネットワーク名及びパスワード又はキーを含むことができる。例えば、限定されたユーザインターフェイスを伴うアクセサリ(例えば、WiFiイネーブル型プリンタ)は、コントローラ(例えば、WiFiイネーブル型パーソナルコンピュータ)とのペアリングを確立し、そのペアリングを経て、コントローラが現在参加しているワイヤレスネットワークのためのクレデンシャルを得ることができる。アクセサリは、次いで、これらのクレデンシャルを使用して、ワイヤレスネットワークに参加することができる。アクセサリがワイヤレスネットワークに参加すると、アクセサリ及びコントローラは、そのネットワークを経て互いに又は他の装置と通信することができる。この点において、ペアリングを終了できるか、又はペアリングリンクを側波帯通信経路として維持することができる。
【0009】
ある実施形態では、ペアリングプロセスは、ほぼ自動化することができ、ユーザの介在をほとんど又は全く必要としない。ユーザの介在は、アクセサリとコントローラとの間のパスコード一致を検証するか、又は一方の装置(例えば、アクセサリ)により与えられたパスワードを他方の装置(例えば、コントローラ)に入力する程度の簡単なものとなる。
【0010】
本発明の1つの態様は、アクセサリとコントローラとの間にワイヤレス通信リンクを確立するための方法に係る。コントローラは、コントローラがペアリングすべきアクセサリをサーチしていることを指示するために第1のプローブをブロードキャストすることができる。アクセサリは、その第1のプローブを受け取り、そしてアクセサリに関する情報を与える第2のプローブで応答する。コントローラ及びアクセサリは、アクセサリにより送信される第3のプローブ及びコントローラにより送信される第4のプローブを含む付加的なプローブを使用して各パブリックキーを交換することにより共有シークレットを確立することができる。コントローラ及びアクセサリの各々は、他の装置が同じシークレットを共有することを確認し、そしてその共有したシークレットを使用して更に別の暗号キーを発生することができる。その後、いずれかの装置が、その更に別の暗号キーを使用してメッセージを暗号化し、そしてその暗号化したメッセージを第5のプローブ内で送信することにより、他方の装置へメッセージを送信することができる。受信側の装置は、その暗号化されたメッセージを第5のプローブから抽出し、そしてその更に別の暗号キーを使用してそれを解読することができる。ある実施形態では、暗号化されたメッセージは、認証データと共に送信され、受信者がメッセージの発信点及び完全性を検証できるようにする。
【0011】
本発明の第2の態様は、ワイヤレスインターフェイスを有するアクセサリに係る。ワイヤレスインターフェイスに結合されたプロセッサは、コントローラと通信して、プローブのシーケンスを使用してペアリングを確立し、そのペアリングを経てコントローラからワイヤレスネットワークに参加するためのクレデンシャルを得、そしてそのクレデンシャルを使用して、ワイヤレスネットワークに参加するように構成することができる。その後、コントローラも同じワイヤレスネットワークにあると仮定すれば、アクセサリ及びコントローラは、ワイヤレスネットワークを経て及び/又はペアリングを経て通信することができる。ある実施形態では、アクセサリは、最小限のユーザインターフェイスを有するか、又はユーザインターフェイスをもたず、必要に応じて、ユーザは、コントローラと対話することにより、アクセサリのペアリング及びネットワーク参加の振舞いを制御することができる。
【0012】
本発明の別の態様は、ワイヤレスインターフェイス及びユーザインターフェイスを有するコントローラに係る。ワイヤレスインターフェイス及びユーザインターフェイスに結合されたプロセッサは、アクセサリと通信し、プローブのシーケンスを使用してペアリングを確立するように構成することができる。ペアリングの確立は、ユーザインターフェイスを経てユーザと通信して、アクセサリがワイヤレスネットワークに参加し及び/又はペアリングの確立に使用するアクセサリ用のパスワードを得ることが許されねばならない旨の確認をすることを含む。ペアリングが確立されると、コントローラは、ワイヤレスネットワークに参加するためのクレデンシャルをアクセサリへセキュアに(例えば、アクセサリへ送られるプローブに含まれる暗号化されたメッセージとして)送信することができる。アクセサリがワイヤレスネットワークに参加すると、コントローラ及びアクセサリは、ワイヤレスネットワークを経て及び/又はペアリングを経て通信することができる。
【0013】
本発明の特徴及び効果を良く理解するために添付図面を参照して以下に詳細に本発明を説明する。
【図面の簡単な説明】
【0014】
【図1】本発明のある実施形態に使用される動作原理を示す。
【図2】本発明の一実施形態によるコントローラのブロック図である。
【図3】本発明の一実施形態によるアクセサリのブロック図である。
【図4】本発明の別の実施形態によるアクセサリのブロック図である。
【図5】本発明のある実施形態に使用可能なプローブフレーム構造体のブロック図である。
【図6】本発明の一実施形態によりコントローラとのペアリングを確立するためにアクセサリにより使用可能なプロセスのフローチャートである。
【図7】本発明の一実施形態によりアクセサリとのペアリングを確立するためにコントローラにより使用可能なプロセスのフローチャートである。
【図8A】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図8B】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図9A】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図9B】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図10】本発明の一実施形態によりコントローラに表示することのできるパスワードプロンプトを示す。
【図11】本発明の一実施形態により送信者(アクセサリ又はコントローラのいずれか)により使用されて、送信者とペアリングされる受信者の装置へメッセージを送信できるプロセスを示す。
【図12】本発明の一実施形態により受信者(コントローラ又はアクセサリのいずれか)により使用されて、受信者とペアリングされる送信者の装置からメッセージを受信できるプロセスを示す。
【図13】本発明の一実施形態によりワイヤレスネットワークに参加するためにアクセサリにより使用できるプロセスのフローチャートである。
【図14】本発明の一実施形態によりワイヤレスネットワークへのアクセサリの参加を容易にするためにコントローラにより実行できるプロセスのフローチャートである。
【図15】本発明の一実施形態によりワイヤレスネットワークへのアクセサリの参加を容易にするためにコントローラにより実行できるプロセスのフローチャートである。
【発明を実施するための形態】
【0015】
本発明の幾つかの実施形態は、ネットワークにまだ参加していない装置間でメッセージを交換するためのワイヤレスネットワークプロトコルのサポートをレバレッジすることにより2つの装置(ここでは「コントローラ」及び「アクセサリ」と称される)間にセキュアなワイヤレスリンク(ここでは「ペアリング」と称される)を確立するための技術を提供する。このようなメッセージは、ここでは「プローブ要求」及び「プローブ応答」又はより一般的に「プローブ」と称される。
【0016】
例えば、IEEE802.11規格では、「フレーム」と称される構造でメッセージが送信される。この規格は、参加するネットワークをサーチしている装置がブロードキャストできるプローブ要求フレームと、プローブ要求を受け取るアクセスポイントにより送信できるプローブ応答フレームとを定義する。このように、装置は、利用可能なワイヤレスネットワークを自動的に識別することができる。この規格によれば、プローブ要求又はプローブ応答要求は、「情報エレメント」を合体することができ、そのコンテンツは、特定のベンダーにより定義することができる。
【0017】
本発明のある実施形態は、コンピュータ及び周辺装置を含む2つのWiFiイネーブル型装置間でのメッセージのシーケンスの交換をサポートするためにIEEEプローブ要求及びプローブ応答フレームのベンダー特有情報エレメントをレバレッジする。そのシーケンスは、2つの装置間に共有シークレットを確立するメッセージを含むことができ、共有シークレットが確立されると、2つの装置は、これに限定されないが、一方の装置が標準的WiFiネットワークに参加できるようにする情報を含むその他のメッセージをセキュアに通信することができる。
【0018】
適当に構成されたワイヤレスインターフェイスを伴う2つの装置は、ペアリングを確立することができる。ここに述べる幾つかの実施形態において、一方の装置(コントローラ)は、それとペアリングできる装置をサーチしていることを通知するために初期「ブラウジング」プローブをブロードキャストすることができる。このブラウジング信号は、802.11プローブ要求フレームの情報エレメント又は別のタイプのプローブ要求内に含ませることができる。他方の装置(アクセサリ)は、アクセサリ識別情報を含む識別プローブでブラウジングプローブに応答することができる。その識別情報は、802.11プローブ応答フレームの情報エレメント又は別のタイプのプローブ内に含ませることができる。2つの装置は、共有シークレットを確立し、及び/又は他方が同じ共有シークレットを有することを検証することができる。ある実施形態では、共有シークレットは、更に別のプローブを交換することにより確立及び/又は検証することができる。他の実施形態では、共有シークレットを確立するのに必要な全ての情報をプローブの初期交換において与えることができ、そしてユーザ確認のような別のメカニズムを通して共有シークレットを検証することができる。各装置は、次いで、共有シークレットを使用して、付加的な暗号及び認証キーを発生することができる。これら後者のキーは、付加的なプローブ要求及びプローブ応答を使用して装置間に送信できるメッセージコンテンツをセキュアなものにする(例えば、暗号化及び/又は認証する)のに使用することができる。例えば、セキュアなものにされた(例えば、暗号化された)メッセージコンテンツは、IEEE802.11プローブ要求又はプローブ応答フレーム内の情報エレメントに含ませることができる。
【0019】
ある実施形態では、装置間で交換されるセキュアなものとされたメッセージコンテンツは、セキュアなワイヤレスネットワークに参加するのに必要なクレデンシャル、例えば、ネットワーク名及びパスワード又はキーを含むことができる。例えば、限定されたユーザインターフェイスを伴うアクセサリ(例えば、WiFiイネーブル型プリンタ)は、コントローラ(例えば、WiFiイネーブル型パーソナルコンピュータ)とのペアリングを確立し、そのペアリングを経て、コントローラが現在参加しているワイヤレスネットワークのためのクレデンシャルを得ることができる。アクセサリは、次いで、これらのクレデンシャルを使用して、ワイヤレスネットワークに参加することができる。アクセサリがワイヤレスネットワークに参加すると、アクセサリ及びコントローラは、そのネットワークを経て互いに又は他の装置と通信することができる。この点において、ペアリングを終了できるか、又はペアリングリンクを側波帯通信経路として維持することができる。
【0020】
ある実施形態では、ペアリングプロセスは、ほぼ自動化することができ、ユーザの介在をほとんど又は全く必要としない。ユーザの介在は、アクセサリとコントローラとの間のパスコード一致を検証するか、又は一方の装置(例えば、アクセサリ)により与えられたパスワードを他方の装置(例えば、コントローラ)に入力する程度の簡単なものとなる。
【0021】
図1は、本発明のある実施形態に使用される動作原理を示す。図1には、コントローラ100、この場合、パーソナルコンピュータと、アクセサリ110(例えば、プリンタ)及び120(例えば、ステレオスピーカ)とが示されている。コントローラ100及びアクセサリ110、120は、各々、標準的WiFiカードのようなワイヤレス通信インターフェイスと、種々の他のコンポーネントとを含み、その幾つかの例を以下に詳細に述べる。
【0022】
コントローラ100及びアクセサリ110は、プローブ要求及びプローブ応答に埋め込まれたメッセージを交換することによりセキュアな直接通信リンク(ペアリングとも称される)112を確立することができる。又、「プローブ」という語は、ここでは、プローブ要求及びプローブ応答の両方を交換可能に包含するように使用される。ペアリング112が確立されると、コントローラ100及びアクセサリ110は、付加的なプローブを使用して、暗号化されたメッセージを互いに送信することができる。同様に、コントローラ100及びアクセサリ110は、プローブに埋め込まれたメッセージを交換することによりペアリング122を確立することができる。ペアリング122が確立されると、コントローラ100及びアクセサリ110は、付加的なプローブを使用して、暗号化されたメッセージを互いに送信することができる。
【0023】
プローブは、ワイヤレス送信され、そしてアクセサリ110は、ペアリング122に関連したプローブを検出する。同様に、アクセサリ120は、ペアリング112に関連したプローブを検出することができる。セキュリティを与えるために、ペアリングが確立されると、特定のペアリングに特有の仕方でメッセージを暗号化することができ、従って、例えば、ペアリング112は、ペアリング122から異なる暗号キーを与えることができる。その結果、アクセサリ110は、ペアリング122に関連したプローブに含まれたメッセージを解読することができない。(同様に、アクセサリ120は、ペアリング112に関連したプローブに含まれたメッセージを解読することができない。)ペアリングに特有の暗号キーを確立することを含めて、ペアリングを確立するための技術の特定の例を以下に説明する。
【0024】
図1に示すように、ある実施形態では、単一のコントローラを複数のアクセサリと同時にペアリングさせることができる。ある実施形態では、コントローラ100は、一度に1つのペアリングのみを確立するプロセスにあり、しかしながら、1つのペアリング(例えば、ペアリング122)が確立されると、コントローラ110は、その第1のペアリングが利用可能である間に、第2のペアリング(例えば、ペアリング122)を確立することができる。他の実施形態では、コントローラ100が受信メッセージのソースを確実に決定できるに充分な識別情報がプローブ要求及びプローブ応答に含まれ、且つ各アクセサリが、それ又は別の装置が受信メッセージのターゲットであるかどうか決定できる場合に、コントローラ100は、複数のペアリングを同時に確立することができる。更に別の実施形態では、コントローラ100は、一度に1つのアクセサリとのペアリングを確立することに限定される。従って、例えば、アクセサリ110がコントローラ100とのペアリングを開始する場合、アクセサリ120は、ペアリング112が完全に確立されるまで待機することが要求される。別の実施形態において、アクセサリ110がそのペアリングを確立するプロセス中にアクセサリ120がコントローラ100とのペアリングを開始するよう試みる場合に、コントローラ100は、アクセサリ120からのペアリング要求に応じるためにアクセサリ110との通信を終了する。又、ペアリング動作をプライオリティ決めする他のルールを使用することもできる。
【0025】
図1に示す装置は、例示に過ぎず、変更や修正が考えられることが明らかである。例えば、コントローラ100は、パーソナルコンピュータとして描かれているが、コントローラ100は、これに限定されないが、ラップトップコンピュータ、タブレットコンピュータ、スマートホン、移動通信又はコンピューティング装置、等の別のタイプの装置でもよい。更に、コントローラ100は、顕著なコンピューティング能力を含む必要がなく、ここに述べるコントローラ動作を遂行できる装置であれば、コントローラとして使用することができる。
【0026】
同様に、アクセサリ110及び120は、各々、プリンタ及び一対のステレオスピーカとして描かれているが、ワイヤレス通信インターフェイスを伴う装置を含む他のタイプのアクセサリも使用できる。アクセサリである装置の他の例は、周辺装置、カメラ、電子医療装置を含むパーソナル電子装置、及び家庭用機器を含む。コントローラ100と同様に、ここに述べるアクセサリ動作を遂行できる装置は、アクセサリとして使用することができる。明らかなように、「アクセサリ」とは、ペアリングプロセス中に、アクセサリがコントローラから初期プローブ要求を受け取ってそれに応答するという点で、コントローラと区別される。
【0027】
ある実施形態では、アクセサリは、限定されたユーザインターフェイスを有するか又はユーザインターフェイスをもたない装置である。例えば、スピーカ120は、音響を発生するが、ユーザアクションを検出できるコンポーネント(例えば、ボタン、ダイヤル、タッチ感知エリア、等)をもつ必要がない。同様に、プリンタ110は、紙に任意の画像を(具現化により白黒又はカラーで)形成できると共に、若干のキャラクタを表示できるディスプレイ又は単なる状態ライトしかもたず、即ちユーザ入力インターフェイスは、1つ又は2つの制御ボタンしか備えていない。このような限定された又は存在しないユーザインターフェイスは、従来のセキュアなワイヤレスネットワークに参加するのに要求されるネットワーク名、パスワード又は他のクレデンシャルをユーザが入力するのを困難又は不可能にする。ある実施形態では、アクセサリは、アクセサリとユーザとの対話がほとんど又は全くない状態で、ネットワーククレデンシャルをワイヤレスで且つセキュアに得ることができ、そのようなアクセサリをワイヤレスネットワークに接続するタスクを簡単にする。
【0028】
ここで使用する「プローブ要求」及び「プローブ応答」(又は「プローブ」)という語は、一般的に、特定のワイヤレスネットワークの状況に関わらず送信されるメッセージを指す。これらメッセージは、送信側装置の識別及び/又は受信側装置に関する情報の要求を含むことができる。これらメッセージは、ブロードキャストすることができ、又はある実施形態では、送信者が受信者の識別情報を有する場合に、あるメッセージをユニキャスト(即ち、特定の受信者に宛てる)ことができる。プローブは、一般的に、平文で送信される(が、以下に述べる幾つかの実施形態では、平文のプローブ要求又はプローブ応答に暗号化メッセージを埋め込むことができる)。IEEE802.11適合のプローブ要求及びプローブ応答フレームを使用できるが、本発明は、IEEE802.11規格に適合するそれらの特定フレーム又はネットワークに限定されない。
【0029】
図2は、本発明の一実施形態によるコントローラ200のブロック図である。コントローラ200(図1のコントローラ100を具現化する)は、プロセッサ202、ユーザインターフェイス204、ワイヤレスインターフェイス206、及び記憶媒体208のような種々のコンポーネントを含むことができる。
【0030】
1つ以上の集積回路として具現化できるプロセッサ202(例えば、従来のマイクロプロセッサ又はマイクロコントローラ)は、コントローラ200の動作を制御することができる。種々の実施形態において、プロセッサ202は、プログラムコードに応答して種々のプログラムを実行することができ、又、複数の同時実行プログラム又はプロセスを維持することができる。所与の時間に、実行されるべきプログラムコードの幾つか又は全部をプロセッサ202に常駐させることができ及び/又は記憶媒体208のような記憶媒体に常駐させることができる。
【0031】
適当なプログラミングを通して、プロセッサ202は、コントローラ200のための種々の機能を与えることができる。例えば、ユーザインターフェイス204により与えられるユーザ入力信号に応答して、プロセッサ202は、アプリケーションプログラム(ワードプロセッサ、ウェブブラウザ、等)を起動し、記憶されたメディアコンテンツを再生し、ネットワーク接続を確立又は終了するようにワイヤレスインターフェイス206を制御し、或いはデータ及び他の信号を送受信し、等々を行うことができる。
【0032】
ユーザインターフェイス204は、キーボード、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、マイクロホン、等の入力装置と、ビデオスクリーン、インジケータライト、スピーカ、ヘッドホーンジャック、等の出力装置を、サポート電子装置(例えば、デジタル/アナログ又はアナログ/デジタルコンバータ、信号プロセッサ、等)と一緒に含むことができる。ユーザは、ユーザインターフェイス204の入力装置を操作して、コントローラ200の機能を呼び出すことができると共に、ユーザインターフェイス204の出力装置を経てコントローラ200からの出力を見及び/又は聞くことができる。
【0033】
ワイヤレスインターフェイス206は、コントローラ200のデータ通信能力を与えることができる。ある実施形態では、ワイヤレスインターフェイス206は、(例えば、3G、4G又はEDGEのような進歩型データネットワーク技術、WiFi(IEEE802.11規格群)、又は他のワイヤレス通信技術、或いはその組み合わせを使用して)ワイヤレスボイス及び/又はデータネットワークにアクセスするための高周波(RF)トランシーバコンポーネントを含むことができる。ワイヤレスインターフェイス206は、ハードウェア(例えば、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを使用して実施することができる。
【0034】
記憶媒体208は、例えば、ディスク、フラッシュメモリ、又は他の不揮発性記憶媒体を使用して具現化することができる。ある実施形態では、記憶媒体208は、プロセッサ202により実行されるべきプログラムコード(アプリケーション及びオペレーティングシステムプログラムを含む)を記憶することができる。このコードは、以下に述べるように、アクセサリとのペアリングを確立することに関連したプログラムコードを含むことができる。又、記憶媒体208は、コントローラ200により再生されるか又は別の装置へストリーミングされるメディアアセット(オーディオ、ビデオ、静止画像、等)、パーソナル情報電子ドキュメント、及び/又はユーザのためのデータファイル、並びに他の情報のようなデータを記憶することもできる。ある実施形態では、記憶媒体208は、コントローラ200がワイヤレスインターフェイス206を経て接続できる特定のワイヤレスネットワークに関連したネットワーククレデンシャル210(例えば、ネットワーク名及びパスワード)を記憶することができる。
【0035】
コントローラ200は、例示に過ぎず、変更や修正が考えられることは明らかである。コントローラ200は、ここに詳細に述べない能力(例えば、移動電話、衛星ベースのナビゲーション)を有してもよく、又、メディア再生能力を有する必要はない。「コントローラ」という語は、ここでは、セキュアなワイヤレスリンク又はペアリングの要求に応答して、その後、別の装置とのペアリングを確立できる装置を一般的に指す。
【0036】
ある実施形態では、コントローラ200は、他の入力/出力チャンネルを使用してユーザ又は別の装置と情報を交換することもできる。他の入力/出力チャンネルは、例えば、オーディオラインイン又はラインアウト経路におけるアナログ信号(例えば、オーディオジャック);カメラ、バーコードリーダー、又は画像分析器と組み合わせた他の画像形成装置(入力用);マシン読み取り可能な画像を発生するディスプレイスクリーン(出力用);加速度計、ジャイロスコープ又は接近検出器のようなセンサ(これを経て装置の動き、方向又は位置を使用して、コントローラ200へ情報を入力できる);非可視光(例えば、赤外線)検出器及び/又は送信器;超音波検出器及び/又は送信器;等々を含む。
【0037】
図3は、本発明の一実施形態によるアクセサリ300のブロック図である。このアクセサリ300(例えば、図1のプリンタアクセサリ110を具現化する)は、プロセッサ302、ユーザインターフェイス304、ワイヤレスインターフェイス306、記憶媒体308、及びプリンティング要素310を含むことができる。
【0038】
1つ以上の集積回路として具現化できるプロセッサ302(例えば、従来のマイクロプロセッサ又はマイクロコントローラ)は、アクセサリ300の動作を制御することができる。種々の実施形態において、プロセッサ302は、プログラムコードに応答して種々のプログラムを実行することができ、又、複数の同時実行プログラム又はプロセスを維持することができる。所与の時間に、実行されるべきプログラムコードの幾つか又は全部をプロセッサ302に常駐させることができ及び/又は記憶媒体308のような記憶媒体に常駐させることができる。
【0039】
ユーザインターフェイス304は、従来のプリンタのような単純なインターフェイスである。例えば、あるプリンタは、少数のボタン及び状態インジケータライトとの最小限のインターフェイスをなす。他のプリンタは、プリンタ設定の調整、ペーパー又はペーパー経路の選択、ジョブのキャンセル、故障発見、等を容易にするための双方向メニューをサポートするより精巧なインターフェイス(例えば、文字列ディスプレイ又は他のディスプレイをキーパッド、タッチスクリーン、等と一緒に含む)をなす。ある実施形態では、ユーザインターフェイス304のディスプレイは、以下に述べるように、ペアリングを確認するための情報をユーザに与えるのに使用される。
【0040】
ワイヤレスインターフェイス306は、アクセサリ300のための少なくともデータ通信能力を与えることができる。ある実施形態において、ワイヤレスインターフェイス306は、(例えば、3G、4G又はEDGE、WiFi、又は他の移動通信技術、或いはその組み合わせを使用して)ワイヤレスデータネットワークにアクセスするための高周波(RF)トランシーバコンポーネントを含むことができる。ワイヤレスインターフェイス306は、ハードウェア(例えば、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを使用して具現化することができる。
【0041】
記憶媒体308は、例えば、ディスク、フラッシュメモリ、又は他の不揮発性記憶媒体を使用して具現化することができる。ある実施形態では、記憶媒体308は、プロセッサ302により実行されるべきプログラムコード(例えば、プリンティング制御プログラムを含む)を記憶することができる。このコードは、以下に述べるように、コントローラとのペアリングを確立することに関連したプログラムコードを含むことができる。
【0042】
プリンティング要素310は、種々の電子的及び/又は機械的コンポーネント、例えば、ペーパーフィーダー、インクジェット装置、レーザープリンティング装置、等を含む。
【0043】
図4は、本発明の別の実施形態によるアクセサリ400のブロック図である。このアクセサリ400(例えば、図1のスピーカアクセサリ120を具現化する)は、プロセッサ402、ワイヤレスインターフェイス406、記憶媒体408、及びスピーカ410を含む。
【0044】
1つ以上の集積回路として具現化できるプロセッサ402(例えば、従来のマイクロプロセッサ又はマイクロコントローラ)は、アクセサリ400の動作を制御することができる。種々の実施形態において、プロセッサ402は、プログラムコードに応答して種々のプログラムを実行することができ、又、複数の同時実行プログラム又はプロセスを維持することができる。所与の時間に、実行されるべきプログラムコードの幾つか又は全部をプロセッサ402に常駐させることができ及び/又は記憶媒体408のような記憶媒体に常駐させることができる。
【0045】
ワイヤレスインターフェイス406は、アクセサリ400のための少なくともデータ通信能力を与えることができる。ある実施形態において、ワイヤレスインターフェイス406は、(例えば、3G、4G又はEDGE、WiFi、又は他の移動通信技術、或いはその組み合わせを使用して)ワイヤレスデータネットワークにアクセスするための高周波(RF)トランシーバコンポーネントを含むことができる。ワイヤレスインターフェイス406は、ハードウェア(例えば、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを使用して具現化することができる。
【0046】
記憶媒体408は、例えば、ディスク、フラッシュメモリ、又は他の不揮発性記憶媒体を使用して具現化することができる。ある実施形態では、記憶媒体408は、プロセッサ402によって実行されるべきプログラムコード(例えば、ワイヤレスインターフェイス406を経て受け取られたデジタルオーディオをデコードすることに関連したコードを含む)を記憶することができる。このコードは、以下に述べるように、コントローラとのペアリングを確立することに関連したプログラムコードを含むことができる。ある実施形態では、記憶媒体408は、装置ファームウェアの一部分であるか又は装置へハードコード化される装置パスワード412も記憶することができる。装置パスワード412は、以下に述べるように、ペアリングを確立するときに使用できる。
【0047】
スピーカ410は、増幅器、トランスジューサ、スピーカコーン、出力ジャック、等の種々の電子的及び/又は機械的コンポーネントを含む。ある実施形態では、プロセッサ402は、ワイヤレスインターフェイス406を経てデジタルオーディオデータを受け取り、そのデータをアナログ信号に変換し、そしてそのアナログ信号をスピーカ410内のスピーカドライバに与えることができる。又、ある実施形態では、スピーカ410は、補助入力ジャック(例えば、標準的3.5mmオーディオジャック)も含み、その経路を経てアナログオーディオ信号を受け取ることもできる。
【0048】
アクセサリ300とは異なり、アクセサリ400は、ユーザインターフェイスを有するものとして示されておらず、実際に、アクセサリは、ユーザインターフェイスを有する必要性がない。ある実施形態では、ユーザインターフェイスは、例えば、パワースイッチ、入力ソースセレクタ、ボリュームコントロール、等に限定される。
【0049】
アクセサリ300及び400は、例示に過ぎず、変更や修正が考えられることが明らかである。ここで使用する「アクセサリ」という語は、一般的に、コントローラとのペアリングを確立できる装置を指し、ペアリングにより与えられる通信リンクは、これに限定されないが、コントローラが既に属しているネットワークへのアクセサリの追加を容易にすることを含む任意の目的に使用できる。ある実施形態では、アクセサリの機能に関連したデータ及び制御信号は、ペアリングリンクを使用して送信することができる。従って、アクセサリは、プリンティング、サウンドの再生、ビデオの表示、コントローラへのデータ(例えば、センサの読み)の供給、コントローラからのデータの受け取り及び処理、等を含む種々の目的に使用することができる。アクセサリは、スピーカやカメラのような周辺装置に限定されず、他の例として、家庭用機器(例えば、冷蔵庫、従来のオーブン、マイクロ波オーブン、洗濯機、等)や、パーソナル電子装置(例えば、トレーニングモニタ、電子医療機器)が含まれる。ワイヤレスインターフェイス及び適当な構成をもついかなる装置もアクセサリとして動作できる。
【0050】
更に、コントローラ及びアクセサリは、図2ないし4に示す特定のブロックを参照して説明したが、これらのブロックは、説明の便宜上定義されたもので、コンポーネントパーツの特定の物理的配列を意味するものではないことを理解されたい。更に、ブロックは、物理的な個別のコンポーネントに対応する必要がない。又、ブロックは、例えば、プロセッサをプログラムするか又は適当な制御回路を設けることにより種々の動作を遂行するように構成することができ、そして種々のブロックは、初期構成がどのように得られるかに基づいて構成可能であってもなくてもよい。本発明の実施形態は、回路及びソフトウェアの任意の組み合わせを使用して具現化される電子装置を含む種々の装置において実現することができる。
【0051】
ここに述べるように、コントローラ及びアクセサリは、プローブを交換することによりワイヤレスペアリングを確立することができる。図5は、本発明のある実施形態に使用できるプローブフレーム構造体500のブロック図である。
【0052】
このプローブフレーム構造体500は、多数のフィールドを含み、ある実施形態では、これらフィールドの幾つか又は全部がIEEE802.11規格により規定されたフレーム構造体に対応する。例えば、フレーム制御フィールド502は、フレームに関する一般的情報、例えば、プロトコルバージョン、フレームのタイプ(例えば、それをプローブ要求又はプローブ応答フレームとして識別する)、及び受信したワイヤレス信号ストリームを解釈するために受信側装置により使用できる他の情報を与えることができる。期間フィールド504は、例えば、IEEE802.11規格に定義された期間情報を与えることができる。アドレスフィールド506は、フレーム500の送信者及び意図される受信者のアドレス、並びに、例えば、IEEE802.11規格で指定された他のアドレス情報を指定することができる。シーケンスフィールド508は、複数の受信した断片からフレームを再構成するために使用できるシーケンス情報を含むことができる。データフィールド510は、受信者により処理されるべきデータを含むフレームコンテンツを含むことができる。チェック和フィールド512は、エラー検出及び/又はエラー修正コード、例えば、32ビットの繰り返し冗長チェックを含むことができる。
【0053】
プローブ要求又はプローブ応答フレームに対するデータフィールド510は、1つ以上の情報エレメント520を含むことができる。各情報エレメント(IE)520は、種々のフィールドを含む構造体である。エレメントIDフィールド522は、IEのタイプを識別することができる。例えば、情報エレメントは、標準エレメントであるか又はベンダー特有エレメントであり、そしてエレメントIDフィールド522は、IE520が標準的であるかベンダー特有であるか指示するのに使用できる。ここに述べる実施形態では、ベンダー特有の情報エレメントを仮定するが、ここに述べる情報エレメントが将来の規格の一部分となることが明らかである。長さフィールド524は、IE520の長さを(例えば、バイトで)指示する。ベンダーフィールド526は、ベンダー特有の情報エレメント520に関連したベンダーの独特の識別子を含むことができる。ベンダーは、例えば、ここに述べるペアリング動作を遂行することのできるコントローラの製造者である。ある実施形態では、フィールド526のベンダー識別子は、IEEEにより指定される24ビットの組織独特識別子(OUI)であり、他の識別子も使用できる。サブタイプフィールド528は、ベンダー指定のサブタイプを与える。ある実施形態では、サブタイプフィールド528は、全てのペアリング関連プローブにわたって固定値を有し、そして情報エレメント520がペアリングに使用するためのものであることを指示するのに使用される。
【0054】
サブIEフィールド530は、1つ以上のサブIE540を含むことができる。図示されたように、サブIE540は、サブエレメントにおいて与えられる情報のタイプを指示するタイプ識別子フィールド542を与える。与えられる情報のタイプは、例えば、IE520に関連した動作(例えば、ペアリングすべきアクセサリをサーチし、キーをネゴシエーションし、共有シークレットを認証し、ワイヤレスネットワーククレデンシャルのような暗号化されたメッセージを送信する)を識別するOPコード;ターゲット装置のアドレス;セッション識別子;シーケンス番号;暗号キー;ランダムナンス;認証又はデジタルシグネチャー;暗号化データ;装置能力及び/又は構成情報;装置名(製造者及び/又はモデル名);ネットワーククレデンシャル(例えば、以下に述べるように暗号化できる)を含む。種々の情報タイプについての使用例を以下に説明する。
【0055】
長さフィールド544は、サブIE540の長さを指示するのに使用できる。ペイロードフィールド546は、タイプ識別子フィールド542により識別された情報を含むことができる。
【0056】
ここに述べるプローブフォーマットは、例示に過ぎず、変更や修正が考えられることが明らかである。ある実施形態では、プローブフレームは、プローブ要求及びプローブ応答フレームを定義するIEEE802.11規格に適合するものであるが、他のプローブフォーマットも使用できる。少なくとも一方の装置がワイヤレスネットワークに参加しない場合に装置間で情報を送信するのに使用できるデータ構造は、プローブとして使用することができる。
【0057】
アクセサリとコントローラとの間にペアリングを確立するのに使用できるプロセスの例を以下に説明する。
【0058】
図6は、本発明の一実施形態によりコントローラとのペアリングを確立するためにアクセサリにより使用可能なプロセッサ600のフローチャートである。このプロセス600は、ブロック602において、アクセサリ(例えば、アクセサリ300又はアクセサリ400)がペアリングの生成を試みなければならないと決定したときにスタートする。ある実施形態では、この決定は、アクセサリのスタートアッププロセス中に自動的に行われ、他の実施形態では、ユーザは、アクセサリの制御器を操作して、プロセスを開始することができる。更に別の実施形態では、スタートアップ時にペアリングを自動的に生成するよう試みるべきか又は特定のインストラクションを待機すべきかは、アクセサリの構成可能なパラメータである。
【0059】
ブロック604において、アクセサリは、コントローラが、それとペアリングできるアクセサリをサーチしている(又はブラウジングしている)ことを指示するコントローラからの「ブラウジング」プローブ要求を聴取し受け取ることができる。ある実施形態では、このブラウジングプローブ要求は、上述したプローブフレーム500として受け取ることができる。この例において、プローブフレーム500は、コントローラが、それとペアリングするアクセサリをサーチし又はブラウジングしていることを指示するOPコードを(例えば、サブIEフィールド530内に)含むことができる。ブラウジングプローブ要求は、例えば、受信者アドレスを指定しないことによりブロードキャストできる。IEEE802.11適合ネットワークの場合には、アクセスポイントだけがプローブ要求を聴取しそしてそれに応答し、他の装置は、それを無視するのが典型的である。しかしながら、プローブ要求は、明瞭にブロードキャストされるので、アクセスポイント以外の装置も、プローブ要求を検出してそれに応答することができる。
【0060】
ブロック606において、アクセサリは、コントローラへプローブ応答を送信することができる。ある実施形態では、プローブ応答は、上述したプローブフレーム500として送信することができる。この例では、プローブフレーム500は、アクセサリに関する識別情報、例えば、製造者名、モデル名、及びアクセサリがキーネゴシエーションを動的に遂行できるか又は記憶されたパスワードに基づいて遂行できるかといった特定能力情報を(例えば、サブIEフィールド530内に)含むことができる。プローブ応答は、ブロック604においてプローブ要求を受け取ったところのコントローラへアドレスされる。ブロック604において複数のプローブ要求が受け取られた場合には、アクセサリがコントローラを選択することができる。ある実施形態では、アクセサリは、プローブ要求を受け取ったところの最初のコントローラを選択し、他の実施形態では、最後のコントローラを選択する。更に別の実施形態では、他の選択ルールを使用することもできるし、或いはアクセサリがユーザを促すことのできるユーザインターフェイスを有する場合には、アクセサリは、アクセサリがペアリングすべきコントローラを選択するようにユーザを促すこともできる。
【0061】
ブロック608において、アクセサリ及びコントローラは、パブリック暗号キーを確立し交換することができる。ある実施形態では、パブリックキーは、付加的なプローブを使用して交換される。プローブフレーム500が使用される場合には、キーをサブIEフィールド530にサブIEとして組み込むことができ、又、他のフォーマットを使用することもできる。ある実施形態では、キーは、動的にネゴシエーションすることができ、他の実施形態では、キーの発生は、アクセサリに関連した固定パスワードに基づいて行うことができる。これら技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0062】
ブロック610において、アクセサリは、共有シークレットを計算し、そしてコントローラが同じ共有シークレットを有することを確認することによりコントローラを有効なものとすることができる。例えば、アクセサリ及びコントローラは、各々、共有シークレットに基づいてある情報を表示することができる。両表示は、両方が同じシークレットを有する場合に一致すべきであり、ユーザは、一致を検証することが求められる。或いは又、アクセサリ及びコントローラは、各々、ランダムチャレンジを使用して、他方が同じ共有シークレットを有することを検証してもよい。これらの技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0063】
ブロック612において、アクセサリは、共有シークレットに基づき付加的な暗号及び認証キーを発生することができる。ブロック614において、アクセサリは、付加的なキーを使用してコントローラとセキュアに通信することができる。例えば、アクセサリは、キーを使用して、メッセージを暗号化し、次いで、その暗号化されたメッセージをプローブ内の情報エレメント(又は他のデータアイテム)において送信することができる。同様に、アクセサリは、暗号化されたメッセージを含むプローブをコントローラから受け取り、キーを使用してそのメッセージを解読し認証することができる。ブロック614におけるペアリングを通る通信は、不定に継続することができ、通信が完了したときに、プロセス600は、終了となる。
【0064】
図7は、本発明の実施形態によりアクセサリとのペアリングを確立するためにコントローラにより使用できるプロセス700のフローチャートである。このプロセス700は、ブロック702において、コントローラが、アクセサリとのペアリングを試みなければならないことを決定したときにスタートする。例えば、ユーザは、ペアリングすべきアクセサリをサーチするようにコントローラに命令することができる。
【0065】
ブロック704において、コントローラは、ペアリングを行うことのできるアクセサリに対してコントローラがブラウジングすることを指示するブラウジングプローブ要求をブロードキャストする。ある実施形態では、このプローブ要求は、上述したプローブフレーム500としてブロードキャストされる。この例では、プローブフレーム500は、コントローラが、それとペアリングされるアクセサリをサーチするか又はブラウジングすることを指示するOPコードを(例えば、サブIEフィールド530内に)含む。プローブ要求は、例えば、受信者のアドレスを指定しないことにより、それがブロードキャストされるという指示を含むことができる。
【0066】
ブロック706において、コントローラは、アクセサリからプローブ応答を受け取る。ある実施形態では、プローブ応答は、上述したプローブフレーム500として送信することができる。この例では、プローブフレーム500は、アクセサリに関する識別情報、例えば、製造者名、モデル名、及びアクセサリがキーネゴシエーションを動的に遂行できるか又は記憶されたパスワードに基づいて遂行できるかといった特定能力情報を(例えば、サブIEフィールド530内に)含むことができる。プローブ応答は、コントローラへアドレスされる。ある実施形態では、コントローラは、ブロック706において、複数のプローブ応答を受け取ることができる。
【0067】
ある実施形態では、コントローラは、更に別の処理の前にユーザを促すことができる。例えば、コントローラは、アクセサリを接続すべきかどうかユーザに尋ねるメッセージを表示することができ、このメッセージは、プローブ要求から抽出されたアクセサリ識別情報を含むことができる。ユーザがこの接続を許す場合には、コントローラが処理を進めることができる。複数のアクセサリからのプローブ応答がブロック706において受け取られた場合には、コントローラは、ペアリングすべきアクセサリを選択するようにユーザに求めることができる。他の実施形態では、コントローラは、最初にユーザの許可を得ずにペアリングを進めることができる。
【0068】
ブロック708において、コントローラ及びアクセサリは、パブリック暗号キーを確立し交換することができる。ある実施形態では、パブリックキーは、付加的なプローブを使用して交換される。プローブフレーム500が使用される場合には、キーは、サブIEフィールド530にサブIEとして組み込まれ、又、他のフォーマットも使用できる。ある実施形態では、キーは、動的にネゴシエーションすることができ、他の実施形態では、キーの発生は、アクセサリに関連した固定パスワードに基づいて行うことができる。これら技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0069】
ブロック710において、コントローラは、共有シークレットを計算し、そしてアクセサリが同じ共有シークレットを有することを確認することによりアクセサリを有効なものとすることができる。例えば、コントローラ及びアクセサリは、両方が同じシークレットを有する場合に一致すべき共有シークレットに基づいてある情報を表示し、そしてユーザは、一致を検証することができる。或いは又、コントローラ及びアクセサリは、各々、ランダムチャレンジを使用して、他方が同じ共有シークレットを有することを検証してもよい。これらの技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0070】
ブロック712において、コントローラは、共有シークレットに基づいて付加的な暗号及び認証キーを発生する。ブロック714において、コントローラは、付加的なキーを使用してアクセサリとセキュアに通信することができる。例えば、コントローラは、キーを使用してメッセージを暗号化し、次いで、その暗号化されたメッセージをプローブ内の情報エレメント(又は他のデータアイテム)において送信することができる。同様に、コントローラは、暗号化されたメッセージを含むプローブをアクセサリから受け取り、キーを使用してそのメッセージを解読し認証することができる。ブロック714において与えられるセキュアなペアリングリンクを通る通信は、不定に継続することができ、通信が完了したときに、プロセス700は、終了となる。
【0071】
プロセス600及び700は、例示であり、変更や修正が考えられることが明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加、又は省略されてもよい。例えば、プローブ要求及びプローブ応答の種々のシーケンスを使用して、ペアリングのためのセキュリティ(キー、共有シークレット、等)を確立することができる。種々の暗号技術及びアルゴリズムを使用することができ、幾つかの例を以下に説明する。プローブは、IEEE802.11に適合するプローブ要求及びプローブ応答フレームであるか、或いは他のワイヤレスネットワークプロトコルに適合する他のフォーマットのメッセージである。一般的に、プローブは、明瞭に(即ち、暗号化されずに)送信されると予想され、適当な能力をもつ装置がメッセージを読み取ることができる。メッセージコンテンツを平文プローブ内に(例えば、情報エレメント又は他のデータアイテムとして)埋め込む前に、それを、例えば、上述したように暗号化することにより、ペアリング内にセキュリティを与えることができる。
【0072】
ある実施形態では、2つ程度のプローブを使用して、ペアリングを完了することができる。例えば、コントローラにより送られる初期プローブ要求は、コントローラのパブリックキーを含むことができ、そしてアクセサリにより送られる初期プローブ応答は、アクセサリのパブリックキーを含むことができる。(従って、ブロック608は、ブロック604及び606と一緒に行うことができ、同様に、ブロック708は、ブロック704及び706と一緒に行うことができる。)又、共有シークレットを有効とすることも、更に別のプローブを交換せずに行うことができ、その例を以下に説明する。
【0073】
プロセス600及び700を使用してセキュアなペアリングリンクが確立されると、どのタイプの情報もそのリンクを経て通信することができ、具現化に基づく帯域巾制約しか受けない。ある実施形態では、アクセサリは、ブロック614において与えられたペアリングを使用して、ワイヤレスネットワークのクレデンシャル(例えば、保護されたIEEE802.11ネットワークの名前及びパスワード又はキー)をコントローラから得ることができ、次いで、アクセサリは、これらクレデンシャルを使用して、そのネットワークに参加することができる。アクセサリがワイヤレスネットワークに参加すると、ペアリングリンクを通る通信を切断することができるが、ある実施形態では、そのような通信を続けて、通信側波帯を与えることができる。
【0074】
ペアリングリンクを経て通信できる他のタイプの情報は、アクセサリ、コントローラ又はその両方のための構成パラメータ及び/又は制御信号を含む。従って、例えば、ペアリングされたアクセサリは、(プローブ内においてコントローラへコマンドを送信することにより)コントローラのためのリモートコントロール装置として働くことができ、或いはその逆のことも言える。プローブにより与えられる帯域巾が充分である場合には装置間にデータをストリーミングすることができる。(現在のIEEE802.11規格については、プローブ要求及びプローブ応答フレームにより与えられる帯域巾は、一般に、高品質メディアストリーミングにとって充分なものではなく、他の具現化で、より高い帯域巾を与えることができる。)
【0075】
上述したように、ある実施形態では、ブロック608及び610(又は708及び710)において動的なキーネゴシエーション及び確認が与えられ、他の実施形態では、固定装置パスワードに基づいてキーネゴシエーション及び確認が与えられる。図8A−8Bは、本発明の実施形態による両方の代替え形態を与えるプロセス800のフローチャートである。
【0076】
ブロック802において、コントローラ(例えば、コントローラ200)は、それがペアリングするアクセサリを探索するため、例えば、ユーザからインストラクションを受け取ることができる。例えば、コントローラにより実行されるアプリケーションプログラムは、ユーザが、ペアリングに利用できるアクセサリをサーチするようコントローラに命令するために(例えば、メニューから選択することにより)操作できる制御器を伴うユーザインターフェイスを含むことができる。他の実施形態では、アクセサリを探索するためのインストラクションがコントローラの動作中に自動的に発生され(例えば、規則的な間隔で)、ユーザの開始は必要とされない。ブロック804において、コントローラは、ペアリングを行うことのできるアクセサリをブラウジングするためにプローブ要求をブロードキャストすることができる(例えば、上述したように)。これは、一般的に、上述したプロセス700のブロック704と同様である。
【0077】
ブロック806において、アクセサリは、コントローラからプローブ要求を受け取る。ブロック808において、アクセサリは、それに応答して、プローブ応答(例えば、上述した)をコントローラへ送信する。これは、上述したプロセス600のブロック606と一般的に同様である。
【0078】
ブロック810において、コントローラは、アクセサリからプローブ応答を受け取る。ブロック812において、コントローラは、ペアリングを進めるべきかどうかユーザと確認することができる。上述したように、ある実施形態では、コントローラは、アクセサリを接続すべきかどうかユーザに尋ねるメッセージを表示することができ、このメッセージは、プローブ要求から抽出されたアクセサリ識別情報を含むことができる。コントローラが複数のアクセサリからプローブ応答を受け取る場合には、ブロック812は、ペアリングすべきアクセサリを選択するようにユーザを促すことを含む。ペアリングを進めるべきであることをユーザが確認すると仮定すれば、コントローラは、処理を進めることができる。他の実施形態では、コントローラは、最初にユーザの許可を得ることなくペアリングを進めることができ、ブロック812を省略することができる。
【0079】
ブロック814において、コントローラは、アクセサリが動的なキーネゴシエーションを使用するか又は固定パスワードベースのキーを使用するか決定することができる。アクセサリが動的なキーネゴシエーションを使用しない場合には、図9A−9Bに示して以下に説明するシーケンスを、ブロック816に示すように使用することができる。
【0080】
動的なキーネゴシエーションについては、プロセス800の残り部分が図8Bに示されている。ブロック822において、コントローラは、そのプライベートキー(CPRIV)及びパブリックキー(CPUB)を発生することができる。1つの実施形態では、コントローラは、32バイトの暗号的に強力なランダムデータを発生し、そのデータを、Curve25519(http://cr.yp.to/ecdh.htmlで文書化された楕円曲線ディフィー・ヘルマン解決策)のような暗号アルゴリズムを使用してプライベートキーCPRIVへ変換し、そしてCPRIVからパブリックキーCPUBを計算することができる。パブリック/プライベートキー対を発生するための他の技術に置き換えることもできる。
【0081】
ブロック824において、コントローラは、プローブ要求を使用して、パブリックキーCPUBをアクセサリへ送信することができる。このパブリックキーCPUBは、情報エレメント又は他のデータアイテムとして含ませることができる。パブリックキーは、平文テキストとして送信することができる。又、コントローラは、プローブ要求の1つ以上の情報エレメント内に他の情報、例えば、ペアリングセッションに関連した全てのプローブ要求及びプローブ応答にその後含ませることのできる独特のセッションID、を含むこともできる。セッションIDを使用すると、コントローラ及びアクセサリは、ペアリングリンクの状態(例えば、キーネゴシエーションが進行中であるか又は完了したか)を決定し、それに応じて、受け取ったプローブ要求及びプローブ応答を処理する上で助けとなる。ある実施形態では、他の情報も、プローブ応答を特定のプローブ要求に一致させることのできる独特のシーケンス識別子(セッション内で独特)を含むことができる。
【0082】
ブロック826において、アクセサリは、コントローラのパブリックキーCPUBを含むプローブ要求を受け取る。アクセサリは、ブロック828において、それ自身のプライベートキー(APRIV)及びパブリックキー(APUB)を発生する。1つの実施形態では、アクセサリは、32バイトの暗号的に強力なランダムデータを発生し、そのデータを、Curve25519のような暗号アルゴリズムを使用してプライベートキーAPRIVへ変換し、そしてAPRIVからパブリックキーAPUBを計算することができる。又、パブリック/プライベートキー対を発生するための他の技術に置き換えることもでき、一般的に、ブロック822及び828では、適合する技術を使用しなければならない。ブロック830では、アクセサリは、プローブ応答を使用してコントローラへそのパブリックキーAPUBを送信することができる。
【0083】
ブロック832において、コントローラは、プローブ応答を受け取り、APUBを抽出することができる。この段階において、コントローラ及びアクセサリは、各々、両パブリックキーAPUB及びCPUBを所有する。
【0084】
ブロック834及び836において、コントローラ及びアクセサリは、各々、パブリックキーAPUB及びCPUBに基づいて共有シークレットを計算することができる。ある実施形態では、共有シークレットは、曲線25519を使用して計算され、他の暗号アルゴリズムに置き換えることもできる。一般的に、両装置は、共有シークレット(即ち、両装置に知られた1つのシークレット)を与えるのに同じアルゴリズムを使用しなければならない。
【0085】
ブロック838及び840において、コントローラ及びアクセサリは、各々、共有シークレットからパスコードを計算することができる。例えば、SHA−256のようなハッシュアルゴリズムを共有シークレット又は共有シークレットのある関数に適用することができる。その結果、又はその一部分を、パスコードとして使用できるアルファニューメリックキャラクタストリング(例えば、8個のキャラクタ)に変換することができる。パスコードの発生には種々の技術を使用できるが、アクセサリ及びコントローラは、一致するか又は相関されたパスコードを生じる技術を使用しなければならない。ブロック842及び844において、コントローラ及びアクセサリは、各々、それらの計算されたパスコードをユーザに与える。例えば、コントローラ200は、パスコードをそのディスプレイに表示することができる。プリンタアクセサリ(例えば、アクセサリ300)は、パスコードをそのユーザインターディスプレイに表示するか、又はパスコードを含むページをプリントすることができる。ユーザは、例えば、コントローラ及び/又はアクセサリの入力制御器を操作して一致を確認することにより、2つのパスコードを比較して、それらが一致することを確認できる。ブロック846及び848において、アクセサリ及びコントローラは、各々、この確認を受け取ることができる。ある実施形態では、ユーザは、一方の装置(例えば、コントローラ)のみのユーザインターフェイスを経て情報を与え、その装置は、プローブを送信することにより他方の装置(例えば、アクセサリ)へ確認を通信することができる。確認が受け取られない場合に、確認を受け取らない装置(一方又は両方)は、プロセス800を中断する。
【0086】
ある実施形態では、アクセサリは、パスコードを表示することができない。例えば、図1に示すスピーカアクセサリ120は、ディスプレイ装置をもたない。このようなケースでは、図9A−9Bを参照して以下に述べるパスワードベースの認証を使用することができる。
【0087】
パスコードが検証されたと仮定すると、ブロック850及び852において、コントローラ及びアクセサリは、各々、共有シークレットから付加的な暗号及び認証キーを発生することができる。このようなキーは、例えば、進歩型暗号規格(http://en.wikipedia.org/wiki/Advanced_Encryption_Standardにおいて文書化された“AES”)及び/又はポリ1305−AESメッセージ認証コード(http://cr.yp.to/mac.htmlにおいて文書化された)のような標準技術を使用して導出することができる。
【0088】
この点において、ペアリングが確立されると考えられ、そしてブロック850及び852で確立されたキーを使用するコントローラとアクセサリとの間のセキュアな通信が可能となる。メッセージをセキュアに送信及び受信するための特定のプロセスの例を以下に説明する。
【0089】
上述したように、プロセス800は、コントローラ及びアクセサリによりユーザへパスコードを与え、そしてパスコードが一致することを検証するようユーザに求めることを含む。ある実施形態において、ある装置にとってユーザにパスコードを与えるのは不便であり又は不可能なことがある。例えば、図1に示すスピーカアクセサリ120は、表示能力を含まず、そのような能力を追加することはできるが、そのようにすることは望ましくない(例えば、コスト又は審美的な理由で)。従って、ある実施形態では、動的なキーネゴシエーションに加えて又はそれに代わってパスワードベースの認証が与えられる。
【0090】
ある実施形態では、プロセス800は、ペアリングを確立するために交換されるプローブの数を減少するよう変更することができる。例えば、ブロック802においてコントローラにより送信される初期プローブ要求は、コントローラのパブリックキーCPUBを含み、そしてブロック808においてアクセサリにより送信される初期プローブ応答は、アクセサリのパブリックキーAPUBを含み、この場合に、ブロック824及び832における付加的なプローブの送信は、省略することができる。その後のステップにプローブが使用されず、例えば、ユーザが(ブロック846及び848において)各装置と対話してパスコードの一致を検証できる場合には、2つ程度のプローブ(コントローラからの1つの要求及びアクセサリからの1つの応答)でペアリングを生成することができる。
【0091】
図9A−9Bは、本発明の一実施形態によるパスワードベースの認証のためのプロセス900のフローチャートである。図8Aに示されたように、プロセス800及び900の両方を使用することができ、コントローラが、アクセサリにより与えられる情報に基づいて、どちらを使用するか決定する。他の実施形態では、プロセス800を具現化せずに、プロセス900を具現化することができ、この場合、全てのアクセサリがパスワードベースの認証をサポートする。
【0092】
プロセス900は、アクセサリがペアリングの生成を求めていることを指示するプローブ要求をコントローラがアクセサリから受け取った後に開始される。この場合のプローブ要求は、アクセサリがパスワードベースの認証を使用することを指示できる。ブロック902において、コントローラは、セッションIDを含むプローブ要求をアクセサリへ送信することができる。上述したように、セッションIDは、コントローラにより指定され、特定のアクセサリとのペアリングに特有のものである。
【0093】
ブロック904において、アクセサリは、プローブ要求を受け取る。この実施形態では、アクセサリは、メモリ、又はアクセサリにとってアクセス可能な他の記憶装置に持続的に記憶された固定の又はプリセットされたパスワードを有し(例えば、図4のアクセサリ400は、記憶媒体408に記憶された装置パスワード412を有し)、そしてブロック906において、アクセサリは、このパスワードを使用して、パブリックキー(APUB)を発生することができる。1つの実施形態では、アクセサリは、セキュアなリモートパスワード(http://srp.standford.edu/において文書化された“SRP”)を使用して、パブリックキーAPUBを発生する。ブロック908において、アクセサリは、例えば、SRPに適合するランダムソルトを発生する。ブロック910において、アクセサリは、パブリックキーAPUB及びランダムソルトを含むプローブ応答をコントローラへ送信する。このプローブ応答、及びその後の全てのプローブ要求又はプローブ応答は、ブロック902においてコントローラにより与えられるセッションIDも含むことができる。
【0094】
ブロック912において、コントローラは、アクセサリからプローブ応答を受け取る。ブロック914において、コントローラは、アクセサリのパスワードをコントローラへ入力するようにユーザを促す。この実施形態では、ユーザがアクセサリのパスワードを得ることができると仮定する。このパスワードは、例えば、アクセサリでパックされた文書において、アクセサリに添付されたデカールにおいて、アクセサリ本体に刻印されたパスワードとして、又は他の仕方で、ユーザに与えることができる。あるケースでは、アクセサリのシリアルナンバー又は他の独特の識別コードを、パスワードとして使用することができる。
【0095】
パスワードをユーザに通信するためにある範囲のオプションが与えられると、ブロック914において、アクセサリのパスワードをどこで見つけるかに関してユーザを促し又は思い出させることが有益である。ある実施形態では、アクセサリは、パスワードがどこにあるかの情報をコントローラに与えることができる。例えば、「左側」「右側」「上」「下」「前」「後」及び「文書」を指示するように、異なる位置コードを定義することができる。アクセサリは、ペアリングパートナーを探索するためにアクセサリが送信する初期プローブ要求、又はプロセス900のブロック910で送信されるプローブ応答のような、プローブ要求又はプローブ応答の情報エレメント(又は他のデータアイテム)に、適当な位置コードを含む。
【0096】
図10は、本発明の一実施形態によりコントローラに表示することのできるパスワードプロンプトを示す。ウインドウ1000は、プロンプトを含む。タイトルバー1002は、コントローラが接続を試みるアクセサリを識別し、そしてプロンプト1004は、テキストボックス1006にパスワードを入力するようユーザに求める。ティップ(TIP)メッセージ1008は、どこにパスワードがあるかユーザに知らせる。ある実施形態では、コントローラは、アクセサリから受け取ったプローブ要求又はプローブ応答から位置コードを読み取り、そして位置コードに基づいて適当なテキストを選択することにより、ティップメッセージ1008を発生することができる。
【0097】
再び、図9Aに戻ると、ブロック916において、コントローラは、ユーザ入力装置を経てパスワードを受け取る。ある実施形態では、ユーザは、パスワードを入力するのではなく、ペアリングプロセスをキャンセル又は中止するようにコントローラに命令することができる。ブロック918において、コントローラは、それ自身のパブリックキー(CPUB)を発生し、SRP又は他の技術を使用することができる。ブロック920において、コントローラは、アクセサリのパブリックキーAPUB、コントローラのパブリックキーCPUB、及びアクセサリから受け取ったランダムソルトに基づき、共有シークレットを計算する(例えば、SRPを使用して)。ブロック920において、コントローラは、アクセサリのパスワードを知っていることを証明する例えばSRPを使用して応答(CRESP)を計算する。
【0098】
プロセス900の残り部分が図9Bに示されている。ブロック924において、コントローラは、パブリックキーCPUB及び応答CRESPを含むプローブ要求を送信する。
【0099】
ブロック926において、アクセサリは、プローブ要求を受け取る。ブロック928において、アクセサリは、アクセサリのパブリックキーAPUB、コントローラのパブリックキーCPUB、及びブロック908(図9A)で発生されたランダムソルトに基づき、共有シークレットを計算する(例えば、SRPを使用して)。ブロック930において、アクセサリは、計算された共有シークレットを使用して、コントローラから受け取った応答CRESPを検証する。ある実施形態では、検証が失敗であると、プロセス900は、終了となる。検証が成功であったと仮定すれば、ブロック932において、アクセサリは、それ自身の応答(ARESP)を計算し、アクセサリのパスワードも知っていることを証明する。ブロック934において、アクセサリは、コントローラへのプローブ応答において応答ARESPを送信する。
【0100】
ブロック936において、コントローラは、プローブ応答を受け取り、そしてブロック938において、コントローラは、その応答ARESPを検証する。ブロック930の場合と同様に、ある実施形態では、検証の失敗は、プロセス900の終了となる。検証が成功すると、ブロック940において、コントローラは、共有シークレットに基づき、暗号及び認証キーを計算する。プロセス800と同様に、これらのキーは、各々、AES及びPoly1305−AESを使用して計算することができる。
【0101】
同様に、アクセサリがコントローラの応答(CRESP)を有効なものとすると、アクセサリは、ブロック942において、共有シークレットに基づき暗号及び認証キーを計算することもできる。
【0102】
この点において、ペアリングが確立され、そしてブロック940及び942で確立されたキーを使用するセキュアな通信が可能となる。メッセージをセキュアに送信及び受信する特定のプロセスの例を以下に説明する。
【0103】
ここに述べるペアリングプロセスは、例示に過ぎず、変更や修正が考えられることが明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加、又は省略されてもよい。例えば、種々のキーが発生される順序を変えてもよい。又、アクセサリ及びコントローラは、幾つかの計算を同時に遂行することができる。
【0104】
ここに述べる実施形態は、ペアリングを確立するのに使用できるプローブ要求及びプローブ応答の特定のシーケンスを識別するが、他の実施形態では、プローブの異なるシーケンスが使用されてもよい。(従って、プローブ間を区別する普通の番号、例えば「第1」「第2」等の使用は、単なる区別のために過ぎず、プローブ間の特定の時間的順序を要求するものではないことを理解されたい。)更に、明確に示されず、又、上述されてもいない付加的なプローブ要求及びプローブ応答も使用できる。例えば、IEEE802.11のようなあるプロトコルでは、プローブ要求を送信する装置は、ある期間内にプローブ応答を受け取ることが予想され、応答が受け取られない場合には、応答を待機しているプロセスが時間切れとなる。ある実施形態では、プローブ要求を受け取る装置は、プローブ要求の受信を確認する第1のプローブ応答であって、プローブ要求の送信者が応答をどれほど待機すべきか(例えば、情報エレメントを経て)指示する第1のプローブ応答を送信することができる。要求側装置は、指定の時間切れを使用して、要求を再送信し又はプロセスを中断するまでにどれほど応答を待機すべきか決定することができる。これは、応答側装置が、デフォールトの時間切れ期間より長くを要する計算を遂行できるようにし、即ち応答側装置は、要求側装置が完全な応答を待機すべきであることを指示するためのプローブ応答を時間切れ期間内に送信することができる。
【0105】
又、プロセス800及び900は、コントローラが、プローブ応答ではなく、プローブ要求のみを送信し、一方、アクセサリが、プローブ要求ではなくて、プローブ応答のみを送信するように具現化できることにも注意されたい。従って、コントローラは、プローブ要求を検出したりそれに応答したりする必要はない。
【0106】
特定の暗号化及び認証技術(AES、SRP、等)の識別は、例示に過ぎず、他の技術に置き換えることもできる。コントローラ及びアクセサリは、一方の装置が、他方の装置により送信されたメッセージを首尾良く認証し解読できるように、ペアリング内で両立する技術を使用することが予想される。
【0107】
ある実施形態では、コントローラが第1のアクセサリとのペアリングを確立するプロセスにある間に、第2のアクセサリがコントローラとのペアリングを試みることができる。例えば、図1の実施形態では、コントローラ100がスピーカ120とのペアリングを確立するプロセスにある間に、プリンタ110がペアリングプロセスの開始を求めるプローブ要求を送信する。コントローラ100は、種々の仕方でこの状態を取り扱うように構成することができる。
【0108】
ある実施形態では、第1のペアリングプロセスが開始されると、コントローラは、第1のプロセスに保持され、そしてその第1のプロセスが完了するか又は中止されるまで、ペアリングの開始を試みる更に別のプローブ要求を無視する。他の実施形態では、第1のプロセスがまだ続いている間に、ペアリングを開始する第2の要求が受け取られると、コントローラは、第1のプロセスを中止し、そして第2の要求に基づいて第2のペアリングプロセスを開始することができる。後者の設計選択は、ユーザがミスを犯すか、或いはペアリングプロセス中に心変りして、やり直したい場合に有益であり、即ちユーザは、第1のプロセスが完了するか又は時間切れするのを待機する必要がない。更に別の実施形態では、コントローラは、複数のペアリングプロセスを同時に管理するように構成される。
【0109】
同様に、アクセサリは、複数のコントローラからブラウジングプローブを受け取ることも考えられる。ある実施形態では、アクセサリは、ブラウジングプローブが受け取られたところの第1のコントローラに応答し、そしてその第1のコントローラとのペアリングが終了するまでその後のブラウジングプローブを無視することができる。他の実施形態では、ペアリングが進行中である(確立されたか又は確立されつつある)間にブラウジングプローブが受け取られる場合には、アクセサリは、現在のペアリングを終了し、そして最も新しいブラウジングプローブに応答することにより新たなペアリングプロセスを開始することができる。アクセサリがユーザインターフェイスを有する実施形態では、アクセサリは、新たなブラウジングプローブに応答して現在のペアリングを終了すべきかどうかに関してユーザを促すことができる。
【0110】
上述したように、プロセス800及び900は、コントローラとアクセサリとの間にペアリング、即ちセキュアなワイヤレスリンクを確立させる。各装置は、互いに他の装置を確認し、2つの装置は、ワイヤレス通信を監視する侵入者にとって決定することが困難な共有シークレットを確立することができる。ペアリングは、確立されると、セキュアな(暗号化及び/又は認証された)通信に使用することができる。図11及び12は、本発明の一実施形態によりワイヤレスペアリングを経てセキュアなメッセージを送信及び受信するためのプロセスのフローチャートである。
【0111】
図11は、本発明の一実施形態により送信者とペアリングされる受信者装置へメッセージを送信するために送信者(アクセサリ又はコントローラのいずれか)によって使用できるプロセス1100を示す。このプロセス1100は、例えば、上述したいずれかのプロセスを使用してペアリングが確立された後にスタートする(ブロック1102)。ブロック1104において、送信者は、セキュアに送信されるメッセージを準備する。これは、例えば、データを発生し、記憶された情報を検索し、データをフォーマット又はエンコードし、等々を含む。ブロック1106において、送信者は、ペアリングに関連した暗号キー(例えば、上述したいずれかのプロセスを使用して発生されたAESキー)を使用してメッセージを暗号化する。ブロック1108において、送信者は、認証の目的でナンスとして使用されるべき例えば16バイトのランダムデータを発生する。ブロック1110において、送信者は、メッセージ、ナンス、及びペアリングに関連した認証キー(例えば、上述したいずれかのプロセスを使用して発生されたPoly1305−AESコード)に基づいて認証子(データブロック)を発生する。
【0112】
ブロック1112において、送信者は、暗号メッセージ、ナンス、及び認証されたデータブロックを含むプローブ(プローブ要求又はプローブ応答)を送信する。これらアイテムは、プローブ内に情報エレメント又は他のデータエレメントとして含まれる。又、送信者は、ペアリングに関連したセッションIDもプローブに含むことができる。ある実施形態では、メッセージそれ自体が暗号化されるだけであり、セッションID及びナンスのような他のアイテムは、暗号化されない。(認証子は、暗号技術を使用して発生されるが、それ以上は暗号化されない。)プローブ要求が送信されると、プロセス1100は、終了となる(ブロック1114)。
【0113】
図12は、本発明の一実施形態により受信者とペアリングされる送信者装置からメッセージを受信するために受信者(コントローラ又はアクセサリのいずれか)により使用できるプロセス1200を示す。この例では、図11のプロセス1100を使用してメッセージが送信されると仮定する。プロセス1200は、例えば、上述したいずれかのプロセスを使用してペアリングが確立された後にスタートする(ブロック1202)。ブロック1204において、受信者は、ペアリングに関連したセッション識別子を含むプローブ(プローブ要求又はプローブ応答)を受け取る。ブロック1206において、受信者は、暗号メッセージ、ナンス、及び認証子ブロックをプローブから抽出する。ブロック1208において、受信者は、認証子及びナンスを、それ自身の認証キー(例えば、上述したPoly1305−AESコード)と一緒に使用して、メッセージの真正性を検証する。ブロック1210で真正性が検証された場合には、受信者は、ブロック1212において、暗号メッセージを解読するように進む。この実施形態では、ブロック1210で真正性が検証されない場合には、受信者は、メッセージを単に無視する。
【0114】
プロセス1200は、ブロック1214で終了となる。メッセージが認証されて解読されたと仮定すれば、受信者は、メッセージのコンテンツに基づく特定のアクションでメッセージに作用することができる。上述したように、プローブを使用して送信される暗号メッセージに、任意のタイプの構成情報、制御信号、又は他のデータを含ませることができる。ある実施形態では、メッセージに対する応答は、プローブを使用して送信者へ暗号メッセージを返送することを含む。この場合、受信者は、プロセス1100を使用して送信者となり、従って、同じ装置が、あるときは、送信者として、別のときは、受信者として動作することができる。
【0115】
ここに述べる通信プロセスは、例示に過ぎず、変更や修正が考えられることが明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加又は省略されてもよい。他の暗号技術を、ここに述べた技術に置き換えてもよい。
【0116】
プロセス1100及び1200を使用して、望ましい情報をアクセサリとコントローラとの間に通信することができる。ある実施形態では、コントローラは、アクセサリとペアリングする間に従来のワイヤレスネットワーク(例えば、IEEE802.11適合ネットワーク)に参加することができる。ペアリングが確立されると、コントローラは、セキュアなリンクを使用して、ワイヤレスネットワークに参加するのに必要なクレデンシャル(例えば、ネットワーク名およびパスワード)をアクセサリに与えることができる。
【0117】
図13は、本発明の一実施形態によりワイヤレスネットワークに参加するためにアクセサリ(例えば、図1のアクセサリ110又は120)により使用できるプロセス1300のフローチャートである。このプロセスでは、ワイヤレスネットワークがアクセスポイントにより管理されると仮定し、アクセスポイントは、他の装置がネットワークに参加してアクセスポイントを経て種々のリソース(例えば、インターネット)にアクセスできるかどうか決定するものである。
【0118】
プロセス1300は、ブロック1302で開始され、アクセサリは、それがワイヤレスネットワークへの参加を試みなければならないことを決定する。この決定は、装置の設定時に、ユーザ入力に応答して又は他の環境のもとで自動的に行うことができる。ブロック1304において、アクセサリは、アクセサリとのペアリングを確立できるコントローラからのブラウジングプローブ要求を聴取する。コントローラは、ネットワークアクセスポイントであるが、そうである必要はなく、そしてアクセサリがワイヤレスネットワークの存在又はそのアクセスクレデンシャルに関する情報を有することは要求されない。
【0119】
ブロック1306において、アクセサリは、ブラウジングプローブが検出されたかどうか決定する。ブラウジングプローブが検出されない場合には、アクセサリは、聴取を続ける(ブロック1304)か、又はプロセス1300を終了する。ブラウジングプローブが検出された場合には、ブロック1308において、アクセサリは、(例えば、更に別のプローブを使用して)コントローラと通信して、ペアリングを確立する。例えば、上述したプロセス800及び/又は900を使用することができる。
【0120】
ペアリングが確立されると、ブロック1310において、アクセサリは、ペアリングリンクを経てコントローラからワイヤレスネットワークのクレデンシャル(例えば、ネットワーク名及びパスワード)を得ることができる。例えば、上述したプロセス1100及び1200は、コントローラによりアクセサリへ送信される暗号メッセージ、例えば、プローブ要求に、ワイヤレスネットワーククレデンシャルが含まれるようにして、使用することができる。コントローラは、クレデンシャルをアクセサリへ供給するときにワイヤレスネットワークに参加できるが、そのようにする必要はない。ある実施形態では、アクセサリは、ネットワーククレデンシャルを明確に要求せず、コントローラは、ペアリングが確立されると、クレデンシャルを自動的に(例えば、プローブ要求において)送信するように構成される。他の実施形態では、ブロック1310は、例えば、プローブを使用して、クレデンシャルの要求をコントローラへ送信することを含む。
【0121】
ブロック1312において、アクセサリは、ワイヤレスネットワーククレデンシャルをネットワークアクセスポイントへ送信する。WEP、WPA又はWPA2(IEEE802.11適合ネットワークの場合)のような従来の技術を使用して、クレデンシャル又はクレデンシャルから導出された情報をアクセスポイントへセキュアに送信することができる。
【0122】
ブロック1314において、アクセサリは、それが首尾良くネットワークに参加したかどうかに関する情報を待機する。もしそうでなければ、プロセス1300は、ブロック1316において終了となるか、又はアクセサリが再試みとなる(例えば、ブロック1312へ戻ってクレデンシャルを再送信するか、又はブロック1310へ戻って新たなクレデンシャルを得る)。
【0123】
ネットワークに参加した後、アクセサリは、ワイヤレスネットワークプロトコルを使用してネットワーク上の他の装置と通信する(ブロック1318)。ある実施形態では、コントローラとのペアリングは、アクセサリがワイヤレスネットワークに参加すると終了となる。他の実施形態では、ペアリングセッションが不定にオープンのままであり、コントローラ及びアクセサリは、いずれかの装置がワイヤレスネットワークに参加したままであるかどうかに関わらず、側波帯で通信することが許される。
【0124】
ある実施形態では、ユーザは、コントローラと対話することによりペアリング及びネットワーク参加プロセスを制御することができる。図14は、本発明の一実施形態によりアクセサリをワイヤレスネットワークに容易に参加させるためにコントローラにより実行できるプロセス1400のフローチャートである。
【0125】
プロセス1400は、コントローラがワイヤレスアクセサリとペアリングする準備ができたときにスタートする(ブロック1402)。例えば、ユーザは、ワイヤレス装置と通信するための制御インターフェイスをなすコントローラのアプリケーションプログラムを起動することができる。ある実施形態では、このプログラムは、ワイヤレスネットワークを経てアクセサリへデジタルメディアデータをストリーミングできるメディアアセット再生プログラムである(例えば、本出願の譲受人であるアップル社により提供されるiTunes(登録商標)メディアアセット管理プログラム)。
【0126】
ブロック1404において、コントローラは、ワイヤレスアクセサリを探索するためのインストラクションをユーザから受け取る。例えば、ユーザは、アプリケーションプログラムと対話して、ワイヤレスアクセサリをサーチするようにコントローラに命令することができる。ブロック1406において、コントローラは、ブラウジングプローブをブロードキャストし、例えば、コントローラがペアリングすべきアクセサリをサーチしていることを指示するプローブ要求をブロードキャストする。
【0127】
ブロック1408において、コントローラは、アクセサリからプローブ応答を受け取る。上述したように、このプローブ応答は、アクセサリに関する情報を含むことができる。ブロック1410において、コントローラは、アクセサリに関する情報(例えば、プローブ応答から抽出された情報)をユーザに表示する。ブロック1412において、コントローラは、ペアリングを行うべきであるという確認をユーザから受け取る。この確認が受け取られない場合には、プロセス1400は、終了となるか(ブロック1414)又はブロック1406へ戻って、異なるアクセサリからのプローブ要求をサーチする。
【0128】
ブロック1412において確認が受け取られると、コントローラは、ブロック1416においてアクセサリとのキーネゴシエーションプロセス(例えば、上述したプロセス800)を開始する。ブロック1418において、キーネゴシエーションの一部分として、コントローラは、例えば、上述したように、ユーザ確認のためのパスコードを表示することができる。ブロック1420において、ユーザは、パスコードを確認する。パスコードが確認されない場合には、プロセス1400は、ブロック1422で終了となるか又は前のブロックへ戻って再び試みることができる。パスコードが確認される場合には、コントローラは、ブロック1424において、ペアリングを完了する(例えば、プロセス800を完了する)。ある実施形態では、ペアリングを完了することは、ペアリングが確立されたことを確認するためにプローブをアクセサリへ送信することを含む。
【0129】
ペアリングが確立されると、ブロック1426において、コントローラは、例えば、上述したプロセス1100及び1200を使用して、ペアリングリンクを経てアクセサリへワイヤレスネットワーククレデンシャルを送信し、そのワイヤレスネットワーククレデンシャルは、例えば、プローブ要求において、コントローラによりアクセサリへ送信される暗号メッセージに含まれる。ある実施形態では、コントローラは、ユーザ入力を得て、アクセサリが参加すべきネットワークを選択するか、或いはコントローラが既に参加しているワイヤレスネットワーク、又は(例えば、ユーザにより)以前に識別された好ましいワイヤレスネットワークを自動的に選択することができる。又、ある実施形態では、コントローラは、ペアリングが確立されると、(例えば、プローブ要求において)クレデンシャルをアクセサリへ自動的に送信するように構成できる。他の実施形態では、ブロック1426は、アクセサリからクレデンシャルの要求を受け取ることを含み、そのような要求は、プローブを使用してペアリングリンクを経て送信することができる。
【0130】
ブロック1428において、コントローラは、アクセサリがネットワークに参加したかどうか決定する。もしそうでなければ、プロセス1400は、ブロック1430で終了となるか、又は前の段階へ戻って再試みするか、或いはプロセス1400は、ブロック1428において、アクセサリが参加するまで又は他のユーザインストラクションが受け取られるまで待機となる。アクセサリがネットワークに参加すると、コントローラは、ブロック1432においてワイヤレスネットワークを経てアクセサリと通信し、例えば、メディアデータをアクセサリへストリーミングする。
【0131】
上述したように、ある実施形態では、キーネゴシエーションではなくパスワードベースの認証を使用してペアリングを確立することができる。図15は、本発明の一実施形態により、パスワードベースの認証をサポートするアクセサリの、ワイヤレスネットワークへの参加を容易にするためにコントローラにより実行できるプロセス1500のフローチャートである。
【0132】
プロセス1500は、コントローラがワイヤレスアクセサリとペアリングする準備ができたときにスタートする(ブロック1502)。ブロック1504において、コントローラは、ワイヤレスアクセサリを探索するためのインストラクションをユーザから受け取る。ブロック1506において、コントローラは、ブラウジングプローブをブロードキャストし、又、ブロック1508において、コントローラは、アクセサリからプローブ応答を受け取る。これらブロックは、上述したプロセス1400における対応ブロックと一般的に同様である。
【0133】
ブロック1510において、コントローラは、アクセサリに関する情報をユーザに表示する。この例では、ブロック1508で受け取られたアクセサリからのプローブ応答は、アクセサリがパスワードベースの認証を使用するという指示を含み、又、ブロック1512において、コントローラは、例えば、図10のプロンプトスクリーンを使用して、アクセサリパスワードを入力するようにユーザを促す。ブロック1514において、パスワードの入力は、コントローラが処理を進めるべきであるという確認として働き、パスワードが入力されない(例えば、ユーザが動作をキャンセルした)場合には、プロセス1500は、ブロック1516において終了となる。
【0134】
ブロック1518において、コントローラは、(例えば、前記プロセス900により)ブロック1510でユーザにより供給されたパスワードに一部分基づいてアクセサリとのペアリングを確立する。
【0135】
セキュアなペアリングリンクが確立されると、ブロック1520において、コントローラは、そのリンクを経てアクセサリへワイヤレスネットワーククレデンシャルを送信する。これは、上述したプロセス1400のブロック1426と一般的に同様である。
【0136】
ブロック1522において、コントローラは、アクセサリがネットワークに参加したかどうか決定する。もしそうでなければ、プロセス1500は、ブロック1524において終了となるか、又は前の段階へ戻って再試みとなるか、或いはコントローラは、ブロック1522において、アクセサリが参加するまで又は他のユーザインストラクションが受け取られるまで待機となる。アクセサリがネットワークに参加すると、コントローラは、ブロック1526において、ワイヤレスネットワークを経てアクセサリと通信し、例えば、アクセサリへメディアデータをストリーミングさせる。
【0137】
ここに述べるネットワーク参加プロセスは、例示に過ぎず、変更や修正が考えられることは明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加、又は省略されてもよい。アクセサリ及びコントローラは、ペアリングを確立するための種々の技術を使用して、アクセサリが参加できるワイヤレスネットワークのクレデンシャルをアクセサリが得られるようにする。更に、コントローラは、ワイヤレスネットワークのクレデンシャルをアクセサリに与えるものとして説明されたが、ここに述べるペアリングは、両方向通信をサポートできることが明らかであり、又、アクセサリが、ネットワークのクレデンシャル(又は他の構成情報又は制御信号)をコントローラに与えることもできる。
【0138】
本発明は、特定の実施形態について説明したが、当業者であれば、多数の変更が考えられることが明らかであろう。例えば、本発明は、IEEE802.11適合のワイヤレスネットワークの環境において、そのようなネットワークについて定義されたプローブ要求及びプローブ応答フレームを、上述した種々のデータアイテムを与えるために含まれるベンダー特有の情報エレメントと共に使用して実施できることが意図されるが、他のワイヤレスプロトコル(既存のもの又は将来のもの)も、ネットワークにまだ参加していない装置間で情報を通信するのに使用できるメッセージフォーマットを含み得ることが意図される。本発明の実施形態は、そのようなプロトコルにも適応させることができる。従って、特定の情報がプローブ要求又はプローブ応答に含まれるものとしてここに説明されたが、そのような使用は例示に過ぎず、一般的な語「プローブ」は、プローブ要求及びプローブ応答や、共通のネットワークに現在参加していない2つのワイヤレス装置間で交換できる他のメッセージフォーマットも包含するものと理解されたい。
【0139】
上述した実施形態では、ペアリングプロセスは、コントローラがブラウジングプローブ要求をブロードキャストすることで開始でき、アクセサリは、ペアリング中にそれに応答する。上述したように、このような実施形態におけるコントローラは、プローブ要求を受け取り又はそれに応答する必要はない。別の実施形態では、ペアリングプロセスは、アクセサリがプローブ要求をブロードキャストすることで開始でき、コントローラは、それに応答して、アクセサリとのペアリングに利用できることを指示する。
【0140】
更に、説明上、特定の暗号技術を参照したが、コントローラ及びアクセサリが両立する技術を使用するならば、本発明は、その特定の暗号技術に限定されないことを理解されたい。
【0141】
上述した実施形態は、特定のハードウェア及びソフトウェアコンポーネントを参照したが、当業者であれば、ハードウェア及び/又はソフトウェアコンポーネントの異なる組み合わせも使用でき、且つハードウェアで具現化されると説明された特定の動作をソフトウェアで具現化することもできるし、又はその逆も行えることが明らかであろう。
【0142】
回路、論理モジュール、プロセッサ、及び/又は他のコンポーネントは、ここに述べる種々の動作を遂行するように構成される。当業者であれば、具現化によって、このような構成は、特定のコンポーネントの設計、設定、相互接続及び/又はプログラミングを通して達成することもできるし、且つ具現化によって、構成されたコンポーネントは、異なる動作に対して再構成できてもできなくてもよいことが明らかであろう。例えば、プログラム可能なプロセッサは、適当な実行可能なコードを与えることにより構成でき、専用のロジック回路は、ロジックゲート及び他の回路素子を適当に接続することにより構成でき、等々である。
【0143】
本発明の種々の特徴を組み込んだコンピュータプログラムは、種々のコンピュータ読み取り可能な記憶媒体においてエンコードされ、適当な媒体は、磁気ディスク又はテープ、コンパクトディスク(CD)又はDVD(デジタル多様性ディスク)のような光学的記憶媒体、フラッシュメモリ、等を含む。プログラムコードでエンコードされるコンピュータ読み取り可能な記憶媒体は、両立性装置でパッケージされてもよいし、又は他の装置とは個別に設けられてもよい。更に、プログラムコードは、インターネットを含む種々のプロトコルに適合するワイヤード、光学、及び/又はワイヤレスネットワークを経てエンコード及び送信され、例えば、インターネットのダウンロードを経て配布することができる。
【0144】
従って、本発明は、特定の実施形態について説明したが、特許請求の範囲内に含まれる全ての変更や等効物を包含することが明らかであろう。
【符号の説明】
【0145】
100:コントローラ
110:アクセサリ(プリンタ)
112、122:ペアリング
120:アクセサリ(ステレオスピーカ)
200:コントローラ
202:プロセッサ
204:ユーザインターフェイス
206:ワイヤレスインターフェイス
208:記憶媒体
210:ネットワーククレデンシャル
300:アクセサリ
302:プロセッサ
304:ユーザインターフェイス
306:ワイヤレスインターフェイス
308:記憶媒体
310:プリンティング要素
400:アクセサリ
402:プロセッサ
406:ワイヤレスインターフェイス
408:記憶媒体
410:スピーカ
412:装置パスワード
【技術分野】
【0001】
本発明は、一般に、電子装置間のワイヤレス通信に係り、より詳細には、2つの装置間のセキュアなワイヤレスリンクに係る。
【背景技術】
【0002】
ワイヤレスネットワークが至る所に存在してきている。インスティテュート・オブ・エレクトリカル・アンド・エレクトロニックス・エンジニアズ(IEEE)は、電子装置が互いに通信できるようにするための“WiFi”とも称される802.11規格群を発布した。これら規格(802.11a、802.11b、802.11g及び802.11nを含む)は、装置間で情報を通信するための周波数、変調、データレート及びメッセージフォーマットを規定している。一般的に、802.11適合のワイヤレスネットワーク(「WiFiネットワーク」とも称される)では、WiFiネットワークを管理する指定の「アクセスポイント」が、しばしば、インターネットへのワイヤード接続と共に存在する。他の動作の中で、アクセスポイントは、ネットワーク装置間にメッセージをルーティングすることができる。WiFiネットワークは、アクセスポイントが周期的にブロードキャストできる名前(アクセスポイントと対話するネットワークアドミニストレーターにより一般的に構成可能である)を有し、そしてその名前を知っているか又はアクセスポイントのブロードキャストメッセージからネットワーク名を発見する装置が、アクセスポイントに「参加(join)」要求を送信することによりネットワークに参加することができる。一般的に、アクセスポイントは、ネットワークに参加した装置間のみにメッセージをルーティングする。
【0003】
当然、ワイヤレス信号は、容易に傍受される。従って、WiFi規格は、ワイヤード・イクイバレント・プライバシー(WEP)、WiFiプロテクテッド・アクセス(WPA)、及びIEEE802.11i(“WPA2”としても知られている)のような種々のセキュリティプロトコルを与える。これらのプロトコルは、ネットワークを経て送られる情報が暗号化されるようにすると共に、使用すべき特定の暗号技術を指定する。WiFiネットワークアクセスポイントは、特定のセキュリティプロトコルに対して構成することができる。
【0004】
一般的に、セキュアなWiFiネットワークに参加する装置は、メッセージを暗号化し解読するのに使用できるネットワーク特有のパスワード又はキーを知る必要がある。このパスワード又はキーは、一般的に、装置間でワイヤレス通信されないが、セキュアなWiFiネットワークのアクセスポイントは、ネットワークへの参加を試みる装置が、例えば、ランダムチャレンジを正しく暗号化することにより、パスワード又はキーを知っていることを証明することを要求する。セキュアなWiFiネットワークにコンピュータを接続するために、ユーザは、例えば、コンピュータで実行されるネットワークコンフィギュレーションプログラムにより発生されたプロンプトに応答して、ネットワークアドミニストレーターからパスワードを得て、それをコンピュータに入力することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、最近、WiFiイネーブル型装置の世界は、ある範囲の周辺装置を含ませるためにコンピュータを越えて拡張し始めた。例えば、通信のために802.11規格を使用するワイヤレスプリンタが開発された。ある周辺装置は、限定されたユーザインターフェイスしかもたず、ユーザがWiFiネットワークのためのパスワード又はキーを装置へ入力することを困難又は不可能にする。多くの場合、先ず、ワイヤードインターフェイス(例えば、USB)を経て周辺装置をコンピュータへ接続して、WiFiインターフェイスを構成し、次いで、周辺装置をワイヤレス動作モードにスイッチすることが必要となる。
【課題を解決するための手段】
【0006】
本発明の幾つかの実施形態は、ネットワークにまだ参加していない装置間でメッセージを交換するためのワイヤレスネットワークプロトコルのサポートをレバレッジすることにより2つの装置(ここでは「コントローラ」及び「アクセサリ」と称される)間にセキュアなワイヤレスリンク(ここでは「ペアリング」と称される)を確立するための技術を提供する。このようなメッセージは、ここでは「プローブ要求」及び「プローブ応答」又はより一般的に「プローブ」と称される。IEEE802.11規格に基づくワイヤレスネットワークのケースでは、プローブ要求及びプローブ応答フレームをプローブとして使用することができる。ここに使用するプローブは、コンピュータ、移動装置、周辺装置、等を含む2つのWiFiイネーブル型装置間でメッセージのシーケンスを交換するのに使用できるものである。そのシーケンスは、2つの装置間に共有シークレットを確立するのに使用できるメッセージを含むことができ、共有シークレットが確立されると、2つの装置は、これに限定されないが、装置の1つがワイヤレスネットワークに参加できるようにする情報(例えば、ネットワーク名及びパスワード又は他のクレデンシャル)を含む他のメッセージをセキュアに通信することができる。
【0007】
適当に構成されたワイヤレスインターフェイスを伴う2つの装置がペアリングを確立することができる。ここに述べる幾つかの実施形態では、1つの装置(コントローラ)は、それとペアになり得る装置をサーチしていることを通知するために初期プローブをブロードキャストすることができる。別の装置(アクセサリー)は、ペアリングを要求する別のプローブで初期プローブに応答することができる。2つの装置は、共有シークレットを確立し、及び/又は他方が同じ共有シークレットを有することを検証できる。ある実施形態では、共有シークレットは、更に別のプローブを交換することにより確立され及び/又は検証される。他の実施形態では、共有シークレットを確立するのに必要な全ての情報をプローブの初期交換において与えることができ、そしてユーザ確認のような別のメカニズムを通して共有シークレットを検証することができる。各装置は、共有シークレットを使用して、付加的な暗号及び認証キーを発生することができる。これらのキーは、付加的なプローブ要求及びプローブ応答を使用して装置間に送信できるメッセージコンテンツをセキュアなものにする(例えば、暗号化及び/又は認証する)ために使用することができる。
【0008】
ある実施形態では、装置間で交換されるセキュアなものとされたメッセージコンテンツは、セキュアなワイヤレスネットワークに参加するのに必要なクレデンシャル、例えば、ネットワーク名及びパスワード又はキーを含むことができる。例えば、限定されたユーザインターフェイスを伴うアクセサリ(例えば、WiFiイネーブル型プリンタ)は、コントローラ(例えば、WiFiイネーブル型パーソナルコンピュータ)とのペアリングを確立し、そのペアリングを経て、コントローラが現在参加しているワイヤレスネットワークのためのクレデンシャルを得ることができる。アクセサリは、次いで、これらのクレデンシャルを使用して、ワイヤレスネットワークに参加することができる。アクセサリがワイヤレスネットワークに参加すると、アクセサリ及びコントローラは、そのネットワークを経て互いに又は他の装置と通信することができる。この点において、ペアリングを終了できるか、又はペアリングリンクを側波帯通信経路として維持することができる。
【0009】
ある実施形態では、ペアリングプロセスは、ほぼ自動化することができ、ユーザの介在をほとんど又は全く必要としない。ユーザの介在は、アクセサリとコントローラとの間のパスコード一致を検証するか、又は一方の装置(例えば、アクセサリ)により与えられたパスワードを他方の装置(例えば、コントローラ)に入力する程度の簡単なものとなる。
【0010】
本発明の1つの態様は、アクセサリとコントローラとの間にワイヤレス通信リンクを確立するための方法に係る。コントローラは、コントローラがペアリングすべきアクセサリをサーチしていることを指示するために第1のプローブをブロードキャストすることができる。アクセサリは、その第1のプローブを受け取り、そしてアクセサリに関する情報を与える第2のプローブで応答する。コントローラ及びアクセサリは、アクセサリにより送信される第3のプローブ及びコントローラにより送信される第4のプローブを含む付加的なプローブを使用して各パブリックキーを交換することにより共有シークレットを確立することができる。コントローラ及びアクセサリの各々は、他の装置が同じシークレットを共有することを確認し、そしてその共有したシークレットを使用して更に別の暗号キーを発生することができる。その後、いずれかの装置が、その更に別の暗号キーを使用してメッセージを暗号化し、そしてその暗号化したメッセージを第5のプローブ内で送信することにより、他方の装置へメッセージを送信することができる。受信側の装置は、その暗号化されたメッセージを第5のプローブから抽出し、そしてその更に別の暗号キーを使用してそれを解読することができる。ある実施形態では、暗号化されたメッセージは、認証データと共に送信され、受信者がメッセージの発信点及び完全性を検証できるようにする。
【0011】
本発明の第2の態様は、ワイヤレスインターフェイスを有するアクセサリに係る。ワイヤレスインターフェイスに結合されたプロセッサは、コントローラと通信して、プローブのシーケンスを使用してペアリングを確立し、そのペアリングを経てコントローラからワイヤレスネットワークに参加するためのクレデンシャルを得、そしてそのクレデンシャルを使用して、ワイヤレスネットワークに参加するように構成することができる。その後、コントローラも同じワイヤレスネットワークにあると仮定すれば、アクセサリ及びコントローラは、ワイヤレスネットワークを経て及び/又はペアリングを経て通信することができる。ある実施形態では、アクセサリは、最小限のユーザインターフェイスを有するか、又はユーザインターフェイスをもたず、必要に応じて、ユーザは、コントローラと対話することにより、アクセサリのペアリング及びネットワーク参加の振舞いを制御することができる。
【0012】
本発明の別の態様は、ワイヤレスインターフェイス及びユーザインターフェイスを有するコントローラに係る。ワイヤレスインターフェイス及びユーザインターフェイスに結合されたプロセッサは、アクセサリと通信し、プローブのシーケンスを使用してペアリングを確立するように構成することができる。ペアリングの確立は、ユーザインターフェイスを経てユーザと通信して、アクセサリがワイヤレスネットワークに参加し及び/又はペアリングの確立に使用するアクセサリ用のパスワードを得ることが許されねばならない旨の確認をすることを含む。ペアリングが確立されると、コントローラは、ワイヤレスネットワークに参加するためのクレデンシャルをアクセサリへセキュアに(例えば、アクセサリへ送られるプローブに含まれる暗号化されたメッセージとして)送信することができる。アクセサリがワイヤレスネットワークに参加すると、コントローラ及びアクセサリは、ワイヤレスネットワークを経て及び/又はペアリングを経て通信することができる。
【0013】
本発明の特徴及び効果を良く理解するために添付図面を参照して以下に詳細に本発明を説明する。
【図面の簡単な説明】
【0014】
【図1】本発明のある実施形態に使用される動作原理を示す。
【図2】本発明の一実施形態によるコントローラのブロック図である。
【図3】本発明の一実施形態によるアクセサリのブロック図である。
【図4】本発明の別の実施形態によるアクセサリのブロック図である。
【図5】本発明のある実施形態に使用可能なプローブフレーム構造体のブロック図である。
【図6】本発明の一実施形態によりコントローラとのペアリングを確立するためにアクセサリにより使用可能なプロセスのフローチャートである。
【図7】本発明の一実施形態によりアクセサリとのペアリングを確立するためにコントローラにより使用可能なプロセスのフローチャートである。
【図8A】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図8B】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図9A】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図9B】本発明の一実施形態によりコントローラとアクセサリとの間にペアリングを確立するためのプロセスのフローチャートである。
【図10】本発明の一実施形態によりコントローラに表示することのできるパスワードプロンプトを示す。
【図11】本発明の一実施形態により送信者(アクセサリ又はコントローラのいずれか)により使用されて、送信者とペアリングされる受信者の装置へメッセージを送信できるプロセスを示す。
【図12】本発明の一実施形態により受信者(コントローラ又はアクセサリのいずれか)により使用されて、受信者とペアリングされる送信者の装置からメッセージを受信できるプロセスを示す。
【図13】本発明の一実施形態によりワイヤレスネットワークに参加するためにアクセサリにより使用できるプロセスのフローチャートである。
【図14】本発明の一実施形態によりワイヤレスネットワークへのアクセサリの参加を容易にするためにコントローラにより実行できるプロセスのフローチャートである。
【図15】本発明の一実施形態によりワイヤレスネットワークへのアクセサリの参加を容易にするためにコントローラにより実行できるプロセスのフローチャートである。
【発明を実施するための形態】
【0015】
本発明の幾つかの実施形態は、ネットワークにまだ参加していない装置間でメッセージを交換するためのワイヤレスネットワークプロトコルのサポートをレバレッジすることにより2つの装置(ここでは「コントローラ」及び「アクセサリ」と称される)間にセキュアなワイヤレスリンク(ここでは「ペアリング」と称される)を確立するための技術を提供する。このようなメッセージは、ここでは「プローブ要求」及び「プローブ応答」又はより一般的に「プローブ」と称される。
【0016】
例えば、IEEE802.11規格では、「フレーム」と称される構造でメッセージが送信される。この規格は、参加するネットワークをサーチしている装置がブロードキャストできるプローブ要求フレームと、プローブ要求を受け取るアクセスポイントにより送信できるプローブ応答フレームとを定義する。このように、装置は、利用可能なワイヤレスネットワークを自動的に識別することができる。この規格によれば、プローブ要求又はプローブ応答要求は、「情報エレメント」を合体することができ、そのコンテンツは、特定のベンダーにより定義することができる。
【0017】
本発明のある実施形態は、コンピュータ及び周辺装置を含む2つのWiFiイネーブル型装置間でのメッセージのシーケンスの交換をサポートするためにIEEEプローブ要求及びプローブ応答フレームのベンダー特有情報エレメントをレバレッジする。そのシーケンスは、2つの装置間に共有シークレットを確立するメッセージを含むことができ、共有シークレットが確立されると、2つの装置は、これに限定されないが、一方の装置が標準的WiFiネットワークに参加できるようにする情報を含むその他のメッセージをセキュアに通信することができる。
【0018】
適当に構成されたワイヤレスインターフェイスを伴う2つの装置は、ペアリングを確立することができる。ここに述べる幾つかの実施形態において、一方の装置(コントローラ)は、それとペアリングできる装置をサーチしていることを通知するために初期「ブラウジング」プローブをブロードキャストすることができる。このブラウジング信号は、802.11プローブ要求フレームの情報エレメント又は別のタイプのプローブ要求内に含ませることができる。他方の装置(アクセサリ)は、アクセサリ識別情報を含む識別プローブでブラウジングプローブに応答することができる。その識別情報は、802.11プローブ応答フレームの情報エレメント又は別のタイプのプローブ内に含ませることができる。2つの装置は、共有シークレットを確立し、及び/又は他方が同じ共有シークレットを有することを検証することができる。ある実施形態では、共有シークレットは、更に別のプローブを交換することにより確立及び/又は検証することができる。他の実施形態では、共有シークレットを確立するのに必要な全ての情報をプローブの初期交換において与えることができ、そしてユーザ確認のような別のメカニズムを通して共有シークレットを検証することができる。各装置は、次いで、共有シークレットを使用して、付加的な暗号及び認証キーを発生することができる。これら後者のキーは、付加的なプローブ要求及びプローブ応答を使用して装置間に送信できるメッセージコンテンツをセキュアなものにする(例えば、暗号化及び/又は認証する)のに使用することができる。例えば、セキュアなものにされた(例えば、暗号化された)メッセージコンテンツは、IEEE802.11プローブ要求又はプローブ応答フレーム内の情報エレメントに含ませることができる。
【0019】
ある実施形態では、装置間で交換されるセキュアなものとされたメッセージコンテンツは、セキュアなワイヤレスネットワークに参加するのに必要なクレデンシャル、例えば、ネットワーク名及びパスワード又はキーを含むことができる。例えば、限定されたユーザインターフェイスを伴うアクセサリ(例えば、WiFiイネーブル型プリンタ)は、コントローラ(例えば、WiFiイネーブル型パーソナルコンピュータ)とのペアリングを確立し、そのペアリングを経て、コントローラが現在参加しているワイヤレスネットワークのためのクレデンシャルを得ることができる。アクセサリは、次いで、これらのクレデンシャルを使用して、ワイヤレスネットワークに参加することができる。アクセサリがワイヤレスネットワークに参加すると、アクセサリ及びコントローラは、そのネットワークを経て互いに又は他の装置と通信することができる。この点において、ペアリングを終了できるか、又はペアリングリンクを側波帯通信経路として維持することができる。
【0020】
ある実施形態では、ペアリングプロセスは、ほぼ自動化することができ、ユーザの介在をほとんど又は全く必要としない。ユーザの介在は、アクセサリとコントローラとの間のパスコード一致を検証するか、又は一方の装置(例えば、アクセサリ)により与えられたパスワードを他方の装置(例えば、コントローラ)に入力する程度の簡単なものとなる。
【0021】
図1は、本発明のある実施形態に使用される動作原理を示す。図1には、コントローラ100、この場合、パーソナルコンピュータと、アクセサリ110(例えば、プリンタ)及び120(例えば、ステレオスピーカ)とが示されている。コントローラ100及びアクセサリ110、120は、各々、標準的WiFiカードのようなワイヤレス通信インターフェイスと、種々の他のコンポーネントとを含み、その幾つかの例を以下に詳細に述べる。
【0022】
コントローラ100及びアクセサリ110は、プローブ要求及びプローブ応答に埋め込まれたメッセージを交換することによりセキュアな直接通信リンク(ペアリングとも称される)112を確立することができる。又、「プローブ」という語は、ここでは、プローブ要求及びプローブ応答の両方を交換可能に包含するように使用される。ペアリング112が確立されると、コントローラ100及びアクセサリ110は、付加的なプローブを使用して、暗号化されたメッセージを互いに送信することができる。同様に、コントローラ100及びアクセサリ110は、プローブに埋め込まれたメッセージを交換することによりペアリング122を確立することができる。ペアリング122が確立されると、コントローラ100及びアクセサリ110は、付加的なプローブを使用して、暗号化されたメッセージを互いに送信することができる。
【0023】
プローブは、ワイヤレス送信され、そしてアクセサリ110は、ペアリング122に関連したプローブを検出する。同様に、アクセサリ120は、ペアリング112に関連したプローブを検出することができる。セキュリティを与えるために、ペアリングが確立されると、特定のペアリングに特有の仕方でメッセージを暗号化することができ、従って、例えば、ペアリング112は、ペアリング122から異なる暗号キーを与えることができる。その結果、アクセサリ110は、ペアリング122に関連したプローブに含まれたメッセージを解読することができない。(同様に、アクセサリ120は、ペアリング112に関連したプローブに含まれたメッセージを解読することができない。)ペアリングに特有の暗号キーを確立することを含めて、ペアリングを確立するための技術の特定の例を以下に説明する。
【0024】
図1に示すように、ある実施形態では、単一のコントローラを複数のアクセサリと同時にペアリングさせることができる。ある実施形態では、コントローラ100は、一度に1つのペアリングのみを確立するプロセスにあり、しかしながら、1つのペアリング(例えば、ペアリング122)が確立されると、コントローラ110は、その第1のペアリングが利用可能である間に、第2のペアリング(例えば、ペアリング122)を確立することができる。他の実施形態では、コントローラ100が受信メッセージのソースを確実に決定できるに充分な識別情報がプローブ要求及びプローブ応答に含まれ、且つ各アクセサリが、それ又は別の装置が受信メッセージのターゲットであるかどうか決定できる場合に、コントローラ100は、複数のペアリングを同時に確立することができる。更に別の実施形態では、コントローラ100は、一度に1つのアクセサリとのペアリングを確立することに限定される。従って、例えば、アクセサリ110がコントローラ100とのペアリングを開始する場合、アクセサリ120は、ペアリング112が完全に確立されるまで待機することが要求される。別の実施形態において、アクセサリ110がそのペアリングを確立するプロセス中にアクセサリ120がコントローラ100とのペアリングを開始するよう試みる場合に、コントローラ100は、アクセサリ120からのペアリング要求に応じるためにアクセサリ110との通信を終了する。又、ペアリング動作をプライオリティ決めする他のルールを使用することもできる。
【0025】
図1に示す装置は、例示に過ぎず、変更や修正が考えられることが明らかである。例えば、コントローラ100は、パーソナルコンピュータとして描かれているが、コントローラ100は、これに限定されないが、ラップトップコンピュータ、タブレットコンピュータ、スマートホン、移動通信又はコンピューティング装置、等の別のタイプの装置でもよい。更に、コントローラ100は、顕著なコンピューティング能力を含む必要がなく、ここに述べるコントローラ動作を遂行できる装置であれば、コントローラとして使用することができる。
【0026】
同様に、アクセサリ110及び120は、各々、プリンタ及び一対のステレオスピーカとして描かれているが、ワイヤレス通信インターフェイスを伴う装置を含む他のタイプのアクセサリも使用できる。アクセサリである装置の他の例は、周辺装置、カメラ、電子医療装置を含むパーソナル電子装置、及び家庭用機器を含む。コントローラ100と同様に、ここに述べるアクセサリ動作を遂行できる装置は、アクセサリとして使用することができる。明らかなように、「アクセサリ」とは、ペアリングプロセス中に、アクセサリがコントローラから初期プローブ要求を受け取ってそれに応答するという点で、コントローラと区別される。
【0027】
ある実施形態では、アクセサリは、限定されたユーザインターフェイスを有するか又はユーザインターフェイスをもたない装置である。例えば、スピーカ120は、音響を発生するが、ユーザアクションを検出できるコンポーネント(例えば、ボタン、ダイヤル、タッチ感知エリア、等)をもつ必要がない。同様に、プリンタ110は、紙に任意の画像を(具現化により白黒又はカラーで)形成できると共に、若干のキャラクタを表示できるディスプレイ又は単なる状態ライトしかもたず、即ちユーザ入力インターフェイスは、1つ又は2つの制御ボタンしか備えていない。このような限定された又は存在しないユーザインターフェイスは、従来のセキュアなワイヤレスネットワークに参加するのに要求されるネットワーク名、パスワード又は他のクレデンシャルをユーザが入力するのを困難又は不可能にする。ある実施形態では、アクセサリは、アクセサリとユーザとの対話がほとんど又は全くない状態で、ネットワーククレデンシャルをワイヤレスで且つセキュアに得ることができ、そのようなアクセサリをワイヤレスネットワークに接続するタスクを簡単にする。
【0028】
ここで使用する「プローブ要求」及び「プローブ応答」(又は「プローブ」)という語は、一般的に、特定のワイヤレスネットワークの状況に関わらず送信されるメッセージを指す。これらメッセージは、送信側装置の識別及び/又は受信側装置に関する情報の要求を含むことができる。これらメッセージは、ブロードキャストすることができ、又はある実施形態では、送信者が受信者の識別情報を有する場合に、あるメッセージをユニキャスト(即ち、特定の受信者に宛てる)ことができる。プローブは、一般的に、平文で送信される(が、以下に述べる幾つかの実施形態では、平文のプローブ要求又はプローブ応答に暗号化メッセージを埋め込むことができる)。IEEE802.11適合のプローブ要求及びプローブ応答フレームを使用できるが、本発明は、IEEE802.11規格に適合するそれらの特定フレーム又はネットワークに限定されない。
【0029】
図2は、本発明の一実施形態によるコントローラ200のブロック図である。コントローラ200(図1のコントローラ100を具現化する)は、プロセッサ202、ユーザインターフェイス204、ワイヤレスインターフェイス206、及び記憶媒体208のような種々のコンポーネントを含むことができる。
【0030】
1つ以上の集積回路として具現化できるプロセッサ202(例えば、従来のマイクロプロセッサ又はマイクロコントローラ)は、コントローラ200の動作を制御することができる。種々の実施形態において、プロセッサ202は、プログラムコードに応答して種々のプログラムを実行することができ、又、複数の同時実行プログラム又はプロセスを維持することができる。所与の時間に、実行されるべきプログラムコードの幾つか又は全部をプロセッサ202に常駐させることができ及び/又は記憶媒体208のような記憶媒体に常駐させることができる。
【0031】
適当なプログラミングを通して、プロセッサ202は、コントローラ200のための種々の機能を与えることができる。例えば、ユーザインターフェイス204により与えられるユーザ入力信号に応答して、プロセッサ202は、アプリケーションプログラム(ワードプロセッサ、ウェブブラウザ、等)を起動し、記憶されたメディアコンテンツを再生し、ネットワーク接続を確立又は終了するようにワイヤレスインターフェイス206を制御し、或いはデータ及び他の信号を送受信し、等々を行うことができる。
【0032】
ユーザインターフェイス204は、キーボード、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、マイクロホン、等の入力装置と、ビデオスクリーン、インジケータライト、スピーカ、ヘッドホーンジャック、等の出力装置を、サポート電子装置(例えば、デジタル/アナログ又はアナログ/デジタルコンバータ、信号プロセッサ、等)と一緒に含むことができる。ユーザは、ユーザインターフェイス204の入力装置を操作して、コントローラ200の機能を呼び出すことができると共に、ユーザインターフェイス204の出力装置を経てコントローラ200からの出力を見及び/又は聞くことができる。
【0033】
ワイヤレスインターフェイス206は、コントローラ200のデータ通信能力を与えることができる。ある実施形態では、ワイヤレスインターフェイス206は、(例えば、3G、4G又はEDGEのような進歩型データネットワーク技術、WiFi(IEEE802.11規格群)、又は他のワイヤレス通信技術、或いはその組み合わせを使用して)ワイヤレスボイス及び/又はデータネットワークにアクセスするための高周波(RF)トランシーバコンポーネントを含むことができる。ワイヤレスインターフェイス206は、ハードウェア(例えば、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを使用して実施することができる。
【0034】
記憶媒体208は、例えば、ディスク、フラッシュメモリ、又は他の不揮発性記憶媒体を使用して具現化することができる。ある実施形態では、記憶媒体208は、プロセッサ202により実行されるべきプログラムコード(アプリケーション及びオペレーティングシステムプログラムを含む)を記憶することができる。このコードは、以下に述べるように、アクセサリとのペアリングを確立することに関連したプログラムコードを含むことができる。又、記憶媒体208は、コントローラ200により再生されるか又は別の装置へストリーミングされるメディアアセット(オーディオ、ビデオ、静止画像、等)、パーソナル情報電子ドキュメント、及び/又はユーザのためのデータファイル、並びに他の情報のようなデータを記憶することもできる。ある実施形態では、記憶媒体208は、コントローラ200がワイヤレスインターフェイス206を経て接続できる特定のワイヤレスネットワークに関連したネットワーククレデンシャル210(例えば、ネットワーク名及びパスワード)を記憶することができる。
【0035】
コントローラ200は、例示に過ぎず、変更や修正が考えられることは明らかである。コントローラ200は、ここに詳細に述べない能力(例えば、移動電話、衛星ベースのナビゲーション)を有してもよく、又、メディア再生能力を有する必要はない。「コントローラ」という語は、ここでは、セキュアなワイヤレスリンク又はペアリングの要求に応答して、その後、別の装置とのペアリングを確立できる装置を一般的に指す。
【0036】
ある実施形態では、コントローラ200は、他の入力/出力チャンネルを使用してユーザ又は別の装置と情報を交換することもできる。他の入力/出力チャンネルは、例えば、オーディオラインイン又はラインアウト経路におけるアナログ信号(例えば、オーディオジャック);カメラ、バーコードリーダー、又は画像分析器と組み合わせた他の画像形成装置(入力用);マシン読み取り可能な画像を発生するディスプレイスクリーン(出力用);加速度計、ジャイロスコープ又は接近検出器のようなセンサ(これを経て装置の動き、方向又は位置を使用して、コントローラ200へ情報を入力できる);非可視光(例えば、赤外線)検出器及び/又は送信器;超音波検出器及び/又は送信器;等々を含む。
【0037】
図3は、本発明の一実施形態によるアクセサリ300のブロック図である。このアクセサリ300(例えば、図1のプリンタアクセサリ110を具現化する)は、プロセッサ302、ユーザインターフェイス304、ワイヤレスインターフェイス306、記憶媒体308、及びプリンティング要素310を含むことができる。
【0038】
1つ以上の集積回路として具現化できるプロセッサ302(例えば、従来のマイクロプロセッサ又はマイクロコントローラ)は、アクセサリ300の動作を制御することができる。種々の実施形態において、プロセッサ302は、プログラムコードに応答して種々のプログラムを実行することができ、又、複数の同時実行プログラム又はプロセスを維持することができる。所与の時間に、実行されるべきプログラムコードの幾つか又は全部をプロセッサ302に常駐させることができ及び/又は記憶媒体308のような記憶媒体に常駐させることができる。
【0039】
ユーザインターフェイス304は、従来のプリンタのような単純なインターフェイスである。例えば、あるプリンタは、少数のボタン及び状態インジケータライトとの最小限のインターフェイスをなす。他のプリンタは、プリンタ設定の調整、ペーパー又はペーパー経路の選択、ジョブのキャンセル、故障発見、等を容易にするための双方向メニューをサポートするより精巧なインターフェイス(例えば、文字列ディスプレイ又は他のディスプレイをキーパッド、タッチスクリーン、等と一緒に含む)をなす。ある実施形態では、ユーザインターフェイス304のディスプレイは、以下に述べるように、ペアリングを確認するための情報をユーザに与えるのに使用される。
【0040】
ワイヤレスインターフェイス306は、アクセサリ300のための少なくともデータ通信能力を与えることができる。ある実施形態において、ワイヤレスインターフェイス306は、(例えば、3G、4G又はEDGE、WiFi、又は他の移動通信技術、或いはその組み合わせを使用して)ワイヤレスデータネットワークにアクセスするための高周波(RF)トランシーバコンポーネントを含むことができる。ワイヤレスインターフェイス306は、ハードウェア(例えば、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを使用して具現化することができる。
【0041】
記憶媒体308は、例えば、ディスク、フラッシュメモリ、又は他の不揮発性記憶媒体を使用して具現化することができる。ある実施形態では、記憶媒体308は、プロセッサ302により実行されるべきプログラムコード(例えば、プリンティング制御プログラムを含む)を記憶することができる。このコードは、以下に述べるように、コントローラとのペアリングを確立することに関連したプログラムコードを含むことができる。
【0042】
プリンティング要素310は、種々の電子的及び/又は機械的コンポーネント、例えば、ペーパーフィーダー、インクジェット装置、レーザープリンティング装置、等を含む。
【0043】
図4は、本発明の別の実施形態によるアクセサリ400のブロック図である。このアクセサリ400(例えば、図1のスピーカアクセサリ120を具現化する)は、プロセッサ402、ワイヤレスインターフェイス406、記憶媒体408、及びスピーカ410を含む。
【0044】
1つ以上の集積回路として具現化できるプロセッサ402(例えば、従来のマイクロプロセッサ又はマイクロコントローラ)は、アクセサリ400の動作を制御することができる。種々の実施形態において、プロセッサ402は、プログラムコードに応答して種々のプログラムを実行することができ、又、複数の同時実行プログラム又はプロセスを維持することができる。所与の時間に、実行されるべきプログラムコードの幾つか又は全部をプロセッサ402に常駐させることができ及び/又は記憶媒体408のような記憶媒体に常駐させることができる。
【0045】
ワイヤレスインターフェイス406は、アクセサリ400のための少なくともデータ通信能力を与えることができる。ある実施形態において、ワイヤレスインターフェイス406は、(例えば、3G、4G又はEDGE、WiFi、又は他の移動通信技術、或いはその組み合わせを使用して)ワイヤレスデータネットワークにアクセスするための高周波(RF)トランシーバコンポーネントを含むことができる。ワイヤレスインターフェイス406は、ハードウェア(例えば、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを使用して具現化することができる。
【0046】
記憶媒体408は、例えば、ディスク、フラッシュメモリ、又は他の不揮発性記憶媒体を使用して具現化することができる。ある実施形態では、記憶媒体408は、プロセッサ402によって実行されるべきプログラムコード(例えば、ワイヤレスインターフェイス406を経て受け取られたデジタルオーディオをデコードすることに関連したコードを含む)を記憶することができる。このコードは、以下に述べるように、コントローラとのペアリングを確立することに関連したプログラムコードを含むことができる。ある実施形態では、記憶媒体408は、装置ファームウェアの一部分であるか又は装置へハードコード化される装置パスワード412も記憶することができる。装置パスワード412は、以下に述べるように、ペアリングを確立するときに使用できる。
【0047】
スピーカ410は、増幅器、トランスジューサ、スピーカコーン、出力ジャック、等の種々の電子的及び/又は機械的コンポーネントを含む。ある実施形態では、プロセッサ402は、ワイヤレスインターフェイス406を経てデジタルオーディオデータを受け取り、そのデータをアナログ信号に変換し、そしてそのアナログ信号をスピーカ410内のスピーカドライバに与えることができる。又、ある実施形態では、スピーカ410は、補助入力ジャック(例えば、標準的3.5mmオーディオジャック)も含み、その経路を経てアナログオーディオ信号を受け取ることもできる。
【0048】
アクセサリ300とは異なり、アクセサリ400は、ユーザインターフェイスを有するものとして示されておらず、実際に、アクセサリは、ユーザインターフェイスを有する必要性がない。ある実施形態では、ユーザインターフェイスは、例えば、パワースイッチ、入力ソースセレクタ、ボリュームコントロール、等に限定される。
【0049】
アクセサリ300及び400は、例示に過ぎず、変更や修正が考えられることが明らかである。ここで使用する「アクセサリ」という語は、一般的に、コントローラとのペアリングを確立できる装置を指し、ペアリングにより与えられる通信リンクは、これに限定されないが、コントローラが既に属しているネットワークへのアクセサリの追加を容易にすることを含む任意の目的に使用できる。ある実施形態では、アクセサリの機能に関連したデータ及び制御信号は、ペアリングリンクを使用して送信することができる。従って、アクセサリは、プリンティング、サウンドの再生、ビデオの表示、コントローラへのデータ(例えば、センサの読み)の供給、コントローラからのデータの受け取り及び処理、等を含む種々の目的に使用することができる。アクセサリは、スピーカやカメラのような周辺装置に限定されず、他の例として、家庭用機器(例えば、冷蔵庫、従来のオーブン、マイクロ波オーブン、洗濯機、等)や、パーソナル電子装置(例えば、トレーニングモニタ、電子医療機器)が含まれる。ワイヤレスインターフェイス及び適当な構成をもついかなる装置もアクセサリとして動作できる。
【0050】
更に、コントローラ及びアクセサリは、図2ないし4に示す特定のブロックを参照して説明したが、これらのブロックは、説明の便宜上定義されたもので、コンポーネントパーツの特定の物理的配列を意味するものではないことを理解されたい。更に、ブロックは、物理的な個別のコンポーネントに対応する必要がない。又、ブロックは、例えば、プロセッサをプログラムするか又は適当な制御回路を設けることにより種々の動作を遂行するように構成することができ、そして種々のブロックは、初期構成がどのように得られるかに基づいて構成可能であってもなくてもよい。本発明の実施形態は、回路及びソフトウェアの任意の組み合わせを使用して具現化される電子装置を含む種々の装置において実現することができる。
【0051】
ここに述べるように、コントローラ及びアクセサリは、プローブを交換することによりワイヤレスペアリングを確立することができる。図5は、本発明のある実施形態に使用できるプローブフレーム構造体500のブロック図である。
【0052】
このプローブフレーム構造体500は、多数のフィールドを含み、ある実施形態では、これらフィールドの幾つか又は全部がIEEE802.11規格により規定されたフレーム構造体に対応する。例えば、フレーム制御フィールド502は、フレームに関する一般的情報、例えば、プロトコルバージョン、フレームのタイプ(例えば、それをプローブ要求又はプローブ応答フレームとして識別する)、及び受信したワイヤレス信号ストリームを解釈するために受信側装置により使用できる他の情報を与えることができる。期間フィールド504は、例えば、IEEE802.11規格に定義された期間情報を与えることができる。アドレスフィールド506は、フレーム500の送信者及び意図される受信者のアドレス、並びに、例えば、IEEE802.11規格で指定された他のアドレス情報を指定することができる。シーケンスフィールド508は、複数の受信した断片からフレームを再構成するために使用できるシーケンス情報を含むことができる。データフィールド510は、受信者により処理されるべきデータを含むフレームコンテンツを含むことができる。チェック和フィールド512は、エラー検出及び/又はエラー修正コード、例えば、32ビットの繰り返し冗長チェックを含むことができる。
【0053】
プローブ要求又はプローブ応答フレームに対するデータフィールド510は、1つ以上の情報エレメント520を含むことができる。各情報エレメント(IE)520は、種々のフィールドを含む構造体である。エレメントIDフィールド522は、IEのタイプを識別することができる。例えば、情報エレメントは、標準エレメントであるか又はベンダー特有エレメントであり、そしてエレメントIDフィールド522は、IE520が標準的であるかベンダー特有であるか指示するのに使用できる。ここに述べる実施形態では、ベンダー特有の情報エレメントを仮定するが、ここに述べる情報エレメントが将来の規格の一部分となることが明らかである。長さフィールド524は、IE520の長さを(例えば、バイトで)指示する。ベンダーフィールド526は、ベンダー特有の情報エレメント520に関連したベンダーの独特の識別子を含むことができる。ベンダーは、例えば、ここに述べるペアリング動作を遂行することのできるコントローラの製造者である。ある実施形態では、フィールド526のベンダー識別子は、IEEEにより指定される24ビットの組織独特識別子(OUI)であり、他の識別子も使用できる。サブタイプフィールド528は、ベンダー指定のサブタイプを与える。ある実施形態では、サブタイプフィールド528は、全てのペアリング関連プローブにわたって固定値を有し、そして情報エレメント520がペアリングに使用するためのものであることを指示するのに使用される。
【0054】
サブIEフィールド530は、1つ以上のサブIE540を含むことができる。図示されたように、サブIE540は、サブエレメントにおいて与えられる情報のタイプを指示するタイプ識別子フィールド542を与える。与えられる情報のタイプは、例えば、IE520に関連した動作(例えば、ペアリングすべきアクセサリをサーチし、キーをネゴシエーションし、共有シークレットを認証し、ワイヤレスネットワーククレデンシャルのような暗号化されたメッセージを送信する)を識別するOPコード;ターゲット装置のアドレス;セッション識別子;シーケンス番号;暗号キー;ランダムナンス;認証又はデジタルシグネチャー;暗号化データ;装置能力及び/又は構成情報;装置名(製造者及び/又はモデル名);ネットワーククレデンシャル(例えば、以下に述べるように暗号化できる)を含む。種々の情報タイプについての使用例を以下に説明する。
【0055】
長さフィールド544は、サブIE540の長さを指示するのに使用できる。ペイロードフィールド546は、タイプ識別子フィールド542により識別された情報を含むことができる。
【0056】
ここに述べるプローブフォーマットは、例示に過ぎず、変更や修正が考えられることが明らかである。ある実施形態では、プローブフレームは、プローブ要求及びプローブ応答フレームを定義するIEEE802.11規格に適合するものであるが、他のプローブフォーマットも使用できる。少なくとも一方の装置がワイヤレスネットワークに参加しない場合に装置間で情報を送信するのに使用できるデータ構造は、プローブとして使用することができる。
【0057】
アクセサリとコントローラとの間にペアリングを確立するのに使用できるプロセスの例を以下に説明する。
【0058】
図6は、本発明の一実施形態によりコントローラとのペアリングを確立するためにアクセサリにより使用可能なプロセッサ600のフローチャートである。このプロセス600は、ブロック602において、アクセサリ(例えば、アクセサリ300又はアクセサリ400)がペアリングの生成を試みなければならないと決定したときにスタートする。ある実施形態では、この決定は、アクセサリのスタートアッププロセス中に自動的に行われ、他の実施形態では、ユーザは、アクセサリの制御器を操作して、プロセスを開始することができる。更に別の実施形態では、スタートアップ時にペアリングを自動的に生成するよう試みるべきか又は特定のインストラクションを待機すべきかは、アクセサリの構成可能なパラメータである。
【0059】
ブロック604において、アクセサリは、コントローラが、それとペアリングできるアクセサリをサーチしている(又はブラウジングしている)ことを指示するコントローラからの「ブラウジング」プローブ要求を聴取し受け取ることができる。ある実施形態では、このブラウジングプローブ要求は、上述したプローブフレーム500として受け取ることができる。この例において、プローブフレーム500は、コントローラが、それとペアリングするアクセサリをサーチし又はブラウジングしていることを指示するOPコードを(例えば、サブIEフィールド530内に)含むことができる。ブラウジングプローブ要求は、例えば、受信者アドレスを指定しないことによりブロードキャストできる。IEEE802.11適合ネットワークの場合には、アクセスポイントだけがプローブ要求を聴取しそしてそれに応答し、他の装置は、それを無視するのが典型的である。しかしながら、プローブ要求は、明瞭にブロードキャストされるので、アクセスポイント以外の装置も、プローブ要求を検出してそれに応答することができる。
【0060】
ブロック606において、アクセサリは、コントローラへプローブ応答を送信することができる。ある実施形態では、プローブ応答は、上述したプローブフレーム500として送信することができる。この例では、プローブフレーム500は、アクセサリに関する識別情報、例えば、製造者名、モデル名、及びアクセサリがキーネゴシエーションを動的に遂行できるか又は記憶されたパスワードに基づいて遂行できるかといった特定能力情報を(例えば、サブIEフィールド530内に)含むことができる。プローブ応答は、ブロック604においてプローブ要求を受け取ったところのコントローラへアドレスされる。ブロック604において複数のプローブ要求が受け取られた場合には、アクセサリがコントローラを選択することができる。ある実施形態では、アクセサリは、プローブ要求を受け取ったところの最初のコントローラを選択し、他の実施形態では、最後のコントローラを選択する。更に別の実施形態では、他の選択ルールを使用することもできるし、或いはアクセサリがユーザを促すことのできるユーザインターフェイスを有する場合には、アクセサリは、アクセサリがペアリングすべきコントローラを選択するようにユーザを促すこともできる。
【0061】
ブロック608において、アクセサリ及びコントローラは、パブリック暗号キーを確立し交換することができる。ある実施形態では、パブリックキーは、付加的なプローブを使用して交換される。プローブフレーム500が使用される場合には、キーをサブIEフィールド530にサブIEとして組み込むことができ、又、他のフォーマットを使用することもできる。ある実施形態では、キーは、動的にネゴシエーションすることができ、他の実施形態では、キーの発生は、アクセサリに関連した固定パスワードに基づいて行うことができる。これら技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0062】
ブロック610において、アクセサリは、共有シークレットを計算し、そしてコントローラが同じ共有シークレットを有することを確認することによりコントローラを有効なものとすることができる。例えば、アクセサリ及びコントローラは、各々、共有シークレットに基づいてある情報を表示することができる。両表示は、両方が同じシークレットを有する場合に一致すべきであり、ユーザは、一致を検証することが求められる。或いは又、アクセサリ及びコントローラは、各々、ランダムチャレンジを使用して、他方が同じ共有シークレットを有することを検証してもよい。これらの技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0063】
ブロック612において、アクセサリは、共有シークレットに基づき付加的な暗号及び認証キーを発生することができる。ブロック614において、アクセサリは、付加的なキーを使用してコントローラとセキュアに通信することができる。例えば、アクセサリは、キーを使用して、メッセージを暗号化し、次いで、その暗号化されたメッセージをプローブ内の情報エレメント(又は他のデータアイテム)において送信することができる。同様に、アクセサリは、暗号化されたメッセージを含むプローブをコントローラから受け取り、キーを使用してそのメッセージを解読し認証することができる。ブロック614におけるペアリングを通る通信は、不定に継続することができ、通信が完了したときに、プロセス600は、終了となる。
【0064】
図7は、本発明の実施形態によりアクセサリとのペアリングを確立するためにコントローラにより使用できるプロセス700のフローチャートである。このプロセス700は、ブロック702において、コントローラが、アクセサリとのペアリングを試みなければならないことを決定したときにスタートする。例えば、ユーザは、ペアリングすべきアクセサリをサーチするようにコントローラに命令することができる。
【0065】
ブロック704において、コントローラは、ペアリングを行うことのできるアクセサリに対してコントローラがブラウジングすることを指示するブラウジングプローブ要求をブロードキャストする。ある実施形態では、このプローブ要求は、上述したプローブフレーム500としてブロードキャストされる。この例では、プローブフレーム500は、コントローラが、それとペアリングされるアクセサリをサーチするか又はブラウジングすることを指示するOPコードを(例えば、サブIEフィールド530内に)含む。プローブ要求は、例えば、受信者のアドレスを指定しないことにより、それがブロードキャストされるという指示を含むことができる。
【0066】
ブロック706において、コントローラは、アクセサリからプローブ応答を受け取る。ある実施形態では、プローブ応答は、上述したプローブフレーム500として送信することができる。この例では、プローブフレーム500は、アクセサリに関する識別情報、例えば、製造者名、モデル名、及びアクセサリがキーネゴシエーションを動的に遂行できるか又は記憶されたパスワードに基づいて遂行できるかといった特定能力情報を(例えば、サブIEフィールド530内に)含むことができる。プローブ応答は、コントローラへアドレスされる。ある実施形態では、コントローラは、ブロック706において、複数のプローブ応答を受け取ることができる。
【0067】
ある実施形態では、コントローラは、更に別の処理の前にユーザを促すことができる。例えば、コントローラは、アクセサリを接続すべきかどうかユーザに尋ねるメッセージを表示することができ、このメッセージは、プローブ要求から抽出されたアクセサリ識別情報を含むことができる。ユーザがこの接続を許す場合には、コントローラが処理を進めることができる。複数のアクセサリからのプローブ応答がブロック706において受け取られた場合には、コントローラは、ペアリングすべきアクセサリを選択するようにユーザに求めることができる。他の実施形態では、コントローラは、最初にユーザの許可を得ずにペアリングを進めることができる。
【0068】
ブロック708において、コントローラ及びアクセサリは、パブリック暗号キーを確立し交換することができる。ある実施形態では、パブリックキーは、付加的なプローブを使用して交換される。プローブフレーム500が使用される場合には、キーは、サブIEフィールド530にサブIEとして組み込まれ、又、他のフォーマットも使用できる。ある実施形態では、キーは、動的にネゴシエーションすることができ、他の実施形態では、キーの発生は、アクセサリに関連した固定パスワードに基づいて行うことができる。これら技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0069】
ブロック710において、コントローラは、共有シークレットを計算し、そしてアクセサリが同じ共有シークレットを有することを確認することによりアクセサリを有効なものとすることができる。例えば、コントローラ及びアクセサリは、両方が同じシークレットを有する場合に一致すべき共有シークレットに基づいてある情報を表示し、そしてユーザは、一致を検証することができる。或いは又、コントローラ及びアクセサリは、各々、ランダムチャレンジを使用して、他方が同じ共有シークレットを有することを検証してもよい。これらの技術の各々を使用するペアリングプロセスの例を以下に説明する。
【0070】
ブロック712において、コントローラは、共有シークレットに基づいて付加的な暗号及び認証キーを発生する。ブロック714において、コントローラは、付加的なキーを使用してアクセサリとセキュアに通信することができる。例えば、コントローラは、キーを使用してメッセージを暗号化し、次いで、その暗号化されたメッセージをプローブ内の情報エレメント(又は他のデータアイテム)において送信することができる。同様に、コントローラは、暗号化されたメッセージを含むプローブをアクセサリから受け取り、キーを使用してそのメッセージを解読し認証することができる。ブロック714において与えられるセキュアなペアリングリンクを通る通信は、不定に継続することができ、通信が完了したときに、プロセス700は、終了となる。
【0071】
プロセス600及び700は、例示であり、変更や修正が考えられることが明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加、又は省略されてもよい。例えば、プローブ要求及びプローブ応答の種々のシーケンスを使用して、ペアリングのためのセキュリティ(キー、共有シークレット、等)を確立することができる。種々の暗号技術及びアルゴリズムを使用することができ、幾つかの例を以下に説明する。プローブは、IEEE802.11に適合するプローブ要求及びプローブ応答フレームであるか、或いは他のワイヤレスネットワークプロトコルに適合する他のフォーマットのメッセージである。一般的に、プローブは、明瞭に(即ち、暗号化されずに)送信されると予想され、適当な能力をもつ装置がメッセージを読み取ることができる。メッセージコンテンツを平文プローブ内に(例えば、情報エレメント又は他のデータアイテムとして)埋め込む前に、それを、例えば、上述したように暗号化することにより、ペアリング内にセキュリティを与えることができる。
【0072】
ある実施形態では、2つ程度のプローブを使用して、ペアリングを完了することができる。例えば、コントローラにより送られる初期プローブ要求は、コントローラのパブリックキーを含むことができ、そしてアクセサリにより送られる初期プローブ応答は、アクセサリのパブリックキーを含むことができる。(従って、ブロック608は、ブロック604及び606と一緒に行うことができ、同様に、ブロック708は、ブロック704及び706と一緒に行うことができる。)又、共有シークレットを有効とすることも、更に別のプローブを交換せずに行うことができ、その例を以下に説明する。
【0073】
プロセス600及び700を使用してセキュアなペアリングリンクが確立されると、どのタイプの情報もそのリンクを経て通信することができ、具現化に基づく帯域巾制約しか受けない。ある実施形態では、アクセサリは、ブロック614において与えられたペアリングを使用して、ワイヤレスネットワークのクレデンシャル(例えば、保護されたIEEE802.11ネットワークの名前及びパスワード又はキー)をコントローラから得ることができ、次いで、アクセサリは、これらクレデンシャルを使用して、そのネットワークに参加することができる。アクセサリがワイヤレスネットワークに参加すると、ペアリングリンクを通る通信を切断することができるが、ある実施形態では、そのような通信を続けて、通信側波帯を与えることができる。
【0074】
ペアリングリンクを経て通信できる他のタイプの情報は、アクセサリ、コントローラ又はその両方のための構成パラメータ及び/又は制御信号を含む。従って、例えば、ペアリングされたアクセサリは、(プローブ内においてコントローラへコマンドを送信することにより)コントローラのためのリモートコントロール装置として働くことができ、或いはその逆のことも言える。プローブにより与えられる帯域巾が充分である場合には装置間にデータをストリーミングすることができる。(現在のIEEE802.11規格については、プローブ要求及びプローブ応答フレームにより与えられる帯域巾は、一般に、高品質メディアストリーミングにとって充分なものではなく、他の具現化で、より高い帯域巾を与えることができる。)
【0075】
上述したように、ある実施形態では、ブロック608及び610(又は708及び710)において動的なキーネゴシエーション及び確認が与えられ、他の実施形態では、固定装置パスワードに基づいてキーネゴシエーション及び確認が与えられる。図8A−8Bは、本発明の実施形態による両方の代替え形態を与えるプロセス800のフローチャートである。
【0076】
ブロック802において、コントローラ(例えば、コントローラ200)は、それがペアリングするアクセサリを探索するため、例えば、ユーザからインストラクションを受け取ることができる。例えば、コントローラにより実行されるアプリケーションプログラムは、ユーザが、ペアリングに利用できるアクセサリをサーチするようコントローラに命令するために(例えば、メニューから選択することにより)操作できる制御器を伴うユーザインターフェイスを含むことができる。他の実施形態では、アクセサリを探索するためのインストラクションがコントローラの動作中に自動的に発生され(例えば、規則的な間隔で)、ユーザの開始は必要とされない。ブロック804において、コントローラは、ペアリングを行うことのできるアクセサリをブラウジングするためにプローブ要求をブロードキャストすることができる(例えば、上述したように)。これは、一般的に、上述したプロセス700のブロック704と同様である。
【0077】
ブロック806において、アクセサリは、コントローラからプローブ要求を受け取る。ブロック808において、アクセサリは、それに応答して、プローブ応答(例えば、上述した)をコントローラへ送信する。これは、上述したプロセス600のブロック606と一般的に同様である。
【0078】
ブロック810において、コントローラは、アクセサリからプローブ応答を受け取る。ブロック812において、コントローラは、ペアリングを進めるべきかどうかユーザと確認することができる。上述したように、ある実施形態では、コントローラは、アクセサリを接続すべきかどうかユーザに尋ねるメッセージを表示することができ、このメッセージは、プローブ要求から抽出されたアクセサリ識別情報を含むことができる。コントローラが複数のアクセサリからプローブ応答を受け取る場合には、ブロック812は、ペアリングすべきアクセサリを選択するようにユーザを促すことを含む。ペアリングを進めるべきであることをユーザが確認すると仮定すれば、コントローラは、処理を進めることができる。他の実施形態では、コントローラは、最初にユーザの許可を得ることなくペアリングを進めることができ、ブロック812を省略することができる。
【0079】
ブロック814において、コントローラは、アクセサリが動的なキーネゴシエーションを使用するか又は固定パスワードベースのキーを使用するか決定することができる。アクセサリが動的なキーネゴシエーションを使用しない場合には、図9A−9Bに示して以下に説明するシーケンスを、ブロック816に示すように使用することができる。
【0080】
動的なキーネゴシエーションについては、プロセス800の残り部分が図8Bに示されている。ブロック822において、コントローラは、そのプライベートキー(CPRIV)及びパブリックキー(CPUB)を発生することができる。1つの実施形態では、コントローラは、32バイトの暗号的に強力なランダムデータを発生し、そのデータを、Curve25519(http://cr.yp.to/ecdh.htmlで文書化された楕円曲線ディフィー・ヘルマン解決策)のような暗号アルゴリズムを使用してプライベートキーCPRIVへ変換し、そしてCPRIVからパブリックキーCPUBを計算することができる。パブリック/プライベートキー対を発生するための他の技術に置き換えることもできる。
【0081】
ブロック824において、コントローラは、プローブ要求を使用して、パブリックキーCPUBをアクセサリへ送信することができる。このパブリックキーCPUBは、情報エレメント又は他のデータアイテムとして含ませることができる。パブリックキーは、平文テキストとして送信することができる。又、コントローラは、プローブ要求の1つ以上の情報エレメント内に他の情報、例えば、ペアリングセッションに関連した全てのプローブ要求及びプローブ応答にその後含ませることのできる独特のセッションID、を含むこともできる。セッションIDを使用すると、コントローラ及びアクセサリは、ペアリングリンクの状態(例えば、キーネゴシエーションが進行中であるか又は完了したか)を決定し、それに応じて、受け取ったプローブ要求及びプローブ応答を処理する上で助けとなる。ある実施形態では、他の情報も、プローブ応答を特定のプローブ要求に一致させることのできる独特のシーケンス識別子(セッション内で独特)を含むことができる。
【0082】
ブロック826において、アクセサリは、コントローラのパブリックキーCPUBを含むプローブ要求を受け取る。アクセサリは、ブロック828において、それ自身のプライベートキー(APRIV)及びパブリックキー(APUB)を発生する。1つの実施形態では、アクセサリは、32バイトの暗号的に強力なランダムデータを発生し、そのデータを、Curve25519のような暗号アルゴリズムを使用してプライベートキーAPRIVへ変換し、そしてAPRIVからパブリックキーAPUBを計算することができる。又、パブリック/プライベートキー対を発生するための他の技術に置き換えることもでき、一般的に、ブロック822及び828では、適合する技術を使用しなければならない。ブロック830では、アクセサリは、プローブ応答を使用してコントローラへそのパブリックキーAPUBを送信することができる。
【0083】
ブロック832において、コントローラは、プローブ応答を受け取り、APUBを抽出することができる。この段階において、コントローラ及びアクセサリは、各々、両パブリックキーAPUB及びCPUBを所有する。
【0084】
ブロック834及び836において、コントローラ及びアクセサリは、各々、パブリックキーAPUB及びCPUBに基づいて共有シークレットを計算することができる。ある実施形態では、共有シークレットは、曲線25519を使用して計算され、他の暗号アルゴリズムに置き換えることもできる。一般的に、両装置は、共有シークレット(即ち、両装置に知られた1つのシークレット)を与えるのに同じアルゴリズムを使用しなければならない。
【0085】
ブロック838及び840において、コントローラ及びアクセサリは、各々、共有シークレットからパスコードを計算することができる。例えば、SHA−256のようなハッシュアルゴリズムを共有シークレット又は共有シークレットのある関数に適用することができる。その結果、又はその一部分を、パスコードとして使用できるアルファニューメリックキャラクタストリング(例えば、8個のキャラクタ)に変換することができる。パスコードの発生には種々の技術を使用できるが、アクセサリ及びコントローラは、一致するか又は相関されたパスコードを生じる技術を使用しなければならない。ブロック842及び844において、コントローラ及びアクセサリは、各々、それらの計算されたパスコードをユーザに与える。例えば、コントローラ200は、パスコードをそのディスプレイに表示することができる。プリンタアクセサリ(例えば、アクセサリ300)は、パスコードをそのユーザインターディスプレイに表示するか、又はパスコードを含むページをプリントすることができる。ユーザは、例えば、コントローラ及び/又はアクセサリの入力制御器を操作して一致を確認することにより、2つのパスコードを比較して、それらが一致することを確認できる。ブロック846及び848において、アクセサリ及びコントローラは、各々、この確認を受け取ることができる。ある実施形態では、ユーザは、一方の装置(例えば、コントローラ)のみのユーザインターフェイスを経て情報を与え、その装置は、プローブを送信することにより他方の装置(例えば、アクセサリ)へ確認を通信することができる。確認が受け取られない場合に、確認を受け取らない装置(一方又は両方)は、プロセス800を中断する。
【0086】
ある実施形態では、アクセサリは、パスコードを表示することができない。例えば、図1に示すスピーカアクセサリ120は、ディスプレイ装置をもたない。このようなケースでは、図9A−9Bを参照して以下に述べるパスワードベースの認証を使用することができる。
【0087】
パスコードが検証されたと仮定すると、ブロック850及び852において、コントローラ及びアクセサリは、各々、共有シークレットから付加的な暗号及び認証キーを発生することができる。このようなキーは、例えば、進歩型暗号規格(http://en.wikipedia.org/wiki/Advanced_Encryption_Standardにおいて文書化された“AES”)及び/又はポリ1305−AESメッセージ認証コード(http://cr.yp.to/mac.htmlにおいて文書化された)のような標準技術を使用して導出することができる。
【0088】
この点において、ペアリングが確立されると考えられ、そしてブロック850及び852で確立されたキーを使用するコントローラとアクセサリとの間のセキュアな通信が可能となる。メッセージをセキュアに送信及び受信するための特定のプロセスの例を以下に説明する。
【0089】
上述したように、プロセス800は、コントローラ及びアクセサリによりユーザへパスコードを与え、そしてパスコードが一致することを検証するようユーザに求めることを含む。ある実施形態において、ある装置にとってユーザにパスコードを与えるのは不便であり又は不可能なことがある。例えば、図1に示すスピーカアクセサリ120は、表示能力を含まず、そのような能力を追加することはできるが、そのようにすることは望ましくない(例えば、コスト又は審美的な理由で)。従って、ある実施形態では、動的なキーネゴシエーションに加えて又はそれに代わってパスワードベースの認証が与えられる。
【0090】
ある実施形態では、プロセス800は、ペアリングを確立するために交換されるプローブの数を減少するよう変更することができる。例えば、ブロック802においてコントローラにより送信される初期プローブ要求は、コントローラのパブリックキーCPUBを含み、そしてブロック808においてアクセサリにより送信される初期プローブ応答は、アクセサリのパブリックキーAPUBを含み、この場合に、ブロック824及び832における付加的なプローブの送信は、省略することができる。その後のステップにプローブが使用されず、例えば、ユーザが(ブロック846及び848において)各装置と対話してパスコードの一致を検証できる場合には、2つ程度のプローブ(コントローラからの1つの要求及びアクセサリからの1つの応答)でペアリングを生成することができる。
【0091】
図9A−9Bは、本発明の一実施形態によるパスワードベースの認証のためのプロセス900のフローチャートである。図8Aに示されたように、プロセス800及び900の両方を使用することができ、コントローラが、アクセサリにより与えられる情報に基づいて、どちらを使用するか決定する。他の実施形態では、プロセス800を具現化せずに、プロセス900を具現化することができ、この場合、全てのアクセサリがパスワードベースの認証をサポートする。
【0092】
プロセス900は、アクセサリがペアリングの生成を求めていることを指示するプローブ要求をコントローラがアクセサリから受け取った後に開始される。この場合のプローブ要求は、アクセサリがパスワードベースの認証を使用することを指示できる。ブロック902において、コントローラは、セッションIDを含むプローブ要求をアクセサリへ送信することができる。上述したように、セッションIDは、コントローラにより指定され、特定のアクセサリとのペアリングに特有のものである。
【0093】
ブロック904において、アクセサリは、プローブ要求を受け取る。この実施形態では、アクセサリは、メモリ、又はアクセサリにとってアクセス可能な他の記憶装置に持続的に記憶された固定の又はプリセットされたパスワードを有し(例えば、図4のアクセサリ400は、記憶媒体408に記憶された装置パスワード412を有し)、そしてブロック906において、アクセサリは、このパスワードを使用して、パブリックキー(APUB)を発生することができる。1つの実施形態では、アクセサリは、セキュアなリモートパスワード(http://srp.standford.edu/において文書化された“SRP”)を使用して、パブリックキーAPUBを発生する。ブロック908において、アクセサリは、例えば、SRPに適合するランダムソルトを発生する。ブロック910において、アクセサリは、パブリックキーAPUB及びランダムソルトを含むプローブ応答をコントローラへ送信する。このプローブ応答、及びその後の全てのプローブ要求又はプローブ応答は、ブロック902においてコントローラにより与えられるセッションIDも含むことができる。
【0094】
ブロック912において、コントローラは、アクセサリからプローブ応答を受け取る。ブロック914において、コントローラは、アクセサリのパスワードをコントローラへ入力するようにユーザを促す。この実施形態では、ユーザがアクセサリのパスワードを得ることができると仮定する。このパスワードは、例えば、アクセサリでパックされた文書において、アクセサリに添付されたデカールにおいて、アクセサリ本体に刻印されたパスワードとして、又は他の仕方で、ユーザに与えることができる。あるケースでは、アクセサリのシリアルナンバー又は他の独特の識別コードを、パスワードとして使用することができる。
【0095】
パスワードをユーザに通信するためにある範囲のオプションが与えられると、ブロック914において、アクセサリのパスワードをどこで見つけるかに関してユーザを促し又は思い出させることが有益である。ある実施形態では、アクセサリは、パスワードがどこにあるかの情報をコントローラに与えることができる。例えば、「左側」「右側」「上」「下」「前」「後」及び「文書」を指示するように、異なる位置コードを定義することができる。アクセサリは、ペアリングパートナーを探索するためにアクセサリが送信する初期プローブ要求、又はプロセス900のブロック910で送信されるプローブ応答のような、プローブ要求又はプローブ応答の情報エレメント(又は他のデータアイテム)に、適当な位置コードを含む。
【0096】
図10は、本発明の一実施形態によりコントローラに表示することのできるパスワードプロンプトを示す。ウインドウ1000は、プロンプトを含む。タイトルバー1002は、コントローラが接続を試みるアクセサリを識別し、そしてプロンプト1004は、テキストボックス1006にパスワードを入力するようユーザに求める。ティップ(TIP)メッセージ1008は、どこにパスワードがあるかユーザに知らせる。ある実施形態では、コントローラは、アクセサリから受け取ったプローブ要求又はプローブ応答から位置コードを読み取り、そして位置コードに基づいて適当なテキストを選択することにより、ティップメッセージ1008を発生することができる。
【0097】
再び、図9Aに戻ると、ブロック916において、コントローラは、ユーザ入力装置を経てパスワードを受け取る。ある実施形態では、ユーザは、パスワードを入力するのではなく、ペアリングプロセスをキャンセル又は中止するようにコントローラに命令することができる。ブロック918において、コントローラは、それ自身のパブリックキー(CPUB)を発生し、SRP又は他の技術を使用することができる。ブロック920において、コントローラは、アクセサリのパブリックキーAPUB、コントローラのパブリックキーCPUB、及びアクセサリから受け取ったランダムソルトに基づき、共有シークレットを計算する(例えば、SRPを使用して)。ブロック920において、コントローラは、アクセサリのパスワードを知っていることを証明する例えばSRPを使用して応答(CRESP)を計算する。
【0098】
プロセス900の残り部分が図9Bに示されている。ブロック924において、コントローラは、パブリックキーCPUB及び応答CRESPを含むプローブ要求を送信する。
【0099】
ブロック926において、アクセサリは、プローブ要求を受け取る。ブロック928において、アクセサリは、アクセサリのパブリックキーAPUB、コントローラのパブリックキーCPUB、及びブロック908(図9A)で発生されたランダムソルトに基づき、共有シークレットを計算する(例えば、SRPを使用して)。ブロック930において、アクセサリは、計算された共有シークレットを使用して、コントローラから受け取った応答CRESPを検証する。ある実施形態では、検証が失敗であると、プロセス900は、終了となる。検証が成功であったと仮定すれば、ブロック932において、アクセサリは、それ自身の応答(ARESP)を計算し、アクセサリのパスワードも知っていることを証明する。ブロック934において、アクセサリは、コントローラへのプローブ応答において応答ARESPを送信する。
【0100】
ブロック936において、コントローラは、プローブ応答を受け取り、そしてブロック938において、コントローラは、その応答ARESPを検証する。ブロック930の場合と同様に、ある実施形態では、検証の失敗は、プロセス900の終了となる。検証が成功すると、ブロック940において、コントローラは、共有シークレットに基づき、暗号及び認証キーを計算する。プロセス800と同様に、これらのキーは、各々、AES及びPoly1305−AESを使用して計算することができる。
【0101】
同様に、アクセサリがコントローラの応答(CRESP)を有効なものとすると、アクセサリは、ブロック942において、共有シークレットに基づき暗号及び認証キーを計算することもできる。
【0102】
この点において、ペアリングが確立され、そしてブロック940及び942で確立されたキーを使用するセキュアな通信が可能となる。メッセージをセキュアに送信及び受信する特定のプロセスの例を以下に説明する。
【0103】
ここに述べるペアリングプロセスは、例示に過ぎず、変更や修正が考えられることが明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加、又は省略されてもよい。例えば、種々のキーが発生される順序を変えてもよい。又、アクセサリ及びコントローラは、幾つかの計算を同時に遂行することができる。
【0104】
ここに述べる実施形態は、ペアリングを確立するのに使用できるプローブ要求及びプローブ応答の特定のシーケンスを識別するが、他の実施形態では、プローブの異なるシーケンスが使用されてもよい。(従って、プローブ間を区別する普通の番号、例えば「第1」「第2」等の使用は、単なる区別のために過ぎず、プローブ間の特定の時間的順序を要求するものではないことを理解されたい。)更に、明確に示されず、又、上述されてもいない付加的なプローブ要求及びプローブ応答も使用できる。例えば、IEEE802.11のようなあるプロトコルでは、プローブ要求を送信する装置は、ある期間内にプローブ応答を受け取ることが予想され、応答が受け取られない場合には、応答を待機しているプロセスが時間切れとなる。ある実施形態では、プローブ要求を受け取る装置は、プローブ要求の受信を確認する第1のプローブ応答であって、プローブ要求の送信者が応答をどれほど待機すべきか(例えば、情報エレメントを経て)指示する第1のプローブ応答を送信することができる。要求側装置は、指定の時間切れを使用して、要求を再送信し又はプロセスを中断するまでにどれほど応答を待機すべきか決定することができる。これは、応答側装置が、デフォールトの時間切れ期間より長くを要する計算を遂行できるようにし、即ち応答側装置は、要求側装置が完全な応答を待機すべきであることを指示するためのプローブ応答を時間切れ期間内に送信することができる。
【0105】
又、プロセス800及び900は、コントローラが、プローブ応答ではなく、プローブ要求のみを送信し、一方、アクセサリが、プローブ要求ではなくて、プローブ応答のみを送信するように具現化できることにも注意されたい。従って、コントローラは、プローブ要求を検出したりそれに応答したりする必要はない。
【0106】
特定の暗号化及び認証技術(AES、SRP、等)の識別は、例示に過ぎず、他の技術に置き換えることもできる。コントローラ及びアクセサリは、一方の装置が、他方の装置により送信されたメッセージを首尾良く認証し解読できるように、ペアリング内で両立する技術を使用することが予想される。
【0107】
ある実施形態では、コントローラが第1のアクセサリとのペアリングを確立するプロセスにある間に、第2のアクセサリがコントローラとのペアリングを試みることができる。例えば、図1の実施形態では、コントローラ100がスピーカ120とのペアリングを確立するプロセスにある間に、プリンタ110がペアリングプロセスの開始を求めるプローブ要求を送信する。コントローラ100は、種々の仕方でこの状態を取り扱うように構成することができる。
【0108】
ある実施形態では、第1のペアリングプロセスが開始されると、コントローラは、第1のプロセスに保持され、そしてその第1のプロセスが完了するか又は中止されるまで、ペアリングの開始を試みる更に別のプローブ要求を無視する。他の実施形態では、第1のプロセスがまだ続いている間に、ペアリングを開始する第2の要求が受け取られると、コントローラは、第1のプロセスを中止し、そして第2の要求に基づいて第2のペアリングプロセスを開始することができる。後者の設計選択は、ユーザがミスを犯すか、或いはペアリングプロセス中に心変りして、やり直したい場合に有益であり、即ちユーザは、第1のプロセスが完了するか又は時間切れするのを待機する必要がない。更に別の実施形態では、コントローラは、複数のペアリングプロセスを同時に管理するように構成される。
【0109】
同様に、アクセサリは、複数のコントローラからブラウジングプローブを受け取ることも考えられる。ある実施形態では、アクセサリは、ブラウジングプローブが受け取られたところの第1のコントローラに応答し、そしてその第1のコントローラとのペアリングが終了するまでその後のブラウジングプローブを無視することができる。他の実施形態では、ペアリングが進行中である(確立されたか又は確立されつつある)間にブラウジングプローブが受け取られる場合には、アクセサリは、現在のペアリングを終了し、そして最も新しいブラウジングプローブに応答することにより新たなペアリングプロセスを開始することができる。アクセサリがユーザインターフェイスを有する実施形態では、アクセサリは、新たなブラウジングプローブに応答して現在のペアリングを終了すべきかどうかに関してユーザを促すことができる。
【0110】
上述したように、プロセス800及び900は、コントローラとアクセサリとの間にペアリング、即ちセキュアなワイヤレスリンクを確立させる。各装置は、互いに他の装置を確認し、2つの装置は、ワイヤレス通信を監視する侵入者にとって決定することが困難な共有シークレットを確立することができる。ペアリングは、確立されると、セキュアな(暗号化及び/又は認証された)通信に使用することができる。図11及び12は、本発明の一実施形態によりワイヤレスペアリングを経てセキュアなメッセージを送信及び受信するためのプロセスのフローチャートである。
【0111】
図11は、本発明の一実施形態により送信者とペアリングされる受信者装置へメッセージを送信するために送信者(アクセサリ又はコントローラのいずれか)によって使用できるプロセス1100を示す。このプロセス1100は、例えば、上述したいずれかのプロセスを使用してペアリングが確立された後にスタートする(ブロック1102)。ブロック1104において、送信者は、セキュアに送信されるメッセージを準備する。これは、例えば、データを発生し、記憶された情報を検索し、データをフォーマット又はエンコードし、等々を含む。ブロック1106において、送信者は、ペアリングに関連した暗号キー(例えば、上述したいずれかのプロセスを使用して発生されたAESキー)を使用してメッセージを暗号化する。ブロック1108において、送信者は、認証の目的でナンスとして使用されるべき例えば16バイトのランダムデータを発生する。ブロック1110において、送信者は、メッセージ、ナンス、及びペアリングに関連した認証キー(例えば、上述したいずれかのプロセスを使用して発生されたPoly1305−AESコード)に基づいて認証子(データブロック)を発生する。
【0112】
ブロック1112において、送信者は、暗号メッセージ、ナンス、及び認証されたデータブロックを含むプローブ(プローブ要求又はプローブ応答)を送信する。これらアイテムは、プローブ内に情報エレメント又は他のデータエレメントとして含まれる。又、送信者は、ペアリングに関連したセッションIDもプローブに含むことができる。ある実施形態では、メッセージそれ自体が暗号化されるだけであり、セッションID及びナンスのような他のアイテムは、暗号化されない。(認証子は、暗号技術を使用して発生されるが、それ以上は暗号化されない。)プローブ要求が送信されると、プロセス1100は、終了となる(ブロック1114)。
【0113】
図12は、本発明の一実施形態により受信者とペアリングされる送信者装置からメッセージを受信するために受信者(コントローラ又はアクセサリのいずれか)により使用できるプロセス1200を示す。この例では、図11のプロセス1100を使用してメッセージが送信されると仮定する。プロセス1200は、例えば、上述したいずれかのプロセスを使用してペアリングが確立された後にスタートする(ブロック1202)。ブロック1204において、受信者は、ペアリングに関連したセッション識別子を含むプローブ(プローブ要求又はプローブ応答)を受け取る。ブロック1206において、受信者は、暗号メッセージ、ナンス、及び認証子ブロックをプローブから抽出する。ブロック1208において、受信者は、認証子及びナンスを、それ自身の認証キー(例えば、上述したPoly1305−AESコード)と一緒に使用して、メッセージの真正性を検証する。ブロック1210で真正性が検証された場合には、受信者は、ブロック1212において、暗号メッセージを解読するように進む。この実施形態では、ブロック1210で真正性が検証されない場合には、受信者は、メッセージを単に無視する。
【0114】
プロセス1200は、ブロック1214で終了となる。メッセージが認証されて解読されたと仮定すれば、受信者は、メッセージのコンテンツに基づく特定のアクションでメッセージに作用することができる。上述したように、プローブを使用して送信される暗号メッセージに、任意のタイプの構成情報、制御信号、又は他のデータを含ませることができる。ある実施形態では、メッセージに対する応答は、プローブを使用して送信者へ暗号メッセージを返送することを含む。この場合、受信者は、プロセス1100を使用して送信者となり、従って、同じ装置が、あるときは、送信者として、別のときは、受信者として動作することができる。
【0115】
ここに述べる通信プロセスは、例示に過ぎず、変更や修正が考えられることが明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加又は省略されてもよい。他の暗号技術を、ここに述べた技術に置き換えてもよい。
【0116】
プロセス1100及び1200を使用して、望ましい情報をアクセサリとコントローラとの間に通信することができる。ある実施形態では、コントローラは、アクセサリとペアリングする間に従来のワイヤレスネットワーク(例えば、IEEE802.11適合ネットワーク)に参加することができる。ペアリングが確立されると、コントローラは、セキュアなリンクを使用して、ワイヤレスネットワークに参加するのに必要なクレデンシャル(例えば、ネットワーク名およびパスワード)をアクセサリに与えることができる。
【0117】
図13は、本発明の一実施形態によりワイヤレスネットワークに参加するためにアクセサリ(例えば、図1のアクセサリ110又は120)により使用できるプロセス1300のフローチャートである。このプロセスでは、ワイヤレスネットワークがアクセスポイントにより管理されると仮定し、アクセスポイントは、他の装置がネットワークに参加してアクセスポイントを経て種々のリソース(例えば、インターネット)にアクセスできるかどうか決定するものである。
【0118】
プロセス1300は、ブロック1302で開始され、アクセサリは、それがワイヤレスネットワークへの参加を試みなければならないことを決定する。この決定は、装置の設定時に、ユーザ入力に応答して又は他の環境のもとで自動的に行うことができる。ブロック1304において、アクセサリは、アクセサリとのペアリングを確立できるコントローラからのブラウジングプローブ要求を聴取する。コントローラは、ネットワークアクセスポイントであるが、そうである必要はなく、そしてアクセサリがワイヤレスネットワークの存在又はそのアクセスクレデンシャルに関する情報を有することは要求されない。
【0119】
ブロック1306において、アクセサリは、ブラウジングプローブが検出されたかどうか決定する。ブラウジングプローブが検出されない場合には、アクセサリは、聴取を続ける(ブロック1304)か、又はプロセス1300を終了する。ブラウジングプローブが検出された場合には、ブロック1308において、アクセサリは、(例えば、更に別のプローブを使用して)コントローラと通信して、ペアリングを確立する。例えば、上述したプロセス800及び/又は900を使用することができる。
【0120】
ペアリングが確立されると、ブロック1310において、アクセサリは、ペアリングリンクを経てコントローラからワイヤレスネットワークのクレデンシャル(例えば、ネットワーク名及びパスワード)を得ることができる。例えば、上述したプロセス1100及び1200は、コントローラによりアクセサリへ送信される暗号メッセージ、例えば、プローブ要求に、ワイヤレスネットワーククレデンシャルが含まれるようにして、使用することができる。コントローラは、クレデンシャルをアクセサリへ供給するときにワイヤレスネットワークに参加できるが、そのようにする必要はない。ある実施形態では、アクセサリは、ネットワーククレデンシャルを明確に要求せず、コントローラは、ペアリングが確立されると、クレデンシャルを自動的に(例えば、プローブ要求において)送信するように構成される。他の実施形態では、ブロック1310は、例えば、プローブを使用して、クレデンシャルの要求をコントローラへ送信することを含む。
【0121】
ブロック1312において、アクセサリは、ワイヤレスネットワーククレデンシャルをネットワークアクセスポイントへ送信する。WEP、WPA又はWPA2(IEEE802.11適合ネットワークの場合)のような従来の技術を使用して、クレデンシャル又はクレデンシャルから導出された情報をアクセスポイントへセキュアに送信することができる。
【0122】
ブロック1314において、アクセサリは、それが首尾良くネットワークに参加したかどうかに関する情報を待機する。もしそうでなければ、プロセス1300は、ブロック1316において終了となるか、又はアクセサリが再試みとなる(例えば、ブロック1312へ戻ってクレデンシャルを再送信するか、又はブロック1310へ戻って新たなクレデンシャルを得る)。
【0123】
ネットワークに参加した後、アクセサリは、ワイヤレスネットワークプロトコルを使用してネットワーク上の他の装置と通信する(ブロック1318)。ある実施形態では、コントローラとのペアリングは、アクセサリがワイヤレスネットワークに参加すると終了となる。他の実施形態では、ペアリングセッションが不定にオープンのままであり、コントローラ及びアクセサリは、いずれかの装置がワイヤレスネットワークに参加したままであるかどうかに関わらず、側波帯で通信することが許される。
【0124】
ある実施形態では、ユーザは、コントローラと対話することによりペアリング及びネットワーク参加プロセスを制御することができる。図14は、本発明の一実施形態によりアクセサリをワイヤレスネットワークに容易に参加させるためにコントローラにより実行できるプロセス1400のフローチャートである。
【0125】
プロセス1400は、コントローラがワイヤレスアクセサリとペアリングする準備ができたときにスタートする(ブロック1402)。例えば、ユーザは、ワイヤレス装置と通信するための制御インターフェイスをなすコントローラのアプリケーションプログラムを起動することができる。ある実施形態では、このプログラムは、ワイヤレスネットワークを経てアクセサリへデジタルメディアデータをストリーミングできるメディアアセット再生プログラムである(例えば、本出願の譲受人であるアップル社により提供されるiTunes(登録商標)メディアアセット管理プログラム)。
【0126】
ブロック1404において、コントローラは、ワイヤレスアクセサリを探索するためのインストラクションをユーザから受け取る。例えば、ユーザは、アプリケーションプログラムと対話して、ワイヤレスアクセサリをサーチするようにコントローラに命令することができる。ブロック1406において、コントローラは、ブラウジングプローブをブロードキャストし、例えば、コントローラがペアリングすべきアクセサリをサーチしていることを指示するプローブ要求をブロードキャストする。
【0127】
ブロック1408において、コントローラは、アクセサリからプローブ応答を受け取る。上述したように、このプローブ応答は、アクセサリに関する情報を含むことができる。ブロック1410において、コントローラは、アクセサリに関する情報(例えば、プローブ応答から抽出された情報)をユーザに表示する。ブロック1412において、コントローラは、ペアリングを行うべきであるという確認をユーザから受け取る。この確認が受け取られない場合には、プロセス1400は、終了となるか(ブロック1414)又はブロック1406へ戻って、異なるアクセサリからのプローブ要求をサーチする。
【0128】
ブロック1412において確認が受け取られると、コントローラは、ブロック1416においてアクセサリとのキーネゴシエーションプロセス(例えば、上述したプロセス800)を開始する。ブロック1418において、キーネゴシエーションの一部分として、コントローラは、例えば、上述したように、ユーザ確認のためのパスコードを表示することができる。ブロック1420において、ユーザは、パスコードを確認する。パスコードが確認されない場合には、プロセス1400は、ブロック1422で終了となるか又は前のブロックへ戻って再び試みることができる。パスコードが確認される場合には、コントローラは、ブロック1424において、ペアリングを完了する(例えば、プロセス800を完了する)。ある実施形態では、ペアリングを完了することは、ペアリングが確立されたことを確認するためにプローブをアクセサリへ送信することを含む。
【0129】
ペアリングが確立されると、ブロック1426において、コントローラは、例えば、上述したプロセス1100及び1200を使用して、ペアリングリンクを経てアクセサリへワイヤレスネットワーククレデンシャルを送信し、そのワイヤレスネットワーククレデンシャルは、例えば、プローブ要求において、コントローラによりアクセサリへ送信される暗号メッセージに含まれる。ある実施形態では、コントローラは、ユーザ入力を得て、アクセサリが参加すべきネットワークを選択するか、或いはコントローラが既に参加しているワイヤレスネットワーク、又は(例えば、ユーザにより)以前に識別された好ましいワイヤレスネットワークを自動的に選択することができる。又、ある実施形態では、コントローラは、ペアリングが確立されると、(例えば、プローブ要求において)クレデンシャルをアクセサリへ自動的に送信するように構成できる。他の実施形態では、ブロック1426は、アクセサリからクレデンシャルの要求を受け取ることを含み、そのような要求は、プローブを使用してペアリングリンクを経て送信することができる。
【0130】
ブロック1428において、コントローラは、アクセサリがネットワークに参加したかどうか決定する。もしそうでなければ、プロセス1400は、ブロック1430で終了となるか、又は前の段階へ戻って再試みするか、或いはプロセス1400は、ブロック1428において、アクセサリが参加するまで又は他のユーザインストラクションが受け取られるまで待機となる。アクセサリがネットワークに参加すると、コントローラは、ブロック1432においてワイヤレスネットワークを経てアクセサリと通信し、例えば、メディアデータをアクセサリへストリーミングする。
【0131】
上述したように、ある実施形態では、キーネゴシエーションではなくパスワードベースの認証を使用してペアリングを確立することができる。図15は、本発明の一実施形態により、パスワードベースの認証をサポートするアクセサリの、ワイヤレスネットワークへの参加を容易にするためにコントローラにより実行できるプロセス1500のフローチャートである。
【0132】
プロセス1500は、コントローラがワイヤレスアクセサリとペアリングする準備ができたときにスタートする(ブロック1502)。ブロック1504において、コントローラは、ワイヤレスアクセサリを探索するためのインストラクションをユーザから受け取る。ブロック1506において、コントローラは、ブラウジングプローブをブロードキャストし、又、ブロック1508において、コントローラは、アクセサリからプローブ応答を受け取る。これらブロックは、上述したプロセス1400における対応ブロックと一般的に同様である。
【0133】
ブロック1510において、コントローラは、アクセサリに関する情報をユーザに表示する。この例では、ブロック1508で受け取られたアクセサリからのプローブ応答は、アクセサリがパスワードベースの認証を使用するという指示を含み、又、ブロック1512において、コントローラは、例えば、図10のプロンプトスクリーンを使用して、アクセサリパスワードを入力するようにユーザを促す。ブロック1514において、パスワードの入力は、コントローラが処理を進めるべきであるという確認として働き、パスワードが入力されない(例えば、ユーザが動作をキャンセルした)場合には、プロセス1500は、ブロック1516において終了となる。
【0134】
ブロック1518において、コントローラは、(例えば、前記プロセス900により)ブロック1510でユーザにより供給されたパスワードに一部分基づいてアクセサリとのペアリングを確立する。
【0135】
セキュアなペアリングリンクが確立されると、ブロック1520において、コントローラは、そのリンクを経てアクセサリへワイヤレスネットワーククレデンシャルを送信する。これは、上述したプロセス1400のブロック1426と一般的に同様である。
【0136】
ブロック1522において、コントローラは、アクセサリがネットワークに参加したかどうか決定する。もしそうでなければ、プロセス1500は、ブロック1524において終了となるか、又は前の段階へ戻って再試みとなるか、或いはコントローラは、ブロック1522において、アクセサリが参加するまで又は他のユーザインストラクションが受け取られるまで待機となる。アクセサリがネットワークに参加すると、コントローラは、ブロック1526において、ワイヤレスネットワークを経てアクセサリと通信し、例えば、アクセサリへメディアデータをストリーミングさせる。
【0137】
ここに述べるネットワーク参加プロセスは、例示に過ぎず、変更や修正が考えられることは明らかである。順次のものとして説明したステップは、並列に実行されてもよく、ステップの順序を変えてもよく、そしてステップは、変更、結合、追加、又は省略されてもよい。アクセサリ及びコントローラは、ペアリングを確立するための種々の技術を使用して、アクセサリが参加できるワイヤレスネットワークのクレデンシャルをアクセサリが得られるようにする。更に、コントローラは、ワイヤレスネットワークのクレデンシャルをアクセサリに与えるものとして説明されたが、ここに述べるペアリングは、両方向通信をサポートできることが明らかであり、又、アクセサリが、ネットワークのクレデンシャル(又は他の構成情報又は制御信号)をコントローラに与えることもできる。
【0138】
本発明は、特定の実施形態について説明したが、当業者であれば、多数の変更が考えられることが明らかであろう。例えば、本発明は、IEEE802.11適合のワイヤレスネットワークの環境において、そのようなネットワークについて定義されたプローブ要求及びプローブ応答フレームを、上述した種々のデータアイテムを与えるために含まれるベンダー特有の情報エレメントと共に使用して実施できることが意図されるが、他のワイヤレスプロトコル(既存のもの又は将来のもの)も、ネットワークにまだ参加していない装置間で情報を通信するのに使用できるメッセージフォーマットを含み得ることが意図される。本発明の実施形態は、そのようなプロトコルにも適応させることができる。従って、特定の情報がプローブ要求又はプローブ応答に含まれるものとしてここに説明されたが、そのような使用は例示に過ぎず、一般的な語「プローブ」は、プローブ要求及びプローブ応答や、共通のネットワークに現在参加していない2つのワイヤレス装置間で交換できる他のメッセージフォーマットも包含するものと理解されたい。
【0139】
上述した実施形態では、ペアリングプロセスは、コントローラがブラウジングプローブ要求をブロードキャストすることで開始でき、アクセサリは、ペアリング中にそれに応答する。上述したように、このような実施形態におけるコントローラは、プローブ要求を受け取り又はそれに応答する必要はない。別の実施形態では、ペアリングプロセスは、アクセサリがプローブ要求をブロードキャストすることで開始でき、コントローラは、それに応答して、アクセサリとのペアリングに利用できることを指示する。
【0140】
更に、説明上、特定の暗号技術を参照したが、コントローラ及びアクセサリが両立する技術を使用するならば、本発明は、その特定の暗号技術に限定されないことを理解されたい。
【0141】
上述した実施形態は、特定のハードウェア及びソフトウェアコンポーネントを参照したが、当業者であれば、ハードウェア及び/又はソフトウェアコンポーネントの異なる組み合わせも使用でき、且つハードウェアで具現化されると説明された特定の動作をソフトウェアで具現化することもできるし、又はその逆も行えることが明らかであろう。
【0142】
回路、論理モジュール、プロセッサ、及び/又は他のコンポーネントは、ここに述べる種々の動作を遂行するように構成される。当業者であれば、具現化によって、このような構成は、特定のコンポーネントの設計、設定、相互接続及び/又はプログラミングを通して達成することもできるし、且つ具現化によって、構成されたコンポーネントは、異なる動作に対して再構成できてもできなくてもよいことが明らかであろう。例えば、プログラム可能なプロセッサは、適当な実行可能なコードを与えることにより構成でき、専用のロジック回路は、ロジックゲート及び他の回路素子を適当に接続することにより構成でき、等々である。
【0143】
本発明の種々の特徴を組み込んだコンピュータプログラムは、種々のコンピュータ読み取り可能な記憶媒体においてエンコードされ、適当な媒体は、磁気ディスク又はテープ、コンパクトディスク(CD)又はDVD(デジタル多様性ディスク)のような光学的記憶媒体、フラッシュメモリ、等を含む。プログラムコードでエンコードされるコンピュータ読み取り可能な記憶媒体は、両立性装置でパッケージされてもよいし、又は他の装置とは個別に設けられてもよい。更に、プログラムコードは、インターネットを含む種々のプロトコルに適合するワイヤード、光学、及び/又はワイヤレスネットワークを経てエンコード及び送信され、例えば、インターネットのダウンロードを経て配布することができる。
【0144】
従って、本発明は、特定の実施形態について説明したが、特許請求の範囲内に含まれる全ての変更や等効物を包含することが明らかであろう。
【符号の説明】
【0145】
100:コントローラ
110:アクセサリ(プリンタ)
112、122:ペアリング
120:アクセサリ(ステレオスピーカ)
200:コントローラ
202:プロセッサ
204:ユーザインターフェイス
206:ワイヤレスインターフェイス
208:記憶媒体
210:ネットワーククレデンシャル
300:アクセサリ
302:プロセッサ
304:ユーザインターフェイス
306:ワイヤレスインターフェイス
308:記憶媒体
310:プリンティング要素
400:アクセサリ
402:プロセッサ
406:ワイヤレスインターフェイス
408:記憶媒体
410:スピーカ
412:装置パスワード
【特許請求の範囲】
【請求項1】
アクセサリとコントローラとの間にワイヤレス通信リンクを確立する方法において、
コントローラがそれとペアリングすべきアクセサリをサーチしていることを示す第1のプローブをコントローラからアクセサリにより受信する段階と、
前記第1のプローブに応答して第2のプローブをアクセサリによりコントローラへ送信する段階と、
コントローラとの共有シークレットをアクセサリによって確立する段階であって、その共有シークレットの確立は、少なくともアクセサリにより送信される第3のプローブ及びアクセサリにより受信される第4のプローブを含む複数の付加的なプローブを使用してコントローラとパブリックキーを交換することを含むような段階と、
前記共有シークレットがコントローラによって共有されることをアクセサリにより確認する段階と、
前記共有シークレットを使用して更に別の暗号キーをアクセサリによって発生する段階と、
暗号メッセージを含む第5のプローブをコントローラからアクセサリによって受信する段階と、
前記更に別の暗号キーを使用して前記暗号メッセージを解読する段階と、
を備えた方法。
【請求項2】
コントローラとの共有シークレットをアクセサリにより確立する前記段階は、
コントローラパブリックキーを含む第4のプローブをコントローラから受信する段階、
アクセサリプライベートキー及びアクセサリパブリックキーをアクセサリにより発生する段階、
アクセサリパブリックキーを含む第3のプローブをアクセサリによってコントローラへ送信する段階、及び
前記コントローラパブリックキー及びアクセサリパブリックキーに基づいて共有シークレットを計算する段階、
を含む請求項1に記載の方法。
【請求項3】
共有シークレットがコントローラによって共有されることをアクセサリにより確認する前記段階は、
共有シークレットからパスコードをアクセサリにより計算する段階、及び
そのパスコードをアクセサリによりユーザに与える段階、
を含む請求項2に記載の方法。
【請求項4】
コントローラとの共有シークレットをアクセサリにより確立する前記段階は、
アクセサリによって固定パスワードを使用して、アクセサリパブリックキーを発生する段階、
アクセサリによってランダムソルトを発生する段階、
アクセサリパブリックキー及びランダムソルトを含む第3のプローブをアクセサリによりコントローラへ送信する段階、
コントローラパブリックキーと、ランダムソルトに基づくコントローラ応答とを含む第4のプローブをコントローラからアクセサリにより受信する段階、
前記コントローラパブリックキー、コントローラプライベートキー、及びランダムソルトを使用して、共有シークレットをアクセサリにより計算する段階、
を含む請求項1に記載の方法。
【請求項5】
共有シークレットがコントローラによって共有されることをアクセサリにより確認する前記段階は、
共有シークレットを使用してコントローラ応答をアクセサリにより検証する段階、
共有シークレットを使用してアクセサリ応答をアクセサリにより計算する段階、及び
前記アクセサリ応答を含む第6のプローブをアクセサリによりコントローラへ送信する段階、
を含む請求項4に記載の方法。
【請求項6】
前記暗号メッセージは、アクセスポイントを有するワイヤレスネットワークに関連したクレデンシャルを含み、前記方法は、更に、
ワイヤレスネットワークに参加する要求であって少なくとも一部分は前記クレデンシャルに基づくものである要求をアクセサリによりアクセスポイントへ送信する段階、
を含む請求項1に記載の方法。
【請求項7】
ワイヤレスインターフェイスと、
前記ワイヤレスインターフェイスに結合されたプロセッサであって、
コントローラにより送信されたブラウジングプローブ要求を、前記ワイヤレスインターフェイスを経て受信し、そのブラウジングプローブは、コントローラがペアリングに利用できることを示すものであり、
前記ブラウジングプローブ要求に応答して、識別プローブ応答を、前記ワイヤレスインターフェイスを経て送信し、その識別プローブ応答は、アクセサリ識別情報を含むものであり、
コントローラとのペアリングを確立し、
ワイヤレスネットワークに関連したクレデンシャルをコントローラからワイヤレスインターフェイスを経て受信し、そのクレデンシャルは、コントローラから受け取る更に別のプローブ要求における暗号情報として受信されるものであり、
前記クレデンシャルを使用して、ワイヤレスネットワークに参加する、
というように構成されたプロセッサと、
を備えたアクセサリ。
【請求項8】
前記ブラウジングプローブ要求及び更に別のプローブ要求の各々は、IEEE802.11規格群に適合するプローブ要求フレームを含み、前記識別プローブ応答は、IEEE802.11規格群に適合するプローブ応答フレームである、請求項7に記載のアクセサリ。
【請求項9】
スピーカを更に備え、前記プロセッサは、更に、
ワイヤレスネットワークを経て、コントローラからストリーム状のオーディオデータを受信し、この受信は、ワイヤレスネットワークに参加した後に行われ、
前記ストリーム状のオーディオデータをアナログ信号に変換し、
そのアナログ信号を使用して前記スピーカを駆動する、
というように構成された請求項7に記載のアクセサリ。
【請求項10】
プリンティング要素を更に備え、前記プロセッサは、更に、
ワイヤレスネットワークを経て、コントローラからデータを受信し、この受信は、ワイヤレスネットワークに参加した後に行われ、
そのデータに応答してプリントアウトを発生するように前記プリンティング要素を駆動する、
というように構成された請求項7に記載のアクセサリ。
【請求項11】
アクセサリとコントローラとの間にワイヤレス通信リンクを確立する方法において、
コントローラがそれとペアリングすべきアクセサリをブラウジングしていることを示す第1のプローブをコントローラによりブロードキャストする段階と、
アクセサリについての識別情報を含む第2のプローブをアクセサリからコントローラにより受信する段階と、
アクセサリとの共有シークレットをコントローラにより確立する段階と、
その共有シークレットがアクセサリにより共有されることをコントローラによって確認する段階と、
その共有シークレットを使用して更に別の暗号キーをコントローラにより発生する段階と、
前記暗号キーを使用してメッセージをコントローラにより暗号化する段階と、
その暗号化されたメッセージを含む第3のプローブをコントローラによりアクセサリへ送信する段階と、
を備えた方法。
【請求項12】
共有シークレットを確立する前記段階は、コントローラにより受信される第4のプローブ及びコントローラにより送信される第5のプローブを含む複数の付加的なプローブを使用してアクセサリとパブリックキーを交換することを含む、請求項11に記載の方法。
【請求項13】
前記第1のプローブは、コントローラのパブリックキーを含み、前記第2のプローブは、アクセサリのパブリックキーを含み、そして共有シークレットを確立する前記段階は、
コントローラにより第2のプローブからアクセサリのパブリックキーを抽出し、
アクセサリのパブリックキー及びコントローラのパブリックキーに基づいてシークレットを計算する、
ことを含む請求項11に記載の方法。
【請求項14】
前記暗号化されたメッセージは、ワイヤレスネットワークに参加するためにアクセサリにより使用可能なクレデンシャルを含む、請求項11に記載の方法。
【請求項15】
クレデンシャルを含む前記暗号化されたメッセージを送信するのに続いて、コントローラにより、ワイヤレスネットワークを経てアクセサリと通信することを更に含む、請求項14に記載の方法。
【請求項16】
ワイヤレスインターフェイスと、
ユーザインターフェイスと、
前記ワイヤレスインターフェイス及びユーザインターフェイスに結合されたプロセッサと、
を備え、前記プロセッサは、
アクセサリ識別情報を含む第1のプローブをアクセサリからワイヤレスインターフェイスを経て検出し、
ユーザインターフェイスを経て通信して、アクセサリがワイヤレスネットワークに参加すべきであることを確認し、
ワイヤレスインターフェイスを経てアクセサリと通信して、ペアリングを確立し、このペアリングの確立は、複数の付加的なプローブを使用してアクセサリと情報を交換することを含み、その複数の付加的なプローブは、コントローラにより受信される第3のプローブ及びコントローラにより送信される第4のプローブを含み、更に、ユーザインターフェイスを経て共有シークレットの確認を得ることも含み、
ワイヤレスネットワークに関連したクレデンシャルを、ペアリングの確立に続いて、ワイヤレスインターフェイスを経てアクセサリへ送信し、前記クレデンシャルは、第5のプローブに含まれる暗号メッセージにおいて送信される、
ように構成されたコントローラ。
【請求項17】
前記プロセッサは、更に、ユーザインターフェイスを経て通信して、アクセサリがワイヤレスネットワークに参加すべきであることを確認することが、
前記第1のプローブからアクセサリ識別情報を抽出し、
前記抽出されたアクセサリ識別情報の少なくとも一部分を、ユーザインターフェイスを経てユーザへ提示し、
アクセサリがワイヤレスネットワークに参加すべきであるという確認を、ユーザインターフェイスを経て受信する、
ことを含むように構成される、請求項16に記載のコントローラ。
【請求項18】
前記プロセッサは、更に、ワイヤレスインターフェイスを経てアクセサリと通信して、ペアリングを確立することが、
コントローラパブリックキーをコントローラにより発生し、
コントローラパブリックキーを含む第4のプローブをコントローラによりアクセサリへ送信し、
アクセサリパブリックキーを含む第3のプローブをコントローラにより受信し、
少なくとも一部分はコントローラパブリックキー及びアクセサリパブリックキーに基づいてコントローラにより共有シークレットを計算し、
コントローラにより共有シークレットからパスコードを計算し、
コントローラによりユーザインターフェイスを経てユーザへパスコードを提示し、
パスコードがアクセサリにより計算されたパスコードに一致するという確認をコントローラによりユーザインターフェイスを経て受信し、
クレデンシャルを暗号化するのに使用される更に別の暗号キーを、前記共有シークレットを使用して計算する、
ことを含むように構成される、請求項16に記載のコントローラ。
【請求項19】
前記プロセッサは、更に、
前記クレデンシャルを送信するのに続いて、アクセサリがワイヤレスネットワークに参加したことを確認し、
アクセサリがワイヤレスネットワークに参加したことを確認した後に、ワイヤレスネットワークを経てアクセサリへデータを送信する、
ように構成される、請求項16に記載のコントローラ。
【請求項20】
アクセサリとコントローラとの間にワイヤレス通信リンクを確立するためのシステムにおいて、
コントローラがそれとペアリングすべきアクセサリをサーチしていることを示す第1のプローブをコントローラからアクセサリにより受信する手段と、
前記第1のプローブに応答して第2のプローブをアクセサリによりコントローラへ送信する手段と、
コントローラとの共有シークレットをアクセサリによって確立する手段であって、その共有シークレットの確立は、少なくともアクセサリにより送信される第3のプローブ及びアクセサリにより受信される第4のプローブを含む複数の付加的なプローブを使用してコントローラとパブリックキーを交換することを含むような手段と、
前記共有シークレットがコントローラによって共有されることをアクセサリにより確認する手段と、
前記共有シークレットを使用して更に別の暗号キーをアクセサリによって発生する手段と、
暗号メッセージを含む第5のプローブをコントローラからアクセサリによって受信する手段と、
前記更に別の暗号キーを使用して前記暗号メッセージを解読する手段と、
を備えたシステム。
【請求項1】
アクセサリとコントローラとの間にワイヤレス通信リンクを確立する方法において、
コントローラがそれとペアリングすべきアクセサリをサーチしていることを示す第1のプローブをコントローラからアクセサリにより受信する段階と、
前記第1のプローブに応答して第2のプローブをアクセサリによりコントローラへ送信する段階と、
コントローラとの共有シークレットをアクセサリによって確立する段階であって、その共有シークレットの確立は、少なくともアクセサリにより送信される第3のプローブ及びアクセサリにより受信される第4のプローブを含む複数の付加的なプローブを使用してコントローラとパブリックキーを交換することを含むような段階と、
前記共有シークレットがコントローラによって共有されることをアクセサリにより確認する段階と、
前記共有シークレットを使用して更に別の暗号キーをアクセサリによって発生する段階と、
暗号メッセージを含む第5のプローブをコントローラからアクセサリによって受信する段階と、
前記更に別の暗号キーを使用して前記暗号メッセージを解読する段階と、
を備えた方法。
【請求項2】
コントローラとの共有シークレットをアクセサリにより確立する前記段階は、
コントローラパブリックキーを含む第4のプローブをコントローラから受信する段階、
アクセサリプライベートキー及びアクセサリパブリックキーをアクセサリにより発生する段階、
アクセサリパブリックキーを含む第3のプローブをアクセサリによってコントローラへ送信する段階、及び
前記コントローラパブリックキー及びアクセサリパブリックキーに基づいて共有シークレットを計算する段階、
を含む請求項1に記載の方法。
【請求項3】
共有シークレットがコントローラによって共有されることをアクセサリにより確認する前記段階は、
共有シークレットからパスコードをアクセサリにより計算する段階、及び
そのパスコードをアクセサリによりユーザに与える段階、
を含む請求項2に記載の方法。
【請求項4】
コントローラとの共有シークレットをアクセサリにより確立する前記段階は、
アクセサリによって固定パスワードを使用して、アクセサリパブリックキーを発生する段階、
アクセサリによってランダムソルトを発生する段階、
アクセサリパブリックキー及びランダムソルトを含む第3のプローブをアクセサリによりコントローラへ送信する段階、
コントローラパブリックキーと、ランダムソルトに基づくコントローラ応答とを含む第4のプローブをコントローラからアクセサリにより受信する段階、
前記コントローラパブリックキー、コントローラプライベートキー、及びランダムソルトを使用して、共有シークレットをアクセサリにより計算する段階、
を含む請求項1に記載の方法。
【請求項5】
共有シークレットがコントローラによって共有されることをアクセサリにより確認する前記段階は、
共有シークレットを使用してコントローラ応答をアクセサリにより検証する段階、
共有シークレットを使用してアクセサリ応答をアクセサリにより計算する段階、及び
前記アクセサリ応答を含む第6のプローブをアクセサリによりコントローラへ送信する段階、
を含む請求項4に記載の方法。
【請求項6】
前記暗号メッセージは、アクセスポイントを有するワイヤレスネットワークに関連したクレデンシャルを含み、前記方法は、更に、
ワイヤレスネットワークに参加する要求であって少なくとも一部分は前記クレデンシャルに基づくものである要求をアクセサリによりアクセスポイントへ送信する段階、
を含む請求項1に記載の方法。
【請求項7】
ワイヤレスインターフェイスと、
前記ワイヤレスインターフェイスに結合されたプロセッサであって、
コントローラにより送信されたブラウジングプローブ要求を、前記ワイヤレスインターフェイスを経て受信し、そのブラウジングプローブは、コントローラがペアリングに利用できることを示すものであり、
前記ブラウジングプローブ要求に応答して、識別プローブ応答を、前記ワイヤレスインターフェイスを経て送信し、その識別プローブ応答は、アクセサリ識別情報を含むものであり、
コントローラとのペアリングを確立し、
ワイヤレスネットワークに関連したクレデンシャルをコントローラからワイヤレスインターフェイスを経て受信し、そのクレデンシャルは、コントローラから受け取る更に別のプローブ要求における暗号情報として受信されるものであり、
前記クレデンシャルを使用して、ワイヤレスネットワークに参加する、
というように構成されたプロセッサと、
を備えたアクセサリ。
【請求項8】
前記ブラウジングプローブ要求及び更に別のプローブ要求の各々は、IEEE802.11規格群に適合するプローブ要求フレームを含み、前記識別プローブ応答は、IEEE802.11規格群に適合するプローブ応答フレームである、請求項7に記載のアクセサリ。
【請求項9】
スピーカを更に備え、前記プロセッサは、更に、
ワイヤレスネットワークを経て、コントローラからストリーム状のオーディオデータを受信し、この受信は、ワイヤレスネットワークに参加した後に行われ、
前記ストリーム状のオーディオデータをアナログ信号に変換し、
そのアナログ信号を使用して前記スピーカを駆動する、
というように構成された請求項7に記載のアクセサリ。
【請求項10】
プリンティング要素を更に備え、前記プロセッサは、更に、
ワイヤレスネットワークを経て、コントローラからデータを受信し、この受信は、ワイヤレスネットワークに参加した後に行われ、
そのデータに応答してプリントアウトを発生するように前記プリンティング要素を駆動する、
というように構成された請求項7に記載のアクセサリ。
【請求項11】
アクセサリとコントローラとの間にワイヤレス通信リンクを確立する方法において、
コントローラがそれとペアリングすべきアクセサリをブラウジングしていることを示す第1のプローブをコントローラによりブロードキャストする段階と、
アクセサリについての識別情報を含む第2のプローブをアクセサリからコントローラにより受信する段階と、
アクセサリとの共有シークレットをコントローラにより確立する段階と、
その共有シークレットがアクセサリにより共有されることをコントローラによって確認する段階と、
その共有シークレットを使用して更に別の暗号キーをコントローラにより発生する段階と、
前記暗号キーを使用してメッセージをコントローラにより暗号化する段階と、
その暗号化されたメッセージを含む第3のプローブをコントローラによりアクセサリへ送信する段階と、
を備えた方法。
【請求項12】
共有シークレットを確立する前記段階は、コントローラにより受信される第4のプローブ及びコントローラにより送信される第5のプローブを含む複数の付加的なプローブを使用してアクセサリとパブリックキーを交換することを含む、請求項11に記載の方法。
【請求項13】
前記第1のプローブは、コントローラのパブリックキーを含み、前記第2のプローブは、アクセサリのパブリックキーを含み、そして共有シークレットを確立する前記段階は、
コントローラにより第2のプローブからアクセサリのパブリックキーを抽出し、
アクセサリのパブリックキー及びコントローラのパブリックキーに基づいてシークレットを計算する、
ことを含む請求項11に記載の方法。
【請求項14】
前記暗号化されたメッセージは、ワイヤレスネットワークに参加するためにアクセサリにより使用可能なクレデンシャルを含む、請求項11に記載の方法。
【請求項15】
クレデンシャルを含む前記暗号化されたメッセージを送信するのに続いて、コントローラにより、ワイヤレスネットワークを経てアクセサリと通信することを更に含む、請求項14に記載の方法。
【請求項16】
ワイヤレスインターフェイスと、
ユーザインターフェイスと、
前記ワイヤレスインターフェイス及びユーザインターフェイスに結合されたプロセッサと、
を備え、前記プロセッサは、
アクセサリ識別情報を含む第1のプローブをアクセサリからワイヤレスインターフェイスを経て検出し、
ユーザインターフェイスを経て通信して、アクセサリがワイヤレスネットワークに参加すべきであることを確認し、
ワイヤレスインターフェイスを経てアクセサリと通信して、ペアリングを確立し、このペアリングの確立は、複数の付加的なプローブを使用してアクセサリと情報を交換することを含み、その複数の付加的なプローブは、コントローラにより受信される第3のプローブ及びコントローラにより送信される第4のプローブを含み、更に、ユーザインターフェイスを経て共有シークレットの確認を得ることも含み、
ワイヤレスネットワークに関連したクレデンシャルを、ペアリングの確立に続いて、ワイヤレスインターフェイスを経てアクセサリへ送信し、前記クレデンシャルは、第5のプローブに含まれる暗号メッセージにおいて送信される、
ように構成されたコントローラ。
【請求項17】
前記プロセッサは、更に、ユーザインターフェイスを経て通信して、アクセサリがワイヤレスネットワークに参加すべきであることを確認することが、
前記第1のプローブからアクセサリ識別情報を抽出し、
前記抽出されたアクセサリ識別情報の少なくとも一部分を、ユーザインターフェイスを経てユーザへ提示し、
アクセサリがワイヤレスネットワークに参加すべきであるという確認を、ユーザインターフェイスを経て受信する、
ことを含むように構成される、請求項16に記載のコントローラ。
【請求項18】
前記プロセッサは、更に、ワイヤレスインターフェイスを経てアクセサリと通信して、ペアリングを確立することが、
コントローラパブリックキーをコントローラにより発生し、
コントローラパブリックキーを含む第4のプローブをコントローラによりアクセサリへ送信し、
アクセサリパブリックキーを含む第3のプローブをコントローラにより受信し、
少なくとも一部分はコントローラパブリックキー及びアクセサリパブリックキーに基づいてコントローラにより共有シークレットを計算し、
コントローラにより共有シークレットからパスコードを計算し、
コントローラによりユーザインターフェイスを経てユーザへパスコードを提示し、
パスコードがアクセサリにより計算されたパスコードに一致するという確認をコントローラによりユーザインターフェイスを経て受信し、
クレデンシャルを暗号化するのに使用される更に別の暗号キーを、前記共有シークレットを使用して計算する、
ことを含むように構成される、請求項16に記載のコントローラ。
【請求項19】
前記プロセッサは、更に、
前記クレデンシャルを送信するのに続いて、アクセサリがワイヤレスネットワークに参加したことを確認し、
アクセサリがワイヤレスネットワークに参加したことを確認した後に、ワイヤレスネットワークを経てアクセサリへデータを送信する、
ように構成される、請求項16に記載のコントローラ。
【請求項20】
アクセサリとコントローラとの間にワイヤレス通信リンクを確立するためのシステムにおいて、
コントローラがそれとペアリングすべきアクセサリをサーチしていることを示す第1のプローブをコントローラからアクセサリにより受信する手段と、
前記第1のプローブに応答して第2のプローブをアクセサリによりコントローラへ送信する手段と、
コントローラとの共有シークレットをアクセサリによって確立する手段であって、その共有シークレットの確立は、少なくともアクセサリにより送信される第3のプローブ及びアクセサリにより受信される第4のプローブを含む複数の付加的なプローブを使用してコントローラとパブリックキーを交換することを含むような手段と、
前記共有シークレットがコントローラによって共有されることをアクセサリにより確認する手段と、
前記共有シークレットを使用して更に別の暗号キーをアクセサリによって発生する手段と、
暗号メッセージを含む第5のプローブをコントローラからアクセサリによって受信する手段と、
前記更に別の暗号キーを使用して前記暗号メッセージを解読する手段と、
を備えたシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−50096(P2012−50096A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−202365(P2011−202365)
【出願日】平成23年8月30日(2011.8.30)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2011−202365(P2011−202365)
【出願日】平成23年8月30日(2011.8.30)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]