説明

無線ネットワークにおけるガロア/カウンターモード暗号化

システムは複数のパケットを暗号化するために利用される第1の一時鍵を生成する一時鍵モジュールと、第1の一時鍵に基づいて暗号化される各パケットのノンスを生成するノンスモジュールであって、各ノンスは、ノンスモジュールが生成する他のノンスに関連付けられているパケット番号とは異なるパケット番号を含むノンスモジュールと、ノンスモジュールが生成したノンスに含まれるパケット番号が所定の閾値以上であると、その旨を判断するセキュリティモジュールとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、2010年8月18日提出の米国出願第12/858,950号明細書の優先権を主張しており、2009年9月2日提出の米国仮出願第61/239,295号明細書、2009年9月17日提出の米国仮出願第61/243,272号明細書、2009年9月22日提出の米国仮出願第61/244,787号明細書の恩恵を主張している。
【0002】
本願は、2010年5月20日提出の米国出願第12/784,050号明細書に関連している。
【0003】
上述した出願書類の開示内容全体を、ここに参照の目的で組み込む。
【0004】
本開示は、概して無線通信に係り、特に無線通信のセキュリティに係る。
【背景技術】
【0005】
背景技術セクションの開示は、本開示の文客を提示する意図を有する。現在の発明者の、記載されていなければ出願時の先行技術とならないような、背景技術セクションに開示されている内容および記述の側面はいずれも、本開示に対する明示的または暗示的な自認した先行技術とはならないので留意されたい。
【0006】
アイトリプルイー(IEEE)は、無線通信デバイスが従うべきセキュリティプロトコルを定義する幾つかの802.1X仕様を開発している。無線通信デバイスは、セキュリティプロトコルを利用してデバイス間の通信を認証することでデータをセキュアに交換することができる。
【発明の概要】
【0007】
システムは複数のパケットを暗号化するために利用される第1の一時鍵を生成する一時鍵モジュールと、第1の一時鍵に基づいて暗号化される各パケットのノンスを生成するノンスモジュールであって、各ノンスは、ノンスモジュールが生成する他のノンスに関連付けられているパケット番号とは異なるパケット番号を含むノンスモジュールと、ノンスモジュールが生成したノンスに含まれるパケット番号が所定の閾値以上であると、その旨を判断するセキュリティモジュールとを備える。
【0008】
他の特徴としては、方法は、ネットワークデバイスからリンクパートナーに送信される複数のパケットを暗号化するための第1の一時鍵を生成する段階と、複数のパケットのうちの各パケットのノンスを生成する段階であって、ノンスは、複数のパケットのうちのパケットを暗号化するために生成される他のノンスに関連付けられているパケット番号とは異なるパケット番号を含む段階と、ノンスに含まれるパケット番号が所定の閾値以上であると、その旨を判断する段階とを備える。
【0009】
また別の特徴としては、上述したシステムおよび方法は、1以上のプロセッサが実行するコンピュータプログラムにより実装されてもよい。コンピュータプログラムは、これらに限られないがメモリ、不揮発性データストレージ等の有形のコンピュータ可読媒体、および/または、その他の適切な有形の格納媒体に常駐していてよい。
【0010】
本開示のさらなる用途は、以下の詳細な記述、請求項、および図面から明らかになる。詳細な記述よび具体例は、例示のみを目的としており、本開示の範囲を制限する意図はない。
【0011】
本開示は、以下の詳細な記述を、以下で簡単に説明する添付図面とともに読むことで理解が深まる。
【図面の簡単な説明】
【0012】
【図1】ガロア/カウンターモードプロトコル(GCMP)暗号化を利用する無線デバイスの機能ブロック図である。
【0013】
【図2A】ノンスモジュールを示す図1の無線デバイスの機能ブロック図である。
【0014】
【図2B】図2Aのノンスモジュールが生成するGCMPノンスの概略図である。
【0015】
【図3A】図2AのノンスモジュールがGCMPノンスを生成することのできる方法を示す。
【図3B】図2AのノンスモジュールがGCMPノンスを生成することのできる方法を示す。
【図3C】図2AのノンスモジュールがGCMPノンスを生成することのできる方法を示す。
【図3D】図2AのノンスモジュールがGCMPノンスを生成することのできる方法を示す。
【図3E】図2AのノンスモジュールがGCMPノンスを生成することのできる方法を示す。
【図3F】図2AのノンスモジュールがGCMPノンスを生成することのできる方法を示す。
【0016】
【図4】パケット数を使い切った後の一時鍵(TK)リキーイング(TK rekeying)中に送信されるプリミティブで利用される鍵記述子を示す。
【0017】
【図5A】TKリキーイングに新たな一時鍵(TK)に関連付けられる新たな鍵IDを含めるために利用することのできるEAPOLフレームを示す。
【0018】
【図5B】TKリキーイングに新たな一時鍵(TK)に関連付けられる新たな鍵IDを含めるために利用することのできる鍵情報フィールドを示す。
【0019】
【図6】4ウェイのハンドシェークを示す。
【0020】
【図7A】GCMP暗号化モジュールを示す図1の無線デバイスの機能ブロック図である。
【0021】
【図7B】GCMPヘッダを示す。
【0022】
【図7C】GGMPヘッダを示す。
【0023】
【図8】図1の無線デバイスの暗号化モジュールの機能ブロック図である。
【0024】
【図9A】ロバストなセキュリティネットワーク(RSN)機能フィールドを示す。
【0025】
【図9B】リプレイカウンターの用途を示す。
【0026】
【図10】キュー制御モジュールを含む送信デバイスと、リプレイ制御モジュールを含む受信デバイスとを示す。
【発明を実施するための形態】
【0027】
以下の記載はその性質上例示であり、本開示、その用途または利用を制限する意図はない。明瞭性のために、同じ参照番号は図面間で繰り返し利用して、同様の部材であることを示す場合がある。また、A、B、およびCの少なくとも1つ、という言い回しは、非排他的論理和を利用して論理(AまたはBまたはC)の意味とする。方法における段階は、本開示の原理を変更しない限りにおいて、異なる順序で実行することもできる。
【0028】
ここで利用されるモジュールという用語は、1以上のソフトウェアまたはファームウェアイプログラムを実行する特定用途向け集積回路(ASIC)、電子回路、プロセッサ(共有、専用、またはグループ)、および/または、メモリ(共有、専用、またはグループ)、統合型論理回路、および/または、記載する機能を提供するその他の適切なコンポーネントの一部であっても、それらを含んだものであってもよい。
【0029】
ガロア/カウンターモード(GCM)と称される暗号化アルゴリズムは、データを暗号するのに利用される高度暗号化規格(AES)アルゴリズムの処理方法の1つである。暗号化されていないデータにメッセージ認証コード(Message Authentication Code)を生成するために利用されるGCMの変形版は、GMACと称される。GCMおよびGMACは、128ビットのブロックサイズを有する対称鍵ブロック暗号化に基づいている。GMACを有するGCMプロトコルは、GGMプロトコル(GGMP)と称される。以後、GCMおよびGGMプロトコルは、GCMプロトコル(GCMP)と総称する。
【0030】
図1は無線デバイス100を示している。一実装例では、無線デバイス100は、無線ギガビットアライアンス(WGA)が定義する仕様に従って60GHz帯域で通信する。無線デバイス100は、PHYモジュール102、メディアアクセス制御(MAC)モジュール104、およびセキュリティモジュール108を含む。
【0031】
PHYモジュール102は、60GHz帯域で無線デバイス100を無線通信媒体へと、1以上のアンテナ(不図示)を介してインタフェースする。MACモジュール104は、60GHz帯域における無線デバイス100の無線通信媒体へのアクセスを制御する。セキュリティモジュール108は、無線通信媒体を介して無線デバイス100が通信するデータのセキュリティを管理する。
【0032】
MACモジュール104は、暗号化モジュール110、制御されているポート112、および制御されていないポート114を含む。暗号化モジュール110は、ガロア/カウンターモードプロトコル(GCMP)を利用して送信されるデータを暗号化する。制御されているポート112は、暗号化を利用する場合に、暗号化されたデータをセキュアにトランスポートするために利用される。制御されていないポート114は、暗号化されていないデータをトランスポートするために利用される。
【0033】
セキュリティモジュール108は、認証モジュール116および鍵管理モジュール118を含む。認証モジュール116は、無線デバイス100とリンクパートナー(例えばクライアントステーションまたはアクセスポイント)との間の通信を認証する。鍵管理モジュール118は、暗号化モジュール110がデータを暗号化するために利用する鍵(例えば一時鍵)を生成する。
【0034】
認証モジュール116は、マスター鍵モジュール120を含む。マスター鍵モジュール120は、60GHzで無線デバイス100とリンクパートナーとの間の通信セッション要のペアワイズマスター鍵(PMK)を生成する。鍵管理モジュール118は一時鍵モジュール122を含む。一時鍵モジュール122は、ペアワイズマスター鍵(PMK)に基づき一時鍵(例えばペアワイズ一時鍵(PTK))を生成する。暗号化モジュール110は、一時鍵を利用して送信するデータ(例えば平文MACプロトコルデータユニット(MPDU))を暗号化する。
【0035】
具体的には、暗号化モジュール110は、初期化ベクトル(IV)を利用して暗号化を呼び出す(invoke encryption)。初期化ベクトルは本質的にノンスであり、MPDUを暗号化するために一時鍵とともに利用される数値である。暗号化モジュール110は、ある一時鍵について、各MPDUを暗号化するためにそれぞれ異なる初期化ベクトルを利用する。つまり、ある一時鍵において、1つのMPDUを暗号化するために利用した初期化ベクトルは、別のMPDUを暗号化するために再利用はされない、ということである。
【0036】
通常、初期化ベクトルは、96ビットの決定論的な構成を有する(96ビットIVと称する)。初期化ベクトルは、96ビット長よりも長くても短くてもよい(この場合、非96ビットIVと称する)。96ビットIVは、固定フィールドと呼び出しフィールドとを含む。固定フィールドは暗号化デバイス(例えば無線デバイス100)を識別する。例えば固定フィールドは、暗号化デバイスのMACアドレスを含んでよい。
【0037】
呼び出しフィールドは、暗号化する各MPDUを識別する。例えば、呼び出しフィールドは、暗号化するMPDUのパケット番号(PN)を含んでよい。パケット番号は、1つMPDUを暗号化するごとに増分される。従ってある一時鍵において、呼び出しフィールドは、暗号化するMPDU毎に異なる。
【0038】
96ビットIVの場合、iビットの呼び出しフィールド(例えばパケット番号)は、ある一時鍵を利用して暗号化することができるMPDUの数(つまり、呼び出しの数)を、2に制限される。さらに、(96−i)ビットの固定フィールド(例えばMACアドレス)が、同じ一時鍵を利用することができるデバイスの数を、296−iに制限される。
【0039】
従って96ビットIVの場合、i>32の場合、呼び出し数2が232より大きくなりうる。つまり、ある一時鍵において、iビットの呼び出しフィールドを利用して暗号化することができるMPDUの数が、i>32の場合に、232より大きくなる場合がある、ということである。
【0040】
回の呼び出しの後に(ある一時鍵を利用して2個のMPDUが暗号化された後に)、初期化ベクトルが1にリセットされると、新たな一時鍵を利用しない限りは、2回目以降の呼び出しには、ある一時鍵に既に利用された初期化ベクトルを再利用せざるをえなくなり、セキュリティが脅かされる。
【0041】
従って、96ビットIVを利用する場合には、セキュリティが脅かされないようにするために、ある一時鍵についての呼び出しの総数が2回を超えないようにする。
【0042】
非96ビットIVを利用する場合には、GCMアルゴリズムは上記とは異なり、初期化ベクトル>96でありi>32である場合であっても、呼び出し数が232を超えないように設計する。
【0043】
さらに暗号化デバイスは、各暗号化されたMPDUについてメッセージ整合性コード(MIC)を生成する。メッセージ整合性コードは、暗号化されたMPDUを送信するときに、暗号化されたMPDUに添付される。この暗号化されたMPDUを受信する受信デバイスは、このメッセージ整合性コードに基づいて暗号化デバイスの身元を検証する。受信デバイスは、暗号化されたMPDUを復号化しつつ、同時に、暗号化デバイスの身元を検証する。目下のところGCMPでは、メッセージ整合性コードは、64ビットMICについて呼び出し数が232回を超えない(最大パケットサイズ215バイト)ように制限を課している。
【0044】
各MPDUは異なる初期化ベクトルで暗号化されるので、非96ビットIVを利用する場合には、呼び出し数に対する制約は、1つの一時鍵を利用して232個以上はMPDUを暗号化しない、ということに等しくなる。60GHz帯域(または他の非常に高いレートの通信システム)の送信に利用されるデータレートおよびパケットサイズにもよるが、呼び出し数に対する制約は、232個のMPDUを暗号化してしまうと一時鍵が使い切られてしまう(exhausted)、ということを意味する。よって、後続する呼び出しにおいては新たな一時鍵を利用することで、初期化ベクトルが同じ一時鍵に対して再利用されないようにする。
【0045】
非96ビットIVを利用する場合の呼び出し数に対する制約に起因する新たな一時鍵を生成するオーバヘッドは、新たな初期化ベクトル(ここではGCMPノンスと称する)を以下のように構築することで軽減することができる。GCMPノンスは、96ビット長とする(つまり96ビットIV)。GCMPノンスに、ある一時鍵を利用した232個を越える数のMPDUの暗号化を可能とするために、32ビット長より長い呼び出しフィールドを含ませる。この一時鍵を利用することで、この一時鍵を利用して暗号化されるどのMPDUについてもGCMPの値を繰り返すことなく、232個を越える数のMPDUを暗号化することができるようになる。
【0046】
さらにGCMPノンスは、暗号化ブロック鎖(CBC)メディアアクセス制御(MAC)プロトコル(CCMP)ノンスを持つカウンターモード(CTR)から構築することができる。従って既存のCCMPアーキテクチャを活用、利用して、GCMPノンスを生成することができることになる。GCMP暗号化は、CCMP暗号化を採用しているデバイス(例えば2.4/5GHz帯域で動作するデバイス)に実装することもできる。
【0047】
例えば128ビットの一時鍵の場合、CCMPは、104ビット(13オクテット)および64ビットのMICのIV/ノンス(ここではCCMPノンスと称する)を利用する。しかしGCMPでは、96ビットのGCMPノンス(12オクテット)および128ビットのメッセージ整合性コードを推奨している。従って96ビットのGCMPノンスは、CCMP IV/ノンスの長さを1オクテット減らして、104ビットのCCMPノンスから構築することができる。そして、GCMPメッセージ整合性コードは、CCMPメッセージ整合性コードを64ビットから128ビットへ長くすることで生成する。
【0048】
図2Aおよび図2Bに示すように、暗号化モジュール110はノンスモジュール200を含み、ノンスモジュール200はGCMPノンスを以下のように生成する図2Aでは、暗号化モジュール110は、暗号化すべき平文MPDUをMACモジュール104から受信する。また、暗号化モジュール110は、平文MPDUを暗号化するための一時鍵(TK)をセキュリティモジュール108から受信する。
【0049】
ノンスモジュール200は、無線デバイス100のMACアドレスをMACモジュール104から受信する。加えて、暗号化するべき各平文MPDUについて、ノンスモジュール200は、MACモジュール104からパケット番号(PN)を受信する。例えばMACモジュール104は、暗号化のために暗号化モジュール110に入力される平文MPDUの数をカウントするPNカウンターモジュール202を含んでよい。PNカウンターモジュール202は、ノンスモジュール200にPNカウントを出力する。一部の実装例では、MACモジュール104の代わりに、セキュリティモジュール108がPNカウンターモジュール202を含んでもよい。
【0050】
ノンスモジュール200は、MACアドレスおよびPNカウントに基づいて96ビットのGCMPノンスを生成する。暗号化モジュール110はさらに、セキュリティモジュール108から受信する一時鍵(TK)およびGCMPノンスを利用して平文MPDUを暗号化し、さらに、MPDUのメッセージ整合性コードを生成するGCMモジュール204をも含む。
【0051】
図2Bでは、GCMPノンスは2つのフィールドを含む。第1のフィールドは、60GHz帯域の無線デバイス100のMACアドレスを含む。このMACアドレスは、一時鍵(例えばペアワイズ一時鍵、またの名称をPTK)を生成するために利用される。第1のフィールドは通常48ビット長(つまり6オクテット)である。第2のフィールドはパケット番号を含む。GCMPノンスの長さは96ビットなので、第2のフィールドは48ビット長(つまり6オクテット)である。
【0052】
48ビットのパケット番号によって、ある一時鍵について248回の呼び出しが可能となる。つまり、暗号化モジュール110は、ある一時鍵を利用して、248個のMPDUを、248個の異なるパケット番号で暗号化することができる、ということである。1つの一時鍵について、どの248個のパケット番号も繰り返されることがないので、セキュリティが脅かされない。
【0053】
図3Aから図3Fを参照すると、ノンスモジュール200が、GCMPノンスを生成するために様々に異なる方法を採用している様子が描かれている。図3Aでは、ノンスモジュール200は、104ビットのCCMPノンスからプライオリティ・オクテットを削除することにより、104ビットのCCMPノンスからGCMPノンスを構築している。一部の実装例では、ノンスモジュール200は、GCMPノンス同様にプライオリティ・オクテットを含む104ビットのCCMPノンスを利用することもできる。
【0054】
図3Bでは、104ビットのCCMPノンスからプライオリティ・オクテットを削除する代わりに、ノンスモジュール200はパケット番号の長さを1バイト減らすことで(つまり48ビットから40ビットへ減らすことで)、240回の呼び出しを可能としている。一部の実装例では、ノンスモジュール200は、パケット番号の長さからの減少量は8ビットより大きくても小さくてもよい。加えて一部の実装例では、ノンスモジュール200は、リザーブされている8ビットのうち4ビット(ビットb4からb7)をプライオリティ・オクテットからパケット番号に移動させることで44ビットのパケット番号を提供して、244回の呼び出しを可能とすることもできる。
【0055】
図3Cから図3Eでは、2つのフレームが同じノンスを利用しないようにするために、2つのフレームにそれぞれ異なるプライオリティ・フィールド値、異なる管理フィールド値、異なるMACアドレス、または異なるパケット番号を含ませている。図3Cでは、ノンスモジュール200は、GCMPノンス内にプライオリティ・フィールドを含むことで、異なる種類のデータに対しては別のパケット番号を利用するようにしている。
【0056】
44ビットのパケット番号を利用する場合には、データのタイプによって、異なるサービス品質(QoS)を提供することができるように、プライオリティ・フィールドが、あるフレーム内のデータのタイプを示す4ビットのトラフィック識別子(TID)を含んでいる。例えば、ビデオデータを搬送しているフレームには、インターネットデータを搬送しているフレームとは異なるトラフィック識別子を利用することができる。4ビットのプライオリティ・フィールドを利用することで、異なるタイプのデータに対してそれぞれ別のパケット番号(例えばPN0、PN1、…、およびPN5)を利用することができる。プライオリティ・フィールド内の他の4ビットは、44ビットのパケット番号を作成するためにパケット番号に再割り当てされる。
【0057】
8オクテットのGGMPヘッダ(現在利用されているCCMPヘッダと同じサイズ/フォーマット)を維持しつつ44ビットのパケット番号を利用するために、ノンスモジュール200は、PN5に4個のゼロビット(またはその他の無視可能なビット数)をパディングまたは添付する。つまり、PN5は、4つの有用なビットと4つのパディングビットとを有する。GCMPノンスを構築するときに、ノンスモジュール200は4ビットのパッドをPN5から外す。ノンスモジュール200は、PN5のPN0−PN4および4つの有用なビットを利用して44ビットのパケット番号を生成することで、244回の呼び出しを可能とする。
【0058】
プライオリティ・フィールドがGCMPノンスに含まれている場合、異なるトラフィック識別子を有する2つのフレームでは、同じノンスの再利用をしなくても同じパケット番号値を利用することができる。つまり、異なるプライオリティ/TIDフレームキュー同士が、パケット番号を再利用することなく、それぞれ独立したPNカウンターを利用することができる、ということである。利用可能なPNカウンターの数は、プライオリティ・フィールドのサイズにより決定される。例えば4ビットのプライオリティ・フィールドであれば、2個のPNカウンターが利用可能である。プライオリティ・フィールドがGCMPノンスに含まれていない場合には、異なるトラフィック識別子を有するフレームキュー同士間で同じPNカウンターを共有する。
【0059】
図3Dのノンスモジュール200は、GCMPノンスのノンスフラグフィールドにプライオリティ・フィールドを含んでいる。ノンスフラグフィールドは、ノンスフラグフィールドが、プライオリティ・オクテットからの1つのリザーブビットを利用してMPDUが管理フレームであるかデータフレームであるかを示している以外は、図3Aのプライオリティ・オクテットフィールドと同じである。つまり、ノンスフラグフィールドは、MPDUが管理フレームであるかデータフレームであるかを示す管理フィールド(例えばリザーブビット)を含んでいる。管理フィールドがGCMPノンスに含まれている場合には、管理フレームキューとデータフレームキューとは、それぞれ独立したPNカウンターを利用することができる。管理フレームフィールドがGCMPノンスに含まれていない場合には、管理フレームキューとデータフレームキューとが同じPNカウンターを共有する。
【0060】
図3Dのノンスモジュール200は、1オクテットのノンスフラグフィールドを含み、6オクテットのMACアドレスを含む96ビットのGCMPノンスを生成する。ノンスフラグ不イールドは、4つのプライオリティ・ビットb0−b3、管理ビットb4、および3つのリザーブビットb5−b7を含む。ノンスモジュール200は、43ビットのPNを、残りの5オクテットと、3つのリザーブビットb5−b7を利用して生成して、243回の呼び出しを可能とする。
【0061】
図3Eではプライオリティ・フィールドが削除されている。ノンスモジュール200は、1オクテットのノンスフラグフィールドを含み、6オクテットのMACアドレスを含む96ビットのGCMPノンスを生成する。ノンスフラグフィールドは、1つの管理ビットb0と7つのリザーブビットb1−b7とを含む。ノンスモジュール200は、47ビットのパケット番号を、残りの5オクテットと7つのリザーブビットb1−b7とを利用して生成して、247回の呼び出しを可能とする。
【0062】
GCMP暗号化はカウンター前ブロック(J0)を利用する。通常、カウンター前ブロックは128ビット長であり、96ビットのノンスと、「0」ビットを31個、「1」ビットを1個含み、これによりノンスを96個に制限している。つまり、J0=ノンス96‖031‖1となる。この代わりに、カウンター前ブロックJ0のフォーマットを以下のように変更することもできる。つまり、カウンター前ブロックJ0に104ビットのノンス、「0」ビットを23個、および「1」ビットを1個含ませることで、CCMPノンスフォーマットに準じて104ビットのノンスの利用を可能とすることもできる。この場合には、J0=ノンス104‖023‖1となる。
【0063】
図3Fは、128ビット長でありGCMP暗号化で再利用することのできるCCMP暗号化で利用されるCCMPカウンター前ブロックを示している。CCMPカウンター前ブロックは、8ビットフラグ(リザーブビット)、104ビットのノンス、および、16ビットの制御フィールド(全て「0」である)を含む。CCMPカウンター前ブロックの104ビットのノンスは、GCMPカウンター前ブロックJ0を生成するために再利用することができる。例えば暗号化モジュール110がGCMPカウンター前ブロックJ0を生成してよい。
【0064】
図3Aから図3Fは、GCMPノンスを生成する方法の例を示す。これら方法によって、同じパケット番号を再利用することなく、1つの一時鍵で232個を超える数のMPDUを暗号化することができる。同じパケット番号を再利用することなく、1つの一時鍵で232個を超える数のMPDUを暗号化することができるGCM生成方法には、この他の方法もある。
【0065】
1つの一時鍵については、有限期間中にパケット番号を全て利用してしまう(つまり使い切る)場合がある。有限期間の長さは、データレートとパケット番号の長さに応じて決まる。例えばSビットのパケット番号は、2回の呼び出しで使い切られる(つまり、1つの一時鍵で2個のMPDUを暗号化すると使い切られる)。さらにパケット番号は、より高いデータレートではより速く使い切られる。
【0066】
ある一時鍵について同じパケット番号を繰り返すことはできないので、セキュリティモジュール108は、各一時鍵のパケット番号をモニタしている。セキュリティモジュール108は、1つの一時鍵でリンクパートナーとの間に構築される各ペアワイズ一時鍵セキュリティアソシエーション(PTKSA)中に、そのパケット番号をモニタする。パケット番号が使い切られると、セキュリティモジュール108は、この一時鍵を利用してリンクパートナーとの間に構築されたPTKSAを部分的に終了する。
【0067】
加えて、セキュリティモジュール108は、リンクパートナーに、PTKSAのパケット番号が使い切られたことを通知する。例えばセキュリティモジュール108は、ロバストなセキュリティネットワークアソシエーション(RSNA)フレームまたはTKSA終了フレームを、リンクパートナーに送信する。リンクパートナーはRSNA終了フレームまたはPTKSA終了フレームを受信すると、現在のPTKSAを削除する。
【0068】
クライアントステーション(STA)対間のRSNA/TKSAが、パケット番号の使い切りにより終了すると、STA対は、RSNA/TKSAを再度構築して、新たな一時鍵を生成する。例えば、STA対が、ペアワイズマスター鍵(PMK)を保持しており、この同じPMKを利用することで、新たな一時鍵(PTK)を生成する。STA対は4ウェイハンドシェークを利用して新たなPTKを生成する。例えば送信STAのセキュリティモジュール(無線デバイス100のセキュリティモジュール108)と受信STAのセキュリティモジュールとが、4ウェイハンドシェークを行う。
【0069】
別の方法として、セキュリティモジュール108がパケット番号をモニタして、パケット番号が使い切られるときが近づくと、その旨を判断するようにしてもよい。例えばセキュリティモジュール108は、パケット番号が所定の閾値以上になったときを判断してよい。所定の閾値は、パケット番号の長さおよびデータレートに応じて決定することができる。
【0070】
パケット番号が使い切られるときが近づくと(つまり、パケット番号が所定の閾値以上になると)、セキュリティモジュール108は、4ウェイハンドシェークを開始して、パケット番号が使い切られる前に新たな一時鍵を生成することができる。別の方法としては、パケット番号が所定の閾値以上になると、セキュリティモジュール108がピアSTAに対して、4ウェイハンドシェークを開始してパケット番号が使い切られる前に新たな一時鍵を生成するよう要請することもできる。
【0071】
具体的には、セキュリティモジュール108は、4ウェイハンドシェークメッセージに、新たな一時鍵に関連付けて新たな鍵IDを含める。この新たな鍵IDは、新たな一時鍵を生成するために利用される。例えば、一時鍵モジュール122(図1参照)が新たな鍵IDを生成することができる。新たな鍵IDに関連付けられている新たな一時鍵に基づいて、新たなペアワイズ一時鍵セキュリティアソシエーション(PTKSA)がSTA対の間に構築される。PNカウンターモジュール202は、新たな一時鍵を利用して暗号化が始まるとリセットされる。
【0072】
新たな一時鍵をインストールする前は(つまり暗号化モジュール110に格納する前は)、現在の一時鍵がまだ使い切られていない間は、STA対はまだ現在の一時鍵を利用してデータを暗号化することができる。新たな一時鍵が生成されインストールされると、STA対はこの新たな一時鍵(新たな鍵IDに関連付けられたもの)を利用してデータを暗号化することができるようになる。
【0073】
図4は、パケット番号の使い切りについて詳しく説明している。パケット番号が所定の閾値以上となると、送信STAのMACモジュール(例えば図1に示す無線デバイス100のMACモジュール104)はプリミティブを生成する。プリミティブはMLME−PN−使いきり.示唆プリミティブ(MLME-PN-Exhaustion.indication primitive)と称され、MLMEが、送信STAのMACサブレイヤ管理エンティティを示している。図4は、MLME−PN−使いきり.示唆プリミティブで利用される鍵記述子を示している。
【0074】
48ビットのパケット番号の場合には、所定の閾値は248未満であり、セキュリティモジュール108は、後述するように、残りのパケット番号を利用してTKSA/RSNAティアダウンメッセージを送信することができる。例えば所定の閾値は、247および248の間であり、パケット番号は48ビット長である。
【0075】
MLME−PN−使いきり.示唆プリミティブを受信すると、STAの局管理エンティティ(SME)(例えばセキュリティモジュール)は、TKSA/RSNA/アソシエーション/STSLティアダウンプロセスを呼び出す。STAのSMEは、現在のペアワイズ一時鍵セキュリティアソシエーション(PTKSA)と、現在のPTKSAに関連付けられている一時鍵とを削除する。
【0076】
別の方法としては、パケット番号が使い切られると、送信STAのSME(例えば無線デバイス100のセキュリティモジュール108)が、制御されているポート(図1に示す制御されているポート112)をブロックする、というものもある。さらに、送信STAのSMEが、現在利用されている一時鍵を削除する。さらに送信STAのSMEは、4ウェイハンドシェークを開始して(またはピアSTAに4ウェイハンドシェークの開始を要求して)、新たな一時鍵を生成してインストールすることができる。この方法を利用するときには、既存のRSNAおよびアソシエーション/STSLはティアダウンされない。
【0077】
受信STAが第1のハンドシェークメッセージまたはハンドシェーク要求を受信すると、この受信STAは、さらに自身の制御されているポートをブロックすることができる。加えて、受信STAのSMEは、現在利用されている一時鍵を削除することができる。また、受信STAは、新たな一時鍵がインストールされるまでの間は、古い一時鍵を使い続けることもできる(受信STAのパケット番号が使い切られていない限りにおいて)。
【0078】
より詳しくは、パケット番号が使い切られると、送信STAのMACモジュール104は、MLME−PN−使いきり.示唆プリミティブを生成する。セキュリティモジュール108(送信STAのSME)は、現在のPTKSAを削除して、MLMEディソシエーションプリミティブと称されるプリミティブを呼び出す。セキュリティモジュール108は、ピアSTAにディソシエーションフレームを送信する。ディソシエーションフレームを受信すると、ピアSTAは現在のPTKSAを削除する。
【0079】
加えて、セキュリティモジュール108(つまり送信STAのSME)は、グループ一時鍵セキュリティアソシエーション(GTKSA)を削除する。さらにセキュリティモジュール108は、局から局へのリンク(STSL)一時鍵セキュリティアソシエーション(STKSA)を削除する。セキュリティモジュール108は、さらに、STKSAのためにSTSLアプリケーションティアダウンプロシージャを呼び出すことができる。ピアSTAがSTSLティアダウンメッセージを受信すると、ピアSTAのSMEは対応するSTKSAを削除する。
【0080】
パケット番号の使い切りは、他の方法で処理することもできる。例えば送信STAのSME(例えばセキュリティモジュール108)は、ディソシエーションを呼び出すことなく、対応するロバストなセキュリティネットワークアソシエーション(RSNA)をティアダウンすることができる。または、RSNAティアダウンメッセージをピアSTAに送り、このピアSTAにRSNAをティアダウンさせることもできる。ピアSTAのSMEは、ペアワイズマスター鍵セキュリティアソシエーション(PMKSA)およびペアワイズ一時鍵セキュリティアソシエーション(PTKSA)をティアダウンすることができる。
【0081】
送信STAのSME(例えばセキュリティモジュール108)は、RSNAおよびアソシエーションを終了することなくPTKSAのみを削除することもできる。PTKSA削除メッセージをピアSTAに送って、ピアSTAに対応するPTKSAを削除させることもできる。
【0082】
送信STAのSME(例えばセキュリティモジュール108)は、STSLティアダウンを呼び出すことなく対応するRSNAをティアダウンすることもできる。RSNAティアダウンメッセージをピアSTAに送り、このピアSTAにRSNAをティアダウンさせることもできる。ピアSTAは、STSL一時鍵セキュリティアソシエーション(STKSA)および/またはSTSLマスター鍵セキュリティアソシエーション(SMKSA)をティアダウンすることもできる。
【0083】
送信STAのSME(例えばセキュリティモジュール108)は、RSNAおよびSTSLを終了することなくSTKSAのみを削除することもできる。STKSA削除メッセージをピアSTAに送って、ピアSTAに対応するSTKSAを削除させることもできる。
【0084】
このように、パケット番号が所定の閾値より大きい場合に、送信STAは、一時鍵を利用して受信STAとの間に構築したRSNAをティアダウンして、RSNAおよび一時鍵を削除することができる。または、パケット番号が所定の閾値より大きい場合、送信STAは、一時鍵を即座に削除して、および/または、RSNAを削除して、および/または、アソシエーションを削除して、受信STAに対して、一時鍵、RSNA、よびアソシエーションを削除するよう通知することもできる。一部の実装例では、送信STAおよび受信STAはさらに、一時鍵およびRSNAを削除して、アソシエーションだけは維持しておいたり、または、一時鍵を削除して、RSNAとアソシエーションとは維持しておいたりすることもできる。
【0085】
さらにパケット番号が所定の閾値より大きい場合、送信STAは、一時鍵を削除することができるが、受信STAのパケット番号が所定の閾値よりまだ小さい場合には、新たな一時鍵の構築までは、受信STAから受信する暗号化されたデータの復号化にこの一時鍵を使い続けることもできる。または、パケット番号が該所定の閾値より小さい別の閾値より小さいときに送信STAが4ウェイハンドシェークを開始して、新たな一時鍵を構築しながら、同時に現在の一時鍵はまだ削除せず維持しておくこともできる。新たな一時鍵が構築されインストールされてから、送信STAおよび受信STAは現在の一時鍵を削除する。
【0086】
所定の閾値より大きいパケット番号の利用は、MPDUの暗号化に限定はされない。所定の閾値より大きいパケット番号は、他のフレームの暗号化に利用することもできる。例えば所定の閾値より大きいパケット番号は、RSNAティアダウンフレーム、ディソシエーションフレーム等の暗号化に利用することもできる。
【0087】
パケットが使い切られた後のティアダウン後に2つのデバイス間にセキュリティアソシエーションを再度構築することを、一時鍵(TK)リキーイングと称する。2つのデバイスの局管理エンティティ(SME)(つまりセキュリティモジュール)は、TKリキーイングを以下のように実行する。2つのデバイスは、STA対、または、STAおよびアクセスポイント(AP)を含んでよい。またはデバイスのうち一方が個人基本サービスセット(PBSS)制御ポイント(PCP)であり、他方が非PCP STAであってよい。
【0088】
PCP/APと非PCP/AP STAとの間のペアワイズ一時鍵セキュリティアソシエーション(PTKSA)が、パケット番号の使い切りにより削除されると、非PCP/AP STAは、PCP/APと再度アソシエーションを結びなおすことができ、および/または、PCP/APと新たなRSNAを構築することができる。非PCP/AP STAは、1以上のペアワイズマスター鍵セキュリティアソシエーション(PMKSA)をキャッシングすることができる。非PCP/AP STAが1以上のPMKSAをキャッシングした場合には、非PCP/AP STAはPMKSAを再度構築する必要がない。代わりに、非PCP/AP STAは、PMKSA構築を省いて、4ウェイハンドシェークを利用して新たなペアワイズ一時鍵セキュリティアソシエーション(PTKSA)を生成することができる。
【0089】
グループ一時鍵セキュリティアソシエーション(GTKSA)が、パケット番号の使い切りによって削除された場合には、配信元STAは、4ウェイハンドシェークまたはグループ鍵ハンドシェークを利用して新たなGTKSAを作成してよい。配信元STAは、イニシエータSTA(あるいはSTA_I)と称される場合がある。ピアSTAはSTA_Pと称される場合がある。
【0090】
局から局へのリンク(STSL)一時鍵セキュリティアソシエーション(STKSA)が、パケット番号の使い切りによって削除された場合には、STA_Iは、新たなSTSLをSTA_Pとの間に構築することができる。STA対の間(つまりSTA_IとSTA_Pとの間)のSTSLマスター鍵(SMK)が期限切れになっていない場合には、STA_Iは、STA_Pとの間で4ウェアイハンドシェークを開始して、新たなSTKSAを生成することができる。SMKが期限切れになっている場合には、STA_Iは、新たなSTSLマスター鍵セキュリティアソシエーション(SMKSA)および新たなSTSL一時鍵セキュリティアソシエーション(STKSA)を、STA_Pとの間に生成する。
【0091】
または、一時鍵(TK)リキーイングを以下のように実行することもできる。例えばロバストなセキュリティネットワークアソシエーション(RSNA)が、ディソシエーションなしに、または、STSLティアダウンなしに終了した場合、STAは新たなRSNAを開始することができ、または、新たなRSNAを開始するようピアSTAに要求することができる。別の例としてペアワイズマスター鍵(PMK)/STSLマスター鍵(SMK)がキャッシングされている場合には、ペアワイズマスター鍵セキュリティアソシエーション(PMKSA)/STSLマスター鍵セキュリティアソシエーション(SMKSA)を省くことができる。
【0092】
ペアワイズ一時鍵セキュリティアソシエーション(PTKSA)/STSL一時鍵セキュリティアソシエーション(STKSA)のみが削除されている場合には、STAは、4ウェイハンドシェークを開始して、新たなPTKSA/STKSAを生成することができる(マスター鍵が有効期限切れになっていないことを条件に)。または、STAはピアSTAに4ウェイハンドシェークの開始を要求して、新たなPTKSA/STKSAを生成させることもできる(マスター鍵が有効期限切れになっていないことを条件に)。
【0093】
一部の実装例では、送信STAは、ある一時鍵について、パケット番号が使い切られる状態に近づくと(例えばPN≧所定の閾値である場合)、一時鍵を更新することができる。パケット番号が使い切られる状態に近づき、送信STAが認証器である場合、送信STAは4ウェイハンドシェークをサプリカントSTAとの間で開始して、新たな一時鍵を生成することができる。
【0094】
パケット番号が使い切られる状態に近づき、送信STAがサプリカントである場合には、送信STAは、ローカルエリアネットワーク経由の拡張可能認証プロトコル(EAPOL)要求メッセージを認証側のSTA(受信STA)に送信することができる。認証側のSTAは、4ウェイハンドシェークを開始して新たな一時鍵を生成することができる。ピアツーピアセキュリティアソシエーション(P2PSA)では、より低位のMACアドレスを有するSTAが認証器であり、より高位のMACアドレスを有するSTAがサプリカントであってよい。
【0095】
パケット番号が使い切られると、送信STAは、データ暗号化のために新たな一時鍵が構築されるまで、セキュアなデータの送信を中断する。しかし送信STAは、ピアSTAからのセキュアなデータの受信は続けることができる。新たな一時鍵がパケット番号の使い切りの前にインストールされない場合には(一実装例では)、送信STAは、新たな一次鍵の生成およびインストールまでの間、制御されているポート(例えば図1に示す制御されているポート112)をブロックすることができる。
【0096】
受信STAは、送信デバイスのパケット番号が使い切られており、対応するTKが更新されていないうちは、送信STAから受信したMSDUを破棄する。受信STAが送信STAのパケット番号が使い切られていること、または、所定の閾値以上であることを検知すると、受信STAは、対応するペアワイズ一時セキュリティ鍵アソシエーション(PTKSA)を削除してよい。受信STAは、送信STAに対して、RSNA終了フレームまたはPTKSA終了フレームを送信してよい。
【0097】
送信者が開始するリキーイング(つまり、送信STAが開始したTKリキーイング)では、パケット番号が使い切られる状態に近づくと、送信STAは、4ウェイハンドシェークを受信STAとの間で開始して、新たな一時鍵を生成する。セキュリティアソシエーション対のうちのいずれかのSTAが、自身のパケット番号の利用状況に応じてTKリキーイングを開始することができる。STAが両方とも同時にリキーイングを開始する場合には(一実装例では)、より低位のMACアドレスを有するSTA(認証器)がリキーイングを続行して、より高位のMACアドレスを有するSTA(サプリカント)がリキーイングを終了する。
【0098】
受信者が開始するリキーイング(つまり、受信STAが開始したTKリキーイング)では、受信STAが送信STAのPNが所定の閾値以上になったことを検知すると、受信STAは、TKリキーイングを開始してよい(受信STAが認証器である場合)。また、受信STAは、ローカルエリアネットワーク経由の拡張可能認証プロトコル(EAPOL)要求メッセージを、送信STA(受信STA)に送信して、TKリキーイングを要求することができる。
【0099】
図5Aおよび図5Bには、TKリキーイングにおいて、新たな一時鍵に関連付けられている新たな鍵IDが、EAPOL−鍵フレームの強調されているフィールドのいずれかに含まれる旨が示されている。例えば図5Aでは、セキュリティモジュール108は、鍵ID鍵データカプセル化(KDE)を定義しており、EAPOL鍵フレームの鍵データフィールド(強調表示されている)に鍵ID KDEを含んでよい。または、リザーブされているオクテットの1つ(強調表示されている)を、鍵IDフィールドとして利用することができる。または、一部の実装例では、図5Bに示す鍵情報フィールドのように、2つのリザーブされているビット(強調表示されている)を利用することもできる。
【0100】
図6は、新たな一時鍵と関連付けられている新たな鍵IDが、4ウェイハンドシェークのメッセージに含まれている様子を示している。例えばセキュリティモジュール108は、4ウェイハンドシェークメッセージ全てに、または、メッセージ1、2、および3に、または、メッセージ1および2に、またはメッセージ3および4に、鍵IDを含むことができる。
【0101】
図6を参照すると、STA1(サプリカント)とSTA2(認証器)との間の4ウェイハンドシェークが示されている。サプリカントおよび認証器は、それぞれが図1に示されている無線デバイス100であってよい。サプリカントおよび認証器のセキュリティモジュールは4ウェイハンドシェークを実行する。
【0102】
4ウェイハンドシェークは、STA1およびSTA2それぞれが、互いに同じマスター鍵(例えば同じ予め共有されている鍵またはPSK)を有していることを検証する、という2つの目的を達成することができる。加えて、同じマスター鍵(PSK)を利用して、同一の一時鍵(たとえばペアワイズ一次鍵(PTK))をそれぞれのSTA内に生成することができる。
【0103】
4ウェイハンドシェークは、認証器が乱数であるノンス(ANonce)をメッセージ1でサプリカントに送信することで開始される。サプリカントはANonceに基づいてSNonceを生成する。サプリカントは、マスター鍵、ANonce、SNonce、並びに、認証器およびサプリカントのMACアドレスの組み合わせを利用して、一時鍵(PTK)を生成する。サプリカントはさらに、PTKを利用してメッセージ整合性コードを生成する。
【0104】
サプリカントは、SNonceおよびメッセージ整合性コードのそれぞれをメッセージ2で認証器に送信する。サプリカントは、PTKの一部を利用してメッセージ2を保護する。認証器はAnonce、SNonce、およびMACアドレスを利用して、一時鍵(PTK)を生成する。認証器は、認証器が生成したPTKを利用してメッセージ整合性コードを生成する。認証器が生成したメッセージ整合性コードが、サプリカントが生成したメッセージ整合性コードと整合すると、認証器は、サプリカントが、一時鍵生成に、認証器と同じマスター鍵を生成していると判断することができる。
【0105】
認証器は、認証器が生成するメッセージ整合性コードをメッセージ3でサプリカントに送信する。サプリカントが、認証器が生成したメッセージ整合性コードが、サプリカントが生成したメッセージ整合性コードと同じであると判断する場合、サプリカントは、認証器が、一時鍵生成に、サプリカントと同じマスター鍵を利用していると判断することができる。加えて、認証器が生成したメッセージ整合性コードが、サプリカントが生成したメッセージ整合性コードと同じである場合には、サプリカントは、認証器が生成した一時鍵が、サプリカントが生成した一時鍵と同じであると判断する。サプリカントは、認証器にメッセージ4で受信確認を送信する。
【0106】
次いで、生成された一時鍵は、それぞれの暗号化モジュールにインストールされ、送信するデータを新たな一時鍵を利用して暗号化する。4ウェイハンドシェークは、パケット番号が使い切られていたり、使い切られた状態に近づいていたりするときに実行される。各4ウェイハンドシェーク中にメッセージ1に異なる乱数を利用して、異なる一時鍵を生成する。加えて、メッセージ3に新たな鍵IDを含めることで、前の一時鍵から新たな一時鍵を区別する。次いで、新たな鍵IDを新たな一時鍵とともに利用してデータを暗号化する。
【0107】
一部の実装例では、4ウェイハンドシェークを利用する代わりに、前の一時鍵を利用して新たな一時鍵を生成することもできる。具体的には、現在利用されている一時鍵に関連付けられているパケット番号が使い切られると、または使い切られた状態に近づくと、ピアSTAの一時鍵モジュール(例えば図1に示す無線デバイス100の一時鍵モジュール122)は、現在利用されている一時鍵(および/または古いほうの一時鍵)および新たな一時鍵の鍵IDに基づいて新たな一時鍵を生成することができる。(つまり、TK(i+1)=F{TK(i),i+1,…})
【0108】
より詳しくは、あるSTAの現在利用されている一時鍵のパケット番号が使い切られた状態に近づくと、STAは一時鍵更新(つまりTKリキーイング)をトリガする。STAは、新たな一時鍵の鍵IDでセキュリティヘッダの鍵IDフィールドを更新して、現在利用されている鍵および新しい鍵IDに基づいて新たな一時鍵を導出する。新たな一時鍵をインストールした後は、STAは新たなTKを利用してデータを暗号化する。
【0109】
ピアSTAは、新たな一時鍵を利用して暗号化されたフレームを受信すると、新たな一時鍵の前に利用されている一時鍵と、新たなTKの鍵IDとに基づいて、新たな一時鍵を導出する。ピアSTAはさらに、新たな一時鍵をインストールして、この新たな一時鍵を利用してデータを暗号化し始める。
【0110】
一部の実装例では、STAは、予め2以上の一時鍵を導出しておくことで、一時鍵導出に関する遅延が生じないようにすることができる。STA双方が同時に一時鍵を更新する場合には、より高位のMACアドレスを有するSTAが、より低位のMACアドレスを有するSTAから受信した新たな一時鍵に従うようにしてよい。一方のSTAが認証器であり、他方のSTAがサプリカントである場合には、サプリカントがTKリキーイング要求を認証者に送りTKリキーイングをトリガすると、認証器がTKリキーイングを開始する、としてよい。
【0111】
図7Aの暗号化モジュール110はさらに、ヘッダモジュール210とMPDUモジュール212とを含む。ヘッダモジュール210はそれぞれ図7Bおよび図7Cで示すGCMPヘッダおよびGGMPヘッダを、各暗号化されたMACプロトコルデータユニット(MPDU)に対して生成する。GCMモジュール204は、図7Bおよび図7Cに示されるMICを生成するMICモジュール206を含む。MPDUモジュール212は、GCMモジュール204から受信した暗号化されているデータと、MICモジュール206が生成するMICとに基づいて、暗号化されたMPDUを生成する。
【0112】
図7Bは、GCMP MPDUパケットのフォーマットの一例を示す。このGCMP MPDUパケットはMACヘッダ、GCMPヘッダ、データ、MIC、および、フレームチェックシーケンス(FCS)を含む。ヘッダモジュール210が生成するGCMPヘッダ(強調表示されている)は、8オクテット長であり、パケット番号フィールドと鍵IDフィールドとを含む。パケット番号フィールドは、PNカウンターモジュール202が生成するパケット番号を含む。鍵IDフィールドは、セキュリティモジュール108が生成する鍵IDを含む。GCMPヘッダには追加ビットをリザーブしておいて、2ビットを超える鍵IDを格納する。従って、GCMPヘッダは、鍵IDを格納するために総計で2オクテットを含むことになる。さらに、MICモジュール206が生成するメッセージ整合性コードは16オクテット長である。
【0113】
図7CはGGMP MPDUフォーマットを示しており、GCMPノンスを生成するために利用されるパケット番号は、48ビット未満の長さを有する(例えば44ビット)。GCMPヘッダを構築するときには、44ビットパケット番号を6オクテット(PN0からPN5)に格納して、PN5のオクテットは、ゼロに設定された4ビットで(またはその他の値で)パディングされる。受信STAは、PN5から4ビットのパディングを外して、PN0−PN4、および、残りのPN5の部分を利用して、パケット番号を構築して、パケット番号を利用してGCMPノンスを生成する。
【0114】
図8の暗号化モジュール110は、図2Aおよび図7Aに示すモジュールを含んでいる。加えて、暗号化モジュール110は、PNカウンターモジュール202、MACヘッダモジュール220、MACアドレスモジュール222、ペイロードモジュール224、および、さらなる認証データ(AAD)モジュール226を含む。図2Aおよび図7Aに示すモジュールに関する説明は繰り返さないこととする。
【0115】
MACヘッダモジュール220、MACアドレスモジュール222、およびペイロードモジュール224は、暗号化する平文MPDUを受信する。MACヘッダモジュール220は、各平文MPDUからMACヘッダを抽出して、抽出したMACヘッダをAADモジュール226に出力する。MACアドレスモジュール222は、各平文MPDUからMACアドレスを抽出して、抽出したMACアドレスをノンスモジュール200に出力する。ペイロードモジュール224は、各平文MPDUからペイロードデータを抽出して、抽出したデータをGCMモジュール204に出力する。
【0116】
AADモジュール226は、MACヘッダに基づいてさらなる認証データ(AAD)を生成して、生成したAADをGCMモジュール204に出力する。GCMモジュール204はAAD、ノンス、ペイロードデータ、および一時鍵を受信して、暗号化されたデータとメッセージ整合性コードとを生成する。MPDUモジュール212は、MACヘッダ、暗号化されたデータ、メッセージ整合性コード、およいb、GCMPヘッダを受信して、暗号化されたMPDUを生成する。
【0117】
図8に示す暗号化モジュール110は、CCMPアーキテクチャを若干修正することで実装することができる。この修正には、例えば、CCMPアーキテクチャとは異なるように、GCMPノンス、GCMPヘッダ、およびGCMPメッセージ整合性コードを生成することが含まれてよい。さらに修正には、本開示に記載されるような、パケット番号の使い切りの処理およびTKリキーイングが含まれていてもよい。従ってCCMPアーキテクチャを修正した後のCCMP暗号化を利用するデバイスは、GCMP暗号化も利用することができる。
【0118】
一実装例では、通常は60GHz帯域幅で動作するデバイスが利用するGCMP暗号化を、60GHz帯域以外の帯域で動作するデバイスに利用させることもできる。さらに、本開示のGCMPに関して記載したパケット番号の使い切りの処理およびTKリキーイングを、CCMP暗号化を利用するデバイス(例えば、2.4/5GHz帯域で動作するデバイス)におけるパケット番号の使い切りの処理およびTKリキーイングに利用することもできる。
【0119】
図9Aおよび図9Bでは、送信デバイスがMPDUを暗号化するとき、暗号化中に利用される一時鍵について、連続して暗号化されたMPDUのパケット番号は連続して増分している。受信デバイスが、暗号化されているMPDUを受信するとき、暗号化デバイスは、暗号化されているMPDUのパケット番号が増分しているかを判断する。一実装例では、受信された、暗号化されているMPDUのパケット番号が増分していない場合、暗号化デバイスは、リプレイアタック(つまり、パケット番号が再利用された、またはある一時鍵について繰り返された、ということ)を宣言する。
【0120】
例えば、受信された、暗号化されているMPDUのパケット番号が、前に受信された、暗号化されているMPDUのパケット番号以下である場合、受信デバイスはリプレイアタックを宣言する。リプレイアタックが検知されると、受信デバイスは、受信した、暗号化されているMPDUを破棄する。
【0121】
送信デバイスは、暗号化されたMPDUを送信する前に、複数の送信キュー内の暗号化されているMPDUを待ち行列に入れることができる。送信デバイスがN個の送信キューを利用する場合、受信デバイスは、N個のリプレイカウンターを利用する場合(つまり、1つの送信キューにつき1つのリプレイカウンターを利用する場合)、受信した、暗号化されたMPDUのパケット番号をトラッキングすることができる。
【0122】
送信デバイスは、各ペアワイズ一時鍵セキュリティアソシエーション(PTKSA)、グループ一時鍵セキュリティアソシエーション(GTKSA)、およびSTSL一時かぎセキュリティアソシエーション(STKSA)について単一のパケット番号カウンターを利用する。加えて、送信デバイスは、ロバストなセキュリティネットワーク(RSN)ケイパビリティフィールドのPTKSA/GTKSA/STKSAそれぞれについて、サポートされているMACサービスデータユニット(MSDU)特性の数を含んでよい。RSNケイパビリティフィールドは、セキュリティ構築中に(例えば4ウェイハンドシェークを介して)受信デバイスに通信される。
【0123】
受信デバイスは、各PTKSA、GTKSA、およびSTKSAに1以上のリプレイカウンターを利用して、受信した、暗号化されているMPDUのパケット番号をトラッキングする。受信デバイスは、PTKSA/GTKSA/STKSAそれぞれについて同じ数のリプレイカウンターを送信デバイスのMSDUプライオリティの数として利用することができる、または、受信デバイスが、MSDUプライオリティの最大数に等しい数のリプレイカウンター(PTKSA/GTKSA/STKSAそれぞれについて)を維持することができる。例えば図9Bは、受信デバイスが利用可能なリプレイカウンターの数を示している。
【0124】
一部の実装例では、受信デバイスは、各可能性のあるMSDUプライオリティについてのPTKSA/GTKSA/STKSAごとに別のリプレイカウンターを利用することができる。送信デバイスは、セキュリティ構築中に受信デバイスが適切な数のリプレイカウンターをサポートしていることを確かめた後に、MSDUプライオリティを利用する。
【0125】
または、送信デバイスは、セキュリティ構築中に、MSDUプライオリティの数が、受信デバイスが利用するリプレイカウンター数を越えると判断してもよい。パケット番号が増えている最中にパケット番号チェックに合格するためには、1つのパケット番号カウンターが処理するフレームが、同じ送信キューからのものである必要がある。従って、送信デバイスは、複数のMSDUプライオリティに属しているフレームを1つの送信キューに配置することで、送信キューの数をリプレイカウンターの数に等しく保つことができる。送信デバイスは、マッピング情報(つまり、送信キュー/リプレイカウンターへのMSDUプライオリティのマッピング)を受信デバイスに送信する。
【0126】
例えば送信デバイスが4つのプライオリティ(つまり4つのトラフィック識別子)を有し、受信デバイスが2つのリプレイカウンターR1およびR2のみを有する場合を想定する。送信デバイスは、リプレイカウンターR1およびR2に対応する2つのキューQ1およびQ2のみを利用して、TID1およびTID2をQ1/R1にマッピングしてよい。加えて、送信デバイスはTID3およびTID4をQ2/R2にマッピングしてよい。
【0127】
マッピング情報に基づいて、リプレイカウンターは、異なるトラフィック識別子に属する暗号化されたMPDUが同じキューから送信された場合に、受信した、暗号化されているMPDUのパケット番号を正確にトラッキングすることができる。暗号化されたMPDUは、トラフィック識別子情報を含むが、暗号化されたMPDUは、送信キュー情報は含まない。従って受信デバイスは、トラフィック識別子と送信キューとの間のマッピングを知る必要がある(送信キューが受信デバイスにおいてパケット番号カウンターに1対1でマッピングされているもの)。受信デバイスは、MSDUプライオリティとリプレイカウンターとの間の好適なマッピングを要求してよい。
【0128】
マッピングを利用する代わりに、送信デバイスが、暗号化されたMPDUが複数の送信キュー内で待っている場合に、暗号化されたMPDUそれぞれにトラフィック識別子(TID)を含むようにしてもよい。例えば、送信キューの数がMであり、リプレイカウンターの数がNである場合には、送信キューの数Mは、受信デバイスのリプレイカウンターの数と同じ(またはこれより少ない)必要がある。
【0129】
トラフィック識別子の数が送信キュー/リプレイカウンターの数(N)より大きい場合には、トラフィック識別子をリセットして、送信キューの数に合わせることができる。例えば、暗号化されたMPDUがM個のプライオリティ(またはトラフィック識別子)を有する場合(M>N)、トラフィック識別子は、N個の送信キューからのみ、暗号化されたMPDUが送信されたことを示すようにリセットすることができる。トラフィック識別子に基づいて、N個のリプレイカウンターは、受信した、暗号化されているMPDUのパケット番号をトラッキングすることができる。例えば8個のトラフィック識別子があるが4つの送信キュー/リプレイカウンターしかない場合には、TID5およびTID6のフレームを送信キューに入れる前に、これらフレームのTIDをTID3にリセットする。加えて、TID7よびTID8のフレームを送信キューに入れる前に、これらフレームのTIDをTID4にリセットする。受信デバイスがリセットされたIDのフレームを受信すると、受信デバイスは、このフレームを対応するリプレイカウンターにマッピングすることができる。
【0130】
図10は、送信デバイス300および受信デバイス400を示す。送信デバイス300および受信デバイス400はそれぞれ、図1に示す無線デバイス100に対応する無線デバイスであってよい。送信デバイス300は、PHYモジュール302、MACモジュール304、およびセキュリティモジュール308を含む。受信デバイス400は、PHYモジュール402、MACモジュール404、およびセキュリティモジュール408を含む。PHYモジュール302、402およびセキュリティモジュール308、408は、図1に示す無線デバイス100のPHYモジュール102およびセキュリティモジュール108にそれぞれ類似している。
【0131】
送信デバイス300では、MACモジュール304が、無線デバイス100のMACモジュール104が含むモジュールを含む。例えばMACモジュール304は、図1の示す暗号化モジュール110に類似した暗号化モジュール310を含む。加えて、MACモジュール304は、M個の送信キュー330(Q1,Q2,…等)を制御するキュー制御モジュール320を含む。キュー制御モジュール320は、マッピングモジュール322とTIDモジュール324とを含む。
【0132】
セキュリティ構築中に、セキュリティモジュール308、408は、ロバストなセキュリティネットワーク(RSN)ケイパビリティフィールド、リプレイカウンター数等を含む情報を交換する。マッピングモジュール322は、交換された情報に基づいてマッピング情報を生成する。または、TIDモジュール324が、リプレイカウンターの数に基づいて、トラフィック識別子をリセット/変更する。セキュリティモジュール308、408は、マッピング情報および/またはトラフィック識別子を交換する。
【0133】
暗号化されたMPDUを送信するときに、暗号化モジュール310は、暗号化されたMPDUをキュー制御モジュール320に出力する。キュー制御モジュール320は、マッピング情報に従って、M個の送信キュー330に、暗号化されたMPDUを待たせる。または、キュー制御モジュール320は、暗号化されたMPDUにトラフィック識別子をシード(または配置)して、暗号化されたMPDUをM個の送信キュー330に出力する。PHYモジュール302は、暗号化されたMPDUをM個の送信キュー330から送信する。
【0134】
受信デバイス400では、MACモジュール404が、無線デバイス100のMACモジュール104が含むモジュールを含む。例えばMACモジュール404は、図1の示す暗号化モジュール110に類似した暗号化モジュール410を含む。
【0135】
または、MACモジュール404は、N個のリプレイカウンター430(R1,R2,…等)を制御するリプレイ制御モジュール420を含む。リプレイ制御モジュール420は、マッピングモジュール422とTIDモジュール424とを含む。マッピングモジュール422は、セキュリティモジュール408からマッピング情報を受信する。TIDモジュール424は、トラフィック識別子を利用する場合、セキュリティモジュール408からトラフィック識別子を受信する。
【0136】
PHYモジュール402は、送信デバイス300が送信する、暗号化されたMPDUを受信する。マッピング情報および/またはトラフィック識別子に基づいて、N個のリプレイカウンター430が、それぞれ受信した暗号化されているMPDUの送信元である送信キューを判断する。このようして、N個のリプレイカウンター430は、受信した暗号化されているMPDUのパケット番号をトラッキングすることができる。
【0137】
リプレイ制御モジュール420は、受信した暗号化されているMPDUのパケット番号が、前に受信した暗号化されているMPDUのパケット番号以下であると、その旨を判断する。一実装例では、リプレイ制御モジュール420は、受信した暗号化されているMPDUのパケット番号が、前に受信した暗号化されているMPDUのパケット番号以下である場合、リプレイアタックを宣言する。
【0138】
リプレイアタックが検知されると、リプレイ制御モジュール420は、受信した暗号化されているMPDUを破棄する。ここで記載した、送信キューおよびリプレイカウンターのマッピング、および、暗号化されているMPDUへのトラフィック識別子のシードは、CCMPを利用するデバイスにも利用することができる(例えば2.4/5GHz帯域で動作するデバイス)。
【0139】
本開示の教示は、60GHz帯域その他の帯域で動作可能なマルチバンドデバイスに実装することができる。例えば他の帯域には、2.4/5GHz帯域等が含まれる。
【0140】
本開示の広義の教示は、様々な形態で実装することができる。従って本開示は特定の例を挙げているかもしれないが、他の変形例も、図面、明細書、および以下の請求項から明らかとなるので、本開示の真の範囲はこれらの例に限定はされない。

