JP2022101967A - データ保存装置、データ保存方法、およびデータ保存プログラム - Google Patents

データ保存装置、データ保存方法、およびデータ保存プログラム Download PDF

Info

Publication number
JP2022101967A
JP2022101967A JP2020216399A JP2020216399A JP2022101967A JP 2022101967 A JP2022101967 A JP 2022101967A JP 2020216399 A JP2020216399 A JP 2020216399A JP 2020216399 A JP2020216399 A JP 2020216399A JP 2022101967 A JP2022101967 A JP 2022101967A
Authority
JP
Japan
Prior art keywords
block
hash value
data
storage
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020216399A
Other languages
English (en)
Other versions
JP7472781B2 (ja
Inventor
▲シン▼ 徐
Shin Jo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2020216399A priority Critical patent/JP7472781B2/ja
Priority to CN202180086419.1A priority patent/CN116710917A/zh
Priority to PCT/JP2021/042863 priority patent/WO2022137945A1/ja
Publication of JP2022101967A publication Critical patent/JP2022101967A/ja
Priority to US18/339,113 priority patent/US20230336356A1/en
Application granted granted Critical
Publication of JP7472781B2 publication Critical patent/JP7472781B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データの改ざんを困難にすることが可能なデータ保存装置等を提供する。【解決手段】車載ECU100は、ブロックチェーンBCに連結する新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成するブロック生成部140を備える。車載ECU100は、保存処理部150を備える。保存処理部150は、特定の更新タイミングごとにブロックチェーンBCの最終ブロックに基づく最終ブロックハッシュ値をセキュアワールドのストレージ領域TSに保存することで、前回の更新タイミングにて保存した最終ブロックハッシュ値を更新する。車載ECU100は、少なくとも更新タイミングごとに、取得データと最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成するデータハッシュ生成部120を備える。【選択図】図1

Description

この明細書における開示は、移動体にて取得されるデータを保存する技術に関する。
非特許文献1には、車載ECUに対して暗号鍵を付与し、当該暗号鍵に基づいて正規ECUの認証を行う技術が開示されている。
国際交通安全学会誌 Vol.42,No.2,2017年10月、39頁~47頁
しかし、車載ECUに暗号鍵を付与したとしても、当該暗号鍵が漏洩した場合、偽の車載ECUの取り付け等によるデータの改ざんが容易となる虞がある。非特許文献1には、こうした状況への対策について何ら開示されていない。
開示される目的は、データの改ざんを困難にすることが可能なデータ保存装置、データ保存方法、およびデータ保存プログラムを提供することである。
この明細書に開示された複数の態様は、それぞれの目的を達成するために、互いに異なる技術的手段を採用する。また、特許請求の範囲およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、技術的範囲を限定するものではない。
開示されたデータ保存装置のひとつは、移動体(A)に搭載され、ノーマルワールド(NW)およびノーマルワールドからのアクセスが制限されるセキュアワールド(SW)を規定し、移動体にて取得される取得データを、ブロックチェーン(BC)を用いて保存するデータ保存装置であって、
ブロックチェーンに連結する新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成するブロック生成部(140)と、
特定の更新タイミングごとにブロックチェーンの最後に連結された最終ブロックに基づく最終ブロックハッシュ値をセキュアワールドのストレージ領域(TS)に保存することで、前回の更新タイミングにて保存した最終ブロックハッシュ値を更新する保存処理部(150)と、
少なくとも更新タイミングごとに、取得データと最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成するデータハッシュ生成部(120)と、
を備える。
開示されたデータ保存方法のひとつは、移動体(A)に搭載され、ノーマルワールド(NW)およびノーマルワールドからのアクセスが制限されるセキュアワールド(SW)を規定し、移動体にて取得される取得データを、ブロックチェーン(BC)を用いて保存するために、プロセッサ(102)により実行されるデータ保存方法であって、
ブロックチェーンに連結する新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成するブロック生成プロセス(S140,S150)と、
特定の更新タイミングごとに、ブロックチェーンの最後に連結された最終ブロックに基づく最終ブロックハッシュ値をセキュアワールドのストレージ領域(TS)に保存することで、前回の更新タイミングにて保存した最終ブロックハッシュ値を更新する保存処理プロセス(S210,S220,S230)と、
少なくとも更新タイミングごとに、取得データと最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成するデータハッシュ生成プロセス(S120,S255)と、
を含む。
開示されたデータ保存プログラムのひとつは、移動体(A)に搭載され、ノーマルワールド(NW)およびノーマルワールドからのアクセスが制限されるセキュアワールド(SW)を規定し、移動体にて取得される取得データを、ブロックチェーン(BC)を用いて保存するために、プロセッサ(102)に実行させる命令を含むデータ保存プログラムであって、
命令は、
ブロックチェーンに連結させる新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成させるブロック生成プロセス(S140,S150)と、
特定の更新タイミングごとに、ブロックチェーンの最後に連結された最終ブロックに基づく最終ブロックハッシュ値をセキュアワールドのストレージ領域(TS)に保存することで、前回の更新タイミングにて保存した最終ブロックハッシュ値を更新させる保存処理プロセス(S210,S220,S230)と、
少なくとも更新タイミングごとに、取得データと最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成させるデータハッシュ生成プロセス(S120,S255)と、
を含む。
これらの開示によれば、特定の更新タイミングごとに、ストレージ領域に保存された最終ブロックハッシュ値が更新される。偽のデータ保存装置の取り付け等によりデータが改ざんされた場合には、最終ブロックハッシュ値および新規データハッシュ値が本来のものと異なったものとなるため、これらの値の少なくとも一方に基づいて改ざんの有無を検証することが可能となり得る。さらに、これらの値は更新タイミングごとに変化するため、前回以前の更新タイミングにおけるこれらの値が漏洩したとしても、改ざんが検知され得る。以上により、データの改ざんを困難にすることが可能なデータ保存装置、データ保存方法、およびデータ保存プログラムが提供され得る。
車載ECUが有する機能の一例を示すブロック図である。 データ保存方法の一例を示す概念図である。 ブロックハッシュ値の更新方法の一例を示す概念図である。 データ保存方法のうち、ブロックチェーンの生成処理の一例を示すフローチャートである。 データ保存方法のうち、検証対象のECUにて実行される処理の一例を示すフローチャートである。 データ保存方法のうち、検証担当のECUにて実行される処理の一例を示すフローチャートである。 第2実施形態の車載ECUが有する機能の一例を示すブロック図である。 第2実施形態のデータ保存方法のうち、検証対象のECUにて実行される処理の一例を示すフローチャートである。
(第1実施形態)
第1実施形態のデータ保存装置について、図1~図6を参照しながら説明する。第1実施形態のデータ保存装置は、移動体の一例である車両Aに搭載された電子制御装置である車載ECU100によって提供される。車載ECU100は、車両Aにて取得される取得データ、特に車両Aの操作履歴データHDを保存する。
車載ECU100は、車両Aに複数台、例えば4台以上搭載されている情報処理装置である。複数の車載ECU100は、Ethernet(登録商標)等の通信規格に従う車載ネットワークを介して互いに通信可能である。車載ECU100は、それぞれ、後述する取得データの保存および検証以外の処理機能を実行可能である。例えば、車載ECU100は、自動運転機能、高度運転支援機能、周辺監視機能等を実行可能であってよい。また、車載ECU100の1つは、車両制御ECU20(後述)によって提供されてもよい。車載ECU100は、車載センサ10および車両制御ECU20と車載ネットワークを介して接続されている。
車載センサ10は、車両Aに搭載される種々の検出構成である。車載センサ10には、ドライバによる車両Aの操作を検出可能なセンサが含まれる。例えば、車載センサ10には、アクセルペダルの踏み込み量を検出するアクセルペダルセンサ、ブレーキペダルの踏み込み量を検出するブレーキペダルセンサ、ステアリングハンドルの操作量を検出するステアセンサ等が含まれる。各車載センサ10は、検出したデータを少なくとも1つの車載ECU100に提供可能である。なお、車載センサ10は、検出データを収集する他のECUを介して、間接的に車載ECU100に検出データを提供してもよい。
車載ECU100は、車両Aに搭載された複数の電子制御装置である。車載ECU100のうち少なくとも1つは、上述の車載センサ10からの取得データおよびブロックチェーンBCを保存するデータ保存装置である。他の車載ECU100は、ブロックチェーンBCを保存し、当該ブロックチェーンBCの信憑性を検証する。以下において、前者の車載ECU100を、「検証対象のECU」、後者の車載ECU100を「検証担当のECU」と表記する場合がある。
車載ECU100は、メモリ101、プロセッサ102、入出力インターフェース、およびこれらを接続するバス等を備えたコンピュータを主体として含む構成である。プロセッサ102は、演算処理のためのハードウェアである。プロセッサ102は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)およびRISC(Reduced Instruction Set Computer)-CPU等のうち、少なくとも一種類をコアとして含む。
車載ECU100は、ノーマルワールドNWおよびセキュアワールドSWという少なくとも二つの異なる処理領域をシステム内に規定する。ノーマルワールドNWおよびセキュアワールドSWは、ハードウェア上で物理的に分離されていてもよく、またはハードウェアおよびソフトウェアの連携によって仮想的に分離されていてもよい。車載ECU100は、コンテキストスイッチ等の機能を利用し、アプリケーションの実行に必要なリソースを、ノーマルワールドNWおよびセキュアワールドSWに時間的に分離させている。
ノーマルワールドNWは、オペレーションシステムおよびアプリケーションを実行させる通常の領域である。ノーマルワールドNWには、データ保存のためのストレージ領域(Untrusted Storage)として、ノーマルストレージUSが設けられている。
セキュアワールドSWは、ノーマルワールドNWから隔離された領域である。セキュアワールドSWでは、セキュリティを要求される処理のためのセキュアなオペレーションシステムおよびアプリケーションが実行される。ノーマルワールドNWからセキュアワールドSWへのアクセスは、プロセッサ102の機能によって制限されている。そのため、ノーマルワールドNWからは、セキュアワールドSWの存在が認識不可能となり、セキュアワールドSWにて実行される処理およびセキュアワールドSWに保存された情報等の安全性が確保される。セキュアワールドSWには、データ保存のためのストレージ領域(Trusted Storage)として、セキュアストレージTSが設けられている。セキュアストレージTSの容量は、ノーマルストレージUSの容量よりも少なくされてよい。または、セキュアストレージTSの容量は、ノーマルストレージUSの容量と同等以上であってもよい。
メモリ101は、コンピュータにより読み取り可能なプログラムおよびデータ等を非一時的に格納または記憶する、例えば半導体メモリ、磁気媒体および光学媒体等のうち、少なくとも一種類の非遷移的実体的記憶媒体(non-transitory tangible storage medium)である。メモリ101は、後述のデータ保存プログラム等、プロセッサ102によって実行される種々のプログラムを格納している。
プロセッサ102は、メモリ101に格納されたデータ保存プログラムに含まれる複数の命令を、実行する。これにより車載ECU100は、データ保存のための機能部を、複数構築する。このように車載ECU100では、メモリ101に格納されたデータ保存プログラムが複数の命令をプロセッサ102に実行させることで、複数の機能部が構築される。具体的に、車載ECU100には、図1に示すように、データブロック作成部110、データハッシュ生成部120、ブロックハッシュ生成部130、ブロック生成部140、ハッシュ保存処理部150および送信処理部160が構築される。加えて、車載ECU100には、図1に示すようにブロックハッシュ保存処理部170、検証実行部180およびブロック保存処理部190等が構築される。
以上の機能部のうち、データブロック作成部110、データハッシュ生成部120、ブロックハッシュ生成部130、ブロック生成部140、ハッシュ保存処理部150および送信処理部160は、検証対象のECUにて構築される機能部である。また、ブロックハッシュ保存処理部170、検証実行部180およびブロック保存処理部190は、検証担当のECUにて構築される機能部である。図1においては、それぞれを異なる車載ECU100の機能として記載しているが、各車載ECU100は、検証対象および検証担当を兼任することも可能である。
データブロック作成部110は、車載センサ10にて検出された検出データを、ドライバの操作履歴データHDとして取得し、データブロックを作成する。なお、以下においてデータブロックをトランザクションと表記する場合がある。トランザクションは、規定サイズの操作履歴データHDをひとまとめに格納する単位である。データブロック作成部110は、車両Aの駆動源の起動中に定期的にトランザクションを作成する。データブロック作成部110は、作成したトランザクションを、後述のブロックチェーンBCに連結されるブロックBLと紐づけた状態でノーマルストレージUSに保存する。データブロック作成部110は、作成したトランザクションをデータハッシュ生成部120およびブロック生成部140に提供する。
データブロック作成部110は、車両Aの駆動源が停止したと判断すると、トランザクションの作成を中止する。データブロック作成部110は、車両Aの駆動源が起動したと判断すると、トランザクションの作成を再開する。以下において、新たに生成されるトランザクションを、特に「新規トランザクション」と表記する場合がある。なお、ここで駆動源起動直後とは、駆動源が起動した後で車載ECU100の信憑性が確保される前のタイミングである。また、駆動源起動直後とは、駆動源が起動した後で初めてデータブロックを生成するタイミングであるということもできる。このタイミングは、「第2タイミング」の一例である。
データハッシュ生成部120は、作成されたトランザクションに基づくハッシュ値を、データハッシュ値として生成する。
具体的には、データハッシュ生成部120は、図2に示すように、セキュアストレージTSに保存されたブロックハッシュ値BH(BH_1)と、トランザクションとを合成したものを、データハッシュ値に変換する。この処理は、トランザクションに対して電子署名を施す処理と解することができる。以下において、新たに生成されたデータハッシュ値を、特に「新規データハッシュ値」と表記する場合がある。データハッシュ生成部120は、データハッシュ値をブロック生成部140へと提供する。
ブロックハッシュ生成部130は、ブロックチェーンBCに連結された最後のブロックBLである最終ブロックに基づくハッシュ値を、ブロックハッシュ値BHとして生成する。このブロックハッシュ値BHが「最終ブロックハッシュ値」の一例である。図2に示す例では、最終ブロックは「BLOCK3」、ブロックハッシュ値BHは「BH_3」である。ブロックハッシュ生成部130は、単にブロックをハッシュ関数にてブロックハッシュ値BHに変換すればよい。ブロックハッシュ生成部130は、ブロックハッシュ値BHをブロック生成部140および送信処理部160に提供する。
以上のデータハッシュ生成部120およびブロックハッシュ生成部130は、ハッシュ値の生成において、暗号学的ハッシュ関数を利用する。暗号学的ハッシュ関数は、違う入力から同一のハッシュ値を出力することがなく、且つ、出力されたハッシュ値から入力を推測することが実質不可能という特性を有している。例えば、SHA-2のひとつであるSHA-256が、暗号学的ハッシュ関数として使用される。または、SHA-1、SHA-256以外のSHA-2およびSHA-3等の暗号学的ハッシュ関数が、必要とされる出力長(ビット数)に合わせて適宜使用されてよい。
ブロック生成部140は、データハッシュ生成部120から取得したデータハッシュ値と、ブロックハッシュ生成部130から取得したブロックハッシュ値BHとの組み合わせによるブロックBLを生成する。また、ブロック生成部140は、生成されたブロックをブロックチェーンBCの最後に連結して保存する。
ここで、ブロック生成部140は、新規のブロックBLを連結する合意が形成された場合にのみ、以上の処理を実施する。詳記すると、ブロック生成部140は、まず検証担当のECUから送信された検証結果を取得する。例えば、ブロック生成部140は、3つ以上の他の車載ECU100にて実施された検証結果を取得する。検証結果には、車載ECU100の信憑性を承認するか否かを判断した判断情報が少なくとも含まれる。
そして、ブロック生成部140は、取得された検証結果に基づいて、過半数の検証担当のECUにてデータの信憑性が承認された場合に、新規ブロックBLを生成し、当該ブロックBLを連結する。図2に示す例では、DH_D(データハッシュ値)と、BH_3(ブロックハッシュ値)との組み合わせによるBLOCK4が、新規ブロックとしてBLOCK3の後に連結される。ブロック生成部140は、過半数の検証担当のECUにてデータの信憑性が承認されなかった場合には、ブロックBLの連結を中断する。
ハッシュ保存処理部150は、ブロックハッシュ値BHを特定のタイミングでセキュアストレージTSに保存する。ハッシュ保存処理部150は、例えば、車両Aの駆動源の停止タイミングを保存のタイミングとする。このとき、ハッシュ保存処理部150は、前回の停止タイミングにて保存されていたブロックハッシュ値BHを、新たなブロックハッシュ値BHで更新することになる。図3に示す例では、前回の停止タイミングでの最終ブロックであるBLOCK2から生成されたブロックハッシュ値であるBH_2が、今回の停止タイミングでの最終ブロックであるBLOCK4から生成されたブロックハッシュ値であるBH_4に更新される。ハッシュ保存処理部150は、例えば、車両制御ECU20から駆動源の停止を判断可能な信号(停止信号)を取得した場合に、停止タイミングであると判断する。停止信号は、駆動源が停止した状態を示す停止状態信号であってもよいし、駆動源の停止を指示する停止指示信号であってもよい。停止タイミングは、「更新タイミング」の一例である。
送信処理部160は、ブロックチェーンBCの生成または車載ECU100の検証において、他の車載ECU100への提供が必要な情報の送信処理を実行する。具体的には、送信処理部160は、トランザクションと、その時点でのブロックチェーンBCの最終ブロックから生成されたブロックハッシュ値BHとを他の車載ECU100へと送信する。なお、以下において、この検証対象のECUにて生成されたブロックハッシュ値BHを、対象ブロックハッシュ値と表記する場合がある。送信処理部160は、「送信部」の一例である。
ブロックハッシュ保存処理部170は、検証担当のECUにおいて、ブロックハッシュ値BHを駆動源の停止タイミングでセキュアストレージTSに保存する。ブロックハッシュ保存処理部170は、自身のノーマルストレージUSに保存されたブロックチェーンBCの最終ブロックからブロックハッシュ値BHを生成してもよいし、検証対象のECUからブロックハッシュ値BHを取得してもよい。なお、ここでの「自身のノーマルストレージUSに保存されたブロックチェーンBC」とは、検証対象のECUから分散されたブロックチェーンBCを意味する。
検証実行部180は、検証対象のECUの信憑性を検証し、承認するか否かの判断情報を生成する。検証実行部180は、検証対象から送信された新規トランザクションおよび対象ブロックハッシュ値を取得し、これらの情報と、自身が保存する情報とに基づいて検証を実行する。検証実行部180は、自身のセキュアストレージTSに保存されたブロックハッシュ値BHである担当ブロックハッシュ値と、検証対象から取得した新規トランザクションとに基づくデータハッシュ値(担当データハッシュ値)を生成する。
一例として、検証実行部180は、自身の保存するブロックチェーンBCの最終ブロックから生成したブロックハッシュ値(担当ブロックハッシュ値)と、対象ブロックハッシュ値とが一致するか否かを判定する。一致すると判定すると、検証実行部180は、検証対象の信憑性を承認する旨の判断情報を生成する。一方で、一致しないと判定すると、検証実行部180は、検証対象の信憑性を承認しない旨の判断情報を生成する。検証実行部180は、生成した判断情報を、検証対象および検証担当のECUへと送信する。
ブロック保存処理部190は、他の検証担当のECUから送信された検証結果を取得する。ブロック保存処理部190は、過半数の検証担当のECUにてデータの信憑性が承認された場合に、検証対象のECUから取得したトランザクションと自身のセキュアストレージTSに保存されたブロックハッシュ値BHとからデータハッシュ値を生成する。ブロック保存処理部190は、当該データハッシュ値と、自身のブロックチェーンBCにおける最終ブロックから生成されたブロックハッシュ値BHとでブロックを生成し、ノーマルストレージUSのブロックチェーンBCに連結して保存する。これにより、ブロック保存処理部190は、検証対象のECUから分散されたブロックチェーンBCを保持可能である。
なお、ブロック保存処理部190は、当該新規ブロックBLを、検証対象のECUから取得してもよい。ブロック保存処理部190は、過半数の検証担当のECUにてデータの信憑性が承認されなかった場合には、ブロックBLの連結を中断する。
次に、機能ブロックの共同により、車載ECU100が実行するデータ保存方法のフローを、図4~5に従って以下に説明する。なお、後述するフローにおいて「S」とは、プログラムに含まれた複数命令によって実行される、フローの複数ステップを意味する。
まず、データ保存処理のうち、検証対象のECUが取得したデータに基づいてブロックチェーンBCを生成する処理について図4を参照して説明する。まず、S110にて、データブロック作成部110が、取得したデータに基づくトランザクションを生成する。次に、S120では、データハッシュ生成部120が、トランザクションに基づいてデータハッシュ値を生成する。
続くS130では、ブロックハッシュ生成部130が、最終ブロックに基づいてブロックハッシュ値BHを生成する。さらに、S140では、送信処理部160が、最終ブロックのブロックハッシュ値BHと新規トランザクションとを検証担当のECUに送信する。そして、S150では、ブロック生成部140が、新規ブロックBLの連結について多数決合意が形成されたか否かを判定する。合意が形成されたと判定すると、本フローがS160へと移行する。S160では、ブロック生成部140が、新規ブロックBLを生成してブロックチェーンBCに連結する。S160の処理の後、本フローはS110へと戻る。
一方で、S150にて合意が形成されなかったと判定されると、本フローがS170へと移行する。S170では、ブロック生成部140が、新規ブロックBLの生成を中止し、本フローが終了する。
次に、データ保存処理のうち、データの信憑性を検証する処理について図5に従って説明する。まず、S210では、ブロックハッシュ生成部130が、車両Aの駆動源が停止したか否かを判定する。停止していないと判定した場合、停止したと判定するまで待機する。一方で停止したと判定した場合には、S220にて、ブロックハッシュ生成部130が、最終ブロックからブロックハッシュ値BHを生成する。次に、S230にて、ハッシュ保存処理部150が、生成したブロックハッシュ値BHをセキュアストレージTSに保存し、前回保存されたブロックハッシュ値BHを更新する。
続くS240では、データハッシュ生成部120が、車両Aの駆動源が起動したか否かを判定する。起動していないと判定した場合、起動したと判定するまで待機する。一方で起動したと判定した場合には、S250にて、データブロック作成部110が新規トランザクションを作成する。続くS255にて、データハッシュ生成部120が、セキュアストレージTSに保存されたブロックハッシュ値BHと新規トランザクションとに基づく新規データハッシュ値を生成する。さらに、S260では、送信処理部160が、生成した新規トランザクションおよび最終ブロックのブロックハッシュ値BHを、検証担当のECUへと送信する。
そして、S270では、ブロック生成部140が、各車載ECUからの判断情報に基づき多数決合意が形成されたか否かを判定する。多数決合意が形成されたと判定した場合、S280にて、ブロック生成部140が、新規ブロックBLを生成してブロックチェーンBCに追加する。なお、S280の処理を実行した後は、図4に示すブロックチェーン生成処理を開始すればよい。一方で、S270にて多数決合意が形成されなかったと判定した場合、S290にて、ブロック生成部140は、新規ブロックBLの生成を中止する。
次に、データ保存処理のうち、検証担当のECUにて実行される処理について図6に従って説明する。図6に示す処理は、車載ECU100の起動中に実行される。
まず、S310では、ブロック保存処理部190が、車両Aの駆動源が停止したか否かを判定する。停止していないと判定した場合、停止したと判定するまで待機する。一方で停止したと判定した場合には、S320にて、ブロックハッシュ保存処理部170が、検証対象のECUから分散されたブロックチェーンBCの最終ブロックからブロックハッシュ値BHを生成する。次に、S330にて、ブロックハッシュ保存処理部170が、生成したブロックハッシュ値BHをセキュアストレージTSに保存し、前回保存されたブロックハッシュ値を更新する。
続くS340では、検証実行部180が、車両Aの駆動源が起動したか否かを判定する。起動していないと判定した場合、起動したと判定するまで待機する。一方で起動したと判定した場合には、S350にて、検証実行部180が、検証対象のECUから新規トランザクションおよびデータハッシュ値を取得する。
そして、S360では、検証実行部180が、検証対象のECUを承認するか否かを判定する。承認すると判定すると、S361にて、検証実行部180が、新たなブロックBLの追加を承認する旨の判断情報を他の車載ECU100へと送信する。
一方で、S360にてデータハッシュ値が一致しないと判定すると、S362にて、検証実行部180が、新たなブロックBLの追加を非承認する旨の判断情報を他の車載ECU100へと送信する。続くS370、S380、S390の処理は、図5におけるS270、S280、S290の処理と同等である。S370、S380、S390の処理は、ブロック保存処理部190により実行される。
なお、上述のS140,S150が「ブロック生成プロセス」、S210,S220,S230が「保存処理プロセス」、S120,S255が「データハッシュ生成プロセス」、S160,S260が「送信プロセス」の一例である。
以上の第1実施形態によれば、特定の更新タイミングごとに、ストレージ領域に保存された最終ブロックハッシュ値が更新される。偽の車載ECUの取り付け等によりデータが改ざんされた場合には、最終ブロックハッシュ値および新規データハッシュ値が本来のものと異なったものとなるため、これらの値の少なくとも一方に基づいて改ざんの有無を検証することが可能となり得る。さらに、これらの値は更新タイミングごとに変化するため、前回以前の更新タイミングにおけるこれらの値が漏洩したとしても、改ざんが検知され得る。以上により、データの改ざんを困難にすることが可能となり得る。
また、第1実施形態によれば、3つ以上の他の車載ECU100に対して新規データおよび新規データハッシュ値が検証情報として送信される。そして、3つ以上の他の車載ECU100にて多数決合意が取れたと判断された場合に、新規データハッシュ値およびブロックハッシュ値BHに基づく新規ブロックBLが生成され、ブロックチェーンBCに連結される。これによれば、3つ以上の他の車載ECU100における多数決合意にて信憑性が判断されるので、2つ以下の他の車載ECU100にて信憑性を判断する場合に比べて、信憑性確保の確実性が大きくなる。
加えて、第1実施形態によれば、車両Aの駆動源の停止タイミングにて、セキュアストレージTSに保存されている最終ブロックハッシュ値が更新される。故に、偽の車載ECUを取り付けられる可能性が比較的高い車両Aの停止期間に入るタイミングにて最終ブロックハッシュ値が更新され得る。したがって、偽の車載ECU100による改ざんがより確実に困難になり得る。
(第2実施形態)
第2実施形態では、第1実施形態における車載ECU100の変形例について説明する。図7および図8において第1実施形態の図面中と同一符号を付した構成要素は、同様の構成要素であり、同様の作用効果を奏するものである。
第2実施形態のデータハッシュ生成部120は、新規データハッシュ値の生成に、ブロックハッシュ値BHに加えて予め設定された鍵情報を利用する。鍵情報は、例えば、車載ECU100ごとに固有に付与された識別情報であるMACアドレスMAとされる。MACアドレスMAは、ノーマルストレージUSに保存されている。または、鍵情報は、車載ECU100の製造時に予め設定された任意の鍵値であってもよい。データハッシュ生成部120は、新規トランザクション、ブロックハッシュ値BHおよびMACアドレスMAを合成してハッシュ関数に入力することで、新規データハッシュ値を得る。データハッシュ生成部120は、駆動源の起動が判定されて新規トランザクションを生成した後に、以上の処理を実行する(S256)。
第2実施形態の車載ECU100によれば、予め設定された鍵情報が、さらに新規データハッシュ値の生成に利用される。故に、偽の車載ECUによる偽の新規データハッシュ値の生成がより困難になり得る。したがって、偽の車載ECUによる改ざんを一層確実に判別し得る。
(他の実施形態)
この明細書における開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。例えば、開示は、実施形態において示された部品および/または要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示は、実施形態に追加可能な追加的な部分をもつことができる。開示は、実施形態の部品および/または要素が省略されたものを包含する。開示は、ひとつの実施形態と他の実施形態との間における部品および/または要素の置き換え、または組み合わせを包含する。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味および範囲内での全ての変更を含むものと解されるべきである。
上述の実施形態において、車載ECU100は、ドライバの操作履歴データHDを取得データとして保存するとしたが、操作履歴データHD以外のデータを保存してもよい。例えば、車載ECU100は、車両Aの走行距離、走行経路および走行挙動等を保存してもよい。
上述の実施形態において、ハッシュ保存処理部150は、駆動源の停止を判断できる停止信号を取得した場合に、停止タイミングであると判断するとした。これに代えて、ハッシュ保存処理部150は、停止信号の取得から所定の時間経過した場合に停止タイミングであると判断してもよい。または、ハッシュ保存処理部150は、停止信号を取得し且つ車両Aの電源スイッチ(イグニッションスイッチ等)がオフである場合に、停止タイミングであると判断してもよい。
上述の実施形態において、車載ECU100は、車両Aの駆動源の停止タイミングにてセキュアストレージTSのブロックハッシュ値BHを更新するとした。これに代えて、車載ECU100は、一定時間ごとにブロックハッシュ値BHの更新を実行してもよい。または、車載ECU100は、新規ブロックを生成するたびにブロックハッシュ値BHを更新してもよい。また、車載ECU100は、車両Aのシフト位置がパーキングレンジにセットされたタイミングにてブロックハッシュ値BHを更新してもよく、サーバから指示信号を受けたタイミングにてブロックハッシュ値BHを更新してもよい。
上述の実施形態において、検証対象のECUは、3つ以上の検証担当のECUに対して新規トランザクションおよび新規データハッシュ値を送信するとした。これに代えて、検証対象のECUは、2つ以下の検証担当のECUに新規トランザクションおよび新規データハッシュ値を送信してもよい。この場合、検証対象のECUの承認は、多数決合意以外の手法で行われればよい。
上述の実施形態において、車載ECU100がデータ保存処理を実行するとした。これに代えて、車両A以外の移動体に搭載されたデータ保存装置がデータ保存処理を実行してもよい。移動体には、船舶、飛行機、鉄道車両等が含まれる。
上述の実施形態において、ブロック生成部140は、データハッシュ値とブロックハッシュ値との組み合わせによるブロックBLを生成するとした。これに代えて、ブロック生成部140は、トランザクションとブロックハッシュ値の組み合わせによるブロックBLを生成してもよい。または、ブロック生成部140はトランザクション、データハッシュ値およびブロックハッシュ値の組み合わせによるブロックBLを生成してもよい。
上述の実施形態において、データハッシュ生成部120は、トランザクションが生成されるたびに、ブロックハッシュ値とトランザクションとを合成したものを、データハッシュ値に変換するとした。これに代えて、データハッシュ生成部120は、駆動源起動直後以外は、単にトランザクションをデータハッシュ値に変換し、駆動源起動直後には、ブロックハッシュ値とトランザクションとを合成したものをデータハッシュ値に変換する構成であってもよい。
上述の実施形態において、送信処理部160は、トランザクションとブロックハッシュ値を検証担当のECUに送信するとした。これに代えて、送信処理部160は、トランザクションと当該トランザクションから生成されたデータハッシュ値とを送信してもよい。
車載ECU100は、デジタル回路およびアナログ回路のうち少なくとも一方をプロセッサとして含んで構成される、専用のコンピュータであってもよい。ここで特にデジタル回路とは、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、SOC(System on a Chip)、PGA(Programmable Gate Array)、およびCPLD(Complex Programmable Logic Device)等のうち、少なくとも一種類である。またこうしたデジタル回路は、プログラムを格納したメモリを、備えていてもよい。
車載ECU100は、1つのコンピュータ、またはデータ通信装置によってリンクされた一組のコンピュータ資源によって提供され得る。例えば、上述の実施形態における車載ECU100の提供する機能の一部は、他のECUによって実現されてもよい。
100 車載ECU(データ保存装置)、 102 プロセッサ、 120 データハッシュ生成部、 140 ブロック生成部、 150 ハッシュ保存処理部(保存処理部)、 160 送信処理部(送信部)、 A 車両(移動体)、 BC ブロックチェーン、 NW ノーマルワールド、 SW セキュアワールド、 TS セキュアストレージ(ストレージ領域)。

