(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-27
(45)【発行日】2024-09-04
(54)【発明の名称】情報検証装置、電子制御装置、及び情報検証方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240828BHJP
G06F 21/64 20130101ALI20240828BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
G06F21/64
(21)【出願番号】P 2022558876
(86)(22)【出願日】2021-08-25
(86)【国際出願番号】 JP2021031236
(87)【国際公開番号】W WO2022091544
(87)【国際公開日】2022-05-05
【審査請求日】2023-03-16
(31)【優先権主張番号】P 2020180515
(32)【優先日】2020-10-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】三宅 淳司
【審査官】辻 勇貴
(56)【参考文献】
【文献】欧州特許出願公開第03101535(EP,A1)
【文献】特開2018-107514(JP,A)
【文献】特表2017-505048(JP,A)
【文献】特開2002-259344(JP,A)
【文献】特開2020-072339(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
情報検証装置であって、
情報発信元と当該情報検証装置で知識共有された共通鍵を外部から容易に読み取れない形式で格納しており、
前記情報発信元は、当該情報検証装置が真正性を検証すべきホスト装置宛ての配信情報と、当該情報検証装置宛ての更新情報とを配信できるように構成されており、
前記情報発信元から当該情報検証装置宛ての更新情報は、前記情報発信元と前記情報検証装置とで知識共有された共通鍵を更新するためのデータと、前記共通鍵を更新すべき前記情報検証装置の識別子と、前記共通鍵の更新タイミングの少なくとも三つを含み、
前記情報検証装置は、
前記配信情報が当該情報検証装置宛ての更新情報である場合、
復号化された配信情報を出力せず、前記更新情報を用いて当該情報検証装置の内部値を変更し、
前記情報発信元から送信され、同期した時刻及び前記共通鍵によって生成されたワンタイムパスワードと、前記情報発信元から送信され、認証以外の利用価値を有する配信情報と、前記情報発信元から送信され、これらの情報から当該共通鍵を用いて計算されたメッセージ認証コードの少なくとも三つが入力されると、少なくとも前記配信情報の真正性の判定結果を出力し、
前記情報発信元から送信される配信情報の真正性判定結果が真正であり、かつ識別子が自情報検証装置のものと合致する場合、前記更新タイミングに当該検証装置内に格納される共通鍵を更新することを特徴とする情報検証装置。
【請求項2】
請求項1記載の情報検証装置であって、
前記情報発信元から送信されたワンタイムパスワードと当該情報検証装置内で計算されたワンタイムパスワードとが一致し、かつ、前記情報発信元から送信されたメッセージ認証コードと当該情報検証装置内で計算されたメッセージ認証コードとが一致する場合、前記配信情報が真正であると判定し、前記配信情報が真正であることを出力することを特徴とする情報検証装置。
【請求項3】
請求項1記載の情報検証装置であって、
前記情報発信元から送信されるワンタイムパスワードは、前記情報発信元から当該情報検証装置へ送信される一連の情報から送信開始時刻に基づいて生成される時刻同期型のワンタイムパスワードであることを特徴とする情報検証装置。
【請求項4】
請求項1記載の情報検証装置であって、
前記情報発信元から送信されるメッセージ認証コードは、前記情報発信元から送信されるワンタイムパスワード及び前記情報発信元から送信される配信情報に基づいて、前記共通鍵を用いて計算されることを特徴とする情報検証装置。
【請求項5】
請求項1記載の情報検証装置であって、
前記配信情報は、前記共通鍵によって暗号化されて、前記情報発信元から送信されるものであって、
前記情報検証装置は、
前記情報発信元から送信された配信情報を復号化して、
前記配信情報の真正性判定結果、及び復号化した配信情報を出力することを特徴とする情報検証装置。
【請求項6】
請求項5記載の情報検証装置であって、
前記ワンタイムパスワードを生成するための共通鍵と、前記メッセージ認証コードを生成するための共通鍵と、前記配信情報を暗号化するための共通鍵とは、同一の鍵である、又は複数の別個の鍵であることを特徴とする情報検証装置。
【請求項7】
請求項1記載の情報検証装置であって、
前記情報発信元から当該情報検証装置宛ての更新情報は、当該情報検証装置の時計を修正するための時刻データを含み、
前記情報検証装置は、前記情報発信元から送信される配信情報の真正性判定結果が真正である場合、前記時刻データを用いて当該情報検証装置の時計を修正することを特徴とする情報検証装置。
【請求項8】
請求項1記載の情報検証装置であって、
複数の前記情報検証装置が情報発信元とで知識共有した同一の共通鍵への変更によって、当該情報検証装置を格納する複数の受信機器群でクラスタを形成し、
前記クラスタを形成する複数の情報検証装置は、前記情報発信元から同一のワンタイムパスワードと同一メッセージ認証コードとを用いて、同一の配信情報を同時に受信することを特徴とする情報検証装置。
【請求項9】
請求項1から
8のいずれか一つに記載の情報検証装置を含み、自動車に搭載される電子制御装置。
【請求項10】
情報検証装置が実行する情報検証方法であって、
前記情報検証装置は、所定の処理を実行する演算装置によって構成され、情報発信元と当該情報検証装置で知識共有された共通鍵を外部から容易に読み取れない形式で格納しており、
前記情報発信元は、当該情報検証装置が真正性を検証すべきホスト装置宛ての配信情報と、当該情報検証装置宛ての更新情報とを配信できるように構成されており、
前記情報発信元から当該情報検証装置宛ての更新情報は、前記情報発信元と前記情報検証装置とで知識共有された共通鍵を更新するためのデータと、前記共通鍵を更新すべき前記情報検証装置の識別子と、前記共通鍵の更新タイミングの少なくとも三つを含み、
前記情報検証方法は、
前記情報検証装置が、前記配信情報が当該情報検証装置宛ての更新情報である場合、
復号化された配信情報を出力せず、前記更新情報を用いて当該情報検証装置の内部値を変更し、
前記情報検証装置が、前記情報発信元から送信され、同期した時刻及び前記共通鍵によって生成されたワンタイムパスワードと、前記情報発信元から送信され、認証以外の利用価値を有する配信情報と、前記情報発信元から送信され、これらの情報から当該共通鍵を用いて計算されたメッセージ認証コードの少なくとも三つが入力されると、少なくとも前記配信情報の真正性の判定結果を出力し、
前記情報検証装置が、前記情報発信元から送信される配信情報の真正性判定結果が真正であり、かつ識別子が自情報検証装置のものと合致する場合、前記更新タイミングに当該検証装置内に格納される共通鍵を更新することを特徴とする情報検証方法。
【発明の詳細な説明】
【参照による取り込み】
【0001】
本出願は、令和2年(2020年)10月28日に出願された日本出願である特願2020-180515の優先権を主張し、その内容を参照することにより、本出願に取り込む。
【技術分野】
【0002】
本発明は、情報検証装置に関し、特に通信路を介して送られる情報の改竄検知技術に関する。
【背景技術】
【0003】
ネットワークを経由して添削される情報が途中で欠落したり、改竄されていないことを検証するため、一般的にデジタル署名が採用されている。
【0004】
しかしながら、デジタル署名は鍵配信時の盗聴による脆弱性を低減するために公開鍵暗号が使われており、組み込み機器など比較的低能力のCPU(Central Processing Unit)で構成された計算機には、この署名部を復号化する負担が大きくなっている。
【0005】
また、公開鍵暗号の形式にRSA暗号が採用されている場合、量子コンピュータが実現した際には、その素因数分解計算能力によって秘密鍵が容易に発見され、この危殆化により署名部が偽造されるなどの危険性を有している。
【0006】
本技術分野の背景技術として、特開2002-259344号公報(特許文献1)及び特許第6078686号公報(特許文献2)がある。
特開2002-259344号公報(特許文献1)には、ユーザ端末に接続するユーザ認証サーバと、携帯電話とからなるワンタイムパスワード認証システムであって、携帯電話は、(1)秘密情報を格納する携帯電話側秘密情報格納部と、(2)ユーザIDと、現在時刻情報と、携帯電話側秘密情報格納部に格納する秘密情報とを用いて、ハッシュ値を求め、求めたハッシュ値を文字列に変換することによりワンタイムパスワードを生成する携帯電話側ハッシュ生成部と、(3)生成したワンタイムパスワードを表示するワンタイムパスワード表示部とを有し、ユーザ認証サーバは、(4)ユーザIDとワンタイムパスワードとを、ユーザ端末から受信するユーザID/ワンタイムパスワード受信部と、(5)携帯電話側秘密情報格納部で格納する秘密情報と同一の秘密情報を格納するサーバ側秘密情報格納部と、(6)受信したユーザIDと、現在時刻情報と、サーバ側秘密情報格納部に格納する秘密情報とを用いて、ハッシュ値を求め、求めたハッシュ値を文字列に変換することによりワンタイムパスワードを生成するサーバ側ハッシュ生成部と、(7)サーバ側ハッシュ生成部で生成したワンタイムパスワードと、ユーザID/ワンタイムパスワード受信部で受信したワンタイムパスワードとを比較し、一致した場合に認証結果を成功とするワンタイムパスワード検証部と、(8)認証結果を、ユーザ端末に送信する認証結果送信部とを有することを特徴とするワンタイムパスワード認証システムが記載されている(請求項1参照)。
【0007】
また、特許第6078686号公報(特許文献2)には、車両の動作を制御する車載制御装置を維持管理するために用いる操作端末を認証する認証システムであって、前記認証システムは、通信回線を介して前記操作端末と接続され前記操作端末を操作する操作者を認証する認証装置、および前記車載制御装置を備え、前記車載制御装置は、前記操作端末が前記車載制御装置を維持管理する操作を実施することを許可するか否かを判定するように構成されており、前記認証装置と前記車載制御装置は、互いに同期して変化する変動符号を生成する変動符号生成源、前記認証装置と前記車載制御装置との間で共有する前記車両に固有の共通鍵を格納する記憶部、前記変動符号と前記共通鍵を用いて認証符号を生成する認証符号生成器、をそれぞれ備え、前記認証装置は、前記操作端末から認証要求を受け取ると前記操作者を認証し、前記操作者の認証が成功すると、前記操作端末から前記共通鍵を特定する情報を取得し、前記変動符号と前記共通鍵を用いて前記認証符号を生成して前記操作端末へ送信し、前記操作端末は、前記認証装置から受け取った前記認証符号を前記車載制御装置へ送信し、前記車載制御装置は、前記変動符号と前記共通鍵を用いて前記認証符号を生成し、生成した前記認証符号と前記操作端末から受け取った前記認証符号とが一致する場合は、前記操作端末が前記車載制御装置を維持管理する操作を実施することを許可することを特徴とする認証システムが記載されている(請求項1参照)。
【0008】
また、Specification of Module Secure Onboard Communication(非特許文献1)には、MAC認証でやり取りする情報の改竄検知を行い、配信情報に含ませたFVカウンターで再生攻撃を検知することが記載されている。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2002-259344号公報
【文献】特許第6078686号公報
【非特許文献】
【0010】
【文献】"Specification of Module Secure Onboard Communication"、[online]、AUTOSAR、https://www.autosar.org/fileadmin/user_upload/standards/classic/4-2/AUTOSAR_SWS_SecureOnboardCommunication.pdf
【発明の概要】
【発明が解決しようとする課題】
【0011】
デジタル署名の署名部を処理するための公開鍵暗号等の非対称鍵暗号は計算量が大きく、大きな処理能力が必要とされるので、他の方式に変更して処理負荷を軽減することが求められている。
【0012】
例えば、RSAなどの公開鍵暗号では巨大な冪剰余の算術計算が必要である。一方、MAC認証に用いられるハッシュ関数の計算は、論理演算とシフト演算で実装可能であり、組込み用途の車載ECU(Electric Control Unit)やIoT(Internet of Things)機器に使用される低能力のCPUでも簡単に取り扱える。
【0013】
特許文献1及び特許文献2では、MAC認証を用いて時刻同期型ワンタイムパスワードを生成しているが、認証の元となる情報が時刻と機器の識別情報以外に利用価値のある情報を含んでいない。すなわち、認証情報だけのやり取りに限定される発明であり、配信情報など認証以外のMAC認証技術には対応していない。
【0014】
本発明は、認証以外に利用価値のある配信情報にMAC認証を使用し、同時に再生攻撃も検知可能な方法を提案する、という二つの課題を掲げてこの解決を計っている。ここで再生攻撃とは、通信路の盗聴者が通信路に流れる過去の情報を記録し、後に、記録した情報やシーケンスをそのまま攻撃対象に送信して攻撃対象を騙そうとする方法である。デジタル署名では署名部が時間情報を含まないため、再生攻撃を検出できない。
【0015】
非特許文献1(Specification of Module Secure Onboard Communication)では、MAC認証でやり取りする情報の改竄検知を行い、配信情報に含まれるカウンターであるFV(Freshness Value)を用いて再生攻撃を検知している。
【0016】
FVは、送信元が情報を送出する都度に値が更新されるカウンターであり、受信側では同一のFV値の情報を受理しないことによって再生攻撃を排除している。
【0017】
しかしながら、非特許文献1ではMAC認証を行う共通鍵を予め車載LANを通じて配信するので、この共通鍵が盗聴されるリスクがある。従って、Onboard Communication、すなわち、車載LANなどの限定された範囲における通信では実用性があるが、インターネットを経由して鍵を配信できるほどセキュアではない。また、送信側と受信側の両方でFV値を管理すると、配信先が増えた場合にFV値の管理が煩雑になる。
【0018】
本発明では、前述した鍵配信時の漏洩問題を解決して、インターネットを経由して送られる配信情報の改竄を検知することを目的とする。さらに、デジタル署名では不可能な再生攻撃を検知し、しかも配信先が増えた場合でも管理が煩雑にならない方法を提案することを目的とする。
【課題を解決するための手段】
【0019】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、情報検証装置であって、情報発信元と当該情報検証装置で知識共有された共通鍵を外部から容易に読み取れない形式で格納しており、前記情報発信元は、当該情報検証装置が真正性を検証すべきホスト装置宛ての配信情報と、当該情報検証装置宛ての更新情報とを配信できるように構成されており、前記情報発信元から当該情報検証装置宛ての更新情報は、前記情報発信元と前記情報検証装置とで知識共有された共通鍵を更新するためのデータと、前記共通鍵を更新すべき前記情報検証装置の識別子と、前記共通鍵の更新タイミングの少なくとも三つを含み、前記情報検証装置は、前記配信情報が当該情報検証装置宛ての更新情報である場合、復号化された配信情報を出力せず、前記更新情報を用いて当該情報検証装置の内部値を変更し、前記情報発信元から送信され、同期した時刻及び前記共通鍵によって生成されたワンタイムパスワードと、前記情報発信元から送信され、認証以外の利用価値を有する配信情報と、前記情報発信元から送信され、これらの情報から当該共通鍵を用いて計算されたメッセージ認証コードの少なくとも三つが入力されると、少なくとも前記配信情報の真正性の判定結果を出力し、前記情報発信元から送信される配信情報の真正性判定結果が真正であり、かつ識別子が自情報検証装置のものと合致する場合、前記更新タイミングに当該検証装置内に格納される共通鍵を更新することを特徴とする。
【発明の効果】
【0020】
本発明の一態様によれば、配信情報の改竄及び再生攻撃を検知できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0021】
【
図1】前提となるOTP照合チップのユースケースを示す図である。
【
図2】前提となるOTP照合チップ、及びその施錠装置内に格納される形態を示すブロック図である。
【
図3】実施例1に係る拡張されたOTP照合チップの詳細を示すブロック図である。
【
図4】実施例1の方式と従来のデジタル署名と比較して示す図である。
【
図5】実施例1の配信情報検証処理を示すフローチャートである。
【
図6】実施例1の情報転送におけるOTPの時刻の基準を示すタイミング図である。
【
図7】実施例1でMAC値の範囲にOTPを含まない場合の情報送出プロセスと中間者攻撃を示すタイミング図である。
【
図8】実施例2に係る拡張されたOTP照合チップの詳細を示すブロック図である。
【
図9】実施例2の配信情報検証処理を示すフローチャートである。
【
図10】実施例3に係る拡張されたOTP照合チップの詳細を示すブロック図である。
【
図11】実施例3の配信情報検証処理を示すフローチャートである。
【
図12】実施例3の定時割込み処理のフローチャートである。
【
図13】実施例3の受信クラスタを動的に拡大や縮小する受信機器群を示す図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段として必須であるとは限らない。
【0023】
なお、実施例を説明する図において、同一の機能を有する箇所には同一の符号を付し、その繰り返しの説明は省略する。
【0024】
また、以下の説明では、情報の一例として「xxxレジスタ」、「xxxメモリ」という情報記憶域に関する表現を用いる場合があるが、記憶域の特性に関する属性、すなわちロケーションの指定方法、アクセス速度に関する優劣、電源操作もしくはリフレッシュ動作に対する揮発性か不揮発性か、もしくは読み書き可か読み出し専用かなどの属性をその文言により分類するものでは無い。加えて、情報のデータ構造はどのようなものでもよい。すなわち、情報が記憶域の構造に依存しないことを示すために、「xxxレジスタ内容」を「xxxメモリ内容」と言うことができる。さらに、「xxxメモリ内容」を単に「xxxの内容」と言うこともある。そして、以下の説明において、各情報の構成は一例であり、情報を分割して保持したり、結合して保持したりしても良い。
【0025】
<前提となる構成>
本願に先行する形でOTP(One Time Password:ワンタイムパスワード)照合チップの内容を以下に簡単に説明する。
【0026】
図1は、前提となるOTP照合チップ110のユースケースを示す図である。
【0027】
施錠装置103の内部に実装されたOTP照合チップ110は、ユーザ102を認証するために、所定の処理を実行する演算部と演算部がアクセス可能な記憶部とを有するデバイスである。演算部は、所定の手順に従って演算処理を実行するものであり、プロセッサが所定のプログラムを実行するものでも、ハードウェア(FPGA、ASICなど)でもよい。施錠装置103は、OTP照合チップ110の認証結果によって施錠装置103の施錠・開錠動作を引き起こす機能を有する。
【0028】
ユーザ102は、厳格なユーザ認証107を経てユーザ認証&OTP発行サーバ100にログオンし、権限が認められるとユーザ認証&OTP発行サーバ100から時刻同期型OTP108が発行される。
【0029】
ユーザ102は、発行されたOTP108を、所定時間内に施錠装置103に開示する(発行されたOTP108と施錠装置103に開示されるOTP109は、符号が異なるのみで同じものである)。施錠装置103は、内部のOTP照合チップ110にOTP109の真正性の判定を依頼し、判定によって認証に成功すれば(真正性が認められれば)所定の動作を行う。
【0030】
OTP照合チップ110は、製造段階でユーザ認証&OTP発行サーバ100とパスフレーズ106という共通鍵を共有し、情報が漏洩することなく、製品の製造段階から稼働段階まで共通鍵を秘匿できる。鍵情報を通信路に流さない極めて物理的な鍵配信と言える。
【0031】
OTP照合チップ110は、タンパー性に優れており、外部より物理的に中の共通鍵を探ることは不可能であり、OTP照合チップ内部のファームウェアのみが共通鍵情報にアクセスできる構造となっている。従って、OTP照合チップ110は一種のHSM(Hardware Security Module)とみなすことができる。
【0032】
サーバ100の時計104とOTP照合チップ110内の時計105は同期しており、パスフレーズ106という共通鍵はサーバ100とOTP照合チップ110で共有されているので、サーバ100の時計104の時刻とパスフレーズ106を用いてハッシュ関数(後述)によって計算した値(OTP108、109)と、OTP照合チップ110内の時計105とパスフレーズ106を用いて同一のハッシュ関数によって計算した比較用の値(図示せず)の一致によって認証が成功する。
【0033】
ここで、本実施例のために、ユーザ認証&OTP発行サーバ100を情報配信サーバ(
図13の1300)に拡張して考える。さらに、ユーザ102の中間関与を排除し、情報配信サーバ1300自体がオンデマンドで配信情報を加えて拡張したOTP(
図4の422)を直に施錠装置103、さらにはOTP照合チップ110まで送信する場合を考える。
【0034】
この時、OTP照合チップ110内部のパスフレーズ106という情報配信サーバ1300と共有した共通鍵をMAC認証に流用でき、MAC認証を用いて配信情報の改竄を検知できる。
【0035】
また、前述のように、この共通鍵はOTP照合チップ110内に隠蔽された鍵情報の物理配布に相当するので、非特許文献1のような通信媒体上の鍵配信に基づく盗聴リスクがなく、またデジタル署名のように公開鍵暗号を使わなくてもよい。
【0036】
さらに、配信情報の先頭に、元々の機能である時刻同期型ワンタイムパスワードをヘッダとして付加することによって、グローバル時間と関連付けて該当時刻に発信された情報である(記録された後に再生された情報ではない)ことを検証でき、再生攻撃を検知できる。
【0037】
図2は、前提となるOTP照合チップ110、及びその施錠装置103内に格納される形態を示すブロック図である。
【0038】
施錠装置103は、ホストCPU210及びOTP照合チップ110から構成される。ホストCPU210とOTP照合チップ110とは通信可能に接続されている。
【0039】
従来、セキュリティに関する演算は、本体チップ(前述のホストCPU210)と別体のセキュリティチップ(前述のOTP照合チップ110)に集約されることがある。これはセキュリティチップに格納された秘匿すべき秘密鍵(公開鍵暗号方式で称するところの情報)、又は共通鍵(共通鍵暗号方式で称するところの情報)などの情報漏洩を防ぐためである。セキュリティチップが、本体チップと別体になり、ハードウェア的に完全に独立したモジュールをHSM(Hardware Security Module)と呼ぶことは前述の通りである。
【0040】
セキュリティチップと本体チップとを別体とすることによって、セキュリティチップのメモリ空間を本体チップから完全に観測不能にでき、秘匿情報の漏洩を防止できる。また、耐タンパー性の観点からも封止開放で情報が消えるシリコンプロセス(フローティング・キャパシタンス)などの秘匿化方法をセキュリティチップのみに採用できるようになる。
【0041】
ホストCPU210とOTP照合チップ110を別体にすることによって、前述の通りOTP照合チップ110そのものにより耐タンパー性を確保でき、ホストCPU210を通じてOTP照合チップ110内部に秘匿され保護された共通鍵(例えば、
図1のユーザ認証&OTP発行サーバ100と知識共有したパスフレーズ106)の情報を読み出されることを防止できる。
【0042】
ワンタイムパスワード109は、ホストCPU210を介し、通信路211を経由してOTP照合チップ110に送られる。検証結果は、OTP照合チップ110より通信路212を経由してホストCPU210に送り返される、この結果によって、ホストCPU210は次に実行する処理を決定する。
【0043】
ホストCPU210からOTP照合チップ110への通信路211では、ホストCPU210からOTP照合チップ110に与えられるコマンド、OTP照合チップ110内の時計の時刻合わせデータ、及び、外部からの被認証OTPデータが伝送される。
【0044】
また、OTP照合チップ110からホストCPU210への通信路212では、OTP照合チップ110からホストCPU210に返送される認証結果、及び、種々のステータス報告値が伝送される。
【0045】
OTP照合チップ110とホストCPU210との間の通信路211及び212は、シリアル伝送でもよいし、バスのようなパラレル伝送でもよい。また、シリアルやパラレル以外の高度なプロトコルによって制御されたネットワークでもよい。通信路211及び212は、OTP照合チップ110内部のI/O部207によって制御される。
【0046】
OTP照合チップ110は、制御部200、時計部201、パスフレーズ保管庫202、比較用OTP生成部203、受信OTPを一時的に記憶する受信OTPバッファ204、OTP比較器205、出力用の判定結果レジスタ206、及び前述したI/O部207で構成される。
【0047】
制御部200は、OTP照合チップ110の全体の動作を制御する部分で、PLC(Programmable Logic Controller)によって実装されてもよいし、一般のCPUによるソフトウェア又はファームウェアで実装されてもよい。
【0048】
時計部201は、初回動作時にホストCPU210から通信路211を経由して時刻初期値を設定された後、自律的に時を刻む時計を内蔵している。施錠装置103の全体の電源供給が途切れても、時計部201のみが稼働し続けるようなバックアップ電源が供給されている。
【0049】
バックアップ電源が断たれて時計が停止した場合や、OTP照合チップ110のリセット操作によって時計が初期化された場合、その旨のステータスを通信路212を経由してホストCPU210に報告して、時刻値の再設定を依頼する。
【0050】
パスフレーズ保管庫202は、ユーザ認証&OTP発行サーバ100と知識共有したパスフレーズ106を保管する部分で、高度の耐タンパー性が確保されており、保管された内容をチップ外部からの破壊読出しに対しても保護する(破壊読み出しに対する保護によって、エミュレーションチップの作成を阻止できる)。もちろん、ホストCPU210は、パスフレーズ保管庫202に保管された内容を読み出せない。
【0051】
OTP照合チップ110の動作を簡単に説明すると、外部から送られたOTP109は、ホストCPU210を経由してOTP照合チップ110の受信OTPバッファ204に格納される。OTP109と共に、ホストCPU210よりOTP照合依頼が指令される。
【0052】
OTP照合チップ110の比較用OTP生成部203は、ユーザ認証&OTP発行サーバ100と同期した時計部201より読み出した現在時刻と、パスフレーズ保管庫202より読み出したパスフレーズ106から比較用OTP値を算出する。
【0053】
OTP比較器205は、比較用OTP生成部203が算出した値と、受信OTPバッファ204に格納された値を比較し、両者が一致すれば認証成功と判定し、両者が不一致であれば認証失敗と判定する。判定結果は、判定結果レジスタ206に送られ、通信路212を経由してホストCPU210に通知される。OTP照合チップ110から出力される判定結果は、単に0又は1のフラグなどの固定値ではなく、予めホストCPU210との間で取り決めた形式で出力することが想定されている。これは偽のOTP照合チップに付け替える改造や、通信路212に偽情報を注入される攻撃から認証システム(ホストCPU210とOTP照合チップ110との連係動作)を保護するためである。
【0054】
<実施例1>
図3は、実施例1に係る拡張されたOTP照合チップ300の詳細を示すブロック図である。
【0055】
ちなみに、OTP照合チップ300を格納した本体装置307は、OTP認証の機能のみを有する施錠装置103とは異なり、例えば車載用途の場合、車載LANの中核を成し、各ECU間の中継(データ中継、周期変換、プロトコル変換、データ組み替え等)を行うCGW(Central Gateway:セントラルゲートウェイ)として動作する装置を想定している。なお、拡張されたOTP照合チップ300において、前述したOTP照合チップ110と同じ機能の構成要素には同じ符号を付し、それらの説明は省略する。
【0056】
本体装置307に入力される配信情報310は、該CGW直下に車載LAN(図示せず)を通じて接続され、OTA(Over-the-Air)により更新されるECU(図示せず)のデータ(更新用制御ソフトウェア、更新パッチ、制御パラメータ、制御ルール)などを想定している。
【0057】
ECUは、制御系、安全系、ボディ系、情報系などの系統別の専用ネットワークに分けて複数が接続されている。CGWは、これらの専用ネットワークで構成されるスター型ネットワークのハブとなる装置であり、無線(LTE(Long Term Evolution)、Wi-Fi(Wireless Fidelity)、スマートフォン)や有線(故障診断ツール、充電ターミナル)などの通信手段によって車外と通信するインタフェースとしても機能する。
【0058】
CGWは、本発明を利用してOTA送信元たる外部アクティビティを厳格に認証し、送信された配信情報の改竄を厳格に検査し、各ECUに車載LANを通じてデータを配布する形態とする。
【0059】
図3に示す実施例では、受信した配信情報を一時的に記憶する配信情報DI(Delivery Information)バッファ301、受信したMAC値(メッセージ認証コード:Message Authentication Code)を一時的に記憶する受信MAC値バッファ302、MAC値にOTPを含めるかを選択するための切り替えスイッチ303(通常は「閉」)、比較用MAC値生成部304、MAC値比較器305、OTPが一致しかつMAC値が一致する場合のみ判定結果レジスタ206内容をOKとするAND論理306が、
図2に示す例に追加されている。
【0060】
図4は、実施例1の情報配信プログラムの形態及びチェックコード(署名又はMAC値)の生成原理と検証原理を、従来のデジタル署名と比較して示す図である。
【0061】
表の縦列では左から順に送り出し側の情報配信サーバにおける処理400、伝送路(有線、無線)401での情報形態、受信端末(車、IoT)での受信検証処理402を示す。表の横行は、上が従来のデジタル署名410、下が本実施例の方法420を示す。
【0062】
上部410に示す従来のデジタル署名の動作から説明する。欄411は、サーバ側からデジタル署名を付して送信する情報の生成手順を示す。配信情報を一方向性ハッシュ関数に入力し、ハッシュ値(メッセージダイジェスト)を計算する。ここで、一方向性ハッシュ関数(以下、名称を略してハッシュ関数、数学関数としてhash()と記載する)とは、任意の長さのデータを固定長(128~512ビット程度)のデータに圧縮する、以下の(1)~(3)の性質を有する暗号学的関数である。
(1)一方向性:出力値から入力値の発見が困難である。すなわち、あるハッシュ値hが与えられたとき、h=hash(m)を満たす任意のmを求める逆演算が困難でなければならない。
(2)第2原像計算困難性:ある入力値と同じハッシュ値が得られる別の入力を求めることが困難である。すなわち、mが与えられたとき、hash(m)=hash(m’)となるようなm’(ただし、m≠m’)を求めるのが困難でなければならない。
(3)衝突困難性:同じ出力値を生成する二つの入力値の発見が困難である。すなわち、hash(m)=hash(m’)を満たすmとm’(ただし、m≠m’)を求めることが困難でなければならない。
【0063】
すなわち、一方向性ハッシュ関数とは、入力が与えられれば、確かな再現性をもって簡単に出力を計算できるが、出力から入力の逆演算が困難な(膨大な時間コストが必要である)暗号学的関数である。
【0064】
また、如何なる大きさのデータも固定長の出力となるハッシュ値に圧縮して纏めることができるので、このハッシュ値はメッセージダイジェストとも呼称される。サーバは、このように計算されたハッシュ値(メッセージダイジェスト)を、サーバ秘密鍵による公開鍵暗号化を施し署名を作成する。
【0065】
欄412は、デジタル署名における配信情報の伝送路で送信されるデータを示す。すなわち、伝送路では配信情報と署名とがペアになって伝送される。署名には時刻成分が含まれていないので、再生攻撃に対して無力となる。すなわち、この配信情報と署名とのペアを盗聴すれば、盗聴によって記録された配信情報と署名とのペアを何回でも受信端末に送信できる。受信端末は、正しい署名が付されているので、配信情報を正当なものとして受信する。
【0066】
欄413は、受信端末側の処理を示す。受信端末は、送信された署名を、サーバ公開鍵を用いて公開鍵復号化をして、復号化した送信配信情報のハッシュ値を求める。また、受信端末は同一のハッシュ関数を用いて独自に受信配信情報からハッシュ値を求める。これら二つのハッシュ値を比較し、ハッシュ値が一致すれば送信側と受信側とで情報が正しく送られているのでOKと判定し、ハッシュ値が不一致であれば情報の欠落や改竄が発生しているのでNGと判定する。
【0067】
下部420に、本実施例のサーバ、及び受信端末の動作を示す。欄421は情報配信サーバ側の動作を示す。受信側と共有した共通鍵であるパスフレーズと時刻情報からOTP(ワンタイムパスワード)を生成する。従って、このOTPは「時刻情報のMAC認証値」であると言える。続いて、OTPと配信情報とパスフレーズからハッシュ関数を用いて全体のMAC値を計算する。
【0068】
欄422は、本実施例における配信情報の伝送路で送信されるデータを示す。すなわち、伝送路では、OTP、配信情報、及びMAC値の三つの値が組で伝送される。従来のデジタル署名と異なり、OTPに時刻情報が含まれているので、再生攻撃が検出可能となる利点がある。
【0069】
欄423は、受信端末側の処理を示す。まず、受信端末は、サーバの時計と同期した時計から得た時刻とパスフレーズからOTPを計算する。計算されたOTPと受信したOTPが異なれば、サーバとパスフレーズが異なり、配信情報の宛先がこの受信端末ではないか、又は再生攻撃を受けている可能性があるので、配信情報を受信しないで破棄する。以上の手順424は、本実施例の前提となる構成であるOTP照合チップ110の機能である。
【0070】
一方、計算されたOTPと受信したOTPが一致していれば、このOTPと配信情報とパスフレーズからハッシュ関数を用いてMAC値を計算する。この計算したMAC値と受信したMAC値が一致すれば、情報が正しく伝送されているのでOKと判定し、計算したMAC値と受信したMAC値が一致しなければ、情報の欠落や改竄が発生しているのでNGと判定する。MAC値の生成に用いるハッシュ関数は、手順424に内包するハッシュ関数を使用できる。このように現有する計算資源を流用でき、コストの上昇を抑制できる。
【0071】
以上に述べたように、本実施例の方法420では、基本的な能力として再生攻撃を常に検知できる。また、受信端末側での計算量を両手法で比較し、計算量の大小を不等号で表現すると、一般的に、
公開鍵暗号復号化処理>>ハッシュ関数処理
となるので、
デジタル署名(公開鍵暗号復号化1回+ハッシュ関数1回)>>本実施例(ハッシュ関数2回)
と本実施例の方法420の方が圧倒的に小さくなる。
【0072】
従って、計算能力が低い廉価なCPUでも実行でき、本実施例のようにOTP照合チップ110でもMAC認証値の演算と照合処理を追加実装できる。また、それによってOTP照合チップ110を拡張するための製造コストの上昇も抑制できる。
【0073】
図3のホストCPU210は、
図4の伝送路401上の値の組み422、すなわちOTPと配信情報310とMAC値を受信すると、通信路211を経由して、拡張されたOTP照合チップ300内部の受信OTPバッファ204、配信情報DIバッファ301、受信MAC値バッファ302に、それぞれの値を格納する。その後、ホストCPU210は、同様に通信路211を経由して拡張されたOTP照合チップ300に対して配信情報検証依頼(図示せず)を発行する。
【0074】
図5は、実施例1の配信情報検証処理S500を示すフローチャートである。
【0075】
判定S501では、OTP照合チップ300は、ホストCPU210より配信情報の検証依頼を受けたかを判定し、配信情報の検証依頼を受けていればステップS502に進み、配信情報の検証依頼を受けていなければステップS509に進んで、配信情報検証処理を終了する。
【0076】
ステップS502では、OTP照合チップ300は、内蔵時計デバイスを参照する。内蔵時計デバイスの特定レジスタReg(time)にはOTPを受信し始めた時刻がキャプチャされており、その時刻を変数timeにセットする。この時刻キャプチャ機能の必要性については、
図6で後述する。
【0077】
ステップS503では、OTP照合チップ300は、比較用のOTPを計算する。図中記号∪はデータの結合を表し、時刻情報timeとパスフレーズをデータストリーム的に結合することを意味する。時刻情報のフォーマット、及びパスフレーズとの結合方式(順番など)は情報配信サーバ側と統一される。
【0078】
判定ステップS504では、OTP照合チップ300は、受信したOTPと内部計算したOTPとを比較する。比較の結果、OTPが一致すれば次のステップS505に進み、OTPが一致しなければステップS508で判定結果NGとして、ステップS509に進んで、配信情報検証処理を終了する。
【0079】
ステップS505では、OTP照合チップ300は、受信情報のMAC値を独自に計算する。ステップS503と同様に図中記号∪はデータの結合を表している。受信したOTP内容(OTP Buff.)、受信した配信情報内容(D.I.Buff.)、パスフレーズの三つのデータストリーム的な結合方式(順番など)が情報配信サーバ側と統一されることはステップS503と同じである(ここでは、記憶域の名称を括弧()で囲みその記憶域の内容を表している。以下同じ。)。
【0080】
判定ステップS506では、OTP照合チップ300は、受信したMAC値と独自に計算されたMAC値とを比較する。比較の結果、MAC値が一致すれば次のステップS507で判定結果OKとして、ステップS509に進んで、配信情報検証処理を終了する。一方、MAC値が一致しなければステップS508で判定結果NGとして、ステップS509に進んで、配信情報検証処理を終了する。
【0081】
ステップS507における判定結果OKの情報及びステップS508における判定結果NGの情報は、
図3の判定結果レジスタ206に送られ、通信路212を経由してホストCPU210に通知される。
【0082】
ホストCPU210が発行する配信情報検証依頼(図示せず)は、受信OTPバッファ204、配信情報DIバッファ301及び受信MAC値バッファ302のセットの送信が完了した後に発行するとよいが、スループットを向上させるために、受信OTPのデータ先頭がOTP照合チップ300に到来した直後に配信情報検証依頼を発行してもよい。その場合、OTPの比較(S504)の直前に受信OTPバッファ204の転送完了までの待機処理を追加し、比較用MAC値計算(S505)の直前に配信情報DIバッファ301の転送完了までの待機処理を追加し、MAC値比較(S506)の直前に受信MAC値バッファ302の転送完了までの待機処理を追加するとよい。
【0083】
図6は、サーバから受信端末への情報転送におけるOTPの時刻の基準を示すタイミング図である。
【0084】
結論から言えば、一連の情報はOTPを先頭にして通信路610に送出され、OTPが送出され始める先頭時刻をOTP生成の基準時刻とする。これは、一連の情報の全体の伝送時間が長い場合、OTP値の切り替わり時間の超過を避けるためである。
【0085】
図6では、上からサーバ内処理600、通信路610、OTPチップ内処理620を並行する時間座標で示す。図中、時間は左から右に流れる。
【0086】
サーバ内処理600では、一連の情報を通信路610に送出し始める予定時刻630を基準にして、OTPを計算する(プロセス601)。
【0087】
予定時刻630が到来すると、OTP611を通信路610に送出し始める。
【0088】
続いて、サーバ内処理600では、配信情報を構成し(プロセス602)、構成された配信情報612を通信路610に送出する。
【0089】
続いて、サーバ内処理600では、OTPと配信情報からMAC値を計算し(プロセス603)、計算されたMAC値613を通信路610に送出する。
【0090】
OTPチップ内処理620では、通信路610を経由して伝送されたOTP611、配信情報612及びMAC値613の各々を、受信OTPバッファ204へ格納621し、配信情報DIバッファ301へ格納622し、受信MAC値バッファ302へ格納623する。
【0091】
OTPチップ内処理620では、OTP611が到着すると、比較用OTP計算プロセス632が起動可能となる。比較用OTP計算プロセス632ではOTPの受信を開始した時刻をキャプチャして比較用OTPを算出するが、通信路610の遅延及びホストCPU210による情報伝達の遅延によって、多少の時間遅延Δt(631)が発生する。しかし、この時間遅延Δt(631)はOTPの切り替わり時間より十分小さいので、その影響を無視できる。
【0092】
受信OTPバッファ204へのOTP611の格納621が完了しており、比較用OTP計算プロセス632が終了していれば、OTP検証プロセス633が実行可能となる。
【0093】
受信配信情報用DIバッファへの配信情報612の格納622が完了していれば、比較用MAC値計算プロセス634が実行可能となる。
【0094】
受信MAC値バッファ302へのMAC値613の格納623が完了しており、比較用MAC値計算プロセス634が終了していれば、MAC値検証プロセス635で配信情報全体の検証(受信MAC値と独自計算した比較用MAC値との比較)が実行可能となる。
【0095】
ここまで、MAC認証の範囲をOTPと配信情報を結合したものとして説明したが、特定の用途においてはMAC認証の範囲からOTPを除外して配信情報のみに限定できる。これは、
図3のブロック図において切り替えスイッチ303を「開」にすることに相当する。また、
図5の処理フロー図では、ステップS505の比較用MAC値計算を、
MAC_ref = hash( (D.I. Buff.)∪パスフレーズ )
とすることに相当する。
【0096】
これにより、OTPと配信情報の結合性がMAC値に反映されなくなり、OTP計算とMAC値計算とを独立したプロセスとして扱うことができる。この変更に伴うメリットとデメリットを
図7のタイミングチャートに示す。
【0097】
図7では、上からサーバ内処理700、サーバ出力710、サーバと受信端末の間に割り込んで通信路を偽装した中間者攻撃の出力720、OTPチップの認識730を並行する時間座標で示す。図中、時間は左から右に流れる。
【0098】
サーバ内処理700で、時刻t1(740)を起点とする配信情報Xと時刻t2(741)を起点とする配信情報Yとを送る場合を考える。
【0099】
図示するように、OTP(t1)の計算プロセス701と配信情報Xの構成及びMAC(X)の計算プロセス702、703とを独立して並行に実行できる。OTP(t2)の計算プロセス704と配信情報Yの構成及びMAC(Y)の計算プロセス705、706も同様に独立して並行に実行できる。
【0100】
従って、この並行プロセスによるスループットの向上は、種々の端末に異なる配信情報を送る配信情報サーバにとってメリットとなる。
【0101】
しかし、OTPと配信情報及びMAC値を分離したために、中間者攻撃を受けるリスクがあるというデメリットもある。以下、このデメリットを説明する。
【0102】
サーバ出力710は、時刻t1(740)を起点として、OTP(t1)(711)-配信情報X(712)-MAC(X)(713)の順で並んでいる。また、時刻t2(741)を起点として、OTP(t2)(714)-配信情報Y(715)-MAC(Y)(716)の順で並んでいる。
図7の説明において、記号「-」はデータ並びのシーケンスを表す接続記号である。
【0103】
中間者攻撃では、その出力720として、配信情報X(712)とMAC(X)(713)の組を記憶し、別のOTPヘッダOTP(t2)(714)の時の後続データを配信情報Y(715)の代わりに配信情報X(712)で書き換え(721)、MAC(Y)(716)の代わりにMAC(X)(713)で書き換え(722)というデータを送信する攻撃が実行可能である。サーバから発信された情報配信情報Y(715)とMAC(Y)(716)は通信経路の途中で失われる。
【0104】
OTPチップの認識処理では、OTP(t1)(711)-配信情報X(712)-MAC(X)(713)の順に並んだデータと、OTP(t2)(714)-配信情報X(712)-MAC(X)(713)の順に並んだデータがサーバから到達したことになり、配信情報とMAC値の組が合っているので改竄を検出できない。すなわち、この中間者攻撃は、配信情報X(712)-MAC(X)(713)の再生攻撃を行うことになる。これは配信情報と、その正しいMAC値の対が、時刻的に正しいOPTヘッダの下に付いていれば、矛盾なく情報を受け入れるためである。
【0105】
以上、MAC認証範囲が異なる別方式も例示したが、前述したメリットとリスクを加味して採否の判断をすることが肝要となる。
【0106】
<実施例2>
図8は、本発明の実施例2に係る拡張されたOTP照合チップ300の詳細を示すブロック図である。実施例2では、配信情報の共通鍵暗号化に対応するように、OTP照合チップが拡張されている。この拡張によって、盗聴による配信情報の内容漏洩を防止できる。
【0107】
図8に示す実施例2の構成と
図3に示す実施例1の構成との差分は、復号化した配信情報をホストCPU210に送信するための復号データバッファ802が追加された点である。ホストCPU210は、通信路212を経由して、復号化された配信情報を取得できるようになっている。
【0108】
配信情報の真正性が確認された場合、すなわちOTP一致かつMAC値一致でAND論理306がアクティブの場合、暗号復号器801がアクティブとなる。暗号復号器801は、パスフレーズ保管庫202に格納されているパスフレーズを共通鍵として配信情報DIバッファ301の内容を復号化し、復号データバッファ802に転送する。
【0109】
ここまでの説明で、情報配信サーバと知識共有した共通鍵は、全てパスフレーズという呼称で記述してきたが、同一のものに限定されなくてもよい。すなわち、OTPを生成する共通鍵、MAC値を生成する共通鍵、及び配信情報を暗号復号化する共通鍵の各々を別の鍵として、複数の個別鍵で構成されてもよい。複数の個別鍵で構成される場合、各々の鍵は用途別に情報配信サーバとの間で知識共有されており、拡張されたOTP照合チップ300の中では、耐タンパー性に優れたパスフレーズ保管庫202の中に保管されることは言うまでもない。
【0110】
図9は、実施例2の配信情報検証処理S500を示すフローチャートである。
【0111】
実施例2の処理フローと、配信情報を共通鍵暗号化しない実施例1の処理フロー(
図5)との差分は、ステップ507で判定結果OKの場合の「ステップS901:配信データの復号化」、「ステップS902:復号化されたデータの復号データバッファ802への格納」が追加された点である。
【0112】
判定S506でMAC値を比較し配信情報の改竄が無いと判定されると、ステップS507で判定結果OKとする点は実施例1と同じであるが、実施例2では、判定結果OKとした後にステップS901で配信データを復号化する。
【0113】
図9の処理フローでは、以下の3ステップでパスフレーズを使用する。「ステップS503:比較用OTP計算」、「ステップS506:比較用MAC値計算」、「ステップS901:配信データの復号化」の3ステップである。これらのパスフレーズは同一のものを用いてもよいし、用途別に別のパスフレーズを用いてもよいことは前述の通りである。
【0114】
続くステップS902では、復号化されたデータ(Dcrpt_Data)を復号データバッファ802に転送し、ステップS509で処理を終了する。
【0115】
以上に説明したように、実施例2では、配信情報を公開鍵暗号と比べて計算量が少ない共通鍵暗号方式によって容易に暗号化でき、盗聴を防止できる。
【0116】
<実施例3>
図10は、本発明の実施例3に係る拡張されたOTP照合チップ300の詳細を示すブロック図である。実施例3では、配信情報の共通鍵暗号化に対応するように、OTP照合チップがさらに拡張されている。実施例3の拡張されたOTP照合チップによって、配信情報がホストCPU210向けの配信情報とOTP照合チップ向けの配信情報とを兼ねるように構成し、同一プロトコルで別用途の情報を統合的に配信できる。
【0117】
OTP照合チップ向けの配信情報は、共通鍵暗号化が必須であり、配信内容を盗聴から守る必要がある。また、復号化したOTP照合チップ向けの配信内容を、復号データバッファ802を経由してホストCPU210に開示することは、情報漏洩リスクとなるので避けるべきである。
【0118】
図10に示す実施例3の構成と
図8に示す実施例2の構成との差分は、指令解釈部1001と2方向データ切り替えスイッチ1002が追加された点である。
【0119】
配信情報がホストCPU210向けかOTP照合チップ300向けかを示すコマンドは、配信情報に格納されている。指令解釈部1001は、復号化された配信情報から抽出されるコマンドによって切り替えスイッチ1002を切り替える。例えば、配信情報がホストCPU210向けであれば、
図8に示す実施例2と同様に、復号化されたデータは復号データバッファ802送られる。一方、配信情報がOTP照合チップ300向けであれば、2方向データ切り替えスイッチ1002が切り替わり、復号化されたデータは制御部200に直接送られ、復号データバッファ802には送られない。OTP照合チップ向けのデータとは、例えば、時計部201の時刻合わせ情報、パスフレーズ保管庫202のパスフレーズ更新情報などがある。
【0120】
パスフレーズの更新は、OTP照合チップ製造時に設定された初期鍵を保存した状態で使用せず、情報配信サーバから配信された共通鍵を一時的に使用する。初期鍵を保存しておく理由は、何か障害が発生した場合、又はOTP照合チップ300がマスターリセットされた場合、初期鍵に戻る方がシステムとしてロバストだからである。
【0121】
一時的に更新されるパスフレーズは、配信情報データ中に格納されてOTP照合チップ300まで送られるが、前述した通り初期鍵で共通鍵暗号化されているため、更新されるパスフレーズの漏洩リスクは低く、インターネットを経由して鍵を配信しても十分にセキュアである。
【0122】
図11は、実施例3の配信情報検証処理S500を示すフローチャートである。
【0123】
実施例3の処理フローと実施例1の処理フロー(
図5)との差分は、S901、S902、S1101~S1106の処理ステップが追加された点であり、実施例2の処理フロー(
図9)との差分は、S1101~S1106の処理ステップが追加された点である。
【0124】
判定S506でMAC値を比較し配信情報の改竄が無いと判定されると、ステップS507で判定結果OKとし、続くステップS901で配信データを復号化する点は実施例2と同じである。その後、配信情報がホストCPU210向けか、OTP照合チップ300向けかが判定される(S1101)。
【0125】
復号化された配信情報の中に、ホストCPU210向けであるかOTP照合チップ300向けであるのかのコマンドが含まれており、このコマンドに基づいて処理が切り替えられる。この仕組みは、ブロック図(
図10)において、指令解釈部1001と切り替えスイッチ1002で構成される。
【0126】
配信情報がホストCPU210向けである場合、ステップS902で復号化されたデータ(Dcrpt_Data)を復号データバッファ802に転送し、ステップS509で処理を終了する。この処理は実施例2と同じである。
【0127】
一方、配信情報がOTP照合チップ向けである場合、S1102~S1106の処理を実行する。
【0128】
まず、配信情報が時刻更新指令であるかが判定される(S1102)。配信情報が時刻更新指令であれば、配信情報中の時刻更新値time_rnwを引数にしてシステム関数timeset()を呼び出して、時計デバイスの現在時刻を変更する(ステップ1103)。その後ステップ509で処理を終了する。
【0129】
配信情報が時刻更新指令でなければ、配信情報がパスフレーズ更新指令であるか(S1104)、及び配信情報の更新対象機器ID(IDentification:識別子)が一致するか(S1105)を判定する。配信情報がパスフレーズ更新指令でなく又は更新対象機器IDが一致していなければ、ステップS509で処理を終了する。
【0130】
配信情報がパスフレーズ更新指令であり、かつ更新対象機器IDが一致していれば、イベントフラグであるパスフレーズ更新フラグに”1”をセットし、更新設定時刻を配信情報から抽出してシステム変数time_chgにセットし、更新用パスフレーズを配信情報から抽出してシステム変数Pp_newにセットして、ステップS509で処理を終了する。
【0131】
実際には、パスフレーズの更新は、
図12で示す時間更新用の定時割込み処理S1200で実行される。
図12は、拡張されたOTP照合チップ300で実行される定時割込み処理のフローチャートである。定時割込み処理は、所定の時間分解能で毎回サイクリックに起動し、ハウスキーピングタスクを行う制御部200の割り込み処理である。
【0132】
まず、パスフレーズ更新用フラグが設定されているか(値が1であるか)を判定する(S1201)。パスフレーズ更新用フラグが設定されていなければ、イベントが発生していないので、何も行わずにステップ1206で処理を終了する。
【0133】
パスフレーズ更新用フラグが設定されていれば(値が1であれば)パスフレーズ更新イベントが発生中なので、時計デバイスを参照し、現在時刻(Reg_nowの内容)をtime変数に入力する(S1202)。続いて、現在時刻timeが更新設定時刻time_chgを経過しているかを判定する(S1203)。その結果、現在時刻timeが更新設定時刻time_chgを経過していれば、ステップ1204に進む。現在時刻timeが更新設定時刻time_chgを経過していなければ、何も行わずにステップ1206で処理を終了する。
【0134】
ステップ1204では、更新用パスフレーズPp_newをパスフレーズ保管庫202に送って、今までのパスフレーズの変更値として設定する。続いてステップS1205では、パスフレーズ更新フラグをクリア(”0”に設定)し、ステップS1206で処理を終了する。
【0135】
図13は、前述したパスフレーズ変更機能を利用して受信クラスタを動的に拡大や縮小する受信機器群を示す図である。
【0136】
パスフレーズを決定すればグローバル時間における一つの時刻において唯一のOTPが決定するので、情報配信サーバ1300が一つのOTPを選択すれば、唯一の宛先を決定することになる。従って、パスフレーズは宛先選別(アドレッシング)の機能を持っているといえる。よって、複数の受信端末に暫定的に同一パスフレーズを付与することによって、当該複数の受信端末群で受信クラスタを形成できる。情報配信サーバ1300は、この受信クラスタに対して一時期に一括して配信情報をブロードキャストでき、効率的に情報を配信できる。
【0137】
状態1301は、初期鍵のパスフレーズで構成された受信機器群を示しており、○の中の数字は受信機の個別ID、すなわち設定されたパスフレーズの識別番号を示す。
【0138】
状態1302は、状態1301から時間t1が経過した状態である。前述したパスフレーズ更新機能を利用して、端末3、5、6に暫定パスフレーズ0が付与され、受信クラスタ1310を形成する。情報配信サーバ1300は、この受信クラスタ1310の端末に一括して配信情報のブロードキャストできる。
【0139】
状態1303は、状態1302から時間t2が経過した状態である。再び前述したパスフレーズ更新機能を利用して、受信クラスタ1310中の元々は端末6であった端末0の暫定的なパスフレーズを解除し、初期鍵6に戻す。従って受信クラスタ1311は受信クラスタ1310と比べて小さくなる。
【0140】
このように、実施例3では、パスフレーズの更新機能を用いて受信クラスタを拡大や縮小でき、効率的に情報を配信できる。
【0141】
以上、実施例1、実施例2、実施例3で述べたように、本明細書に開示した手段によれば、デジタル署名というリソース消費が大きい方式を使わずに配信情報を検証でき、低い処理能力で廉価なOTP照合チップの内部で実行でき、高い信頼性の情報配信機構を実現できる。
【0142】
また、OTP照合チップ自体のパラメータも配信情報としてサーバから配信して変更できる。この仕組みに基づいて、同一宛先の受信クラスタを動的かつ容易に形成し解消できる。すなわち、同一受信クラスタに位置づけられた機器には、情報配信サーバから同時に同一情報をブロードキャスト配信でき、車載機器、IoT機器などのOTA(Over-the-Air:無線による情報配信)に適応した仕組みを提供できる。
【0143】
以上に説明したように、本実施例の情報検証装置(OTP照合チップ300)は、情報発信元(情報配信サーバ1300)から送信され、同期した時刻及び共通鍵によって生成されたワンタイムパスワードと、情報発信元から送信され、認証以外の利用価値を有する配信情報と、情報発信元から送信され、これらの情報から当該共通鍵を用いて計算されたメッセージ認証コード(MAC値)の少なくとも三つが入力されると、少なくとも配信情報の真正性の判定結果を出力するので、配信情報の改竄を検知できると共に、再生攻撃を検知できる。また、既存のOTP照合チップの基本的構成を維持した改造によって、配信情報の改竄検知及び再生攻撃検知を実現できる。しかも、機能追加によるコストアップを最小化でき、OTP照合チップ自体の付加価値を向上できる。すなわち、現有計算資源(例えばハッシュ関数)を流用して、新たに追加されるMAC認証機能を実現できる点でコストアップを最小化できる。
【0144】
また、処理負荷が軽いことから、OTP照合チップ内で検証処理を実行でき、ホストCPU210の負担を増大させず、車載用途及びIoT用途の低能力のホストCPU210であっても本来の処理を圧迫せずにセキュリティ対応能力を向上できる。
【0145】
また、通信路を経由して共通鍵が送信されず、物理的に配布されるので、盗聴リスクを低減でき、インターネットを経由した情報配信に適用しても、十分にセキュアである。
【0146】
また、情報検証装置は、前記情報発信元から送信されたワンタイムパスワードと当該情報検証装置内で計算されたワンタイムパスワードとが一致し、かつ、前記情報発信元から送信されたメッセージ認証コードと当該情報検証装置内で計算されたメッセージ認証コードとが一致する場合、前記配信情報が真正であると判定し、前記配信情報が真正であることを出力するので、配信情報の改竄を検知できると共に、再生攻撃を検知できる。
【0147】
また、情報発信元から送信されるワンタイムパスワードは、前記情報発信元から当該情報検証装置へ送信される一連の情報から送信開始時刻に基づいて生成される時刻同期型のワンタイムパスワードとしたので、ワンタイムパスワードを生成するための時刻の切れ目を考慮する必要がなくなり、装置の設計自由度が向上する。
【0148】
また、前記情報発信元から送信されるメッセージ認証コードは、前記情報発信元から送信されるワンタイムパスワード及び前記情報発信元から送信される配信情報に基づいて、前記共通鍵を用いて計算されるので、高いセキュリティを実現できる。
【0149】
また、前記情報発信元から送信されるメッセージ認証コードは、前記情報発信元から送信される配信情報に基づいて、前記共通鍵を用いて計算されるので、ワンタイムパスワードの計算プロセスと配信情報の構成及びMAC値の計算プロセスを独立して並行に実行し、処理のスループットを向上させることができる。
【0150】
また、前記配信情報は、前記共通鍵によって暗号化されて、前記情報発信元から送信されるものであって、前記演算装置は、前記情報発信元から送信された配信情報を復号化して、前記配信情報の真正性判定結果、及び復号化した配信情報を出力するので、盗聴による配信情報の内容漏洩を防止できる。
【0151】
また、前記ワンタイムパスワードを生成するための共通鍵と、前記メッセージ認証コードを生成するための共通鍵と、前記配信情報を暗号化するための共通鍵とは、同一の鍵である、又は複数の別個の鍵としたので、鍵を変えるときに適用プロセスを自由に設定できる。また、共通鍵を同一とした場合、別の共通鍵を設定することなく、配信情報を暗号化でき、配信情報の漏洩を防止できる。
【0152】
また、前記情報発信元は、当該情報検証装置が真正性を検証すべきホスト装置宛ての配信情報と、当該情報検証装置宛ての更新情報とを配信できるように構成されており、前記情報検証装置は、前記配信情報が当該情報検証装置宛ての更新情報である場合、前記復号化された配信情報を出力せず、前記更新情報を用いて当該情報検証装置の内部値を変更するので、ホストCPU210に提供される配信情報に加えて、OTP照合チップ300が必要とする情報(例えば、内部時計の時刻合わせ情報、共通鍵の更新情報)を同一プロトコルで統合的に配信できる。
【0153】
また、前記情報発信元から当該情報検証装置宛ての更新情報は、当該情報検証装置の時計を修正するための時刻データを含み、前記演算装置は、前記情報発信元から送信される配信情報の真正性判定結果が真正である場合、前記時刻データを用いて当該情報検証装置の時計を修正するので、高いセキュリティで時刻を更新できる。
【0154】
また、前記情報発信元から当該情報検証装置宛ての更新情報は、前記情報発信元と前記情報検証装置とで知識共有された共通鍵を更新するためのデータと、前記共通鍵を更新すべき前記情報検証装置の識別子と、前記共通鍵の更新タイミングの少なくとも三つを含み、前記演算装置は、前記情報発信元から送信される配信情報の真正性判定結果が真正であり、かつ識別子が自情報検証装置のものと合致する場合、前記更新タイミングに当該検証装置内に格納される共通鍵を更新するので、高いセキュリティで共通鍵を更新できる。
【0155】
また、複数の前記情報検証装置が情報発信元とで知識共有した同一の共通鍵への変更によって、当該情報検証装置を格納する複数の受信機器群でクラスタを形成し、前記クラスタを形成する複数の情報検証装置は、前記情報発信元から同一のワンタイムパスワードと同一メッセージ認証コードとを用いて、同一の配信情報を同時に受信するので、クラスタに対して一時期に一括して配信情報を一対多でブロードキャストでき、効率的に情報を配信できる。
【0156】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0157】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよく、集積回路と密接に関連したデバイス制御言語又はファームウェアとして実現してもよい。
【0158】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0159】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。