(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022159057
(43)【公開日】2022-10-17
(54)【発明の名称】暗号プロセスによるデバイスの認証
(51)【国際特許分類】
H04L 9/14 20060101AFI20221006BHJP
H04L 9/08 20060101ALI20221006BHJP
H04L 9/32 20060101ALI20221006BHJP
【FI】
H04L9/14
H04L9/08 B
H04L9/08 F
H04L9/32 200A
H04L9/32 200F
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022048236
(22)【出願日】2022-03-24
(31)【優先権主張番号】2103451
(32)【優先日】2021-04-02
(33)【優先権主張国・地域又は機関】FR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】519260337
【氏名又は名称】アイデミア フランス
(74)【代理人】
【識別番号】100107641
【弁理士】
【氏名又は名称】鎌田 耕一
(74)【代理人】
【識別番号】100202201
【弁理士】
【氏名又は名称】兒島 淳一郎
(72)【発明者】
【氏名】ドタ,エマニュエル
(72)【発明者】
【氏名】ベタル,リュック
(72)【発明者】
【氏名】ルブー,ナタン
(57)【要約】 (修正有)
【課題】暗号アルゴリズムを十分に防御する暗号プロセスによるデバイスの認証を実現する。
【解決手段】処理方法は、第2のデバイスと協働する第1のデバイスDV1における処理方法であって、チャレンジデータを含む第1のデータDT1を受信することと、暗号マスキング関数を実行することによってマスキングされる暗号化された暗号鍵D
ECを含む鍵データC
ECを得ることと、アンマスキング鍵K2を受信することと、アンマスキング鍵に基づいて暗号アンマスキング関数を実行することにより、DECを決定することと、DECに基づいて、ホワイトボックス実装で復号アルゴリズムを実行する復号により、復号された暗号鍵K
ECを決定することと、K
EC及びチャレンジデータに基づいて、既定の暗号アルゴリズムを実行する暗号動作により、解答データANS1を決定することと、第1のデバイスを認証するために解答データANS1を送信することと、を含む。
【選択図】
図5
【特許請求の範囲】
【請求項1】
第2のデバイス(DV2)と協働する第1のデバイス(DV1)によって実施される処理方法であって、
a)前記第2のデバイスから、第1のチャレンジデータ(CH1)を含む第1のデータ(DT1)を受信すること(S2)と、
b)第1の暗号化アルゴリズム(penc)による暗号化から得られた暗号化された暗号鍵(DEC)を含む鍵データ(CEC)を得ること(S4)であって、前記鍵データは、前記暗号化された暗号鍵及びマスキング鍵(K1)に基づいて暗号マスキング関数(F1)を実行することによってマスキングされる、得ること(S4)と、
c)前記第2のデバイスから、アンマスキング鍵(K2)を受信すること(S10)と、
d)b)で得られた前記鍵データ及びc)で受信された前記アンマスキング鍵(K2)に基づいて暗号アンマスキング関数(F2)を実行することにより、前記暗号化された暗号鍵(DEC)を決定すること(S12)と、
e)前記暗号化された暗号鍵(DEC)に基づいて、ホワイトボックス実装で第1の復号アルゴリズム(pdec)を実行することによる復号により、復号された暗号鍵(KEC)を決定すること(S14)であって、前記第1の暗号化アルゴリズム(penc)及び前記第1の復号アルゴリズム(pdec)は、逆暗号関数を実行するように構成された関連付けられた暗号アルゴリズムである、決定すること(S14)と、
f)前記復号された暗号鍵(KEC)及び受信された前記第1のチャレンジデータ(CH1)に基づいて、既定の暗号アルゴリズム(ALp)を実行することによる暗号動作により、解答データ(ANS1)を決定すること(S16)と、
g)a)で受信された前記第1のデータ(DT1)に応答して、前記第2のデバイスに前記第1のデバイスを認証させるために前記解答データ(ANS1)を前記第2のデバイスに送信すること(S18)と
を含む処理方法。
【請求項2】
前記第1の暗号化アルゴリズム(penc)及び前記第1の復号アルゴリズム(pdec)は、前記既定の暗号アルゴリズム(ALp)と異なる、請求項1に記載の方法。
【請求項3】
c)前記アンマスキング鍵(K2)を受信することの前に、
h)第2のチャレンジデータ(CH2)を含む第2のデータ(DT2)を前記第2のデバイスに送信すること
をさらに含み、c)で前記第2のデバイスから受信される前記アンマスキング鍵(K2)は、前記第2のチャレンジデータに基づいて演算される、請求項1又は2に記載の方法。
【請求項4】
h)の前に、
i)トークン(TN)を得ることであって、前記トークン(TN)は、
- 前記鍵データ(CEC)と、
- 前記暗号鍵(KEC)が有効である有効期間を示す第1の時間データ(EXP)と、
- 前記有効期間中に使用可能な前記暗号鍵の識別子(ID)と
を含む、得ること
を含み、h)で送信される前記第2のデータ(DT2)は、前記トークンから抽出された前記第1の時間データ(EXP)及び前記識別子(ID)を含む、請求項3に記載の方法。
【請求項5】
j)a)で受信された前記第1のデータ(DT1)に含まれる第2の時間データ(EXPmin)に基づいて、前記第1のデバイスによってアクセス可能な1つ又は複数のトークンの中から、i)で得られた前記トークンを選択すること
をさらに含み、前記第2の時間データは、前記選択されたトークンの前記暗号鍵が有効でなければならない有効期間を示す、請求項4に記載の方法。
【請求項6】
i)で得られた前記トークンは、前記第1の時間データ(EXP)及び前記識別子(ID)とは別個の前記第2のチャレンジデータ(CH2)をさらに含み、
h)で送信される前記第2のデータ(DT2)は、前記トークンから抽出された前記第2のチャレンジデータ(CH2)を含む、請求項4又は5に記載の方法。
【請求項7】
h)で送信される前記第2のデータ(DT2)に含まれる前記第1の時間データ(EXP)及び前記識別子(ID)は、前記第2のチャレンジデータを構成する、請求項4又は5に記載の方法。
【請求項8】
前記トークン(TN)は、ホワイトボックス実装(wb[KRand])に適したフォーマットで符号化された鍵をさらに含み、
e)では、前記復号された暗号鍵(KEC)は、前記暗号化された暗号鍵(DEC)に基づいて、且つ前記トークンから抽出されたホワイトボックス実装(wb[KRand])に適したフォーマットで符号化された前記鍵に基づいて、ホワイトボックス実装で前記第1の復号アルゴリズム(pdec)を実行することによる復号によって決定される、請求項4~7のいずれか一項に記載の方法。
【請求項9】
前記暗号マスキング及びアンマスキング関数(F1、F2)は、それぞれ関連付けられた暗号化及び復号関数である、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記暗号マスキング及びアンマスキング関数(F1、F2)は、対称暗号化関数であり、前記マスキング鍵(K1)及び前記アンマスキング鍵(K2)は、同一である、請求項9に記載の方法。
【請求項11】
前記暗号マスキング及びアンマスキング関数(F1、F2)は、XOR関数である、請求項9又は10に記載の方法。
【請求項12】
g)に続いて、
k)前記第2のデバイスに前記第1のデバイスを認証させることに成功したという検出に応答して、前記第2のデバイスと協働して既定の関数をトリガすること
を含む、請求項1~11のいずれか一項に記載の方法。
【請求項13】
命令を含むコンピュータプログラム(PG1)であって、前記命令は、前記プログラムがコンピュータによって実行されると、請求項1~12のいずれか一項に記載の方法のステップを実行するためのものである、コンピュータプログラム(PG1)。
【請求項14】
第2のデバイス(DV2)と協働することができる第1のデバイス(DV1)であって、
- 前記第2のデバイスから、第1のチャレンジデータ(CH1)を含む第1のデータ(DT1)を受信するように構成された第1の受信モジュール(MD2)と、
- 第1の暗号化アルゴリズム(penc)による暗号化から得られた暗号化された暗号鍵(DEC)を含む鍵データ(CEC)を得るように構成された取得モジュール(MD4)であって、前記鍵データは、前記暗号化された暗号鍵及びマスキング鍵(K1)に基づいて暗号マスキング関数(F1)を実行することによってマスキングされる、取得モジュール(MD4)と、
- 前記第2のデバイスから、アンマスキング鍵(K2)を受信するように構成された第2の受信モジュール(MD6)と、
- 得られた前記鍵データ(CEC)及び受信された前記アンマスキング鍵(K2)に基づいて暗号アンマスキング関数(F2)を実行することにより、前記暗号化された暗号鍵(DEC)を決定するように構成された第1の決定モジュール(MD8)と、
- 前記暗号化された暗号鍵(DEC)に基づいて、ホワイトボックス実装で第1の復号アルゴリズム(pdec)を実行することによる復号により、復号された暗号鍵(KEC)を決定するように構成された第2の決定モジュール(MD10)であって、前記第1の暗号化アルゴリズム(penc)及び前記第1の復号アルゴリズム(pdec)は、逆暗号関数を実行するように構成された関連付けられた暗号アルゴリズムである、第2の決定モジュール(MD10)と、
- 前記復号された暗号鍵(KEC)及び受信された前記第1のチャレンジデータ(CH1)に基づいて、既定の暗号アルゴリズム(ALp)を実行することによる暗号動作により、解答データ(ANS1)を決定するように構成された第3の決定モジュール(MD12)と、
- 受信された前記第1のデータ(DT1)に応答して、前記第2のデバイスに前記第1のデバイスを認証させるために前記解答データ(ANS1)を前記第2のデバイスに送信するように構成された送信モジュールと
を含む第1のデバイス(DV1)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号の分野に関し、具体的には、第2のデバイスに第1のデバイスを認証させるための暗号処理の実施に関する。
【背景技術】
【0002】
コンピュータ、タブレット、チップカード、携帯電話、接続オブジェクトなどのデジタルデバイス(コンピュータデバイス又はデジタル家電としても知られている)は、日常生活に遍在している。これらのデバイスは、多くの場合、セキュリティソリューションを実装して、デバイスへのアクセスを保護し、あらゆる攻撃から機密データを防御する必要がある。
【0003】
一般的なセキュリティソリューションは、そのようなデバイスにセキュアエレメントを埋め込むことを含む。当業者によく知られている「グローバルプラットフォーム」標準化機構によって定義されているように、セキュアエレメントは、信頼できる第三者機関によって設定された規則に従い、アプリケーション及びそれらの関連機密データ(暗号鍵、アルゴリズムなど)を安全にホストするように構成されたハードウェア及びソフトウェアプラットフォームである。セキュアエレメントは、安全な実行環境をアプリケーションに提供する。セキュアエレメントは、様々なハードウェア形態を取ることができ、UICC(ユニバーサル集積回路カード)モジュール、埋め込みセキュアエレメント(又は「埋め込みSE」若しくは「eSIM」)或いはマイクロSDカードが挙げられる。UICCモジュール及びマイクロSDカードは、一般に、取り外し可能である。セキュアエレメントの各形態は、非常に特殊なアプリケーションにおいて使用することが意図され、対象の市場の特定の要件を満たさなければならない。
【0004】
セキュアエレメントは、優れた保護レベルを提供するが、専門家によって供給される非常に特殊な機器及びサービスを必要とするため、その展開は、複雑且つ限定的である。デバイスを防御するためのセキュアエレメントの使用は、実装及び動作をより複雑にし、従って必ずしも望ましいものであるとは限らない。
【0005】
別のソリューションは、いかなるセキュアエレメントも使用することなく、PC、タブレット又はスマートフォンなどのオープンアプライアンスにおいてアプリケーションを実装することを含む。これにより、新しい市場にアクセスし、アプリケーションの展開を簡単にすることができる。オープンデバイスを防御するには、純粋なソフトウェアソリューション(例えば、暗号タイプ)を実装しなければならない。
【0006】
しかし、オープンデバイス(セキュアエレメントを使用しないもの)で実装されるソースコード及びデータは、潜在的なハッカーによってアクセスされ易い点でセキュリティ上の課題が生じる。オープンデバイスは、攻撃者が暗号アルゴリズムのソフトウェア実装への全アクセスを有するという意味で「ホワイトボックス」攻撃にさらされる恐れがある。すなわち、バイナリは、攻撃者に完全に見えており、修正も可能であり、攻撃者は、実行プラットフォームを完全に制御することができる。結果的に、オープンデバイスのアプリケーションのソフトウェア実装を十分に防御する必要がある。
【0007】
オープンデバイスを防御するため、様々な公知のソフトウェアソリューションを使用することができ、その中でも特に「ホワイトボックス」暗号が挙げられる。ホワイトボックス実装での暗号ソリューションは、使用される秘密暗号鍵を保護しながら、暗号アルゴリズムを実装することに基づく。ホワイトボックス暗号は、保護することが望まれるアプリケーションにおいて使用されるあらゆる暗号アルゴリズムに適用することができる。暗号アルゴリズムのホワイトボックス実装は、例えば、使用される秘密鍵を保護するために、関与する関数及びデータの内部の表現を変更することにより、対象のアルゴリズムの実装を修正すること(複雑にすること、マスキングすることなど)を含む。また、ホワイトボックス実装は、例えば、コンパイル時にインスタンス化された秘密(データの形態であるが、コードの形態でもある)及びランダムデータを、前記秘密の推測が難しい合成物に組み込むことも含む。ユーザを認証するため、例として、AES(高度暗号化標準)暗号化アルゴリズムのホワイトボックス実装をアプリケーションにおいて使用することができる。
【0008】
しかし、ホワイトボックス実装でさえ、攻撃者が必要な資源をロールアウトすることを条件として、暗号アルゴリズムが特定の攻撃(統計的攻撃)を受け易い点でセキュリティ上の問題が生じる。そのような攻撃は、具体的には、攻撃者がメモリに基づいてアプリケーションの実行をモニタできる際に可能である。
【0009】
攻撃者がホワイトボックス実装での暗号アルゴリズムの暗号鍵を発見できた場合、対象のアプリケーションの供給業者は、対象の暗号アルゴリズム及び新しい関連秘密をもう一度防御するために、異なる設計の新しいホワイトボックス実装を使用する必要がある。これにより、問題が生じ、なぜなら、所定のアルゴリズムに対して可能なホワイトボックス実装の数は、比較的限られているためである。従って、暗号アルゴリズムのホワイトボックス実装の選択又は修正に関して、供給業者の自由は、非常に限られている。従って、攻撃にさらされている暗号アルゴリズムを防御することは、即座に困難になり得る。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】“White-Box Cryptography and an AES Implementation”(Stanley Chow,Philip A.Eisen,Harold Johnson,and Paul C.van Oorschot;In Kaisa Nyberg and Howard M.Heys,editors;Selected Areas in Cryptography,volume 2595 of Lecture Notes in Computer Science,pages 250-270.Springer,2002;https://eprint.iacr.org/2013/104.pdf)
【発明の概要】
【発明が解決しようとする課題】
【0011】
使用される1つ又は複数の暗号鍵があらゆる攻撃から効果的に保護されるように、暗号アルゴリズムを十分に防御することも望ましい。加えて、所定のアプリケーションを保護するために使用された暗号アルゴリズムへの攻撃を攻撃者が達成できた場合、対象のアプリケーションをできる限り良好に防御できるように、ソフトウェア実装を容易に適応させることができる必要がある。
【0012】
その上、プロトコル又は所定のアプリケーションを保護するために暗号アルゴリズムが使用される際、所定のプロトコル又はアプリケーションに影響を及ぼすことなく(従って対象のプロトコル又はアプリケーションへの影響を最小限に抑えて)、必要に応じて暗号アルゴリズムのソフトウェア実装を適応させ得ることが望ましい。
【課題を解決するための手段】
【0013】
この目的のため、本発明は、第2のデバイスと協働する第1のデバイスによって実施される処理方法であって、
a)第2のデバイスから、第1のチャレンジデータを含む第1のデータを受信することと、
b)第1の暗号化アルゴリズムによる暗号化から得られた暗号化された暗号鍵を含む鍵データを得ることであって、前記鍵データは、暗号化された暗号鍵及びマスキング鍵に基づいて暗号マスキング関数を実行することによってマスキングされる、得ることと、
c)第2のデバイスから、アンマスキング鍵を受信することと、
d)b)で得られた鍵データ及びc)で受信されたアンマスキング鍵に基づいて暗号アンマスキング関数を実行することにより、暗号化された暗号鍵を決定することと、
e)暗号化された暗号鍵に基づいて、ホワイトボックス実装で第1の復号アルゴリズムを実行することによる復号により、復号された暗号鍵を決定することと、
f)復号された暗号鍵及び受信された第1のチャレンジデータに基づいて、既定の暗号アルゴリズムを実行することによる暗号動作により、解答データを決定することと、
g)a)で受信された第1のデータに応答して、第2のデバイスに第1のデバイスを認証させるために解答データを第2のデバイスに送信することと
を含む処理方法に関する。
【0014】
本発明は、有利には、確実且つ柔軟に第2のデバイスに第1のデバイスを認証させることを可能にする。本発明は、具体的には、使用されるソフトウェア実装における自由度を高めた状態であらゆる暗号アルゴリズムを効果的に防御することを可能にする。
【0015】
本発明は、使用される1つ又は複数の暗号鍵があらゆる攻撃から効果的に保護されるように、暗号アルゴリズムを防御することを可能にする。加えて、所定のアプリケーションを保護するために使用された暗号アルゴリズムへの攻撃に攻撃者が成功した場合、本発明を使用して、対象のアプリケーションをできる限り良好に防御できるように、ソフトウェア実装を容易に適応させることができる。
【0016】
その上、所定のプロトコル又はアプリケーションを保護するために暗号アルゴリズムが使用される際、本発明は、所定のプロトコル又はアプリケーションに影響を及ぼすことなく(従って対象のプロトコル又はアプリケーションへの影響を最小限に抑えて)、必要に応じて暗号アルゴリズムのソフトウェア実装を適応させることができる。
【0017】
特定の実施形態によれば、第1の暗号化アルゴリズム及び第1の復号アルゴリズムは、逆暗号関数を実行するように構成された関連付けられた暗号アルゴリズムである。
【0018】
特定の実施形態によれば、第1の暗号化及び復号アルゴリズムは、既定の暗号アルゴリズムと異なる。
【0019】
特定の実施形態によれば、方法は、c)アンマスキング鍵を受信することの前に、
h)第2のチャレンジデータを含む第2のデータを第2のデバイスに送信すること
をさらに含み、c)で第2のデバイスから受信されるアンマスキング鍵は、第2のチャレンジデータに基づいて演算される。
【0020】
特定の実施形態によれば、方法は、h)の前に、
i)トークンを得ることであって、トークンは、
- 鍵データと、
- 暗号鍵が有効である有効期間を示す第1の時間データと、
- 前記有効期間中に使用可能な前記暗号鍵の識別子と
を含む、得ること
を含み、h)で送信される第2のデータは、トークンから抽出された第1の時間データ及び識別子を含む。
【0021】
特定の実施形態によれば、方法は、
j)a)で受信された第1のデータに含まれる第2の時間データに基づいて、第1のデバイスによってアクセス可能な1つ又は複数のトークンの中から、i)で得られたトークンを選択すること
をさらに含み、前記第2の時間データは、選択されたトークンの暗号鍵が有効でなければならない有効期間を示す。
【0022】
特定の実施形態によれば、i)で得られたトークンは、第1の時間データ及び識別子とは別個の第2のチャレンジデータをさらに含み、
h)で送信される第2のデータは、トークンから抽出された第2のチャレンジデータを含む。
【0023】
特定の実施形態によれば、h)で送信される第2のデータに含まれる第1の時間データ及び識別子は、第2のチャレンジデータを構成する。
【0024】
特定の実施形態によれば、トークンは、ホワイトボックス実装に適したフォーマットで符号化された鍵をさらに含み、
e)では、復号された暗号鍵は、暗号化された暗号鍵に基づいて、且つトークンから抽出されたホワイトボックス実装に適したフォーマットで符号化された鍵に基づいて、ホワイトボックス実装で第1の復号アルゴリズムを実行することによる復号によって決定される。
【0025】
特定の実施形態によれば、暗号マスキング及びアンマスキング関数は、それぞれ関連付けられた暗号化及び復号関数である。
【0026】
特定の実施形態によれば、暗号マスキング及びアンマスキング関数は、対称暗号化関数であり、マスキング鍵及びアンマスキング鍵は、同一である。
【0027】
特定の実施形態によれば、暗号マスキング及びアンマスキング関数は、XOR関数である。
【0028】
特定の実施形態によれば、方法は、g)に続いて、
k)第2のデバイスに第1のデバイスを認証させることに成功したという検出に応答して、第2のデバイスと協働して既定の関数をトリガすること
を含む。
【0029】
特定の実施形態では、処理方法の異なるステップは、コンピュータプログラム命令によって決定される。
【0030】
結果的に、本発明は、情報媒体(又は記録媒体)上のコンピュータプログラムにも関し、このプログラムは、デバイス(いわゆる「第1のデバイス」)又はより一般的にはコンピュータにおいて実装することができ、このプログラムは、本明細書で定義されるような処理方法のステップの実施に適した命令を含む。
【0031】
このプログラムは、いかなるプログラミング言語も使用することができ、ソースコード、オブジェクトコード若しくはソースコードとオブジェクトコードとの間の中間コード(部分的にコンパイルされた形態など)の形態又は他の任意の望ましい形態であり得る。
【0032】
また、本発明は、情報媒体(又は記録媒体)にも関し、情報媒体は、コンピュータによって読み取ることができ、本明細書で定義されるようなコンピュータプログラムの命令を含む。
【0033】
情報媒体は、プログラムを格納することができるいかなる実体又はデバイスでもあり得る。例えば、媒体は、書き換え可能な不揮発性メモリ若しくはROMメモリなどの格納手段(例えば、CD-ROM若しくはマイクロ電子回路ROM)又は磁気記録手段(例えば、フロッピーディスク若しくはハードディスク)を含み得る。
【0034】
その上、情報媒体は、電気又は光信号などの伝送可能媒体でもあり得、電気若しくは光ケーブルを介して、無線機によって又は他の手段によって搬送することができる。本発明によるプログラムは、具体的には、インターネットタイプのネットワーク上でダウンロードすることができる。
【0035】
代わりに、情報媒体は、プログラムが組み込まれた集積回路であり得、回路は、対象の方法の実行に適しているか又はその実行時の使用に適している。
【0036】
また、本発明は、本明細書で定義されるような処理方法を実施することができるデバイス(いわゆる第1のデバイス)にも関する。具体的には、本発明は、第2のデバイスと協働することができる第1のデバイスであって、
- 第2のデバイスから、第1のチャレンジデータを含む第1のデータを受信するように構成された第1の受信モジュールと、
- 第1の暗号化アルゴリズムによる暗号化から得られた暗号化された暗号鍵を含む鍵データを得るように構成された取得モジュールであって、前記鍵データは、暗号化された暗号鍵及びマスキング鍵に基づいて暗号マスキング関数を実行することによってマスキングされる、取得モジュールと、
- 第2のデバイスから、アンマスキング鍵を受信するように構成された第2の受信モジュールと、
- 得られた鍵データ及び受信されたアンマスキング鍵に基づいて暗号アンマスキング関数を実行することにより、暗号化された暗号鍵を決定するように構成された第1の決定モジュールと、
- 暗号化された暗号鍵に基づいて、ホワイトボックス実装で第1の復号アルゴリズムを実行することによる復号により、復号された暗号鍵を決定するように構成された第2の決定モジュールと、
- 復号された暗号鍵に基づいて、且つ受信された第1のチャレンジデータに基づいて、既定の暗号アルゴリズムを実行することによる暗号動作により、解答データを決定するように構成された第3の決定モジュールと、
- 受信された第1のデータに応答して、第2のデバイスに第1のデバイスを認証させるために解答データを第2のデバイスに送信するように構成された送信モジュールと
を含む第1のデバイスを提供する。
【0037】
上記で言及した異なる実施形態(及び以下で説明されるもの)は、本発明の処理方法及び関連する利点との関係において、本発明の第1のデバイスに同様の方法で適用できることに留意されたい。
【0038】
処理方法の各ステップについて、本発明の第1のデバイスは、前記ステップを実行するように構成された対応するモジュールを含み得る。
【0039】
この観点では、本明細書の「モジュール」という用語は、ソフトウェアコンポーネント、ハードウェアコンポーネント又はハードウェアコンポーネントとソフトウェアコンポーネントとのアセンブリと同様であり得る。
【0040】
ソフトウェアコンポーネントは、1つ若しくは複数のコンピュータプログラム、プログラムの1つ若しくは複数のサブプログラム又はより一般的には対象のモジュールに対して以下で説明されるものに従って機能若しくは機能セットを実施することができるプログラム若しくはソフトウェアの任意の要素と均等である。そのようなソフトウェアコンポーネントは、物理的実体(端末、サーバ、ゲートウェイ、ルータなど)のデータプロセッサによって実行することができ、この物理的実体のハードウェア資源(メモリ、記録媒体、通信バス、電子入力/出力カード、ユーザインタフェースなど)にアクセスすることができる。
【0041】
同様に、ハードウェアコンポーネントは、対象のモジュールに対して以下で説明されるように機能又は機能セットを実施することができるハードウェアアセンブリの任意の要素と均等である。ハードウェアコンポーネントは、プログラム可能なハードウェアコンポーネント又はソフトウェアを実行するための内蔵プロセッサ(例えば、集積回路、チップカード、メモリカード、ファームウェアを実行するための電子カードなど)を有するハードウェアコンポーネントであり得る。
【0042】
本発明の他の特徴及び利点は、添付の図面を参照することにより、以下で提供される説明から明らかになるであろう。添付の図面は、限定することなく、その例示的な実施形態を示す。
【図面の簡単な説明】
【0043】
【
図1】第1の例による、第2のデバイスに第1のデバイスを認証させるための方法を概略的に表す。
【
図2】特定の実施形態による、第1のデバイスが第2のデバイス及びリモートサーバと協働する環境を概略的に表す。
【
図3】本発明の特定の実施形態による第1のデバイスの構造を概略的に表す。
【
図4】本発明の特定の実施形態による第2のデバイスの構造を概略的に表す。
【
図5】本発明の特定の実施形態による、第1のデバイスによって実装されるモジュールを概略的に表す。
【
図6】本発明の特定の実施形態による処理方法のステップを図の形式で表す。
【
図7】本発明の特定の実施形態による処理方法のステップを図の形式で表す。
【
図8】
図6に示される処理方法の変形形態を図の形式で表す。
【発明を実施するための形態】
【0044】
既に示した通り、本明細書は、第1のデバイスの認証に関し、より一般的には、例えば任意のサービス又は任意の機能へのアクセスを目的として、第2のデバイスにこの第1のデバイスのユーザを認証させることに関する。
【0045】
以下で説明される実施形態は、車両(例えば、車など)のアクセス制御のカテゴリ内に入る。従って、第1のデバイスは、ユーザにより、車両へのアクセスを制御する別のデバイスに自らを認証させるために使用される。しかし、本発明は、より一般的には、暗号処理に適用され、いかなる第1のデバイスも、それ自体を別のいわゆる第2のデバイスに認証させ得ることが理解されるであろう。例として、本発明の第2のデバイスは、ドアの制御又は車両の始動/停止制御など、車両のあらゆる機能性を制御するように構成される。第2のデバイスは、同様に、家のドアの制御、セキュリティゲートの制御、交通機関へのアクセスの制御又はインターネットサービス、ゲームコンソールなどへのアクセスの制御を行うことができる。
【0046】
第1及び第2のデバイスの本質は、構想される1つ又は複数のアプリケーションに応じて異なり得る。第1のデバイスは、例えば、端末(携帯電話、タブレット、コンピュータなど)、USBキー又は均等物であり得る。
【0047】
本発明は、具体的には、認証のために使用される暗号鍵を保護するためのホワイトボックス実装での暗号アルゴリズムにより、第2のデバイスに第1のデバイスを認証させる上でのセキュリティの強化を提供する。この実現のため、第1のデバイスは、それ自体を第2のデバイスに認証させるために第2のデバイスと協働する。処理方法(認証方法)中、第1のデバイスは、第1のデバイスと第2のデバイスとの間の以前の対話中に第2のデバイスによって供給されたアンマスキング鍵を使用して、第1のデバイスが所有する暗号化された暗号鍵のアンマスキングを実行する。次いで、第1のデバイスは、ホワイトボックス実装で復号アルゴリズムを実行することにより、こうして得られた暗号化された暗号鍵を復号する。次いで、第1のデバイスは、この復号された暗号鍵及び第2のデバイスによって事前に供給されているチャレンジデータに基づいて、既定の暗号アルゴリズムを実行することにより、解答を生成することができる。第1のチャレンジデータに応答して、この解答を第2のデバイスに送信することにより、第1のデバイスは、それ自体を第2のデバイスに認証させることができ、第2のデバイスは、解答の有効性を検証し、その検証から、認証に成功するか又は失敗するかを推測することができる。
【0048】
本発明の他の態様及び利点は、上記で言及した図面を参照することにより、以下で説明される例示的な実施形態から明らかになるであろう。
【0049】
既に示した通り、ホワイトボックス暗号は、所定の暗号アルゴリズムの機能性を実装することを含む周知の技法であるが、安全な実装(いわゆるホワイトボックス実装)を使用するために、このアルゴリズムの実装を適応させることによって行われる。読者は、例えば、参考文献:(非特許文献1)を参照されたい。
【0050】
暗号アルゴリズムの公式仕様書(規格、基準などの)は、これらのアルゴリズムの演算で実施される数学関数の記述を供給する(例えば、AESアルゴリズムは、米国標準技術局(NIST)によって標準化されている)。そのような暗号アルゴリズムのホワイトボックス実装は、例えば、あらゆる攻撃から秘密を保護するために実装のコードで秘密を隠すようにこれらのアルゴリズムで実施される関数又はデータの内部の表現を変更することにより、これらの記述を修正することを目的とする。例えば、テーブルを使用して、秘密鍵(データの形態及び/又はコードの形態のもの)とランダムデータとの両方を、秘密鍵の推測が難しい関数と組み合わせることができる。所定の暗号アルゴリズムのホワイトボックス実装の一般的な原理は、当業者によく知られているため、本明細書でさらに詳細に説明することはしない。
【0051】
既に示した通り、ホワイトボックス実装での暗号アルゴリズムの現行の技法は、セキュリティの観点から利点を提供するが、プロトコル又はアプリケーションを効果的に保護するというそれらの能力における制約及び制限も必要とすることを本出願人は認めている。これは、具体的には、ホワイトボックス実装での暗号アルゴリズムが、一般に、保護することが望まれるプロトコル又はアプリケーションによって使用されるという事実に起因する。
【0052】
図1は、ホワイトボックス実装でのAES(高度暗号化標準)に基づくMAC(メッセージ認証コード)アルゴリズムが、第1のデバイス2(この例では端末)により、それ自体を第2のデバイス4(この例では車両)に認証させるために使用される第1のソリューションを概略的に表す。
【0053】
図に示されるように、認証方法中、端末2と車両4とが互いに対話して、端末2がそれ自体を車両4に認証させることができるようにすると仮定される。車両4は、無作為に選択されたチャレンジデータCH0を端末2に送信する(E2)。次いで、端末2は、受信したチャレンジデータCH0に基づいて解答RP0を演算する(E4)。この実現のため、端末2は、AESベースのMACアルゴリズム又はより正確にはこのアルゴリズムの特定のホワイトボックス実装(wb[aes/KEC]で示される)をそのメモリに有する。このホワイトボックス実装は、埋め込まれた暗号鍵KECを有し、この暗号鍵KECは、実装のコードでマスキングされている。従って、端末2は、車両4によって供給されたチャレンジデータCH0に基づいて、ホワイトボックス実装でAESベースのMACアルゴリズムを実行する(E4)(RP0=wb[aes/KEC](CH0)として表される)。決定された時点で、端末2は、解答RP0を車両4に送信し(E6)、車両4は、受信した解答RP0の有効性を検証することができる。この実現のため、車両は、チャレンジデータCH0及び車両が所有する鍵KECに基づいて、AESベースのMACアルゴリズムを実行することにより、それ自体の解答RP0aを演算する(E8)。次いで、車両は、受信した解答RP0と、その理論的な解答RP0aとを比較し(E10)、RP0とRP0aが一致した場合、端末2の認証に成功する。
【0054】
図1に示される例では、ホワイトボックス実装技法は、端末2を認証させるために車両4によって使用されるAESベースのMACアルゴリズムに直接適用されるが、これにより問題が生じる。既に述べた通り、同一の暗号アルゴリズム(すなわちこの例ではAESベースのMACアルゴリズム)に対する可能なホワイトボックス実装は、限られた数のみがある。攻撃者が暗号鍵K
ECを決定できた場合又は端末2においていかなる理由であれAESベースのMACアルゴリズムの実装のセキュリティが危殆化した場合、優れたセキュリティレベルを維持しながら、端末2でのこの同じAESベースのMACアルゴリズムの新しいホワイトボックス実装を実施することは、困難であることが証明され得る。この例では、車両4の構成により、車両4、従って端末2でのAESベースのMACアルゴリズムの使用が課されるという事実、及びこの例では、ホワイトボックス実装技法が端末2内でこのAESベースのMACアルゴリズムに適用されるという事実により、プログラマには、限られた自由のみがある。その上、端末2を認証するために車両4によって使用されるアルゴリズムを修正することが可能であるとしても、これは、一般に、既に現場に展開されたデバイスの構成の徹底的な修正を必要とするために望ましくない。
【0055】
本発明は、原理の変更を提供し、現在ではもはや第1のデバイスを認証するために第2のデバイスによって課されるアルゴリズムではなく、認証プロセスを防御するために第1のデバイスによって使用される(ただし、認証方法中に第2のデバイスによって使用されない)別の復号アルゴリズムにホワイトボックス実装技法を適用することによって行われる。従って、第2のデバイスにいかなる影響も及ぼすことなく、具体的には第2のデバイスの構成の徹底的ないかなる修正も必要とすることなく、認証プロセスにわたって優れたセキュリティレベルを維持しながら、第1のデバイスにおいてこの他の復号アルゴリズムのホワイトボックス実装を適応させて防御することが可能である。第1のデバイス側でのホワイトボックス実装のいかなる適応も、第2のデバイスとは無関係であり、それにより攻撃から認証方法をより良好に防御する上でさらなる柔軟性が提供される。
【0056】
ここで、
図2~8を参照して、特定の実施形態について説明する。別段の指定がない限り、いくつかの図にわたる共有要素又は同様の要素は、同じ参照符号を有し、同一又は同様の特徴を有するものであり、簡単にするため、再びこれらの共有要素を一般的に説明することはしない。
【0057】
図2は、第1のデバイスDV1が第2のデバイスDV2と協働する環境Eを示す。第1のデバイスDV1及び第2のデバイスDV2は、共にシステムSY1を形成する。
【0058】
この例では、第1のデバイスDV1は、例えば、携帯電話(スマートフォン)又はタブレットなどの端末である。第2のデバイスDV2は、車両8に含まれるか又は車両8と結合された家電である。変形形態では、デバイスDV2は、車両8自体であり得る。
【0059】
この例では、ユーザURは、端末DV1を使用して、自らを車両8、より具体的には車両8へのアクセスを制御する第2のデバイスDV2に認証させる。
【0060】
環境Eは、任意選択により、少なくとも第1のデバイスDV1及び第2のデバイスDV2(又はこれらの少なくとも1つ)との通信が可能なリモートサーバSV1を含む。サーバSV1は、例えば、トークンTN(データ群とも呼ばれる)の形態のデータを第1のデバイスDV1に送信するか、又はチャレンジデータCH2を第2のデバイスDV2に送信することができるが、本発明の実装形態は、そのようなサーバSV1がなくとも可能である。
【0061】
図3は、特定の実施形態による、
図2に示される第1のデバイスDV1の構造を示す。この例では、第1のデバイスDV1は、プロセッサ10、揮発性メモリ12、不揮発性メモリ14、不揮発性メモリ16及び通信インタフェースINT1を含む。
【0062】
メモリ14は、書き換え可能な不揮発性メモリ又は読み取り専用メモリ(ROM)であり、このメモリは、第1のデバイスDV1によって読み取り可能な特定の実施形態による記録媒体(又は情報媒体)を構成し、このメモリ上には、特定の実施形態によるコンピュータプログラムPG1が登録されている。このコンピュータプログラムPG1は、後に説明されるように、特定の実施形態による処理方法のステップを実行するための命令を含む。
【0063】
メモリ16は、既定の暗号アルゴリズムALpと共にトークンTN、復号アルゴリズムpdecのホワイトボックス実装(wb[pdec]で示される)を格納することができる書き換え可能な不揮発性メモリである。しかし、メモリ16のコンテンツは、考慮される本発明の実装形態に応じて異なり得る。この例では、メモリ16は、TN1~TN20で示されるトークンTNセットを格納し、それらの各々は、鍵データCEC、チャレンジデータCH2並びにデータEXP及びIDを含む。後に説明されるように、トークンTNのコンテンツ及びトークンTNの数は、事例に応じて異なり得る。例として、実装形態は、そのようなトークンTNがなくとも又はこれらのトークンTN内のデータEXP及びIDがなくとも可能である。
【0064】
後に説明されるように、鍵データCECは、暗号化アルゴリズムpencの実行による暗号化から得られた暗号化された暗号鍵DECを含む。後にさらに明らかになるように、この暗号化アルゴリズムpencは、復号アルゴリズムpdecの逆に対応する(換言すれば、これらの2つのアルゴリズムは、互いに合致する)ものであり、復号アルゴリズムpdecは、暗号化アルゴリズムpencによって実行された暗号化を無効化又は復号することができる。
【0065】
従って、暗号化された暗号鍵DECは、暗号化された形態の暗号鍵KECと均等である(DEC=enc(KEC))。ホワイトボックス実装での復号アルゴリズムpdecは、いかなる復号アルゴリズム(専有アルゴリズム又はAESアルゴリズムのすべて若しくは一部など)でもあり得る。後に説明されるように、本発明の態様は、この例では、ホワイトボックス実装技法がこの復号アルゴリズムpdecに適用されるという事実に基づく。
【0066】
鍵データCEC(従ってCECに含まれる暗号化された暗号鍵DEC)は、暗号化された暗号鍵DEC及びマスキング鍵K1に基づいて暗号マスキング関数F1を実行することによってさらにマスキングされる。換言すれば、鍵データCECは、暗号化された暗号鍵DEC及びマスキング鍵K1を入力として取り入れて、暗号マスキング関数F1を実行することから得られる。従って、鍵データCECに含まれる暗号化された暗号鍵DECは、マスキング関数F1の実行によってマスキングされる。従って、鍵データCECは、暗号化された形態(pencによって)の暗号鍵KECにマスキングを行ったもの(F1によって)と均等である。
【0067】
後に示されるように、鍵データCECを生成するために関数F1によってマスキングを実行するのは、第1のデバイスDV1ではない。しかし、第1のデバイスDV1は、鍵データCECを得るか又は受信して、それらをメモリ16に格納することができる。
【0068】
メモリ16に含まれる異なる要素の本質及び使用については、後にさらに詳細に説明する。
【0069】
通信インタフェースINT1は、有線又は無線タイプの適切な通信リンクを介して(例えば、Bluetooth、Wi-Fi、NFC又は無線通信タイプ(例えば、GSM若しくはLTEなど)を介して)第1のデバイスDV1が第2のデバイスDV2と通信できるようにする。
【0070】
プロセッサ10は、揮発性メモリ12も使用し、本発明の処理方法の実施中にコンピュータプログラムPG1を実行することを含めて、第1のデバイスDV1の動作に必要な異なる動作又は機能を実行する。
【0071】
図4は、特定の実施形態による、
図2に示される第2のデバイスDV2の構造を示す。この例では、第2のデバイスDV2は、プロセッサ20、揮発性メモリ22、不揮発性メモリ24、不揮発性メモリ26及び通信インタフェースINT2を含む。
【0072】
メモリ24は、書き換え可能な不揮発性メモリ又は読み取り専用メモリ(ROM)であり、このメモリは、第2のデバイスDV2によって読み取り可能な特定の実施形態による記録媒体(又は情報媒体)を構成し、このメモリ上には、特定の実施形態によるコンピュータプログラムPG2が記録されている。このコンピュータプログラムPG2は、後に説明されるように、特定の実施形態による処理方法のステップを実行するための命令を含む。
【0073】
メモリ26は、書き換え可能な不揮発性メモリであり、上記で言及した既定の暗号アルゴリズムALp、暗号化アルゴリズムAL1、1つ又は複数の鍵KECを導き出すことができるマスター鍵MK、鍵TK並びにデータEXP及びIDを格納することができる。しかし、メモリ26のコンテンツは、考慮される本発明の実装形態に応じて異なり得る。例として、実装形態は、EXP、ID、TK及びMKの少なくとも1つがなくとも(又は全くなくとも)可能である。
【0074】
図4に示されるように、メモリ26は、時間データEXPmin(以下で第2の時間データと呼ばれる)を格納することもできるが、本発明の実装形態は、この時間データにおいて可能である。
【0075】
メモリ26に含まれる異なる要素の本質及び使用については、後に特定の例においてさらに詳細に説明する。
【0076】
従って、ここで考慮される例では、第2のデバイスDV2に第1のデバイスDV1を認証させるために、認証方法中、第1及び第2のデバイスDV1、DV2により、既定の暗号アルゴリズムALpが使用される。この暗号アルゴリズムALpは、当然ながら、第1及び第2のデバイスDV1、DV2が同じ暗号アルゴリズムALpを使用する限り、暗号化(又はより一般的には暗号動作)を実行するために使用されるいかなるアルゴリズムでもあり得る。この暗号アルゴリズムALpは、例えば、AES暗号化アルゴリズム、署名演算アルゴリズム又はMAC(メッセージ認証コード)識別子演算アルゴリズム(例えば、AESに基づくもの)であり得る。第2のデバイスDV2の構成の徹底的な修正は、望ましくないため、第1のデバイスDV1で実装される暗号アルゴリズムALpの本質は、第2のデバイスDV2の構成によって与えられる。
【0077】
その上、通信インタフェースINT2は、DV1とDV2との間の通信リンクを確立するために、第1のデバイスDV1の通信インタフェースINT1と協働するように構成される(逆も同様)。既に示した通り、このリンクは、様々な種類(有線又は無線)のものであり得る。
【0078】
プロセッサ20は、揮発性メモリ22をさらに使用し、本発明の処理方法の実施中にコンピュータプログラムPG2を実行することを含めて、第2のデバイスDV2の動作に必要な異なる動作又は機能を実行する。
【0079】
図2~4に示される第1及び第2のデバイスDV1、DV2は、単なる例示的な実施形態を構成し、他の実装形態は、本発明の範囲内で可能であることに留意されたい。当業者によって理解されるように、第1及び第2のデバイスDV1、DV2のある要素は、本明細書では、本発明を簡単に理解できるようにするためにのみ説明され、これらの要素が必ずしも本発明を実行するために必要であるとは限らない。
【0080】
特定の実施形態に従って
図5に示されるように、コンピュータプログラムPG1によって駆動される第1のデバイスDV1のプロセッサ10は、ここで、ある数のモジュールを実装し、すなわち第1の受信モジュールMD2、取得モジュールMD4、第2の受信モジュールMD6、第1の決定モジュールMD8、第2の決定モジュールMD10、第3の決定モジュールMD12及び送信モジュールMD14を実装し、また適用可能な場合、第2の取得モジュールMD16及び/又は第2の送信モジュールMD18も実装する。しかし、本発明の実装形態は、具体的には、これらのモジュールMD16及びMD18がなくとも可能である。
【0081】
より正確には、第1の受信モジュールMD2は、第2のデバイスDV2から、第1のチャレンジデータCH1を含む第1のデータDT1を受信するように構成される。
【0082】
取得モジュールMD4は、具体的には
図3を参照して上記で既に説明した通り、鍵データC
ECを得るように構成される。従って、鍵データC
ECは、D
ECで示される暗号化された暗号鍵(暗号アルゴリズムpencによって事前に暗号化されているもの)を含み、鍵データC
ECは、それ自体、暗号化された暗号鍵D
EC及びマスキング鍵K1に基づいて暗号マスキング関数F1を事前に実行することによってマスキングされている。
【0083】
従って、既に示した通り、暗号化された暗号鍵DECは、暗号鍵KECの暗号化されたバージョンであり、このバージョンは、暗号アルゴリズムpencによって暗号鍵KECを暗号化することによって得られる。その上、鍵データCECに含まれる暗号化された暗号鍵DECは、それ自体、マスキング関数F1を実行することによってマスキングされている。
【0084】
取得モジュールMD4が鍵データC
ECを回収する方法は、後に説明されるように、事例に応じて異なり得る。鍵データC
ECは、例えば、外部から(例えば、サーバSV1(
図2)から)事前に受信することができる。サーバSV1は、例えば、これらの鍵データC
ECを生成するように構成することができる。
【0085】
第2の受信モジュールMD6は、第2のデバイスDV2から、アンマスキング鍵K2を受信するように構成される。このアンマスキング鍵K2は、以下で示されるように、暗号アンマスキング関数F2の入力として使用できるように構成される。
【0086】
第1の決定モジュールMD8は、取得モジュールMD4によって得られた鍵データCECに基づいて、且つ第2の受信モジュールMD6によって受信されたアンマスキング鍵K2に基づいて、暗号アンマスキング関数F2を実行することにより、暗号化された暗号鍵DEC(すなわち鍵KECの暗号化されたバージョンであるが、マスキングされていないもの)を決定するように構成される。アンマスキング関数F2は、鍵データCECを生成するために関数F1によって以前に実行されたマスキングを無効化するように構成される。換言すれば、第1の決定モジュールMD8は、鍵データCECを生成するために使用されたマスキング関数F1の逆暗号関数であるアンマスキング関数F2を使用して、鍵データCECのアンマスキングを実行する。後に言及するように、互いに逆の関係である限り、様々な暗号関数F1、F2を構想することができる。
【0087】
第2の決定モジュールMD10は、第1の決定モジュールMD8によって決定された暗号化された暗号鍵DECに基づいて、ホワイトボックス実装(すなわちホワイトボックス実装wb[pdec])で復号アルゴリズムpdecを実行することによる復号により、復号された暗号鍵KECを決定するように構成される。
【0088】
第3の決定モジュールMD12は、第2の決定モジュールMD10によって決定された復号された暗号鍵KECに基づいて、且つ第1の受信モジュールMD2によって受信された第1のチャレンジデータCH1に基づいて、上記で言及したような既定の暗号アルゴリズムALpを実行することによる暗号動作により、解答データANS1を決定するように構成される。以下で特定の例において説明されるように、この暗号動作は、暗号化又は他のタイプの暗号動作(署名演算、MAC演算など)であり得る。
【0089】
送信モジュールMD14は、第2のデバイスDV2に第1のデバイスDV1を認証させるために、第1の受信モジュールMD2によって受信された第1のデータDT1への返信として、第3の決定モジュールMD12によって決定された解答データANS1を第2のデバイスDV2に送信するように構成される。
【0090】
既に示した通り、第1のデバイスDV1は、適用可能な場合、鍵データCECを含む少なくとも1つのトークンTNを得るように構成された第2の取得モジュールMD16も含み得る。次いで、取得モジュールMD4は、トークンTNから鍵データCECを抽出するように構成される。特定の実施形態によれば、トークンTNは、チャレンジデータCH2又はデータEXP及びIDなどの様々な他のデータを含み得、その本質及び使用については、後に説明する。
【0091】
既に示した通り、第1のデバイスDV1は、適用可能な場合、第2のチャレンジデータCH2を含む第2のデータDT2を第2のデバイスDV2に送信するように構成された第2の送信モジュールMD18も含み得る(第2のチャレンジデータCH2は、例えば、適用可能な場合に第2の取得モジュールMD16によって得られたトークンTNから抽出される)。
【0092】
第1のデバイスDV1のモジュールMD2~MD18の構成及び動作は、
図6~8を参照することにより、本明細書で説明される例示的な実施形態においてより詳細に見えるであろう。
図5に示されるようなモジュールMD2~MD18は、限定することなく、本発明の単なる例示的な実施形態を示すことに留意されたい。
【0093】
一般に、本発明の処理方法の各ステップについて、本発明の第1のデバイスは、前記ステップを実行するように構成された対応するモジュールを含み得る。
【0094】
ここで、
図6を参照して、特定の実施形態について説明する。より正確には、
図2~5を参照して以前に説明した第1のデバイスDV1(以下で「端末」と呼ばれる)と第2のデバイスDV2とは、具体的には第1のデバイスDV1がそれ自体を第2のデバイスDV2に認証させることができるようにするために互いに協働する。この実現のため、端末DV1は、第2のデバイスDV2と協働して、コンピュータプログラムPG1を実行することにより、処理方法(又は認証方法)を実施する。同様に、第2のデバイスDV2は、端末DV1を認証するために、コンピュータプログラムPG2を実行する。
【0095】
受信ステップS2中、端末DV1は、第2のデバイスDV2から、CH1で示される第1のチャレンジデータを含む第1のデータDT1を受信する。第2のデバイスDV2は、例えば、方法をより安全にするために無作為に、S2で端末DV1に送信するチャレンジデータCH1を選択する。
【0096】
その上、端末DV1は、暗号化された暗号鍵DECを含む鍵データCECを得る(S4)が、前記鍵データCEC(従って鍵データCECに含まれる暗号化された鍵DEC)は、暗号化された暗号鍵DEC及びマスキング鍵K1に基づいて暗号マスキング関数F1を実行することによってマスキングされている。
【0097】
より具体的には、暗号化された暗号鍵DECは、暗号アルゴリズムpencによる暗号化から得られる。換言すれば、暗号化された暗号鍵DECは、暗号鍵KECの暗号化されたバージョンであり、このバージョンは、暗号アルゴリズムpencによって暗号鍵KECを暗号化することによって得られる。
【0098】
その上、鍵データCECに含まれる暗号化された暗号鍵DECは、それ自体、暗号マスキング関数F1を実行することによってマスキングされている。従って、鍵データCECは、暗号化された形態(pencによって)の暗号鍵KECにマスキングを行ったもの(F1によって)と均等である。
【0099】
端末DV1が鍵データC
ECを回収する方法は、後に説明されるように、事例に応じて異なり得る。鍵データC
ECは、例えば、外部から(例えば、サーバSV1(
図2)から)事前に受信することができる。特定の例によれば、鍵データC
ECを生成するのは、サーバSV1であり、暗号化アルゴリズムpencを実行することによって暗号鍵K
ECを暗号化して暗号化された暗号鍵D
ECを得て、次いでマスキング鍵K1に基づいて暗号マスキング関数F1を実行することにより、こうして得られた暗号化された暗号鍵D
ECをマスキングすることによって行われる。
【0100】
事前に、端末DV1は、そのメモリ16(
図3)に受信した鍵データC
ECを記録し、取得ステップS4でそのメモリ16に問い合わせてこれらのデータを回収することができる。
【0101】
送信ステップS6中、端末DV1は、CH2で示される第2のチャレンジデータを含む第2のデータDT2を第2のデバイスDV2に送信する。端末DV1が第2のデバイスDV2に送信するために第2のチャレンジデータCH2を事前に決定する方法は、事例に応じて異なり得る。端末DV1は、例えば、鍵データCECと関連付けて第2のチャレンジデータCH2を事前に受信して、そのメモリ16に記録することができる。以下で示されるように、端末DV1が第2のデバイスDV2にいかなる第2のデータDT2も送信しない実装形態が可能である。
【0102】
この例では、第2のデバイスDV2は、次いで、S6で受信された第2のチャレンジデータCH2に基づいて、アンマスキング鍵K2を決定する(S8)。より正確には、第2のデバイスDV2は、第2のチャレンジデータCH2に基づいて、且つ適用可能な場合には第2のデバイスDV2のメモリ26に格納された鍵TKにも基づいて(ただし、この鍵TKの使用は、強いられない)暗号化アルゴリズムAL1を実行することにより、このアンマスキング鍵K2を演算する。換言すれば、暗号化アルゴリズムAL1は、第2のチャレンジデータCH2を入力として取り入れ、且つ適用可能な場合には鍵TKも入力として取り入れて、アンマスキング鍵K2を出力として生成する。このアンマスキング鍵K2は、このマスキングされた形態で鍵データCECに含まれる暗号化された暗号鍵DECを端末DV1がアンマスキングできるようにすることを目的として解答を構成する。
【0103】
S8では、アンマスキング鍵K2を生成するために、第2のデバイスDV2により、いかなる暗号化アルゴリズムAL1も使用することができるが、その暗号化アルゴリズムAL1が、端末DV1が、以下で説明されるようなアンマスキングS12を実行することができるような必要なアンマスキング鍵K2を生成できることを条件とすることに留意されたい。具体的には、暗号化アルゴリズムAL1は、端末DV1を認証するために端末DV1及び第2のデバイスDV2によって使用される既定の暗号アルゴリズムALpと異なり得る。暗号化アルゴリズムAL1は、AESアルゴリズム又は他の任意の適切な暗号化アルゴリズムであり得る。
【0104】
従って、送信ステップS10中、第2のデバイスDV2は、S6で受信した第2のデータDT2に応答して、アンマスキング鍵K2を端末DV1に送信する。対話中に端末DV1によって事前に供給されたチャレンジデータCH2に基づいてのみ、第2のデバイスDV2は、アンマスキング鍵K2を生成することができるため、S6において端末DV1から第2のデバイスDV2に第2のチャレンジデータCH2を送信することにより、処理方法をさらに防御することができる。しかし、アンマスキング鍵K2を生成するか又は得るために第2のデバイスDV2が端末DV1の第2のチャレンジデータCH2を必要としない他の実装形態も可能である。
【0105】
変形形態として、端末DV1は、送信ステップS6中の第2のデータDT2の送信を行わず、第2のデバイスDV2は、S8において、適切な任意の方法でアンマスキング鍵K2を決定する(この鍵K2は、具体的には、外部から受信することができる)。次いで、第2のデバイスDV2は、端末DV1からのチャレンジデータCH2に対する解答を出すことなく、S10において、アンマスキング鍵K2を端末DV1に送信する。
【0106】
特定の例によれば、第2のデバイスDV2は、サーバSV1からアンマスキング鍵K2を受信する。この実現のため、第2のデバイスDV2は、例えば、サーバSV1から1つ又は複数のアンマスキング鍵K2のリストを受信する。次いで、第2のデバイスDV2は、このリストからアンマスキング鍵K2を抽出し(例えば、既定の順番に従って)、S10においてそのアンマスキング鍵K2を端末DV1に送信する。
【0107】
別の例によれば、DV2は、サーバSV1から、鍵KECと関連付けて、チャレンジデータCH2又はアンマスキング鍵K2を受信することができる。
【0108】
従って、端末DV1は、第2のデータDT2への返信として、第2のデバイスDV2によって供給されたアンマスキング鍵K2を受信する(S10)。次いで、決定ステップS12中、端末DV1は、S4で得られた鍵データCECに基づいて、且つS10で受信されたアンマスキング鍵K2に基づいて、暗号アンマスキング関数F2(上記で言及したような)を実行することによって暗号化された暗号鍵DECを決定する。換言すれば、鍵データCEC及びアンマスキング鍵K2を入力として取り入れて、アンマスキング関数F2を実行して鍵データCECをアンマスキングし、従って暗号化された暗号鍵DECを出力として得る。
【0109】
アンマスキング関数F2は、事例に応じて適応させることができ、鍵データCECを生成するために暗号マスキング関数F1によって生じたマスキング効果を無効化するように選択される。換言すれば、アンマスキング関数F2は、マスキング関数F1の逆暗号効果(すなわちアンマスキング効果)をもたらすために、マスキング関数F1の関数として選択される。
【0110】
特定の例によれば、暗号マスキング関数F1及びアンマスキング関数F2は、それぞれ関連付けられた暗号化及び復号関数である。様々な暗号化及び復号関数を構想することができる。特定の例によれば、暗号マスキング関数F1及びアンマスキング関数F2は、対称暗号化関数であり、マスキング鍵K1(鍵データCECが生成されたものに基づく)及びアンマスキング鍵K2は、同一である。変形形態では、暗号マスキング関数F1及びアンマスキング関数F2は、非対称暗号化及び復号関数であり、鍵K1及びK2は、それぞれ異なる公開及び私有鍵である。
【0111】
特定の例によれば、暗号マスキング関数F1及びアンマスキング関数F2は、「排他的論理和(exclusive OR(いわゆるXOR又は排他的論理和(exclusive disjunction))」関数である。当業者によく知られているXOR関数は、従来の方式では、シンボル「
【数1】
」によって表される。従って、この特別な事例では、F1の適用によって生じたマスキング効果がS12におけるF2の適用によって無効化される限り、関数F1及びF2は、同一であり、相殺し合うものである。
【0112】
鍵データCECの初期のマスキングは、暗号鍵KECの有利な保護を提供し、なぜなら、暗号化された暗号鍵DECを抽出できる(従ってそれから暗号鍵KECを推測できる)ようにするには、端末DV1は、事前に第2のデバイスDV2と対話してアンマスキング鍵K2を回収できなければならないためである。このアンマスキング鍵K2を使用した場合に限り、端末DV1は、暗号アンマスキング関数F2を実行することにより、暗号化された暗号鍵DEC(すなわち暗号化された形態の暗号鍵KEC)を決定することができる。第2のデバイスDV2によってアンマスキング鍵が供給されなければ、攻撃者は、暗号化された暗号鍵DECをアンマスキングすることができない。
【0113】
次いで、決定ステップS14中、端末DV1は、その復号された形態(プレーンテキスト)の暗号鍵KECを決定する。この実現のため、端末DV1は、暗号化された暗号鍵DECに基づいてホワイトボックス実装で復号アルゴリズムpdecを実行することにより、復号を実行する。換言すれば、端末DV1は、プレーンテキストの暗号鍵KECを出力として生成するために、暗号化された暗号鍵DECを入力として取り入れて、復号アルゴリズムpdecのホワイトボックス実装wb[pdec]を実行する。
【0114】
従って、本発明の原理によれば、端末DV1を認証するために第2のデバイスDV2によって課される既定の暗号化アルゴリズムALpではなく、端末DV1に特有であり、従って方法をできる限り良好に防御するためにアルゴリズムALpよりも自由度を高めた状態で当業者によって適応させることができる復号アルゴリズムpdecにホワイトボックス実装技法が適用される。
【0115】
復号アルゴリズムpdecは、暗号鍵KECを得るため、暗号化された暗号鍵DECを生成するために暗号化アルゴリズムpencによって以前に実行された暗号化を逆にする(又は無効化する)ことができる限り、いかなる復号アルゴリズムでもあり得る。換言すれば、暗号化アルゴリズムpenc及び復号アルゴリズムpdecは、逆暗号関数を実行するように構成された関連付けられた暗号アルゴリズムである。
【0116】
復号アルゴリズムpdecは、例えば、専有アルゴリズム又はAESアルゴリズムのすべて若しくは一部などであり得る。特定の例によれば、暗号化アルゴリズムpenc及び復号アルゴリズムpdecは、端末DV1を認証するために第2のデバイスDV2によって使用される既定の暗号アルゴリズムALpと異なる。その違いは、同一のタイプのアルゴリズム(同一の数学的原理に対する)の実装に関連し得ることに留意されたい。例として、アルゴリズムALpとpdec(及びpenc)とは、それらのそれぞれのソフトウェア実装が異なるという意味において、例えばアルゴリズムpdecがホワイトボックス実装でのAESアルゴリズムである一方、アルゴリズムALpが非ホワイトボックス実装でのAESアルゴリズムである事例では異なるアルゴリズムであり得る。
【0117】
特定の例によれば、復号アルゴリズムpdecは、AESアルゴリズム以外のアルゴリズムである。
【0118】
ステップS14中、復号アルゴリズムpdecのホワイトボックス実装wb[pdec]は、適用可能な場合、暗号化された暗号鍵DECの他に、端末DV1に特有のデータ及び/又は端末DV1のユーザURからのデータ(例えば、ユーザURによって入力された秘密PINコード)を入力として取り入れ得ることに留意されたい。
【0119】
また、復号アルゴリズムpdecのホワイトボックス実装wb[pdec]は、鍵を考慮することもでき、その鍵は、ホワイトボックス実装に埋め込まれるか又は「トークン化」され(すなわちトークンの形態であり)、ホワイトボックスのパラメータとして渡すことができる。このトークン化された鍵は、例えば、端末DV1により、S4で得られた鍵データCECから得ることができる。
【0120】
次いで、決定ステップS16中、端末DV1は、S14で決定された復号された暗号鍵KECに基づいて、且つS2で以前に受信された第1のチャレンジデータCH1に基づいて、既定の暗号アルゴリズムALp(上記で言及したような)を実行することによる暗号化により(又は一般に暗号動作により)、解答データANS1を決定する。換言すれば、端末DV1は、解答データANS1を出力として生成するために、暗号鍵KEC及びチャレンジデータCH1を入力として取り入れて、既定の暗号アルゴリズムALpを実行し、解答データANS1は、S2で受信されたチャレンジデータCH1に対する解答を構成する。
【0121】
ここで考慮される例では、暗号アルゴリズムALpは、ホワイトボックス実装を有さない(ただし、ホワイトボックス実装を有することが可能である)。上記で説明されるように、ホワイトボックス実装技法は、S14において復号アルゴリズムpdecに適用され、それにより処理方法の柔軟性及びセキュリティを改善することができる。
【0122】
次いで、送信ステップS18中、端末DV1は、S2で受信した第1のデータDT1に応答して(具体的にはチャレンジデータCH1に応答して)、第2のデバイスDV2に端末DV1(従ってユーザUR)を認証させるために、解答データANS1を第2のデバイスDV2に送信する。
【0123】
解答データANS1が受信された(S18)時点で、第2のデバイスDV2は、解答データANS1に基づいて、且つチャレンジデータCH1に基づいて、端末DV1を認証する(S20)。より正確には、第2のデバイスDV2は、暗号鍵KECに基づいて、且つS2で以前に送信したチャレンジデータCH1に基づいて、既定の暗号アルゴリズムALpを実行することによる暗号化により(又は一般に暗号動作により)、理論的な解答データANS1aを演算する(S22)。換言すれば、第2のデバイスDV2は、理論的な解答データANS1aを出力として生成するために、暗号鍵KEC及びチャレンジデータCH1を入力として取り入れて、既定の暗号アルゴリズムALpを実行する。第2のデバイスDV2は、任意の適切な方法で暗号鍵KECを回収することができる。
【0124】
次いで、第2のデバイスDV2は、S18で端末DV1によって供給された解答データANS1と、S22で決定された理論的な解答データANS1aとを比較する(S24)。受信した解答データANS1が理論的な解答データANS1aと一致した場合、端末DV1の認証に成功し、そうでなければ認証に失敗する。換言すれば、ANS1とANS1aが一致した場合にのみ、端末DV1の認証に成功する。
【0125】
既に述べた通り、第1のデバイスDV1を認証するための認証方法中に第1及び第2のデバイスDV1、DV2によって使用される既定の暗号アルゴリズムALpは、この同じ暗号アルゴリズムALpが端末DV1と第2のデバイスDV2との両方によって使用される限り(その結果、S20において第2のデバイスDV2によって解答データANS1を検証することができる)、事例に応じて異なり得る。この暗号アルゴリズムALpは、例えば、AES暗号化アルゴリズム、署名演算アルゴリズム又はMAC(メッセージ認証コード)識別子演算アルゴリズム(例えば、AESに基づくもの)であり得る。署名又はMACの演算の原理は、当業者によく知られていることから、簡単にするため、本明細書で詳細に説明することはしない。
【0126】
第2のデバイスDV2は、認証ステップS20の結果に応じて、関数F3(車両8の任意の機能)へのアクセスをさらに制御することができる。具体的には、端末DV1の認証に成功した場合、第2のデバイスDV2は、関数F3の実施をトリガすることができ、認証に失敗した場合、関数F3を阻止することができる。既に言及した通り、この関数F3は、例えば、車両8へのアクセスを制御すること又はその始動を制御することを含み得る。
【0127】
特定の例によれば、送信ステップS18(
図6)に続いて、端末DV1は、復号アルゴリズムpdecを、古いものと異なる新しい復号アルゴリズムpdecに置き換えることによって復号アルゴリズムpdecを修正するように再構成される。次いで、再びS14において、端末DV1においてホワイトボックス実装で実施される新しい復号アルゴリズムpdecを使用して、上記のステップS2~26で説明されるような認証方法を行うことができる。
【0128】
本発明は、有利には、確実且つ柔軟に第2のデバイスに第1のデバイスDV1を認証させることを可能にする。上記で説明される例では、第2のデバイスDV2は、第1のデバイスDV1を認証するために、既定の暗号アルゴリズムALpを実行する。第2のデバイスDV2の構成(アプリケーション、プロトコルなど)をできる限り修正しないことが望まれるため、その第2のデバイスDV2の構成により、第1のデバイスDV1は、解答データANS1を生成するために、認証方法中、この同じ暗号アルゴリズムALpを使用するように強いられる。この理由は、S20(
図6)において、第2のデバイスDV2が、上記で説明されるように、理論的な解答データANS1aを演算することによって第1のデバイスDV1によって供給された解答データANS1の有効性を検証できるようにするには、同じアルゴリズムALpの使用が必要であるためである。
【0129】
しかし、本発明の原理は、第1のデバイスDV1による復号アルゴリズムpdecの実行(S14、
図6)中、ホワイトボックス実装技法が適用されるという事実に基づく。従って、第1のデバイスDV1においてホワイトボックス実装を有するのは、暗号アルゴリズムALpではなく、復号アルゴリズムpdecである(ただし、暗号アルゴリズムALpであることも可能である)。アルゴリズムALp及びpdecの選択が無相関化される限り、第1及び第2のデバイスDV1、DV2で実行される暗号アルゴリズムALp(S16、S22)を修正することなく、第1のデバイスDV1においてホワイトボックス実装での復号アルゴリズムpdec(S14)を慎重に選択し、必要に応じてそれを適応させることができる。換言すれば、解答データANS1を生成する(S16、
図6)ために第1のデバイスDV1でも同じ暗号アルゴリズムALpが使用される限り、第2のデバイスDV2によっていかなる暗号アルゴリズムALpも使用することができる。具体的には、暗号アルゴリズムALpは、第1のデバイスDV1においてホワイトボックス実装によって防御する必要はない。従って、本発明は、特攻撃によって第1のデバイスDV1のセキュリティが危殆化し、第1のデバイスDV1において復号アルゴリズムpdecのホワイトボックス実装の修正が必要である際、構成の柔軟性を得ることを可能にする。
【0130】
既に言及した通り、同一のアルゴリズムに対して可能なホワイトボックス実装の数は、限られている。従って、セキュリティ問題が生じた場合、本発明では、暗号鍵K
ECを決定するステップS14(
図6)中に第1のデバイスDV1によってホワイトボックス実装で新しいpdecアルゴリズムが実施されるように、復号アルゴリズムpdecを修正することができ、それにより第2のデバイスDV2の構成にいかなる影響も及ぼすことなく認証方法のセキュリティを強化することができる。従って、換言すれば、本発明は、復号アルゴリズムpdecを実行しない第2のデバイスDV2にいかなる影響も及ぼすことなく、復号アルゴリズムpdecのホワイトボックス実装をより容易に更新することができる。
【0131】
しかし、暗号鍵KECを抽出するためにホワイトボックス実装で実施される復号アルゴリズムpdecの分析を攻撃者が試みる恐れがあるが、アルゴリズムpdecは、専有アルゴリズム(又は適用可能な場合にはAESアルゴリズムのすべて若しくは一部)であり得、定期的に修正することができ、それによりすべての攻撃が難しくなる。特定の例によれば、復号アルゴリズムpdecは、AESアルゴリズム以外のアルゴリズムである。
【0132】
本発明の別の利点は、アンマスキング鍵K2を回収して、暗号化された鍵DECをアンマスキングできるようにするために、第1のデバイスDV1が第2のデバイスDV2と対話する必要があり、それにより、攻撃者が、復号された鍵KECを発見してそれを使用する時間が限られるという事実にある。第1のデバイスDV1と第2のデバイスDV2とのこの事前の対話により、攻撃者は、暗号鍵KECを決定するために第2のデバイスDV2と事前に対話するように強いられるため、攻撃がより複雑になる。トランザクションが正しく行われなかった場合(例えば、トランザクションが正しく終わらないか又は時間がかかり過ぎる場合)、第2のデバイスDV2は、具体的には、無効と見なされるように暗号鍵KECを阻止することができ、従ってこの鍵に基づく後続のいかなる認証も防ぐことができる。
【0133】
以下では、
図7及び8を参照して、
図6の実施形態の変形実装形態について説明する。別段の指定がない限り、上記で説明される実施形態に従って上記で提供される本発明の異なる特徴及びステップの説明は、
図7及び8の変形形態において同じ参照符号を有する均等な特徴に同じ方法で適用可能である。
【0134】
図7に示される実施形態によれば、この場合にもやはり、
図2~5を参照して以前に説明した第1のデバイスDV1(以下で「端末」と呼ばれる)と第2のデバイスDV2とは、具体的には、第1のデバイスDV1がそれ自体を第2のデバイスDV2に認証させることができるようにするために互いに協働すると仮定される。この実現のため、端末DV1は、第2のデバイスDV2と協働して、コンピュータプログラムPG1を実行することにより、処理方法(又は認証方法)を実施する。同様に、第2のデバイスDV2は、端末DV1を認証するために、コンピュータプログラムPG2を実行する。
【0135】
この例では、受信(又は取得)ステップS40中、端末DV1は、複数のトークンTNを受信する(又は得る)と仮定され、その各々は、チャレンジデータCH2と関連付けられた鍵データCECと、第1の時間データEXPと、鍵識別子IDとを含む。各トークンTNに対して、第1の時間データEXPは、関連付けられた暗号鍵が有効である有効時間を示す。加えて、識別子IDは、考慮されるトークンTNと関連付けられた暗号鍵KECを識別し、この鍵KECは、第1の時間データEXPによって指定される有効期間中に使用可能である。
【0136】
第1の時間データEXPは、例えば、有効期限又は有効時間の終了(例えば、有効期限日及び/又は有効期限時間)を示すことができ、それを越えれば、関連付けられた暗号鍵KECは、もはや有効ではなくなる。
【0137】
識別子IDは、インデックスであり得るか又は他の任意の適切な形態を取ることができる。同じ有効期間(従って同じ値のデータEXP)がいくつかの暗号鍵KECに割り当てられている際を含めて、この識別子IDは、いくつかの暗号鍵KEC(従ってより一般にはいくつかのトークンTN)を区別できるようにする。データEXP及びIDの値は、各トークンTN(従って各暗号鍵KEC)がデータの対(EXP、ID)と関連付けられるように選択することができる。
【0138】
既に示した通り、データEXP及びIDに依存しない他の実装形態も可能である。しかし、データEXP及びIDの使用は、暗号鍵KECの有効時間を制限できるようにする点、従って攻撃者がシステムのセキュリティを危殆化し、不法に取得した鍵を使用する時間を制限できるようにする点で有利である。
【0139】
ここで考慮される例では、端末DV1は、そのメモリ16(
図3)にトークンTN(TN1~TN20で示される)を含む。しかし、端末DV1によって得られるトークンの数は、事例に応じて異なり得ることに留意すべきである。端末DV1は、上記で説明されるように、1つ又は複数のトークンTNを得ることができる。
【0140】
受信ステップS42中、端末DV1は、第2のデバイスDV2から、第1のチャレンジデータCH1(上記で既に説明した通り)及び第2の時間データEXPminを含む第1のデータDT1を受信する。換言すれば、受信ステップS42は、受信される第1のデータDT1が第1のチャレンジデータCH1に加えて第2の時間データEXPminを含む点において、以前に説明したステップS2(
図6)と異なる。第2の時間データEXPminにより、端末DV1は、以下で説明されるように、ステップS44においてトークンTNを選択することができる。
【0141】
選択ステップS44中、端末DV1は、S42で受信した第1のデータDT1の第2の時間データEXPminに基づいて、端末DV1によってアクセス可能な1つ又は複数のトークンTNの中から(すなわち、ここで考慮される例では、そのメモリ16に記録されたトークンTN1~TN20の中から)、トークンTNを選択する。
【0142】
第2の時間データEXPminは、S44で選択されるトークンTNの暗号鍵KECが有効でなければならない有効期間を示す。換言すれば、端末DV1は、利用可能なトークンTN1~TN20の中から、EXPminによって課される有効時間条件を満たす鍵データCECを含むトークンTN(従って対応する暗号鍵KEC)を選択する。端末DV1は、対象のトークンTNの鍵データCECと関連付けられた第1の時間データEXPに基づいて、トークンTNに含まれる鍵データCECがこの第2の時間条件EXPminを順守するか否かを判断する。
【0143】
例として、第2の時間データEXPminは、選択される鍵データCEC(従って対応する暗号鍵KEC)が有効でなければならない残りの最短時間(例えば、最短有効期限)を示す。従って、第2のデバイスDV2は、第2の時間データEXPminを通して、S44において、端末DV1が、例えば、暗号鍵KECの有効期限が少なくとも2時間以内に切れるトークンTNを選択するように要求することができる。従って、時間データEXPminの値に基づいて、端末DV1は、S44において適切なトークンTNを選択することができる。
【0144】
特定の例によれば、S44において、端末DV1は、認証方法の各反復において(すなわち第1のデータDT1を新しく受信する(S42)たびに)、新しいトークンTNを選択する。
【0145】
選択S44が行われた時点で、端末DV1は、S44で選択されたトークンTNから抽出された第2のチャレンジデータCH2、第1の時間データEXP及び識別子IDを含む第2のデータDT2を第2のデバイスDV2に送信する(S46)。換言すれば、送信ステップS46は、第2のデータDT2が、第2のチャレンジデータCH2に加えて、S44で選択されたトークンTNで指定されたデータEXP及びIDを含む点において、以前に説明したステップS6(
図6)と異なる。従って、この事例では、送信される第2のチャレンジデータCH2は、第2のデータDT2に含まれるデータEXP及びIDとは別個のものである。
【0146】
特定の例によれば、端末DV1は、第2のデータDT2を第2のデバイスDV2に送信する前に、私有鍵SKmで第2のデータDT2に署名する。別の例によれば、第2のデータDT2の署名は、サーバSV1によって実行され、次いで第1のデバイスDV1で受信され、関連付けられたトークンと共に格納される。次いで、私有鍵SKmと関連付けられた公開鍵PKmを所有する第2のデバイスDV2は、署名を検証することができる。第2のデバイスDV2は、署名の検証に成功した場合にのみ、認証方法を継続することを容認する。この変形形態は、具体的には、正当なユーザURが自らを認証できないように、従って考慮されるサービスを失うように第2のデバイスDV2を妨害することを目的とするいかなるDoS(サービス妨害)攻撃も回避できるようにする。そのような攻撃は、あたかも端末DV1が第2のデータDT2において第1の時間データEXPの任意の又は誤った値を第2のデバイスDV2に送信しているかのように攻撃者が偽っている場合に可能であり得る。そのような事例では、第2のデバイスDV2は、その後、受信した最後のEXPによって示される有効時間の少なくとも終了までの有効性を有さないトークンTNを拒否することができる。
【0147】
その上、第2のデータDT2が受信された時点で、第2のデバイスDV2は、これらの第2のデータDT2に基づいて、S44で端末DV1が選択したトークンTN(従って暗号鍵KEC)の有効性を検証する(S48)。より正確には、ここで考慮される例では、第2のデバイスDV2は、S48において、受信した第2のデータDT2に含まれる第1の時間データEXP及び識別子IDに基づいて、端末DV1によって選択されたトークンTNの有効性を検証する。第2のデバイスDV2は、例えば、データEXP及びIDに基づいて、端末DV1によってS44で選択されたトークンTNが端末DV1又は別の端末によって依然として使用されていないことを検証する。この検証中、第2のデバイスDV2は、具体的には、S46で受信した第1の時間データEXPと、S42で端末DV1に送信したデータDT1に含まれる第2の時間データEXPminとを比較して、第1の時間データEXPが、EXPminによって課された有効時間条件を満たしているかどうかを検証することができる。既に述べた通り、トークンTNが有効であるには、トークンTNの鍵データCECと関連付けられた第1の時間データEXPが、EXPminによって課された時間有効性条件を満たすことが特に必要である。
【0148】
S48において、端末DV1によって選択されたトークンTNが有効であると第2のデバイスDV2が判断した場合、方法は、演算ステップS50に進む。逆の場合、端末DV1の認証に失敗し、認証方法は、終了となる(適用可能な場合、第2のデバイスは、端末DV1に失敗を警告し、第2の時間データEXPminを順守する別のトークンTNを選択するように依頼する)。
【0149】
演算ステップS50中、第2のデバイスDV2は、S46で受信した第2のデータDT2に含まれる第2のチャレンジデータCH2に基づいて、アンマスキング鍵K2を演算する(又は決定する)。この演算ステップS50は、以前に説明したステップS8(
図6)と同じ方法で暗号化アルゴリズムAL1を実行することによって行うことができる。既に述べた通り、第2のデバイスDV2は、暗号化アルゴリズムAL1の実行中、鍵TKなどの他の入力を考慮することもできる。
【0150】
演算ステップS50中、アンマスキング鍵K2は、第2のチャレンジデータCH2(適用可能な場合には鍵TK)に加えて、第1の時間データEXP及び識別子IDを入力として取り入れて、暗号化アルゴリズムAL1を実行することによって決定することができる。これにより、アンマスキング鍵K2の演算のセキュリティをさらに強化することができる。これにより、具体的には第2のデバイスDV2に送信される時間データEXP(例えば、日付)又は識別子IDを修正することにより、期限が切れたトークンを攻撃者が再利用することを回避することができる。そのような事例では、S50で決定されるアンマスキング鍵K2は、対象のトークンTNに対して機能することが意図されるものと異なるものになるであろう。
【0151】
次いで、第2のデバイスDV2は、アンマスキング鍵K2を端末DV1に送信する(S10)。
【0152】
ここで考慮される例では、端末DV1は、S46で第2のデバイスDV2に送信する第2のデータDT2に、第1の時間データEXP及び識別子IDに加えて、第2のチャレンジデータCH2を含めることに留意されたい(換言すれば、第2のチャレンジデータの役割を果たすのは、データEXP及びIDではない)。データEXP及びIDは、第2のデバイスDV2が選択されたトークンTNの有効性を検証できるようにするものであり、第2のチャレンジデータCH2は、第2のデバイスDV2がアンマスキング鍵K2を演算できるようにするものである。しかし、端末DV1が、第2のデバイスDV2に送信する第2のデータDT2(S46)に、データEXP及びIDに加えて、第2のチャレンジデータCH2を含めない変形形態が可能である。この事例では、第2のチャレンジデータとしての役割を果たし、従ってS50でアンマスキング鍵K2を決定するために第2のデバイスDV2によって使用されるのは、データEXP及びID(又はこれらの2つのデータの少なくとも1つ)である。しかし、第1の時間データEXP及び識別子IDに加えて、第2のチャレンジデータCH2を第2のデータDT2に含めることは、異なるトークンTNの使用における衝突に関するいかなる問題も回避できるようにする点で有利である。一般に、そのような衝突問題は、展開されたトークンTNにおいて各データ対(EXP、ID)が一意的なものであることを保証できるようにするメカニズムを設置することによって回避することができる。次いで、第2のデータDT2において受信されたデータの対(EXP、ID)に基づいて、第2のデバイスDV2は、対応するトークンTNが依然として有効であるか否かを判断することができる。
【0153】
変形形態では、S46で第2のデバイスDV2に送信される第2のデータDT2は、識別子IDのみを含み得、次いで、識別子IDは、第2のチャレンジデータとしての役割を果たす(S46で送信される第2のデータDT2に第1の時間データEXP又はデータCH2を含めることなく)。この特別な事例では、第2のデバイスDV2は、S50においてアンマスキング鍵K2を決定するために第2のチャレンジデータとして識別子IDを使用する。構想される実装形態を問わず、第2のデバイスDV2は、好ましくは、S48において、同一のトークンTNが2回使用されないことを検証できなければならない。
【0154】
特定の例によれば、端末DV1は、S46において、方法の新しい反復の各々について、異なる第2のチャレンジデータCH2を送信する。換言すれば、端末DV1は、S46において、端末DV1を(第2のデバイスDV2又は他の任意のデバイスに)認証させるために使用される各トークンTNに対して、異なる第2のチャレンジデータCH2を送信する。
【0155】
その上、S10においてアンマスキング鍵K2が受信された時点で、端末DV1は、
図6を参照して以前に既に説明したように、ステップS12、S14、S16、S18を実行する。ここで、例として、使用されるアンマスキング関数F2は、上記で既に言及した通り、XOR関数であると仮定される。
【0156】
従って、第2のデバイスDV2は、S18において、解答データANS1を受信する。この例では、第2のデバイスDV2は、決定ステップS60中、端末DV1によって使用された暗号鍵KEC(すなわちS44において端末DV1によって選択されたトークンTNに対応するもの)を決定する。この実現のため、第2のデバイスDV2は、マスター暗号鍵MK(この例ではメモリ26に格納されたもの)に基づいて、且つ適用可能な場合にはS46で第2のデータDT2において以前に受信されたデータEXP、ID及び/又はCH2(すなわちそれらの少なくとも1つ、例えばEXPとID、EXPとCH2、IDとCH2又はEXPとIDとCH2)にも基づいて、暗号鍵KECを導き出す(S60)。
【0157】
次いで、第2のデバイスDV2は、
図6を参照して以前に既に説明したように、ステップS20、S22、S24、S26を実行することにより、方法を継続する。具体的には、第2のデバイスDV2は、S60で演算された暗号鍵K
ECに基づいて、且つS42で以前に送信したチャレンジデータCH1に基づいて、既定の暗号アルゴリズムALpを実行することによる暗号化により(又は一般に暗号動作により)、理論的な解答データANS1aを演算する(S22)。次いで、第2のデバイスDV2は、S18で受信した解答データANS1と、理論的な解答データANS1aとを比較し(S24)、そこから、ANS1とANS1aが一致した場合、認証に成功したことを推測する。
【0158】
図8に示される実施形態によれば、この場合にもやはり、
図2~5を参照して以前に説明した第1のデバイスDV1(以下で「端末」と呼ばれる)と第2のデバイスDV2とは、具体的には、第1のデバイスDV1がそれ自体を第2のデバイスDV2に認証させることができるようにするために協働すると仮定される。この実現のため、端末DV1は、第2のデバイスDV2と協働して、コンピュータプログラムPG1を実行することにより、処理方法(又は認証方法)を実施する。同様に、第2のデバイスDV2は、端末DV1を認証するために、コンピュータプログラムPG2を実行する。
【0159】
図8に示される変形形態は、端末DV1により、暗号鍵K
EC(その復号された形態のもの)を決定するために、ホワイトボックス実装で実施される復号アルゴリズムpdecの入力として、ホワイトボックス実装に適したフォーマットで符号化された鍵KRandがさらに使用される点において、
図7の実施形態と異なる。従って、この鍵KRandは、考慮されるホワイトボックス実装によってのみ使用可能である。この実現のため、鍵KRandは、前記鍵KRandが対象のホワイトボックス実装によってのみ理解可能であるか又は使用可能であるように、適切ないかなる変換(例えば、暗号化又は鍵が隠れる動作を実行するテーブルの形態の変換)も行うことができる。
【0160】
より正確には、
図8に示されるように、端末DV1は、受信(又は取得)ステップS80中、複数のトークンTNを受信し(又は得て)、その各々は、チャレンジデータCH2と関連付けられた鍵データC
ECと、第1の時間データEXPと、鍵識別子IDと、ホワイトボックス実装(wb[KRand]で示される)に適したフォーマットで符号化された暗号鍵KRandとを含む。換言すれば、トークンTNは、既にリストした他の要素と関連付けて、ホワイトボックス実装に適したフォーマットで符号化された鍵KRandも含む点において、
図7を参照して説明されるものと異なる。従って、この鍵KRandは、あらゆる攻撃から保護するためにそれ自体防御される。
【0161】
各鍵データCECと関連付けられた鍵KRandは、例えば、ランダム鍵である。
【0162】
次いで、端末DV1及び第2のデバイスDV2は、
図7を参照して上記で既に説明したように、ステップS42~S50及びステップS10、S12を共に実行すると仮定される。
【0163】
次いで、決定ステップS86中、端末DV1は、その復号された形態(プレーンテキスト)の暗号鍵KECを決定する。この実現のため、端末DV1は、暗号化された暗号鍵DEC(S12で得られた)に基づいて、且つS44で選択されたトークンTNから抽出されたホワイトボックス実装での鍵KRandに基づいて、ホワイトボックス実装で復号アルゴリズムpdecを実行することにより、復号を実行する。換言すれば、端末DV1は、プレーンテキストの暗号鍵KECを出力として生成するために、暗号化された暗号鍵DEC及び鍵KRandのホワイトボックス実装wb[KRand]を入力として取り入れて、復号アルゴリズムpdecのホワイトボックス実装wb[pdec]を実行する。
【0164】
暗号鍵K
EC(その復号された形態のもの)が決定された時点で、端末DV1及び第2のデバイスDV2は、
図7を参照して既に説明したように、ステップS16、S18、S60、S20~S26を実行することによって処理方法を継続する。
【0165】
従って、この変形形態は、トークンTNにおけるホワイトボックス実装での多くの鍵KRandの提供も行い、それにより本発明の処理方法をさらに防御することができる。
【0166】
その上、
図6~8を参照して以前に説明されるような処理方法のステップが互いに従う順番は、単なる例示的な一実施形態を構成するものであり、その変形形態も可能であることに留意されたい。
【0167】
当業者であれば、上記で説明される実施形態及び変形形態は、本発明の実装形態の単なる非限定的な例を構成することを理解するであろう。具体的には、当業者は、以下で提示される特許請求の範囲に従い、上記で説明される実施形態及び変形形態のいかなる適応形態又は組合せも構想することができる。
【符号の説明】
【0168】
2 第1のデバイス
4 第2のデバイス
8 車両
10 プロセッサ
12 揮発性メモリ
14 不揮発性メモリ
16 不揮発性メモリ
20 プロセッサ
22 揮発性メモリ
24 不揮発性メモリ
26 不揮発性メモリ
AL1 暗号化アルゴリズム
ALp 暗号アルゴリズム
ANS1 解答データ
ANS1a 解答データ
CEC 鍵データ
CH0 チャレンジデータ
CH1 第1のチャレンジデータ
CH2 第2のチャレンジデータ
DEC 暗号鍵
DT1 第1のデータ
DT2 第2のデータ
DV1 第1のデバイス
DV2 第2のデバイス
E 環境
EXP 第1の時間データ
F1 暗号マスキング関数
F2 暗号アンマスキング関数
F3 関数
INT1 通信インタフェース
INT2 通信インタフェース
K1 マスキング鍵
K2 アンマスキング鍵
KEC 暗号鍵
KRand 暗号鍵
MD2~MD18 モジュール
MK マスター暗号鍵
PG1 コンピュータプログラム
PG2 コンピュータプログラム
PKm 公開鍵
RP0 解答
RP0a 解答
S10~S86 ステップ
SKm 私有鍵
SV1 モートサーバ
SY1 システム
TK 鍵
TN トークン
TN1~TN20 トークン
UR ユーザ
pdec 復号アルゴリズム
penc 暗号化アルゴリズム
wb[pdec] ホワイトボックス実装
【外国語明細書】