(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-14
(45)【発行日】2022-03-23
(54)【発明の名称】相互認証システム
(51)【国際特許分類】
H04L 9/32 20060101AFI20220315BHJP
H04L 9/08 20060101ALI20220315BHJP
H04W 12/04 20210101ALI20220315BHJP
【FI】
H04L9/32 200Z
H04L9/08 F
H04W12/04
(21)【出願番号】P 2019551651
(86)(22)【出願日】2018-03-15
(86)【国際出願番号】 EP2018056491
(87)【国際公開番号】W WO2018172171
(87)【国際公開日】2018-09-27
【審査請求日】2021-03-11
(32)【優先日】2017-03-20
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】590000248
【氏名又は名称】コーニンクレッカ フィリップス エヌ ヴェ
【氏名又は名称原語表記】Koninklijke Philips N.V.
【住所又は居所原語表記】High Tech Campus 52, 5656 AG Eindhoven,Netherlands
(74)【代理人】
【識別番号】110001690
【氏名又は名称】特許業務法人M&Sパートナーズ
(72)【発明者】
【氏名】バーンセン ヨハネス アーノルダス コーネリス
(72)【発明者】
【氏名】ヴァン デ ラール フランシスカス アントニウス マリア
(72)【発明者】
【氏名】リンデルス ロナルド フェリックス アルベルトゥス
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2005-202364(JP,A)
【文献】米国特許出願公開第2016/0242030(US,A1)
【文献】米国特許出願公開第2010/0042838(US,A1)
【文献】米国特許出願公開第2017/0070881(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
H04L 9/08
H04W 12/04
(57)【特許請求の範囲】
【請求項1】
通信プロトコルに従うレスポンダデバイスとのワイヤレス通信のためのイニシエータデバイスであって、
前記通信プロトコルが、
前記イニシエータデバイスによる前記レスポンダデバイスの片側認証、並びに
前記イニシエータデバイスによる前記レスポンダデバイスの及び前記レスポンダデバイスによる前記イニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
前記レスポンダデバイスが、
前記通信プロトコルに従うワイヤレス通信のためのレスポンダトランシーバと、
前記通信プロトコルを処理するためのレスポンダプロセッサとを備え、
前記イニシエータデバイスが、
前記通信プロトコルに従うワイヤレス通信のためのイニシエータトランシーバと、
前記通信プロトコルを処理するためのイニシエータプロセッサとを備え
、
前記イニシエータプロセッサが、
前記レスポンダデバイスに送られることになるメッセージを作成することと、前記認証プロトコルに従って前記レスポンダデバイスから受信されたメッセージを分解することとを行うためのイニシエータメッセージユニットと、
ユーザ対話と前記レスポンダデバイスから受信されたメッセージとに応じて前記認証プロトコルに従ってイニシエータ状態を与えるためのイニシエータステートマシンとを備え、前記イニシエータ状態は、
イニシエータ帯域外アクションを介して前記レスポンダデバイスからレスポンダ公開鍵を取得することによるブートストラッピングのための初期状態(IST)と、
前記ブートストラッピングが前記レスポンダ公開鍵を取得することによって正常に実行されたことを示すブートストラップ済み状態(BST)と、
前記認証が正常に実行されたことを示す認証済み状態(ATD)と
を含み、
前記イニシエータメッセージユニットは、
前記ブートストラップ済み状態で送られることになり、イニシエータ公開鍵を検証するためのイニシエータベリファイアと前記レスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求
を含むメッセージを作成し、
前記レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づくレスポンダ片側認証データと、前記レスポンダデバイスがレスポンダ帯域外アクションを介して前記イニシエータデバイスから前記イニシエータ公開鍵を取得することを可能にするための前記相互認証が進行中であることを示す相互進行ステータスとを含む認証応答
を含むメッセージを分解し、
前記イニシエータステートマシンが、待機中相互認証のために、前記相互進行ステータスを受信するとつくことになる、相互認証中状態を与え、
前記イニシエータメッセージユニットが、
前記イニシエータ公開鍵と前記レスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答
を分解し、
前記相互認証の確認を示す相互確認ステータスと、前記レスポンダ公開鍵と前記イニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認
を作成する、イニシエータデバイス。
【請求項2】
前記イニシエータステートマシンは、前記相互認証応答を受信し、前記イニシエータプロセッサが前記レスポンダ公開鍵と前記イニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく前記相互レスポンダ認証データを正常に処理すると、前記認証済み状態につく、請求項
1に記載のイニシエータデバイス。
【請求項3】
前記イニシエータメッセージユニットが、前記片側認証の場合、前記レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、前記片側認証を示す片側ステータスとを含む片側認証応答を分解し、
前記イニシエータステートマシンは、前記イニシエータプロセッサが前記レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく前記片側レスポンダ認証データを正常に処理すると、前記認証済み状態につく、
請求項1に記載のイニシエータデバイス。
【請求項4】
前記イニシエータステートマシンは、前記認証応答を受信し、前記イニシエータプロセッサが前記レスポンダ片側認証データを正常に処理しないと、前記ブートストラップ済み状態又は前記初期状態につく、
請求項
2又は
3に記載のイニシエータデバイス。
【請求項5】
前記イニシエータステートマシンは、前記相互認証応答を受信し、前記イニシエータプロセッサが前記相互レスポンダ認証データを正常に処理しないと、前記ブートストラップ済み状態又は前記初期状態につく、
請求項
2に記載のイニシエータデバイス。
【請求項6】
前記イニシエータメッセージユニットが、前記相互進行ステータスを受信すると、相互待機中ステータスを含む待機中認証確認を作成する、
請求項
2又は5に記載のイニシエータデバイス。
【請求項7】
通信プロトコルに従うイニシエータデバイスとのワイヤレス通信のためのレスポンダデバイスであって、
前記通信プロトコルが、
前記イニシエータデバイスによる前記レスポンダデバイスの片側認証、並びに
前記イニシエータデバイスによる前記レスポンダデバイスの及び前記レスポンダデバイスによる前記イニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
前記イニシエータデバイスが、
前記通信プロトコルに従うワイヤレス通信のためのイニシエータトランシーバと、
前記通信プロトコルを処理するためのイニシエータプロセッサとを備え、
前記レスポンダデバイスが、
前記通信プロトコルに従うワイヤレス通信のためのレスポンダトランシーバと、
前記通信プロトコルを処理するためのレスポンダプロセッサとを備え、前記レスポンダプロセッサが、
前記イニシエータデバイスに送られることになるメッセージを作成することと、前記認証プロトコルに従って前記イニシエータデバイスから受信されたメッセージを分解することとを行うためのレスポンダメッセージユニットと、
ユーザ対話と前記イニシエータデバイスから受信されたメッセージとに応じて前記認証プロトコルに従ってレスポンダ状態を与えるためのレスポンダステートマシンとを備え、前記レスポンダ状態は、
前記イニシエータデバイスからメッセージを受信するための待機中状態と、
前記認証が正常に実行されたことを示すレスポンダ認証済み状態と
を含み、
前記レスポンダステートマシンは、前記レスポンダデバイスがレスポンダ帯域外アクションを介して前記イニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互レスポンダ認証中状態を与え、
前記レスポンダメッセージユニットは、
レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、前記相互認証が進行中であることを示す相互進行ステータスとを含む認証応答
を含むメッセージを作成し、
イニシエータ公開鍵を検証するためのイニシエータベリファイアと前記レスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求
を含むメッセージを分解し、
前記レスポンダステートマシンは、前記レスポンダプロセッサが前記イニシエータ公開鍵と前記レスポンダプライベート鍵とに基づくイニシエータ認証データを正常に処理すると、前記レスポンダ認証済み状態につく、レスポンダデバイス。
【請求項8】
前記レスポンダメッセージユニットが、
前記相互レスポンダ認証中状態で送られるべき相互認証応答であって、前記イニシエータ公開鍵と前記レスポンダ公開鍵に対応するレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答
を作成し、
前記相互認証の確認を示す相互確認ステータスと、前記レスポンダ公開鍵と前記イニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認
を分解する、請求項
7に記載のレスポンダデバイス。
【請求項9】
前記レスポンダメッセージユニットが、前記片側認証の場合、前記レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、前記片側認証を示す片側ステータスとを含む片側認証応答を作成し、
前記レスポンダステートマシンは、前記片側認証の場合、片側認証確認を受信し、前記レスポンダプロセッサが片側イニシエータ認証データを正常に処理すると、前記レスポンダ認証済み状態につく、
請求項
7又は
8に記載のレスポンダデバイス。
【請求項10】
前記レスポンダステートマシンは、前記相互認証確認を受信し、前記レスポンダプロセッサが前記相互イニシエータ認証データを正常に処理しないと、前記待機中状態につく、
請求項
8に記載のレスポンダデバイス。
【請求項11】
前記レスポンダメッセージユニットが、相互待機中ステータスを含む待機中相互認証確認を分解し、
前記レスポンダステートマシンが、前記相互待機中ステータスを受信すると、前記相互レスポンダ認証中状態につく、
請求項
8又は
10に記載のレスポンダデバイス。
【請求項12】
前記レスポンダメッセージユニットが、片側イニシエータ認証データを含む前記待機中
相互認証確認をさらに分解し、
前記レスポンダステートマシンは、前記レスポンダプロセッサが前記片側イニシエータ認証データを正常に処理しないと、前記待機中状態につく、
請求項
11に記載のレスポンダデバイス。
【請求項13】
前記レスポンダデバイスが、
前記イニシエータデバイスから前記イニシエータ公開鍵を取得するために前記レスポンダ帯域外アクションを実行するためにユーザ対話を適応させるスポンダユーザインターフェース
を備える、請求項
7から12のいずれか一項に記載のレスポンダデバイス。
【請求項14】
請求項1
から6のいずれか一項に記載のイニシエータデバイスと、請求項
7から13のいずれか一項に記載のレスポンダデバイスとを備える、ワイヤレス通信システム。
【請求項15】
通信プロトコルに従うレスポンダデバイスとのワイヤレス通信のためにイニシエータデバイスにおいて使用するためのイニシエータ方法であって、
前記通信プロトコルが、
前記イニシエータデバイスによる前記レスポンダデバイスの片側認証、並びに
前記イニシエータデバイスによる前記レスポンダデバイスの及び前記レスポンダデバイスによる前記イニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
前記イニシエータ方法は、
ユーザ対話と前記レスポンダデバイスから受信されたメッセージとに応じて前記認証プロトコルに従ってイニシエータ状態を与えるステップであって、前記イニシエータ状態が、
イニシエータ帯域外アクションを介して前記レスポンダデバイスからレスポンダ公開鍵を取得することによるブートストラッピングのための初期状態と、
前記ブートストラッピングが前記レスポンダ公開鍵を取得することによって正常に実行されたことを示すブートストラップ済み状態と、
前記認証が正常に実行されたことを示す認証済み状態と
を含む、与えるステップと、
前記ブートストラップ済み状態で送られることになり、イニシエータ公開鍵を検証するためのイニシエータベリファイアと前記レスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求を作成するステップと、
前記レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、前記レスポンダデバイスがレスポンダ帯域外アクションを介して前記イニシエータデバイスから前記イニシエータ公開鍵を取得することを可能にするための前記相互認証が進行中であることを示す相互進行ステータスとを含む認証応答を分解するステップと、
待機中相互認証のために、前記相互進行ステータスを受信するとつくことになる、相互認証中状態を与えるステップと、
前記イニシエータ公開鍵と前記レスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答を分解するステップと、
前記相互認証の確認を示す相互確認ステータスと、前記レスポンダ公開鍵と前記イニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認を作成するステップと、
前記相互認証応答を受信し、前記レスポンダ公開鍵と前記イニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく前記相互レスポンダ認証データを正常に処理すると、前記認証済み状態につくステップと
を有する、イニシエータ方法。
【請求項16】
通信プロトコルに従うイニシエータデバイスとのワイヤレス通信のためにレスポンダデバイスにおいて使用するためのレスポンダ方法であって、
前記通信プロトコルが、
前記イニシエータデバイスによる前記レスポンダデバイスの片側認証、並びに
前記イニシエータデバイスによる前記レスポンダデバイスの及び前記レスポンダデバイスによる前記イニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
前記レスポンダ方法は、
ユーザ対話と前記イニシエータデバイスから受信されたメッセージとに応じて前記認証プロトコルに従ってレスポンダ状態を与えるステップであって、前記レスポンダ状態が、
前記イニシエータデバイスからメッセージを受信するための待機中状態と、
前記認証が正常に実行されたことを示すレスポンダ認証済み状態と
を含む、与えるステップと、
レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、前記相互認証が進行中であることを示す相互進行ステータスとを含む認証応答を作成するステップと、
前記レスポンダデバイスがレスポンダ帯域外アクションを介して前記イニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互レスポンダ認証中状態を与えるステップと、
前記相互レスポンダ認証中状態で送られることになり、前記イニシエータ公開鍵と前記レスポンダ公開鍵に対応するレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答を作成するステップと、
イニシエータ公開鍵を検証するためのイニシエータベリファイアと前記レスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求を分解するステップと、
前記認証要求を正常に処理すると、レスポンダ認証中状態につくステップと
を有する、レスポンダ方法。
【請求項17】
前記レスポンダ方法は
、
前記相互認証の確認を示す相互確認ステータスと、前記レスポンダ公開鍵と前記イニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認を分解するステップと、
前記イニシエータ公開鍵と前記レスポンダプライベート鍵とに基づく前記相互イニシエータ認証データを正常に処理すると、前記レスポンダ認証済み状態につくステップと
をさらに有する、請求項
16に記載のレスポンダ方法。
【請求項18】
ネットワークからダウンロード可能な、並びに/或いはコンピュータ可読媒体及び/又はマイクロプロセッサ実行可能媒体に記憶されたコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータ上で実行されたときに請求項
15に記載のイニシエータ方法又は
請求項16に記載の
レスポンダ方法
のいずれかを実施するためのプログラムコード命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信プロトコルに従うワイヤレス通信のために構成されたイニシエータデバイス及びレスポンダデバイス、並びに、そのようなデバイスにおいて使用するための方法及びコンピュータプログラム製品に関する。通信プロトコルは、
- イニシエータデバイスによるレスポンダデバイスの片側認証、並びに
- イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含む。レスポンダデバイスは、通信プロトコルに従うワイヤレス通信のために構成されたレスポンダトランシーバと、通信プロトコルを処理するために構成されたレスポンダプロセッサとを備える。イニシエータデバイスは、通信プロトコルに従うワイヤレス通信のために構成されたイニシエータトランシーバと、通信プロトコルを処理するために構成されたイニシエータプロセッサとを備える。
【0002】
本発明は、短距離ワイヤレス通信システム、たとえば屋内通信システムの分野に関し、より詳細には、レスポンダデバイス及び/又はイニシエータデバイスを認証することに基づいてワイヤレス接続をセキュアにセットアップするための様々なデバイス及び方法を提供する。Wi-Fi(登録商標)(参考文献[1]参照)は、ワイヤレスデバイス接続を確立するための通信プロトコル及び機構の一例を与える。
【背景技術】
【0003】
ワイヤレス通信においてデバイスを識別し、認証するための手段として、公開鍵が使用される。公開鍵に関連付けられたプライベート鍵は、各デバイス内で生成され、暴露から保護されるべきである。デバイスはピアデバイスを認証するために公開鍵暗号技術を使用し、ここで、デバイスは、それらの公開鍵に対応するプライベート鍵の所有を証明し、さらなるセキュアな通信のために共有鍵を確立しなければならない。このセキュリティアーキテクチャは、デバイス間のセキュアな接続性の確立を簡略化し、デバイスをプロビジョニング及び接続する際のユーザビリティの改善のための基礎を与える。
【0004】
認証プロトコルを開始するデバイスは、イニシエータの役割を果たす。イニシエータ要求に応答するデバイスは、レスポンダの役割を果たす。認証プロトコルは、イニシエータにレスポンダの認証を与え、随意に、レスポンダにイニシエータの認証を与える。これは、イニシエータが単方向認証を実行するためにレスポンダのブートストラッピング鍵を取得し、両方の当事者が随意に相互認証を実行するために互いのブートストラッピング鍵を取得したと仮定する。
【0005】
Diffie-Hellman(参考文献[6]参照)は、2つの当事者間の秘密鍵を確立するためのよく知られている技術であり、ここで、当事者間の通信は、確立された秘密鍵に関するいかなる情報も第三者に明らかにしない。2つの当事者は各々、それら自体の公開/プライベート鍵ペアを使用し、公開鍵を互いと交換する。各当事者は、それ自体のプライベート鍵と、他方の当事者の公開鍵と、場合によっては何らかの他の情報、たとえば各当事者からのナンス(乱数)とを使用して秘密鍵を計算することが可能である。各当事者は、それがDiffie-Hellmanを実行するか、又はそれがより古い鍵ペアを再使用するたびに、新たに鍵ペアを生成する。
【0006】
ネットワークを介してDiffie-Hellmanを実行するとき、Diffie-Hellmanを実行するための公開鍵を受信したデバイスは、この公開鍵がどのデバイスからのものであるかを知らない。これは、いわゆる中間者攻撃において攻撃者によって利用される。攻撃者Eは、デバイスAが接続することを希望する現実のデバイスBになりすます。攻撃者Eは、デバイスAとのDiffie-Hellmanを実行し、デバイスAとの秘密鍵Kaeを確立する。同様に、攻撃者は、デバイスBに対してデバイスAになりすまし、デバイスBとの秘密鍵Kbeを確立する。デバイスA又はデバイスBの一方からメッセージが来たとき、攻撃者は、一方の秘密鍵を用いてメッセージを解読し、他方の秘密鍵を用いてそれを暗号化し、それを他方のデバイスにフォワーディングする。このようにして、デバイスAとデバイスBとは、いくらかの余分な遅延を除いて、それらの通信における妙な点に気づかない。しかし、攻撃者は、それらが何を通信するかに関する完全な知識を有する。
【0007】
ワイヤレス通信のセキュリティを高めるために、プロトコルが、通信プロトコルに従うセキュアなワイヤレス通信に参加しているデバイスのうちの1つ又は複数の認証のために使用される。そのような認証プロトコルは第1の参加しているデバイスによって開始され、第1の参加しているデバイスは、通常、第2の参加しているデバイスと通信しているイニシエータデバイスと呼ばれ、第2の参加しているデバイスは、通常、レスポンダデバイスと呼ばれる。現在のコンテキストでは、イニシエータデバイスは、ワイヤレス通信を使用して接続をセットアップするための能力を有する任意の電子デバイスである。イニシエータデバイスは、PC、アクセスポイント、ワイヤレスドッキングステーション、ワイヤレスUSBハブ、或いはワイヤレスビデオ又はAVモニターのような固定デバイスであるが、ラップトップ又はモバイルフォンのようなポータブルデバイスでもある。レスポンダデバイスは、同様に、ワイヤレス通信を使用して接続をセットアップするための能力を有する任意のタイプの電子デバイスである。
【0008】
したがって、通信プロトコルは、レスポンダ及び/又はイニシエータの認証を適応させるための認証プロトコルを含む。認証は、イニシエータデバイスによるレスポンダデバイスの片側認証である。また、認証は、イニシエータデバイスによるレスポンダデバイスの認証とレスポンダデバイスによるイニシエータデバイスの認証とを伴う、相互認証である。
【発明の概要】
【発明が解決しようとする課題】
【0009】
そのような認証プロトコルにおいて、たとえばDiffie-Hellmanを使用するときの中間者攻撃を防ぐために、通信の他のやり方、すなわち、通常、帯域内通信と呼ばれる、ワイヤレス通信プロトコルに従って使用されるワイヤレス通信チャネル以外のやり方が、公開鍵又は公開鍵のハッシュを交換するために使用される。通信の他のやり方は、一般に帯域外(OOB)通信と呼ばれ、それは、たとえば、バーコードのような視覚マーカーを使用するか、又はユーザにコードを入力させる。
【0010】
その上、通信プロトコルは、一般に、メッセージのワイヤレス交換の雑音及び妨害に対処するための機構を有する。たとえば、返答が所定のタイムアウト期間内に受信されなかったとき、メッセージは再び送信される。所定の数の再試行の後に、通信プロトコルはアボートされる。
【0011】
本発明の目的は、認証中の過度に長いタイムアウト期間を回避しながら、イニシエータデバイスとレスポンダデバイスとの間の接続を確実にセットアップするためのセキュアなワイヤレス通信システムを与えることである。
【課題を解決するための手段】
【0012】
この目的で、添付の特許請求の範囲において定義されているデバイス及び方法が提供される。
【0013】
本発明の一態様によれば、イニシエータデバイスが、通信プロトコルに従うレスポンダデバイスとのワイヤレス通信のために構成され、
通信プロトコルが、
- イニシエータデバイスによるレスポンダデバイスの片側認証、並びに
- イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
レスポンダデバイスが、
- 通信プロトコルに従うワイヤレス通信のために構成されたレスポンダトランシーバと、
- 通信プロトコルを処理するために構成されたレスポンダプロセッサとを備え、
イニシエータデバイスが、
- 通信プロトコルに従うワイヤレス通信のために構成されたイニシエータトランシーバと、
- 通信プロトコルを処理するために構成されたイニシエータプロセッサとを備え、イニシエータプロセッサが、
- レスポンダデバイスに送られることになるメッセージを作成することと、認証プロトコルに従ってレスポンダデバイスから受信されたメッセージを分解することとを行うためのイニシエータメッセージユニットと、
- ユーザ対話とレスポンダデバイスから受信されたメッセージとに応じて認証プロトコルに従ってイニシエータ状態を与えるためのイニシエータステートマシンと
を備え、イニシエータ状態は、
イニシエータ帯域外アクションを介してレスポンダデバイスからレスポンダ公開鍵を取得することによるブートストラッピングのための初期状態と、
ブートストラッピングがレスポンダ公開鍵を取得することによって正常に実行されたことを示すブートストラップ済み状態(bootstrapped state)と、
認証が正常に実行されたことを示す認証済み状態(authenticated state)と
を含み、
イニシエータメッセージユニットは、
- ブートストラップ済み状態で送られることになり、イニシエータ公開鍵を検証するためのイニシエータベリファイアとレスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求
を含むメッセージを作成するように構成され、
- レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づくレスポンダ片側認証データと、レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互認証が進行中であることを示す相互進行ステータス(mutual progress status)とを含む認証応答
を含むメッセージを分解するように構成され、
- 相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認
を作成するように構成される。
【0014】
本発明のさらなる態様によれば、片側認証方法に加えて、又はその代替として、イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証が実行され得る。この態様によれば、イニシエータステートマシンは、待機中相互認証(awaiting mutual authentication)のために、相互進行ステータスを受信するとつくことになる(engage)、相互認証中状態(authenticating state)を与えるように構成され、
イニシエータメッセージユニットが、
- イニシエータ公開鍵とレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答
を分解するように構成され、
イニシエータステートマシンは、相互認証応答を受信し、イニシエータプロセッサがレスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互レスポンダ認証データを正常に処理すると、認証済み状態につくように構成される。
【0015】
本発明のさらなる態様によれば、レスポンダデバイスが、通信プロトコルに従うイニシエータデバイスとのワイヤレス通信のために構成され、
通信プロトコルが、
- イニシエータデバイスによるレスポンダデバイスの片側認証、並びに
- イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
イニシエータデバイスが、
- 通信プロトコルに従うワイヤレス通信のために構成されたイニシエータトランシーバと、
- 通信プロトコルを処理するために構成されたイニシエータプロセッサとを備え、
レスポンダデバイスが、
- 通信プロトコルに従うワイヤレス通信のために構成されたレスポンダトランシーバと、
- 通信プロトコルを処理するために構成されたレスポンダプロセッサとを備え、レスポンダプロセッサが、
- イニシエータデバイスに送られることになるメッセージを作成することと、認証プロトコルに従ってイニシエータデバイスから受信されたメッセージを分解することとを行うためのレスポンダメッセージユニットと、
- ユーザ対話とイニシエータデバイスから受信されたメッセージとに応じて認証プロトコルに従ってレスポンダ状態を与えるためのレスポンダステートマシンとを備え、レスポンダ状態は、
イニシエータデバイスからメッセージを受信するための待機中状態(awaiting state)と、
認証が正常に実行されたことを示すレスポンダ認証済み状態と
を含み、
レスポンダメッセージユニットは、
- レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、相互認証が進行中であることを示す相互進行ステータスとを含む認証応答
を含むメッセージを作成するように構成され、
- イニシエータ公開鍵を検証するためのイニシエータベリファイアとレスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求
を含むメッセージを分解するように構成される。
【0016】
本発明のさらなる態様によれば、片側認証方法に加えて、又はその代替として、イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証が実行され得る。この態様によれば、レスポンダステートマシンは、
- レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互レスポンダ認証中状態を与えるように構成され、
レスポンダメッセージユニットが、
- 相互レスポンダ認証中状態で送られることになり、イニシエータ公開鍵とレスポンダ公開鍵に対応するレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答
を作成するように構成され、
- 相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認
を分解するように構成され、
レスポンダステートマシンは、レスポンダプロセッサがイニシエータ公開鍵とレスポンダプライベート鍵とに基づくイニシエータ認証データを正常に処理すると、レスポンダ認証済み状態につくように構成される。
【0017】
本発明のさらなる態様によれば、通信プロトコルに従うレスポンダデバイスとのワイヤレス通信のためにイニシエータデバイスにおいて使用するためのイニシエータ方法が提供され、
通信プロトコルが、
- イニシエータデバイスによるレスポンダデバイスの片側認証、並びに
- イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
イニシエータ方法は、
- ユーザ対話とレスポンダデバイスから受信されたメッセージとに応じて認証プロトコルに従ってイニシエータ状態を与えるステップであって、イニシエータ状態が、
イニシエータ帯域外アクションを介してレスポンダデバイスからレスポンダ公開鍵を取得することによるブートストラッピングのための初期状態と、
ブートストラッピングがレスポンダ公開鍵を取得することによって正常に実行されたことを示すブートストラップ済み状態と、
認証が正常に実行されたことを示す認証済み状態と
を含む、与えるステップと、
- ブートストラップ済み状態で送られることになり、イニシエータ公開鍵を検証するためのイニシエータベリファイアとレスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求を作成するステップと、
- レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互認証が進行中であることを示す相互進行ステータスとを含む認証応答を分解するステップと、
- 待機中相互認証のために、相互進行ステータスを受信するとつくことになる、相互認証中状態を与えるステップと、
- イニシエータ公開鍵とレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答を分解するステップと、
- 相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認を作成するステップと、
- 相互認証応答を受信し、レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互レスポンダ認証データを正常に処理すると、認証済み状態につくステップと
を有する。
【0018】
本発明のさらなる態様によれば、通信プロトコルに従うイニシエータデバイスとのワイヤレス通信のためにレスポンダデバイスにおいて使用するためのレスポンダ方法が提供され、
通信プロトコルが、
- イニシエータデバイスによるレスポンダデバイスの片側認証、並びに
- イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証
のうちの1つである認証を適応させるための認証プロトコルを含み、
レスポンダ方法は、
- ユーザ対話とイニシエータデバイスから受信されたメッセージとに応じて認証プロトコルに従ってレスポンダ状態を与えるステップであって、レスポンダ状態が、
イニシエータデバイスからメッセージを受信するための待機中状態と、
認証が正常に実行されたことを示すレスポンダ認証済み状態と
を含む、与えるステップと、
- レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づく片側レスポンダ認証データと、相互認証が進行中であることを示す相互進行ステータスとを含む認証応答を作成するステップと、
- イニシエータ公開鍵を検証するためのイニシエータベリファイアとレスポンダ公開鍵を検証するためのレスポンダベリファイアとを含む認証要求を分解するステップと、
- 認証要求を正常に処理すると、レスポンダ認証中状態につくステップと、
- レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互レスポンダ認証中状態を与えるステップと、
- 相互レスポンダ認証中状態で送られることになり、イニシエータ公開鍵とレスポンダ公開鍵に対応するレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答を作成するステップと、
- 相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づく相互イニシエータ認証データとを含む相互認証確認を分解するステップと、
- イニシエータ公開鍵とレスポンダプライベート鍵とに基づく相互イニシエータ認証データを正常に処理すると、レスポンダ認証済み状態につくステップと
を有する。
【0019】
本発明のさらなる態様によれば、ネットワークからダウンロード可能な、並びに/或いはコンピュータ可読媒体及び/又はマイクロプロセッサ実行可能媒体に記憶されたコンピュータプログラム製品が提供され、コンピュータプログラム製品は、コンピュータ上で実行されたときに上記の方法を実施するためのプログラムコード命令を含む。
【0020】
上記の特徴は、認証プロトコルが片側認証と相互通信の両方をサポートするという効果を有する。プロトコルは様々なメッセージを交換することによって実行され、メッセージは、それぞれイニシエータメッセージユニット及びレスポンダメッセージユニットによって作成され、分解される。さらに、メッセージを交換することとメッセージ中の要素を処理することとのシーケンスは、それぞれイニシエータステートマシン及びレスポンダステートマシンを介して制御され、イニシエータステートマシンとレスポンダステートマシンとは、認証プロトコルを実行する間のイニシエータデバイス及びレスポンダデバイスの状態を決定する。
【0021】
さらに、認証プロトコルは、レスポンダデバイスからレスポンダ公開鍵を取得するために帯域外(OOB)通信を使用することを可能にする。イニシエータ側における帯域外アクションは、レスポンダ公開鍵自体、或いは、さらなる通信アクションを介して受信された、たとえば、帯域内メッセージを受信したか又は以前の通信セッションにおいて記憶されたレスポンダ公開鍵を検証するための符号化されたレスポンダ公開鍵データを受信することを伴う。鍵材料の初期量を取得するプロセスは、ブートストラッピングと呼ばれる。ブートストラッピングが成功した後に、イニシエータは、レスポンダデバイスの認証を実行するために認証中状態につく。
【0022】
しかしながら、相互認証の場合、レスポンダデバイスは、レスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得しなければならない。たとえばユーザ対話を伴う場合、イニシエータデバイス上のコードを読み取り、それをレスポンダデバイスに入力するか、或いはイニシエータデバイス上のバーコード又はQRコード(登録商標)などの機械可読コードの写真を撮ることなど、OOB通信を介してコードを交換することは、長い時間を要する(数十秒程度)。そのような時間は、ワイヤレス通信を介してメッセージを交換する時間(通常、数ミリ秒以下)と比較して長い。イニシエータデバイスは、認証要求を送った後に、認証応答を待ち続ける。相互認証を可能にするために、完全な認証応答は、イニシエータ公開鍵にも基づいてレスポンダ認証データを与えることを必要とする。発明者は、完全な認証応答が、レスポンダOOBアクションに十分な比較的長い時間の後にのみ送信されることがわかった。したがって、旧来の相互認証プロトコルでは長いタイムアウト期間が必要とされる。不利なことに、たとえば雑音により認証要求が受信されなかった場合、再送信は、長いタイムアウト期間の後にのみ行われる。
【0023】
また、認証要求が受信されなかった場合、又は、認証応答が誤ったデータを含んでおり、それにより認証が失敗した場合、ユーザは、イニシエータデバイスがユーザに認証が失敗したことを知らせるまで長い時間待たなければならない。そのような長いタイムアウト期間を回避するために、レスポンダ公開鍵に対応するレスポンダプライベート鍵に基づくレスポンダ認証データを含んでいる認証応答が与えられており、それには、いかなるイニシエータ鍵をも伴わない。有利なことに、そのような認証応答は、認証要求を処理した直後に送信され、認証要求を送ったときのイニシエータデバイスにおける短いタイムアウトを可能にする。したがって、雑音の場合、再送信は短いタイムアウトに基づいて行われることになり、ユーザは、認証試みがいつ失敗したかをはるかに迅速に知ることになる。
【0024】
その上、発明者は、そのような認証応答が片側認証のための応答と同様であることがわかった。しかしながら、相互認証が実行されることになる。したがって、さらに、上記の拡張された認証応答は、相互認証が進行中であることを示す相互進行ステータスをさらに含んでいる。また、イニシエータステートマシンは、待機中相互認証のために、相互進行ステータスを受信するとつくことになる、相互認証中状態を与えるように構成される。有利なことに、相互認証中状態では、イニシエータデバイスは相互認証に気づいており、それは、イニシエータ公開鍵とレスポンダプライベート鍵とに基づく相互レスポンダ認証データを含む相互認証応答を後で受信することを可能にする。その後、受信された相互レスポンダ認証データの処理が成功した場合、イニシエータは、相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵とイニシエータ公開鍵に対応するイニシエータプライベート鍵とに基づくイニシエータ認証データとを含む相互認証確認を送信する。
【0025】
したがって、第1の認証応答メッセージ中で追加の相互認証状態及び相互進行ステータスを与えることによって、相互認証は、長いタイムアウト期間を必要とすることなしに実行され、同じ認証プロトコルにおいて、片側認証をも可能にする。有利なことに、ワイヤレス通信のための条件が悪い場合、必要とされるメッセージの再送信は、短いタイムアウト期間により、比較的高速である。
【0026】
本発明による方法は、コンピュータ上でコンピュータ実施方法として、又は専用ハードウェアで、又はその両方の組合せで実施される。本発明による方法のための実行可能コードが、コンピュータプログラム製品に記憶される。コンピュータプログラム製品の例は、メモリスティックなどのメモリデバイス、光ディスクなどの光記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。コンピュータプログラム製品は、コンピュータプログラム製品がコンピュータ上で実行されるとき、本発明による方法を実行するためのコンピュータ可読媒体に記憶された非一時的プログラムコード手段を含む。一実施形態では、コンピュータプログラムは、コンピュータプログラムがコンピュータ上で実行されるとき、本発明による方法のすべてのステップ又は段階を実行するように適応されたコンピュータプログラムコード手段を含む。好ましくは、コンピュータプログラムは、コンピュータ可読媒体上で具現される。ネットワークからダウンロード可能な、並びに/或いはコンピュータ可読媒体及び/又はマイクロプロセッサ実行可能媒体に記憶されたコンピュータプログラム製品が提供され、コンピュータプログラム製品は、コンピュータ上で実行されたときに上記で説明された方法を実施するためのプログラムコード命令を含む。
【0027】
本発明の別の態様は、コンピュータプログラムをダウンロードのために利用可能にする、たとえばアプリケーションに含まれるようにする方法を提供する。この態様は、コンピュータプログラムが、たとえば、AppleのApp Store、GoogleのPlay Store、又はMicrosoftのWindows Storeにアップロードされるとき、及びコンピュータプログラムが、そのようなストアからダウンロードするために利用可能であるとき、使用される。
【0028】
本発明によるデバイス及び方法のさらなる好ましい実施形態が添付の特許請求の範囲において与えられ、それの開示は参照により本明細書に組み込まれる。
【0029】
本発明のこれら及び他の態様は、以下の説明において例として及び添付の図面を参照しながら説明される実施形態から明らかになり、さらにそれらを参照して解明されよう。
【図面の簡単な説明】
【0030】
【
図1】ワイヤレス通信及び認証のためのデバイスを示す図である。
【
図3】イニシエータステートマシンの一例を示す図である。
【
図4】レスポンダステートマシンの一例を示す図である。
【
図7b】プロセッサシステムの概略表現を示す図である。
【発明を実施するための形態】
【0031】
図は、単に概略であり、一定の縮尺で描かれていない。図において、すでに説明された要素に対応する要素は同じ参照番号を有する。
【0032】
以下の略語が使用される。
状態:
IST 初期状態
BST ブートストラップ済み
AG1 認証中(イニシエータ、片方向)
AG2 相互認証中(イニシエータ、相互)
ATD 認証済み(イニシエータ)
AWG 待機中(Awaiting)(レスポンダ)
AR1 認証中(レスポンダ、片方向)
AR2 相互認証中(レスポンダ、相互)
ARD 認証済み(レスポンダ)
メッセージ:
ARQ 認証要求
ARP 認証応答
ACF1 認証確認(片方向)
ACF2 相互認証確認
ARP1 認証応答(片方向)
ARP2 相互認証応答
イベント/アクション/ステータス:
OOB 帯域外(通信アクション)
OOB_I 帯域外(イニシエータによる通信アクション)
OOB_R 帯域外(レスポンダによる通信アクション)
BA 不正な認証(Bad Authentication)(イベント)
BTG ブートストラッピング(イベント)
NP ピアなし(No Peer)(イベント)
TO タイムアウト(イベント)
TR トリガ(イベント)
MPS 相互進行ステータス
MAS 相互待機中ステータス
MCS 相互確認ステータス
鍵:
BI イニシエータの公開ブートストラッピング鍵
BR レスポンダの公開ブートストラッピング鍵
PI イニシエータの公開鍵
PR レスポンダの公開鍵
bI BIに対応するイニシエータプライベート鍵
bR BRに対応するレスポンダプライベート鍵
【0033】
図1は、ワイヤレス通信及び認証のためのデバイスを示す。ワイヤレス通信のためのシステム100は、イニシエータデバイス110とレスポンダデバイス120とを備え、それらのデバイスは物理的に離れている。イニシエータデバイスは、通信プロトコルに従うワイヤレス通信のために構成されたイニシエータトランシーバ111と、通信プロトコルを処理するために構成されたイニシエータプロセッサ112とを備える。同様に、レスポンダデバイスは、通信プロトコルに従うワイヤレス通信のために構成されたレスポンダトランシーバ121と、通信プロトコルを処理するために構成されたレスポンダプロセッサ122とを備える。それらのデバイスは、トランシーバ111とトランシーバ121とを接続する形状130及び矢印によって概略的に示されているように、ワイヤレス通信のために装備される。イニシエータデバイスはユーザインターフェース113を備え、ユーザインターフェース113は、1つ又は複数のボタン115、キーボード、ディスプレイ、タッチスクリーンなど、よく知られている要素を含む。レスポンダデバイスも、ユーザインターフェース123を備える。レスポンダユーザインターフェースは、イニシエータデバイスからイニシエータ公開鍵を取得するためにレスポンダ帯域外アクションを実行するためにユーザ対話を適応させるために構成される。
【0034】
それらのデバイスは、イニシエータデバイスとレスポンダデバイスとの間の通信プロトコルに従うワイヤレス通信のために構成される。それらのデバイスは、イニシエータデバイスによるレスポンダデバイスの片側認証、並びに、イニシエータデバイスによるレスポンダデバイスの及びレスポンダデバイスによるイニシエータデバイスの相互認証のうちの1つである認証を適応させるための認証プロトコルを実行するために構成され、一例について
図2を参照しながら以下で詳述する。通信プロトコルは認証プロトコルを含む。例では、通信プロトコルは、IEEE802.11に従うWi-Fi(登録商標)である[参考文献1]が、以下で解明されるようなシステムに基づく適切な認証プロトコルを与えられたとき、Bluetooth(登録商標)など、他のワイヤレスプロトコルも使用される。
【0035】
イニシエータプロセッサ112は、レスポンダデバイスに送られることになるメッセージを作成することと、認証プロトコルに従ってレスポンダデバイスから受信されたメッセージを分解することとを行うためのイニシエータメッセージユニット116を備える。イニシエータプロセッサは、ユーザ対話とレスポンダデバイスから受信されたメッセージとに応じて認証プロトコルに従ってイニシエータ状態を与えるためのイニシエータステートマシン117をも備え、一例について
図3を参照しながら以下で詳述する。
【0036】
レスポンダプロセッサ122は、イニシエータデバイスに送られることになるメッセージを作成することと、認証プロトコルに従ってイニシエータデバイスから受信されたメッセージを分解することとを行うためのレスポンダメッセージユニット126を備える。レスポンダプロセッサは、ユーザ対話とイニシエータデバイスから受信されたメッセージとに応じて認証プロトコルに従ってレスポンダ状態を与えるためのレスポンダステートマシン127をも備える。
【0037】
それぞれのメッセージユニット及びステートマシンを使用して、それぞれのメッセージ並びにそれぞれのイニシエータ状態及びレスポンダ状態に基づいて認証プロトコルを適応させるためのイニシエータプロセッサ及びレスポンダプロセッサの機能は、
図2、
図3及び
図4を参照しながら以下で解明される。
【0038】
認証のために、提案するシステムは、RSA、[7]参照、又は楕円曲線暗号(ECC)、[8]参照、など、任意の形態の公開鍵暗号法を使用する。
【0039】
図2は、認証プロトコルの概略図を示す。認証プロトコル200に従って、第1のデバイスINIT_DEVは、下方向で時間の進行を表す2つの垂直タイムライン間の矢印によって示されているように、メッセージを第2のデバイスRESP_DEVと交換する。第1のデバイスは、ISTにおいて開始するイニシエータデバイスであり、第2のデバイスは、AWGにおいて開始するレスポンダデバイスであるが、そのような役割は逆転される。メッセージは、送信側におけるメッセージユニットによって作成され、受信側におけるメッセージユニットによって分解される。
【0040】
本明細書では、BIはイニシエータの公開ブートストラッピング鍵を示し、bIは対応するプライベート鍵を示す。同様に、BRはレスポンダの公開ブートストラッピング鍵を示し、bRは対応するプライベート鍵を示す。Hはハッシュ関数を示し、たとえば、そのようなものとして知られている適切なハッシュ片方向アルゴリズムに基づく。ハッシュ関数の好適な例は、参考文献[4]において見つけられ得る。
【0041】
イニシエータ公開鍵のハッシュ値は、H(BI)によって示される。ハッシュ値は、ハッシュ保護値(hash-protected value)に対応することが容易に検証され得るが、同じハッシュを維持しながらそのような値を操作することはほぼ不可能である。認証データは、1つ又は複数の鍵、すなわち、それぞれの公開鍵及びプライベート鍵に基づいて算出され、たとえば{auth1}k1によって示され、{auth1}k1は、鍵k1によって暗号化されたauth1の値を意味し、{auth1}はauth1の値を意味する。たとえば前述のDiffie-Hellman暗号化システムから、そのような鍵は生成され、そのようによく知られているように、符号化及び復号すること、シグネチャ又は制御値を生成すること、並びにそのような値を検証することのために使用される。
【0042】
最初に、イニシエータデバイスは、イニシエータ帯域外アクションを介してレスポンダデバイスからレスポンダ公開鍵を取得することによるブートストラッピングを実行する。OOBアクションは、OOBアクションとマークされた破線矢印によって示されている(対応して
図1において矢印140によって示されている)。OOBアクションの様々な例は、参考文献[2]、第10章に記載されている。他の例は、ユーザが、イニシエータデバイス上のコードを読み取り、それをレスポンダデバイスに入力すること、ユーザが、イニシエータデバイスのカメラを用いて、レスポンダデバイスにプリントされた又はレスポンダデバイスによって表示されたバーコード又はQRコード(登録商標)などの機械可読コードの写真を撮ることである。
【0043】
その後、イニシエータメッセージユニットは、ブートストラップ済み状態で送られることになる認証要求ARQを作成する。認証要求は、イニシエータ公開鍵を検証するためのイニシエータベリファイアH(BI)とレスポンダ公開鍵を検証するためのレスポンダベリファイアH(BR)とを含んでいる。ARQは、イニシエータ公開鍵PIと、イニシエータナンスI-nonce及びイニシエータ能力データI-capabilitiesのようなさらなるイニシエータデータとをさらに含んでおり、さらなるイニシエータデータは第1の鍵K1を使用して符号化され、{I-nonce|I-capabilities}K1によって示される。第1の鍵K1は、レスポンダ公開鍵BRとイニシエータ公開鍵PIに対応するイニシエータプライベート鍵pIとから、Diffie-Hellman様式でイニシエータによって導出される。第1の鍵K1は、イニシエータ公開鍵PIとレスポンダ公開鍵BRに対応するレスポンダプライベート鍵bRとから、Diffie-Hellman様式でレスポンダによって導出される。対応して、レスポンダメッセージユニットは、認証要求ARQを分解するように構成される。
【0044】
タイムアウトTOの後に、応答が受信されなかったとき、ARQは、たとえば3回まで再び送信される。応答ARP1が時間内に受信されると仮定される。
【0045】
レスポンダメッセージユニットは、認証応答ARP1を作成するように構成され、認証応答ARP1は、片側レスポンダ認証データ{R-auth1}k1を含んでいる。ARP1は、レスポンダ公開鍵PRと、レスポンダナンスR-nonceのようなさらなるレスポンダデータとをさらに含んでいる。第1の中間鍵k1は、イニシエータ公開鍵PIに基づき、(PRがARP1中に存在していた場合)レスポンダ公開鍵(PR)に対応するレスポンダプライベート鍵(pR)に基づき、レスポンダ公開鍵(BR)に対応するレスポンダプライベート鍵(bR)に基づく。第1の中間鍵は、レスポンダデバイスの片側認証に適している。R-auth1の値は、イニシエータナンスI-nonce、レスポンダナンスR-nonce、及び/又はPR、BR及びPIなどの使用される公開鍵など、認証プロトコルにおいて使用される値のうちの任意の選ばれた値の連結(のハッシュ)である。ナンスのランダム性により、R-auth1の値はプロトコルが実行されるたびに異なり、それにより、リプレイアタックから保護する。相互認証の場合、ARP1は、レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための、相互認証が進行中であることを示す相互進行ステータスをも含む。対応して、イニシエータメッセージユニットは、認証応答ARP1を分解するように構成される。
【0046】
随意に、イニシエータメッセージユニットは、認証中状態で相互進行ステータスを受信すると、相互待機中ステータスを含んでいる待機中認証確認ACF1を作成するように構成される。ACF1は、レスポンダ公開鍵(BR)とイニシエータ公開鍵PIに対応するイニシエータプライベート鍵(pI)とに基づく片側イニシエータ認証データ{I-auth1}k1を含んでいる。{I-auth1}の値は、同じ入力を使用して{R-auth1}と同様の様式で計算される。しかしながら、リプレイアタックから守るために、{I-auth1}の値は{R-auth1}の値とは異なるべきである。したがって、ハッシュを計算するときの入力の順序は別様に選択されるべきであり、及び/又は、{R-auth1}についてのハッシュの計算におけるものとは異なる一定値がハッシュに含まれるべきである。対応して、レスポンダメッセージユニットは、待機中認証確認ACF1を分解するように構成される。
【0047】
その後、レスポンダデバイスは、レスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを実行するか、又は、それをすでに実行している。OOBアクションは、OOBアクションとマークされた破線矢印によって示されている(対応して
図1において矢印140によって示されている)。取得することを完了すると、レスポンダステートマシンは、相互認証応答ARP2を送るために、以下で解明されるように進む。
【0048】
レスポンダメッセージユニットは、相互レスポンダ認証データ{R-auth2}k2を含む相互認証応答ARP2を作成するように構成される。ARP2は、レスポンダ公開鍵PRと、レスポンダナンスR-nonceのようなさらなるレスポンダデータとをさらに含んでいる。第2の中間鍵k2は、イニシエータ公開鍵(BI)とレスポンダ公開鍵(BR)に対応するレスポンダプライベート鍵(bR)とに基づく。第2の中間鍵は、レスポンダデバイスとイニシエータデバイスとの相互認証に適している。第2の中間鍵は、レスポンダにおける{bR、pR、BI及びPI}、又はイニシエータにおける{pI、bI、BR及びPR}を使用して決定される。R-auth2の値は、イニシエータナンスI-nonce、レスポンダナンスR-nonce、及びBI、BR、PR及びPIなどの使用される公開鍵など、認証プロトコルにおいて使用される値の連結のハッシュである。ナンスのランダム性により、{R-auth2}の値はプロトコルが実行されるたびに異なり、それにより、リプレイアタックから保護する。対応して、イニシエータメッセージユニットは、認証応答ARP2を分解するように構成される。正常に処理することは、イニシエータプロセッサがレスポンダと同じk2についての値に達することと、イニシエータが、R-auth2自体を計算することによって、及びメッセージARP2中で受信された値{R-auth2}k2の鍵k2を用いた解読によって、{R-auth2}についての同じ値を見つけることとを意味する。
【0049】
イニシエータメッセージユニットは、相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵(BR)とイニシエータ公開鍵(BI)に対応するイニシエータプライベート鍵(bI)とに基づく相互イニシエータ認証データ{I-auth2}k2とを含む相互認証確認ACF2を作成するように構成される。第2の中間鍵k2は、イニシエータにおける{pI、bI、BR及びPR}を使用して決定され得る。{I-auth2}の値は、同じ入力を使用して{R-auth2}と同様の様式で計算される。しかしながら、リプレイアタックから守るために、{I-auth2}の値は{R-auth2}の値とは異なるべきである。したがって、ハッシュを計算するときの入力の順序は別様に選択されるべきであり、及び/又は、{R-auth2}についてのハッシュの計算におけるものとは異なる一定値がハッシュに含まれるべきである。対応して、レスポンダメッセージユニットは、相互認証確認ACF2を分解するように構成される。レスポンダが、同じ中間鍵k2に達し、I-auth2自体を計算することによって、及び鍵k2を用いた受信された{I-auth2}k2の解読によって、データI-auth2についての同じ値を取得した場合、レスポンダはBIを認証し、相互イニシエータ認証データ{I-auth2}k2の処理は成功した。
【0050】
図3は、イニシエータステートマシンの一例を示す。イニシエータステートマシン300は、ユーザ対話とレスポンダデバイスから受信されたメッセージとに応じて認証プロトコルに従ってイニシエータ状態を与える。イニシエータ状態は、
- イニシエータ帯域外アクションを介してレスポンダデバイスからレスポンダ公開鍵を取得することによるブートストラッピングのための初期状態ISTと、
- ブートストラッピングがレスポンダ公開鍵を取得することによって正常に実行されたことを示すブートストラップ済み状態BSTと、
- 認証を実行するための認証中状態AG1と、
- 相互認証を実行するための相互認証中状態AG2と、
- 認証が正常に実行されたことを示す認証済み状態ATDと
を含む。
【0051】
最初に、ステートマシンは、開始状態ISTにおいて開始する。矢印は、状態遷移を示し、状態遷移に対応するメッセージ又はイベントを示す頭字語によってマークされる。イニシエータステートマシンは、レスポンダ公開鍵を取得することによってブートストラッピングBTGを正常に実行すると、ブートストラップ済み状態BSTにつくように構成される。
【0052】
イニシエータステートマシンは、ARQを送ると、及び/或いはユーザ又は別のイベントによるトリガイベントTRを介して、或いは成功したブートストラッピングの直後に、認証中状態AG1にその後関与するように構成される。タイムアウトTOの後に、認証中状態AG1は、試行回数を計数しながら、ARQを再送信した後に再関与され、所定の数の試行を超えた後に、ブートストラップ済み状態BSTに、又は初期状態ISTにフォールバックする。状態BST及びAG1はまた、組み合わせられる。
【0053】
イニシエータステートマシンは、待機中相互認証のために、ARP1中で相互進行ステータスを受信すると、相互認証中状態AG2につくように構成される。随意に、相互待機中ステータスを含んでいる待機中認証確認ACF1が送られる。
【0054】
イニシエータステートマシンは、相互認証応答ARP2を受信し、イニシエータプロセッサがレスポンダ公開鍵とイニシエータ公開鍵(BI)に対応するイニシエータプライベート鍵(bI)とに基づく相互レスポンダ認証データ{R-auth2}k2を正常に処理すると、認証済み状態ATDにつくように構成される。次いで、相互確認ステータスを含む相互認証確認ACF2も送られる。
【0055】
随意に、イニシエータステートマシンは、認証中状態AG1で相互認証応答ARP2を受信し、イニシエータプロセッサが相互レスポンダ認証データ{R-auth2}k2を正常に処理すると、認証済み状態につくように構成される。次いで、相互確認ステータスを含む相互認証確認ACF2も送られる。非常に効果的に、相互認証中状態はスキップされる。
【0056】
随意に、イニシエータメッセージユニットは、片側認証の場合、レスポンダ公開鍵BRに対応するレスポンダプライベート鍵bRに基づく片側レスポンダ認証データ{R-auth1}k1と、片側認証を示す片側ステータスとを含む片側認証応答(ARP1)を分解するように構成される。また、イニシエータステートマシンは、イニシエータプロセッサがレスポンダ公開鍵とイニシエータ公開鍵BIに対応するイニシエータプライベート鍵bIとに基づく片側レスポンダ認証データ{R-auth1}k1を正常に処理すると、認証済み状態につくように構成される。正常に処理することは、イニシエータプロセッサがレスポンダと同じk1についての値に達することと、イニシエータが、R-auth1自体を計算することによって、及びメッセージARP1中で受信された値{R-auth1}k1の鍵k1を用いた解読によって、{R-auth1}についての同じ値を見つけることとを意味する。
【0057】
随意に、イニシエータステートマシンは、認証応答ARP1を受信し、イニシエータプロセッサが片側レスポンダ認証データ{R-auth1}k1を正常に処理しないと、ブートストラップ済み状態又は初期状態につくように構成される。正常に処理しないことは、いわゆる不正な認証BAによるか、又は、ピアデバイスが見つけられないときNPである。そのような場合、イニシエータステートマシンは、ブートストラップ済み状態BSTに、又は初期状態ISTにフォールバックするように構成され、それは、検出されたイベントにさらに依存する。
【0058】
随意に、イニシエータステートマシンは、相互認証応答ARP2を受信し、イニシエータプロセッサが相互レスポンダ認証データ{R-auth2}k2を正常に処理しないと、ブートストラップ済み状態又は初期状態につくように構成される。正常に処理しないことは、いわゆる不正な認証BAによるか、又は、ピアデバイスが見つけられないときNPである。そのような場合、イニシエータステートマシンは、ブートストラップ済み状態BSTに、又は初期状態IST(図示せず)にフォールバックするように構成され、それは、検出されたイベントにさらに依存する。
【0059】
図4は、レスポンダステートマシンの一例を示す。レスポンダステートマシン400は、ユーザ対話とレスポンダデバイスから受信されたメッセージとに応じて認証プロトコルに従ってレスポンダ状態を与える。レスポンダ状態は、
- イニシエータデバイスからメッセージを受信するための待機中状態(AWG)と、
- 認証を実行するためのレスポンダ認証中状態(AR1)と、
- レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための相互レスポンダ認証中状態(AR2)と、
- 認証が正常に実行されたことを示すレスポンダ認証済み状態(ARD)と
を含む。
【0060】
最初に、レスポンダステートマシンは、待機中状態AWGにおいて開始する。待機中状態AWGは、ユーザ対話、又は、レスポンダデバイスをオンに切り替えることなど、任意の他のイベント時に、関与される。矢印は、状態遷移を示し、状態遷移に対応するメッセージ又はイベントを示す頭字語によってマークされる。
【0061】
レスポンダステートマシンは、認証要求ARQを受信し、正常に処理すると、レスポンダ認証中状態AR1につくように構成される。状態AWG及びAR1はまた、単一の状態に組み合わせられる。
【0062】
ARQを正常に処理しないことは、レスポンダが、受信されたARQ中のレスポンダベリファイアH(BR)がその公開鍵BRのハッシュでないこと、又は、受信されたARQ中の{I-nonce|I-capabilities}K1を解読することがエラーにつながることを決定したことを意味する。間違った鍵が解読のために使用されていること、又は、暗号化されたデータが暗号化の後に変更されたことを解読中に検出することが可能である暗号化/解読アルゴリズムの一例は、AES-SIV、[3]参照、である。ARQを正常に処理すると、相互認証が進行中であることを示す相互進行ステータスを含んでいる認証応答ARP1がイニシエータに送信される。
【0063】
レスポンダステートマシンは、レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得すると、相互レスポンダ認証中状態AR2を与え、それにつく。取得すると、相互認証応答ARP2もイニシエータに送られる。
【0064】
随意に、レスポンダステートマシンは、相互待機中ステータスを含む待機中相互認証確認ACF1を受信し、処理するように構成される。
【0065】
レスポンダステートマシンは、次いで、相互待機中ステータスを受信すると、及びレスポンダOOBアクション時にのみ、相互レスポンダ認証中状態AR2につくように構成される。ACF1が所定のタイムアウトTO内に受信されなかった場合、状態は、レスポンダ認証中状態AR1のままであり、ARP1は、所定の数の再試行まで再び送信される。
【0066】
レスポンダステートマシンは、相互認証確認ACF2を受信すると、及びレスポンダプロセッサがイニシエータ公開鍵BIとレスポンダプライベート鍵bRとに基づく相互イニシエータ認証データ{I-auth2}k2を正常に処理すると、レスポンダ認証済み状態ARDにつくように構成される。
【0067】
随意に、レスポンダステートマシンは、レスポンダ認証中状態AR1で相互認証確認ACF2を受信すると、及びレスポンダプロセッサが相互イニシエータ認証データ{I-auth2}k2を正常に処理すると、レスポンダ認証済み状態ARDにつくように構成される。ACF2を受信することは、たとえばレスポンダが以前のセッションからのイニシエータ公開鍵をすでに所有していることに基づいて、レスポンダが直接、ARQの受信時に、相互認証応答ARP2をイニシエータに送ると行われる。
【0068】
随意に、メッセージユニットが、片側認証の場合、レスポンダ公開鍵BRに対応するレスポンダプライベート鍵bRに基づく片側レスポンダ認証データ{R-auth1}k1と、片側認証が完了したことを示す片側ステータスとを含む片側認証応答ARP1を作成するように構成される。また、レスポンダステートマシンは、片側認証の場合、片側認証確認ACF1を受信し、レスポンダプロセッサが片側イニシエータ認証データ{I-auth1}k1を正常に処理すると、レスポンダ認証済み状態につくように構成される。正常に処理することは、レスポンダプロセッサがイニシエータと同じk1についての値に達することと、レスポンダデバイスが、I-auth1自体を計算することによって、及びメッセージACF1中で受信された値{I-auth1}k1の鍵k1を用いた解読によって、I-auth1についての同じ値を見つけることとを意味する。
【0069】
随意に、レスポンダステートマシンは、相互認証確認ACF2を受信し、レスポンダプロセッサが相互イニシエータ認証データ{I-auth2}k2を正常に処理せず、不正な認証イベントBAが生じると、待機中状態につくように構成される。
【0070】
随意に、レスポンダメッセージユニットは、片側イニシエータ認証データ{I-auth1}k1を含み、相互待機中ステータスを含む待機中認証確認ACF1をさらに分解するように構成される。また、レスポンダステートマシンは、レスポンダプロセッサが片側イニシエータ認証データを正常に処理せず、不正な認証イベントBAが生じると、待機中状態につくように構成される。
【0071】
概して、相互認証は、片方向認証をも指定する認証プロトコルにおいて適応され得る。片方向認証では、レスポンダ(のユーザ)は、それがどのデバイスから認証要求を受信したかを確かめることを望まない。レスポンダは、帯域外でイニシエータの公開鍵BIをキャプチャせず、したがって、認証応答メッセージ中でイニシエータにBIのハッシュを送ることができず、それを送らない。レスポンダが、イニシエータが帯域外でキャプチャした公開鍵BRに対応するプライベート鍵bRの所有をイニシエータに証明したとき、片側認証のみが行われる。たとえば、イニシエータへのメッセージを暗号化するための鍵を作るために、Diffie-Hellman様式(参考文献[6]参照)でbRを使用することによって。そのようなプロトコルは、各当事者のための2つ又はそれ以上の鍵ペアを使用し、たとえば、1つの鍵ペアは、互いに対する信頼をブートストラップするための鍵ペアであり、さらなる鍵ペアは、さらなる動作のために公開鍵がそこから認証される鍵ペアである。
【0072】
ユーザが、Wi-Fi(登録商標)を介した要求及び応答並びにメッセージのさらなる交換を伴って、プロトコルの実行をトリガするアクションを実行するとき、ユーザは、すべてのメッセージの交換を伴うこのアクションが終了するまで長く待っているのを好まない。しかしながら、いくつかの理由で、たとえばメッセージがRF干渉によって破損した場合に、他方の当事者はメッセージの各々を受信することに失敗することがある。したがって、デバイスがWi-Fi(登録商標)を介して要求を送るとき、デバイスは、応答を待つためのタイマーを設定する。応答がタイムアウト内に到着しなかった場合、デバイスは、再び要求を送ることを試みる。数回の試行の後に応答が受信されなかった場合、デバイスは断念し、これをユーザに報告する。待ち時間がより長く、許容される試行の数がより多いとき、成功の見込みは増加するが、ユーザはまた、プロトコルが成功しなかったという確認を得るまでより長く待たなければならない。
【0073】
旧来の相互認証に関する問題は、レスポンダデバイスのユーザが最初に公開鍵BIをキャプチャしなければならないので、レスポンダが相互認証のために認証応答メッセージで応答するのに、片方向認証の場合よりも長い時間がかかることである。また、イニシエータデバイスは、レスポンダデバイスが相互認証を行うことを希望するか否かを知らない。したがって、イニシエータデバイスは、これに適応するように、イニシエータデバイスの待ち時間及び試行の数を高く設定しなければならない。これは、Wi-Fi(登録商標)問題、たとえば、あまりに多くの雑音、又はイニシエータとレスポンダとの間の不正なWi-Fi(登録商標)転送の何らかの他の理由がある場合、イニシエータデバイスが、断念し、これをそのユーザに報告するまで非常に長く待たなければならないことを意味する。
【0074】
提案するシステムは、イニシエータの公開OOB鍵BIをキャプチャするために必要とされるユーザ対話があるとき、効果的である。そのようなレスポンダOOBアクションの例は、以下の通りである。
・ BIが機械可読コード(たとえばQRコード(登録商標)又はバーコード)として表示され、ユーザがBIを読み取るために(カメラ又はレーザースキャナなどの)機械可読コードリーダーを使用しなければならないとき、
・ BIが、人間が読み取れる形式で表示され、ユーザが何らかの入力デバイス(キーボード、キー、キーボードがその上に表示されるタッチディスプレイ、マウス、及びスクリーン上に表示されるキーボードなど)を使用してレスポンダデバイスにコードを入力しなければならないとき、
・ ユーザがレスポンダデバイスのためのNFCリーダーと接触させなければならないNFCタグ(参考文献[5]参照)を使用してBIが転送されるとき。ここで、BIをもつNFCタグは、レスポンダデバイスにBIを転送すると同時にイニシエータデバイスにBRを転送するために使用され得ない。
【0075】
上記の問題を解決するために、レスポンダが相互認証を行うことを希望する場合、レスポンダは、レスポンダが片方向認証を行うことを希望するかのように、最初に第1の認証応答を作る。レスポンダは、レスポンダが片方向認証を行うことを希望するかのように、すべての暗号化アクション及び他のアクションを実行する。ただし、レスポンダは、その応答中で、レスポンダが後で相互認証を行うことを希望することを指示する。この指示は特殊なステータスであり、たとえば「ステータスOK」の代わりに、レスポンダは、認証応答中でステータス「相互認証進行中」を送る。
【0076】
そのようなARPを受信すると、イニシエータデバイスは、Wi-Fi(登録商標)問題がないとき、イニシエータデバイスの認証要求に対する迅速な応答を得る。イニシエータデバイスは、レスポンダデバイスに対する信頼を構築するためにレスポンダデバイスについての片方向認証検査を実行する。片方向認証検査を行うこと、たとえば、Diffie-Hellman鍵を使用して、返されたステータスに対して完全性検査を実行することはまた、攻撃者がステータスコード「相互認証進行中」又は認証応答メッセージの他の部分を変更することを防ぐ。
【0077】
イニシエータデバイスは、受信された認証応答に対するすべての暗号化検査に関する問題がないとわかった後に、特殊なステータス「待機中相互認証応答」をもつ認証確認メッセージで応答する。
【0078】
レスポンダデバイス(のユーザ)は、次いで、都合のよいときに公開鍵BIをキャプチャし、終わったとき、イニシエータの公開鍵BIのハッシュとさらなるステータス「ステータスOK」とを含んでいる相互認証応答で応答する。
【0079】
次に、詳細な認証プロトコルが説明される。プロトコルは、公開鍵が帯域外(OOB)で使用されることを可能にし、それらの公開鍵は、完全に表示又は転送されるが、Wi-Fi(登録商標)を介してそのようなものとして使用されない。代わりに、Wi-Fi(登録商標)を介して、公開OOB鍵のハッシュ値が使用され、その結果、これらの公開鍵は、交換されたWi-Fi(登録商標)メッセージをリッスンしている他のものに知られないままである。これは、OOB鍵が静的である場合、有用である。静的なOOB鍵は、QRコード(登録商標)のためのディスプレイなど、OOBでデータを出力する手段を有しないデバイスによって使用される。プロトコルが、レスポンダに、帯域内で、したがってWi-Fi(登録商標)を介して公開鍵を受信するように要求したとき、イニシエータは、Wi-Fi(登録商標)を介してさらなる異なる公開鍵PIを送る。
【0080】
公開鍵の転送のために、代替実施形態が可能である。Wi-Fi(登録商標)を介して公開鍵のハッシュを使用する代わりに、公開鍵の限られた数のビットのみを表示する/送ることなど、値を不明瞭にする他のやり方が使用される。また、完全な値の代わりに、公開鍵のハッシュがOOBで表示/転送される。これは、OOBで表示又は転送することになるビット数を少なくすることができ、したがって、より小さいQRコード(登録商標)又はより小さいNFCタグ(参考文献[5]参照)が使用され得ることを利点として有する。そのような場合、公開鍵の完全な値は、帯域内で、すなわちWi-Fi(登録商標)を介して送られなければならない。この場合、PIとBIとは同じである。それらの公開鍵は両方とも、OOBで使用して、及びWi-Fi(登録商標)を介して完全に表示/転送される。
【0081】
今説明された例示的なプロトコルでは、OOB公開鍵は、QRコード(登録商標)として表示され、カメラによってキャプチャされるが、OOBチャネルについての他の実施形態も可能である。上記の例参照。
【0082】
第1の段階において、イニシエータデバイスのユーザは、イニシエータデバイスと特定のレスポンダデバイスとの間のセキュアな接続をセットアップすることを希望する。ユーザは、イニシエータデバイス上で認証プロトコルを開始する。イニシエータデバイスは、公開鍵ペアBI/bI及びPI/pIを使用するか、又は、新しい鍵ペアBI/bI及びPI/pIを生成する。
【0083】
いくつかの実施形態では、レスポンダデバイスは、レスポンダモードでアクティブに設定される。他の実施形態では、レスポンダデバイスは、第1の時間の間に又は工場出荷時の値へのリセットの後にそれがオンに切り替えられたとき、レスポンダモードで設定される。Rをレスポンダモードに設定することは、新しい公開鍵ペアBR/bRを生成することをトリガする。レスポンダデバイスは、プロトコルに参加するためにレスポンダモードでなければならない。レスポンダモードでは、レスポンダデバイスは、Diffie-Hellmanにおいて公開鍵又は公開鍵のうちの1つとして使用するための公開鍵BRを表示する。BRは静的であり、レスポンダデバイスに、又はそのマニュアルにプリントされる。BRに対応するプライベート鍵はbRである。ペアBR/bRは、Diffie-Hellmanの新しい実行ごとに、又はx分の時間間隔ごとに、新たに生成される。BRの表示は、人間が読み取れる形式のもの、又は機械可読形式(QRコード(登録商標)、バーコード)のもの、或いはその両方であり得る。ここでは、カメラを用いて読み取ることができるコンピュータ可読コードを仮定する。
【0084】
第2の段階において、イニシエータデバイスのユーザは、認証プロトコルを開始し、イニシエータデバイスのカメラをレスポンダデバイスの機械可読公開鍵BRに向け、イニシエータデバイスにそれをキャプチャさせる。これらのユーザアクションは、もちろん、ある程度の時間を要する。
【0085】
第3の段階において、イニシエータデバイスは、イニシエータデバイスがMACアドレスを知っている場合は直接レスポンダデバイスをアドレス指定することによって、又は、Wi-Fi(登録商標)を介して認証要求をブロードキャストすることによって、Wi-Fi(登録商標)を介して認証要求をレスポンダデバイスに送る。認証要求は、イニシエータデバイスの公開鍵BIのハッシュ及びレスポンダデバイスの公開鍵BRのハッシュと、レスポンダによってDiffie-Hellman鍵を導出する際に使用されることになるイニシエータの公開鍵PIと、他のイニシエータ情報、たとえばイニシエータナンスとを含んでおり、それらは、BRとpIとを使用してDiffie-Hellmanを使用して導出される鍵k1を用いて暗号化される。暗号化は、対称暗号を用いて行われ得る。ただし、その暗号化されたペイロードの完全性検査を行うことと、また、そのペイロードの他の暗号化されていない部分の完全性検査を行うこととをも採用する暗号、たとえばAES-SIV(参考文献[3]参照)が使用されるとき、レスポンダデバイスは、「他のイニシエータ情報」の解読中に、それが正しいDiffie-Hellman鍵を生成したかどうかと、ステータスコードなど、メッセージ中の暗号化されていない値が攻撃者によって変更されなかったかどうかとを検査することができる。AES-SIVがエラーなしで解読した場合、レスポンダデバイスは、イニシエータデバイスが、PIに対応するプライベート鍵を使用したことと、したがって、イニシエータデバイスが、PIに対応するプライベート鍵の所有をレスポンダデバイスに証明したこととを確実に知る。
【0086】
次の段階において、レスポンダは、その公開鍵BRのハッシュを用いてWi-Fi(登録商標)メッセージを参照し、したがって、レスポンダは、Wi-Fi(登録商標)メッセージがレスポンダに向けられていることを知る。レスポンダはまた、特に認証プロトコルのこの実行の直前にBRが新たに生成されたとき、このメッセージの送信側がBRをキャプチャしたことをその表示から知る。しかしながら、レスポンダデバイスは、どのデバイスが送信側であるかの手がかりを有しない。したがって、レスポンダデバイス(のユーザ)は、さらなる認証を希望し、それに加えて、イニシエータデバイスの公開鍵BIを帯域外でキャプチャする。レスポンダデバイスのユーザは、相互認証を実行するようにユーザのデバイスをセットアップする。レスポンダは、次に、イニシエータデバイスに迅速なフィードバックを与え、したがって、イニシエータデバイスは、Wi-Fi(登録商標)リンクが動作しており、今のところ暗号学的にすべてがOKであることを知る。応答メッセージは、相互認証応答がレスポンダデバイスから来るが、この応答がある程度の時間(数秒~数十秒程度)を要することを示す。したがって、レスポンダは、ステータス「相互認証進行中」をもつイニシエータへの認証応答メッセージで直ちに返答し、メッセージ中のさらなるデータが、片方向認証応答の場合のように生成される。後者は、このメッセージの構成において、認証要求からの「他のイニシエータ情報」、たとえばイニシエータナンスが、PI及びbRを使用してレスポンダデバイスによって解読され、認証応答メッセージの構成において使用され、その結果、レスポンダが、正しい「他のイニシエータ情報」、たとえばイニシエータナンスを実際使用し、したがって、レスポンダOOB公開鍵BRに対応するプライベート鍵bRの所有を証明したかどうかをイニシエータが検査することができることを意味する。
【0087】
認証応答メッセージの構成において他のイニシエータ情報を使用する様々なやり方としては、以下がある。
・ 「他のイニシエータ情報」は、平文でメッセージ中に入れられ得る。
・ 「他のイニシエータ情報」は、たとえばAES-SIVとともにAAD(認証済み関連データ(Authenticated Associated Data)、又は認証済み追加データ(Authenticated Additional Data))として「他のイニシエータ情報」を使用することによって、Diffie-Hellmanを使用して導出される鍵によって完全性について保護されながら、平文でメッセージ中に入れられ得る。
・ 「他のイニシエータ情報」は、たとえば、最初にDiffie-Hellmanを使用して鍵を導出し、Diffie-Hellman鍵と「他のイニシエータ情報」とを鍵導出関数のための入力として使用することによって、さらなる鍵を導出するために使用され得る。そのように導出された鍵がAES-SIVとともに使用される場合、又は、そのように導出された鍵が、イニシエータに知られている何かを暗号化するために使用される場合、イニシエータは、レスポンダが正しい「他のイニシエータ情報」を知っているかどうかを検査することができる。
【0088】
随意に、ステータスフィールドもAES-SIVのためのAADとして使用され、したがって、それは、イニシエータデバイスが知ることなしに改ざんされ得ない。
【0089】
次の段階において、イニシエータは認証応答メッセージを受信する。イニシエータは、すべての暗号化検査を実行し、レスポンダデバイスが「他のイニシエータ情報」を正しく解読したかどうか、したがって、イニシエータデバイスがそのカメラを用いてレスポンダデバイスからキャプチャした公開OOB鍵BRに対応するプライベート鍵bRをレスポンダデバイスが所有するかどうかを知ることができる。これらの検査が失敗した場合、イニシエータデバイスはプロトコルをアボートする。検査がOKであることが判明した場合、イニシエータデバイスはステータスフィールドを点検する。イニシエータデバイスは、「相互認証進行中」を参照する。ここで、イニシエータデバイスは、それがレスポンダデバイスからの第2の応答を数秒~数十秒待たなければならないことを知る。
【0090】
随意に、イニシエータデバイスは、イニシエータが相互認証応答を待っていることを示すステータスをもつ待機中認証確認メッセージを伴う認証応答メッセージの正しい受信を確認する。そのメッセージは、片方向認証のために構成される。
【0091】
次の段階において、レスポンダデバイスのユーザは、レスポンダデバイスのカメラをイニシエータデバイスによって表示された公開鍵BIに向ける。イニシエータデバイスからのそのようにキャプチャされた公開鍵のハッシュが、認証要求メッセージ中でWi-Fi(登録商標)を介して受信されたイニシエータデバイスの公開鍵のハッシュに一致するとき、レスポンダデバイスは、それがイニシエータデバイスとのDiffie-Hellmanを実行するために正しい公開鍵を使用しようとしていることを確信することができる。レスポンダデバイスは、プロトコルにおいて後で、イニシエータデバイスが、対応するプライベート鍵bIの所有を証明したとき、レスポンダデバイスが、BIをそこからキャプチャしたデバイスと通信していることを確実に知ることになる。
【0092】
次の段階において、公開鍵BIをキャプチャした後に、レスポンダデバイスは、相互認証応答として作成された、相互認証応答メッセージでイニシエータデバイスに応答する。メッセージは、ステータス「相互OK」、又は単に「OK」と、BIのハッシュと、他のレスポンダ情報とを含んでおり、これは、認証要求メッセージ中でWi-Fi(登録商標)を介して受信された公開鍵PIとイニシエータデバイスから帯域外で取得されたBIとを使用してDiffie-Hellmanを使用して導出された鍵を用いて暗号化される。イニシエータデバイスによって送られた「他のイニシエータ情報」は、前に説明されたように、レスポンダデバイスによって、そのプライベート鍵bRと受信された公開鍵PIとを使用して解読され、認証応答メッセージの構成において使用され、したがって、レスポンダデバイスは、bRの所有をイニシエータデバイスに証明することができる。片方向認証応答とのいくつかの差は、レスポンダが、Diffie-Hellman鍵を導出するためにBIをも使用すること、及び応答中のBIのハッシュの存在である。
【0093】
レスポンダデバイスがイニシエータからの2つの公開鍵BI及びPIを使用することができる異なるやり方がある。たとえば、レスポンダは、それ自体の1つ又は2つのプライベート鍵とともにこれらの2つの公開鍵の各々を使用して、k3及びk4とともに、2つのDiffie-Hellman鍵を導出する。
【0094】
第1の実施形態では、レスポンダは、たとえば、PI及びそのプライベート鍵bR又は新しいプライベート鍵pR或いはbRとpRとの和を使用してk3を導出することができる。レスポンダがpRを使用する場合、レスポンダは、対応する公開鍵PRを、イニシエータがそれを取り出すことができるようなやり方で認証応答中に含めなければならない。それは、平文のPR、又は、イニシエータが導出することが可能である鍵、たとえば上記の鍵k1を用いて暗号化されたPRを送ることによって行われ得る。
【0095】
第2の実施形態では、レスポンダは、たとえば、BI及びそのプライベート鍵bR又は新しいプライベート鍵pR或いはbRとpRとの和を使用してk4を導出する。レスポンダがpRを使用する場合、レスポンダは、対応する公開鍵PRを、イニシエータがそれを取り出すことができるようなやり方で認証応答中に含めなければならない。それは、平文のPR、又は、イニシエータが導出することが可能である鍵、たとえば上記の鍵k1を用いて暗号化されたPRを送ることによって行われ得る。2つのプライベート鍵の和がk3又はk4のいずれかのために使用される場合、他の鍵の導出は、pRとbRとの和ではなく、これらの鍵のうちのただ1つを使用するべきである。このようにして、レスポンダデバイスは、プライベート鍵bRとpRとの和だけではなく、プライベート鍵の所有を証明することが可能である。
【0096】
さらなる実施形態では、レスポンダは、イニシエータが知っている異なる値、たとえばイニシエータナンスを各々暗号化するために鍵k3と鍵k4の両方を使用し、したがって、イニシエータは、レスポンダが使用したプライベート鍵をレスポンダデバイスが知っているかどうかを検査することができる。さらに、レスポンダは、認証確認メッセージを検査することが可能であるために、それ自体の「他のレスポンダ情報」、たとえばレスポンダナンスを暗号化する。
【0097】
さらなる実施形態では、異なる値を暗号化するために鍵k3及びk4を使用する代わりに、それらのうちの一方、すなわち「第1の鍵」が、第1の値を暗号化するために使用され得、他方の鍵、すなわち「第2の鍵」が、別の値と暗号化された第1の値との連結を暗号化するために使用される。第2の鍵は、レスポンダがこの鍵を生成することができるようなものであるべきである。第2の鍵を用いて暗号化された値は、第1の鍵を生成するために必要とされる情報を含んでおり、したがって、信頼を構築するのを助ける。
【0098】
次の段階において、イニシエータは、今やステータス「OK」をもつ認証応答メッセージを受信する。イニシエータデバイスは、その中のハッシュをその公開鍵BIのハッシュと比較する。それが一致するとき、イニシエータデバイスはまた、レスポンダデバイスがその公開鍵BIをキャプチャしたことをその表示から知る。イニシエータデバイスはすべての必要とされる鍵を生成し、そのためにイニシエータデバイスは、そのプライベート鍵bI及びpIを必要とし、イニシエータデバイスはすべての暗号化検査を実行する。これらの検査がすべてOKである場合、イニシエータデバイスは、それが、プライベート鍵bRと、pRも使用された場合、場合によってはpRとを所有するデバイスと通信していたことと、レスポンダデバイスが正しいBIを正常に取得したこととを知る。
【0099】
次の段階において、前の段階における検査がすべてOKである場合、イニシエータデバイスは、ステータス「OK」をもつ確認応答メッセージをレスポンダデバイスに送り、ここで、特に、bIからDiffie-Hellman様式で導出された鍵が使用され、その結果、イニシエータデバイスはbIの所有をレスポンダデバイスに証明することができる。イニシエータデバイスは、「他のレスポンダ情報」、たとえばレスポンダナンスをも使用し、その結果、レスポンダは、イニシエータがこれらを解読することに成功したことがわかる。
【0100】
上記のシステムは、ポータブルデバイス、ラップトップ、PC、Wi-Fi(登録商標)アクセスポイント、Wi-Fi(登録商標)ピアツーピアデバイス、Bluetooth(登録商標)デバイス、Zigbee(登録商標)デバイスにおいて実装される。Wi-Fi(登録商標)が使用される場合、本発明は、一般に、wpa_supplicantソフトウェア、たとえばhttps://en.wikipedia.org/wiki/wpa_supplicant参照、において実装される。
【0101】
一実施形態では、第1のデバイスと第2のデバイスとの間の認証プロトコルは、追加の属性又は追加のメッセージを含み、追加の属性又は追加のメッセージは、たとえば、証明(たとえば公開鍵)、証明のハッシュ又は暗号化された証明を含んでいる、IEEE802.11(参考文献[1]参照)において定義されている認証プロトコルに追加される。第2のデバイスは、認証プロトコルのためのメッセージ交換の一部として、そのような証明、証明のハッシュ又は暗号化された証明を含まなければならない。対称であるために、第1のデバイスも、そのような証明、証明のハッシュ又は暗号化された証明を含まなければならない。認証プロトコルのメッセージ中に、証明、証明のハッシュ又は暗号化された証明を含んでいる好ましいフィールドは、そのメッセージの送信又は到着時間を測定するために、そのフィールドを転送する信号又は信号の少なくとも一部が使用されるフィールドであり、その結果、別のデバイスが、その証明、その証明のハッシュ、又はその暗号化された証明をメッセージ中に挿入することは、不可能ではないにしても極めて困難である。
【0102】
一実施形態では、第1のメッセージプロセッサは、この証明、証明のハッシュ又は暗号化された証明を処理するように構成され、その証明が、第1のメッセージプロセッサが、Wi-Fi(登録商標)プロテクテッドセットアッププロトコル(Wi-Fi(登録商標) Protected Setup Protocol)、デバイスプロビジョニングプロトコル(Device Provisioning Protocol)、Diffie-Hellman鍵交換及び/又は4ウェイWPA2ハンドシェイク(4-way WPA2 handshake)を使用することなどによって、正常にデバイス認証を実行し、相互信頼を確立した、デバイスによって前に使用された証明に一致するかどうかを検証する(参考文献[1]参照)。一致が見つかった場合、第1のデバイスは、第2のデバイスを信頼し、信頼性が高いと見なすことができると仮定する。一致が見つからなかった場合、第1のデバイスは、第2のデバイスを信頼せず、信頼性を検証するために追加のステップを実行する。
【0103】
代替実施形態では、第2のデバイスは、後の接続セットアップ中に使用される証明、証明のハッシュ又は暗号化された証明を含まなければならない。第1のメッセージプロセッサは、受信された証明、証明のハッシュ又は暗号化された証明を、その証明と接続する特定のデバイスとセキュアに相関するために、第2のデバイスの他のパラメータとともに処理し、記憶するように構成される。第1のデバイスと第2のデバイスとの間の接続をセットアップすると、第1のデバイスは、Wi-Fi(登録商標)プロテクテッドセットアッププロトコル、デバイスプロビジョニングプロトコル、Diffie-Hellman鍵交換を実行する間に及び/又は4ウェイWPA2ハンドシェイクを実行する間になど、デバイス認証を実行する間に、同じ証明又はそれの派生物が使用されるかどうかを検証する。そうすることによって、第1のデバイスは、それが接続しているデバイスが、以前の認証が行われたデバイスと同じデバイスであると決定することができる。特に、証明が公開鍵であった場合、及び第1のデバイスと第2のデバイスとの間の接続をセットアップすることが、第2のデバイスがその公開鍵に属するプライベート鍵の所有を証明として有することを第2のデバイスが第1のデバイスに正常に証明したことを含んでいた場合、第1のデバイスは、第2のデバイスが、そうであると主張するデバイスであり、偽造者(imposter)でないことを確信することができる。
【0104】
図5は、イニシエータのための方法を示す。本方法は、通信プロトコルと、認証を適応させるための認証プロトコルとに従うレスポンダデバイスとのワイヤレス通信のためにイニシエータデバイスにおいて使用するための方法である。プロトコルは、ユーザ対話とレスポンダデバイスから受信されたメッセージとに応じて認証プロトコルに従うイニシエータ状態を必要とする。
【0105】
本方法は、ノードSTART501において開始する。第1の段階において、本方法は、ブートストラッピングのための初期状態を設定する。
【0106】
次のステップACRPK502において、本方法は、イニシエータ帯域外アクションを介してレスポンダデバイスからレスポンダ公開鍵BRを取得することにつく。BRを正常に取得すると、本方法は、ステップSARQ503において、ブートストラッピングがレスポンダ公開鍵を取得することによって正常に実行されたことを示すブートストラップ済み状態につく。次いで、本方法は、イニシエータ公開鍵を検証するためのイニシエータベリファイア(H(BI))とレスポンダ公開鍵を検証するためのレスポンダベリファイア(H(BR))とを含む認証要求ARQを作成することによって続く。メッセージARQは、ブートストラップ済み状態で送られる。次いで、本方法は、認証応答を受信することを待機する。所定の時間内に受信されなかった場合、本方法は、矢印513によって示されるように、ARQを再び送る。
【0107】
次の段階RARP1 504において、認証を実行するための認証中状態につく。その後、本方法は、レスポンダ公開鍵BRに対応するレスポンダプライベート鍵bRに基づく片側レスポンダ認証データ{R-auth1}k1を含む認証応答ARP1を受信し、分解する。ARP1は、レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にするための、相互認証が進行中であることを示す相互進行ステータスを含む。
【0108】
次の段階AWMUT505において、待機中相互認証のために、相互進行ステータスを受信すると、相互認証中状態につく。次に、相互認証応答ARP2を受信し、分解する。ARP2は、イニシエータ公開鍵BIとレスポンダプライベート鍵bRとに基づく相互レスポンダ認証データ{R-auth2}k2を含む。
【0109】
次の段階MUTC506において、認証が正常に実行されたことを示す認証済み状態につく。これは、相互認証応答ARP2を受信することと、レスポンダ公開鍵とイニシエータ公開鍵(BI)に対応するイニシエータプライベート鍵(bI)とに基づく相互レスポンダ認証データ{R-auth2}k2を正常に処理することとを伴う。次いで、本方法は、相互認証の確認を示す相互確認ステータスを含む相互認証確認ACF2を作成することによって続く。ACF2は、レスポンダ公開鍵BRとイニシエータ公開鍵BIに対応するイニシエータプライベート鍵bIとに基づく相互イニシエータ認証データ{I-auth2}k2をも含む。本方法は、次いで、ノードEND507において終了する。
【0110】
図6は、レスポンダのための方法を示す。本方法は、通信プロトコルと、認証を適応させるための認証プロトコルとに従うイニシエータデバイスとのワイヤレス通信のためにレスポンダデバイスにおいて使用するための方法である。プロトコルは、ユーザ対話とイニシエータデバイスから受信されたメッセージとに応じて認証プロトコルに従うレスポンダ状態を必要とする。
【0111】
本方法は、ノードSTART601において開始する。第1の段階RARQ602において、レスポンダは、イニシエータからメッセージを受信するための待機中状態につく。認証要求ARQを受信し、分解する。ARQは、イニシエータ公開鍵を検証するためのイニシエータベリファイアH(BI)とレスポンダ公開鍵を検証するためのレスポンダベリファイアH(BR)とを含む。
【0112】
次の段階SARP1 603において、本方法は、認証を実行するためのレスポンダ認証中状態につく。認証要求を正常に処理すると、レスポンダ認証中状態につく。次いで、レスポンダ公開鍵BRに対応するレスポンダプライベート鍵bRに基づく片側レスポンダ認証データ{R-auth1}k1と、相互認証が進行中であることを示す相互進行ステータスとを含む認証応答ARP1を作成する。
【0113】
次の段階MUTA604において、相互レスポンダ認証中状態につく。次に、レスポンダ(のユーザ)は、レスポンダ帯域外アクションを介してイニシエータデバイスからイニシエータ公開鍵を取得することを可能にされる。これは、その状態に再び入る矢印614によって示されているように、ある程度の時間を要する。イニシエータ公開鍵を正常に取得した後に、相互認証応答ARP2を作成し、相互レスポンダ認証中状態で送る。ARP2は、イニシエータ公開鍵BIとレスポンダ公開鍵BRに対応するレスポンダプライベート鍵bRとに基づく相互レスポンダ認証データ{R-auth2}k2を含む。
【0114】
次の段階WMUC605において、認証が正常に実行されたことを示すレスポンダ認証済み状態につく。相互認証確認ACF2を受信し、分解する。ACF2は、相互認証の確認を示す相互確認ステータスと、レスポンダ公開鍵BRとイニシエータ公開鍵(BI)に対応するイニシエータプライベート鍵bIとに基づく相互イニシエータ認証データ{I-auth2}k2とを含む。イニシエータ公開鍵(BI)とレスポンダプライベート鍵(bR)とに基づく相互イニシエータ認証データを正常に処理すると、認証済み状態につく。本方法は、次に、ノードEND606において終了する。
【0115】
以下でさらに解明されるように、ロケーション情報を保護するためにコンピュータ上で実行されたときに上記の方法を実施するためのプログラムコード命令を含む、ネットワークからダウンロード可能な、並びに/或いはコンピュータ可読媒体及び/又はマイクロプロセッサ実行可能媒体に記憶されたコンピュータプログラム製品が提供される。
【0116】
上記のシステムは、たとえば、屋内及び屋外短距離ワイヤレス通信システムにおいて適用され、ここで、認証プロトコルを介して認証がサポートされる。たとえば、システムは、Wi-Fi(登録商標)、Wi-Fi(登録商標) Aware、又はWi-Fi(登録商標) Directをサポートするポータブルデバイス及び固定デバイスにおいて適用され得る。
【0117】
一般に、対話するイニシエータデバイス及びレスポンダデバイスは、各々、デバイスにおいて記憶された適切なソフトウェアを実行するプロセッサを備え、たとえば、そのソフトウェアは、ダウンロードされ、及び/又は対応するメモリ、たとえば、RAMなどの揮発性メモリ又はフラッシュなどの不揮発性メモリ(図示せず)に記憶される。デバイス及びサーバは、たとえば、マイクロプロセッサ及びメモリ(図示せず)を装備する。代替的に、デバイス及びサーバは、全体的に又は部分的に、プログラマブル論理で、たとえば、フィールドプログラマブルゲートアレイ(FPGA)として実装される。デバイス及びサーバは、全体的に又は部分的に、いわゆる特定用途向け集積回路(ASIC)、すなわち、それらの特定の用途のためにカスタマイズされた集積回路(IC)として実装される。たとえば、回路は、たとえば、Verilog、VHDLなど、ハードウェア記述言語を使用して、CMOSにおいて実装される。
【0118】
当業者に明らかであるように、方法を実行する多くの異なるやり方が可能である。たとえば、段階又はステップの順序が変動され得るか、又はいくつかの段階が並列に実行される。その上、ステップの中間に、他の方法ステップが挿入される。挿入されたステップは、本明細書で説明されるような方法の改良を表すか、又はそのような方法に関係しない。
【0119】
本発明による方法は、ソフトウェアを使用して実行され、ソフトウェアは、プロセッサシステムに、それぞれの方法を実行させるための命令を含む。ソフトウェアは、システムの特定のサブエンティティによってとられるステップのみを含む。ソフトウェアは、ハードディスク、フロッピー、メモリなど、好適な記憶媒体に記憶される。ソフトウェアは、ワイヤに沿って、又はワイヤレス、或いはデータネットワーク、たとえば、インターネットを使用して、信号として送られる。ソフトウェアは、ダウンロードのために及び/又はサーバ上でのリモート使用のために利用可能にされる。本発明による方法は、方法を実行するためにプログラマブル論理、たとえば、フィールドプログラマブルゲートアレイ(FPGA)を設定するように構成された、ビットストリームを使用して実行される。ソフトウェアは、ソースコード、オブジェクトコード、コード中間ソース及び部分的にコンパイルされた形態などのオブジェクトコードの形態、又は本発明による方法の実装形態において使用するのに好適な任意の他の形態であることが諒解されよう。コンピュータプログラム製品に関係する実施形態は、記載された方法のうちの少なくとも1つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに再分割され、及び/或いは静的に又は動的にリンクされる1つ又は複数のファイルに記憶される。コンピュータプログラム製品に関係する別の実施形態は、記載されたシステム及び/又は製品のうちの少なくとも1つの手段の各々に対応するコンピュータ実行可能命令を含む。
【0120】
図7aは、コンピュータプログラム1020を備える書込み可能部分1010を備えるコンピュータ可読媒体1000を示し、コンピュータプログラム1020は、プロセッサシステムに、上記で説明されたシステムにおいて上記の方法のうちの1つ又は複数を実行させるための命令を含む。コンピュータプログラム1020は、物理的マークとして又はコンピュータ可読媒体1000の要素の磁化によって、非一時的コンピュータ可読媒体1000上で具現される。しかしながら、他の好適な実施形態が、同様に考えられる。さらに、コンピュータ可読媒体1000は、ここでは光ディスクとして示されているが、コンピュータ可読媒体1000は、ハードディスク、ソリッドステートメモリ、フラッシュメモリなど、任意の好適なコンピュータ可読媒体であり、記録不可能又は記録可能であることが諒解されよう。コンピュータプログラム1020は、プロセッサシステムに方法を実行させるための命令を含む。
【0121】
図7bは、上記で説明されたデバイス又はサーバの一実施形態による、プロセッサシステム1100の概略表現を示す。プロセッサシステムは、回路1110、たとえば1つ又は複数の集積回路を備える。回路1110のアーキテクチャは、図に概略的に示されている。回路1110は、一実施形態による方法を実行し、及び/或いはそのモジュール又はユニットを実装するために、コンピュータプログラム構成要素を実行するための処理ユニット1120、たとえば、CPUを備える。回路1110は、プログラミングコード、データなどを記憶するためのメモリ1122を備える。メモリ1122の一部は、読取り専用である。回路1110は、通信要素1126、たとえば、アンテナ、コネクタ、又はその両方などを備える。回路1110は、方法において定義された処理の一部又は全部を実行するための専用集積回路1124を備える。プロセッサ1120、メモリ1122、専用IC1124及び通信要素1126は、相互接続1130、たとえばバスを介して、互いに接続される。プロセッサシステム1100は、それぞれ、アンテナ及び/又はコネクタを使用して、接触及び/又は非接触通信のために構成される。
【0122】
要約すれば、ワイヤレス通信システムが、ワイヤレス通信のために構成されたイニシエータデバイス及びレスポンダデバイスを備える。ワイヤレス通信システムは、イニシエータデバイスによるレスポンダデバイスの片側認証と、両方のデバイスの相互認証とを可能にする。イニシエータの実施形態は、メッセージユニットとステートマシンとを備える。イニシエータは、帯域外アクションを介してレスポンダ公開鍵を取得することによって開始し、認証要求を送る。レスポンダは、レスポンダプライベート鍵に基づくレスポンダ認証データと、レスポンダデバイスがレスポンダ帯域外アクションを介してイニシエータ公開鍵を取得することを可能にするための相互認証が進行中であることを示す相互進行ステータスとを含む認証応答を送る。イニシエータステートマシンは、待機中相互認証のために、相互進行ステータスを受信するとつくことになる、相互認証中状態を与えるように構成される。それにより、ワイヤレス通信中の長いタイムアウト期間が回避され、また、イニシエータが短い時間内にユーザに通信エラーを報告することを可能にする。
【0123】
明快のために、上記の説明では、異なる機能ユニット及びプロセッサに関して本発明の実施形態について説明したことが諒解されよう。しかしながら、本発明から逸脱することなく、異なる機能ユニット又はプロセッサ間の機能の任意の好適な分散が使用されることは明らかであろう。たとえば、別個のユニット、プロセッサ又はコントローラによって実行されるものとして示された機能は、同じプロセッサ又はコントローラによって実行される。したがって、特定の機能ユニットへの言及は、厳密な論理的又は物理的構造或いは編成を示すのではなく、説明された機能を提供するための好適な手段への言及としてのみ参照されるべきである。本発明は、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組合せを含む任意の好適な形態で実装され得る。
【0124】
本明細書では、「含む/備える/有する(comprising)」という単語は、記載されたもの以外の要素又はステップの存在を除外せず、要素に先行する「1つの(a)」又は「1つの(an)」という単語は、複数のそのような要素の存在を除外しないこと、いかなる参照符号も特許請求の範囲の範囲を限定しないこと、本発明は、ハードウェアとソフトウェアの両方によって実装されること、及びいくつかの「手段」又は「ユニット」は、ハードウェア又はソフトウェアの同じアイテムによって表され、プロセッサは、場合によってはハードウェア要素と協働して、1つ又は複数のユニットの機能を満たすことに留意されたい。さらに、本発明は実施形態に限定されず、本発明は、上記で説明された、又は相互に異なる従属請求項に記載の、あらゆる新規の特徴又は特徴の組合せにある。
参考文献:
[1] IEEE Computer Society,“IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific requirements Part 11:Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)Specifications,”(IEEE Std.802.11-2016),December 2016
[2] Wi-Fi Simple Configuration-Technical Specification-Version 2.0.5“Specification for easy,secure setup and introduction of devices into WPA2-enabled 802.11 networks”,Wi-Fi Alliance,2014.
[3] RFC 5297,Synthetic Initialization Vector(SIV)Authenticated Encryption Using the Advanced Encryption Standard(AES),October 2008,(https://datatracker.ietf.org/doc/rfc5297/)
[4] FIPS180-4,"Secure Hash Standard",United States of America,National Institute of Standards and Technology,Federal Information Processing Standard(FIPS)180-4
[5] NFC Forum Connection Handover Candidate Technical Specification,December 2015,(http://nfc-forum.org/product/nfc-forum-connection-handover-candidate-technical-specification-version-1-4/)
[6] Diffie,W.;Hellman,M.(1976),"New directions in cryptography",IEEE Transactions on Information Theory,22(6):644-654
[7] Rivest,R.;Shamir,A.;Adleman,L.(February 1978)."A Method for Obtaining Digital Signatures and Public-Key Cryptosystems",Communications of the ACM.21(2):120-126.
[8] Koblitz,N.(1987)."Elliptic curve cryptosystems".Mathematics of Computation.48(177):203-209.