Claims (9)

  1. 移動体(A)に搭載され、ノーマルワールド(NW)および前記ノーマルワールドからのアクセスが制限されるセキュアワールド(SW)を規定し、前記移動体にて取得される取得データを、ブロックチェーン(BC)を用いて保存するデータ保存装置であって、
    前記ブロックチェーンに連結する新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成するブロック生成部(140)と、
    特定の更新タイミングごとに前記ブロックチェーンの最後に連結された最終ブロックに基づく最終ブロックハッシュ値を前記セキュアワールドのストレージ領域(TS)に保存することで、前回の前記更新タイミングにて保存した前記最終ブロックハッシュ値を更新する保存処理部(150)と、
    少なくとも前記更新タイミングごとに、前記取得データと前記最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成するデータハッシュ生成部(120)と、
    を備えるデータ保存装置。
  2. 前記移動体に搭載された3つ以上の他の情報処理装置に対して、前記ブロックチェーンに前記新規ブロックを連結してよいか否かを検証させるための検証情報を送信する送信部(160)をさらに備え、
    前記ブロック生成部は、3つ以上の前記情報処理装置にて前記新規ブロックの連結について多数決合意が取れたと判断した場合に、前記新規ブロックを前記ブロックチェーンへ連結する請求項1に記載のデータ保存装置。
  3. 前記保存処理部は、前記移動体における駆動源の停止タイミングにて、前記最終ブロックハッシュ値の更新を実行する請求項1または請求項2に記載のデータ保存装置。
  4. 前記データハッシュ生成部は、予め設定された鍵情報を、さらに前記データハッシュ値の生成に利用する請求項1から請求項3のいずれか1項に記載のデータ保存装置。
  5. 移動体(A)に搭載され、ノーマルワールド(NW)および前記ノーマルワールドからのアクセスが制限されるセキュアワールド(SW)を規定し、前記移動体にて取得される取得データを、ブロックチェーン(BC)を用いて保存するために、プロセッサ(102)により実行されるデータ保存方法であって、
    前記ブロックチェーンに連結する新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成するブロック生成プロセス(S140,S150)と、
    特定の更新タイミングごとに、前記ブロックチェーンの最後に連結された最終ブロックに基づく最終ブロックハッシュ値を前記セキュアワールドのストレージ領域(TS)に保存することで、前回の前記更新タイミングにて保存した前記最終ブロックハッシュ値を更新する保存処理プロセス(S210,S220,S230)と、
    少なくとも前記更新タイミングごとに、前記取得データと前記最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成するデータハッシュ生成プロセス(S120,S255)と、
    を含むデータ保存方法。
  6. 前記移動体に搭載された3つ以上の他の情報処理装置に対して、前記ブロックチェーンに前記新規ブロックを連結してよいか否かを検証させるための検証情報を送信する送信プロセス(S160,S260)をさらに含み、
    前記ブロック生成プロセスでは、3つ以上の前記情報処理装置にて前記新規ブロックの連結について多数決合意が取れたと判断した場合に、前記新規ブロックを前記ブロックチェーンへ連結する請求項5に記載のデータ保存方法。
  7. 前記保存処理プロセスでは、前記移動体における駆動源の停止タイミングにて、前記最終ブロックハッシュ値の更新を実行する請求項5または請求項6に記載のデータ保存方法。
  8. 前記データハッシュ生成プロセスでは、予め設定された鍵情報を、さらに前記データハッシュ値の生成に利用する請求項5から請求項7のいずれか1項に記載のデータ保存方法。
  9. 移動体(A)に搭載され、ノーマルワールド(NW)および前記ノーマルワールドからのアクセスが制限されるセキュアワールド(SW)を規定し、前記移動体にて取得される取得データを、ブロックチェーン(BC)を用いて保存するために、プロセッサ(102)に実行させる命令を含むデータ保存プログラムであって、
    前記命令は、
    前記ブロックチェーンに連結させる新規ブロックを、少なくとも直前のブロックから生成されたブロックハッシュ値に基づいて生成させるブロック生成プロセス(S140,S150)と、
    特定の更新タイミングごとに、前記ブロックチェーンの最後に連結された最終ブロックに基づく最終ブロックハッシュ値を前記セキュアワールドのストレージ領域(TS)に保存することで、前回の前記更新タイミングにて保存した前記最終ブロックハッシュ値を更新させる保存処理プロセス(S210,S220,S230)と、
    少なくとも前記更新タイミングごとに、前記取得データと前記最終ブロックハッシュ値とに基づくハッシュ値であるデータハッシュ値を生成させるデータハッシュ生成プロセス(S120,S255)と、
    を含むデータ保存プログラム。
