JP2017169147A - Verification device, electronic apparatus, program, and verification system - Google Patents
Verification device, electronic apparatus, program, and verification system Download PDFInfo
- Publication number
- JP2017169147A JP2017169147A JP2016054535A JP2016054535A JP2017169147A JP 2017169147 A JP2017169147 A JP 2017169147A JP 2016054535 A JP2016054535 A JP 2016054535A JP 2016054535 A JP2016054535 A JP 2016054535A JP 2017169147 A JP2017169147 A JP 2017169147A
- Authority
- JP
- Japan
- Prior art keywords
- verification
- unit
- target data
- response
- value
- 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.)
- Pending
Links
Images
Abstract
Description
本発明の実施形態は、検証装置、電子機器、プログラムおよび検証システムに関する。 Embodiments described herein relate generally to a verification apparatus, an electronic apparatus, a program, and a verification system.
従来より、組込機器およびIoT(Internet of Things)機器等の電子機器が知られている。このような電子機器は、プログラムを実行するプロセッサ、および、プログラムおよびデータを格納したメモリを有し、プロセッサがメモリに記憶されているプログラムを実行する。また、このような電子機器は、通信機能を有し、ネットワークを介して新たなプログラムおよびデータを受信して、メモリに記憶されているプログラムおよびデータをアップデートすることができる。 Conventionally, electronic devices such as embedded devices and IoT (Internet of Things) devices are known. Such an electronic device has a processor that executes a program and a memory that stores the program and data, and the processor executes the program stored in the memory. Further, such an electronic device has a communication function, and can receive new programs and data via a network and update the programs and data stored in the memory.
ところで、このような電子機器は、プログラムのアップデート中にエラーが発生した場合、メモリに記憶されるプログラムまたはデータに欠陥が生じてしまう可能性がある。また、このような電子機器は、ネットワークに接続されているので、サイバー攻撃者から攻撃を受けて、メモリに記憶されたプログラムまたはデータが書き換えられる恐れもある。 By the way, in such an electronic device, when an error occurs during program update, there is a possibility that a program or data stored in the memory may be defective. In addition, since such an electronic device is connected to a network, there is a possibility that a program or data stored in the memory may be rewritten due to an attack from a cyber attacker.
このため、管理者は、電子機器のメモリに記憶されているプログラムおよびデータが正常であるか否かを定期的に確認しなければならない。また、管理者は、このような確認を、電子機器の動作を停止することなく遠隔からネットワークを介して実行することが望ましい。 For this reason, the administrator must periodically check whether the program and data stored in the memory of the electronic device are normal. In addition, it is desirable for the administrator to execute such confirmation via a network from a remote location without stopping the operation of the electronic device.
本発明が解決しようとする課題は、情報処理を実行する電子機器に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することにある。 A problem to be solved by the present invention is to verify remotely whether or not target data stored in an electronic device that executes information processing is normal via a network.
実施形態に係る検証装置は、情報処理を実行する電子機器に記憶されている対象データをネットワークを介して検証する。前記検証装置は、イメージ記憶部と、アドレス選択部と、チャレンジ生成部と、チャレンジ送信部と、レスポンス受信部と、データ抽出部と、検証値生成部と、判定部とを備える。前記イメージ記憶部は、前記電子機器が備えるデータ記憶部のメモリイメージを記憶する。前記アドレス選択部は、前記データ記憶部における少なくとも1つのアドレスを選択する。前記チャレンジ生成部は、選択された前記少なくとも1つのアドレスを含むチャレンジ情報を生成する。前記チャレンジ送信部は、前記チャレンジ情報を前記電子機器にネットワークを介して送信する。前記レスポンス受信部は、前記チャレンジ情報を送信したことに応じて返信されたレスポンス値を前記電子機器からネットワークを介して受信する。前記データ抽出部は、前記メモリイメージから、選択された前記少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出する。前記検証値生成部は、抽出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いて検証値を生成する。前記判定部は、前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する。 The verification apparatus according to the embodiment verifies target data stored in an electronic device that executes information processing via a network. The verification device includes an image storage unit, an address selection unit, a challenge generation unit, a challenge transmission unit, a response reception unit, a data extraction unit, a verification value generation unit, and a determination unit. The image storage unit stores a memory image of a data storage unit included in the electronic device. The address selection unit selects at least one address in the data storage unit. The challenge generation unit generates challenge information including the selected at least one address. The challenge transmission unit transmits the challenge information to the electronic device via a network. The response receiving unit receives a response value returned in response to the transmission of the challenge information from the electronic device via a network. The data extraction unit extracts at least one target data to be stored at the selected at least one address from the memory image. The verification value generation unit generates a verification value from the extracted at least one target data using a predetermined calculation algorithm. The determination unit determines that the target data stored in the data storage unit is normal when the response value matches the verification value.
以下、図面を参照しながら実施形態に係る検証システム10について詳細に説明する。検証システム10は、情報処理を実行する機器に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することを目的とする。
Hereinafter, the
(第1実施形態)
図1は、第1実施形態に係る検証システム10を示す図である。検証システム10は、検証装置20と、電子機器30とを備える。
(First embodiment)
FIG. 1 is a diagram illustrating a
検証装置20は、サーバ等の情報処理装置である。検証装置20は、ネットワークを介して電子機器30との間で情報を送受信することが可能である。ネットワークは、どのようなものであってもよく、インターネット等の公衆ネットワークであっても、グループ内や建物内等においてクローズしている専用ネットワークであってもよい。
The
電子機器30は、組込機器およびIoT機器等の機器である。電子機器30は、プログラムを実行するプロセッサと、プログラムおよびデータを記憶するメモリを有する。電子機器30は、メモリに記憶されたプログラムおよびデータをプロセッサが実行することにより処理を実行する機能を有する。また、電子機器30は、ネットワークを介して他の装置と情報を送受信することが可能である。
The
例えば、電子機器30は、家庭用の電化製品、または、工業用のロボット、飛行機および車両に設けられる電子制御装置(ECU)等であってよい。電子機器30は、ハードウェアとして、CPU(Central Processing Unit)等の処理ユニット、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性記憶装置等の記憶ユニット、検証装置20と接続するための通信ユニット等を有する。このような電子機器30は、プログラムとハードウェアとが協働して、情報処理および制御を実行する。
For example, the
検証装置20は、電子機器30に記憶されている対象データを、ネットワークを介して遠隔から検証する。ここで、対象のデータは、プログラムおよびプログラムにより参照されるデータを含む。対象データは、電子機器30の工場出荷時またはバージョン更新時において、メモリ上の特定のアドレスに書き込まれる。また、メモリに書き込まれた後には、次にバージョンの更新がされるまで書き換えがされない。
The
検証装置20は、電子機器30との間でネットワークを介して情報をやり取りして、電子機器30のメモリに、本来書き込まれているべき対象データ(プログラムおよびデータ)が記憶されているか否かを確認する。これにより、検証装置20は、電子機器30のバージョン更新の処理が失敗してメモリに記憶されている対象データに異常が生じていたり、または、サイバー攻撃等によりメモリに記憶されている対象データに異常が生じていたりすることを検出できる。
The
図2は、第1実施形態に係る検証装置20および電子機器30の機能構成を示す図である。検証装置20は、イメージ記憶部42と、バージョン確認部44と、バージョン取得部52と、アドレス選択部54と、順序設定部56と、チャレンジ生成部58と、チャレンジ送信部60と、レスポンス受信部70と、データ抽出部72と、検証値生成部74と、判定部76と、結果記憶部78とを有する。電子機器30は、データ記憶部38と、処理実行部40と、確認要求受信部46と、バージョン記憶部48と、バージョン送信部50と、チャレンジ受信部62と、データ読出部64と、レスポンス生成部66と、レスポンス送信部68とを有する。
FIG. 2 is a diagram illustrating a functional configuration of the
電子機器30におけるデータ記憶部38は、検証対象となる対象データ(プログラムおよびデータ)を記憶する。データ記憶部38は、例えば、不揮発性のメモリ等により実現される。不揮発性のメモリは、半導体メモリであってもよいし、ハードディスク等のディスク記録媒体であってもよい。データ記憶部38に記憶されている対象データは、工場出荷時またはバージョン更新時等に書き換えられる。
The
電子機器30における処理実行部40は、データ記憶部38に記憶された対象データ(プログラムおよびデータ)に基づき情報処理および制御処理等を実行する。
The
検証装置20におけるイメージ記憶部42は、電子機器30が備えるデータ記憶部38のメモリイメージを記憶する。ここで、メモリイメージは、データ記憶部38に記憶された対象データと、そのデータが記憶されているアドレスとの関係が検出可能な情報である。従って、メモリイメージを参照することにより、データ記憶部38上における特定のアドレスに記憶されている対象データを抽出することができる。イメージ記憶部42は、メモリイメージをどのような形式で記憶していてもよい。
The
また、イメージ記憶部42は、バージョン毎にメモリイメージを記憶する。例えば、イメージ記憶部42は、データ記憶部38に記憶されている対象データが更新される毎に、新たなバージョンのメモリイメージを記憶する。また、旧バージョンの対象データを記憶している電子機器30と、新バージョンの対象データを記憶している電子機器30とが混在する可能性がある場合、イメージ記憶部42は、それぞれのバージョンのメモリイメージを記憶する。
The
検証装置20におけるバージョン確認部44は、検証対象となる電子機器30に対してネットワークを介してバージョンの確認要求を送信する。
The version confirmation unit 44 in the
電子機器30における確認要求受信部46は、検証装置20からネットワークを介してバージョンの確認要求を受信する。電子機器30におけるバージョン記憶部48は、データ記憶部38に記憶されている対象データのバージョンを表すバージョン情報を記憶する。電子機器30におけるバージョン送信部50は、確認要求受信部46がバージョンの確認要求を受信した場合、バージョン記憶部48に記憶されているバージョン情報を読み出す。そして、バージョン送信部50は、読み出したバージョン情報を、ネットワークを介して検証装置20に送信する。
The confirmation
検証装置20におけるバージョン取得部52は、電子機器30からネットワークを介してバージョン情報を受信する。そして、バージョン取得部52は、バージョン情報を解析して、データ記憶部38に記憶されている対象データのバージョンを取得する。なお、バージョン取得部52は、電子機器30からではなく、それぞれの電子機器30のバージョンを管理する管理装置等から、バージョン情報を取得してもよい。管理装置は、ネットワーク上に存在していてもよいし、検証装置20が備えていてもよい。
The
検証装置20におけるアドレス選択部54は、データ記憶部38の対象データが記憶されている領域における少なくとも1つのアドレスを選択する。本実施形態においては、アドレス選択部54は、複数のアドレスを選択する。なお、アドレス選択部54は、検証を実行する毎に、任意の複数のアドレスを選択する。アドレス選択部54は、検証を実行する毎に異なるアドレスを選択する。アドレス選択部54は、検証を実行する毎に、ランダムにアドレスを選択してもよいし、例えば予め登録されたリスト等を参照して異なるアドレスを選択してもよい。なお、アドレス選択部54は、バージョン毎に対象データが記憶されている記録範囲が異なる場合には、バージョンに応じた記録範囲の中からアドレスを選択する。
The
検証装置20における順序設定部56は、アドレス選択部54により選択された複数のアドレスをランダムに並べ替える。なお、アドレス選択部54が1つのアドレスを選択する場合には、順序設定部56は、何ら処理を実行しない。
The
検証装置20におけるチャレンジ生成部58は、選択された少なくとも1つのアドレスを含むチャレンジ情報を生成する。例えば、チャレンジ生成部58は、選択された少なくとも1つのアドレスを含む配列データを、チャレンジ情報として生成する。本実施形態においては、チャレンジ生成部58は、選択された複数のアドレスを、並べられた順序を識別可能に含むチャレンジ情報を生成する。例えば、チャレンジ生成部58は、選択された複数のアドレスを、並び順に従った位置に格納した配列データを、チャレンジ情報として生成する。
The
検証装置20におけるチャレンジ送信部60は、チャレンジ生成部58が生成したチャレンジ情報を電子機器30にネットワークを介して送信する。
The
電子機器30におけるチャレンジ受信部62は、検証装置20からネットワークを介してチャレンジ情報を受信する。電子機器30におけるデータ読出部64は、チャレンジ受信部62がチャレンジ情報を受信した場合、チャレンジ情報に含まれる少なくとも1つのアドレスに記憶された対象データを、データ記憶部38から読み出す。
The
電子機器30におけるレスポンス生成部66は、データ読出部64が読み出した少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いてレスポンス値を生成する。
The
ここで、予め定められた演算アルゴリズムは、例えば、予め定められたハッシュ関数である。ハッシュ関数は、不可逆な一方向関数である。ハッシュ関数は、同一の入力値(対象データ)を、同一の出力値(ハッシュ値)へと変換する。しかし、ハッシュ関数は、出力値を入力値へ変換する逆関数は存在せず、出力値から入力値を探索することは非常に困難である。 Here, the predetermined calculation algorithm is, for example, a predetermined hash function. The hash function is an irreversible one-way function. The hash function converts the same input value (target data) into the same output value (hash value). However, the hash function has no inverse function for converting the output value into the input value, and it is very difficult to search for the input value from the output value.
レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した少なくとも1つの対象データにより定まるハッシュ値を、レスポンス値として算出する。本実施形態においては、レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した複数の対象データおよび設定された並び順毎によって定まるハッシュ値を、レスポンス値として算出する。例えば、レスポンス生成部66は、読み出した複数の対象データを、順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
The
電子機器30におけるレスポンス送信部68は、レスポンス生成部66が生成したレスポンス値を、検証装置20にネットワークを介して送信する。この場合、レスポンス生成部は、検証装置20から受信したチャレンジ情報の応答として、レスポンス値を返信する。
The
検証装置20におけるレスポンス受信部70は、チャレンジ情報を送信したことに応じて返信されたレスポンス値を電子機器30からネットワークを介して受信する。
The
検証装置20におけるデータ抽出部72は、イメージ記憶部42に記憶されているメモリイメージから、アドレス選択部54により選択された少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出する。この場合、データ抽出部72は、バージョン取得部52が取得したバージョンに対応するメモリイメージから、少なくとも1つの対象データを取得する。本実施形態においては、データ抽出部72は、アドレス選択部54により選択された複数のアドレスに記憶されているべき複数の対象データを抽出する。
The
検証装置20における検証値生成部74は、データ抽出部72が抽出した少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いて検証値を生成する。例えば、検証値生成部74は、予め定められたハッシュ関数を用いて、抽出した少なくとも1つの対象データにより定まるハッシュ値を、検証値として算出する。
The verification
本実施形態においては、検証値生成部74は、予め定められたハッシュ関数を用いて、抽出した複数の対象データおよび順序設定部56により設定された並び順によって定まるハッシュ値を、検証値として算出する。例えば、検証値生成部74は、抽出した複数の対象データを、順序設定部56が設定した順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
In the present embodiment, the verification
ここで、検証値生成部74が用いる演算アルゴリズムは、電子機器30におけるレスポンス生成部66が用いる演算アルゴリズムと同一である。レスポンス生成部66においてハッシュ関数を用いる場合、検証値生成部74は、同一のハッシュ関数および連結アルゴリズムを用いて検証値を生成する。
Here, the calculation algorithm used by the verification
従って、電子機器30におけるデータ読出部64が読み出した少なくとも1つの対象データと、検証装置20におけるデータ抽出部72が読み出した少なくとも1つの対象データとが同一であれば、レスポンス値と検証値とは同一となる。つまり、レスポンス値と検証値とが同一であれば、データ記憶部38における選択されたアドレスに記憶されている対象データに異常はないと推定される。
Therefore, if at least one target data read by the
検証装置20における判定部76は、レスポンス受信部70が受信したレスポンス値と、検証値生成部74が生成した検証値とを比較する。そして、判定部76は、レスポンス値と検証値とが一致する場合、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。
The
また、判定部76は、レスポンス値と検証値とが一致しない場合、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常ではないと判定する。すなわち、判定部76は、レスポンス値と検証値とが一致しない場合、選択された少なくとも1つのアドレスに記憶されている対象データに、更新または攻撃等の何らかの原因により異常が生じていると判定する。
Further, when the response value and the verification value do not match, the
結果記憶部78は、判定部76による判定結果(正常または異常)を記憶する。結果記憶部78は、検証対象となる電子機器30毎に判定結果(正常または異常)を記憶してもよい。また、結果記憶部78は、判定をしたアドレス(アドレス選択部54により選択された少なくとも1つのアドレス)と対応付けて、判定結果を記憶してもよい。
The
図3は、第1実施形態に係る検証システム10の処理の流れを示すフローチャートである。第1実施形態に係る検証システム10では、検証装置20および電子機器30が図3に示す流れで検証を実行する。
FIG. 3 is a flowchart showing a process flow of the
まず、検証装置20は、検証対象となる電子機器30に対してネットワークを介してバージョンの確認要求を送信する(S11)。
First, the
続いて、電子機器30は、検証装置20からネットワークを介してバージョンの確認要求を受信する(S12)。続いて、電子機器30は、バージョン記憶部48に記憶されているバージョン情報を読み出す(S13)。続いて、電子機器30は、検証装置20に対してネットワークを介してバージョン情報を送信する(S14)。
Subsequently, the
続いて、検証装置20は、電子機器30からバージョン情報を受信し、バージョン情報を解析してバージョンを取得する(S15)。続いて、検証装置20は、バージョン毎に記憶している複数のメモリイメージのうち、取得したバージョンに対応するメモリイメージを特定する(S16)。
Subsequently, the
続いて、検証装置20は、任意の複数のアドレスを選択する(S17)。例えば、検証装置20は、ランダムに複数のアドレスを選択する。例えば、検証装置20は、下記の式(1)に示すような3個のアドレスを選択する。
複数のアドレス=(add_1,add_3,add_8)…(1)
Subsequently, the
Multiple addresses = (add_1, add_3, add_8) (1)
続いて、検証装置20は、選択された複数のアドレスをランダムに並べ替える(S18)。例えば、検証装置20は、下記の式(2)に示すように3個のアドレスを並べ替える。
並べ替え後の複数のアドレス=(add_3,add_8,add_1)…(2)
Subsequently, the
Multiple addresses after rearrangement = (add_3, add_8, add_1) (2)
続いて、検証装置20は、選択された複数のアドレスを、ランダムに並べられた順序を識別可能に含むチャレンジ情報を生成する(S19)。例えば、検証装置20は、下記の式(3)に示すような、3個のアドレスを、並べた順序に従って先頭から格納した配列データをチャレンジ情報として生成する。
チャレンジ情報=[add_3,add_8,add_1]…(3)
Subsequently, the
Challenge information = [add — 3, add — 8, add — 1] (3)
続いて、検証装置20は、生成したチャレンジ情報を電子機器30にネットワークを介して送信する(S20)。
Subsequently, the
続いて、電子機器30は、検証装置20からチャレンジ情報を受信する(S21)。続いて、電子機器30は、チャレンジ情報に含まれる複数のアドレスに記憶されている対象データを、データ記憶部38から読み出す(S22)。例えば、電子機器30は、下記の式(4)に示すような、3個の対象データを読み出す。
複数の対象データ=(data_1,data_3,data_8)…(4)
Subsequently, the
Multiple target data = (data_1, data_3, data_8) (4)
続いて、電子機器30は、読み出した複数の対象データから、予め定められたハッシュ関数を用いてレスポンス値を生成する(S23)。例えば、電子機器30は、読み出した複数の対象データを、下記の式(5)に示すように、チャレンジ情報に含まれるアドレスの配置順に連結する。なお、式において、“||”は、前後のデータを連結する関数を表す。
連結されたデータ=(data_3||data_8||data_1)…(5)
Subsequently, the
Concatenated data = (data — 3 || data — 8 || data — 1) (5)
そして、電子機器30は、下記の式(6)に示すように、連結されたデータを予め定められたハッシュ関数に入力して、レスポンス値を算出する。なお、式において、h(x)は、xをハッシュ関数に入力して得られるハッシュ値を表す。
レスポンス値=h(data_3||data_8||data_1)…(6)
Then, as shown in the following formula (6), the
Response value = h (data — 3 || data — 8 || data — 1) (6)
このような演算を実行することにより、電子機器30は、レスポンス値を生成することができる。続いて、電子機器30は、生成したレスポンス値を検証装置20にネットワークを介して送信する(S24)。
By executing such an operation, the
続いて、検証装置20は、チャレンジ情報を送信したことに応じて返信されたレスポンス値を電子機器30からネットワークを介して受信したか否かを判断する(S25)。一定時間内にレスポンス値を受信できなかった場合(S25のNo)、検証装置20は、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でない(異常である)と判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S26)。
Subsequently, the
一方、一定時間内にレスポンス値を受信できた場合には(S25のYes)、検証装置20は、S16で特定したメモリイメージから、S17で選択した複数のアドレスに記憶されているべき対象データを抽出する(S27)。例えば、検証装置20は、下記の式(7)に示すような、3個の対象データを抽出する。
複数の対象データ=(data_1´,data_3´,data_8´)…(7)
On the other hand, when the response value can be received within a certain time (Yes in S25), the
Multiple target data = (data_1 ′, data_3 ′, data_8 ′) (7)
続いて、検証装置20は、抽出した複数の対象データおよびS18により設定されたアドレスの並び順に基づき、予め定められたハッシュ関数を用いて検証値を生成する(S28)。具体的には、検証装置20は、S23において電子機器30がレスポンス値を生成した演算と同一の演算により検証値を生成する。
Subsequently, the
例えば、検証装置20は、抽出した複数の対象データを、下記の式(8)に示すように、S18で並べ替えたアドレスの配置順に連結する。
連結されたデータ=(data_3´||data_8´||data_1´)…(8)
For example, the
Concatenated data = (data — 3 ′ || data — 8 ′ || data — 1 ′) (8)
続いて、検証装置20は、下記の式(9)に示すように、連結されたデータを、S23のレスポンス値の生成で用いたハッシュ関数と同一のハッシュ関数に入力して、検証値を算出する。
検証値=h(data_3´||data_8´||data_1´)…(9)
Subsequently, the
Verification value = h (data — 3 ′ || data — 8 ′ || data — 1 ′) (9)
続いて、検証装置20は、レスポンス値と検証値とを比較する(S29)。例えば、検証装置20は、式(6)に示したレスポンス値と式(9)に示した検証値とが一致するか否かを判断する。
Subsequently, the
検証装置20は、レスポンス値と検証値とが一致する場合(S29のtrue)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。そして、検証装置20は、結果記憶部78に正常の旨を登録し、本フローを終了する(S30)。
When the response value matches the verification value (true in S29), the
検証装置20は、レスポンス値と検証値とが一致しない場合(S29のfalse)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でないと判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S26)。
If the response value does not match the verification value (false in S29), the
以上のように、本実施形態に係る検証装置20は、電子機器30におけるデータ記憶部38に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することができる。特に、検証装置20が、検証を実行する毎に異なるアドレスを選択し、ランダムに並べ替えてチャレンジ情報を送信する。従って、検証装置20は、検証を実行する毎に異なるチャレンジ情報を生成することができる。このため、攻撃者は、データ記憶部38に記憶される対象データを改ざんする場合に、予めレスポンス値を準備することができない。従って、検証装置20によれば、改ざんを高い確率で検知することができる。
As described above, the
(第2実施形態)
図4は、第2実施形態に係る検証装置20および電子機器30の構成を示す図である。
(Second Embodiment)
FIG. 4 is a diagram illustrating configurations of the
第2実施形態に係る検証システム10は、第1実施形態に係る検証システム10と略同一の機能および構成を有する。従って、第2実施形態を説明するにあたり、第1実施形態で説明したブロックと略同一の機能および構成を有するブロックについては、同一の符号を付けて相違点を除き説明を省略する。第3実施形態以降においても同様である。
The
第2実施形態に係る検証装置20は、順序設定部56に代えて、乱数発生部82を有する。乱数発生部82は、検証を実行する毎に異なる乱数を発生する。
The
検証装置20におけるチャレンジ生成部58は、選択された少なくとも1つのアドレスおよび乱数を含むチャレンジ情報を生成する。例えば、チャレンジ生成部58は、選択された少なくとも1つのアドレスおよび乱数を含む配列データを、チャレンジ情報として生成する。
The
電子機器30におけるレスポンス生成部66は、データ読出部64が読み出した少なくとも1つの対象データと、チャレンジ情報に含まれる乱数とから、予め定められた演算アルゴリズムを用いてレスポンス値を生成する。例えば、レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した少なくとも1つの対象データと乱数とにより定まるハッシュ値を、レスポンス値として算出する。例えば、レスポンス生成部66は、読み出した少なくとも1つの対象データと乱数とを予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
The
検証装置20における検証値生成部74は、データ抽出部72が抽出した少なくとも1つの対象データと乱数発生部82により発生された乱数とから、予め定められた演算アルゴリズムを用いて検証値を生成する。例えば、検証値生成部74は、レスポンス生成部66と同一の予め定められたハッシュ関数を用いて、抽出した少なくとも1つの対象データと乱数発生部82により発生された乱数とにより定まるハッシュ値を、検証値として算出する。例えば、検証値生成部74は、抽出した少なくとも1つの対象データと乱数発生部82により発生された乱数とを予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
The verification
図5は、第2実施形態に係る検証システム10の処理の流れを示すフローチャートである。第2実施形態に係る検証システム10では、検証装置20および電子機器30が図5に示す流れで検証を実行する。
FIG. 5 is a flowchart showing a processing flow of the
まず、検証装置20および電子機器30は、S11からS16までは、第1実施形態と同一の処理を実行する。
First, the
続いて、検証装置20は、任意のアドレスを選択する(S41)。例えば、アドレス選択部54は、ランダムにアドレスを選択する。例えば、検証装置20は、下記の式(11)に示すような1個のアドレスを選択する。
アドレス=add_1…(11)
Subsequently, the
Address = add_1 (11)
続いて、検証装置20は、乱数を発生する(S42)。例えば、検証装置20は、下記の式(12)に示すような乱数を発生する。
乱数=RND…(12)
Subsequently, the
Random number = RND (12)
続いて、検証装置20は、選択されたアドレスと乱数とを含むチャレンジ情報を生成する(S43)。例えば、検証装置20は、下記の式(13)に示すような、アドレスと乱数とを格納した配列データをチャレンジ情報として生成する。
チャレンジ情報=[add_1,RND]…(13)
Subsequently, the
Challenge information = [add_1, RND] (13)
続いて、検証装置20は、生成したチャレンジ情報を電子機器30にネットワークを介して送信する(S44)。
Subsequently, the
続いて、電子機器30は、検証装置20からチャレンジ情報を受信する(S45)。続いて、電子機器30は、チャレンジ情報に含まれるアドレスに記憶されている対象データを、データ記憶部38から読み出す(S46)。例えば、電子機器30は、下記の式(14)に示すような、対象データを読み出す。
対象データ=(data_1)…(14)
Subsequently, the
Target data = (data_1) (14)
続いて、電子機器30は、読み出した対象データおよびチャレンジ情報に含まれる乱数から、予め定められたハッシュ関数を用いてレスポンス値を生成する(S47)。例えば、電子機器30は、読み出した対象データと乱数とを、下記の式(15)に示すように予め定められた順序で連結する。
連結されたデータ=(data_1||RND)…(15)
Subsequently, the
Concatenated data = (data_1 || RND) (15)
そして、電子機器30は、下記の式(16)に示すように、連結されたデータを予め定められたハッシュ関数に入力して、レスポンス値を算出する。
レスポンス値=h(data_1||RND)…(16)
Then, as shown in the following equation (16), the
Response value = h (data_1 || RND) (16)
続いて、電子機器30は、生成したレスポンス値を検証装置20にネットワークを介して送信する(S48)。
Subsequently, the
続いて、検証装置20は、チャレンジ情報を送信したことに応じて返信されたレスポンス値を電子機器30からネットワークを介して受信したか否かを判断する(S49)。一定時間内にレスポンス値を受信できなかった場合(S49のNo)、検証装置20は、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でない(異常である)と判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S50)。
Subsequently, the
一方、一定時間内にレスポンス値を受信できた場合には(S49のYes)、検証装置20は、S16で特定したメモリイメージから、S41で選択したアドレスに記憶されているべき対象データを抽出する(S51)。例えば、検証装置20は、下記の式(17)に示すような対象データを抽出する。
対象データ=(data_1´)…(17)
On the other hand, if the response value can be received within a certain time (Yes in S49), the
Target data = (data_1 ′) (17)
続いて、検証装置20は、抽出した対象データおよびS42で発生した乱数から、予め定められたハッシュ関数を用いて検証値を生成する(S52)。具体的には、検証装置20は、S47において電子機器30がレスポンス値を生成した演算と同一の演算により検証値を生成する。
Subsequently, the
例えば、検証装置20は、抽出した対象データおよび乱数を、下記の式(18)に示すように、S47のレスポンス値の生成で用いた順序で連結する。
連結されたデータ=(data_1´||RND)…(18)
For example, the
Concatenated data = (data_1 ′ || RND) (18)
続いて、検証装置20は、下記の式(19)に示すように、連結されたデータを、S47のレスポンス値の生成で用いたハッシュ関数と同一のハッシュ関数に入力して、検証値を算出する。
検証値=h(data_1´||RND)…(19)
Subsequently, the
Verification value = h (data_1 ′ || RND) (19)
続いて、検証装置20は、レスポンス値と検証値とを比較する(S53)。例えば、検証装置20は、式(16)に示したレスポンス値と式(19)に示した検証値とが一致するか否かを判断する。
Subsequently, the
検証装置20は、レスポンス値と検証値とが一致する場合(S53のtrue)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。そして、検証装置20は、結果記憶部78に正常の旨を登録し、本フローを終了する(S54)。
When the response value matches the verification value (true in S53), the
検証装置20は、レスポンス値と検証値とが一致しない場合(S53のfalse)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でないと判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S50)。
When the response value does not match the verification value (false in S53), the
以上のように、本実施形態に係る検証装置20は、電子機器30におけるデータ記憶部38に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することができる。特に、検証装置20が、検証を実行する毎に異なるアドレスを選択し、さらに、検証を実行する毎に異なる乱数を発生してチャレンジ情報を送信する。従って、検証装置20は、検証を実行する毎に異なるチャレンジ情報を生成することができる。このため、攻撃者は、データ記憶部38に記憶される対象データを改ざんする場合に、予めレスポンス値を準備することができない。従って、検証装置20によれば、改ざんを高い確率で検知することができる。
As described above, the
なお、本実施形態においては、アドレス選択部54は、1個のアドレスを選択する構成であるが、第1実施形態と同様に複数のアドレスを選択してもよい。また、第1実施形態に係る検証装置20および電子機器30の構成に、第2実施形態の構成を追加してもよい。この場合、チャレンジ生成部58は、複数のアドレスをランダムに並べ替えるとともに、乱数をチャレンジ情報に含める。このようにしても、検証装置20は、改ざんを高い確率で検知することができる。
In the present embodiment, the
(第3実施形態)
図6は、第3実施形態に係る検証システム10を示す図である。本実施形態に係る検証システム10は、検証装置20と、複数の電子機器30とを備える。
(Third embodiment)
FIG. 6 is a diagram illustrating a
本実施形態に係る検証装置20は、複数の電子機器30に対して一括して検証を実行する。複数の電子機器30のそれぞれには、固有の識別情報が割り当てられている。本実施形態に係る検証装置20は、複数の電子機器30を効率良く検証することができる。
The
図7は、第3実施形態に係る検証装置20および電子機器30の構成を示す図である。
FIG. 7 is a diagram illustrating configurations of the
第3実施形態に係る検証装置20は、グループ管理部84をさらに有する。また、第3実施形態に係る検証装置20は、第1実施形態と比較して、バージョン確認部44、バージョン取得部52および順序設定部56を有さない。
The
第3実施形態に係る電子機器30は、識別情報記憶部88をさらに有する。また、第3実施形態に係る電子機器30は、確認要求受信部46、バージョン記憶部48およびバージョン送信部50を有さない。
The
検証装置20におけるグループ管理部84は、同一のメモリイメージを記憶する複数の電子機器30のグループを管理する。具体的には、グループ管理部84は、グループ毎に、そのグループに属する電子機器30が記憶している対象データのバージョン、そのグループに属する複数の電子機器30のそれぞれの識別情報、および、そのグループに属する複数の電子機器30のそれぞれのネットワーク上のアドレスを記憶する。グループ管理部84は、検証対象のグループに属する電子機器30が記憶している対象データのバージョンを特定し、アドレス選択部54およびデータ抽出部72に与える。
The group management unit 84 in the
検証装置20におけるチャレンジ生成部58は、選択された少なくとも1つのアドレスを含むチャレンジ情報を生成する。検証装置20におけるチャレンジ送信部60は、検証対象のグループに属する複数の電子機器30のそれぞれのネットワーク上のアドレスを取得する。そして、チャレンジ送信部60は、複数の電子機器30のそれぞれにチャレンジ情報を一斉送信する。例えば、チャレンジ送信部60は、チャレンジ情報をマルチキャスト送信またはブロードキャスト送信をする。
The
電子機器30における識別情報記憶部88は、自身に割り当てられた識別情報を記憶する。電子機器30におけるレスポンス生成部66は、識別情報記憶部88から識別情報を取得する。
The identification
レスポンス生成部66は、データ読出部64が読み出した少なくとも1つの対象データと識別情報とから、予め定められた演算アルゴリズムを用いてレスポンス値を生成する。例えば、レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した少なくとも1つの対象データと識別情報とにより定まるハッシュ値を、レスポンス値として算出する。例えば、レスポンス生成部66は、読み出した少なくとも1つの対象データと識別情報とを予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてレスポンス値を生成する。
The
電子機器30におけるレスポンス送信部68は、レスポンス生成部66が生成したレスポンス値と、識別情報記憶部88に記憶された識別情報との組を、検証装置20にネットワークを介して送信する。
The
検証装置20におけるレスポンス受信部70は、レスポンス値と識別情報との組を、検証対象のグループに属する複数の電子機器30のそれぞれからネットワークを介して受信する。
The
検証装置20における検証値生成部74は、レスポンス値と識別情報との組を受信する毎に、検証値を生成する。検証値生成部74は、データ抽出部72が抽出した少なくとも1つの対象データと、電子機器30から受信した識別情報とから、予め定められた演算アルゴリズムを用いて検証値を生成する。
The verification
例えば、検証値生成部74は、レスポンス生成部66と同一の予め定められたハッシュ関数を用いて、抽出した少なくとも1つの対象データと受信した識別情報とにより定まるハッシュ値を、検証値として算出する。例えば、検証値生成部74は、抽出した少なくとも1つの対象データと受信した識別情報とを、予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えて検証値を算出する。
For example, the verification
検証装置20における判定部76は、レスポンス値と識別情報との組を受信する毎に、レスポンス受信部70が受信したレスポンス値と、検証値生成部74が生成した検証値とを比較する。そして、判定部76は、レスポンス値と検証値とが一致する場合、受信した識別情報に対応する電子機器30について、データ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。
The
また、判定部76は、レスポンス値と検証値とが一致しない場合、受信した識別情報に対応する電子機器30について、データ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常ではないと判定する。また、判定部76は、識別情報が同一である複数のレスポンス値を受信した場合、受信した識別情報に対応する電子機器30のデータ記憶部38に記憶されている対象データが正常ではないと判定する。
Further, when the response value and the verification value do not match, the
結果記憶部78は、複数の電子機器30毎に判定結果(正常または異常)を記憶する。
The
図8は、第3実施形態に係る検証システム10の処理の流れを示すフローチャートである。第3実施形態に係る検証システム10では、検証装置20および電子機器30が図8に示す流れで検証を実行する。
FIG. 8 is a flowchart showing a processing flow of the
まず、検証装置20は、検証対象のグループを特定する(S61)。続いて、検証装置20は、グループに属する電子機器30が有するデータ記憶部38が記憶している対象データのバージョンから、対応するメモリイメージを特定する(S62)。
First, the
続いて、検証装置20は、任意のアドレスを選択する(S63)。例えば、アドレス選択部54は、検証をする毎にランダムにアドレスを選択する。例えば、検証装置20は、下記の式(21)に示すような1個のアドレスを選択する。
アドレス=(add_1)…(21)
Subsequently, the
Address = (add_1) (21)
続いて、検証装置20は、選択されたアドレスを含むチャレンジ情報を生成する(S64)。例えば、検証装置20は、下記の式(22)に示すような、1個のアドレスを含む対象データをチャレンジ情報として生成する。
チャレンジ情報=[add_1]…(22)
Subsequently, the
Challenge information = [add_1] (22)
続いて、検証装置20は、生成したチャレンジ情報を、検証対象のグループに属する複数の電子機器30のそれぞれに、ネットワークを介して一斉送信する(S65)。例えば、検証装置20は、チャレンジ情報をマルチキャスト送信またはブロードキャスト送信をする。
Subsequently, the
続いて、それぞれの電子機器30は、検証装置20からチャレンジ情報を受信する(S66)。続いて、それぞれの電子機器30は、チャレンジ情報に含まれるアドレスに記憶されている対象データを、データ記憶部38から読み出す(S67)。例えば、それぞれの電子機器30は、下記の式(23)に示すような、対象データを読み出す。
対象データ=(data_1)…(23)
Subsequently, each
Target data = (data_1) (23)
続いて、それぞれの電子機器30は、自身に割り当てられている識別情報を取得する(S68)。識別情報は、電子機器30毎に異なる値である。例えば、それぞれの電子機器30は、下記の式(24)に示すような識別情報を取得する。
識別情報=(id_i)…(24)
Subsequently, each
Identification information = (id_i) (24)
続いて、それぞれの電子機器30は、読み出した対象データおよび識別情報から、予め定められたハッシュ関数を用いてレスポンス値を生成する(S69)。例えば、それぞれの電子機器30は、読み出した対象データと識別情報とを、下記の式(25)に示すように、予め定められた順序で連結する。
連結されたデータ=(data_1||id_i)…(25)
Subsequently, each
Concatenated data = (data_1 || id_i) (25)
そして、それぞれの電子機器30は、下記の式(26)に示すように、連結されたデータを予め定められたハッシュ関数に入力して、レスポンス値を算出する。
レスポンス値=h(data_1||id_i)…(26)
Each
Response value = h (data_1 || id_i) (26)
続いて、それぞれの電子機器30は、生成したレスポンス値と、取得した識別情報との組を検証装置20にネットワークを介して送信する(S70)。例えば、それぞれの電子機器30は、下記の式(27)に示すような情報を検証装置20に送信する。
送信情報=(h(data_1||id_i),id_i)…(27)
Subsequently, each
Transmission information = (h (data_1 || id_i), id_i) (27)
続いて、検証装置20は、何れかの電子機器30から、レスポンス値と識別情報との組を受信したか否かを判断する(S71)。検証装置20は、レスポンス値と識別情報との組が受信できない場合(S71のNo)、処理をS71で待機し、レスポンス値と識別情報との組が受信できた場合(S71のYes)、処理をS72に進める。すなわち、検証装置20は、レスポンス値と識別情報との組を受信する毎に、S72以降の処理を実行する。
Subsequently, the
レスポンス値と識別情報との組を受信した場合、検証装置20は、受信した情報の中から識別情報を抽出する(S72)。続いて、検証装置20は、抽出した識別情報を既に受信しているか否かを判断する(S73)。すなわち、検証装置20は、識別情報が同一である複数のレスポンス値を受信したか否かを判断する。同一の識別情報を既に受信している場合(S73のYes)、悪意の第三者が何れかの電子機器30から送信された情報をコピーした可能性があるので、検証装置20は、受信した識別情報に対応する電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが異常である旨を結果記憶部78に登録する(S74)。
When receiving the set of the response value and the identification information, the
同一の識別情報を未だ受信していない場合(S73のNo)、検証装置20は、S62で特定したメモリイメージから、S63で選択したアドレスに記憶されているべき対象データを抽出する(S75)。例えば、検証装置20は、下記の式(28)に示すような対象データを抽出する。
対象データ=(data_1´)…(28)
When the same identification information has not been received yet (No in S73), the
Target data = (data_1 ′) (28)
続いて、検証装置20は、抽出した対象データおよびS72で抽出した識別情報から、予め定められたハッシュ関数を用いて検証値を算出する(S76)。ここでは、検証装置20は、S69において電子機器30がレスポンス値を生成した演算と同一の演算により検証値を生成する。
Subsequently, the
例えば、検証装置20は、抽出した対象データおよび識別情報を、下記の式(29)に示すように、S69のレスポンス値の生成で用いた順序と同一の順序で連結する。
連結されたデータ=(data_1´||id_i)…(29)
For example, the
Concatenated data = (data_1 ′ || id_i) (29)
続いて、検証装置20は、下記の式(30)に示すように、連結されたデータを、S69のレスポンス値の生成で用いたハッシュ関数と同一のハッシュ関数に入力して、検証値を算出する。
検証値=h(data_1´||id_i)…(30)
Subsequently, the
Verification value = h (data_1 ′ || id_i) (30)
続いて、検証装置20は、レスポンス値と検証値とを比較する(S77)。例えば、検証装置20は、式(26)に示したレスポンス値と式(30)に示した検証値とが一致するか否かを判断する。
Subsequently, the
検証装置20は、レスポンス値と検証値とが一致する場合(S77のtrue)、受信した識別情報に対応する電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常である旨を結果記憶部78に登録する(S78)。検証装置20は、レスポンス値と検証値とが一致しない場合(S77のfalse)、受信した識別情報に対応する電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが異常である旨を結果記憶部78に登録する(S74)。
If the response value matches the verification value (true in S77), the
S74またはS78の処理に続いて、検証装置20は、グループに属する複数の電子機器30の全てについて、レスポンス値と識別情報との組を受信したか否かを判断する(S79)。全ての電子機器30について、レスポンス値と識別情報との組を受信した場合には(S79のYes)、検証装置20は、本フローを終了する。
Subsequent to the processing of S74 or S78, the
全ての電子機器30について、レスポンス値と識別情報との組を受信していない場合には(S79のNo)、検証装置20は、処理をS71に戻し、処理を繰り返す。なお、S71において、一定時間を経過してもレスポンス値と識別情報との組を受信できない場合(S71のNo)、検証装置20は、強制的に本フローを終了してもよい。この場合、検証装置20は、レスポンス値と識別情報との組を受信できない電子機器30について、結果記憶部78に異常の旨を登録してから本フローを終了してもよい。
When the combination of the response value and the identification information is not received for all the electronic devices 30 (No in S79), the
以上のように、本実施形態に係る検証装置20は、複数の電子機器30のそれぞれにおけるデータ記憶部38に記憶されている対象データが正常であるか否かを、一括して、ネットワークを介して遠隔から検証することができる。これにより、検証装置20は、多数の電子機器30を効率良く検証することができる。
As described above, the
なお、本実施形態においては、アドレス選択部54は、1個のアドレスを選択する構成であるが、第1実施形態と同様に複数のアドレスを選択してもよい。さらに、本実施形態に係る検証装置20は、第1実施形態に示す順序設定部56を備え、複数のアドレスをランダムに並べ替えたチャレンジ情報を生成してもよい。また、本実施形態に係る検証装置20は、第2実施形態に示す乱数発生部82をさらに有し、アドレスと乱数とを含むチャレンジ情報を生成してもよい。
In the present embodiment, the
(第4実施形態)
図9は、第4実施形態に係る検証装置20および電子機器30の構成を示す図である。
(Fourth embodiment)
FIG. 9 is a diagram illustrating configurations of the
第4実施形態に係る検証装置20は、第1実施形態に示す構成に加えて、繰返制御部92をさらに有する。繰返制御部92は、データ記憶部38に記憶されている選択されたアドレスの対象データが正常であると判定した場合、アドレス選択部54にさらに他の少なくとも1つのアドレスを選択させる。そして、繰返制御部92は、順序設定部56、チャレンジ生成部58、チャレンジ送信部60、レスポンス受信部70、データ抽出部72、検証値生成部74および判定部76に、新たに選択された少なくとも1つのアドレスに基づき処理を再度実行させる。
The
これにより、本実施形態に係る検証装置20は、データ記憶部38における未検証の他のアドレスに記憶されている対象データをさらに検証することができる。また、本実施形態に係る検証装置20は、データ記憶部38に記憶されている対象データが正常でないと判定された場合には、繰り返して検証をさせないので、早期に検証処理を終了させることができる。
Thereby, the
なお、第2実施形態または第3実施形態に示す検証装置20が、繰返制御部92をさらに有してもよい。これにより、第2実施形態または第3実施形態に示す検証装置20も第4実施形態と同様の効果を得ることができる。
In addition, the
図10は、実施形態に係る情報処理装置300のハードウェア構成の一例を示す図である。上述した検証装置20および電子機器30は、例えば図10に示すような情報処理装置300により実現することができる。
FIG. 10 is a diagram illustrating an example of a hardware configuration of the
情報処理装置300は、通常のコンピュータと同様の構成をしている。すなわち、情報処理装置300は、CPU302と、ROM304と、RAM306と、記憶装置308と、通信装置310とを有する。CPU302、ROM304、RAM306、記憶装置308および通信装置310は、バスにより接続されている。
The
CPU302は、記憶装置308に記憶されたプログラムをRAM306に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。ROM304には、OSの起動用プログラムを記憶装置308からRAM306に読み出すスタートプログラムが記憶されている。RAM306は、CPU302の作業領域としてデータを記憶する。
The
記憶装置308は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶装置308は、オペレーティングシステム、アプリケーションプログラムおよびデータを記憶している。これらのプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラムは、サーバからダウンロードすることにより配布されてもよい。通信装置310は、ネットワークに接続するためのインターフェイス装置である。
The
本実施形態の情報処理装置300で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置300で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置300で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ROM304等に予め組み込んで提供するように構成してもよい。
The program executed by the
情報処理装置300を検証装置20として機能させるためのプログラムは、バージョン確認モジュールと、バージョン取得モジュールと、アドレス選択モジュールと、順序設定モジュールと、チャレンジ生成モジュールと、チャレンジ送信モジュールと、レスポンス受信モジュールと、データ抽出モジュールと、検証値生成モジュールと、判定モジュールとを有する。情報処理装置300は、プロセッサ(CPU302)が記憶媒体(記憶装置308等)からプログラムを読み出して実行することにより各モジュールが主記憶装置(RAM306)上にロードされ、プロセッサ(CPU302)が、バージョン確認部44、バージョン取得部52、アドレス選択部54、順序設定部56、チャレンジ生成部58、チャレンジ送信部60、レスポンス受信部70、データ抽出部72、検証値生成部74および判定部76として機能する。また、RAM306または記憶装置308は、イメージ記憶部42および結果記憶部78として機能する。なお、バージョン確認部44、バージョン取得部52、アドレス選択部54、順序設定部56、チャレンジ生成部58、チャレンジ送信部60、レスポンス受信部70、データ抽出部72、検証値生成部74および判定部76は、一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
A program for causing the
また、情報処理装置300を電子機器30として機能させるためのプログラムは、処理実行モジュールと、確認要求受信モジュールと、バージョン記憶モジュールと、バージョン送信モジュールと、チャレンジ受信モジュールと、データ読出モジュールと、レスポンス生成モジュールと、レスポンス送信モジュールとを有する。情報処理装置300は、プロセッサ(CPU302)が記憶媒体(記憶装置308等)からプログラムを読み出して実行することにより各モジュールが主記憶装置(RAM306)上にロードされ、プロセッサ(CPU302)が、処理実行部40、確認要求受信部46、バージョン送信部50、チャレンジ受信部62、データ読出部64、レスポンス生成部66およびレスポンス送信部68として機能する。また、RAM306または記憶装置308は、データ記憶部38およびバージョン記憶部48として機能する。なお、処理実行部40、確認要求受信部46、バージョン送信部50、チャレンジ受信部62、データ読出部64、レスポンス生成部66およびレスポンス送信部68は、一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
A program for causing the
本発明のいくつかの実施形態および変形例を説明したが、これらの実施形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments and modifications of the present invention have been described, these embodiments and modifications are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
10 検証システム
20 検証装置
30 電子機器
38 データ記憶部
40 処理実行部
42 イメージ記憶部
44 バージョン確認部
46 確認要求受信部
48 バージョン記憶部
50 バージョン送信部
52 バージョン取得部
54 アドレス選択部
56 順序設定部
58 チャレンジ生成部
60 チャレンジ送信部
62 チャレンジ受信部
64 データ読出部
66 レスポンス生成部
68 レスポンス送信部
70 レスポンス受信部
72 データ抽出部
74 検証値生成部
76 判定部
78 結果記憶部
82 乱数発生部
84 グループ管理部
88 識別情報記憶部
DESCRIPTION OF
Claims (19)
前記電子機器が備えるデータ記憶部のメモリイメージを記憶するイメージ記憶部と、
前記データ記憶部における少なくとも1つのアドレスを選択するアドレス選択部と、
選択された前記少なくとも1つのアドレスを含むチャレンジ情報を生成するチャレンジ生成部と、
前記チャレンジ情報を前記電子機器にネットワークを介して送信するチャレンジ送信部と、
前記チャレンジ情報を送信したことに応じて返信されたレスポンス値を前記電子機器からネットワークを介して受信するレスポンス受信部と、
前記メモリイメージから、選択された前記少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出するデータ抽出部と、
抽出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いて検証値を生成する検証値生成部と、
前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する判定部と、
を備える検証装置。 A verification device for verifying target data stored in an electronic device that executes information processing via a network,
An image storage unit for storing a memory image of a data storage unit included in the electronic device;
An address selection unit that selects at least one address in the data storage unit;
A challenge generator for generating challenge information including the selected at least one address;
A challenge transmitter for transmitting the challenge information to the electronic device via a network;
A response receiving unit that receives a response value returned in response to transmitting the challenge information from the electronic device via a network;
A data extraction unit for extracting from the memory image at least one target data to be stored at the selected at least one address;
A verification value generation unit that generates a verification value from the extracted at least one target data using a predetermined calculation algorithm;
A determination unit that determines that the target data stored in the data storage unit is normal when the response value matches the verification value;
A verification apparatus comprising:
請求項1に記載の検証装置。 The verification apparatus according to claim 1, wherein the verification value generation unit calculates a hash value determined by the extracted at least one target data as the verification value using a predetermined hash function.
前記検証装置は、前記複数のアドレスをランダムに並べ替える順序設定部をさらに備え、
前記チャレンジ生成部は、選択された前記複数のアドレスを、並び順を識別可能に含む前記チャレンジ情報を生成し、
前記データ抽出部は、前記メモリイメージから、選択された前記複数のアドレスに記憶されているべき複数の対象データを抽出し、
前記検証値生成部は、設定された並び順で並べられた前記複数の対象データから、前記ハッシュ関数を用いて前記検証値を生成する
請求項2に記載の検証装置。 The address selection unit selects a plurality of addresses in the data storage unit,
The verification device further includes an order setting unit that randomly rearranges the plurality of addresses,
The challenge generation unit generates the challenge information including the selected addresses so that the arrangement order can be identified,
The data extraction unit extracts a plurality of target data to be stored at the selected plurality of addresses from the memory image,
The verification device according to claim 2, wherein the verification value generation unit generates the verification value from the plurality of target data arranged in a set arrangement order using the hash function.
請求項3に記載の検証装置。 The verification apparatus according to claim 3, wherein the verification value generation unit connects the extracted plurality of target data according to a set arrangement order, and supplies the connected data to the hash function to generate the verification value.
前記チャレンジ生成部は、前記少なくとも1つのアドレスおよび前記乱数を含む前記チャレンジ情報を生成し、
前記検証値生成部は、抽出した前記少なくとも1つの対象データおよび前記乱数を前記ハッシュ関数に与えて、前記検証値を生成する
請求項2に記載の検証装置。 A random number generator for generating random numbers;
The challenge generation unit generates the challenge information including the at least one address and the random number;
The verification device according to claim 2, wherein the verification value generation unit generates the verification value by giving the extracted at least one target data and the random number to the hash function.
請求項5に記載の検証装置。 The verification device according to claim 5, wherein the verification value generation unit generates the verification value by connecting the extracted at least one target data and the random number, and applying the connected data to the hash function.
前記イメージ記憶部は、バージョン毎に前記メモリイメージを記憶し、
前記データ抽出部は、取得したバージョンに対応する前記メモリイメージから、前記少なくとも1つの対象データを取得する
請求項1から6の何れか1項に記載の検証装置。 A version acquisition unit for acquiring a version of the target data stored in the data storage unit;
The image storage unit stores the memory image for each version,
The verification device according to claim 1, wherein the data extraction unit acquires the at least one target data from the memory image corresponding to the acquired version.
前記チャレンジ送信部は、前記チャレンジ情報を前記複数の電子機器のそれぞれにネットワークを介して一斉送信する
請求項1から6の何れか1項に記載の検証装置。 A group management unit for managing a plurality of electronic devices that store the same memory image;
The verification device according to any one of claims 1 to 6, wherein the challenge transmission unit transmits the challenge information to each of the plurality of electronic devices simultaneously via a network.
前記検証値生成部は、前記レスポンス値と前記識別情報との組を受信する毎に、抽出した前記少なくとも1つの対象データおよび前記識別情報を予め定められたハッシュ関数に与えて前記検証値を生成し、
前記判定部は、前記レスポンス値と前記識別情報との組を受信する毎に、前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する
請求項8に記載の検証装置。 The response receiving unit receives a set of the response value and identification information for identifying the electronic device from each of the plurality of electronic devices,
The verification value generation unit generates the verification value by giving the extracted at least one target data and the identification information to a predetermined hash function each time a set of the response value and the identification information is received. And
Each time the determination unit receives a set of the response value and the identification information, and the response value matches the verification value, the target data stored in the data storage unit is normal. The verification device according to claim 8.
請求項9に記載の検証装置。 The verification device according to claim 9, wherein the verification value generation unit connects the extracted at least one target data and the identification information, and generates the verification value by giving the connected data to the hash function.
請求項9または10に記載の検証装置。 When the determination unit receives a plurality of the response values having the same identification information, the target data stored in the data storage unit of the electronic device corresponding to the received identification information is not normal. The verification device according to claim 9 or 10.
をさらに備える請求項1から11の何れか1項に記載の検証装置。 When the determination unit determines that the target data stored at the selected address in the data storage unit is normal, the address selection unit further selects at least one other address, and Repeat control for causing the challenge generation unit, the challenge transmission unit, the response reception unit, the data extraction unit, the verification value generation unit, and the determination unit to execute the process again based on the at least one address that is newly selected. The verification device according to claim 1, further comprising: a unit.
対象データを記憶するデータ記憶部と、
前記データ記憶部に記憶されている前記対象データを読み出して情報処理を実行する処理実行部と、
前記検証装置からネットワークを介して、前記データ記憶部の少なくとも1つのアドレスを含むチャレンジ情報を受信するチャレンジ受信部と、
前記チャレンジ情報に含まれる前記少なくとも1つのアドレスの対象データを、前記データ記憶部から読み出すデータ読出部と、
読み出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いてレスポンス値を生成するレスポンス生成部と、
前記レスポンス値を前記検証装置にネットワークを介して送信するレスポンス送信部と、
を備える電子機器。 An electronic device to be verified via a network from a verification device,
A data storage unit for storing target data;
A process execution unit that reads out the target data stored in the data storage unit and executes information processing;
A challenge receiving unit for receiving challenge information including at least one address of the data storage unit from the verification device via a network;
A data reading unit for reading out the target data of the at least one address included in the challenge information from the data storage unit;
A response generation unit that generates a response value from the read at least one target data using a predetermined calculation algorithm;
A response transmitter for transmitting the response value to the verification device via a network;
Electronic equipment comprising.
請求項14に記載の電子機器。 The electronic device according to claim 14, wherein the response generation unit calculates a hash value as the response value from the read at least one target data using a predetermined hash function.
前記レスポンス生成部は、読み出した前記少なくとも1つの対象データおよび前記チャレンジ情報に含まれる前記乱数を前記ハッシュ関数に与えて、前記レスポンス値を生成する
請求項15に記載の電子機器。 The challenge receiving unit receives the challenge information including the at least one address and a random number;
The electronic device according to claim 15, wherein the response generation unit generates the response value by providing the hash function with the random number included in the read at least one target data and the challenge information.
前記レスポンス生成部は、読み出した前記少なくとも1つの対象データおよび前記識別情報を前記ハッシュ関数に与えて、前記レスポンス値を生成し、
前記レスポンス送信部は、前記レスポンス値と前記識別情報との組を前記検証装置に送信する
請求項15または16に記載の電子機器。 An identification information storage unit for storing identification information for identifying the electronic device;
The response generation unit gives the read at least one target data and the identification information to the hash function to generate the response value,
The electronic device according to claim 15 or 16, wherein the response transmission unit transmits a set of the response value and the identification information to the verification device.
前記電子機器に記憶されている対象データをネットワークを介して検証する検証装置と、
を備える検証システムであって、
前記電子機器は、
対象データを記憶するデータ記憶部と、
前記データ記憶部に記憶されている前記対象データを読み出して情報処理を実行する処理実行部と、
を備え、
前記検証装置は、
前記データ記憶部のメモリイメージを記憶するイメージ記憶部と、
前記データ記憶部における少なくとも1つのアドレスを選択するアドレス選択部と、
選択された前記少なくとも1つのアドレスを含むチャレンジ情報を生成するチャレンジ生成部と、
前記チャレンジ情報を前記電子機器にネットワークを介して送信するチャレンジ送信部と、
を備え、
前記電子機器は、
前記検証装置からネットワークを介して、前記チャレンジ情報を受信するチャレンジ受信部と、
前記チャレンジ情報に含まれる前記少なくとも1つのアドレスの対象データを、前記データ記憶部から読み出すデータ読出部と、
読み出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いてレスポンス値を生成するレスポンス生成部と、
前記レスポンス値を前記検証装置にネットワークを介して送信するレスポンス送信部と、
をさらに備え、
前記検証装置は、
前記チャレンジ情報を送信したことに応じて返信された前記レスポンス値を前記電子機器からネットワークを介して受信するレスポンス受信部と、
前記メモリイメージから、選択された前記少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出するデータ抽出部と、
抽出した前記少なくとも1つの対象データから、前記レスポンス生成部と同一の前記演算アルゴリズムを用いて検証値を生成する検証値生成部と、
前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する判定部と、
をさらに備える
検証システム。 An electronic device that executes information processing;
A verification device for verifying target data stored in the electronic device via a network;
A verification system comprising:
The electronic device is
A data storage unit for storing target data;
A process execution unit that reads out the target data stored in the data storage unit and executes information processing;
With
The verification device includes:
An image storage unit for storing a memory image of the data storage unit;
An address selection unit that selects at least one address in the data storage unit;
A challenge generator for generating challenge information including the selected at least one address;
A challenge transmitter for transmitting the challenge information to the electronic device via a network;
With
The electronic device is
A challenge receiver for receiving the challenge information from the verification device via a network;
A data reading unit for reading out the target data of the at least one address included in the challenge information from the data storage unit;
A response generation unit that generates a response value from the read at least one target data using a predetermined calculation algorithm;
A response transmitter for transmitting the response value to the verification device via a network;
Further comprising
The verification device includes:
A response receiving unit that receives the response value returned in response to transmitting the challenge information from the electronic device via a network;
A data extraction unit for extracting from the memory image at least one target data to be stored at the selected at least one address;
A verification value generation unit that generates a verification value from the extracted at least one target data using the same calculation algorithm as the response generation unit;
A determination unit that determines that the target data stored in the data storage unit is normal when the response value matches the verification value;
A verification system further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016054535A JP2017169147A (en) | 2016-03-17 | 2016-03-17 | Verification device, electronic apparatus, program, and verification system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016054535A JP2017169147A (en) | 2016-03-17 | 2016-03-17 | Verification device, electronic apparatus, program, and verification system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017169147A true JP2017169147A (en) | 2017-09-21 |
Family
ID=59913650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016054535A Pending JP2017169147A (en) | 2016-03-17 | 2016-03-17 | Verification device, electronic apparatus, program, and verification system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017169147A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521320B2 (en) | 2016-03-18 | 2019-12-31 | Kabushiki Kaisha Toshiba | Information processing device, information processing method and computer program product |
CN112910652A (en) * | 2021-01-18 | 2021-06-04 | 湖南海格力士智能科技有限公司 | Remote controller identification method and remote controller identification device |
CN113396384A (en) * | 2019-02-14 | 2021-09-14 | 罗伯特·博世有限公司 | Method and apparatus for processing data stored in a storage device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002055816A (en) * | 2000-08-08 | 2002-02-20 | Sharp Corp | Program management device, its method and storage medium to be used for the device |
JP2003087232A (en) * | 2001-09-10 | 2003-03-20 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | Method for detecting copied terminal |
US20060093144A1 (en) * | 2004-07-29 | 2006-05-04 | Wolfgang Reinelt | Communications method for at least two system components of a motor vehicle |
JP2009009541A (en) * | 2007-05-25 | 2009-01-15 | Nec Corp | Authentication system, terminal, server, authentication method, and program |
JP2013042295A (en) * | 2011-08-12 | 2013-02-28 | Sony Corp | Information processing device, information processing method, program, and recording medium |
JP2014021509A (en) * | 2012-07-12 | 2014-02-03 | Mitsubishi Electric Corp | Fraudulence detection system, terminal unit, fraudulence sensing device, computer program, and fraudulence detection method |
US20150365232A1 (en) * | 2014-06-13 | 2015-12-17 | BicDroid Inc. | Methods, systems and computer program product for providing verification code recovery and remote authentication |
JP2016019054A (en) * | 2014-07-04 | 2016-02-01 | 国立大学法人名古屋大学 | Communication system and key information sharing method |
-
2016
- 2016-03-17 JP JP2016054535A patent/JP2017169147A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002055816A (en) * | 2000-08-08 | 2002-02-20 | Sharp Corp | Program management device, its method and storage medium to be used for the device |
JP2003087232A (en) * | 2001-09-10 | 2003-03-20 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | Method for detecting copied terminal |
US20060093144A1 (en) * | 2004-07-29 | 2006-05-04 | Wolfgang Reinelt | Communications method for at least two system components of a motor vehicle |
JP2009009541A (en) * | 2007-05-25 | 2009-01-15 | Nec Corp | Authentication system, terminal, server, authentication method, and program |
JP2013042295A (en) * | 2011-08-12 | 2013-02-28 | Sony Corp | Information processing device, information processing method, program, and recording medium |
JP2014021509A (en) * | 2012-07-12 | 2014-02-03 | Mitsubishi Electric Corp | Fraudulence detection system, terminal unit, fraudulence sensing device, computer program, and fraudulence detection method |
US20150365232A1 (en) * | 2014-06-13 | 2015-12-17 | BicDroid Inc. | Methods, systems and computer program product for providing verification code recovery and remote authentication |
JP2016019054A (en) * | 2014-07-04 | 2016-02-01 | 国立大学法人名古屋大学 | Communication system and key information sharing method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521320B2 (en) | 2016-03-18 | 2019-12-31 | Kabushiki Kaisha Toshiba | Information processing device, information processing method and computer program product |
CN113396384A (en) * | 2019-02-14 | 2021-09-14 | 罗伯特·博世有限公司 | Method and apparatus for processing data stored in a storage device |
JP2022520463A (en) * | 2019-02-14 | 2022-03-30 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | Methods and devices for processing data stored in memory devices |
JP7192138B2 (en) | 2019-02-14 | 2022-12-19 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | Method and apparatus for processing data stored in memory device |
US11947807B2 (en) | 2019-02-14 | 2024-04-02 | Robert Bosch Gmbh | Method and device for processing data stored in a memory unit |
CN112910652A (en) * | 2021-01-18 | 2021-06-04 | 湖南海格力士智能科技有限公司 | Remote controller identification method and remote controller identification device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6708784B2 (en) | Authentication method, device and authentication client | |
US10073916B2 (en) | Method and system for facilitating terminal identifiers | |
JP6515100B2 (en) | Application of Circuit Delay Based Physical Unclonable Function (PUF) to Masking Operation of Memory Based PUF to Resist Invasive Clone Attack | |
CN107733847B (en) | Method and device for platform login website, computer equipment and readable storage medium | |
US10833877B2 (en) | Method of authenticating authentication-target apparatus by authentication apparatus, authentication apparatus, authentication- target apparatus, and image forming apparatus | |
US10511488B2 (en) | Device, system and method for performing integrity verification based on distributed delegator | |
US11374766B2 (en) | Devices and methods for key attestation with multiple device certificates | |
US20080301793A1 (en) | Apparatus and method of verifying online certificate for offline device | |
US20160217545A1 (en) | Model anti-collusion watermark | |
JP2017169147A (en) | Verification device, electronic apparatus, program, and verification system | |
JP2019519849A (en) | Method and device for preventing attacks on servers | |
CN115879111A (en) | Method, device and system for safe starting | |
US10708064B2 (en) | Semiconductor device, boot method, and boot program | |
WO2019239191A1 (en) | Methods, wireless modules, electronic devices and server devices | |
CN110858803B (en) | Authentication method, system, server, and computer-readable storage medium | |
US10586034B2 (en) | Network communication method and network communication system | |
CN116011000B (en) | Access method, device and computing equipment | |
CN117176472B (en) | Data tamper-proof method, device and system based on intelligent password security equipment | |
CN116795607A (en) | Page screenshot verification method and device, storage medium and electronic equipment | |
CN114387104A (en) | Cross-block-chain data pushing method and device | |
CN116192737A (en) | Micro front terminal application routing method, device, electronic equipment and storage medium | |
CN116821892A (en) | Program running method and device, electronic equipment and storage medium | |
JP2005275803A (en) | Information processing system, client device, server device, program, and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190521 |