(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024063965
(43)【公開日】2024-05-14
(54)【発明の名称】サーバー、認証システム、および認証制御方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240507BHJP
H04L 9/14 20060101ALI20240507BHJP
B60R 25/24 20130101ALN20240507BHJP
【FI】
H04L9/32 100B
H04L9/32 200B
H04L9/14
B60R25/24
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022172184
(22)【出願日】2022-10-27
(71)【出願人】
【識別番号】000003193
【氏名又は名称】TOPPANホールディングス株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】藤江 律也
(57)【要約】
【課題】デバイスにおける処理負荷を減らすことができるサーバー、認証システム、および認証制御方法を提供する。
【解決手段】サーバーは、算出部および送信部を備える。前記算出部は、第1の乱数および第2の乱数を使用することにより第1の認証子および第2の認証子を算出し、前記第2の認証子から第3の認証子を算出する。前記送信部は、デジタルキーを有し前記第1の認証子および前記第2の認証子を使用することにより車両制御装置を認証するデバイスに前記第1の認証子および前記第2の認証子を送信し、前記第1の認証子および前記第3の認証子を使用することにより前記デバイスを認証する前記車両制御装置に前記第1の認証子および前記第3の認証子を送信する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1の乱数および第2の乱数を使用することにより第1の認証子および第2の認証子を算出し、前記第2の認証子から第3の認証子を算出する算出部と、
デジタルキーを有し前記第1の認証子および前記第2の認証子を使用することにより車両制御装置を認証するデバイスに前記第1の認証子および前記第2の認証子を送信し、前記第1の認証子および前記第3の認証子を使用することにより前記デバイスを認証する前記車両制御装置に前記第1の認証子および前記第3の認証子を送信する送信部と、
を備えるサーバー。
【請求項2】
前記デバイスから送信された情報を使用することにより前記デバイスを認証する認証部を備え、
前記送信部は、前記デバイスが前記サーバーを認証するために必要な情報を前記デバイスに送信し、
前記認証部が前記デバイスを認証し、かつ前記デバイスが前記サーバーを認証した後、前記送信部は前記第1の認証子および前記第2の認証子を前記デバイスに送信する
請求項1に記載のサーバー。
【請求項3】
前記デバイスが所持する第1の秘密鍵によって暗号化された電子署名を前記デバイスから受信する受信部を備え、
前記認証部は、前記第1の秘密鍵と対応する公開鍵を使用して前記電子署名を検証することにより前記デバイスを認証し、
前記送信部は、前記デバイスが前記サーバーを認証するために必要な前記情報として、前記サーバーが所持する第2の秘密鍵によって暗号化された電子署名を前記デバイスに送信する
請求項2に記載のサーバー。
【請求項4】
認証コードを前記デバイスから受信する受信部を備え、
前記認証部は、前記サーバーが所持する第1の秘密鍵を使用することにより前記認証コードを暗号化し、
前記送信部は、前記デバイスが前記サーバーを認証するために必要な前記情報として、前記認証部によって暗号化された前記認証コードを前記デバイスに送信し、
前記受信部は、前記デバイスが所持する第2の秘密鍵を使用することによって暗号化された前記認証コードを前記デバイスから受信し、
前記認証部は、前記第2の秘密鍵を使用することによって暗号化された前記認証コードを前記第2の秘密鍵と対応する公開鍵で復号し、復号結果を検証することにより前記デバイスを認証する
請求項2に記載のサーバー。
【請求項5】
サーバーと、
デジタルキーを有し第1の認証子および第2の認証子を使用することにより車両制御装置を認証するデバイスと、
前記第1の認証子および第3の認証子を使用することにより前記デバイスを認証する車両制御装置と、
を備える認証システムであって、
前記サーバーは、
第1の乱数、第2の乱数を使用することにより前記第1の認証子、前記第2の認証子をそれぞれ算出し、前記第2の認証子から第3の認証子を算出する算出部と、
前記第1の認証子および前記第2の認証子を前記デバイスに送信し、前記第1の認証子および前記第3の認証子を前記車両制御装置に送信する送信部と、
を有する認証システム。
【請求項6】
算出部が第1の乱数および第2の乱数を使用することにより第1の認証子および第2の認証子を算出し、前記第2の認証子から第3の認証子を算出するステップと、
送信部が、デジタルキーを有し前記第1の認証子および前記第2の認証子を使用することにより車両制御装置を認証するデバイスに前記第1の認証子および前記第2の認証子を送信するステップと、
前記送信部が、前記第1の認証子および前記第3の認証子を使用することにより前記デバイスを認証する前記車両制御装置に前記第1の認証子および前記第3の認証子を送信するステップと、
を備える認証制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバー、認証システム、および認証制御方法に関する。
【背景技術】
【0002】
デジタルキーがインストールされたデバイスを使用することにより、車両の扉の施錠およびエンジンの始動などを行う技術が開発されている。デジタルキーは、Car Connectivity Consortium (CCC) 規格に準拠している。そのデバイスが車両と紐づいていることを保証するために、車両とデバイスとの間で事前にペアリングを行う必要がある。
【0003】
非特許文献1には、ペアリングを行う方法が開示されている。車両およびデバイスは、複数の暗号関数および鍵導出関数を使用することにより算出された値を互いに共有かつ検証することにより相互認証を実行する。
【0004】
図8は、非特許文献1に開示されたペアリングの手順を示す。サーバー910、デバイス920、および車両930は、
図8に示す手順に従って互いに通信を実行する。
【0005】
サーバー910は乱数Aおよび乱数Bを生成する(ステップS900)。サーバー910は、乱数Aおよび乱数Bを使用することにより認証子(verifier)Aおよび認証子Bを算出する(ステップS901)。また、サーバー910は、認証子Bを使用することにより認証子Cを算出する(ステップS902)。
【0006】
サーバー910は、乱数Aをデバイス920に送信し(ステップS903)、乱数Bと認証子Aと認証子Cとを車両930に送信する(ステップS904)。車両930は乱数Bをデバイス920に送信する(ステップS905)。
【0007】
デバイス920は、乱数Aおよび乱数Bを使用することにより認証子Aおよび認証子Bを算出する(ステップS906)。また、デバイス920は、認証子Aおよび認証子Bを使用することにより形跡(evidence)Aおよび形跡Bを算出する(ステップS907)。一方、車両930は、認証子Aおよび認証子Cを使用することにより形跡Aおよび形跡Bを算出する(ステップS908)。
【0008】
車両930は形跡Aをデバイス920に送信し(ステップS909)、デバイス920は形跡Bを車両930に送信する(ステップS910)。デバイス920は、ステップS907において算出された形跡Aと、車両930から受信された形跡Aとが一致するか否かを検証することにより車両930を認証する(ステップS911)。車両930は、ステップS908において算出された形跡Bと、デバイス920から受信された形跡Bとが一致するか否かを検証することによりデバイス920を認証する(ステップS912)。上記の処理が完了したとき、車両930とデバイス920との間の相互認証が完了する。つまり、車両930とデバイス920とのペアリングが完了する。
【0009】
CCC規格は、ステップS901およびステップS906における認証子の算出にScryptアルゴリズムを使用することを定めている。Scryptアルゴリズムは、ブルートフォースアタック(総当たり攻撃)を防ぐ目的で開発されたアルゴリズムである。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】Digital Key Release 3 Technical Specification Version 1.0.0、Car Connectivity Consortium、2021年5月19日、P80(Figure 6-2),P84(Figure 6-4),P283-287
【発明の概要】
【発明が解決しようとする課題】
【0011】
従来技術では、乱数から認証子を算出するアルゴリズムとしてScryptアルゴリズムが使用されている。Scryptアルゴリズムの計算量は多いため、高速なプロセッサおよび大容量のメモリを使用することが想定される。しかしながら、カード状のデバイスが使用される場合、プロセッサの能力およびメモリの容量が限られており、認証子を算出するために非常に長い時間を要する。
【0012】
本発明は、上記の課題に鑑みてなされたものであって、デバイスにおける処理負荷を減らすことができるサーバー、認証システム、および認証制御方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明は、第1の乱数および第2の乱数を使用することにより第1の認証子および第2の認証子を算出し、前記第2の認証子から第3の認証子を算出する算出部と、デジタルキーを有し前記第1の認証子および前記第2の認証子を使用することにより車両制御装置を認証するデバイスに前記第1の認証子および前記第2の認証子を送信し、前記第1の認証子および前記第3の認証子を使用することにより前記デバイスを認証する前記車両制御装置に前記第1の認証子および前記第3の認証子を送信する送信部と、を備えるサーバーである。
【0014】
本発明は、算出部が第1の乱数および第2の乱数を使用することにより第1の認証子および第2の認証子を算出し、前記第2の認証子から第3の認証子を算出するステップと、送信部が、デジタルキーを有し前記第1の認証子および前記第2の認証子を使用することにより車両制御装置を認証するデバイスに前記第1の認証子および前記第2の認証子を送信するステップと、前記送信部が、前記第1の認証子および前記第3の認証子を使用することにより前記デバイスを認証する前記車両制御装置に前記第1の認証子および前記第3の認証子を送信するステップと、を備える認証制御方法である。
【発明の効果】
【0015】
本発明によれば、サーバー、認証システム、および認証制御方法は、デバイスにおける処理負荷を減らすことができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の第1の実施形態による認証システムの構成を示すブロック図である。
【
図2】本発明の第1の実施形態によるサーバーの構成の例を示すブロック図である。
【
図3】本発明の第1の実施形態によるデバイスの構成の例を示すブロック図である。
【
図4】本発明の第1の実施形態による車両制御装置の構成の例を示すブロック図である。
【
図5】本発明の第1の実施形態による認証システムの動作の例を示す図である。
【
図6】本発明の第2の実施形態による認証システムの動作の例を示す図である。
【
図7】本発明の第3の実施形態による認証システムの動作の例を示す図である。
【
図8】従来技術におけるペアリングの手順を示す図である。
【発明を実施するための形態】
【0017】
以下、図面を参照し、本発明の実施形態を説明する。
【0018】
(第1の実施形態)
本発明の第1の実施形態を説明する。
図1は、第1の実施形態による認証システム1の構成を示す。認証システム1は、サーバー10、デバイス20、および車両制御装置30を有する。
【0019】
サーバー10は、車両の製造会社によって管理されるコンピュータである。サーバー10は、デバイス20および車両制御装置30と通信を実行する。デバイス20は、例えばICカードであり、サーバー10および車両制御装置30と通信を実行する。車両制御装置30は、車両に設けられており、サーバー10およびデバイス20と通信を実行する。
【0020】
図2は、サーバー10の構成の例を示す。サーバー10は、乱数生成部100、認証子算出部101、送信部102、受信部103、認証部104、および記憶部105を有する。
【0021】
乱数生成部100は、乱数を生成し、生成された乱数を認証子算出部101に出力する。認証子算出部101は、乱数生成部100から出力された乱数を使用することにより認証子を算出し、算出された認証子を記憶部105に格納する。
【0022】
送信部102は、認証子算出部101によって算出された認証子をデバイス20および車両制御装置30に送信する。また、送信部102は、デバイス20がサーバー10を認証するために必要なサーバー認証情報をデバイス20に送信する。送信部102は、デバイス20と通信を実行する第1の送信部と、車両制御装置30と通信を実行する第2の送信部とを有してもよい。受信部103は、サーバー10がデバイス20を認証するために必要なデバイス認証情報をデバイス20から受信し、受信されたデバイス認証情報を認証部104に出力する。
【0023】
認証部104は、検証部1040および認証情報生成部1041を有する。検証部1040は、受信部103によって受信されたデバイス認証情報を検証することによりデバイス20を認証する。検証部1040は、デバイス20の認証結果を示す情報などを送信部102に出力する。認証情報生成部1041は、サーバー認証情報を生成し、生成されたサーバー認証情報を送信部102に出力する。
【0024】
記憶部105は、認証部104の処理に必要な情報を記憶する。また、記憶部105は、車両の制御に必要なデジタルキーを記憶する。
【0025】
乱数生成部100、認証子算出部101、および認証部104の少なくとも1つは、CPU(Central Processing Unit)のようなプロセッサが、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより実現されてもよい。乱数生成部100、認証子算出部101、および認証部104の少なくとも1つは、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)のようなハードウェア(回路)によって実現されてもよい。乱数生成部100、認証子算出部101、および認証部104の少なくとも1つは、ソフトウェアおよびハードウェアの組み合わせによって実現されてもよい。
【0026】
図3は、デバイス20の構成の例を示す。デバイス20は、認証部200、送信部201、受信部202、および記憶部203を有する。
【0027】
認証部200は、デバイス認証情報を生成し、生成されたデバイス認証情報を送信部201に出力する。認証部200は、受信部202によってサーバー10から受信されたサーバー認証情報を検証することによりサーバー10を認証する。認証部200は、受信部202によってサーバー10から受信された認証子を使用することにより形跡を算出し、算出された形跡を送信部201に出力する。認証部200は、認証部200によって算出された形跡と、受信部202によって車両制御装置30から受信された形跡とを検証することにより車両制御装置30を認証する。認証部200は、プロセッサが、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより実現されてもよい。認証部200は、ハードウェア(回路)によって実現されてもよく、あるいはソフトウェアおよびハードウェアの組み合わせによって実現されてもよい。
【0028】
送信部201は、認証部200によって生成されたデバイス認証情報をサーバー10に送信する。また、送信部201は、認証部200によって算出された形跡を車両制御装置30に送信する。送信部201は、サーバー10と通信を実行する第1の送信部と、車両制御装置30と通信を実行する第2の送信部とを有してもよい。
【0029】
受信部202は、サーバー認証情報および認証子をサーバー10から受信し、受信されたサーバー認証情報および認証子を認証部200に出力する。また、受信部202は、車両制御装置30によって算出された形跡を車両制御装置30から受信し、受信された形跡を認証部200に出力する。記憶部203は、認証部200の処理に必要な情報を記憶する。
【0030】
デバイス20と車両制御装置30との通信として、非接触通信が使用されてもよい。非接触通信として、近距離無線通信(NFC)または超広帯域(UWB)通信などが使用されてもよい。
【0031】
図4は、車両制御装置30の構成の例を示す。車両制御装置30は、認証部300、送信部301、受信部302、および記憶部303を有する。
【0032】
認証部300は、受信部302によってサーバー10から受信された認証子を使用することにより形跡を算出し、算出された形跡を送信部301に出力する。認証部300は、認証部300によって算出された形跡と、受信部302によってデバイス20から受信された形跡とを検証することによりデバイス20を認証する。認証部300は、プロセッサが、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより実現されてもよい。認証部300は、ハードウェア(回路)によって実現されてもよく、あるいはソフトウェアおよびハードウェアの組み合わせによって実現されてもよい。
【0033】
送信部301は、認証部300によって算出された形跡をデバイス20に送信する。受信部302は、サーバー10によって算出された認証子をサーバー10から受信し、受信された認証子を認証部300に出力する。また、受信部302は、デバイス20によって算出された形跡をデバイス20から受信し、受信された形跡を認証部300に出力する。受信部302は、サーバー10と通信を実行する第1の受信部と、デバイス20と通信を実行する第2の受信部とを有してもよい。記憶部303は、認証部300の処理に必要な情報を記憶する。
【0034】
図5を使用することにより、認証システム1の動作を説明する。
図5は、認証システム1の動作の例を示す。
【0035】
サーバー10の乱数生成部100は、互いに異なる乱数Aおよび乱数Bを生成する(ステップS100)。認証子算出部101は、乱数Aおよび乱数Bを使用することにより認証子Aおよび認証子Aと異なる認証子Bを算出する(ステップS101)。例えば、認証子Aは乱数Aおよび乱数Bから算出された値の上位ビットおよび下位ビットの一方であり、認証子Bは上位ビットおよび下位ビットの他方である。また、認証子算出部101は、認証子Bを使用することにより認証子Bと異なる認証子Cを算出する(ステップS102)。認証子算出部101によって算出された認証子A、認証子B、および認証子Cは記憶部105に記憶される。ステップS101が実行される前にステップS102が実行されてもよい。
【0036】
デバイス20の認証部200は、デバイス認証情報を生成し、生成されたデバイス認証情報を送信部201に出力する。送信部201は、デバイス認証情報をサーバー10に送信する。サーバー10の受信部103は、デバイス認証情報をデバイス20から受信し、受信されたデバイス認証情報を認証部104に出力する(ステップS103)。
【0037】
認証部104の検証部1040は、デバイス認証情報を検証することによりデバイス20を認証する(ステップS104)。デバイス20の認証に失敗した場合、
図5に示す処理が終了する。
【0038】
デバイス20の認証に成功した場合、認証情報生成部1041は、サーバー認証情報を生成し、生成されたサーバー認証情報を送信部102に出力する。送信部102は、サーバー認証情報をデバイス20に送信する。デバイス20の受信部202は、サーバー認証情報をサーバー10から受信し、受信されたサーバー認証情報を認証部200に出力する(ステップS105)。
【0039】
認証部200は、サーバー認証情報を検証することによりサーバー10を認証する(ステップS106)。サーバー10の認証に失敗した場合、
図5に示す処理が終了する。サーバー10の認証に成功した場合、サーバー10とデバイス20との間の相互認証が完了する。
【0040】
サーバー10とデバイス20との間の相互認証において、サーバー10およびデバイス20の各々に予め記憶されている情報が使用されてもよい。サーバー10とデバイス20との間の相互認証において、新たに生成された乱数などが使用されてもよい。
【0041】
ステップS102が実行された後、サーバー10がサーバー認証情報をデバイス20に送信し、デバイス20がサーバー認証情報を検証してもよい。サーバー10の検証に成功した場合、デバイス20はデバイス認証情報をサーバー10に送信し、サーバー10はデバイス認証情報を検証してもよい。
【0042】
サーバー10とデバイス20との間の相互認証が完了した後、サーバー10の認証部104は、認証子Aおよび認証子Bを記憶部105から読み出し、認証子Aおよび認証子Bを送信部102に出力する。送信部102は、認証子Aおよび認証子Bをデバイス20に送信する。デバイス20の受信部202は、認証子Aおよび認証子Bをサーバー10から受信し、受信された認証子Aおよび認証子Bを認証部200に出力する(ステップS107)。送信部102は、HTTPリクエストがデバイス20から受信されたときにHTTPリクエストに対する応答として認証子Aおよび認証子Bをデバイス20に送信してもよい。
【0043】
認証部200は、認証子Aおよび認証子Bを使用することにより形跡Aおよび形跡Aとは異なる形跡Bを算出する(ステップS108)。例えば、形跡Aは認証子Aおよび認証子Bから算出された値の上位ビットおよび下位ビットの一方であり、形跡Bは上位ビットおよび下位ビットの他方である。
【0044】
サーバー10の認証部104は、認証子Aおよび認証子Cを記憶部105から読み出し、認証子Aおよび認証子Cを送信部102に出力する。送信部102は、認証子Aおよび認証子Cを車両制御装置30に送信する。車両制御装置30の受信部302は、認証子Aおよび認証子Cをサーバー10から受信し、受信された認証子Aおよび認証子Cを認証部300に出力する(ステップS109)。ステップS107が実行される前にステップS109が実行されてもよい。
【0045】
ステップS102が実行された後、かつステップS106が実行される前にステップS109が実行されてもよい。つまり、サーバー10とデバイス20との間の相互認証が完了する前にステップS109が実行されてもよい。
【0046】
認証部300は、認証子Aおよび認証子Cを使用することにより形跡Aおよび形跡Aとは異なる形跡Bを算出する(ステップS110)。例えば、形跡Aは認証子Aおよび認証子Cから算出された値の上位ビットおよび下位ビットの一方であり、形跡Bは上位ビットおよび下位ビットの他方である。
【0047】
車両制御装置30の認証部300は、形跡Aを送信部301に出力する。送信部301は、形跡Aをデバイス20に送信する。デバイス20の受信部202は、形跡Aを車両制御装置30から受信し、受信された形跡Aを認証部200に出力する(ステップS111)。
【0048】
デバイス20の認証部200は、形跡Bを送信部201に出力する。送信部201は、形跡Bを車両制御装置30に送信する。車両制御装置30の受信部302は、形跡Bをデバイス20から受信し、受信された形跡Bを認証部300に出力する(ステップS112)。ステップS111が実行される前にステップS112が実行されてもよい。
【0049】
車両制御装置30の認証部300は、ステップS110において算出された形跡Bと、デバイス20から受信された形跡Bとが一致するか否かを検証することによりデバイス20を認証する(ステップS113)。2つの形跡Bが異なる場合、デバイス20の認証に失敗する。2つの形跡Bが一致する場合、デバイス20の認証に成功する。
【0050】
デバイス20の認証部200は、ステップS108において算出された形跡Aと、車両制御装置30から受信された形跡Aとが一致するか否かを検証することにより車両制御装置30を認証する(ステップS114)。2つの形跡Aが異なる場合、車両制御装置30の認証に失敗する。2つの形跡Aが一致する場合、車両制御装置30の認証に成功する。
【0051】
デバイス20の認証に成功し、かつ車両制御装置30の認証に成功した場合、車両制御装置30とデバイス20との間の相互認証が完了する。つまり、車両制御装置30とデバイス20とのペアリングが完了する。デバイス20は、デジタルキーを使用して車両制御装置30を制御することにより、車両の扉の施錠およびエンジンの始動などを行う。
【0052】
上記のように、サーバー10の認証子算出部101(算出部)は、乱数A(第1の乱数)および乱数B(第2の乱数)を使用することにより認証子A(第1の認証子)および認証子B(第2の認証子)を算出し、認証子Bから認証子C(第3の認証子)を算出する。サーバー10の送信部102は、認証子Aおよび認証子Bをデバイス20に送信し、認証子Aおよび認証子Cを車両制御装置30に送信する。デバイス20は、デジタルキーを有し、認証子Aおよび認証子Bを使用することにより車両制御装置30を認証する。車両制御装置30は、認証子Aおよび認証子Cを使用することによりデバイス20を認証する。
【0053】
サーバー10の送信部102が認証子Aおよび認証子Bをデバイス20に送信するため、デバイス20は乱数Aおよび乱数Bを使用することにより認証子Aおよび認証子Bを算出する必要はない。そのため、認証システム1は、デバイス20における処理負荷を減らすことができる。
【0054】
上記のように、サーバー10の認証部104は、デバイス20から送信されたデバイス認証情報を使用することによりデバイス20を認証する。サーバー10の送信部102は、デバイス20がサーバー10を認証するために必要なサーバー認証情報をデバイス20に送信する。認証部104がデバイス20を認証し、かつデバイス20がサーバー10を認証した後、送信部102は認証子Aおよび認証子Bをデバイス20に送信する。
【0055】
サーバー10がデバイス20に情報を送信する場合、従来技術では、電子メールまたはショートメッセージサービス(SMS)を利用することにより送信されるURL内にその情報を挿入する方法が提案されている。この方法では、第三者がデバイス20になりすましてそのURLを取得し、認証子が第三者に流出する可能性がある。第1の実施形態では、サーバー10およびデバイス20が互いに認証した後にサーバー10が認証子Aおよび認証子Bをデバイス20に送信するため、認証システム1は第三者への認証子Aおよび認証子Bの流出を回避することができる。
【0056】
(第2の実施形態)
本発明の第2の実施形態を説明する。第2の実施形態において、サーバー10とデバイス20との間の相互認証は、証明書の電子署名の検証を含む。
【0057】
デバイス20の記憶部203は、デバイスOEM(Original Equipment Manufacture)の公開鍵(デバイス公開鍵)およびデバイス公開鍵と対応する秘密鍵(デバイス秘密鍵)を予め記憶する。車両制御装置30の記憶部303は、車両OEMの公開鍵(車両公開鍵)および車両公開鍵と対応する秘密鍵(車両秘密鍵)を予め記憶する。サーバー10の記憶部105は、車両秘密鍵によって暗号化された電子署名を含む車両証明書を予め記憶する。
【0058】
図6を使用することにより、第2の実施形態による認証システム1の動作を説明する。
図6は、認証システム1の動作の例を示す。
図5に示す処理と同じ処理の説明を省略する。
【0059】
サーバー10は、ステップS100からステップS102を予め実行し、認証子Aと認証子Bと認証子Cとを算出する。
【0060】
デバイス20の認証部200は、デバイス公開鍵を記憶部203から読み出し、デバイス公開鍵を送信部201に出力する。送信部201は、デバイス公開鍵をサーバー10に送信する。サーバー10の受信部103は、デバイス公開鍵をデバイス20から受信し、受信されたデバイス公開鍵を認証部104に出力する(ステップS120)。デバイス20は、デバイス公開鍵を車両制御装置30に送信し、車両制御装置30はデバイス公開鍵をサーバー10に送信してもよい。
【0061】
車両制御装置30の認証部300は、車両公開鍵を記憶部303から読み出し、車両公開鍵を送信部301に出力する。送信部301は、車両公開鍵をデバイス20に送信する。デバイス20の受信部202は、車両公開鍵を車両制御装置30から受信し、受信された車両公開鍵を認証部300に出力する(ステップS121)。ステップS120が実行される前にステップS121が実行されてもよい。
【0062】
デバイス20の認証部200は、デバイス秘密鍵を記憶部203から読み出し、デバイス秘密鍵によって暗号化された電子署名を含むインスタンスCA証明書(デバイス証明書)を生成する。認証部200は、デバイス証明書を含む署名検証要求を生成し、生成された署名検証要求を送信部201に出力する。例えば、署名検証要求はHTTPリクエストであり、デバイス証明書はHTTPリクエストのBodyに格納される。送信部201は、署名検証要求をサーバー10に送信する。サーバー10の受信部103は、署名検証要求をデバイス20から受信し、受信された署名検証要求を認証部104に出力する(ステップS122)。
【0063】
認証部104の検証部1040は、受信部202によって受信されたデバイス公開鍵を使用することにより、署名検証要求に含まれるデバイス証明書の電子署名を復号し、電子署名を検証する。これにより、検証部1040は電子署名の有効性を確認し、デバイス20を認証する(ステップS123)。
【0064】
電子署名が有効でない場合、デバイス20の認証に失敗する。電子署名が有効である場合、デバイス20の認証に成功する。検証部1040は、署名検証応答を生成し、生成された署名検証応答を送信部102に出力する。デバイス20の認証に失敗した場合、署名検証応答は、認証に失敗したことを示す情報を含む。デバイス20の認証に成功した場合、署名検証応答は車両証明書を含む。送信部102は、署名検証応答をデバイス20に送信する。デバイス20の受信部202は、署名検証応答をサーバー10から受信し、受信された署名検証応答を認証部200に出力する(ステップS124)。
【0065】
認証に失敗したことを示す情報を署名検証応答が含む場合、
図6に示す処理が終了する。署名検証応答が車両証明書を含む場合、認証部200は、受信部202によって受信された車両公開鍵を使用することにより、車両証明書の電子署名を復号し、電子署名を検証する。これにより、認証部200は電子署名の有効性を確認し、サーバー10を認証する(ステップS125)。
【0066】
電子署名が有効でない場合、サーバー10の認証に失敗する。電子署名が有効である場合、サーバー10の認証に成功する。
【0067】
車両証明書は、車両秘密鍵によって暗号化された電子署名を含む。車両秘密鍵は、車両制御装置30が所持する車両公開鍵と対応する。車両秘密鍵によって署名された有効な電子署名を含む車両証明書をサーバー10が所持していることが確認できた場合、デバイス20はサーバー10が正当であると判断し、サーバー10の認証に成功する。サーバー10の認証に成功した場合、サーバー10とデバイス20との間の相互認証が完了する。サーバー10の認証に失敗した場合、
図6に示す処理が終了する。
【0068】
サーバー10とデバイス20との間の相互認証が完了したとき、サーバー10の認証部104およびデバイス20の認証部200は共通鍵を生成する。共通鍵を生成するためのアルゴリズムとして、証明書をメッセージとするハッシュまたは鍵導出関数などが使用される。共通鍵を生成するためにどのようなアルゴリズムが使用されてもよい。
【0069】
デバイス20の認証部200は、共通鍵で暗号化された認証子要求を生成し、生成された認証子要求を送信部201に出力する。送信部201は、認証子要求をサーバー10に送信する。サーバー10の受信部103は、認証子要求をデバイス20から受信し、受信された認証子要求を認証部104に出力する(ステップS126)。
【0070】
認証部104の認証情報生成部1041は、認証子要求を共通鍵で復号し、デバイス20が認証子を要求していることを認識する。認証情報生成部1041は、認証子Aおよび認証子Bを記憶部105から読み出し、認証子Aおよび認証子Bを含む認証子応答を生成する。認証子応答は、共通鍵で暗号化されている。認証情報生成部1041は認証子応答を送信部102に出力し、送信部102は認証子応答をデバイス20に送信する。デバイス20の受信部202は、認証子応答をサーバー10から受信し、受信された認証子応答を認証部200に出力する(ステップS127)。
【0071】
認証部200は、認証子応答を共通鍵で復号し、認証子応答に含まれる認証子Aおよび認証子Bを取得する。認証部200は、認証子Aおよび認証子Bを使用することにより形跡Aおよび形跡Aとは異なる形跡Bを算出する(ステップS108)。また、
図5に示す動作と同様に、ステップS109からステップS114が実行される。
【0072】
上記のように、サーバー10の受信部103は、デバイス20が所持するデバイス秘密鍵(第1の秘密鍵)によって暗号化された電子署名をデバイス20から受信する。サーバー10の認証部104は、デバイス秘密鍵と対応するデバイス公開鍵を使用して電子署名を検証することによりデバイス20を認証する。サーバー10の送信部102は、デバイス20がサーバー10を認証するために必要な情報として、サーバーが所持する車両秘密鍵(第2の秘密鍵)によって暗号化された電子署名をデバイス20に送信する。
【0073】
第2の実施形態において、サーバー10およびデバイス20が互いに認証した後にサーバー10が認証子Aおよび認証子Bをデバイス20に送信する。そのため、第1の実施形態と同様に、認証システム1は第三者への認証子Aおよび認証子Bの流出を回避することができる。
【0074】
(第3の実施形態)
本発明の第3の実施形態を説明する。第3の実施形態において、サーバー10とデバイス20との間の相互認証は、認証コードの検証を含む。
【0075】
サーバー10の記憶部105は、公開鍵(車両公開鍵)および車両公開鍵と対応する秘密鍵(車両秘密鍵)を予め記憶する。サーバー10は、真正性が保証された外部認証局(CA: Certificate Authority)を持つ。デバイス20の記憶部203は、外部CAによって生成された公開鍵(外部CA公開鍵)および外部CA公開鍵と対応する秘密鍵(外部CA秘密鍵)を予め記憶する。また、サーバー10は外部CA公開鍵をデバイス20から予め受信し、外部CA公開鍵を記憶部105に記憶させる。デバイス20は車両公開鍵をサーバー10から予め受信し、車両公開鍵を記憶部203に記憶させる。
【0076】
図7を使用することにより、第3の実施形態による認証システム1の動作を説明する。
図7は、認証システム1の動作の例を示す。
図5に示す処理と同じ処理の説明を省略する。
【0077】
サーバー10は、ステップS100からステップS102を予め実行し、認証子Aと認証子Bと認証子Cとを算出する。
【0078】
デバイス20の認証部200は、認証コードを生成する(ステップS130)。認証コードは、乱数から生成されたデバイス20のPIN(Personal Identification Number)であってもよい。あるいは、認証コードは、ユーザーによって入力されたパスワードなどであってもよい。
【0079】
認証部200は、生成された認証コードを送信部201に出力し、送信部201は認証コードをサーバー10に送信する。サーバー10の受信部103は、認証コードをデバイス20から受信し、受信された認証コードを認証部104に出力する(ステップS131)。
【0080】
認証部104の検証部1040は、車両秘密鍵を記憶部105から読み出し、認証コードを車両秘密鍵で暗号化する(ステップS132)。認証コードを暗号化するためのアルゴリズムは、どのようなアルゴリズムであってもよい。暗号化された認証コード(暗号化認証コード)は、デバイス20が所持する車両公開鍵で復号可能である。
【0081】
検証部1040は、暗号化認証コードを送信部102に出力し、送信部102は暗号化認証コードをデバイス20に送信する。デバイス20の受信部202は、暗号化認証コードをサーバー10から受信し、受信された暗号化認証コードを認証部200に出力する(ステップS133)。
【0082】
認証部200は、車両公開鍵を記憶部203から読み出し、暗号化認証コードを車両公開鍵で復号することにより認証コードを取得する。認証部200は、ステップS130において生成された認証コードと、暗号化認証コードを復号することによって取得された認証コードとが一致するか否かを検証することによりサーバー10を認証する(ステップS134)。2つの認証コードが異なる場合、サーバー10の認証に失敗する。2つの認証コードが一致する場合、サーバー10の認証に成功する。
【0083】
サーバー10の認証に失敗した場合、
図7に示す処理が終了する。サーバー10の認証に成功した場合、認証部200は、ステップS130において生成された認証コードを外部CA秘密鍵で暗号化する(ステップS135)。認証コードを暗号化するためのアルゴリズムは、どのようなアルゴリズムであってもよい。暗号化された認証コード(暗号化認証コード)は、サーバー10が所持する外部CA公開鍵で復号可能である。
【0084】
認証部200は、暗号化認証コードを送信部201に出力し、送信部201は暗号化認証コードをサーバー10に送信する。サーバー10の受信部103は、暗号化認証コードをデバイス20から受信し、受信された暗号化認証コードを認証部104に出力する(ステップS136)。
【0085】
認証部104の検証部1040は、外部CA公開鍵を記憶部105から読み出し、暗号化認証コードを外部CA公開鍵で復号することにより認証コードを取得する。検証部1040は、ステップS131において受信された認証コードと、ステップS136において受信された暗号化認証コードを復号することによって取得された認証コードとが一致するか否かを検証することによりサーバー10を認証する(ステップS137)。2つの認証コードが異なる場合、デバイス20の認証に失敗する。2つの認証コードが一致する場合、デバイス20の認証に成功する。
【0086】
デバイス20の認証に成功した場合、サーバー10とデバイス20との間の相互認証が完了する。デバイス20の認証に失敗した場合、
図7に示す処理が終了する。サーバー10とデバイス20との間の相互認証が完了した後、
図5に示す動作と同様に、ステップS107からステップS114が実行される。
【0087】
上記のように、サーバー10の受信部103は、認証コードをデバイス20から受信する。サーバー10の認証部104は、サーバー10が所持する車両秘密鍵(第1の秘密鍵)を使用することにより認証コードを暗号化する。サーバー10の送信部102は、デバイス20がサーバー10を認証するために必要な情報として、認証部104によって暗号化された認証コードをデバイス20に送信する。受信部103は、デバイス20によって暗号化された認証コードをデバイス20から受信する。認証部104は、デバイス20が所持する外部CA秘密鍵(第2の秘密鍵)を使用することによって暗号化された認証コードを外部CA秘密鍵と対応する外部CA公開鍵で復号し、復号結果を検証することによりデバイス20を認証する。
【0088】
第3の実施形態において、サーバー10およびデバイス20が互いに認証した後にサーバー10が認証子Aおよび認証子Bをデバイス20に送信する。そのため、第1の実施形態と同様に、認証システム1は第三者への認証子Aおよび認証子Bの流出を回避することができる。
【0089】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0090】
1 認証システム、10 サーバー、20 デバイス、30 車両制御装置、100 乱数生成部、101 認証子算出部、102,201,301 送信部、103,202,302 受信部、104,200,300 認証部、105,203,303 記憶部、1040 検証部、1041 認証情報生成部