JP2020216399A 2020-12-25 2020-12-25 データ保存装置、データ保存方法、およびデータ保存プログラム Active JP7472781B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020216399A JP7472781B2 (ja) 2020-12-25 2020-12-25 データ保存装置、データ保存方法、およびデータ保存プログラム
CN202180086419.1A CN116710917A (zh) 2020-12-25 2021-11-23 数据保存装置、数据保存方法、以及数据保存程序
PCT/JP2021/042863 WO2022137945A1 (ja) 2020-12-25 2021-11-23 データ保存装置、データ保存方法、およびデータ保存プログラム
US18/339,113 US20230336356A1 (en) 2020-12-25 2023-06-21 Data storage device, data storage method, and non-transitory computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020216399A JP7472781B2 (ja) 2020-12-25 2020-12-25 データ保存装置、データ保存方法、およびデータ保存プログラム

Publications (2)

Publication Number Publication Date
JP2022101967A true JP2022101967A (ja) 2022-07-07
JP7472781B2 JP7472781B2 (ja) 2024-04-23

Family

ID=82159075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020216399A Active JP7472781B2 (ja) 2020-12-25 2020-12-25 データ保存装置、データ保存方法、およびデータ保存プログラム

Country Status (4)

Country Link
US (1) US20230336356A1 (ja)
JP (1) JP7472781B2 (ja)
CN (1) CN116710917A (ja)
WO (1) WO2022137945A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023019048A (ja) * 2021-07-28 2023-02-09 トヨタ自動車株式会社 センタ、方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018133744A (ja) 2017-02-16 2018-08-23 パナソニックIpマネジメント株式会社 通信システム、車両、および監視方法
CA3061265C (en) 2019-04-03 2022-03-08 Alibaba Group Holding Limited Processing and storing blockchain data under a trusted execution environment
JP7176488B2 (ja) * 2019-07-08 2022-11-22 株式会社デンソー データ保存装置、及びデータ保存プログラム