【特許請求の範囲】
【請求項1】
複数のパケットを暗号化するために利用される第1の一時鍵を生成する一時鍵モジュールと、
前記第1の一時鍵に基づいて暗号化される各パケットのノンスを生成するノンスモジュールであって、各ノンスは、前記ノンスモジュールが生成する他のノンスに関連付けられているパケット番号とは異なるパケット番号を含むノンスモジュールと、
前記ノンスモジュールが生成した前記ノンスに含まれる前記パケット番号が所定の閾値以上であると、その旨を判断するセキュリティモジュールと
を備えるシステム。
【請求項2】
各パケット番号はNビット長であり、
前記所定の閾値は2以下である請求項1に記載のシステム。
【請求項3】
前記所定の閾値は、暗号化されたパケットをリンクパートナーに送信するレートに基づいている請求項1に記載のシステム。
【請求項4】
ガロア/カウンターモード(GCM)暗号化を利用して、前記第1の一時鍵と、前記パケットに対応する前記ノンスとに基づいて、前記複数のパケットのうちの各パケットを暗号化する暗号化モジュールをさらに備える請求項1に記載のシステム。
【請求項5】
前記ノンスモジュールが生成する前記ノンスに含まれる前記パケット番号が前記所定の閾値以上である場合、
前記一時鍵モジュールは、第2の一時鍵を生成して、
前記セキュリティモジュールは、前記第2の一時鍵に関連付けられた鍵識別子をメッセージ中に含め、前記メッセージをリンクパートナーに送信する請求項1に記載のシステム。
【請求項6】
前記セキュリティモジュールは、前記第1の一時鍵と、前記所定の閾値より大きい前記パケット番号を有する前記ノンスのうちのいずれかと、を利用して、前記メッセージを暗号化して、前記メッセージには、ディソシエーションフレームまたはロバストなセキュリティネットワークアソシエーション(RSNA)フレームのうち少なくとも一方が含まれる請求項5に記載のシステム。
【請求項7】
前記一時鍵モジュールは、前記鍵識別子に基づいて前記第2の一時鍵を生成し、
前記セキュリティモジュールは、2個のパケットまたは閾値の数のパケットが暗号化されたら前記パケット番号をリセットして、前記第2の一時鍵と前記ノンスのいずれかと、に基づいて、(2+1)番目のパケットまたは(閾値+1)番目のパケットを暗号化する請求項5に記載のシステム。
【請求項8】
メディアアクセス制御(MAC)モジュールをさらに備え、
前記メディアアクセス制御(MAC)モジュールは、
前記パケット番号が前記所定の閾値以上である場合にはプリミティブを生成し、前記第1の一時鍵を利用してリンクパートナーとの間に構築したセキュリティアソシエーションをティアダウンし、前記セキュリティアソシエーションと前記第1の一時鍵とを削除する請求項1に記載のシステム。
【請求項9】
前記ノンスモジュールが生成する前記ノンスに含まれる前記パケット番号が前記所定の閾値以上である場合、
前記セキュリティモジュールは、暗号化されたパケットを送信するために利用する制御ポートをブロックし、リンクパートナーとの間のセキュリティアソシエーションをティアダウンすることなく前記第1の一時鍵を削除し、第2の一時鍵を生成するために、ハンドシェークを開始する、または、前記リンクパートナーに前記ハンドシェークを開始するよう要求する請求項1に記載のシステム。
【請求項10】
前記ノンスモジュールが生成する前記ノンスに含まれる前記パケット番号が前記所定の閾値以上である場合、前記セキュリティモジュールは、リンクパートナーから、第2の一時鍵を生成せよと要求するメッセージを受信する請求項1に記載のシステム。
【請求項11】
前記一時鍵モジュールは、前記第1の一時鍵に基づいて前記第2の一時鍵を生成する請求項5に記載のシステム。
【請求項12】
暗号化されたパケットのヘッダを生成するヘッダモジュールをさらに備え、
前記ヘッダは、前記第1の一時鍵に関連付けられた鍵識別子および前記パケット番号を含み、
前記鍵識別子の長さは、2ビットから16ビットまでの範囲である請求項1に記載のシステム。
【請求項13】
請求項1に記載のシステムと、
暗号化されたパケットを、60GHz帯域、2.4GHz帯域、または5GHz帯域で送信する物理層(PHY)モジュールと
を備える無線ネットワークデバイス。
【請求項14】
前記システムは、暗号化ブロック鎖(CBC)メディアアクセス制御(MAC)プロトコルを持つカウンターモード(CTR)を暗号化に利用する無線ネットワークデバイスに実装される請求項1に記載のシステム。
【請求項15】
各ノンスは、
メディアアクセス制御(MAC)アドレス用の第1の48ビットフィールドと、
プライオリティ・サブフィールドと複数のパケット番号サブフィールドとを含ませる第2の48ビットのフィールドとを含み、
前記複数のパケット番号サブフィールドの1つには、複数のビットが添付され、
前記ノンスモジュールは、前記複数のビットを破棄することで各ノンスを生成する請求項1に記載のシステム。
【請求項16】
各ノンスは、
メディアアクセス制御(MAC)アドレス用の第1の48ビットフィールドと、
前記パケット番号を含ませる第2の48ビットのフィールドとを含む請求項1に記載のシステム。
【請求項17】
ネットワークデバイスからリンクパートナーに送信される複数のパケットを暗号化するための第1の一時鍵を生成する段階と、
前記複数のパケットのうちの各パケットを暗号化するためのノンスを生成する段階であって、前記ノンスは、前記複数のパケットのうちの他のパケットを暗号化するために生成される他のノンスに関連付けられているパケット番号とは異なるパケット番号を含む段階と、
前記ノンスに含まれる前記パケット番号が所定の閾値以上であると、その旨を判断する段階と
を備える方法。
【請求項18】
前記第1の一時鍵と、前記パケットに対応する前記ノンスとに基づいて前記複数のパケットのうちの各パケットを暗号化する段階をさらに備え、
各パケット番号がNビット長であり、
前記所定の閾値は2以下であり、
前記所定の閾値は、暗号化されたパケットを前記リンクパートナーに送信するレートに基づいている請求項17に記載の方法。
【請求項19】
前記ノンスに含まれる前記パケット番号が前記所定の閾値以上である場合、
第2の一時鍵を生成する段階と、
前記第2の一時鍵に関連付けられた鍵識別子をメッセージ中に含め、前記メッセージをリンクパートナーに送信する段階と、
前記第1の一時鍵と、前記所定の閾値より大きい前記パケット番号を有する前記ノンスのうちのいずれかと、を利用して、前記メッセージを暗号化する段階と
をさらに備え、
前記メッセージには、ディソシエーションフレームまたはロバストなセキュリティネットワークアソシエーション(RSNA)フレームのうち少なくとも一方が含まれる請求項17に記載の方法。
【請求項20】
前記鍵識別子に基づいて前記第2の一時鍵を生成する段階と、
個のパケットまたは閾値の数のパケットが暗号化されたら前記パケット番号をリセットする段階と、
前記第2の一時鍵と前記ノンスのいずれかと、に基づいて、(2+1)番目のパケットまたは(閾値+1)番目のパケットを暗号化する段階と
をさらに備える請求項19に記載の方法。
【請求項21】
前記パケット番号が前記所定の閾値以上である場合にはプリミティブを生成する段階と、
前記第1の一時鍵を利用して前記リンクパートナーとの間に構築したセキュリティアソシエーションをティアダウンする段階と、
前記セキュリティアソシエーションと前記第1の一時鍵とを削除する段階と
をさらに備える請求項17に記載の方法。
【請求項22】
前記ノンスに含まれる前記パケット番号が前記所定の閾値以上である場合、
暗号化されたパケットを送信するために利用する制御ポートをブロックする段階と、
前記リンクパートナーとの間のセキュリティアソシエーションをティアダウンすることなく前記第1の一時鍵を削除する段階と、
第2の一時鍵を生成するために、ハンドシェークを開始する、または、前記リンクパートナーに前記ハンドシェークを開始するよう要求する段階と
をさらに備える請求項17に記載の方法。
【請求項23】
前記ノンスに含まれる前記パケット番号が前記所定の閾値以上である場合、前記リンクパートナーから、第2の一時鍵を生成せよと要求するメッセージを受信する段階をさらに備える請求項17に記載の方法。
【請求項24】
前記第1の一時鍵に基づいて前記第2の一時鍵を生成する段階をさらに備える請求項19に記載の方法。
【請求項25】
暗号化されたパケットのヘッダを生成する段階をさらに備え、
前記ヘッダは、前記第1の一時鍵に関連付けられた鍵識別子および前記パケット番号を含み、
前記鍵識別子の長さは、2ビットから16ビットまでの範囲である請求項17に記載の方法。
【請求項26】
各ノンスは、
メディアアクセス制御(MAC)アドレス用の第1の48ビットフィールドと、
プライオリティ・サブフィールドと複数のパケット番号サブフィールドとを含ませる第2の48ビットのフィールドとを含み、
前記複数のパケット番号サブフィールドの1つには、複数のビットが添付され、
前記複数のビットを破棄することで各ノンスが生成される請求項17に記載の方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図3E】
image rotate

【図3F】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10】
image rotate


【公表番号】特表2013−504255(P2013−504255A)
【公表日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2012−527912(P2012−527912)
【出願日】平成22年8月25日(2010.8.25)
【国際出願番号】PCT/US2010/046595
【国際公開番号】WO2011/028565
【国際公開日】平成23年3月10日(2011.3.10)
【出願人】(502188642)マーベル ワールド トレード リミテッド (302)
【Fターム(参考)】