(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-24
(45)【発行日】2023-04-03
(54)【発明の名称】認証方法
(51)【国際特許分類】
G06F 21/44 20130101AFI20230327BHJP
G09C 1/00 20060101ALI20230327BHJP
H04L 9/32 20060101ALI20230327BHJP
【FI】
G06F21/44 350
G09C1/00 640E
H04L9/32 200A
【外国語出願】
(21)【出願番号】P 2021017600
(22)【出願日】2021-02-05
【審査請求日】2021-02-05
(32)【優先日】2020-02-07
(33)【優先権主張国・地域又は機関】EP
【前置審査】
(73)【特許権者】
【識別番号】518378824
【氏名又は名称】コンチネンタル テーヴェス アクチエンゲゼルシャフト ウント コンパニー オッフェネ ハンデルス ゲゼルシャフト
【氏名又は名称原語表記】Continental Teves AG & Co. OHG
【住所又は居所原語表記】Guerickestrasse 7, D-60488 Frankfurt am Main, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ゼバスティアン ファッハ
(72)【発明者】
【氏名】ジル イヴァール
(72)【発明者】
【氏名】アーマド サブーリ
【審査官】打出 義尚
(56)【参考文献】
【文献】特開平10-020780(JP,A)
【文献】特開平03-282722(JP,A)
【文献】特開2015-003545(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/44
G09C 1/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
第1のエンティティ(E1,Dn)および第3のエンティティ(E3,C)によって使用される認証プロトコルに基づく、第2のエンティティ(E2,T)を介した前記第1のエンティティ(E1,Dn)と前記第3のエンティティ(E3,C)との間の相互認証のための認証方法(100)であって、前記第2のエンティティ(E2,T)が、前記第1のエンティティ(E1,Dn)と前記第3のエンティティ(E3,C)との間で相互認証メッセージを転送し、
a)前記第3のエンティティ(E3,C)により、前記第2のエンティティ(E2,T)に前記認証プロトコルの第1の部分をフロントローディングすること(101)、および前記第3のエンティティ(E3,C)で前記認証プロトコルの少なくとも欠落部分を保持することであって、
前記第1の部分はタプルのリストを含み、前記欠落部分は、前記第1の部分を除く前記認証プロトコルの部分であり、前記認証プロトコルのフロントローディングされた前記第1の部分は第1の暗号化数(c1)を含み、前記第3のエンティティ(E3,C)が、前記認証プロトコルの前記第1の部分をフロントローディングした後、ハイパワーモードからローパワーモードへ移行すること(102)、と、
b)前記相互認証を始動させること(103)
であって、前記相互認証を始動させること(103)は、前記第2のエンティティ(E2,T)により、前記第1のエンティティ(E1,Dn)から送信された前記第1のエンティティ(E1,Dn)の公開鍵(PuKDn)が前記タプルのリスト内に発見されうるか否かを検査することを含む、前記相互認証を始動させること(103)と、
c)前記認証プロトコルのフロントローディングされた前記第1の部分に基づく前記相互認証を開始すること(104)であって、該開始すること(104)は、前記第1のエンティティ(E1,Dn)により、第2の暗号化数(c2)を生成することを含み、前記第2の暗号化数(c2)は、前記第1の暗号化数(c1)の内容を含む、ことと、
d)前記第2のエンティティ(E2,T)により、前記第3のエンティティ(E3,C)にウェイクアップ信号を送信すること(105)と、
e)前記第3のエンティティ(E3,C)がローパワーモードからウェイクアップしたときに、前記第2のエンティティ(E2,T)により、前記相互認証メッセージを再ルーティングすること(106)であって、該再ルーティングすること(106)は、前記第2のエンティティ(E2,T)から前記第3のエンティティ(E3,C)に前記第2の暗号化数(c2)を送信することを含む、ことと、
f)前記第3のエンティティ(E3,C)に前記相互認証メッセージを再ルーティングした後、前記第3のエンティティ(E3,C)により、前記認証プロトコルの前記欠落部分に基づく前記相互認証を継続すること(107)であって、前記認証プロトコルの前記欠落部分は、前記第2の暗号化数(c2)に基づいて前記第3のエンティティ(E3,C)にセッション鍵(S)を導出させる命令と、前記第3のエンティティ(E3,C)によって生成され送信された第3の暗号化数(c3)に基づいて前記第1のエンティティ(E1,Dn)にセッション鍵(S)を導出させる命令とを含み、前記第3の暗号化数(c3)は、前記第2の暗号化数(c2)の内容を含み、継続することは、前記第1のエンティティ(E1,Dn)および前記第3のエンティティ(E3,C)によるそれぞれの前記セッション鍵(S)を使用して、前記第1のエンティティ(E1,Dn)と前記第3のエンティティ(E3,C)との間で認証されたメッセージを交換することを含む、ことと、
を含む、認証方法(100)。
【請求項2】
e)再ルーティングすること(106)は、前記第3のエンティティ(E3,C)がローパワーモードからウェイクアップしたとき、かつ前記第2のエンティティ(E2,T)と前記第1のエンティティ(E1,Dn)との間の前記認証プロトコルのフロントローディングされた前記第1の部分が完了したときに、開始される、請求項1記載の認証方法(100)。
【請求項3】
a)前記認証プロトコルの第1の部分をフロントローディングすること(101)は、
i)前記第3のエンティティ(E3,C)により、前記認証プロトコルの前記第1の部分を事前生成することと、
ii)前記第3のエンティティ(E3,C)により、前記第3のエンティティ(E3,C)から前記第2のエンティティ(E2,T)へ、前記認証プロトコルの事前生成された前記第1の部分を送信することと、
iii)前記第2のエンティティ(E2,T)により、前記第3のエンティティ(E3,C)から前記認証プロトコルの事前生成された前記第1の部分を受信することと、
iv)前記第2のエンティティ(E2,T)により、前記第2のエンティティ(E2,T)に、受信した前記認証プロトコルの前記第1の部分を格納することと、
を含む、請求項1または2記載の認証方法(100)。
【請求項4】
a)フロントローディングすること(101)は、乱数(rB)を生成し、前記乱数(rB)を対称鍵(K)で暗号化して第1の暗号化数(c1)を導出することを含み、前記対称鍵(K)は、前記第1のエンティティ(E1,Dn)および前記第3のエンティティ(E3,C)の事前共有された非対称鍵材料に基づく一方向鍵導出関数を使用して導出される、請求項1から3までのいずれか1項記載の認証方法(100)。
【請求項5】
a)フロントローディングすること(101)は、前記第3のエンティティ(E3,C)により、前記認証プロトコルの前記第1の部分に識別子(idn)を追加することを含む、請求項1から4までのいずれか1項記載の認証方法(100)。
【請求項6】
前記識別子(idn)は、それぞれの前記第1のエンティティ(E1,Dn)に関連付けられた公開鍵(PuKDn)、および/またはそれぞれの前記第1のエンティティ(E1,Dn)に関連付けられたシリアル番号である、請求項5記載の認証方法(100)。
【請求項7】
前記第2のエンティティ(E2,T)により、前記第3のエンティティ(E3,C)にウェイクアップ信号を送信すること(105)は、前記第2のエンティティ(E2,T)により、
‐b)始動させること(103)において、前記第1のエンティティ(E1,Dn)が前記第2のエンティティ(E2,T)への動作可能な接続を行うと直ちに、
または
‐前記認証プロトコルの前記第1の部分に、第1のデバイスの識別に応じて、前記第1のエンティティ(E1,Dn)を識別するための識別子(idn)が追加されている場合に、
行われる、請求項1から6までのいずれか1項記載の認証方法(100)。
【請求項8】
前記方法は、
c)開始すること(104)において、前記第1のエンティティ(E1,Dn)により、第2の暗号化数(c2)を事前生成することと、前記第2の暗号化数(c2)を前記第1のエンティティ(E1,Dn)のセキュアな領域に格納することとを含む、請求項1から7までのいずれか1項記載の認証方法(100)。
【請求項9】
第1のエンティティ(E1,Dn)および第3のエンティティ(E3,C)によって使用される認証プロトコルに基づく、第2のエンティティ(E2,T)を介した前記第1のエンティティ(E1,Dn)と前記第3のエンティティ(E3,C)との間の相互認証を実行する方法であって、前記第2のエンティティ(E2,T)が、前記第1のエンティティ(E1,Dn)と前記第3のエンティティ(E3,C)との間で相互認証メッセージを転送し、前記方法が、
a)前記第3のエンティティ(E3,C)により、前記第2のエンティティ(E2,T)に認証プロトコルの第1の部分をフロントローディングすること(101)、および前記第3のエンティティ(E3,C)で前記認証プロトコルの少なくとも欠落部分を保持することであって、
前記第1の部分はタプルのリストを含み、前記欠落部分は、前記第1の部分を除く前記認証プロトコルの部分であり、前記認証プロトコルのフロントローディングされた前記第1の部分が、第1の暗号化数(c1)を含む、ことと、
b)前記第2のエンティティ(E2,T)により、前記第1のエンティティ(E1,Dn)から送信された前記第1のエンティティ(E1,Dn)の公開鍵(PuKDn)が前記タプルのリスト内に発見されうるか否かを検査することと、
c)前記第3のエンティティ(E3,C)により、前記第2のエンティティ(E2,T)から、前記第1のエンティティ(E1,Dn)と前記第2のエンティティ(E2,T)との間の前記相互認証を継続する指示を受信することと、
d)前記第3のエンティティ(E3,C)により、前記認証プロトコルの前記欠落部分に基づく前記第1のエンティティ(E1,Dn)と前記第2のエンティティ(E2,T)との間の前記相互認証を継続すること(107)であって、該継続すること(107)は、前記第2のエンティティ(E2,T)から第2の暗号化数(c2)を受信した後に開始され、前記第2の暗号化数(c2)は、前記第1の暗号化数(c1)の内容を含み、前記認証プロトコルの前記欠落部分は、前記第2の暗号化数(c2)に基づいて前記第3のエンティティ(E3,C)にセッション鍵(S)を導出させる命令と、前記第3のエンティティ(E3,C)によって生成され送信された第3の暗号化数(c3)に基づいて前記第1のエンティティ(E1,Dn)にセッション鍵(S)を導出させる命令とを含み、前記第3の暗号化数(c3)は、前記第2の暗号化数(c2)の内容を含み、継続することは、前記第1のエンティティ(E1,Dn)および前記第3のエンティティ(E3,C)によるそれぞれの前記セッション鍵(S)を使用して、前記第1のエンティティ(E1,Dn)と前記第3のエンティティ(E3,C)との間で認証されたメッセージを交換することを含む、ことと、
を含む、方法。
【請求項10】
請求項9記載の方法を実行するように構成された第3のエンティティ(E3,C)を含む、車両(31)。
【請求項11】
請求項1から9までのいずれか1項記載の認証方法(100)を実行するように構成されたプロセッサを含む、データ処理システム。
【請求項12】
プログラムであって、前記プログラムがコンピュータによって実行される際に、前記コンピュータに、請求項1から9までのいずれか1項記載の認証方法(100)を行わせるための命令を含む、プログラム。
【請求項13】
コンピュータによって実行される際に、前記コンピュータに、請求項1から9までのいずれか1項記載の認証方法(100)を行わせるための命令を含む、コンピュータ可読データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第1のエンティティおよび第3のエンティティによって使用される認証プロトコルに基づく、第2のエンティティを介した第1のエンティティと第3のエンティティとの間の相互認証のための認証方法であって、第2のエンティティが第1のエンティティと第3のエンティティとの間で相互認証メッセージを転送する、認証方法に関する。本発明はさらに、第1のエンティティおよび第3のエンティティによって使用される認証プロトコルに基づく、第2のエンティティを介した第1のエンティティと第3のエンティティとの間の相互認証のための認証方法を実行するように構成された装置であって、第2のエンティティが第1のエンティティと第3のエンティティとの間で相互認証メッセージを転送する装置に関する。
【0002】
認証技術は、当該技術分野では周知である。例えば、認証技術は、デジタル通信における通信当事者の身元を確認するために使用されている。実際のエンドユーザは、デジタル通信において、デジタルIDと資格情報とによって表される。デジタル通信の過程では、通信当事者はしばしば、互いの身元を確認するためのプロトコルを実行する。トランスポートレイヤーセキュリティは、TLSとも称され、当事者の認証を含むセキュリティ通信に利用される周知のプロトコルの一つである。
【0003】
2つのエンティティ間、すなわちMFDFEV1タグ(MFDFEV1タグ:MIFARE DESFire EV1タグ)とリーダとの間で実行される周知のプロトコルの別の例を以下に示す。
1.リーダはまず、鍵番号とともにAES(Advanced Encryption Standard)認証コマンドを発行する。これにより、MFDFEV1タグにどのAES鍵を使用するかが伝わる。
2.MFDFEV1タグは、コマンドで指定されたAES鍵を選択し、16バイトの乱数B(RndB)を生成し、選択されたAES鍵でRndBを暗号化する。次いで、MFDFEV1は、暗号化されたRndBを含む暗号化データパケットを送信することにより、認証コマンドに応答する。
3.リーダは応答を受信し、次のプロセスを行う。
(a)暗号化されたデータパケットをAES鍵で復号する。これにより、リーダ/ライタにMFDFEV1タグで生成されたRndBが与えられる。
(b)16バイトの乱数A(RndA)を生成する。
(c)RndBを左に8ビット(1バイト)回転させて、RndB’を得る。
(d)RndAとRndB’とを連結して新しい32バイトの値を作成する。
(e)得られた32バイトの値をAES鍵で暗号化する。
(f)暗号化された32バイト値を含む結果パケットをMFDFEV1タグに送信する。
4.MFDFEV1タグは、暗号化された32バイトの値を含む結果パケットを受信し、以下の処理を行う。
(a)得られたパケットをAES鍵で復号する。
(b)32バイトの値を分割して、RndAとRndB’との別々の16バイトの値を得る。
(c)生成したMFDFEV1タグRndBを左に8ビット回転させてRndB’を生成する。
(d)受信したRndB’と生成したRndB’とを比較する。一致した場合、パケットは正しく受信されたこととなり、タグにはリーダによって生成されたRndAが含まれる。
(e)RndAを左に8ビット(1バイト)回転させて、RndA’を得る。
(f)16バイトのRndA’をAES鍵で暗号化する。
(g)暗号化された16バイトのRndA’値を含む結果パケットをリーダに送信する。
5.リーダは、暗号化された16バイトのRndA’値を含む結果パケットを受信し、以下の処理を行う。
(a)応答をAES鍵で復号し、RndA’値を取得する。
(b)生成したRndAを左に8ビット回転させてRndA’を生成する。
(c)受信したRndA’と生成したRndA’とを比較する。一致した場合、認証プロセスは成功したとみなされる。
(d)このとき、RndA,RndA’,RndB,RndB’のバイトを用いて16バイトのAESセッション鍵を生成する。
【0004】
セッション鍵を生成することで認証プロトコルが終了し、認証が完了する。
【0005】
前述のプロトコルは、MIFARE DESFire(おそらく登録商標)ファミリの製品、ここではMIFARE DESFire EV1タグによって実行される。MIFARE DESFireファミリの製品によって実行される、さらなる既知のプロトコルは、例えばMIFARE DESFireおよびMIFARE DESFire EV2である。
【0006】
認証プロトコルの実行は、信頼できるコンポーネントを使用して実行する必要がある。したがって、当事者が、NFCとも称される近距離無線通信のような無線チャネルを介して通信する場合、端末がセキュリティに対応しておりかつ操作に対して充分に保護されているときに限り、第1のエンティティ、例えばNFCデバイスを、第2のエンティティ、例えばリーダを表す端末に依拠して認証することができる。
【0007】
しかしながら、セキュアかつ充分に保護された端末は高価なデバイスである。したがって、当該技術分野では、認証を、充分に保護された第3のエンティティ、例えば認証装置に再ルーティングすることが知られている。端末は、その後、例えば、NFCデバイスと認証装置との間でのみメッセージを転送する。これにより、認証プロトコルは、NFCデバイスおよび充分に保護された認証装置によって実行される。充分に保護された認証装置は、このように、再ルーティングせずに、端末が実行したであろうプロトコルの部分を引き継ぐ。
【0008】
例えば、自動車部品には、ハードウェアセキュリティモジュール(HSM)または同様の要素などの、認証要求を再ルーティングさせることができる信頼性の高いユニットが搭載されていることが多い。この場合、ハードウェアセキュリティモジュールが認証装置として機能する。これにより、高価な端末を回避することで、グローバルアーキテクチャのコストを抑え、さらに、セキュリティ目標を達成しうることになる。
【0009】
それでもなお、付加的なホッピングによって認証要求が再ルーティングされると、車載通信チャネルが頻繁に緩慢となって応答時間に遅延が生じ、許容不能なパフォーマンスの数値が発生する可能性がある。その意味では、タイミングを最適化するために、認証装置は、アウェイク状態、すなわちHPMとも称されるハイパワーモードに維持され、再ルーティングによって発生する遅延に追いつくために、つねに可能な限り迅速に要求に応答しなければならない。当該アプローチはまた、非効率的なエネルギ消費ならびに認証装置の寿命の低下という問題点も有する。
【0010】
したがって、上述した問題点の少なくとも1つを克服することが本発明の目的である。
【0011】
当該目的は、独立請求項の方法および装置によって達成される。従属請求項には、以下に説明するような本発明の基本方式の有利なさらなる開発品および改良品が含まれる。
【0012】
第1の態様によれば、第1のエンティティおよび第3のエンティティによって使用される認証プロトコルに基づく、第2のエンティティを介した第1のエンティティと第3のエンティティとの間の相互認証のための認証方法であって、第2のエンティティが、第1のエンティティと第3のエンティティとの間で相互認証メッセージを転送し、
a)第3のエンティティによって、第2のエンティティに認証プロトコルの第1の部分をフロントローディングすること、および第3のエンティティ(E3,C)で認証プロトコルの少なくとも欠落部分を保持することであって、フロントローディングされた認証プロトコルの第1の部分が、第1の暗号化数(c1)を含み、第3のエンティティが、認証プロトコルの第1の部分をフロントローディングした後、HPMとも称されるハイパワーモードからLPMとも称されるローパワーモードへ移行する、ことと、
b)相互認証を始動させることと、
c)認証プロトコルのフロントローディングされた第1の部分に基づく相互認証を開始することであって、開始すること(104)が、第1のエンティティ(E1,Dn)により、第2の暗号化数(c2)を生成することを含み、第2の暗号化数(c2)が、第1の暗号化数(c1)の内容を含む、ことと、
d)第2のエンティティにより、第3のエンティティにウェイクアップ信号を送信することと、
e)第3のエンティティがローパワーモードからウェイクアップしたときに、第2のエンティティにより、相互認証メッセージを再ルーティングすることであって、当該再ルーティングすること(106)が、第2のエンティティ(E2,T)から第3のエンティティ(E3,C)に第2の暗号化数(c2)を送信することを含む、ことと、
f)第3のエンティティに相互認証メッセージを再ルーティングした後、第3のエンティティによって、認証プロトコルの欠落部分に基づく相互認証を継続することであって、認証プロトコルの欠落部分は、第2の暗号化数(c2)に基づいて第3のエンティティ(E3,C)にセッション鍵(S)を導出させる命令と、第3のエンティティ(E3,C)によって生成され送信された第3の暗号化数(c3)に基づいて第1のエンティティ(E1,Dn)にセッション鍵(S)を導出させる命令とを含み、第3の暗号化数(c3)が、第2の暗号化数(c2)の内容を含み、当該継続することが、第1のエンティティ(E1,Dn)および第3のエンティティ(E3,C)によるそれぞれのセッション鍵(S)を使用して、第1のエンティティ(E1,Dn)と第3のエンティティ(E3,C)との間で認証されたメッセージを交換することを含む、ことと、を含む、認証方法である。
【0013】
認証プロトコルの第1の部分は、第1のエンティティと第3のエンティティとの間の相互認証が開始されることに基づいて、認証プロトコル全体のうちの一部分のみを含むことが理解される。欠落部分は、認証プロトコルの第1の部分を除く、認証プロトコルの全体のうちの残りの部分を表す認証プロトコルの部分である。欠落部分は、第1のエンティティと第3のエンティティとの間の相互認証が完了する認証プロトコルの部分を含むと理解される。e)再ルーティングすることの後、f)において、第3のエンティティが、認証プロトコルの欠落部分に基づいて、第1のエンティティと第3のエンティティとの間の相互認証を継続することがさらに理解される。
【0014】
認証プロトコルの第1の部分を第2のエンティティにフロントローディングすることにより、第3のエンティティをローパワーモードへ移行可能としつつ、第2のエンティティが第1のエンティティと第3のエンティティとの間で相互認証メッセージを転送するようにして、第2のエンティティを介した第1のエンティティと第3のエンティティとの間の相互認証のための認証方法の応答時間を最適化できることが判明している。ローパワーモードでは、第3のエンティティの幾つかの部分を完全にシャットオフすることができる一方、例えばメッセージを受信する他の部分は作動されたままとすることができる。ローパワーモードでは、第3のエンティティは、ハイパワーモードに比べてエネルギ消費量が低いことが理解される。
【0015】
b)における始動の後、第3のエンティティがローパワーモードにある間、フロントローディングされた第1の部分に基づいて、相互認証を既に開始できることがさらに理解される。さらに、第3のエンティティはローパワーモードに移行することが許容され、かつ第3のエンティティまたは第3のエンティティの少なくとも一部の部分がハイパワーモードでのアウェイク状態の維持を要請されないため、第3のエンティティまたは第3のエンティティの少なくとも一部の部分の寿命が延びる可能性がある。第3のエンティティがローパワーモードからウェイクアップされた場合、ハイパワーモードに移行すると理解される。
【0016】
本発明のさらなる利点は、周知の認証プロトコル、例えば、トランスポートレイヤーセキュリティとしても知られているTLS、またはMIFARE DESFireファミリの製品によって実行されるプロトコルのコスト削減、時間の最適化、および高いエネルギ効率の実現である。さらに、説明される認証方法は、第2のエンティティが第1のエンティティと第2のエンティティとの間で相互認証メッセージを転送する、エンティティ間の任意の既知の相互認証に適用できることが理解される。
【0017】
説明している相互認証のための認証方法は、それぞれのエンティティ間の通信、すなわち、それぞれのエンティティ間のメッセージの交換、すなわち、それぞれのエンティティ間の相互認証メッセージの交換によって行われることが理解される。
【0018】
認証プロトコルのフロントローディングされた第1の部分に基づく相互認証は、認証プロトコルの第1の部分が第2のエンティティにフロントローディングされた後、かつ第1のエンティティが第2のエンティティに動作可能に接続された後、任意の時点で始動させうることがさらに理解される。確立された接続は、第1のエンティティまたは第2のエンティティによって検出することができる。このように、b)相互認証を始動させることは、第1のエンティティと第2のエンティティとの間の確立された接続をどちらのエンティティが最初に検出するかに応じて、第1のエンティティまたは第2のエンティティのいずれかによって行うことができる。
【0019】
したがって、一実施形態では、b)始動させることは、第1のエンティティが第2のエンティティに動作可能に接続されたことを検出したときに、第2のエンティティにより行われる。その後、第2のエンティティは、第1のエンティティに認証要求を送信することにより、相互認証を開始することができる。別の実施形態では、b)始動させることは、第1のエンティティが第2のエンティティへの動作可能な接続を行うときに、第1のエンティティによって行われる。その後、第1のエンティティは、直接に、相互認証を開始することができる。
【0020】
認証方法の時間効率を向上させることが意図されうる。これは、認証方法の応答時間がさらに短縮されることを意味する。したがって、一実施形態では、第2のエンティティは、第3のエンティティをウェイクアップするために、第1のエンティティが第2のエンティティへの動作可能な接続を行うと直ちに、b)始動させることにおいて、d)ウェイクアップ信号を送信することを実行する。このように、第3のエンティティが認証プロセスの可能な限り早い時点/段階でウェイクアップされることを保証でき、e)において相互認証の可能な限り早い段階で第2のエンティティから第3のエンティティへ相互認証が再ルーティングされうることを有効化できる。
【0021】
ただし、本方法のエネルギ効率の向上に関しては、c)開始することにおいて、適切な時点でのウェイクアップ信号の送信が有利である場合がある。したがって、別の実施形態では、第2のエンティティは、第3のエンティティをウェイクアップするために、c)認証プロトコルのフロントローディングされた第1の部分に基づいて相互認証を開始する一方、d)ウェイクアップ信号を送信することを実行する。
【0022】
第3のエンティティは、ローパワーモードからハイパワーモードへの移行後に、再ルーティングの準備が完了したことを第2のエンティティに通知しうることが理解される。第1の部分は、加えて、第3のエンティティによって格納されうることがさらに理解される。このため、例えば、認証プロトコルの第1の部分の第2のエンティティへの送信で不具合が生じた場合、第3のエンティティが迅速に反応することが可能である。認証プロトコルの第1の部分は、セキュアなデータストレージ内に格納することができる。
【0023】
一実施形態では、e)再ルーティングすることは、第3のエンティティがローパワーモードからウェイクアップして、ローパワーモードからハイパワーモードに移行したとき、かつ第2のエンティティと第1のエンティティとの間の認証プロトコルのフロントローディングされた第1の部分が完了したときに、開始される。かかる実施形態では、e)再ルーティングすることが第2のエンティティによって実行される前に、認証プロトコルの第1の部分の全体が完了することが保証される。本実施形態によれば、第3のエンティティにウェイクアップ信号を送信してから、第3のエンティティがローパワーモードからウェイクアップしてハイパワーモードに移行するまでの時間を最大限に利用することができる。
【0024】
さらなる一実施形態では、a)認証プロトコルの第1の部分をフロントローディングすることは、
i)第3のエンティティにより、認証プロトコルの第1の部分を事前生成することと、
ii)第3のエンティティにより、第3のエンティティから第2のエンティティへ、認証プロトコルの事前生成された第1の部分を送信することと、
iii)第2のエンティティにより、第3のエンティティから認証プロトコルの事前生成された第1の部分を受信することと、
iv)第2のエンティティにより、受信した認証プロトコルの第1の部分を格納することと、
を含む。
【0025】
認証プロトコルの第1の部分は、例えば、第2のエンティティによって、データストレージまたはキャッシュメモリに格納することができる。データストレージは、セキュアなデータストレージであってよい。前述の実施形態では、第3のエンティティは、認証の第1の部分を送信した直後に、ローパワーモードに移行してもよい。
【0026】
一実施形態では、a)フロントローディングすることは、第1の乱数を生成し、第1の乱数を暗号化して第1の暗号化数を生成することを含む。したがって、一実施形態では、認証プロトコルの第1の部分は、暗号化された乱数、すなわち第1の暗号化数を含むことが理解される。乱数は第3のエンティティによって既に暗号化されているため、第2のエンティティに対して高いセキュリティ要件を満たす必要はない。例えば、第2のエンティティにセキュアなデータストレージはもはや必要ない。かかる一実施形態では、第3のエンティティのみが、第1の乱数および/または第1の暗号化数を格納するためのセキュアなデータストレージを含んでもよい。このように、全てのエンティティが高価でセキュアなデータストレージを含む必要がないため、コストを削減することが可能である。
【0027】
別の実施形態では、乱数を暗号化することは、第1のエンティティと第2のエンティティとの共有秘密鍵を使用することを含む。さらなる一実施形態では、共有秘密鍵は共有対称鍵であり、ここで、共有対称鍵は、第1のエンティティおよび第3のエンティティの事前共有された非対称鍵材料に基づく一方向鍵導出関数を使用して導出される。「事前共有」なる語は、認証プロトコルの第1の部分をフロントローディングする前に共有されることと理解される。非対称鍵材料なる語は、共有対称鍵の導出に、それぞれのエンティティの公開鍵と秘密鍵とが関与していることを意味する。
【0028】
既知の認証プロトコルの中には、暗号化された乱数を生成するために共有対称鍵を消費/使用するものがある。第1のエンティティおよび第3のエンティティの事前共有された非対称鍵材料に基づいて共有対称鍵を導出することで、共有対称鍵を消費する既知の認証プロトコルを使用すること、および非対称鍵の既知の利点を利用することができる。
【0029】
一実施形態では、a)フロントローディングすることは、乱数を生成し、乱数を対称鍵で暗号化して第1の暗号化数を導出することを含み、ここで、対称鍵は、第1のエンティティおよび第3のエンティティの事前共有された非対称鍵材料に基づく一方向鍵導出関数を使用して導出される。
【0030】
一実施形態では、a)フロントローディングすることは、第3のエンティティにより、認証プロトコルの第1の部分に識別子を追加することを含む。これは、第1のエンティティを識別することができるという利点を有し、複数の第1のエンティティが認証プロセスに参加する場合に特に有利である。認証プロトコルの第1の部分に識別子を追加するために、第3のエンティティは、a)フロントローディングすることの前に識別子を受信する。
【0031】
一実施形態では、認証プロトコルの第1の部分に識別子を追加することは、i)第3のエンティティによって、認証プロトコルの第1の部分を生成する際に、実行される。
【0032】
第3のエンティティが認証プロトコルの第1の部分に識別子を追加する一実施形態では、認証プロトコルの第1の部分は識別子を含みうることが理解される。識別子は、第1のエンティティの識別のための任意のデータを含みうることがさらに理解される。ただし、好ましい実施形態では、識別子は、それぞれの第1のエンティティに関連付けられた公開鍵、および/またはそれぞれの第1のエンティティに関連付けられたシリアル番号である。
【0033】
それぞれの第1のエンティティの識別子は、それぞれの第1のエンティティの暗号化された乱数にリンクさせることができる。識別子と暗号化された乱数とをリンクさせることで、特定の第1のエンティティについて暗号化された乱数とそれぞれの識別子とを含むタプルを生成することができる。
【0034】
複数の第1のエンティティが認証に参加する場合、複数の第1のエンティティの各第1のエンティティについて、認証プロトコルの別個の第1の部分を第2のエンティティにフロントローディングする必要があることが理解される。
【0035】
認証プロトコルの第1の部分が暗号化された乱数を含む一実施形態では、このように、複数の第1のエンティティの各第1のエンティティについて、暗号化された乱数と識別子とを含むタプルを有することが有利である。これにより、暗号化された乱数をそれぞれの第1のエンティティに代入することが可能である。したがって、別の実施形態では、第1の部分をフロントローディングすることは、複数の第1のエンティティの各第1のエンティティについて、第1の暗号化数と対応する識別子とを含むタプルのリストを事前生成することを含む。このように、複数の第1のエンティティの各第1のエンティティについて、別個のタプルをリスト内で発見することができ、識別子によって、どの第1の暗号化数がどの第1のエンティティに割り当てられているかを確実に識別することができる。
【0036】
第3のエンティティが認証プロトコルの第1の部分に識別子を追加する一実施形態では、b)始動させることは、第1のエンティティにより、第1のエンティティに関連付けられた識別子を第2のエンティティに送信し、第2のエンティティにより、識別子を発見することができるかどうかを検査することを含んでいてよい。識別子は、例えば、第2のエンティティへの接続を行うそれぞれの第1のエンティティが、認証に参加する第1のエンティティであるか否かを判定するために使用することができる。したがって、例えば、第1のエンティティと第2のエンティティとの間の認証は、第1のエンティティが第2のエンティティに識別子を送信した後にのみ開始されてもよく、第1のエンティティのそれぞれの識別子は、第2のエンティティによって発見される。
【0037】
タプルまたはタプルのリストが認証プロトコルの第1の部分内に含まれる一実施形態では、第2のエンティティが、識別子が発見できるかどうかを検査することは、識別子を含むタプルが発見できるかどうかを検査することを含みうると理解される。第1のエンティティから識別子を受信した後の第2のエンティティが、認証プロトコルのフロントローディングされた第1の部分内でそれぞれの識別子を発見できない場合、第2のエンティティは、任意の適切な反応を実行しうることがさらに理解される。例えば、第2のエンティティは、不具合が生じたことを示すエラーメッセージを第1のエンティティに送信すること、および/または第1のエンティティと第2のエンティティとの間の通信を停止することを実行してもよい。第2のエンティティが、認証プロトコルの第1の部分内の識別子を発見した場合、一実施形態では、第2のエンティティは、c)認証プロトコルの第1の部分を第1のエンティティに送信することにより、相互認証を開始することができる。
【0038】
また、識別子は、第3のエンティティにウェイクアップ信号を誤送信することに対する、本方法の堅牢性を強化し、エネルギ効率をさらに最適化するために使用することができる。したがって、第3のエンティティが認証プロトコルの第1の部分に識別子を追加する一実施形態では、認証方法は、d)第2のエンティティによりウェイクアップ信号を送信することにおいて、第1のエンティティに関連付けられた識別子を発見した後に実行される。したがって、第1のエンティティを識別子に基づいて第2のエンティティによって識別できない場合には、第2のエンティティが第3のエンティティにウェイクアップ信号を送信する必要はなく、第3のエンティティがローパワーモードからハイパワーモードに移行する必要はない。
【0039】
フロントローディングされた認証プロトコルの第1の部分が第2のエンティティによって第1のエンティティに送信される一実施形態では、c)開始することは、第1のエンティティによって認証プロトコルの第1の部分を受信した後に、受信した認証プロトコルの第1の部分に対する応答を準備することを含んでいてよい。識別子が認証プロトコルの第1の部分に追加される一実施形態では、第2のエンティティが、認証の第1の部分に加えて、識別子を第1のエンティティに送信する必要はないことが理解される。
【0040】
第1の暗号化数を含む一実施形態では、本方法は、第1のエンティティによって第1の暗号化数を受信することと、受信した第1の暗号化数に対する応答を準備することと、を含みうることがさらに理解される。
【0041】
一実施形態では、応答を準備することは、
‐第1のエンティティにより、第2の乱数を生成することと、
‐第1のエンティティにより、生成された第2の乱数を暗号化することと、
‐第1のエンティティにより、第1の暗号化数を復号して、第1の乱数を導出することと、
‐第1のエンティティにより、第1の乱数に数学的関数を適用して、修正された第1の乱数を受信することと、
‐第1のエンティティにより、第2の乱数と修正された第1の乱数を一緒に暗号化して、第2の暗号化数を生成することと、
‐第1のエンティティにより、第2の暗号化数を第2のエンティティに送信することと、
を含んでいてよい。
【0042】
エンティティ間の相互認証では、乱数の生成に多大な時間を要することが判明している。したがって、時間効率に関して、一実施形態では、第2の乱数を生成することは、c)相互認証を開始する前に第2の乱数を事前生成し、事前生成された第2の乱数を第1のエンティティのセキュアな領域に格納することを含む。セキュアな領域は、セキュアなデータストレージでありうることが理解される。
【0043】
本方法のセキュリティを強化するために、フロントローディングされた認証プロトコルの第1の部分が第2のエンティティにより第1のエンティティに送信される一実施形態では、c)開始することは、第2のエンティティにより認証プロトコルの第1の部分を送信した後に、第2のエンティティにより認証プロトコルの第1の部分を削除することを含んでいてよい。認証プロトコルの第1の部分が第1の暗号化数および識別子を含む一実施形態では、認証プロトコルの第1の部分を削除することは、識別子を残し、第1の暗号化数のみを削除することを含みうることが理解される。
【0044】
一実施形態では、第2のエンティティは、認証プロトコルの第1の部分を削除した後、かつ第3のエンティティがハイパワーモードに移行した後、第3のエンティティに認証プロトコルの新しい第1の部分を要求することを実行する。このように、第1のエンティティと第3のエンティティとの間の次の相互認証は、認証プロトコルの新しい第1の部分に基づいている。認証プロトコルの第1の部分を削除して認証プロトコルの新しい第1の部分を要求することで、認証プロトコルの第1の部分が通信に1回のみ使用されることが保証される。認証プロトコルの新しい第1の部分の要求を受信した後の第3のエンティティは、要求を受信した後の適切な時点で、認証プロトコルの新しい第1の部分を第2のエンティティに送信しうることが理解される。一実施形態では、第3のエンティティは、f)継続することの後に、認証プロトコルの新しい第1の部分を送信することを実行する。一実施形態では、認証プロトコルの新しい第1の部分を送信することは、識別子と新しい第1の暗号化数との更新されたタプルを送信することを含んでもよい。
【0045】
さらなる一実施形態では、認証プロトコルの新しい第1の部分の要求を受信しない第3のエンティティは、f)継続することの後に、認証プロトコルの新しい第1の部分を送信することを実行する。かかる一実施形態では、第2のエンティティは、認証プロトコルの新しい第1の部分の要求を送信する必要がなく、第3のエンティティは、f)継続することの後に、トリガメッセージなしで、認証プロトコルの新しい第1の部分を送信することを自動的に実行することが理解される。
【0046】
一実施形態では、c)相互認証を開始することは、
第1のエンティティが、
‐第2のエンティティから送信された第1の暗号化数を受信することと、
‐第1の暗号化数を復号して、第1の乱数を受信することと、
‐第1の乱数に数学的関数を適用して、修正された第1の乱数を導出することと、
‐第2の乱数を生成することと、
‐修正された第1の乱数および第2の乱数を暗号化して、第2の暗号化数を導出することと、
‐第2の暗号化数を第2のエンティティに送信することと、
を含む。
【0047】
第2の暗号化数は、修正された第1の乱数および第2の乱数の2つの部分を含むことが理解される。
【0048】
一実施形態では、第2の乱数は、第1のエンティティに関連付けられた秘密鍵および第3のエンティティに関連付けられた公開鍵から導出された共有秘密鍵に基づいて暗号化される。
【0049】
一実施形態では、共有秘密鍵は共有対称鍵であり、ここで、共有対称鍵は、第1のエンティティに関連付けられた秘密鍵および第3のエンティティに関連付けられた公開鍵に一方向鍵導出関数を適用することによって導出される。第1のエンティティに関連付けられた秘密鍵および第3のエンティティに関連付けられた公開鍵は、共有対称鍵を導出するために鍵導出機能にしたがって使用される非対称鍵材料を表すことが理解される。そのため、既知の非対称鍵の利点を利用することが可能である。
【0050】
一実施形態では、第2のエンティティは、第2の暗号化数を受信した後、第3のエンティティがハイパワーモードHPMになるまで待機することを実行して、第2の暗号化数を、それぞれの第1のエンティティに関連付けられた識別子とともに第3のエンティティに送信してもよい。第2のエンティティは、例えば第3のエンティティがハイパワーモードに移行したことを示すメッセージを第2のエンティティに送信することによって、第3のエンティティがハイパワーモード(HPM)にあることを示すまで、第2の暗号化数と、それぞれの第1のエンティティに関連付けられた識別子とを第3のエンティティに送信するのを待機しうることが理解される。
【0051】
一実施形態では、e)第2のエンティティにより、第2のエンティティから第3のエンティティへの相互認証を再ルーティングすることは、
‐受信された第2の暗号化数を、第1のエンティティに関連付けられたそれぞれの識別子とともに第3のエンティティに送信することを含む。
【0052】
f)第3のエンティティにより相互認証を継続することは、第3のエンティティがハイパワーモードに移行した後、かつ第3のエンティティにより、第2のエンティティから第1のエンティティに関連付けられたそれぞれの識別子と共に第2の暗号化数を受信した後に、開始されることが理解される。
【0053】
一実施形態では、f)第3のエンティティにより、相互認証を継続することは、
‐格納された第1の乱数およびそれぞれの識別子に関連付けられた第1の暗号化数をロックすることと、
‐第2の暗号化数を復号して、第2の乱数および修正された第1の乱数を受信することと、
‐修正された第1の乱数にそれぞれの数学的逆関数を適用して、第1の乱数を導出することと、
‐格納された第1の乱数を、数学的逆関数が適用された第1の乱数と比較することと、
を含む。
【0054】
ここでいうロックとは、ロックが解除されるまで、格納された第1の乱数およびそれぞれの識別子に関連付けられた格納された第1の暗号化乱数の上書き、削除、または第2のエンティティへの送信を行いえないことを意味する。かかる一実施形態は、説明される認証方法のセキュリティを向上させる。
【0055】
一実施形態では、第3のエンティティがハイパワーモードに移行した後、かつf)第3のエンティティにより認証プロトコルの欠落部分に基づく相互認証が継続されている間、第2のエンティティは、第1のエンティティと第3のエンティティとの間のゲートウェイまたは中間ノードまたはリレーとして機能する。一実施形態における、e)再ルーティングすることの後の第2のエンティティは、受信したメッセージをそれぞれのエンティティとの間で受信して直接に送信することによって、第1のエンティティと第3のエンティティとの間のそれぞれの通信のみを転送しうることが理解される。
【0056】
一実施形態では、第3のエンティティは、格納された第1の乱数と、数学的逆関数が適用された第1の乱数とを比較した後に、
A)格納された第1の乱数と、数学的逆関数が適用される第1の乱数とが一致しない場合に、通信を中止すること、
および
B)第3のエンティティによって、格納された第1の乱数が、数学的逆関数が適用される第1の乱数と一致した場合に、認証プロトコルの欠落部分が終了するまで、相互認証を継続すること、
のいずれか1つを選択する。
【0057】
一実施形態では、B)第3のエンティティによって、相互認証を継続することは、
‐受信された第2の乱数に数学的関数を適用して、修正された第2の乱数を導出することと、
‐修正された第2の乱数を暗号化して、第3の暗号化数を導出することと、
‐第3の暗号化数を第2のエンティティに送信することと、
‐第1の乱数および第2の乱数に基づいてセッション鍵を生成することと、
を含む。
【0058】
第3のエンティティが、格納された第1の乱数および識別子に関連付けられた第1の暗号化数をロックすることを実行する一実施形態では、B)第3のエンティティによって、相互認証を継続することは、
‐受信された第2の乱数に数学的関数を適用して、修正された第2の乱数を導出することと、
‐修正された第2の乱数を暗号化して、第3の暗号化数を導出することと、
‐第3の暗号化数を第2のエンティティに送信することと、
‐第1の乱数および第2の乱数に基づいてセッション鍵を生成することと、
‐格納された第1の乱数およびそれぞれの識別子に関連付けられた第1の暗号化数をロック解除することと、
‐新しい第1の乱数を再生成し、当該乱数を暗号化して新しい第1の暗号化数を受信することと、
‐それぞれの識別子に関連付けられた新しい第1の暗号化数を送信することと、
を含む。
【0059】
新しい第1の乱数を再生成することは、新しい第1の乱数を生成する前に第1の乱数を削除するか、または新しい第1の乱数によって第1の乱数を上書きすることを含みうることが理解される。それぞれの識別子に関連付けられた新しい第1の暗号化数を送信することは、第2のエンティティ内のタプルを更新することを含みうることがさらに理解される。
【0060】
一実施形態では、第2のエンティティは、第3の暗号化数を受信した後、第3の暗号化数を第1のエンティティに転送することを実行する。
【0061】
さらなる一実施形態では、第1のエンティティは、第3の暗号化数を受信した後、
‐受信された第3の暗号化数を復号して、修正された第2の乱数を受信することと、
‐修正された第2の乱数にそれぞれの数学的逆関数を適用して、第2の乱数を導出することと、
‐格納された第2の乱数を、数学的逆関数が適用された第2の乱数と比較することと、
を実行する。
【0062】
一実施形態では、時間効率を改善するために、第3のエンティティは、第1のエンティティが第3の暗号化数を受信し、かつ第1のエンティティが第3の暗号化数を処理している間(例えば、復号し、それぞれの数学的逆関数を適用し、比較している間)、セッション鍵を生成しうることが理解される。しかしながら、時間効率に関して、一実施形態では、第3のエンティティは、第3の暗号化数を第2のエンティティに送信している間に、既にセッション鍵を生成しうることがさらに理解される。
【0063】
一実施形態では、第1のエンティティは、格納された第2の乱数と、数学的逆関数が適用された第2の乱数とを比較した後に、
A)格納された第2の乱数と、数学的逆関数が適用される第2の乱数とが一致しない場合に、通信を中止すること、
および
B)格納された第1の乱数が、数学的逆関数が適用される第1の乱数と一致した場合に、第1の乱数および第2の乱数に基づいて、セッション鍵を生成すること、
のいずれか1つを選択する。
【0064】
第1のエンティティおよび第3のエンティティがそれぞれのセッション鍵を生成した後に認証が完了することが理解される。双方のエンティティは、このようにして相互認証され、それぞれのセッション鍵に基づいて認証済みメッセージを交換することができる。
【0065】
本発明の第2の態様は、第1のエンティティおよび第3のエンティティによって使用される認証プロトコルに基づく、第2のエンティティを介した第1のエンティティと第3のエンティティとの間の相互認証を実行する方法に関しており、第2のエンティティが、第1のエンティティと第3のエンティティとの間で相互認証メッセージを転送し、本方法は、
a)第3のエンティティにより、第2のエンティティに認証プロトコルの第1の部分をフロントローディングすることであって、フロントローディングされた認証プロトコルの第1の部分が、第1の暗号化数(c1)を含む、ことと、
b)第3のエンティティにより、第2のエンティティから、相互認証を継続する指示を受信することと、
c)第3のエンティティにより、認証プロトコルの欠落部分に基づく相互認証を継続することであって、当該継続すること(107)が、第2のエンティティ(E2,T)から第2の暗号化数(c2)を受信した後に開始され、第2の暗号化数(c2)が、第1の暗号化数(c1)の内容を含み、認証プロトコルの欠落部分は、第2の暗号化数(c2)に基づいて第3のエンティティ(E3,C)にセッション鍵Sを導出させる命令と、第3のエンティティ(E3,C)によって生成され送信された第3の暗号化数(c3)に基づいて第1のエンティティ(E1,Dn)にセッション鍵Sを導出させる命令とを含み、第3の暗号化数(c3)が第2の暗号化数(c2)の内容を含み、当該継続することが、第1のエンティティ(E1,Dn)および第3のエンティティ(E3,C)によるそれぞれのセッション鍵Sを使用して、第1のエンティティ(E1,Dn)と第3のエンティティ(E3,C)との間で認証されたメッセージを交換することを含む、ことと、を含む。
【0066】
本発明の第3の態様は、第1のエンティティおよび第3のエンティティによって使用される認証プロトコルに基づく、第2のエンティティを介した第1のエンティティと第3のエンティティとの間の相互認証を実行する方法に関しており、第2のエンティティが、第1のエンティティと第3のエンティティとの間で相互認証メッセージを転送し、本方法は、
a)第2のエンティティにより、認証プロトコルの第1の部分を受信することであって、認証プロトコルの第1の部分が、第1の暗号化数(c1)を含む、ことと、
b)第2のエンティティにより、認証プロトコルのフロントローディングされた第1の部分に基づいて相互認証を開始することであって、第1のエンティティが第2のエンティティへの接続を行うときに、当該開始すること(104)が、第1のエンティティ(E1,Dn)により第2の暗号化数(c2)を生成することをさらに含み、第2の暗号化数(c2)が、第1の暗号化数(c1)の内容を含む、ことと、
c)第2のエンティティにより、第3のエンティティに相互認証メッセージを再ルーティングすることであって、当該再ルーティングすること(106)が、第2のエンティティ(E2,T)から第3のエンティティ(E3,C)に第2の暗号化数(c2)を送信することを含む、ことと、を含む。
【0067】
本発明の第4の態様は、本発明による方法を実行するように構成された第2のエンティティおよび/または本発明による方法を実行するように構成された第3のエンティティを含む車両を対象とする。
【0068】
本発明の第5の態様によれば、データ処理システムは、本発明による認証方法を実行するように構成されたプロセッサを含んでいる。
【0069】
本発明の第6の態様によれば、コンピュータプログラム製品は、プログラムがコンピュータによって実行される際に、コンピュータに本発明による認証方法を行わせるための命令を含む。
【0070】
本発明の第7の態様によれば、コンピュータ可読データ記憶媒体は、コンピュータによって実行される際に、コンピュータに本発明に従った認証方法を行わせるための命令を含む。
【0071】
一実施形態では、第1のエンティティは、デバイス、例えばNFCデバイスとも称される近距離無線通信デバイスによって表されてもよく、方法は、NFCとも称される近距離無線通信のために提供されることが理解される。一実施形態では、第1のエンティティは、携帯電話機のNFCデバイスであるか、またはNFCデバイスを備えたハードウェアトークン、例えば、鍵もしくはNFCカードに実装されたハードウェアトークンである。ただし、本発明による認証方法は、NFCデバイスに限定されるものではない。第1のエンティティは、記載されているような認証方法で使用される任意のデバイスでありうることが理解される。
【0072】
一実施形態では、第2のエンティティは、車両のドア内の端末、すなわちリーダであり、例えばECUとも称される電子制御ユニットである。
【0073】
一実施形態では、第3のエンティティは、セキュリティコントローラ、例えば、ハードウェアセキュリティモジュールであり、HSMとも称される。
【0074】
本出願は、高いセキュリティ要件を満たさない、あらゆる種類の物理的なアクセス制御システム、例えばドアロック、およびIoTデバイスとも称される、他の、モノのインターネットデバイスに使用することができることが理解される。
【0075】
本発明のさらなる特徴は、以下の説明および図面に関連する添付の特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0076】
【
図1】本発明の第1の実施形態による方法のフローチャートの図である。
【
図2】本発明の第2の実施形態による認証方法のフローチャートの図である。
【
図3】
図1に示した第1の実施形態による認証方法を実行するシステムをより詳細に概略的に示す図である。
【
図4】
図2に示した第2の実施形態による認証方法を実行するシステムをより詳細に概略的に示す図である。
【
図5】
図3に示された実施形態の代替的な一実施形態を概略的に示す図であり、
図1に示された方法の代替的な一実施形態を実行している。
【
図6】
図4に示された実施形態の代替的な一実施形態を概略的に示す図であり、
図2に示された方法の代替的な一実施形態を実行している。
【
図7】本発明によるシステムおよびエンティティを概略的に示す図である。
【0077】
詳細な説明
本明細書は、本開示の基本方式を例示するものである。したがって、当業者は、本明細書に明示的に記載または示されていないが、本開示の基本方式を具現化する種々の構成を考案することができることが理解されるであろう。
【0078】
本明細書に引用された全ての例および条件文は、読者が本開示の基本方式および本発明者が技術の発展に貢献した概念を理解するのに役立つための教育目的を意図しており、かかる具体的に引用された例および条件に限定されるものではないと解釈されるべきである。
【0079】
さらに、本開示の基本方式、態様、および実施形態、ならびにそれらの具体的な例を言及する本明細書の全ての記述は、それらの構造的および機能的な等価物を包含することを意図している。加えて、かかる等価物には、現在知られている等価物だけでなく、将来開発される等価物、すなわち、構造にかかわらず、同じ機能を果たすために開発されたあらゆる要素が含まれることが意図されている。
【0080】
したがって、当業者であれば、例えば、本明細書に提示される図は、本開示の基本方式を具現化した例示的な回路の概念的な見方を示すものであることを理解するであろう。
【0081】
図1は、本出願の第1の実施形態による認証方法100のフローチャートである。
【0082】
認証方法100の第1のステップ101では、認証プロトコルの第1の部分、すなわちプロトコルの第1の部分が、第3のエンティティE3,Cによって、第2のエンティティE2,Tにフロントローディングされる。認証プロトコルの欠落部分は、第3のエンティティE3,Cで保持されている。
【0083】
第2のステップ102では、第2のエンティティE2,Tにプロトコルの第1の部分101をフロントローディングした後、第3のエンティティE3,Cが、ローパワーモードLPMに移行する。
【0084】
プロトコルの第1の部分が第2のエンティティE2,Tにフロントローディングされた後、任意の時点で行われうる第3のステップ103において、第1のエンティティE1,Dnが第2のエンティティE2,Tへの接続を行い、これにより、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間の相互認証が始動される。
【0085】
第4のステップ104では、プロトコルのフロントローディングされた第1の部分に基づいて相互認証が開始される。
【0086】
第5のステップ105では、第1のエンティティE1,Dnが第2のエンティティE2,Tへの接続を行った直後に、第2のエンティティE2,Tが第3のエンティティE3,Cにウェイクアップ信号を送信する。
【0087】
第6のステップ106において、第2のエンティティE2,Tは、第3のエンティティE3,Cがローパワーモードからハイパワーモードに移行した後、かつ第2のエンティティE2,Tと第1のエンティティE1,Dnとの間のプロトコルのフロントローディングされた第1の部分に基づく相互認証が完了した後、相互認証メッセージを再ルーティングする。
【0088】
第7のステップ107では、相互認証メッセージが再ルーティングされた後、第3のエンティティE3,Cは、プロトコルの欠落部分に基づいて、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間の相互認証を継続する。認証プロトコルの欠落部分は、第3のエンティティE3,Cに対するセッション鍵Sを導出する命令と、第1のエンティティE1,Dnに対する後述するセッション鍵Sを導出する命令と、を含む。
【0089】
図1によるステップ101~107は、
図3にさらに詳細に示されている。
【0090】
図1では、ステップ101において、第3のエンティティE3,Cが、プロトコルの第1の部分を生成し、当該プロトコルの第1の部分を第2のエンティティE2,Tに送信する。プロトコルの第1の部分を受信した後、第2のエンティティE2,Tは、当該プロトコルの第1の部分をデータストレージに格納する。
【0091】
プロトコルの第1の部分は、第3のエンティティE3,Cによって生成され、ここで、第3のエンティティE3,Cは、第1の乱数rBを生成し、当該第1の乱数rBを暗号化して第1の暗号化数c1を受信する。乱数rBおよび第1の暗号化数c1は、第3のエンティティE3,Cによってセキュアなデータストレージに格納されている。
【0092】
第1の乱数rBを暗号化するために、第3のエンティティE3,Cは、対称鍵Kを使用する。当該対称鍵Kは、第3のエンティティE3,Cの秘密鍵PrKCおよび第1のエンティティE1,Dnの公開鍵PuKDnに一方向鍵導出関数KDFを適用することにより、第3のエンティティE3,Cによって導出される。第1のエンティティE1,Dnの公開鍵PuKDnは、ステップ101でのフロントローディングの前に第3のエンティティE3,Cによって受信されており、これにより、第3のエンティティE3,Cに既知となっている。
【0093】
第3のエンティティE3,Cが第1の暗号化数c1を格納した後、第3のエンティティE3,Cは、第1のエンティティE1,Dnの公開鍵PuKDnを第1の暗号化数c1に追加する。第1のエンティティE1,Dnの識別子idnとして、第1のエンティティE1,DnのPuKDnが使用される。このようにして、第3のエンティティE3,Cは、第1のエンティティE1,Dnに関連付けられた識別子idnと、第1の暗号化数c1とを含むデータのタプルを生成する。
【0094】
複数の第1のエンティティが相互認証に関与しているので、第3のエンティティE3,Cは、複数の第1のエンティティ内の各第1のエンティティE1,Dnに対して、第1の暗号化数c1と対応する識別子idnとを有する異なるタプルを含むタプルのリストを生成する。
【0095】
タプルのリストが生成された後、当該タプルのリストは、第3のエンティティE3,Cによって第2のエンティティE2,Tに送信され、第2のエンティティE2,Tによって受信された後、第2のエンティティE2,Tによってデータストレージ内に格納される。このように、プロトコルの第1の部分は、タプルのリストを含む。リストが送信されて格納された後、ステップ102で第3のエンティティE3,CがローパワーモードLPMに移行する。
【0096】
ステップ103で第1のエンティティE1,Dnが第2のエンティティE2,Tへの接続を行い、第2のエンティティE2,Tが当該接続を検出した直後に、ステップ105で第2のエンティティE2,Tが第3のエンティティE3,Cにウェイクアップ信号を送信する。このようにして、ステップ103で相互認証が始動される。ステップ105でウェイクアップ信号を送信した後、ステップ103で、第2のエンティティE2,Tは、第1のエンティティE1,Dnに認証要求を送信する。認証要求への応答として、第1のエンティティE1,Dnは、第1のエンティティE1,Dnの識別子idnとして機能する第1のエンティティE1,Dnの公開鍵PuKDnを第2のエンティティE2,Tに送信する。
【0097】
第2のエンティティE2,Tは、第1のエンティティE1,Dnの公開鍵PuKDnが、格納されたタプルのリスト内に発見されうるか否かを検査する。第1のエンティティE1,Dnの公開鍵PuKDnがタプルのリスト内に発見できず、第1のエンティティE1,Dnを識別できない場合、第2のエンティティE2,Tは、第1のエンティティE1,Dnにエラーメッセージを送信し、第1のエンティティE1,Dnとの通信を停止する。
【0098】
第1のエンティティE1,Dnの公開鍵PuKDnがタプルのリスト内で発見できる場合、第2のエンティティE2,Tは、第1のエンティティE1,Dnの公開鍵PuKDnとともにタプル内で発見できるそれぞれの第1の暗号化数c1を第1のエンティティE1,Dnに送信して、ステップ104で、プロトコルの第1の部分に基づく相互認証を開始する。
【0099】
第1の暗号化数c1を送信した後、第2のエンティティE2,Tは、第1の暗号化数c1を削除し、適切な時点で新しい第1の暗号化数c1を要求する(以下を参照)。
【0100】
第1の暗号化数c1を受信した後、第1のエンティティE1,Dnは、プロトコルの第1の部分に基づく相互認証のための応答を準備する。応答の準備のために、第1のエンティティE1,Dnは、第2の乱数rAを生成し、第1の暗号化数c1を復号して第1の乱数rBを導出する。第2の乱数rAは、第1のエンティティE1,Dnによって事前生成され、セキュアなデータストレージに格納されていてよい。さらに、第1のエンティティE1,Dnは、導出された第1の乱数rBに数学的関数を適用する。当該数学的関数では、導出された第1の乱数rBのビットが左に8ビット回転され、オーバーフローしたビットがラップアラウンドされる。このようにして、修正された第1の乱数rB’が導出される。その後、第2の乱数rAおよび修正された第1の乱数rB’の連結子rA||rB’が、第2のエンティティE2,Tによって暗号化され、第2の暗号化数c2が受信される。
【0101】
第2の暗号化数c2を受信するために、第2のエンティティE2,Tは、対称鍵Kを用いて、第2の乱数rAおよび修正された第1の乱数rB’の連結子rA||rB’を暗号化する。当該対称鍵Kは、第1のエンティティE1,Dnの秘密鍵PrKDnおよび第3のエンティティE3,Cの公開鍵PuKCに一方向鍵導出関数(KDF)を適用することにより、第1のエンティティE1,Dnによって導出される。第3のエンティティE3,Cの公開鍵PuKCは、ステップ101のフロントローディングの前に第1のエンティティE1,Dnによって受信されており、これにより、第1のエンティティE1,Dnに既知となっている。その後、第1のエンティティE1,Dnは、第2のエンティティE2,Tに第2の暗号化数c2を送信する。
【0102】
第2のエンティティE2,Tによる第2の暗号化数c2を受信した後、プロトコルのフロントローディングされた第1の部分に基づく相互認証が完了する。その後、第2のエンティティE2,Tは、第3のエンティティE3,Cが既にハイパワーモードに移行していない場合には、第3のエンティティE3,Cがハイパワーモードに移行するのを待機する。
【0103】
第3のエンティティE3,Cがハイパワーモードに移行した後、ステップ106で、第2のエンティティE2,Tは、第2の暗号化数c2および第1のエンティティE1,Dnの公開鍵PuKDnを含むタプルを第3のエンティティE3,Cに送信することにより、相互認証メッセージを第3のエンティティE3,Cに再ルーティングする。
【0104】
ステップ106で再ルーティングした後、ステップ107で、第3のエンティティE3,Cは、認証プロトコルの欠落部分に基づいて、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間の相互認証を継続する。ステップ106で再ルーティングした後、第2のエンティティE2,Tは、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間で受信されたメッセージの転送のみを行うことにより、ゲートウェイとして機能する。
【0105】
第3のエンティティE3,Cは、第2の暗号化数c2を受信した後、格納された第1の乱数と、受信された第1のエンティティE1,Dnの公開鍵PuKDnに関連付けられており、かつ第1のエンティティE1,Dnの識別子idnとして機能する、格納された第1の暗号化数c1とをロックする。次に、第3のエンティティE3,Cは、第2の暗号化数c2を復号して、第2の乱数rAおよび修正された第1の乱数rB’の連結子rA||rB’を導出する。
【0106】
次に、第3のエンティティE3,Cは、修正された第1の乱数rB’に数学的逆関数を適用して、第1のエンティティE1,Dnにより数学的関数が適用された第1の乱数rBを導出する。当該数学的逆関数では、修正された第1の乱数rB’のビットが右に8ビット回転され、オーバーフローしたビットがラップアラウンドされる。その後、第3のエンティティE3,Cは、第1のエンティティE1,Dnにより数学的関数が適用された第1の乱数rBと、格納された第1の乱数rBとを比較する。比較された乱数が一致しない場合、第3のエンティティE3,Cは、エラーメッセージを送信し、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間の通信を中止する。
【0107】
比較された乱数が一致した場合、第3のエンティティE3,Cは、受信した第2の乱数rAに数学的関数を適用して修正された第2の乱数rA’を導出し、修正された第2の乱数を暗号化して第3の暗号化数c3を導出し、当該第3の暗号化数c3を第2のエンティティE2,Tに送信することにより、相互認証を継続する。第3の暗号化数c3を第2のエンティティE2,Tに送信しながら、第3のエンティティは、第1の乱数rBおよび第2の乱数rAに基づいてセッション鍵Sの生成を実行する。修正は、第1の乱数に適用した場合と同様の修正である。
【0108】
この段階でゲートウェイとして機能する第2のエンティティE2,Tは、第3の暗号化数c3を受信した後、第3の暗号化数c3をそれ以上処理することなく、第1のエンティティE1,Dnへの第3の暗号化数c3の転送を実行する。
【0109】
第1のエンティティE1,Dnは、第3の暗号化数c3を受信した後、受信した第3の暗号化数c3を復号して修正された第2の乱数rA’を受信し、修正された第2の乱数rA’にそれぞれ数学的逆関数を適用して第2の乱数rAを導出し、格納された第2の乱数rAと数学的逆関数が適用された第2の乱数とを比較することを実行する。
【0110】
比較された乱数が一致しない場合、第1のエンティティE1,Tは、エラーメッセージを送信し、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間の通信を中止する。
【0111】
比較された乱数が一致した場合、第1のエンティティE1,Dnは、第1の乱数および第2の乱数に基づいて、セッション鍵Sの生成を実行する。
【0112】
第1のエンティティE1,Dnおよび第3のエンティティE3,Cがそれぞれのセッション鍵Sを生成した後、相互認証が完了する。
【0113】
第3のエンティティE3,Cは、セッション鍵Sを生成した後、任意の適切な時点で、ロックされて格納された第1の乱数rBと、識別子idn(ここでは、第1のエンティティE1,Dnの公開鍵PuKDn)に関連付けられた、ロックされて格納された第1の暗号化数c1とのロック解除を実行することができる。
【0114】
第2のエンティティE2,Tが第3の暗号化数c3を受信して第1のエンティティE1,Dnに転送した後、第2のエンティティE2,Tは、第3のエンティティE3,Cから、それぞれの識別子idnに関連付けられた新しい第1の暗号化数c1の要求を実行する。
【0115】
第3のエンティティE3,Cは、新しい第1の暗号化数の要求を受信し、格納された乱数rBと第1の暗号化数c1とのロックを解除した後、新しい第1の乱数の再生成および新しい第1の乱数の暗号化を実行して、新しい第1の暗号化数を生成する。ここでの再生成は、ロック解除されて格納された第1の乱数rBと、ロック解除された第1の暗号化数c1とを、それぞれの番号を新しい番号に置き換えることによって上書きすることを含む。このようにして、新しい第1の暗号化数および関連する識別子、ここでは第1のエンティティE1,Dnの公開鍵PuKDnを含む更新されたタプルが生成される。
【0116】
再生成後、第3のエンティティE3,Cは、第2のエンティティE2,Tへの更新されたタプルの送信を実行する。更新されたタプルを受信した後の第2のエンティティE2,Tは、それぞれの第1のエンティティに関連付けられた、格納されたそれぞれの識別子を上書きすることによって、またはそれぞれの第1のエンティティに関連付けられた、格納されたそれぞれの識別子に関連付けられた新しい第1の暗号化数を単に格納することによって、更新されたタプルをデータストレージに格納する。
【0117】
図2は、本出願の第2の実施形態による認証方法100のフローチャートである。
【0118】
図2と
図1との相違点は、第1のエンティティE1,Dnが、第2のエンティティE2,Tとの接続を検出した後、かつステップ103で相互認証を始動させた後、第1のエンティティE1,Dnの識別子idnとして機能する第1のエンティティE1,Dnの公開鍵PuKDnを第2のエンティティE2,Tに直接に送信することである。さらに、
図2は、ステップ103で第1のエンティティE1,Dnの公開鍵PuKDnが格納されたタプルのリスト内に発見されうるか否かが検査された後、ステップ105で第2のエンティティE2,Tがウェイクアップ信号を送信する点で、
図1とはさらに異なる。第1のエンティティE1,Dnの公開鍵PuKDnがタプルのリスト内に発見できず、第1のエンティティE1,Dnを識別できない場合、第2のエンティティE2,Tは、第3のエンティティE3,Cにウェイクアップ信号を送信することなく、単に第1のエンティティE1,Dnにエラーメッセージを送信し、第1のエンティティE1,Dnとの通信を停止する。
【0119】
第1のエンティティE1,Dnの公開鍵PuKDnがタプルのリスト内に発見できる場合のみ、第2のエンティティE2,Tは、第1のエンティティE1,Dnの公開鍵PuKDnを発見した後、第3のエンティティE3,Cにウェイクアップ信号を送信する。
【0120】
図2によるステップ101~107は、
図4にさらに詳細に示されている。
【0121】
図3は、
図1に示した第1の実施形態による認証方法を実行するシステムの詳細を概略的に示している。当該システムは、第1のエンティティE1と、第2のエンティティE2と、第3のエンティティE3とを含む。第1のエンティティE1は、認証対象デバイスD
n、例えばNFCデバイスによって表される。デバイスD
nは、n=1,2,3,...のデバイスを有する複数のデバイスD
n内の第1のデバイスである。第2のエンティティE2は、端末T、例えば車両のドア内の受信機で表される。第3のエンティティE3は、セキュリティコントローラC、例えば車両内のハードウェアセキュリティモジュールHSMによって表される。第2のエンティティE2,Tおよび第3のエンティティE3,Cは、いずれも車載ネットワークに実装されている。
【0122】
第1のエンティティE1,Dnは、右側の垂直な点線に沿ってステップを実行する。第2のエンティティE2,Tは、中央の垂直な点線に沿ってステップを実行し、第3のエンティティE3,Cは、左側の垂直な点線に沿ってステップを実行する。2つの垂直な点線をそれぞれ結ぶ点線の間の矢印は、それぞれの2つのエンティティの相互作用、すなわち通信を示している。
【0123】
図4は、
図2に示した第2の実施形態による認証方法を実行するシステムの詳細を概略的に示している。ここで、
図4は、第2のエンティティE2,Tとの接続を検出した後のステップ103の第1のエンティティE1,Dnが、第1のエンティティE1,Dnの公開鍵PuKDnを第2のエンティティE2,Tに直接に送信する点で、
図3とは異なる。第1のエンティティE1,Dnの公開鍵PuKDnは、第1のエンティティE1,Dnの識別子idnとして機能する。しかも、
図4は、ステップ103で第1のエンティティE1,Dnの公開鍵PuKDnが格納されたタプルのリスト内に発見されうるか否かが検査された後、ステップ105で第2のエンティティE2,Tがウェイクアップ信号を送信する点で、
図3とはさらに異なる。第1のエンティティE1,Dnの公開鍵PuKDnがタプルのリスト内に発見できず、第1のエンティティE1,Dnを識別できない場合、第2のエンティティE2,Tは、第3のエンティティE3,Cにウェイクアップ信号を送信することなく、単に第1のエンティティE1,Dnにエラーメッセージを送信し、第1のエンティティE1,Dnとの通信を停止する。
【0124】
第1のエンティティE1,Dnの公開鍵PuKDnがタプルのリスト内に発見できる場合のみ、第2のエンティティE2,Tは、第1のエンティティE1,Dnの公開鍵PuKDnを発見した後に、第3のエンティティE3,Cにウェイクアップ信号を送信する。
【0125】
図5は、
図1に示された方法の代替的な一実施形態を実行する、
図3に示された実施形態の代替的な一実施形態を概略的に示している。
【0126】
ここで、
図1で説明した方法と
図3との唯一の違いは、
図5の第3のエンティティE3,Cが、格納されている第1の乱数rBをロック解除し、格納されている第1の暗号化数c1をロック解除した後、自動的に、新しい第1の乱数の再生成を実行し、新しい第1の乱数を暗号化して新しい第1の暗号化数を導出し、更新されたタプルを第2のエンティティE2,Tに送信する点である。この場合、第3のエンティティE3,Cは、第2のエンティティE2,Tからの、新しい第1の暗号化数を含む更新されたタプルの送信要求を受信するまで待機しなくてよい。
【0127】
図6は、
図2に示された方法の代替的な一実施形態を実行する、
図4に示された実施形態の代替的な一実施形態を概略的に示している。
【0128】
ここで、
図2で説明した方法と
図4との唯一の違いは、
図6の第3のエンティティE3,Cが、格納された第1の乱数rBをロック解除し、格納された第1の暗号化数c1をロック解除した後、自動的に、新しい第1の乱数の再生成を実行し、新しい第1の乱数を暗号化して新しい第1の暗号化数を導出し、更新されたタプルを第2のエンティティE2,Tに送信する点である。この場合、第3のエンティティE3,Cは、第2のエンティティE2,Tからの、新しい第1の暗号化数を含む更新されたタプルの送信要求を受信するまで待機しなくてよい。
【0129】
図7は、本発明によるシステムおよびエンティティを概略的に示している。エンティティの構成は、
図3および
図4と同様である。すなわち、
図3および
図4のデバイスDnによって表される第1のエンティティE1が右側位置に、
図3および
図4の端末Tによって表される第2のエンティティE2が中間位置に、
図3および
図4のセキュリティコントローラCによって表される第3のエンティティE3,Cが右側位置に配置されている。
【0130】
車両31の車載ネットワーク30には、第2のエンティティE2,Tおよび第3のエンティティE3,Cが導入されている。
【0131】
第1のエンティティE1,Dnは携帯電話機であり、第2のエンティティE2,Tは車両31のドア内のECU内のリーダであり、第3のエンティティE3,Cは車載ネットワーク30内のHSMである。第3のエンティティE3,Cと第2のエンティティE2,Tとは、車載ネットワーク30内の接続を介して、例えば有線で通信することができる。なお、第1のエンティティE1,Dnは、車両31のドアの開放のために使用されてもよい。車両31のドアを開放するためには、第1のエンティティE1,Dnと第3のエンティティE3,Cとの間の相互認証が必要である。したがって、
図1のシステムおよびエンティティは、
図3と同じであり、システムおよびエンティティは、
図1および
図3に示すような認証方法を実行する。