Also Published As

Publication number Publication date
US20230336356A1 (en) 2023-10-19
CN116710917A (zh) 2023-09-05
JP7472781B2 (ja) 2024-04-23
WO2022137945A1 (ja) 2022-06-30

Similar Documents

Publication Publication Date Title
US10723361B2 (en) Monitoring apparatus, communication system, vehicle, monitoring method, and non-transitory storage medium
US20190056925A1 (en) Update control apparatus, software update system, and update control method
CN104773120B (zh) 用于高效重新编程的车内设备及其控制方法
Guette et al. Using tpms to secure vehicular ad-hoc networks (vanets)
US10049232B2 (en) Rewrite detection system, rewrite detection device and information processing device
US11652643B2 (en) Verification method, verification apparatus, and storage medium including program stored therein
WO2019159593A1 (ja) 電子制御装置及び通信システム
US11539693B2 (en) Method for providing random numbers for control units of a vehicle network, and vehicle network for performing said method
JP7176488B2 (ja) データ保存装置、及びデータ保存プログラム
CN106529301B (zh) 车机系统的控制方法、装置以及车机系统
JP2013060047A (ja) 車両用ネットワークシステム及び車両用情報処理方法
WO2022137945A1 (ja) データ保存装置、データ保存方法、およびデータ保存プログラム
JP2018081349A (ja) 改竄検知システム、検証ecu、被検証ecu、プログラム
US20230083716A1 (en) Devices, methods, and computer program for releasing transportation vehicle components, and vehicle-to-vehicle communication module
US8776205B2 (en) Secure connection systems and methods for vehicles
WO2019225369A1 (ja) 車載通信システム、判定装置、通信装置、判定方法及びコンピュータプログラム
WO2021207986A1 (zh) 数据验证方法及装置
JP7067508B2 (ja) ネットワークシステム
WO2013161371A1 (ja) プログラム提供装置、システム、プログラム提供方法およびプログラム
US20230306101A1 (en) System, vehicle, and method
US20230205887A1 (en) Secure automotive system
WO2023232045A1 (zh) 车辆校验方法、相关装置及系统
JP2013121071A (ja) 中継システム及び、当該中継システムを構成する中継装置、外部装置
JP2017168904A (ja) 通信システム
CN116155625A (zh) 密钥交换方法、装置、电子设备、存储介质及程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240325

R150 Certificate of patent or registration of utility model

Ref document number: 7472781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150