(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-16
(54)【発明の名称】車両内の電子デバイスのソフトウェアセキュリティを検証するための方法および関連するデバイス
(51)【国際特許分類】
G06F 21/50 20130101AFI20231006BHJP
【FI】
G06F21/50
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023519759
(86)(22)【出願日】2020-09-30
(85)【翻訳文提出日】2023-05-09
(86)【国際出願番号】 CN2020119574
(87)【国際公開番号】W WO2022067731
(87)【国際公開日】2022-04-07
(81)【指定国・地域】
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】ギリシュ・シヴァリンガッパ・レヴァディガル
(72)【発明者】
【氏名】ジュオ・ウェイ
(72)【発明者】
【氏名】ジェン・リ
(72)【発明者】
【氏名】ミンミン・ジャン
(72)【発明者】
【氏名】ガンヤン・オウ
(57)【要約】
本出願の実施形態は、車両内の電子デバイスのソフトウェアセキュリティを検証するための方法および関連するデバイスを提供する。方法は、N個の第1の検証パラメータを取得するステップと、N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するステップであって、第1のノードがN個の電子デバイスの親ノードである、ステップと、トラステッドデバイスから、第1のノードに対応する第1のリファレンスパラメータを取得するステップと、第1のノードに対応する第1の検証パラメータおよび第1のノードに対応する第1のリファレンスパラメータに従って、N個の電子デバイスのソフトウェアセキュリティを検証するステップとを含む。技術的解決策は、車両の電子デバイス上で動作しているソフトウェアの完全性および信頼性を確保し得る。
【特許請求の範囲】
【請求項1】
車両内の電子デバイスのソフトウェアバージョンを検証するための方法であって、前記方法が、
N個の第1の検証パラメータを取得するステップであって、前記N個の第1の検証パラメータが前記車両内のN個の電子デバイスと一対一に対応し、前記N個の第1の検証パラメータのi番目の第1の検証パラメータが、前記N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nが1よりも大きい正の整数である、ステップと、
前記N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するステップであって、前記第1のノードが前記N個の電子デバイスの親ノードである、ステップと、
トラステッドデバイスから、前記第1のノードに対応する第1のリファレンスパラメータを取得するステップと、
前記第1のノードに対応する前記第1の検証パラメータおよび前記第1のノードに対応する前記第1のリファレンスパラメータに従って、前記N個の電子デバイスのソフトウェアセキュリティを検証するステップと
を含む、方法。
【請求項2】
前記方法が、
N個の第2の検証パラメータを取得するステップであって、前記N個の第2の検証パラメータが前記N個の電子デバイスと一対一に対応し、前記N個の第2の検証パラメータのi番目の第2の検証パラメータが、前記N個の電子デバイスの前記i番目の電子デバイスの前記ソフトウェアイメージに従って決定される、ステップをさらに含み、
N個の第1の検証パラメータを取得する前記ステップは、
前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の電子デバイスの前記i番目の電子デバイスの識別情報に従って、前記N個の第1の検証パラメータの前記i番目の第1の検証パラメータを決定するステップであって、i=1,…,Nである、ステップを含む、請求項1に記載の方法。
【請求項3】
前記方法が、
トラステッドデバイスからN個の第2のリファレンスパラメータを取得するステップであって、前記N個の第2のリファレンスパラメータが前記N個の電子デバイスと一対一に対応する、ステップと、
前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、前記N個の電子デバイスの前記i番目の電子デバイスのソフトウェアセキュリティを検証するステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記方法が、
M個の電子デバイスに対応するツリーを決定するステップであって、前記ツリーがM個のノードを含み、前記M個のノードが前記車両内のM個の電子デバイスと一対一に対応し、前記M個の電子デバイスが前記N個の電子デバイスを含み、MがNよりも大きい正の整数である、ステップと、
前記ツリー内の前記M個のノードの接続関係に基づいて、前記第1のノードが前記N個の電子デバイスの親ノードであると決定するステップと
をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記ツリーの前記M個のノードの前記接続関係と、前記車両内の前記M個の電子デバイスの接続関係とが同じである、請求項4に記載の方法。
【請求項6】
前記ツリーが、前記車両に対応する高さ平衡バイナリツリーである、請求項4に記載の方法。
【請求項7】
前記ツリーが完全平衡バイナリツリーであり、前記M個のノードが前記ツリーの葉ノードであり、前記ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である、請求項4に記載の方法。
【請求項8】
前記方法が、
第1のブロックを決定し、記憶するステップであって、前記第1のブロックが前記ツリーに対応し、前記第1のブロックが第1の構造情報を含み、前記第1の構造情報が前記ツリーのノードの接続関係を示すために使用される、ステップと、
第2のブロックを決定し、記憶するステップであって、前記第2のブロックが第2の構造情報を含み、前記第2の構造情報が、未修正の指示情報および修正された指示情報を含み、前記未修正の指示情報が、未更新のノードを示すために使用され、前記修正された指示情報が、更新されたノードの接続関係を示すために使用され、前記未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、前記更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている、ステップと
をさらに含む、請求項4から7のいずれか一項に記載の方法。
【請求項9】
前記第1のブロックが、前記第1のブロックを記憶した時刻を示すタイムスタンプと、前記M個の電子デバイスに対応するソフトウェア情報とをさらに含み、
前記第2のブロックが、前記第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む、請求項8に記載の方法。
【請求項10】
コンピューティングデバイスであって、
N個の第1の検証パラメータを取得するように構成された取得モジュールであって、前記N個の第1の検証パラメータが車両内のN個の電子デバイスと一対一に対応し、前記N個の第1の検証パラメータのi番目の第1の検証パラメータが、前記N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nが1よりも大きい正の整数である、取得モジュールと、
前記N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するように構成された決定モジュールであって、前記第1のノードが前記N個の電子デバイスの親ノードである、決定モジュールと
を備え、
前記取得モジュールが、トラステッドデバイスから、前記第1のノードに対応する第1のリファレンスパラメータを取得するようにさらに構成され、
前記決定モジュールが、前記第1のノードに対応する前記第1の検証パラメータおよび前記第1のノードに対応する前記第1のリファレンスパラメータに従って、前記N個の電子デバイスのソフトウェアセキュリティを検証するようにさらに構成される、デバイス。
【請求項11】
前記取得モジュールが、N個の第2の検証パラメータを取得することであって、前記N個の第2の検証パラメータが前記N個の電子デバイスと一対一に対応し、前記N個の第2の検証パラメータのi番目の第2の検証パラメータが、前記N個の電子デバイスの前記i番目の電子デバイスの前記ソフトウェアイメージに従って決定される、ことを行うようにさらに構成され、
前記取得モジュールが、前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の電子デバイスの前記i番目の電子デバイスの識別情報に従って、前記N個の第1の検証パラメータの前記i番目の第1の検証パラメータを決定することであって、i=1,…,Nである、ことを行うようにさらに構成される、請求項10に記載のデバイス。
【請求項12】
前記取得モジュールが、トラステッドデバイスからN個の第2のリファレンスパラメータを取得することであって、前記N個の第2のリファレンスパラメータが前記N個の電子デバイスと一対一に対応する、ことを行うようにさらに構成され、
前記決定モジュールが、前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、前記N個の電子デバイスの前記i番目の電子デバイスのソフトウェアセキュリティを検証するようにさらに構成される、請求項11に記載のデバイス。
【請求項13】
前記決定モジュールが、
M個の電子デバイスに対応するツリーを決定することであって、前記ツリーがM個のノードを含み、前記M個のノードが前記車両内のM個の電子デバイスと一対一に対応し、前記M個の電子デバイスが前記N個の電子デバイスを含み、MがNよりも大きい正の整数である、ことと、
前記ツリー内の前記M個のノードの接続関係に基づいて、前記第1のノードが前記N個の電子デバイスの親ノードであると決定することと
を行うようにさらに構成される、請求項10から12のいずれか一項に記載のデバイス。
【請求項14】
前記ツリーの前記M個のノードの前記接続関係と、前記車両内の前記M個の電子デバイスの接続関係とが同じである、請求項13に記載のデバイス。
【請求項15】
前記ツリーが、前記車両に対応する高さ平衡バイナリツリーである、請求項13に記載のデバイス。
【請求項16】
前記ツリーが完全平衡バイナリツリーであり、前記M個のノードが前記ツリーの葉ノードであり、前記ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である、請求項13に記載のデバイス。
【請求項17】
前記決定モジュールが、
第1のブロックを決定することであって、前記第1のブロックが前記ツリーに対応し、前記第1のブロックが第1の構造情報を含み、前記第1の構造情報が前記ツリーのノードの接続関係を示すために使用される、ことと、
第2のブロックを決定することであって、前記第2のブロックが第2の構造情報を含み、前記第2の構造情報が、未修正の指示情報および修正された指示情報を含み、前記未修正の指示情報が、未更新のノードを示すために使用され、前記修正された指示情報が、更新されたノードの接続関係を示すために使用され、前記未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、前記更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている、ことと
を行うようにさらに構成される、請求項13から16のいずれか一項に記載のデバイス。
【請求項18】
前記第1のブロックが、前記第1のブロックを記憶した時刻を示すタイムスタンプと、前記M個の電子デバイスに対応するソフトウェア情報とをさらに含み、
前記第2のブロックが、前記第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む、請求項17に記載のデバイス。
【請求項19】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体が命令を記憶し、前記命令がサーバ上で動作したとき、前記サーバが、請求項1から9のいずれか一項に記載の方法を実行可能となる、コンピュータ可読記憶媒体。
【請求項20】
メモリとプロセッサとを備えたデバイスであって、前記メモリがコンピュータプログラムを記憶するように構成され、前記プロセッサが前記メモリから前記コンピュータプログラムを呼び出して前記コンピュータプログラムを動作させるように構成され、その結果、チップが配置されたサーバが、請求項1から9のいずれか一項に記載の方法を実行する、デバイス。
【請求項21】
コンピュータプログラム製品であって、前記コンピュータプログラム製品がサーバ上で動作したとき、前記サーバが、請求項1から9のいずれか一項に記載の方法を実行可能となる、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報技術の分野に関し、より具体的には、車両内の電子デバイスのソフトウェアセキュリティを検証するための方法および関連するデバイスに関する。
【背景技術】
【0002】
現代の自動車/車両は、数多くの電子デバイスを装備している。各電子デバイスは、他とは異なり、固有の動作を実行する。電子デバイス内のソフトウェアが動作を制御する。
【0003】
数多くの電子デバイスを装備しているので、現代の車両はより脆弱である。例えば、攻撃者が、車両のアクセスを得るために、修正されたソフトウェアを電子デバイスにインストールし、機密情報を盗む可能性があり、悪意のあるソフトウェア(マルウェア)/ウイルスが車両の内部ネットワークに侵入し、車両内の電子デバイスを再プログラムする可能性がある。したがって、どのようにして車両内の電子デバイスのソフトウェアセキュリティを確保するのかは、対処される必要のある問題である。
【発明の概要】
【0004】
本出願の実施形態は、車両内の電子デバイスのソフトウェアセキュリティを検証するための方法および関連するデバイスを提供する。技術的解決策は、車両の電子デバイス上で動作しているソフトウェアの完全性および信頼性を確保し得る。
【課題を解決するための手段】
【0005】
第1の態様によれば、本出願の一実施形態は、車両内の電子デバイスのソフトウェアバージョンを検証するための方法を提供し、方法は、N個の第1の検証パラメータを取得するステップであって、N個の第1の検証パラメータが車両内のN個の電子デバイスと一対一に対応し、N個の第1の検証パラメータのi番目の第1の検証パラメータが、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nが1よりも大きい正の整数である、ステップと、N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するステップであって、第1のノードがN個の電子デバイスの親ノードである、ステップと、トラステッドデバイスから、第1のノードに対応する第1のリファレンスパラメータを取得するステップと、第1のノードに対応する第1の検証パラメータおよび第1のノードに対応する第1のリファレンスパラメータに従って、N個の電子デバイスのソフトウェアセキュリティを検証するステップとを含む。
【0006】
方法は新規であり、サーバ上および車両上の両方で複数の電子デバイスソフトウェアのバージョンを保持する効率的なやり方を導入する。方法は、車両の各電子デバイス上で動作しているソフトウェアの完全性および信頼性を確保する。攻撃者による電子デバイスソフトウェアのいかなる攻撃および悪意のある変更も正確に識別されることができる。方法は、市販品に対して容易に実施されることができる。
【0007】
1つの可能な設計では、方法は、
N個の第2の検証パラメータを取得するステップであって、N個の第2の検証パラメータがN個の電子デバイスと一対一に対応し、N個の第2の検証パラメータのi番目の第2の検証パラメータが、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定される、ステップをさらに含み、N個の第1の検証パラメータを取得するステップは、N個の第2の検証パラメータのi番目の第2の検証パラメータおよびN個の電子デバイスのi番目の電子デバイスの識別情報に従って、N個の第1の検証パラメータのi番目の第1の検証パラメータを決定するステップであって、i=1,…,Nである、ステップを含む。
【0008】
1つの可能な設計では、方法は、トラステッドデバイスからN個の第2のリファレンスパラメータを取得するステップであって、N個の第2のリファレンスパラメータがN個の電子デバイスと一対一に対応する、ステップと、N個の第2の検証パラメータのi番目の第2の検証パラメータおよびN個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、N個の電子デバイスのi番目の電子デバイスのソフトウェアセキュリティを検証するステップとをさらに含む。
【0009】
1つの可能な設計では、方法は、M個の電子デバイスに対応するツリーを決定するステップであって、ツリーがM個のノードを含み、M個のノードが車両内のM個の電子デバイスと一対一に対応し、M個の電子デバイスがN個の電子デバイスを含み、MがNよりも大きい正の整数である、ステップと、ツリー内のM個のノードの接続関係に基づいて、第1のノードがN個の電子デバイスの親ノードであると決定するステップとをさらに含む。
【0010】
1つの可能な設計では、ツリーのM個のノードの接続関係と、車両内のM個の電子デバイスの接続関係とが同じである。
【0011】
1つの可能な設計では、ツリーが、車両に対応する高さ平衡バイナリツリーである。
【0012】
1つの可能な設計では、ツリーが完全平衡バイナリツリーであり、M個のノードがツリーの葉ノードであり、ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である。
【0013】
1つの可能な設計では、方法は、第1のブロックを決定し、記憶するステップであって、第1のブロックがツリーに対応しており、第1のブロックが第1の構造情報を含み、第1の構造情報がツリーのノードの接続関係を示すために使用される、ステップと、第2のブロックを決定し、記憶するステップであって、第2のブロックが第2の構造情報を含み、第2の構造情報が、未修正の指示情報および修正された指示情報を含み、未修正の指示情報が、未更新のノードを示すために使用され、修正された指示情報が、更新されたノードの接続関係を示すために使用され、未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている、ステップとをさらに含む。
【0014】
1つの可能な設計では、第1のブロックが、第1のブロックを記憶した時刻を示すタイムスタンプと、M個の電子デバイスに対応するソフトウェア情報とをさらに含み、第2のブロックが、第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む。
【0015】
第2の態様によれば、本出願の一実施形態はコンピューティングデバイスを提供し、コンピューティングデバイスは、第1の態様の方法を実施する機能を有する。機能は、ハードウェアによって実施され得るか、または対応するソフトウェアを実行するハードウェアによって実施され得る。ソフトウェアのハードウェアは、機能に対応する1つまたは複数のモジュールを含む。
【0016】
第3の態様によれば、本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体を提供する。コンピュータ上で命令が動作したとき、コンピュータは、第1の態様、または第1の態様のいずれかの可能な実施態様における方法を実行可能となる。
【0017】
第4の態様によれば、プロセッサと、メモリと、通信インターフェースとを含むコンピューティングデバイスが提供される。プロセッサはメモリおよび通信インターフェースに接続される。メモリは命令を記憶するように構成され、プロセッサは命令を実行するように構成され、通信インターフェースはプロセッサの制御下で別のネットワーク要素と通信するように構成される。プロセッサがメモリに記憶された命令を実行したとき、プロセッサは、第1の態様または第1の態様の任意の可能な実装態様における方法を実行可能となる。
【0018】
第5の態様によれば、チップシステムが提供され、チップシステムは、メモリとプロセッサとを含み、メモリはコンピュータプログラムを記憶するように構成され、プロセッサは、メモリからコンピュータプログラムを呼び出してコンピュータプログラムを動作させるように構成され、その結果、チップが配置されたサーバは、第1の態様または第1の態様の任意の可能な実装態様における方法を実行する。
【0019】
第6の態様によれば、コンピュータプログラム製品が提供され、コンピュータプログラム製品がサーバ上で動作したとき、サーバは、第1の態様または第1の態様の任意の可能な実装態様における方法を実行可能となる。
【図面の簡単な説明】
【0020】
【
図1】本出願の一実施形態に係る車両内の電子デバイスの概略ブロック図である。
【
図6】車両内の電子デバイスのソフトウェアセキュリティを検証するための方法の実施形態のフローチャートである。
【
図11】車両内の電子デバイスのソフトウェアセキュリティを検証するための方法の別の実施形態のフローチャートである。
【
図12】車両200に対応するマークルツリーを示す。
【
図13】ソフトウェア更新後の車両200に対応するツリーを示す。
【
図14】VVTのブロックチェーンの一部を示す。VVTのブロックチェーン内の3つのブロックを示す。
【
図15】車両内の電子デバイスのソフトウェアバージョンを検証するための方法の実施形態のフローチャートである。
【
図16】本出願の一実施形態に係るコンピューティングデバイス1600の概略ブロック図である。
【
図17】本出願の一実施形態に係るコンピューティングデバイス1700の概略ブロック図である。
【
図18】ECUがHSM/TPMを有する場合にECUの第2の検証パラメータを取り出すための手順を示す。
【
図19】ECUがHSM/TPMを有しない場合にECUの第2の検証パラメータを取り出すための手順を示す。
【発明を実施するための形態】
【0021】
以下は、添付の図面を参照しつつ、本出願の技術的解決策を説明する。
【0022】
本出願に係る車両内の電子デバイスは、テレマティクスボックス(TBox)、セントラルコントローラ(CC)、ドメインコントローラ(DC)およびエレクトロニック・コントロール・ユニット(ECU)などを含み得る。
【0023】
図1は、本出願の一実施形態に係る車両内の電子デバイスの概略ブロック図である。
【0024】
図1に示されるように、電子デバイス100は、トランシーバ101と、プロセッサ102と、メモリ103とを含み得る。
【0025】
トランシーバ1001は他の電子デバイスと通信するように構成され得る。トランシーバ1001は制御情報および/またはデータを他の電子デバイスに送信し得、トランシーバ1001は他の電子デバイスから制御情報および/またはデータを受信し得る。例えば、トランシーバ1001は、サーバから更新バンドルを受信し得、受信された更新バンドルに含まれる1つまたは複数のパッチを車両内の対応する電子デバイスに送信し得、対応する電子デバイスから更新フィードバック情報を受信し得る。
【0026】
メモリ103は、プロセッサ102によって実行されるコード、命令などを記憶するように構成され得る。言い換えれば、電子デバイス100のソフトウェアに関連する命令およびデータがメモリ103に記憶される。
【0027】
本出願は、ソフトウェアとファームウェアとを区別しない。本出願で言及されるソフトウェアは、ファームウェアを示すためにも使用され得る。
【0028】
【0029】
図2を参照して、車両200は、14個の電子デバイス、すなわち、TBox201と、CC210と、DC220と、DC230と、DC240と、ECU221と、ECU222と、ECU223と、ECU231と、ECU232と、ECU241と、ECU242と、ECU243と、ECU244とを含む。
【0030】
TBox201は、CC210に繋がっている。DC220、DC230およびDC240は、CC210に繋がっている。ECU221、ECU222およびECU213は、DC220に繋がっており、ECU231およびECU232はDC230に繋がっており、ECU241、ECU242、ECU243およびECU244は、DC240に繋がっている。
【0031】
TBox201は、無線通信モジュールを内蔵している。TBox201は、ワイヤレスフィデリティ(Wi-Fi)、ロング・ターム・エボリューション(LTE)、第5世代(5G)モバイルネットワークなどのような無線通信方法のいずれかを介して、Over-Top-Air(OTA)サーバと通信し得る。
【0032】
図3は、本出願の一実施形態に係るシステムを示している。
【0033】
図3を参照すると、システムは、サーバ300と車両200とを含む。サーバ300は、車両200内の電子デバイスのソフトウェアセキュリティを検証するために使用されることができるサーバ、例えば、OTAサーバまたは他のタイプのサーバであり得る。
【0034】
車両200は複数の車両のうちの1つであることに留意されたい。これらの車両はすべてサーバ300に対応する。サーバ300は、これらの車両のうちの任意の1つの中の電子デバイスのソフトウェアセキュリティを検証するために使用され得る。記載を簡単にするために、
図3は、1つの車両(すなわち、車両200)のみを示している。
【0035】
本出願の実施形態は、
図2および
図3に関連して以下に説明され得る。
【0036】
車両200およびサーバ300は、車両内の電子デバイスのソフトウェアを管理するためにグローバル・バージョン・ツリー(GVT)および車両バージョン・ツリー(VVT)を使用し得る。
【0037】
各車両は対応するVVTを有する。異なる車両に対応するVVTは異なり得る。車両200に対応するVVTは、車両200内の電子デバイスそれぞれのソフトウェア情報を含む。車両200およびサーバ300に記憶されたVVTは、車両200内の電子デバイスのそれぞれの現在のソフトウェア情報を含み得る。記載を簡単にするために、車両に対応するVVTはVVTVEHと称され、車両200に記憶されたVVTはVVTVEH_Vと称され、サーバに記憶されたVVTはVVTVEH_Sと称される。
【0038】
車両200内の電子デバイスのソフトウェアが更新された後、VVTVEHと、VVTVEH_Vと、VVTVEH_Sとは同じである。
【0039】
【0040】
図4に示されるVVTでは、車両200内の電子デバイスの1つのソフトウェア情報のフォーマットは、[MFR_ID,DEV_ID:Version]であり得、MFR_IDは、電子デバイスのタイプおよび製造業者を識別するためのIDであり、DEV_IDは、電子デバイスの一意のIDであり、Versionは、電子デバイスの現在のソフトウェアバージョンである。例えば、TBox201のソフトウェア情報は[MFR_AA,0x01:V4]であり、これは、TBox201のタイプおよびTBox201の製造業者を識別するためのIDがMFR_AAであり、TBox201のIDが0x01であり、TBox201の現在のソフトウェアバージョンがV4であることを意味する。
【0041】
各車種は対応するGVTを有する。例えば、BMW-series-2-2019Q1はGVT1に対応し、BMW-series-2-2016Q2はGVT2に対応する。異なる車種は、異なる電子デバイスを装備し得る。したがって、異なる車種に対応するGVTは異なる情報を含み得る。
【0042】
車両200に記憶されているGVTおよびサーバ300に記憶されているGTVは、車両200の車種に対応するGVTである。記載を簡単にするために、車両200の車種はターゲットモデルと称され、ターゲットモデルに対応するGVTはGVTTGTと称され、車両200に記憶されているGVTはGVTTGT_Vと称され、サーバに記憶されているGVTはGVTTGT_Sと称される。
【0043】
車両200内の電子デバイスのソフトウェアが更新された後、GVTTGTと、GVTTGT_Vと、GVTTGT_Sとは同じである。
【0044】
【0045】
図5に示されるGVTでは、ターゲットモデル内の電子デバイスの1つのソフトウェア情報のフォーマットは、[MFR_ID,:Version]であり得、MFR_IDは、電子デバイスのタイプおよび製造業者を識別するためのIDであり、Versionは、電子デバイスの現在のソフトウェアバージョンである。例えば、TBox201のソフトウェア情報は[MFR_AA,:V4]であり、これは、TBox201のタイプおよびTBox201の製造業者を識別するためのIDがMFR_AAであり、TBox201の現在のソフトウェアバージョンがV4であることを意味する。
【0046】
理想的には、VVTVEH、VVTVEH_V、VVTVEH_S、GVTTGT、GVTTGT_VおよびGVTTGT_S内の電子デバイスの現在のソフトウェアバージョンは同じである。
【0047】
図6は、車両内の電子デバイスのソフトウェアセキュリティを検証するための方法の実施形態のフローチャートである。
【0048】
いくつかの実施形態では、
図6に示される方法は、車両または車両のコンポーネント(例えば、チップまたは回路)によって実行され得る。
【0049】
いくつかの実施形態では、
図6に示される方法は、車両に対応するサーバまたはサーバのコンポーネント(例えば、チップまたは回路)によって実行され得る。
【0050】
図3が一例にとられる。いくつかの実施形態では、車両200または車両200のコンポーネントは、
図6に示される方法を実施し得る。いくつかの実施形態では、サーバ300またはサーバ300のコンポーネントは、
図6に示される方法を実施し得る。
【0051】
いくつかの実施形態では、
図6に示される異なるステップは、車両および/または車両に対応するサーバの、異なるコンポーネントによって実施され得る。
【0052】
例えば、車両200の電子デバイスのそれぞれは、それ自体の第2の検証パラメータを決定し得、第2の検証パラメータを車両200のチップに送信し得、チップは、第1の検証パラメータを決定するため、および比較ステップを実行するために使用される。
【0053】
別の例として、車両200の電子デバイスのそれぞれは、それ自体の第2の検証パラメータを決定し得、第2の検証パラメータをTBox201に送信し得る。TBox201は、第2の検証パラメータをサーバ300に送信する。サーバ300は、第1の検証パラメータを決定し、比較ステップを実行する。
【0054】
別の例として、車両200の電子デバイスのそれぞれは、それ自体の第2の検証パラメータを決定し得、第2の検証パラメータを車両200のチップに送信し得、チップは、第1の検証パラメータを決定するために使用される。チップは、第1の検証パラメータおよび第2の検証パラメータを車両200のトランスミッタに送信し得る。トランスミッタは、第1の検証パラメータおよび第2の検証パラメータをサーバ300に送信し得る。サーバ300は、受信された検証パラメータに従って比較ステップを実行する。
【0055】
図6に示される方法は、
図2および
図3に関連して以下に説明され得る。加えて、
図6に関する以下の説明では、方法は車両200によって実行されると仮定する。
【0056】
601:車両200が14個の第1のソフトウェアパラメータを取得する。
【0057】
14個の第1のソフトウェアパラメータは、車両200の14個の電子デバイス(すなわち、
図2に示される電子デバイス)と一対一に対応する。記載を簡単にするために、TBox201に対応する第1のソフトウェアパラメータはF
st201と称され、CC210に対応する第1のソフトウェアパラメータはF
st210と称され、DC220に対応する第1のソフトウェアパラメータはF
st220と称される、などである。
【0058】
いくつかの実施形態では、電子デバイスに対応する第1のソフトウェアパラメータは、電子デバイスのソフトウェアイメージであり得る。電子デバイスのソフトウェアイメージは、電子デバイスのソフトウェア情報を反映し得る。異なるソフトウェアのソフトウェアイメージは異なり、同じソフトウェアの異なるバージョンのソフトウェアイメージも異なる。例えば、TBox201のソフトウェアイメージは、CC210のソフトウェアイメージと異なる。電子デバイスのソフトウェアが更新されている場合、電子のソフトウェアイメージはそれに応じて変更されることになる。電子デバイスのソフトウェアにマルウェアが埋め込まれている場合、電子デバイスのソフトウェアイメージは、マルウェアが含まれていない電子デバイスのソフトウェアイメージと異なることになる。
【0059】
いくつかの実施形態では、電子デバイスに対応する第1のソフトウェアパラメータは、電子デバイスのソフトウェアを更新するためのパッチであり得る。
【0060】
いくつかの実施形態では、電子デバイスに対応する第1のソフトウェアパラメータは、電子デバイスのソフトウェアのキーコードであり得る。
【0061】
いくつかの実施形態では、電子デバイスに対応する第1のソフトウェアパラメータは、電子デバイスのソフトウェアイメージ、電子デバイスのMFR_IDおよびDEV_IDを含み得る。
【0062】
いくつかの実施形態では、電子デバイスに対応する第1のソフトウェアパラメータは、電子デバイスに対応する第2の検証パラメータであり得る。例えば、電子デバイスは、ハードウェア・セキュリティ・モジュール(HSM)またはトラステッド・プラットフォーム・モジュール(TPM)を含み得る。HSM/TPMが利用可能である場合、HSM/TPMは、電子デバイスの、ソフトウェアイメージ/ソフトウェアを更新するためのパッチ/ソフトウェアのキーコード、に従って、電子デバイスの第2の検証パラメータを決定し得る。HSM/TPMが利用可能でないか、または電子デバイスがHSM/TPMを含まない場合、電子デバイスは、ソフトウェアイメージ/ソフトウェアを更新するためのパッチ/ソフトウェアのキーコードを、トラスト電子デバイスに送信し得る。トラスト電子デバイスは、受信されたソフトウェアイメージ/パッチ/キーコードに従って電子デバイスの第2の検証パラメータを決定し得る。トラスト電子デバイスは、第2の検証パラメータを決定することができない電子デバイスの親/先祖電子デバイスであり得る。例えば、ECU221のHSM/TPMが利用可能でない場合、ECU221のトラストノードはDC220またはCC210であり得る。第2の検証パラメータを決定するステップの詳細は後述される。
【0063】
図18は、ECUがHSM/TPMを有する場合にECUの第2の検証パラメータを取り出すための手順を示している。
【0064】
図19は、ECUがHSM/TPMを有しない場合にECUの第2の検証パラメータを取り出すための手順を示している。
【0065】
いくつかの実施形態では、14個の第1のソフトウェアパラメータのすべてが、ソフトウェアイメージまたはパッチまたはキーコードであり得る。
【0066】
いくつかの実施形態では、14個の第1のソフトウェアパラメータのすべてが第2の検証パラメータであり得る。
【0067】
いくつかの他の実施形態では、14個の電子デバイスの一部が第2の検証パラメータを決定することができず、14個の電子デバイスの残りが第2の検証パラメータを決定することができるので、14個の第1のソフトウェアパラメータの一部はソフトウェアイメージまたはパッチまたはキーコードであり得、14個のソフトウェアパラメータの残りは第2の検証パラメータであり得る。
【0068】
説明を簡単にするために、以下の実施形態では、14個の第1のソフトウェアパラメータのすべてがソフトウェアイメージであると仮定する。
【0069】
602:車両200が14個の電子デバイスに対応するツリーを決定する。
【0070】
いくつかの実施形態では、ツリーは14個のノードを含み得る。14個のノードは、車両200内の14個の電子デバイスと一対一に対応する。
【0071】
いくつかの実施形態では、ツリー内の14個のノード間の接続関係は、車両内の14個の電子デバイス間の接続関係と同じであり得る。記載を簡単にするために、TBox201に対応するノードはノード201と称され、CC210に対応するノードはノード210と称され、DC220に対応するノードはノード220と称される、などである。
【0072】
【0073】
図7を参照すると、ツリー700は14個のノードを含む。
図7に示されるノードの接続関係は、
図2に示される電子デバイスの接続関係と同じである。例えば、ツリー700のレベル0は、1つのノード、すなわちノード201を含む。ノード201は、ノード210に繋がっている。
図2を参照すると、ノード201に対応するTBox201は、ノード210に対応するCC210に繋がっている。
【0074】
いくつかの実施形態では、ツリー内の14個のノード間の接続関係は、車両200内の14個の電子デバイス間の接続関係と異なり得る。例えば、車両200に対応するツリーは、高さ平衡バイナリツリー(Height Balanced Binary Tree、HBBT)、完全平衡バイナリツリー(マークルツリー)などであり得る。
【0075】
図8は、車両200に対応する別のツリーを示している。
【0076】
図8は、HBBTを示している。
図8に示されるように、ツリー800の各内部ノードは、高々2つの子ノードを有する。例えば、ノード210は2つの子ノード、すなわち、ノード230およびノード240を有し、ノード221は1つの子ノード、すなわち、ノード223を有する。
【0077】
図9は、車両200に対応する別のツリーを示している。
【0078】
図9は、マークルツリーを示している。
図9に示されるように、ツリー900の各内部ノードは2つの子ノードを有する。例えば、ノード210は2つの子ノード、すなわち、ノード230およびノード240を有する。14個の電子デバイスに対応する14個のノード以外に、ツリー900はダミーノード、すなわちNode
Dをさらに含む。ダミーノードのソフトウェアパラメータは、予め設定された値、または予め設定されたノード、例えばノード244の、ソフトウェアパラメータと同じである。
【0079】
603:車両200が、14個の第1のソフトウェアパラメータに従って14個の第2の検証パラメータをそれぞれ決定する。
【0080】
電子デバイスに対応する第2の検証パラメータは、電子デバイスの第1のソフトウェアパラメータに従って決定される。記載を簡単にするために、TBox201に対応する第2の検証パラメータはHi_201と称され、CC210に対応する第2の検証パラメータはHi_210と称され、DC220に対応する第2の検証パラメータはHi_220と称される、などである。
【0081】
Hi_201は、Fst201に従って決定される。言い換えれば、TBox201に対応する第2の検証パラメータは、TBox201の第1のソフトウェアパラメータに従って決定される。同様に、Hi_210はFst210に従って決定され、Hi_220はFst220等に従って決定される、などである。
【0082】
いくつかの実施形態では、第2の検証パラメータは、以下の式に従って決定され得る。
Hi_X=H(FstX) (式1.1)
【0083】
Hi_Xは電子デバイスXの第2の検証パラメータであり、FstXは電子デバイスXの第1のソフトウェアパラメータである。H(FstX)はFstXに対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、TBox201の第1のソフトウェアパラメータに対してハッシュ計算を実行し得る。ハッシュ値は、TBox201に対応する第2の検証パラメータ、すなわちHi_201である。
【0084】
いくつかの実施形態では、第2の検証パラメータは、以下の式に従って決定され得る。
Hi_X=H(FstX,REFparX) (式1.2)
【0085】
Hi_Xは電子デバイスXの第2の検証パラメータであり、FstXは電子デバイスXの第1のソフトウェアパラメータである。REFparXは電子デバイスXに関するリファレンスパラメータである。REFparXは電子デバイスXに対応する1つまたは複数のパラメータを含み得る。例えば、REFparXは、以下、すなわち、現在時刻を示すタイムスタンプ、電子デバイスXのソフトウェアインストール時刻を示すタイムスタンプ、車両200のGVTもしくはVVTの更新または電子デバイスに対応するツリーの構築、を完了した時刻を示すタイムスタンプ、電子デバイスXのソフトウェアバージョン、電子デバイスXのMFR_IDまたはDEV_IDなど、のうちのいずれか1つまたは複数を含み得る。H(FstX,REFparX)は、FstXおよびREFparXに対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、TBox201の第1のソフトウェアパラメータ、およびTBox201に対応する1つまたは複数のパラメータに対してハッシュ計算を実行し得る。ハッシュ値は、TBox201に対応する第2の検証パラメータ、すなわちHi_201である。
【0086】
本出願の実施形態に係るハッシュ計算のアルゴリズムは、セキュア・ハッシュ・アルゴリズム(SHA)、SHA2アルゴリズム、メッセージダイジェスト5(MD5)アルゴリズムなどであり得、それは本発明の実施形態では特に限定されない。
【0087】
604:ツリー内のノードの接続関係に基づいて、車両200が、14個の第2の検証パラメータに従って少なくとも1つの第1の検証パラメータを決定し得る。
【0088】
第1の検証パラメータの数は、ツリー内のノードの数と同じであり得る。
【0089】
例えば、
図7または
図8に示されるツリーについては、車両は14個の第1の検証パラメータを決定し得る。
図9に示されるツリーについては、車両は15個の第1の検証パラメータを決定し得る。
【0090】
どのようにして第1の検証パラメータを決定するのかに関する詳細は、
図7に関連して以下に説明され得る。記載を簡単にするために、対応する電子デバイスを表すためにノードが使用される。例えば、ノード210の第1/第2の検証パラメータは、CC210に対応する第1/第2の検証パラメータを表す。
【0091】
本発明の実施形態の理解を容易にするために、本発明の実施形態で使用されるツリーに関する基本概念が以下に説明される。
【0092】
1:ルートノード
ルートノードは、ツリーの区別された最初のまたは基本のアイテムであり、親を持たない唯一のアイテムである。例えば、ノード201は、ツリー700のルートノードである。
【0093】
2:葉ノード
葉ノードは、外部ノードまたは終端ノードとも称され得る。葉ノードは、いかなる子も有しない、ツリー内のノードである。例えば、ノード221~223、231~232、および241~244は、ツリー700の葉ノードである。
【0094】
3:内部ノード
内部ノードは、非終端ノードまたは非葉ノードとも称され得る。内部ノードは、1つまたは複数の子ノードを有する、ツリーのノード、言い換えれば、葉ではない、ツリーのノードである。例えば、ノード210、220、230および240は、ツリー700の内部ノードである。
【0095】
4:親ノード
ノードへ上向きに1つのエッジを有する、ルートノード以外の任意のノードは、親ノードである。例えば、ツリー700において、ノード220はノード221、222および223の親ノードであり、ノード210はノード220、230および240の親ノードである。
【0096】
5:子ノード
それのエッジによって下向きに接続された、所与のノードの下のノードは、それの子ノードと呼ばれる。例えば、ツリー700において、ノード221、222および223はノード220の子ノードであり、ノード220、230および240はノード210の子ノードである。
【0097】
6:子孫ノード
子孫ノードは、何レベル下であっても、階層ツリーの下に接続されている任意の要素を指す。子孫は、子供、孫、ひ孫などである。例えば、ツリー700において、ノード222は、ノード220、210および201の子孫ノードであり、ノード230は、ノード210および201の子孫ノードである。
【0098】
7:先祖ノード
先祖は、何レベル上であっても、階層ツリーにおいてさらに上に接続されている任意の要素である。先祖は、親、祖父母、曾祖父母などである。例えば、ツリー700において、ノード220は、ノード221、222および223の先祖ノードである。ノード210は、ノード221、222および223の先祖ノードである。
【0099】
8:レベル
ノードのレベルは、1+そのノードとルートノードとの間の接続の数によって定義される。例えば、ルートノードのレベルは0であり、ノード210のレベルは1であり、ノード220のレベルは2である。
【0100】
ツリー700の葉ノードの第1の検証パラメータは、葉ノードの第2の検証パラメータおよび葉ノードの識別情報に従って決定される。
【0101】
葉ノードの第1の検証パラメータは、以下の式に従って決定され得る。
Hn_X=H(Hi_X,IDinfoX) (式1.3)
【0102】
Hn_Xは、電子デバイスX(葉ノードX)の第1の検証パラメータである。Hi_Xは、電子デバイスX(葉ノードX)の第2の検証パラメータであり、IDinfoXは、電子デバイスX(葉ノードX)の識別情報である。H(Hi_X,IDinfoX)は、Hi_X、IDinfoXに対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、ノード221の第2のパラメータおよびノード221の識別情報に対してハッシュ計算を実行し得る。ハッシュ値は、ノード221(すなわち、ECU221)に対応する第1の検証パラメータ、すなわちHn_221である。
【0103】
内部ノードについては、第1の検証パラメータは、内部ノードの子ノードの第1の検証パラメータ、内部ノードの第2の検証パラメータ、および内部ノードの識別情報に従って決定され得る。
【0104】
例えば、ノード210の第1の検証パラメータは、ノード210の第2の検証パラメータ、ノード220、ノード230、およびノード240の第1の検証パラメータ、ならびにノード210の識別情報に従って決定され得る。言い換えれば、Hn_210は、Hi_210、Hn_220、Hn_230、Hn_240、およびIDinfo210に従って決定され得、IDinfor210は、ノード210の識別情報である。
【0105】
別の例として、ノード201の第1の検証パラメータは、ノード201の第2の検証パラメータ、ノード210の第1の検証パラメータ、およびノード201の識別情報に従って決定され得る。
【0106】
内部ノードの第1の検証パラメータは、以下の式に従って決定され得る。
Hn_Y=H(Hi_Y,Hn_chY,IDinfoY) (式1.4)
【0107】
Hn_Yは、電子デバイスY(内部ノードY)の第1の検証パラメータである。Hi_Yは、電子デバイスY(内部ノードY)の第2の検証パラメータである。Hn_chYは、すべての、内部ノードYの子ノードの、第1の検証パラメータである。というのは、内部ノードYがノード220である場合、Hn_chYは、Hn_221、Hn_222、およびHn_223を含み得、内部ノードYがノード210である場合、Hn_chYは、Hn_220、Hn_230、およびHn_240を含み得、内部ノードYがノード201である場合、Hn_chYは単にHn_210を含み得ることになるからである。IDinfoYは、電子デバイスY(内部ノードY)の識別情報である。H(Hi_Y,Hn_chY,IDinfoY)は、Hi_X、Hn_chY、IDinfoXに対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、Hi_210、Hn_220、Hn_230、Hn_240、IDinfo210に対してハッシュ計算を実行し得る。ハッシュ値は、ノード210(CC210)に対応する第1の検証パラメータ、すなわちHn_210である。
【0108】
いくつかの実施形態では、ノードの識別情報は、レベルIDおよびノードIDを含み得る。レベルIDは、ノードのレベルを示す。ノードIDは、異なるノードを区別するために使用される。言い換えれば、異なるノードのノードIDは異なる。
【0109】
図10は、車両200に対応するツリーを示している。
【0110】
図10は、ツリー700内の各ノードの識別情報を示している。例えば、ノード201の識別情報は0:0であり、左の0はノード201のレベルIDであり、右の0はノード201のノードIDである。同様に、ノード230の識別情報は2:6であり、2はレベルIDであり、6はノードIDである。
【0111】
上述の実施形態によれば、ノードの識別情報がレベルIDおよびノードIDを含むので、ノードの識別情報の識別情報に従って、ノードのレベルおよびノードの識別が決定され得る。
【0112】
いくつかの実施形態では、ノードの識別情報は、ノードIDを単に含み得る。
【0113】
いくつかの実施形態では、ノードの識別情報は、ノードに対応する電子デバイスのDEV_IDまたはMFR_IDであり得る。
【0114】
内部ノードの第1の検証パラメータは、それの子ノードの第1の検証パラメータに従って決定される。したがって、それの子ノードのうちの1つについての第1の検証パラメータが変更された場合、内部ノードの第1の検証パラメータが再計算されることになる。内部ノード(以下、内部ノード1)の子ノードも内部ノード(以下、内部ノード2)である場合、内部ノード1の第1の検証パラメータは、それの孫ノード(すなわち、内部ノード2の子ノード)によって影響されることになる。
【0115】
ツリー700を一例にとると、ノード244のソフトウェアが更新された場合、ノード244のソフトウェアパラメータはそれに対応して更新されることになる。この条件によると、ノード244の第2の検証パラメータが、更新されたソフトウェアパラメータに従って再計算されることになり、ノード244の第1の検証パラメータは、ノード244の再計算された第2の検証パラメータに従って再計算されることになる。ノード240の第1の検証パラメータは、ノード244の第1の検証に従って決定されるので、ノード240の第1の検証パラメータは、ノード244の再計算された第1の検証パラメータに従って再計算されることになる。それに対応して、ノード210およびノード201の第1の検証パラメータが再計算されることになる。
【0116】
一般に、内部ノードの第1の検証パラメータは、それの子孫ノードのソフトウェアによって影響され得る。言い換えれば、ノード(ルートノード以外)のソフトウェアは、その先祖ノードの第1の検証パラメータに影響し得る。
【0117】
605:車両200がサーバ300から第1のリファレンス情報を取得する。
【0118】
本出願の実施形態は、どのようにしてサーバ300から第1のリファレンス情報を取得するのかを限定しない。いくつかの実施形態では、車両200は、第1のリファレンス情報を能動的に取得し得る。例えば、車両は要求をサーバ300に送信し得る。要求を受信した後、サーバ300は、第1のリファレンス情報を車両200に送信し得る。いくつかの実施形態では、サーバ300は、第1のリファレンス情報を車両200にプッシュ配信し得る。例えば、サーバ300は、リファレンス情報を車両200に定期的に送信し得る。別の例として、サーバ300は、リファレンス情報が更新されたときに、更新されたリファレンス情報を車両200に送信し得る。
【0119】
606:車両200が、第1の検証情報および第1のリファレンス情報に従って14個の電子デバイスのソフトウェアセキュリティを検証する。
【0120】
いくつかの実施形態では、第1のリファレンス情報は14個の第1のリファレンスパラメータを含み得る。第1のリファレンスパラメータは、14個の第1の検証パラメータと一対一に対応する。
【0121】
サーバ300は、車両200内の14個の電子デバイスのソフトウェアパラメータを記憶し得る。したがって、サーバ300は、ソフトウェアパラメータに従って14個の第1のリファレンスパラメータを決定し得る。第1のリファレンスパラメータを決定するための方法は、第1の検証パラメータを決定するための方法と同様である。簡潔にするために、どのようにして第1のリファレンスパラメータを決定するのかに関する詳細は、ここでは再び説明されない。
【0122】
サーバ300は、トラステッドデバイスと見なされる。この仮定の下、リファレンスパラメータを決定するために使用されるソフトウェア情報は改ざんされることができない。
【0123】
記載を簡単にするために、TBox201に対応する第1のリファレンスはH'n_201と称され、CC210に対応する第1のリファレンスはH'n_210と称される、などである。Hn_201はH'n_201に対応し、Hn_210はH'n_210に対応し、Hn_220はH'n_220に対応し、Hn_230はH'n_230に対応する、などである。
【0124】
電子デバイスの第1のリファレンスパラメータおよび電子デバイスの第1の検証パラメータは、電子デバイスに対応する電子デバイスのソフトウェアセキュリティを検証するために使用され得る。
【0125】
電子デバイスに対応する電子デバイスは、電子デバイス自体と、電子デバイスのすべての子孫ノードとを含む。
【0126】
例えば、TBox201に対応する電子デバイスのソフトウェアセキュリティを検証するために、H
n_201およびH'
n_201が使用され得る。TBox201に対応する電子デバイスは、
図2に示される14個の電子デバイスすべてを含む。
【0127】
別の例として、CC210に対応する電子デバイスのソフトウェアセキュリティを検証するために、H
n_210およびH'
n_210が使用され得る。CC210に対応する電子デバイスは、CC210、DC220、DC230、DC240、および
図2に示されるすべてのECUを含む。
【0128】
電子デバイスの第1の検証パラメータと電子デバイスの第1のリファレンスパラメータとが同じである場合、車両は、電子デバイスに対応する電子デバイスのソフトウェアセキュリティが良好であると決定し得る。言い換えれば、電子デバイスの第1の検証パラメータと電子デバイスの第1のリファレンスパラメータとが同じである場合、車両は、電子デバイスに対応する電子デバイスそれぞれについてのソフトウェアが安全であると決定し得る。
【0129】
対照的に、電子デバイスの第1の検証パラメータと電子デバイスの第1のリファレンスパラメータとが同じではない場合、車両は、電子デバイスに対応する電子デバイスのソフトウェアセキュリティが良くないと決定し得る。言い換えれば、電子デバイスの第1の検証パラメータと電子デバイスの第1のリファレンスパラメータとが同じではない場合、車両は、電子デバイスに対応する少なくとも1つの電子デバイスのソフトウェアが安全ではないと決定し得る。この条件によると、車両200は、子ノードおよび子ノードに対応する電子デバイスのソフトウェアセキュリティを決定するために、電子デバイスの子ノードの第1の検証情報および第1のリファレンス情報を使用し得る。
【0130】
どのようにして電子デバイスのソフトウェアセキュリティを検証するのかに関する詳細は、
図7、
図8、および
図9に関連して以下で説明され得る。
【0131】
どのようにしてソフトウェアセキュリティを検証するのかに関する以下の実施形態では、マルウェアがノード222(ECU222)のソフトウェアに挿入されたと仮定する。この条件によると、ノード222のソフトウェアイメージが変更される。したがって、ノード222およびそれの先祖ノードの第1の検証パラメータは、正しい第1の検証パラメータ(すなわち、ノード222のソフトウェアにマルウェアが挿入されていないときの第1の検証パラメータ)とは異なり得る。ノード222およびそれの先祖ノードの第1のリファレンスパラメータと、正しい第1の検証パラメータとは同じである。したがって、ノード222およびそれの先祖ノードの第1のリファレンスパラメータは、ノード222およびそれの先祖ノードの第1の検証パラメータと異なる。
【0132】
車両200は、ルートノードから始めて、第1の検証と第1のリファレンスとを比較し得る。
【0133】
図7に示されるツリー700を一例にとると、車両200は、ノード222のソフトウェアが異常であることを見つけるために、以下のステップを実行し得る(以下のステップは、内部ノードのソフトウェアセキュリティを検証するためのステップは無視している)。
ステップ1:ノード201の第1の検証パラメータとノード201の第1のリファレンスパラメータとを比較するステップ、およびノード201の第1の検証パラメータがノード201の第1のリファレンスパラメータと異なると決定するステップ。
ステップ2:ノード210の第1の検証パラメータとノード210の第1のリファレンスパラメータとを比較するステップ、およびノード210の第1の検証パラメータがノード210の第1のリファレンスパラメータと異なると決定するステップ。
ステップ3:ノード220の第1の検証パラメータとノード220の第1のリファレンスパラメータとを比較するステップ、ノード220の第1の検証パラメータがノード220の第1のリファレンスパラメータと異なると決定するステップ。
ステップ4:ノード221の第1の検証パラメータとノード221の第1のリファレンスパラメータとを比較するステップ、ノード221の第1の検証パラメータがノード221の第1のリファレンスパラメータと同じであると決定するステップ。
ステップ5:ノード222の第1の検証パラメータとノード222の第1のリファレンスパラメータとを比較するステップ、ノード222の第1の検証パラメータがノード222の第1のリファレンスパラメータと異なると決定するステップ。
ステップ6:ノード223の第1の検証パラメータとノード223の第1のリファレンスパラメータとを比較するステップ、ノード223の第1の検証パラメータがノード223の第1のリファレンスパラメータと同じであると決定するステップ。
ステップ7:ノード230の第1の検証パラメータとノード230の第1のリファレンスパラメータとを比較するステップ、ノード230の第1の検証パラメータがノード230の第1のリファレンスパラメータと同じであると決定するステップ、およびノード230およびそれの子孫ノードのソフトウェアセキュリティが良好であると決定するステップ。
ステップ8:ノード240の第1の検証パラメータとノード240の第1のリファレンスパラメータとを比較するステップ、ノード240の第1の検証パラメータがノード240の第1のリファレンスパラメータと同じであると決定するステップ、およびノード240およびそれの子孫ノードのソフトウェアセキュリティが良好であると決定するステップ。
【0134】
図7に示されるツリー700については、車両200は、ノード222のソフトウェアが異常であることを見つけるために、8つのステップを実行する。
【0135】
図8に示されるツリー800を一例にとると、車両200は、ノード222のソフトウェアが異常であることを見つけるために、以下のステップを実行し得る(以下のステップは、内部ノードのソフトウェアセキュリティを検証するためのステップは無視している)。
ステップ1:ノード201の第1の検証パラメータとノード201の第1のリファレンスパラメータとを比較するステップ、およびノード201の第1の検証パラメータがノード201の第1のリファレンスパラメータと異なると決定するステップ。
ステップ2:ノード210の第1の検証パラメータとノード210の第1のリファレンスパラメータとを比較するステップ、ノード210の第1の検証パラメータがノード210の第1のリファレンスパラメータと同じであると決定するステップ、およびノード210、ノード230およびそれの子孫ノード、ならびにノード240およびそれの子孫ノードの、ソフトウェアセキュリティが良好であると決定するステップ。
ステップ3:ノード220の第1の検証パラメータとノード220の第1のリファレンスパラメータとを比較するステップ、ノード220の第1の検証パラメータがノード220の第1のリファレンスパラメータと異なると決定するステップ。
ステップ4:ノード221の第1の検証パラメータとノード221の第1のリファレンスパラメータとを比較するステップ、ノード221の第1の検証パラメータがノード221の第1のリファレンスパラメータと同じであると決定するステップ、およびノード221およびノード223のソフトウェアセキュリティが良好であると決定するステップ。
ステップ5:ノード222の第1の検証パラメータとノード222の第1のリファレンスパラメータとを比較するステップ、ノード222の第1の検証パラメータがノード222の第1のリファレンスパラメータと異なると決定するステップ、およびノード222のソフトウェアが異常であると決定するステップ。
【0136】
図8に示されるツリー800については、車両200は、ノード222のソフトウェアが異常であることを見つけるために、5つのステップを実行するのみである。
【0137】
図9に示されるツリー900を一例にとると、車両200は、ノード222のソフトウェアが異常であることを見つけるために、以下のステップを実行し得る(以下のステップは、内部ノードのソフトウェアセキュリティを検証するためのステップは無視している)。
ステップ1:ノード201の第1の検証パラメータとノード201の第1のリファレンスパラメータとを比較するステップ、およびノード201の第1の検証パラメータがノード201の第1のリファレンスパラメータと異なると決定するステップ。
ステップ2:ノード210の第1の検証パラメータとノード210の第1のリファレンスパラメータとを比較するステップ、ノード210の第1の検証パラメータがノード210の第1のリファレンスパラメータと同じであると決定するステップ、およびノード210、ノード230およびそれの子孫ノード、ノード240、ノード241ならびにノード242の、ソフトウェアセキュリティが良好であると決定するステップ。
ステップ3:ノード220の第1の検証パラメータとノード220の第1のリファレンスパラメータとを比較するステップ、ノード220の第1の検証パラメータがノード220の第1のリファレンスパラメータと異なると決定するステップ。
ステップ4:ノード221の第1の検証パラメータとノード221の第1のリファレンスパラメータとを比較するステップ、ノード221の第1の検証パラメータがノード221の第1のリファレンスパラメータと同じであると決定するステップ、およびノード221、ノード223およびノード243のソフトウェアセキュリティが良好であると決定するステップ。
ステップ5:ノード222の第1の検証パラメータとノード222の第1のリファレンスパラメータとを比較するステップ、ノード222の第1の検証パラメータがノード222の第1のリファレンスパラメータと異なると決定するステップ。
ステップ6:ノード244の第1の検証パラメータとノード244の第1のリファレンスパラメータとを比較するステップ、ノード244の第1の検証パラメータがノード244の第1のリファレンスパラメータと同じであると決定するステップ、およびノード244のソフトウェアセキュリティが良好であり、ノード222のソフトウェアが異常であると決定するステップ。
【0138】
図9に示されるツリー900については、車両900は、ノード222のソフトウェアが異常であることを見つけるために、6つのステップを実行するのみである。
【0139】
したがって、車両200の電子デバイスに対応するツリーがTBBTまたはマークルツリーである場合、車両200はより少ない比較を実行し得る。この条件によると、車両200は、異常な電子デバイスをより迅速に決定し得る。
【0140】
上記実施形態によれば、車両200は、第1の検証情報および第1のリファレンス情報に従ってソフトウェアセキュリティを決定するのみである。この条件によると、内部ノードのソフトウェアが異常である場合、車両200は、すべてのそれの子孫ノードのソフトウェアセキュリティをテストしなければならない。例えば、ツリー900について、車両200は、ノード244のソフトウェアが良好であると決定した後にノード222のソフトウェアが異常であると決定する。加えて、ノード244のソフトウェアも異常である場合、車両200は、ノード222のソフトウェアセキュリティが良好であるかどうかを決定することができない。この条件によると、車両200は、実際の状態が良好であっても、ノード222のソフトウェアセキュリティが良くないと決定しなければならない。
【0141】
いくつかの実施形態では、第1の検証情報は、14個の電子デバイスの第2の検証パラメータをさらに含み得、第1のリファレンス情報は、14個の電子デバイスの第2のリファレンスパラメータをさらに含み得る。
【0142】
第2のリファレンスパラメータを決定するための方法は、第2の検証パラメータを決定するための方法と同様である。簡潔にするために、どのようにして第2のリファレンスパラメータを決定するのかに関する詳細は、ここでは再び説明されない。この条件によると、車両200は、内部ノードのソフトウェアセキュリティを決定するために、第2の検証パラメータおよび第2のリファレンスパラメータを使用し得る。内部ノードの第2の検証パラメータが内部ノードの第2のリファレンスパラメータと同じである場合、内部ノードのソフトウェアセキュリティは良好である。内部ノードの第2の検証パラメータが内部ノードの第2のリファレンスパラメータと異なる場合、車両200は、内部ノードのソフトウェアセキュリティが良くないと決定し得る。
【0143】
例えば、ツリー900について、車両200は、ノード222の第2の検証パラメータおよびノード222の第2のリファレンスパラメータに従って、ノード222のソフトウェアセキュリティを決定し得る。ノード222の第2の検証パラメータがノード222の第2のリファレンスパラメータと同じである場合、車両200は、ノード222のソフトウェアセキュリティが良好であると決定し得る。ノード222の第2の検証パラメータがノード222の第2のリファレンスパラメータと異なる場合、車両200は、ノード222のソフトウェアセキュリティが良くないと決定し得る。
【0144】
図11は、車両内の電子デバイスのソフトウェアセキュリティを検証するための方法の別の実施形態のフローチャートである。
【0145】
いくつかの実施形態では、
図11に示される方法は、車両または車両のコンポーネント(例えば、チップまたは回路)によって実行され得る。
【0146】
いくつかの実施形態では、
図11に示される方法は、車両に対応するサーバまたはサーバのコンポーネント(例えば、チップまたは回路)によって実行され得る。
【0147】
いくつかの実施形態では、
図11に示される異なるステップは、車両の異なるコンポーネントまたは車両に対応するサーバによって実施され得る。例えば、車両200の電子デバイスのそれぞれは、それ自体の第2の検証パラメータを決定し得、第2の検証パラメータを車両200のチップに送信し得、チップは、第1の検証パラメータを決定して比較ステップを実行するために使用される。
【0148】
図11に示される方法は、
図2および
図3に関連して以下に説明され得る。加えて、
図11に関する以下の説明では、方法は車両200によって実行されると仮定する。
【0149】
1101:車両200が14個の第1のソフトウェアパラメータを取得する。
【0150】
ステップ1101の詳細は、
図6に示されるステップ601を参照し得る。
【0151】
1102:車両200が14個の電子デバイスに対応するツリーを決定する。
【0152】
ツリーはマークルツリーである。14個の電子デバイスは、マークルツリーの14個の葉ノードに対応する。
【0153】
図12は、車両200に対応するマークルツリーを示している。
【0154】
図12に示されるように、ツリー1200の各内部ノードは2つの子ノードを有する。
図12を参照すると、00はノード00を指し、11はノード11を指し、201はノード201を指し、210はノード210を指す、などである。加えて、
図12に示されるDはダミーノードを指す。ノード201は、TBox201に対応するノードであり、ノード210は、CC210に対応するノードである、などである。
【0155】
1103:車両200が、14個の第1のソフトウェアパラメータに従って14個の第2の検証パラメータをそれぞれ決定する。
【0156】
ステップ1103の詳細は、ステップ603と同様である。簡潔にするために、どのようにして第2のリファレンスパラメータを決定するのかに関する詳細は、ここでは再び説明されない。
【0157】
1104:車両200が内部ノードの第1の検証パラメータを決定する。
【0158】
いくつかの実施形態では、内部ノードの第1の検証パラメータは、それの子ノードの検証パラメータに従って決定され得る。
【0159】
いくつかの実施形態では、内部ノードの子ノードが葉ノードである場合、内部ノードの第1の検証パラメータは、それの子ノードの第2の検証パラメータに従って決定され得る。内部ノードの第1の検証パラメータは、以下の式に従って決定され得る。
Hn_Y=H(Hi_L,Hi_R) (式2.1)
【0160】
Hn_Yは、電子デバイスY(内部ノードY)の第1の検証パラメータである。Hi_Lは、電子デバイスY(内部ノードY)の左の子ノードの第2の検証パラメータである。Hi_Rは、電子デバイスY(内部ノードY)の右の子ノードの第2の検証パラメータである。H(Hi_L,Hi_R)は、Hi_L、Hi_Rに対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、Hi_201およびHi_210に対してハッシュ計算を実行し得る。ハッシュ値は、ノード31の第1の検証パラメータ、すなわちHn_31である。
【0161】
いくつかの実施形態では、内部ノードの子ノードが葉ノードである場合、内部ノードの第1の検証パラメータは、それの子ノードの第1の検証パラメータに従って決定され得る。内部ノードの第1の検証パラメータは、以下の式に従って決定され得る。
Hn_Y=H(Hn_L,Hn_R) (式2.2)
【0162】
Hn_Yは、電子デバイスY(内部ノードY)の第1の検証パラメータである。Hn_Lは、電子デバイスY(内部ノードY)の左の子ノードの第1の検証パラメータである。Hn_Rは、電子デバイスY(内部ノードY)の右の子ノードの第1の検証パラメータである。H(Hn_L,Hn_R)は、Hn_L、Hn_Rに対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、Hn_201およびHn_210に対してハッシュ計算を実行し得る。ハッシュ値は、ノード31の第1の検証パラメータ、すなわちHn_31である。
【0163】
葉ノードの第1の検証パラメータを決定するための方法は、
図6に示される実施形態を参照し得る。
【0164】
内部ノードの子ノードが非葉ノードである場合、内部ノードの第1の検証パラメータは、それの子ノードの第1の検証パラメータに従って決定され得る。言い換えれば、式2.2は、任意の内部ノードの第1の検証パラメータを計算するために使用され得る。
【0165】
いくつかの実施形態では、内部ノードの識別情報は、内部ノードの第1の検証を決定するために使用され得る。内部ノードの第1の検証パラメータは、以下の式に従って決定され得る。
Hn_Y=H(Hn_L,Hn_R,IDinfoY) (式2.3)
【0166】
Hn_Yは、電子デバイスY(内部ノードY)の第1の検証パラメータである。Hn_Lは、電子デバイスY(内部ノードY)の左の子ノードの第1の検証パラメータである。Hn_Rは、電子デバイスY(内部ノードY)の右の子ノードの第1の検証パラメータである。IDinfoYは、ノードYの識別情報である。H(Hn_L,Hn_R,IDinfoY)は、Hn_L、Hn_R、およびノードYの識別情報に対するハッシュ計算である。例えば、車両200は、ハッシュ値を取得するために、Hn_201、Hn_210、およびノード31の識別情報に対してハッシュ計算を実行し得る。ハッシュ値は、ノード31の第1の検証パラメータ、すなわちHn_31である。
【0167】
いくつかの実施形態では、式2.3のHn_LはHi_Rによって置き換えられ得、式2.3のHn_RはHi_Rによって置き換えられ得る。
【0168】
ノードの識別情報の定義は、
図6に示される実施形態で開示されるものと同じであり、ここでは再び説明されない。
【0169】
1105:車両200がサーバ300から第1のリファレンス情報を取得する。
【0170】
1106:車両200が、第1の検証情報および第1のリファレンス情報に従って14個の電子デバイスのソフトウェアセキュリティを検証する。
【0171】
ステップ1105および1106の詳細は、上述の実施形態におけるステップ605および606を参照し得、ここでは再び説明されない。
【0172】
車両内の電子デバイスのソフトウェアは更新され得る。電子デバイスのうちの1つまたは複数についてのソフトウェアが更新された場合、これらの電子デバイスおよびこれらの電子デバイスに対応する電子デバイスの検証パラメータが再計算され得る。車両200を一例にとると、14個の電子デバイスのうちの2個についてのソフトウェアが更新されたと仮定する。この条件によると、2つの電子デバイスの第1の検証パラメータおよび第2の検証パラメータが再計算されるべきである。これに対応して、2つの電子デバイスの第1のリファレンスパラメータおよび第2のリファレンスパラメータも再計算され得る。第1/第2の検証パラメータ(第1/第2のリファレンスパラメータ)を再計算するための方法は、上述の実施形態で開示される第1/第2の検証パラメータ(第1/第2のリファレンスパラメータ)を計算するための方法と同じであり、ここでは再び説明されない。
【0173】
加えて、親ノードの第1の検証パラメータがそれの子ノードの第1の検証パラメータに従って決定されるので、2つの電子デバイスの先祖ノードの第1の検証パラメータが再計算されるべきである。これに対応して、2つの電子デバイスの先祖ノードの第1のリファレンスパラメータが再計算されるべきである。
【0174】
ツリー800を一例にとると、ノード222およびノード242(すなわち、ECU222およびECU242)に対応する電子デバイスが2つの電子デバイスであると仮定する。記載を簡単にするために、更新ソフトウェアに対応するソフトウェアパラメータは第2のソフトウェアパラメータと称される。第1のソフトウェアパラメータと同様に、電子デバイスの第2のソフトウェアパラメータは、電子デバイスの更新されたソフトウェアイメージ、電子デバイスのソフトウェアを更新するためのパッチ、または電子デバイスの更新されたソフトウェアのキーコードであり得る。
【0175】
記載を簡単にするために、第2のソフトウェアパラメータに従って決定された第2の検証パラメータは、更新された第2の検証パラメータと称される。これに対応して、更新された第2の検証パラメータに従って決定された第1の検証パラメータは、更新された第1の検証パラメータと称され、更新された第1の検証パラメータに従って決定された第1の検証パラメータも、更新された第1の検証パラメータと称される。
【0176】
車両200は、ノード222に対応する電子デバイスの第2のソフトウェアパラメータに従って、ノード222の更新された第2の検証パラメータを決定し得る。次いで、車両200は、ノード222の更新された第2の検証パラメータおよびノード222の識別情報に従って、ノード222の更新された第1の検証パラメータを決定する。さらに、車両200は、ノード222の更新された第1の検証パラメータ、ノード221の第1の検証パラメータ、ノード220の第2の検証パラメータ、およびノード220の識別情報に従って、ノード220の更新された第1の検証パラメータを決定する。
【0177】
同様に、車両200は、ノード242に対応する電子デバイスの第2のソフトウェアパラメータに従って、ノード242の更新された第2の検証パラメータを決定し得る。次いで、車両200は、ノード242の更新された第2の検証パラメータおよびノード242の識別情報に従って、ノード242の更新された第1の検証パラメータを決定する。車両200は、ノード242の更新された第1の検証パラメータ、ノード241の第1の検証パラメータ、ノード240の第2の検証パラメータ、およびノード240の識別情報に従って、ノード240の更新された第1の検証パラメータを決定する。車両200は、ノード240の更新された第1の検証パラメータ、ノード230の第1の検証パラメータ、ノード210の第2の検証パラメータ、およびノード210の識別情報に従って、ノード210の更新された第1の検証パラメータを決定する。
【0178】
最後に、車両200は、ノード210の更新された第1の検証パラメータ、ノード220の更新された第1の検証パラメータ、ノード201の第2の検証パラメータ、およびノード201の識別情報に従って、ノード201の更新された第1の検証パラメータを決定する。
【0179】
記載を簡単にするために、ソフトウェアが更新された電子デバイスは第1の電子デバイスと称され得、ソフトウェアが更新されていない電子デバイスは第2の電子デバイスと称され得る。これに対応して、第1の電子デバイスに対応するノードは第1のノードと称され得、第2の電子デバイスに対応するノードは第2のノードと称され得る。したがって、上述の仮定によれば、車両200は、2つの第1の電子デバイス(ECU222およびECU242)と、12個の第2の電子デバイスとを含む。これに対応して、ツリー800は、2つの第1のノードと12個の第2のノードとを含む。2つの第1のノードの先祖ノードの第1の検証パラメータが再計算される。第1/第2の検証パラメータが再計算されたノードは更新されたノードと称され得、第1の検証パラメータおよび第2の検証パラメータが再計算されなかったノードは元のノードと称され得る。
【0180】
図13は、ソフトウェア更新後の車両200に対応するツリーを示している。
【0181】
図13に示されるツリー800'を参照すると、ツリー800'は6つの更新されたノードを含む。
【0182】
車両200は、第2の検証情報を決定し得る。
【0183】
いくつかの実施形態では、第2の検証情報は、更新指示、更新された第2の検証パラメータ、および更新された第1の検証パラメータを含み得る。更新指示は、第2の電子デバイス(または元のノード)を示すために使用される。
【0184】
上述の仮定によれば、更新指示は、ノード230およびそれの子ノード、ノード241およびそれの子ノード、ノード221およびそれの子ノードを示すために使用される。第2の検証情報は、2つの第2の検証パラメータ(ノード242およびノード222の更新された第2の検証パラメータ)と、6つの第1の検証パラメータ(ノード242、ノード240、ノード210、ノード222、ノード220、およびノード201の更新された第1の検証パラメータ)とを含む。
【0185】
いくつかの実施形態では、ノードおよびそれの子孫ノードのすべてが元のノードである場合、更新指示は、ノードの識別情報またはノードに対応する電子デバイスの識別情報を含み得る。例えば、更新指示は、ノード221、ノード241、およびノード230の識別情報を含み得る。いくつかの実施形態では、更新指示は、元のノードのそれぞれについての識別情報または第2の電子デバイスのそれぞれについての識別情報を含み得る。
【0186】
いくつかの実施形態では、第2の検証情報は、車両200に対応するツリーの各ノードの第1の検証パラメータおよび第2の検証パラメータを含み得る。ツリー800を一例にとると、第2の検証情報は、14個の第1の検証パラメータおよび14個の第2の検証パラメータを含む。14個の第1の検証パラメータは、更新されたノードの第1の検証パラメータおよび元のノードの第1の検証パラメータを含む。同様に、14個の第2の検証パラメータは、更新されたノードの第2の検証パラメータおよび元のノードの第2の検証パラメータを含む。
【0187】
いくつかの実施形態では、第1の検証情報はタイムスタンプをさらに含み得る。タイムスタンプは、第1の検証情報の完成時刻を示すために使用される。車両200は、第1の検証パラメータおよび第2の検証パラメータを決定した後に時刻を控え得る。この時刻が第1の検証情報の完成時刻である。
【0188】
同様に、第2の検証情報は、第2の検証情報の完成時刻を示すために使用されるタイムスタンプをさらに含み得る。
【0189】
上述の実施形態は、本出願の方法が車両200または車両200のコンポーネントによって実行されるという仮定に基づいている。上述されるように、本出願の方法は、サーバまたはサーバのコンポーネントによっても実行され得る。本出願の方法がサーバまたはサーバのコンポーネントによって実行される場合、車両は、電子デバイスのソフトウェアパラメータまたは電子デバイスの第2の検証パラメータをサーバに送信し得る。簡潔にするために、ソフトウェアパラメータまたは第2の検証パラメータを搬送するメッセージは、検証メッセージと称され得る。
【0190】
いくつかの実施形態では、検証メッセージは、秘密鍵/公開鍵のペアを使用して保護され得る。例えば、車両200は、検証メッセージを暗号化するために公開鍵を使用し得、暗号化された検証メッセージをサーバ300に送信する。サーバ300は、第2の検証パラメータのソフトウェアパラメータを取得するために、公開鍵に対応する秘密鍵を使用して、受信された検証メッセージを復号し得る。
【0191】
上述の実施形態で示されるVVTおよびGVTは、車両の、電子デバイスの実際の内部ネットワークを示す。例えば、
図4に示されるVVTおよび
図5に示されるGVTは、電子デバイスの実際の接続関係(すなわち、
図2に示される接続関係)を示す。いくつかの実施形態では、VVTおよびGVTは、HBBTまたはマークルツリーに変換され得る。
【0192】
任意選択で、いくつかの実施形態では、サーバ300は、車両200のVVTおよび車両200に対応する車種のGVTを管理するためにブロックチェーンを使用し得る。上述のように、車両200内の1つまたは複数の電子デバイスのソフトウェアが更新された場合、VVTおよびGVTはそれに対応して更新され得る。記載を簡単にするために、VVT/GVTおよび更新されたVVT/GVTを記載するためにバージョン番号が使用される。例えば、VVTv2は更新されたVVTv1であり、VVTv3は更新されたVVTv2である、などである。同様に、GVTv2は更新されたGVTv1であり、GVTv3は更新されたGVTv2である、などである。VVTを管理するための方法は、GVTを管理するための方法と同じである。
【0193】
サーバ300は、VVTバージョンごとにブロックを記憶し得る。例えば、車両200は、VVTv1に対応するブロック1、VVTv2に対応するブロック2、VVTv3に対応するブロック3などを記憶し得る。
【0194】
VVTに対応するブロックは、以下の情報、すなわち、対応するVVTのVVT情報のハッシュ値、タイムスタンプ、および前のブロックのハッシュ値を含み得る。タイムスタンプは、ブロックを記憶した時刻を示すために使用される。最初のブロックについては、前のブロックのハッシュ値は予め設定された値とし得る。加えて、ブロックは、対応するVVTの構造情報をさらに含み得、構造情報は、VVTのノードの接続関係を示すために使用される。
【0195】
例えば、VVTv1は最初のVVTである。
図8に示されるツリー800はVVTv1である。ブロック1は、ツリー800の構造、VVTv1のVVT情報のハッシュ値、ブロック1を記憶した時刻を示すタイムスタンプ、および前のブロックのハッシュ値(予め設定された値)を含み得る。
【0196】
いくつかの実施形態では、VVTv1のVVT情報は、VVTv1に従って決定され得る。サーバ300は、VVTv1に対応するソフトウェア統計値情報(以下、M
1)を決定し得る。M={連結ノードファイル||Tv}。VVTv1に対応する電子デバイスのソフトウェア情報が、
図4に示されるソフトウェア情報であると仮定する。したがって、M
1={[MFR_AA,0x01:V4]||[MFR_BB,0x02:V3]||[MFR_CC,0x03:V6]||[MFR_DD,0x001:V2]||[MFR_EE,0x002:V2]||[MFR_FF,0x003:V4]||[MFR_GG,0x04:V3]||[MFR_HH,0x004:V3]||[MFR_II,0x005:V3]||[MFR_JJ,0x05:V5]||[MFR_KK,0x005:V5]||[MFR_LL,0x007:V2]||[MFR_MM,0x008:V6]||[MFR_N,0x009:V4]||Tv}であり、
図5に示されるツリーV2に従って決定されるVVT情報Mは{[MFR_BB,0x02:V3]||[MFR_CC,0x03:V6]||[MFR_EE,0x002:V2]||[MFR_JJ,0x05:V5]||[MFR_MM,0x008:V6]||Tv}であり、Tvはタイムスタンプであり、タイムスタンプはVVTv1を記憶した時刻を示すために使用される。言い換えれば、タイムスタンプは、ソフトウェア統計値情報の一部である。いくつかの他の実施形態では、ソフトウェア統計値情報はタイムスタンプを含まないものとし得る。
【0197】
いくつかの実施形態では、ソフトウェア統計値情報はVVT情報として使用され得る。いくつかの他の実施形態では、VVT情報は、ソフトウェア統計値情報およびサーバ300の秘密鍵に従って決定され得る。詳細には、VVT情報は、以下の式に従って決定され得る。
S=E(M,Kpriv) (式3.1)
【0198】
SはVVT情報であり、Mはソフトウェア統計値情報であり、Kprivはサーバの秘密鍵である。
【0199】
いくつかの実施形態では、最初のVVTに対応するブロックの構造情報は、最初のVVTのノードの完全な接続関係を含み得る。他のVVTに対応するブロックの構造情報は、修正されたツリー構造および未修正の指示情報を含み得、未修正の指示情報は、ツリーの未修正の部分を示すために使用される。例えば、VVTv1は最初のVVTである。したがって、ブロック1の構造情報は
図8に示されるツリーを含み得、ブロック2の構造情報は
図13に示されるツリーおよび対応する未修正の指示情報を含み得る。
【0200】
図14は、VVTのブロックチェーンの一部を示している。
図14は、VVTのブロックチェーン内の3つのブロックを示している。
【0201】
図14を参照すると、ブロック1は、VVT、H(M
1)、H(Block
0)、およびTv
0の全体を含む。H(M
1)は、M
1のハッシュ値である。H(Block
0)は予め設定された値であり、Tv
1は、ブロック1を記憶した時刻を示すタイムスタンプである。ブロック2は、一部分のVVTおよび未修正の指示情報(ブロック2内で示される矢印によって示される)、H(M
2)、H(Block
1)およびTv
2を含む。H(M
2)は、M
2のハッシュ値である。H(Block
1)はブロック1のハッシュ値、Tv
2はブロック2を記憶した時刻を示すタイムスタンプである。ブロック3は、一部分のVVTおよび未修正の指示情報(ブロック3内で示される矢印によって示される)、H(M
3)、H(Block
2)およびTv
3を含む。H(M
3)は、M
3のハッシュ値である。H(Block
2)はブロック2のハッシュ値、Tv
3はブロック3を記憶した時刻を示すタイムスタンプである。
【0202】
図15は、車両内の電子デバイスのソフトウェアバージョンを検証するための方法の実施形態のフローチャートである。
【0203】
1501:コンピューティングデバイスがN個の第1の検証パラメータを取得し得、N個の第1の検証パラメータは、車両内のN個の電子デバイスと一対一に対応し、N個の第1の検証パラメータのi番目の第1の検証パラメータは、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nは1よりも大きい正の整数である。
【0204】
コンピューティングデバイスは、車両、車両のコンポーネント、サーバ、またはサーバのコンポーネントであり得る。
【0205】
1502:コンピューティングデバイスが、N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定し得、第1のノードはN個の電子デバイスの親ノードである。
【0206】
1503:コンピューティングデバイスが、トラステッドデバイスから第1のノードに対応する第1のリファレンスパラメータを取得し得る。
【0207】
1504:コンピューティングデバイスが、第1のノードに対応する第1の検証パラメータおよび第1のノードに対応する第1のリファレンスパラメータに従って、N個の電子デバイスのソフトウェアセキュリティを検証し得る。
任意選択で、いくつかの実施形態では、方法は、コンピューティングデバイスが、N個の第2の検証パラメータを取得し得、N個の第2の検証パラメータがN個の電子デバイスと一対一に対応し、N個の第2の検証パラメータのi番目の第2の検証パラメータが、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定される、ことをさらに含み得、コンピューティングデバイスがN個の第1の検証パラメータを取得することは、コンピューティングデバイスがN個の第2の検証パラメータのi番目の第2の検証パラメータおよびN個の電子デバイスのi番目の電子デバイスの識別情報に従って、N個の第1の検証パラメータのi番目の第1の検証パラメータを決定し得、i=1,…,Nである、ことを含む。
【0208】
任意選択で、いくつかの実施形態では、方法は、コンピューティングデバイスがトラステッドデバイスからN個の第2のリファレンスパラメータを取得し得、N個の第2のリファレンスパラメータがN個の電子デバイスと一対一に対応する、ことをさらに含み得る。コンピューティングデバイスは、N個の第2の検証パラメータのi番目の第2の検証パラメータおよびN個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、N個の電子デバイスのi番目の電子デバイスのソフトウェアセキュリティを検証し得る。
【0209】
任意選択で、いくつかの実施形態では、方法は、コンピューティングデバイスがM個の電子デバイスに対応するツリーを決定し得、ツリーがM個のノードを含み、M個のノードが車両内のM個の電子デバイスと一対一に対応し、M個の電子デバイスがN個の電子デバイスを含み、MがNよりも大きい正の整数である、こと、ツリー内のM個のノードの接続関係に基づいて、第1のノードがN個の電子デバイスの親ノードであると決定し得る、ことをさらに含み得る。
【0210】
任意選択で、いくつかの実施形態では、ツリーのM個のノードの接続関係と、車両内のM個の電子デバイスの接続関係とが同じである。
【0211】
任意選択で、いくつかの実施形態では、ツリーが、車両に対応する高さ平衡バイナリツリーである。
【0212】
任意選択で、いくつかの実施形態では、ツリーが完全平衡バイナリツリーであり、M個のノードがツリーの葉ノードであり、ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である。
【0213】
任意選択で、いくつかの実施形態では、コンピューティングデバイスは、第1のブロックを決定および記憶し得、第1のブロックはツリーに対応し、第1のブロックは第1の構造情報を含み、第1の構造情報はツリーのノードの接続関係を示すために使用される。コンピューティングデバイスは第2のブロックを決定および記憶し得、第2のブロックが第2の構造情報を含み、第2の構造情報が、未修正の指示情報および修正された指示情報を含み、未修正の指示情報が、未更新のノードを示すために使用され、修正された指示情報が、更新されたノードの接続関係を示すために使用され、未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている。
【0214】
任意選択で、いくつかの実施形態では、第1のブロックは、第1のブロックを記憶した時刻を示すタイムスタンプと、M個の電子デバイスに対応するソフトウェア情報とをさらに含む。第2のブロックは、第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む。
【0215】
図16は、本出願の一実施形態に係るコンピューティングデバイス1600の概略ブロック図である。
図16に示されるように、コンピューティングデバイス1600は、取得モジュール1601と、決定モジュール1602とを含む。
【0216】
取得モジュール1601は、N個の第1の検証パラメータを取得し、N個の第1の検証パラメータは、車両内のN個の電子デバイスと一対一に対応し、N個の第1の検証パラメータのi番目の第1の検証パラメータは、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nは1よりも大きい正の整数である、ように構成される。
【0217】
決定モジュール1602は、N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定し、第1のノードはN個の電子デバイスの親ノードである、ように構成される。
【0218】
取得モジュール1601は、トラステッドデバイスから第1のノードに対応する第1のリファレンスパラメータを取得するようにさらに構成される。
【0219】
決定モジュール1602は、第1のノードに対応する第1の検証パラメータおよび第1のノードに対応する第1のリファレンスパラメータに従って、N個の電子デバイスのソフトウェアセキュリティを検証するようにさらに構成される。
【0220】
任意選択で、コンピューティングデバイス1600は、車両、車両のコンポーネント、サーバ、またはサーバのコンポーネントであり得る。
【0221】
任意選択で、いくつかの実施形態では、取得モジュール1601は、N個の第2の検証パラメータを取得し、N個の第2の検証パラメータがN個の電子デバイスと一対一に対応し、N個の第2の検証パラメータのi番目の第2の検証パラメータが、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定される、ようにさらに構成され、取得モジュール1601は、N個の第2の検証パラメータのi番目の第2の検証パラメータおよびN個の電子デバイスのi番目の電子デバイスの識別情報に従って、N個の第1の検証パラメータのi番目の第1の検証パラメータを決定し、i=1,…,Nである、ように特に構成される。
【0222】
任意選択で、いくつかの実施形態では、取得モジュール1601は、トラステッドデバイスからN個の第2のリファレンスパラメータを取得し、前記N個の第2のリファレンスパラメータがN個の電子デバイスと一対一に対応する、ようにさらに構成され、決定モジュール1602は、N個の第2の検証パラメータのi番目の第2の検証パラメータおよびN個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、N個の電子デバイスのi番目の電子デバイスのソフトウェアセキュリティを検証するようにさらに構成される。
【0223】
任意選択で、いくつかの実施形態では、決定モジュール1602は、M個の電子デバイスに対応するツリーを決定し、ツリーがM個のノードを含み、M個のノードが車両内のM個の電子デバイスと一対一に対応し、M個の電子デバイスがN個の電子デバイスを含み、MがNよりも大きい正の整数である、ようにさらに構成され、ツリー内のM個のノードの接続関係に基づいて、第1のノードがN個の電子デバイスの親ノードであると決定するようにさらに構成される。
【0224】
任意選択で、いくつかの実施形態では、ツリーのM個のノードの接続関係と、車両内のM個の電子デバイスの接続関係とが同じである。
【0225】
任意選択で、いくつかの実施形態では、ツリーが、車両に対応する高さ平衡バイナリツリーである。
【0226】
任意選択で、いくつかの実施形態では、ツリーが完全平衡バイナリツリーであり、M個のノードがツリーの葉ノードであり、ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である。
【0227】
任意選択で、いくつかの実施形態では、決定モジュール1602は、第1のブロックを決定し、第1のブロックがツリーに対応し、第1のブロックが第1の構造情報を含み、第1の構造情報がツリーのノードの接続関係を示すために使用される、ようにさらに構成され、第2のブロックを決定し、第2のブロックが第2の構造情報を含み、第2の構造情報が、未修正の指示情報および修正された指示情報を含み、未修正の指示情報が、未更新のノードを示すために使用され、修正された指示情報が、更新されたノードの接続関係を示すために使用され、未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている、ようにさらに構成される。
【0228】
任意選択で、いくつかの実施形態では、第1のブロックが、第1のブロックを記憶した時刻を示すタイムスタンプと、M個の電子デバイスに対応するソフトウェア情報とをさらに含み、第2のブロックが、第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む。
【0229】
本出願のこの実施形態におけるコンピューティングデバイス1600は、前述の実施形態におけるサーバまたは車両に対応し得、サーバまたは車両内のモジュールの上記および他の管理動作および/または機能は、前述の方法の、対応するステップを実施するために別々に使用されることを理解されたい。簡潔にするため、詳細はここでは再び説明されない。
【0230】
図17に示されるように、コンピューティングデバイス1700は、トランシーバ1701と、プロセッサ1702と、メモリ1703とを含み得る。メモリ1703は、プロセッサ1702によって実行されるコード、命令などを記憶するように構成され得る。
【0231】
プロセッサ1702は集積回路チップであり得、信号処理能力を有することを理解されたい。実施プロセスでは、前述の方法の実施形態のステップは、プロセッサ内のハードウェア集積論理回路を使用して、またはソフトウェアの形態での命令を使用して完了され得る。プロセッサは、汎用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールド・プログラマブル・ゲート・アレイ(Field Programmable Gate Array、FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートのゲートもしくはトランジスタ論理デバイス、またはディスクリートのハードウェアコンポーネントであり得る。プロセッサは、本発明の実施形態に開示される方法、ステップ、および論理ブロック図を実施または実行し得る。汎用プロセッサはマイクロプロセッサであり得るか、またはプロセッサは任意の従来のプロセッサなどであり得る。本発明の実施形態を参照しつつ開示される方法のステップは、ハードウェア復号プロセッサによって直接実行および完了され得るか、または復号プロセッサ内のハードウェアとソフトウェアモジュールとの組合せを使用して実行および完了され得る。ソフトウェアモジュールは、ランダム・アクセス・メモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなど、当技術の成熟した記憶媒体に配置され得る。記憶媒体はメモリ内に配置され、プロセッサはメモリ内の情報を読み出し、プロセッサ内のハードウェアと組み合わせて前述の方法のステップを完了する。
【0232】
本発明の実施形態におけるメモリ1703は、揮発性メモリまたは不揮発性メモリであり得るか、または揮発性メモリおよび不揮発性メモリの両方を含み得ることが理解されよう。不揮発性メモリは、読み出し専用メモリ(Read-Only Memory、ROM)、プログラマブル読み出し専用メモリ(Programmable ROM、PROM)、消去可能プログラマブル読み出し専用メモリ(Erasable PROM、EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(Electrically EPROM、EEPROM)、またはフラッシュメモリであり得る。揮発性メモリはランダム・アクセス・メモリ(Random Access Memory、RAM)であり得、外部キャッシュとして使用される。限定よりもむしろ例示として、多くの形態のRAMが使用され得、例えば、スタティック・ランダム・アクセス・メモリ(Static RAM、SRAM)、ダイナミック・ランダム・アクセス・メモリ(Dynamic RAM、DRAM)、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(Synchronous DRAM、SDRAM)、ダブル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・メモリ(Double Data Rate SDRAM、DDR SDRAM)、拡張シンクロナス・ダイナミック・ランダム・アクセス・メモリ(Enhanced SDRAM、ESDRAM)、シンクロナス・リンク・ダイナミック・ランダム・アクセス・メモリ(Synchronous link DRAM、SLDRAM)、および、ダイレクト・ラムバス・ランダム・アクセス・メモリ(Direct Rambus RAM、DR RAM)である。
【0233】
本明細書に記載のシステムおよび方法におけるメモリは、これらのメモリ、および任意の他の適切なタイプのメモリを含むがこれらに限定されないことに留意されたい。
【0234】
本出願の一実施形態はシステムチップをさらに提供し、システムチップは、入力/出力インターフェースと、少なくとも1つのプロセッサと、少なくとも1つのメモリと、バスとを含む。少なくとも1つのメモリは、命令を記憶するように構成され、少なくとも1つのプロセッサは、前述の実施形態の方法における動作を実行するために、少なくとも1つのメモリの命令を呼び出すように構成される。
【0235】
本出願の一実施形態は、コンピュータ記憶媒体をさらに提供し、コンピュータ記憶媒体は、前述の方法のいずれかを実行するためのプログラム命令を記憶し得る。
【0236】
任意選択で、記憶媒体は、具体的にはメモリ1703であり得る。
【0237】
当業者は、本明細書に開示の実施形態に説明される例と組み合わせて、ユニットおよびアルゴリズムステップが、電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアとの組合せによって実施されることができることを認識し得る。機能がハードウェアによって実行されるのかソフトウェアによって実行されるのかは、技術的解決策の特定の用途および設計上の制約に依存する。当業者は、説明された機能を特定の用途ごとに実施するために異なる方法を使用し得るが、実施態様が本出願の範囲を超えると見なされてはならない。
【0238】
簡便かつ簡潔な記載のために、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスを参照することが、当業者によって明確に理解され得る。ここでは詳細は再び説明されない。
【0239】
本出願において提供されるいくつかの実施形態では、開示されるシステム、装置、および方法は、他のやり方で実施されてもよいことを理解されたい。例えば、記載された装置の実施形態は一例にすぎない。例えば、ユニット分割は、論理的な機能分割にすぎず、実際の実装態様では他の分割であってもよい。例えば、複数のユニットまたはコンポーネントが組み合わされるか、または別のシステムに統合されてもよく、またはいくつかの特徴は無視されるか、または実行されなくてもよい。加えて、表示または考察された相互結合または直接結合または通信接続は、いくつかのインターフェースを介して実施されてもよい。装置またはユニット間の間接結合または通信接続は、電子的な形態、機械的な形態、または他の形態で実装されてもよい。
【0240】
別々の部分として説明されているユニットは、物理的に別々であってもなくてもよく、ユニットとして表示されている部分は、物理的なユニットであってもなくてもよく、1箇所に配置されてもよく、または複数のネットワークユニット上に分散されてもよい。実施形態の解決策の目的を達成するために、実際の要件に基づいてユニットの一部または全部が選択されてもよい。
【0241】
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、またはユニットのそれぞれは、物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合される。
【0242】
機能が、ソフトウェア機能ユニットの形態で実施され、独立した製品として販売または使用されるとき、機能は、コンピュータ可読記憶媒体に記憶されてもよい。そうした理解に基づき、本出願の技術的解決策は本質的に、または従来技術に寄与する部分は、または技術的解決策の一部は、ソフトウェア製品の形態で実施されてもよい。コンピュータソフトウェア製品は、記憶媒体に記憶され、本出願の実施形態に説明される方法のステップの全部または一部を実行するように、(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)コンピュータデバイスに命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブル・ハード・ディスク、読み出し専用メモリ(Read-Only Memory、ROM)、ランダム・アクセス・メモリ(Random Access Memory、RAM)、磁気ディスク、または光ディスクなどの、プログラムコードを記憶することができる任意の媒体を含む。
【0243】
前述の説明は本出願の特定の実施態様にすぎず、本出願の保護範囲を限定することは意図されていない。本出願で開示される技術的範囲内で当業者によって容易に考え出されるいかなる変形または置換も、本出願の保護範囲内に入るものとする。したがって、本出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【符号の説明】
【0244】
100 電子デバイス
101 トランシーバ
102 プロセッサ
103 メモリ
200 車両
201 テレマティクスボックス(TBox)
210 セントラルコントローラ(CC)
220 ドメインコントローラ(DC)
221,222,223 エレクトロニック・コントロール・ユニット(ECU)
230 DC
231,232 ECU
240 DC
241,242,243,244 ECU
300 サーバ
1600 コンピューティングデバイス
1601 取得モジュール
1602 決定モジュール
1700 コンピューティングデバイス
1701 トランシーバ
1702 プロセッサ
1703 メモリ
【手続補正書】
【提出日】2023-05-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
車両内
のデバイスのソフトウェア
セキュリティを検証するための方法であって、前記方法が、
N個の第1の検証パラメータを取得するステップであって、前記N個の第1の検証パラメータが前記車両内のN個の電子デバイスと一対一に対応し、前記N個の第1の検証パラメータのi番目の第1の検証パラメータが、前記N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nが1よりも大きい正の整数である、ステップと、
前記N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するステップであって、前記第1のノードが前記N個の電子デバイスの親ノードである、ステップと、
トラステッドデバイスから、前記第1のノードに対応する第1のリファレンスパラメータを取得するステップと、
前記第1のノードに対応する前記第1の検証パラメータおよび前記第1のノードに対応する前記第1のリファレンスパラメータに従って、前記N個の電子デバイスのソフトウェアセキュリティを検証するステップと
を含む、方法。
【請求項2】
前記方法が、
N個の第2の検証パラメータを取得するステップであって、前記N個の第2の検証パラメータが前記N個の電子デバイスと一対一に対応し、前記N個の第2の検証パラメータのi番目の第2の検証パラメータが、前記N個の電子デバイスの前記i番目の電子デバイスの前記ソフトウェアイメージに従って決定される、ステップをさらに含み、
N個の第1の検証パラメータを取得する前記ステップは、
前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の電子デバイスの前記i番目の電子デバイスの識別情報に従って、前記N個の第1の検証パラメータの前記i番目の第1の検証パラメータを決定するステップであって、i=1,…,Nである、ステップを含む、請求項1に記載の方法。
【請求項3】
前記方法が、
トラステッドデバイスからN個の第2のリファレンスパラメータを取得するステップであって、前記N個の第2のリファレンスパラメータが前記N個の電子デバイスと一対一に対応する、ステップと、
前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、前記N個の電子デバイスの前記i番目の電子デバイスのソフトウェアセキュリティを検証するステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記方法が、
M個の電子デバイスに対応するツリーを決定するステップであって、前記ツリーがM個のノードを含み、前記M個のノードが前記車両内のM個の電子デバイスと一対一に対応し、前記M個の電子デバイスが前記N個の電子デバイスを含み、MがNよりも大きい正の整数である、ステップと、
前記ツリー内の前記M個のノードの接続関係に基づいて、前記第1のノードが前記N個の電子デバイスの親ノードであると決定するステップと
をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記ツリーの前記M個のノードの前記接続関係と、前記車両内の前記M個の電子デバイスの接続関係とが同じである、請求項4に記載の方法。
【請求項6】
前記ツリーが、前記車両に対応する高さ平衡バイナリツリーである、請求項4に記載の方法。
【請求項7】
前記ツリーが完全平衡バイナリツリーであり、前記M個のノードが前記ツリーの葉ノードであり、前記ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である、請求項4に記載の方法。
【請求項8】
前記方法が、
第1のブロックを決定し、記憶するステップであって、前記第1のブロックが前記ツリーに対応し、前記第1のブロックが第1の構造情報を含み、前記第1の構造情報が前記ツリーのノードの接続関係を示すために使用される、ステップと、
第2のブロックを決定し、記憶するステップであって、前記第2のブロックが第2の構造情報を含み、前記第2の構造情報が、未修正の指示情報および修正された指示情報を含み、前記未修正の指示情報が、未更新のノードを示すために使用され、前記修正された指示情報が、更新されたノードの接続関係を示すために使用され、前記未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、前記更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている、ステップと
をさらに含む、請求項4から7のいずれか一項に記載の方法。
【請求項9】
前記第1のブロックが、前記第1のブロックを記憶した時刻を示すタイムスタンプと、前記M個の電子デバイスに対応するソフトウェア情報とをさらに含み、
前記第2のブロックが、前記第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む、請求項8に記載の方法。
【請求項10】
コンピューティングデバイスであって、
N個の第1の検証パラメータを取得するように構成された取得モジュールであって、前記N個の第1の検証パラメータが車両内のN個の電子デバイスと一対一に対応し、前記N個の第1の検証パラメータのi番目の第1の検証パラメータが、前記N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nが1よりも大きい正の整数である、取得モジュールと、
前記N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するように構成された決定モジュールであって、前記第1のノードが前記N個の電子デバイスの親ノードである、決定モジュールと
を備え、
前記取得モジュールが、トラステッドデバイスから、前記第1のノードに対応する第1のリファレンスパラメータを取得するようにさらに構成され、
前記決定モジュールが、前記第1のノードに対応する前記第1の検証パラメータおよび前記第1のノードに対応する前記第1のリファレンスパラメータに従って、前記N個の電子デバイスのソフトウェアセキュリティを検証するようにさらに構成される、デバイス。
【請求項11】
前記取得モジュールが、N個の第2の検証パラメータを取得することであって、前記N個の第2の検証パラメータが前記N個の電子デバイスと一対一に対応し、前記N個の第2の検証パラメータのi番目の第2の検証パラメータが、前記N個の電子デバイスの前記i番目の電子デバイスの前記ソフトウェアイメージに従って決定される、ことを行うようにさらに構成され、
前記取得モジュールが、前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の電子デバイスの前記i番目の電子デバイスの識別情報に従って、前記N個の第1の検証パラメータの前記i番目の第1の検証パラメータを決定することであって、i=1,…,Nである、ことを行うようにさらに構成される、請求項10に記載のデバイス。
【請求項12】
前記取得モジュールが、トラステッドデバイスからN個の第2のリファレンスパラメータを取得することであって、前記N個の第2のリファレンスパラメータが前記N個の電子デバイスと一対一に対応する、ことを行うようにさらに構成され、
前記決定モジュールが、前記N個の第2の検証パラメータの前記i番目の第2の検証パラメータおよび前記N個の第2のリファレンスパラメータのi番目の第2のリファレンスパラメータに従って、前記N個の電子デバイスの前記i番目の電子デバイスのソフトウェアセキュリティを検証するようにさらに構成される、請求項11に記載のデバイス。
【請求項13】
前記決定モジュールが、
M個の電子デバイスに対応するツリーを決定することであって、前記ツリーがM個のノードを含み、前記M個のノードが前記車両内のM個の電子デバイスと一対一に対応し、前記M個の電子デバイスが前記N個の電子デバイスを含み、MがNよりも大きい正の整数である、ことと、
前記ツリー内の前記M個のノードの接続関係に基づいて、前記第1のノードが前記N個の電子デバイスの親ノードであると決定することと
を行うようにさらに構成される、請求項10から12のいずれか一項に記載のデバイス。
【請求項14】
前記ツリーの前記M個のノードの前記接続関係と、前記車両内の前記M個の電子デバイスの接続関係とが同じである、請求項13に記載のデバイス。
【請求項15】
前記ツリーが、前記車両に対応する高さ平衡バイナリツリーである、請求項13に記載のデバイス。
【請求項16】
前記ツリーが完全平衡バイナリツリーであり、前記M個のノードが前記ツリーの葉ノードであり、前記ツリーがK個の非葉ノードをさらに含み、Kが1よりも大きい正の整数である、請求項13に記載のデバイス。
【請求項17】
前記決定モジュールが、
第1のブロックを決定することであって、前記第1のブロックが前記ツリーに対応し、前記第1のブロックが第1の構造情報を含み、前記第1の構造情報が前記ツリーのノードの接続関係を示すために使用される、ことと、
第2のブロックを決定することであって、前記第2のブロックが第2の構造情報を含み、前記第2の構造情報が、未修正の指示情報および修正された指示情報を含み、前記未修正の指示情報が、未更新のノードを示すために使用され、前記修正された指示情報が、更新されたノードの接続関係を示すために使用され、前記未更新のノードのそれぞれに対応する第1の検証パラメータおよび第2の検証パラメータは更新されておらず、前記更新されたノードのそれぞれに対応する第1の検証パラメータまたは第2の検証パラメータは更新されている、ことと
を行うようにさらに構成される、請求項13から16のいずれか一項に記載のデバイス。
【請求項18】
前記第1のブロックが、前記第1のブロックを記憶した時刻を示すタイムスタンプと、前記M個の電子デバイスに対応するソフトウェア情報とをさらに含み、
前記第2のブロックが、前記第2のブロックを記憶した時刻を示すタイムスタンプと、更新された電子デバイスに対応するソフトウェア情報とをさらに含む、請求項17に記載のデバイス。
【請求項19】
請求項10から18のいずれか一項に記載のデバイスを備える、車両。
【請求項20】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体が命令を記憶し、前記命令がサーバ上で動作したとき、前記サーバが、請求項1から9のいずれか一項に記載の方法を実行可能となる、コンピュータ可読記憶媒体。
【請求項21】
メモリとプロセッサとを備えたデバイスであって、前記メモリがコンピュータプログラムを記憶するように構成され、前記プロセッサが前記メモリから前記コンピュータプログラムを呼び出して前記コンピュータプログラムを動作させるように構成され、その結果、チップが配置されたサーバが、請求項1から9のいずれか一項に記載の方法を実行する、デバイス。
【請求項22】
コンピュータプログラ
ムであって、前記コンピュータプログラ
ムがサーバ上で動作したとき、前記サーバが、請求項1から9のいずれか一項に記載の方法を実行可能となる、コンピュータプログラ
ム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0005
【補正方法】変更
【補正の内容】
【0005】
第1の態様によれば、本出願の一実施形態は、車両内のデバイスのソフトウェアセキュリティを検証するための方法を提供し、方法は、N個の第1の検証パラメータを取得するステップであって、N個の第1の検証パラメータが車両内のN個の電子デバイスと一対一に対応し、N個の第1の検証パラメータのi番目の第1の検証パラメータが、N個の電子デバイスのi番目の電子デバイスのソフトウェアイメージに従って決定され、Nが1よりも大きい正の整数である、ステップと、N個の第1の検証パラメータに従って、第1のノードに対応する第1の検証パラメータを決定するステップであって、第1のノードがN個の電子デバイスの親ノードである、ステップと、トラステッドデバイスから、第1のノードに対応する第1のリファレンスパラメータを取得するステップと、第1のノードに対応する第1の検証パラメータおよび第1のノードに対応する第1のリファレンスパラメータに従って、N個の電子デバイスのソフトウェアセキュリティを検証するステップとを含む。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
【
図1】本出願の一実施形態に係る車両内の電子デバイスの概略ブロック図である。
【
図6】車両内の電子デバイスのソフトウェアセキュリティを検証するための方法の実施形態のフローチャートである。
【
図11】車両内の電子デバイスのソフトウェアセキュリティを検証するための方法の別の実施形態のフローチャートである。
【
図12】車両200に対応するマークルツリーを示す。
【
図13】ソフトウェア更新後の車両200に対応するツリーを示す。
【
図14】VVTのブロックチェーンの一部を示す。VVTのブロックチェーン内の3つのブロックを示す。
【
図15】車両内
のデバイスのソフトウェア
セキュリティを検証するための方法の実施形態のフローチャートである。
【
図16】本出願の一実施形態に係るコンピューティングデバイス1600の概略ブロック図である。
【
図17】本出願の一実施形態に係るコンピューティングデバイス1700の概略ブロック図である。
【
図18】ECUがHSM/TPMを有する場合にECUの第2の検証パラメータを取り出すための手順を示す。
【
図19】ECUがHSM/TPMを有しない場合にECUの第2の検証パラメータを取り出すための手順を示す。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正の内容】
【0025】
トランシーバ101は他の電子デバイスと通信するように構成され得る。トランシーバ101は制御情報および/またはデータを他の電子デバイスに送信し得、トランシーバ101は他の電子デバイスから制御情報および/またはデータを受信し得る。例えば、トランシーバ101は、サーバから更新バンドルを受信し得、受信された更新バンドルに含まれる1つまたは複数のパッチを車両内の対応する電子デバイスに送信し得、対応する電子デバイスから更新フィードバック情報を受信し得る。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0030
【補正方法】変更
【補正の内容】
【0030】
TBox201は、CC210に繋がっている。DC220、DC230およびDC240は、CC210に繋がっている。ECU221、ECU222およびECU223は、DC220に繋がっており、ECU231およびECU232はDC230に繋がっており、ECU241、ECU242、ECU243およびECU244は、DC240に繋がっている。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0202
【補正方法】変更
【補正の内容】
【0202】
図15は、車両内
のデバイスのソフトウェア
セキュリティを検証するための方法の実施形態のフローチャートである。
【国際調査報告】