JP2017169147A - 検証装置、電子機器、プログラムおよび検証システム - Google Patents

検証装置、電子機器、プログラムおよび検証システム Download PDF

Info

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
Application number
JP2016054535A
Other languages
English (en)
Inventor
方明 趙
Masaaki Cho
方明 趙
洋美 春木
Hiromi Haruki
洋美 春木
達之 松下
Tatsuyuki Matsushita
達之 松下
福友 中西
Fukutomo Nakanishi
福友 中西
慧 青木
Satoshi Aoki
慧 青木
俊成 高橋
Toshinari Takahashi
俊成 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016054535A priority Critical patent/JP2017169147A/ja
Publication of JP2017169147A publication Critical patent/JP2017169147A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】電子機器に記憶されている対象データを遠隔から検証する。【解決手段】実施形態に係る検証装置は、イメージ記憶部と、アドレス選択部と、チャレンジ生成部と、チャレンジ送信部と、レスポンス受信部と、データ抽出部と、検証値生成部と、判定部とを備える。イメージ記憶部は、電子機器が備えるデータ記憶部のメモリイメージを記憶する。アドレス選択部は、アドレスを選択する。チャレンジ生成部は、選択されたアドレスを含むチャレンジ情報を生成する。チャレンジ送信部は、チャレンジ情報を電子機器に送信する。レスポンス受信部は、レスポンス値を電子機器から受信する。データ抽出部は、メモリイメージから選択されたアドレスに記憶されているべき対象データを抽出する。検証値生成部は、抽出した対象データから予め定められた演算アルゴリズムを用いて検証値を生成する。判定部は、レスポンス値と検証値とが一致する場合、正常であると判定する。【選択図】図2

Description

本発明の実施形態は、検証装置、電子機器、プログラムおよび検証システムに関する。
従来より、組込機器およびIoT(Internet of Things)機器等の電子機器が知られている。このような電子機器は、プログラムを実行するプロセッサ、および、プログラムおよびデータを格納したメモリを有し、プロセッサがメモリに記憶されているプログラムを実行する。また、このような電子機器は、通信機能を有し、ネットワークを介して新たなプログラムおよびデータを受信して、メモリに記憶されているプログラムおよびデータをアップデートすることができる。
ところで、このような電子機器は、プログラムのアップデート中にエラーが発生した場合、メモリに記憶されるプログラムまたはデータに欠陥が生じてしまう可能性がある。また、このような電子機器は、ネットワークに接続されているので、サイバー攻撃者から攻撃を受けて、メモリに記憶されたプログラムまたはデータが書き換えられる恐れもある。
このため、管理者は、電子機器のメモリに記憶されているプログラムおよびデータが正常であるか否かを定期的に確認しなければならない。また、管理者は、このような確認を、電子機器の動作を停止することなく遠隔からネットワークを介して実行することが望ましい。
特開2011−238246号公報
本発明が解決しようとする課題は、情報処理を実行する電子機器に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することにある。
実施形態に係る検証装置は、情報処理を実行する電子機器に記憶されている対象データをネットワークを介して検証する。前記検証装置は、イメージ記憶部と、アドレス選択部と、チャレンジ生成部と、チャレンジ送信部と、レスポンス受信部と、データ抽出部と、検証値生成部と、判定部とを備える。前記イメージ記憶部は、前記電子機器が備えるデータ記憶部のメモリイメージを記憶する。前記アドレス選択部は、前記データ記憶部における少なくとも1つのアドレスを選択する。前記チャレンジ生成部は、選択された前記少なくとも1つのアドレスを含むチャレンジ情報を生成する。前記チャレンジ送信部は、前記チャレンジ情報を前記電子機器にネットワークを介して送信する。前記レスポンス受信部は、前記チャレンジ情報を送信したことに応じて返信されたレスポンス値を前記電子機器からネットワークを介して受信する。前記データ抽出部は、前記メモリイメージから、選択された前記少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出する。前記検証値生成部は、抽出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いて検証値を生成する。前記判定部は、前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する。
第1実施形態に係る検証システムの構成図。 第1実施形態に係る検証装置および電子機器の構成図。 第1実施形態に係る検証システムの処理の流れを示すフローチャート。 第2実施形態に係る検証装置および電子機器の構成図。 第2実施形態に係る検証システムの処理の流れを示すフローチャート。 第3実施形態に係る検証システムの構成図。 第3実施形態に係る検証装置および電子機器の構成図。 第3実施形態に係る検証システムの処理の流れを示すフローチャート。 第4実施形態に係る検証装置および電子機器の構成図。 検証装置および電子機器のハードウェア構成図。
以下、図面を参照しながら実施形態に係る検証システム10について詳細に説明する。検証システム10は、情報処理を実行する機器に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することを目的とする。
(第1実施形態)
図1は、第1実施形態に係る検証システム10を示す図である。検証システム10は、検証装置20と、電子機器30とを備える。
検証装置20は、サーバ等の情報処理装置である。検証装置20は、ネットワークを介して電子機器30との間で情報を送受信することが可能である。ネットワークは、どのようなものであってもよく、インターネット等の公衆ネットワークであっても、グループ内や建物内等においてクローズしている専用ネットワークであってもよい。
電子機器30は、組込機器およびIoT機器等の機器である。電子機器30は、プログラムを実行するプロセッサと、プログラムおよびデータを記憶するメモリを有する。電子機器30は、メモリに記憶されたプログラムおよびデータをプロセッサが実行することにより処理を実行する機能を有する。また、電子機器30は、ネットワークを介して他の装置と情報を送受信することが可能である。
例えば、電子機器30は、家庭用の電化製品、または、工業用のロボット、飛行機および車両に設けられる電子制御装置(ECU)等であってよい。電子機器30は、ハードウェアとして、CPU(Central Processing Unit)等の処理ユニット、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性記憶装置等の記憶ユニット、検証装置20と接続するための通信ユニット等を有する。このような電子機器30は、プログラムとハードウェアとが協働して、情報処理および制御を実行する。
検証装置20は、電子機器30に記憶されている対象データを、ネットワークを介して遠隔から検証する。ここで、対象のデータは、プログラムおよびプログラムにより参照されるデータを含む。対象データは、電子機器30の工場出荷時またはバージョン更新時において、メモリ上の特定のアドレスに書き込まれる。また、メモリに書き込まれた後には、次にバージョンの更新がされるまで書き換えがされない。
検証装置20は、電子機器30との間でネットワークを介して情報をやり取りして、電子機器30のメモリに、本来書き込まれているべき対象データ(プログラムおよびデータ)が記憶されているか否かを確認する。これにより、検証装置20は、電子機器30のバージョン更新の処理が失敗してメモリに記憶されている対象データに異常が生じていたり、または、サイバー攻撃等によりメモリに記憶されている対象データに異常が生じていたりすることを検出できる。
図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とを有する。
電子機器30におけるデータ記憶部38は、検証対象となる対象データ(プログラムおよびデータ)を記憶する。データ記憶部38は、例えば、不揮発性のメモリ等により実現される。不揮発性のメモリは、半導体メモリであってもよいし、ハードディスク等のディスク記録媒体であってもよい。データ記憶部38に記憶されている対象データは、工場出荷時またはバージョン更新時等に書き換えられる。
電子機器30における処理実行部40は、データ記憶部38に記憶された対象データ(プログラムおよびデータ)に基づき情報処理および制御処理等を実行する。
検証装置20におけるイメージ記憶部42は、電子機器30が備えるデータ記憶部38のメモリイメージを記憶する。ここで、メモリイメージは、データ記憶部38に記憶された対象データと、そのデータが記憶されているアドレスとの関係が検出可能な情報である。従って、メモリイメージを参照することにより、データ記憶部38上における特定のアドレスに記憶されている対象データを抽出することができる。イメージ記憶部42は、メモリイメージをどのような形式で記憶していてもよい。
また、イメージ記憶部42は、バージョン毎にメモリイメージを記憶する。例えば、イメージ記憶部42は、データ記憶部38に記憶されている対象データが更新される毎に、新たなバージョンのメモリイメージを記憶する。また、旧バージョンの対象データを記憶している電子機器30と、新バージョンの対象データを記憶している電子機器30とが混在する可能性がある場合、イメージ記憶部42は、それぞれのバージョンのメモリイメージを記憶する。
検証装置20におけるバージョン確認部44は、検証対象となる電子機器30に対してネットワークを介してバージョンの確認要求を送信する。
電子機器30における確認要求受信部46は、検証装置20からネットワークを介してバージョンの確認要求を受信する。電子機器30におけるバージョン記憶部48は、データ記憶部38に記憶されている対象データのバージョンを表すバージョン情報を記憶する。電子機器30におけるバージョン送信部50は、確認要求受信部46がバージョンの確認要求を受信した場合、バージョン記憶部48に記憶されているバージョン情報を読み出す。そして、バージョン送信部50は、読み出したバージョン情報を、ネットワークを介して検証装置20に送信する。
検証装置20におけるバージョン取得部52は、電子機器30からネットワークを介してバージョン情報を受信する。そして、バージョン取得部52は、バージョン情報を解析して、データ記憶部38に記憶されている対象データのバージョンを取得する。なお、バージョン取得部52は、電子機器30からではなく、それぞれの電子機器30のバージョンを管理する管理装置等から、バージョン情報を取得してもよい。管理装置は、ネットワーク上に存在していてもよいし、検証装置20が備えていてもよい。
検証装置20におけるアドレス選択部54は、データ記憶部38の対象データが記憶されている領域における少なくとも1つのアドレスを選択する。本実施形態においては、アドレス選択部54は、複数のアドレスを選択する。なお、アドレス選択部54は、検証を実行する毎に、任意の複数のアドレスを選択する。アドレス選択部54は、検証を実行する毎に異なるアドレスを選択する。アドレス選択部54は、検証を実行する毎に、ランダムにアドレスを選択してもよいし、例えば予め登録されたリスト等を参照して異なるアドレスを選択してもよい。なお、アドレス選択部54は、バージョン毎に対象データが記憶されている記録範囲が異なる場合には、バージョンに応じた記録範囲の中からアドレスを選択する。
検証装置20における順序設定部56は、アドレス選択部54により選択された複数のアドレスをランダムに並べ替える。なお、アドレス選択部54が1つのアドレスを選択する場合には、順序設定部56は、何ら処理を実行しない。
検証装置20におけるチャレンジ生成部58は、選択された少なくとも1つのアドレスを含むチャレンジ情報を生成する。例えば、チャレンジ生成部58は、選択された少なくとも1つのアドレスを含む配列データを、チャレンジ情報として生成する。本実施形態においては、チャレンジ生成部58は、選択された複数のアドレスを、並べられた順序を識別可能に含むチャレンジ情報を生成する。例えば、チャレンジ生成部58は、選択された複数のアドレスを、並び順に従った位置に格納した配列データを、チャレンジ情報として生成する。
検証装置20におけるチャレンジ送信部60は、チャレンジ生成部58が生成したチャレンジ情報を電子機器30にネットワークを介して送信する。
電子機器30におけるチャレンジ受信部62は、検証装置20からネットワークを介してチャレンジ情報を受信する。電子機器30におけるデータ読出部64は、チャレンジ受信部62がチャレンジ情報を受信した場合、チャレンジ情報に含まれる少なくとも1つのアドレスに記憶された対象データを、データ記憶部38から読み出す。
電子機器30におけるレスポンス生成部66は、データ読出部64が読み出した少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いてレスポンス値を生成する。
ここで、予め定められた演算アルゴリズムは、例えば、予め定められたハッシュ関数である。ハッシュ関数は、不可逆な一方向関数である。ハッシュ関数は、同一の入力値(対象データ)を、同一の出力値(ハッシュ値)へと変換する。しかし、ハッシュ関数は、出力値を入力値へ変換する逆関数は存在せず、出力値から入力値を探索することは非常に困難である。
レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した少なくとも1つの対象データにより定まるハッシュ値を、レスポンス値として算出する。本実施形態においては、レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した複数の対象データおよび設定された並び順毎によって定まるハッシュ値を、レスポンス値として算出する。例えば、レスポンス生成部66は、読み出した複数の対象データを、順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
電子機器30におけるレスポンス送信部68は、レスポンス生成部66が生成したレスポンス値を、検証装置20にネットワークを介して送信する。この場合、レスポンス生成部は、検証装置20から受信したチャレンジ情報の応答として、レスポンス値を返信する。
検証装置20におけるレスポンス受信部70は、チャレンジ情報を送信したことに応じて返信されたレスポンス値を電子機器30からネットワークを介して受信する。
検証装置20におけるデータ抽出部72は、イメージ記憶部42に記憶されているメモリイメージから、アドレス選択部54により選択された少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出する。この場合、データ抽出部72は、バージョン取得部52が取得したバージョンに対応するメモリイメージから、少なくとも1つの対象データを取得する。本実施形態においては、データ抽出部72は、アドレス選択部54により選択された複数のアドレスに記憶されているべき複数の対象データを抽出する。
検証装置20における検証値生成部74は、データ抽出部72が抽出した少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いて検証値を生成する。例えば、検証値生成部74は、予め定められたハッシュ関数を用いて、抽出した少なくとも1つの対象データにより定まるハッシュ値を、検証値として算出する。
本実施形態においては、検証値生成部74は、予め定められたハッシュ関数を用いて、抽出した複数の対象データおよび順序設定部56により設定された並び順によって定まるハッシュ値を、検証値として算出する。例えば、検証値生成部74は、抽出した複数の対象データを、順序設定部56が設定した順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
ここで、検証値生成部74が用いる演算アルゴリズムは、電子機器30におけるレスポンス生成部66が用いる演算アルゴリズムと同一である。レスポンス生成部66においてハッシュ関数を用いる場合、検証値生成部74は、同一のハッシュ関数および連結アルゴリズムを用いて検証値を生成する。
従って、電子機器30におけるデータ読出部64が読み出した少なくとも1つの対象データと、検証装置20におけるデータ抽出部72が読み出した少なくとも1つの対象データとが同一であれば、レスポンス値と検証値とは同一となる。つまり、レスポンス値と検証値とが同一であれば、データ記憶部38における選択されたアドレスに記憶されている対象データに異常はないと推定される。
検証装置20における判定部76は、レスポンス受信部70が受信したレスポンス値と、検証値生成部74が生成した検証値とを比較する。そして、判定部76は、レスポンス値と検証値とが一致する場合、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。
また、判定部76は、レスポンス値と検証値とが一致しない場合、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常ではないと判定する。すなわち、判定部76は、レスポンス値と検証値とが一致しない場合、選択された少なくとも1つのアドレスに記憶されている対象データに、更新または攻撃等の何らかの原因により異常が生じていると判定する。
結果記憶部78は、判定部76による判定結果(正常または異常)を記憶する。結果記憶部78は、検証対象となる電子機器30毎に判定結果(正常または異常)を記憶してもよい。また、結果記憶部78は、判定をしたアドレス(アドレス選択部54により選択された少なくとも1つのアドレス)と対応付けて、判定結果を記憶してもよい。
図3は、第1実施形態に係る検証システム10の処理の流れを示すフローチャートである。第1実施形態に係る検証システム10では、検証装置20および電子機器30が図3に示す流れで検証を実行する。
まず、検証装置20は、検証対象となる電子機器30に対してネットワークを介してバージョンの確認要求を送信する(S11)。
続いて、電子機器30は、検証装置20からネットワークを介してバージョンの確認要求を受信する(S12)。続いて、電子機器30は、バージョン記憶部48に記憶されているバージョン情報を読み出す(S13)。続いて、電子機器30は、検証装置20に対してネットワークを介してバージョン情報を送信する(S14)。
続いて、検証装置20は、電子機器30からバージョン情報を受信し、バージョン情報を解析してバージョンを取得する(S15)。続いて、検証装置20は、バージョン毎に記憶している複数のメモリイメージのうち、取得したバージョンに対応するメモリイメージを特定する(S16)。
続いて、検証装置20は、任意の複数のアドレスを選択する(S17)。例えば、検証装置20は、ランダムに複数のアドレスを選択する。例えば、検証装置20は、下記の式(1)に示すような3個のアドレスを選択する。
複数のアドレス=(add_1,add_3,add_8)…(1)
続いて、検証装置20は、選択された複数のアドレスをランダムに並べ替える(S18)。例えば、検証装置20は、下記の式(2)に示すように3個のアドレスを並べ替える。
並べ替え後の複数のアドレス=(add_3,add_8,add_1)…(2)
続いて、検証装置20は、選択された複数のアドレスを、ランダムに並べられた順序を識別可能に含むチャレンジ情報を生成する(S19)。例えば、検証装置20は、下記の式(3)に示すような、3個のアドレスを、並べた順序に従って先頭から格納した配列データをチャレンジ情報として生成する。
チャレンジ情報=[add_3,add_8,add_1]…(3)
続いて、検証装置20は、生成したチャレンジ情報を電子機器30にネットワークを介して送信する(S20)。
続いて、電子機器30は、検証装置20からチャレンジ情報を受信する(S21)。続いて、電子機器30は、チャレンジ情報に含まれる複数のアドレスに記憶されている対象データを、データ記憶部38から読み出す(S22)。例えば、電子機器30は、下記の式(4)に示すような、3個の対象データを読み出す。
複数の対象データ=(data_1,data_3,data_8)…(4)
続いて、電子機器30は、読み出した複数の対象データから、予め定められたハッシュ関数を用いてレスポンス値を生成する(S23)。例えば、電子機器30は、読み出した複数の対象データを、下記の式(5)に示すように、チャレンジ情報に含まれるアドレスの配置順に連結する。なお、式において、“||”は、前後のデータを連結する関数を表す。
連結されたデータ=(data_3||data_8||data_1)…(5)
そして、電子機器30は、下記の式(6)に示すように、連結されたデータを予め定められたハッシュ関数に入力して、レスポンス値を算出する。なお、式において、h(x)は、xをハッシュ関数に入力して得られるハッシュ値を表す。
レスポンス値=h(data_3||data_8||data_1)…(6)
このような演算を実行することにより、電子機器30は、レスポンス値を生成することができる。続いて、電子機器30は、生成したレスポンス値を検証装置20にネットワークを介して送信する(S24)。
続いて、検証装置20は、チャレンジ情報を送信したことに応じて返信されたレスポンス値を電子機器30からネットワークを介して受信したか否かを判断する(S25)。一定時間内にレスポンス値を受信できなかった場合(S25のNo)、検証装置20は、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でない(異常である)と判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S26)。
一方、一定時間内にレスポンス値を受信できた場合には(S25のYes)、検証装置20は、S16で特定したメモリイメージから、S17で選択した複数のアドレスに記憶されているべき対象データを抽出する(S27)。例えば、検証装置20は、下記の式(7)に示すような、3個の対象データを抽出する。
複数の対象データ=(data_1´,data_3´,data_8´)…(7)
続いて、検証装置20は、抽出した複数の対象データおよびS18により設定されたアドレスの並び順に基づき、予め定められたハッシュ関数を用いて検証値を生成する(S28)。具体的には、検証装置20は、S23において電子機器30がレスポンス値を生成した演算と同一の演算により検証値を生成する。
例えば、検証装置20は、抽出した複数の対象データを、下記の式(8)に示すように、S18で並べ替えたアドレスの配置順に連結する。
連結されたデータ=(data_3´||data_8´||data_1´)…(8)
続いて、検証装置20は、下記の式(9)に示すように、連結されたデータを、S23のレスポンス値の生成で用いたハッシュ関数と同一のハッシュ関数に入力して、検証値を算出する。
検証値=h(data_3´||data_8´||data_1´)…(9)
続いて、検証装置20は、レスポンス値と検証値とを比較する(S29)。例えば、検証装置20は、式(6)に示したレスポンス値と式(9)に示した検証値とが一致するか否かを判断する。
検証装置20は、レスポンス値と検証値とが一致する場合(S29のtrue)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。そして、検証装置20は、結果記憶部78に正常の旨を登録し、本フローを終了する(S30)。
検証装置20は、レスポンス値と検証値とが一致しない場合(S29のfalse)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でないと判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S26)。
以上のように、本実施形態に係る検証装置20は、電子機器30におけるデータ記憶部38に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することができる。特に、検証装置20が、検証を実行する毎に異なるアドレスを選択し、ランダムに並べ替えてチャレンジ情報を送信する。従って、検証装置20は、検証を実行する毎に異なるチャレンジ情報を生成することができる。このため、攻撃者は、データ記憶部38に記憶される対象データを改ざんする場合に、予めレスポンス値を準備することができない。従って、検証装置20によれば、改ざんを高い確率で検知することができる。
(第2実施形態)
図4は、第2実施形態に係る検証装置20および電子機器30の構成を示す図である。
第2実施形態に係る検証システム10は、第1実施形態に係る検証システム10と略同一の機能および構成を有する。従って、第2実施形態を説明するにあたり、第1実施形態で説明したブロックと略同一の機能および構成を有するブロックについては、同一の符号を付けて相違点を除き説明を省略する。第3実施形態以降においても同様である。
第2実施形態に係る検証装置20は、順序設定部56に代えて、乱数発生部82を有する。乱数発生部82は、検証を実行する毎に異なる乱数を発生する。
検証装置20におけるチャレンジ生成部58は、選択された少なくとも1つのアドレスおよび乱数を含むチャレンジ情報を生成する。例えば、チャレンジ生成部58は、選択された少なくとも1つのアドレスおよび乱数を含む配列データを、チャレンジ情報として生成する。
電子機器30におけるレスポンス生成部66は、データ読出部64が読み出した少なくとも1つの対象データと、チャレンジ情報に含まれる乱数とから、予め定められた演算アルゴリズムを用いてレスポンス値を生成する。例えば、レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した少なくとも1つの対象データと乱数とにより定まるハッシュ値を、レスポンス値として算出する。例えば、レスポンス生成部66は、読み出した少なくとも1つの対象データと乱数とを予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
検証装置20における検証値生成部74は、データ抽出部72が抽出した少なくとも1つの対象データと乱数発生部82により発生された乱数とから、予め定められた演算アルゴリズムを用いて検証値を生成する。例えば、検証値生成部74は、レスポンス生成部66と同一の予め定められたハッシュ関数を用いて、抽出した少なくとも1つの対象データと乱数発生部82により発生された乱数とにより定まるハッシュ値を、検証値として算出する。例えば、検証値生成部74は、抽出した少なくとも1つの対象データと乱数発生部82により発生された乱数とを予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてハッシュ値を算出する。
図5は、第2実施形態に係る検証システム10の処理の流れを示すフローチャートである。第2実施形態に係る検証システム10では、検証装置20および電子機器30が図5に示す流れで検証を実行する。
まず、検証装置20および電子機器30は、S11からS16までは、第1実施形態と同一の処理を実行する。
続いて、検証装置20は、任意のアドレスを選択する(S41)。例えば、アドレス選択部54は、ランダムにアドレスを選択する。例えば、検証装置20は、下記の式(11)に示すような1個のアドレスを選択する。
アドレス=add_1…(11)
続いて、検証装置20は、乱数を発生する(S42)。例えば、検証装置20は、下記の式(12)に示すような乱数を発生する。
乱数=RND…(12)
続いて、検証装置20は、選択されたアドレスと乱数とを含むチャレンジ情報を生成する(S43)。例えば、検証装置20は、下記の式(13)に示すような、アドレスと乱数とを格納した配列データをチャレンジ情報として生成する。
チャレンジ情報=[add_1,RND]…(13)
続いて、検証装置20は、生成したチャレンジ情報を電子機器30にネットワークを介して送信する(S44)。
続いて、電子機器30は、検証装置20からチャレンジ情報を受信する(S45)。続いて、電子機器30は、チャレンジ情報に含まれるアドレスに記憶されている対象データを、データ記憶部38から読み出す(S46)。例えば、電子機器30は、下記の式(14)に示すような、対象データを読み出す。
対象データ=(data_1)…(14)
続いて、電子機器30は、読み出した対象データおよびチャレンジ情報に含まれる乱数から、予め定められたハッシュ関数を用いてレスポンス値を生成する(S47)。例えば、電子機器30は、読み出した対象データと乱数とを、下記の式(15)に示すように予め定められた順序で連結する。
連結されたデータ=(data_1||RND)…(15)
そして、電子機器30は、下記の式(16)に示すように、連結されたデータを予め定められたハッシュ関数に入力して、レスポンス値を算出する。
レスポンス値=h(data_1||RND)…(16)
続いて、電子機器30は、生成したレスポンス値を検証装置20にネットワークを介して送信する(S48)。
続いて、検証装置20は、チャレンジ情報を送信したことに応じて返信されたレスポンス値を電子機器30からネットワークを介して受信したか否かを判断する(S49)。一定時間内にレスポンス値を受信できなかった場合(S49のNo)、検証装置20は、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でない(異常である)と判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S50)。
一方、一定時間内にレスポンス値を受信できた場合には(S49のYes)、検証装置20は、S16で特定したメモリイメージから、S41で選択したアドレスに記憶されているべき対象データを抽出する(S51)。例えば、検証装置20は、下記の式(17)に示すような対象データを抽出する。
対象データ=(data_1´)…(17)
続いて、検証装置20は、抽出した対象データおよびS42で発生した乱数から、予め定められたハッシュ関数を用いて検証値を生成する(S52)。具体的には、検証装置20は、S47において電子機器30がレスポンス値を生成した演算と同一の演算により検証値を生成する。
例えば、検証装置20は、抽出した対象データおよび乱数を、下記の式(18)に示すように、S47のレスポンス値の生成で用いた順序で連結する。
連結されたデータ=(data_1´||RND)…(18)
続いて、検証装置20は、下記の式(19)に示すように、連結されたデータを、S47のレスポンス値の生成で用いたハッシュ関数と同一のハッシュ関数に入力して、検証値を算出する。
検証値=h(data_1´||RND)…(19)
続いて、検証装置20は、レスポンス値と検証値とを比較する(S53)。例えば、検証装置20は、式(16)に示したレスポンス値と式(19)に示した検証値とが一致するか否かを判断する。
検証装置20は、レスポンス値と検証値とが一致する場合(S53のtrue)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。そして、検証装置20は、結果記憶部78に正常の旨を登録し、本フローを終了する(S54)。
検証装置20は、レスポンス値と検証値とが一致しない場合(S53のfalse)、電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常でないと判定する。そして、検証装置20は、結果記憶部78に異常の旨を登録し、本フローを終了する(S50)。
以上のように、本実施形態に係る検証装置20は、電子機器30におけるデータ記憶部38に記憶されている対象データが正常であるか否かを、ネットワークを介して遠隔から検証することができる。特に、検証装置20が、検証を実行する毎に異なるアドレスを選択し、さらに、検証を実行する毎に異なる乱数を発生してチャレンジ情報を送信する。従って、検証装置20は、検証を実行する毎に異なるチャレンジ情報を生成することができる。このため、攻撃者は、データ記憶部38に記憶される対象データを改ざんする場合に、予めレスポンス値を準備することができない。従って、検証装置20によれば、改ざんを高い確率で検知することができる。
なお、本実施形態においては、アドレス選択部54は、1個のアドレスを選択する構成であるが、第1実施形態と同様に複数のアドレスを選択してもよい。また、第1実施形態に係る検証装置20および電子機器30の構成に、第2実施形態の構成を追加してもよい。この場合、チャレンジ生成部58は、複数のアドレスをランダムに並べ替えるとともに、乱数をチャレンジ情報に含める。このようにしても、検証装置20は、改ざんを高い確率で検知することができる。
(第3実施形態)
図6は、第3実施形態に係る検証システム10を示す図である。本実施形態に係る検証システム10は、検証装置20と、複数の電子機器30とを備える。
本実施形態に係る検証装置20は、複数の電子機器30に対して一括して検証を実行する。複数の電子機器30のそれぞれには、固有の識別情報が割り当てられている。本実施形態に係る検証装置20は、複数の電子機器30を効率良く検証することができる。
図7は、第3実施形態に係る検証装置20および電子機器30の構成を示す図である。
第3実施形態に係る検証装置20は、グループ管理部84をさらに有する。また、第3実施形態に係る検証装置20は、第1実施形態と比較して、バージョン確認部44、バージョン取得部52および順序設定部56を有さない。
第3実施形態に係る電子機器30は、識別情報記憶部88をさらに有する。また、第3実施形態に係る電子機器30は、確認要求受信部46、バージョン記憶部48およびバージョン送信部50を有さない。
検証装置20におけるグループ管理部84は、同一のメモリイメージを記憶する複数の電子機器30のグループを管理する。具体的には、グループ管理部84は、グループ毎に、そのグループに属する電子機器30が記憶している対象データのバージョン、そのグループに属する複数の電子機器30のそれぞれの識別情報、および、そのグループに属する複数の電子機器30のそれぞれのネットワーク上のアドレスを記憶する。グループ管理部84は、検証対象のグループに属する電子機器30が記憶している対象データのバージョンを特定し、アドレス選択部54およびデータ抽出部72に与える。
検証装置20におけるチャレンジ生成部58は、選択された少なくとも1つのアドレスを含むチャレンジ情報を生成する。検証装置20におけるチャレンジ送信部60は、検証対象のグループに属する複数の電子機器30のそれぞれのネットワーク上のアドレスを取得する。そして、チャレンジ送信部60は、複数の電子機器30のそれぞれにチャレンジ情報を一斉送信する。例えば、チャレンジ送信部60は、チャレンジ情報をマルチキャスト送信またはブロードキャスト送信をする。
電子機器30における識別情報記憶部88は、自身に割り当てられた識別情報を記憶する。電子機器30におけるレスポンス生成部66は、識別情報記憶部88から識別情報を取得する。
レスポンス生成部66は、データ読出部64が読み出した少なくとも1つの対象データと識別情報とから、予め定められた演算アルゴリズムを用いてレスポンス値を生成する。例えば、レスポンス生成部66は、予め定められたハッシュ関数を用いて、読み出した少なくとも1つの対象データと識別情報とにより定まるハッシュ値を、レスポンス値として算出する。例えば、レスポンス生成部66は、読み出した少なくとも1つの対象データと識別情報とを予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えてレスポンス値を生成する。
電子機器30におけるレスポンス送信部68は、レスポンス生成部66が生成したレスポンス値と、識別情報記憶部88に記憶された識別情報との組を、検証装置20にネットワークを介して送信する。
検証装置20におけるレスポンス受信部70は、レスポンス値と識別情報との組を、検証対象のグループに属する複数の電子機器30のそれぞれからネットワークを介して受信する。
検証装置20における検証値生成部74は、レスポンス値と識別情報との組を受信する毎に、検証値を生成する。検証値生成部74は、データ抽出部72が抽出した少なくとも1つの対象データと、電子機器30から受信した識別情報とから、予め定められた演算アルゴリズムを用いて検証値を生成する。
例えば、検証値生成部74は、レスポンス生成部66と同一の予め定められたハッシュ関数を用いて、抽出した少なくとも1つの対象データと受信した識別情報とにより定まるハッシュ値を、検証値として算出する。例えば、検証値生成部74は、抽出した少なくとも1つの対象データと受信した識別情報とを、予め定められた順序に従って連結して1つのデータを生成し、連結されたデータをハッシュ関数に与えて検証値を算出する。
検証装置20における判定部76は、レスポンス値と識別情報との組を受信する毎に、レスポンス受信部70が受信したレスポンス値と、検証値生成部74が生成した検証値とを比較する。そして、判定部76は、レスポンス値と検証値とが一致する場合、受信した識別情報に対応する電子機器30について、データ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常であると判定する。
また、判定部76は、レスポンス値と検証値とが一致しない場合、受信した識別情報に対応する電子機器30について、データ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常ではないと判定する。また、判定部76は、識別情報が同一である複数のレスポンス値を受信した場合、受信した識別情報に対応する電子機器30のデータ記憶部38に記憶されている対象データが正常ではないと判定する。
結果記憶部78は、複数の電子機器30毎に判定結果(正常または異常)を記憶する。
図8は、第3実施形態に係る検証システム10の処理の流れを示すフローチャートである。第3実施形態に係る検証システム10では、検証装置20および電子機器30が図8に示す流れで検証を実行する。
まず、検証装置20は、検証対象のグループを特定する(S61)。続いて、検証装置20は、グループに属する電子機器30が有するデータ記憶部38が記憶している対象データのバージョンから、対応するメモリイメージを特定する(S62)。
続いて、検証装置20は、任意のアドレスを選択する(S63)。例えば、アドレス選択部54は、検証をする毎にランダムにアドレスを選択する。例えば、検証装置20は、下記の式(21)に示すような1個のアドレスを選択する。
アドレス=(add_1)…(21)
続いて、検証装置20は、選択されたアドレスを含むチャレンジ情報を生成する(S64)。例えば、検証装置20は、下記の式(22)に示すような、1個のアドレスを含む対象データをチャレンジ情報として生成する。
チャレンジ情報=[add_1]…(22)
続いて、検証装置20は、生成したチャレンジ情報を、検証対象のグループに属する複数の電子機器30のそれぞれに、ネットワークを介して一斉送信する(S65)。例えば、検証装置20は、チャレンジ情報をマルチキャスト送信またはブロードキャスト送信をする。
続いて、それぞれの電子機器30は、検証装置20からチャレンジ情報を受信する(S66)。続いて、それぞれの電子機器30は、チャレンジ情報に含まれるアドレスに記憶されている対象データを、データ記憶部38から読み出す(S67)。例えば、それぞれの電子機器30は、下記の式(23)に示すような、対象データを読み出す。
対象データ=(data_1)…(23)
続いて、それぞれの電子機器30は、自身に割り当てられている識別情報を取得する(S68)。識別情報は、電子機器30毎に異なる値である。例えば、それぞれの電子機器30は、下記の式(24)に示すような識別情報を取得する。
識別情報=(id_i)…(24)
続いて、それぞれの電子機器30は、読み出した対象データおよび識別情報から、予め定められたハッシュ関数を用いてレスポンス値を生成する(S69)。例えば、それぞれの電子機器30は、読み出した対象データと識別情報とを、下記の式(25)に示すように、予め定められた順序で連結する。
連結されたデータ=(data_1||id_i)…(25)
そして、それぞれの電子機器30は、下記の式(26)に示すように、連結されたデータを予め定められたハッシュ関数に入力して、レスポンス値を算出する。
レスポンス値=h(data_1||id_i)…(26)
続いて、それぞれの電子機器30は、生成したレスポンス値と、取得した識別情報との組を検証装置20にネットワークを介して送信する(S70)。例えば、それぞれの電子機器30は、下記の式(27)に示すような情報を検証装置20に送信する。
送信情報=(h(data_1||id_i),id_i)…(27)
続いて、検証装置20は、何れかの電子機器30から、レスポンス値と識別情報との組を受信したか否かを判断する(S71)。検証装置20は、レスポンス値と識別情報との組が受信できない場合(S71のNo)、処理をS71で待機し、レスポンス値と識別情報との組が受信できた場合(S71のYes)、処理をS72に進める。すなわち、検証装置20は、レスポンス値と識別情報との組を受信する毎に、S72以降の処理を実行する。
レスポンス値と識別情報との組を受信した場合、検証装置20は、受信した情報の中から識別情報を抽出する(S72)。続いて、検証装置20は、抽出した識別情報を既に受信しているか否かを判断する(S73)。すなわち、検証装置20は、識別情報が同一である複数のレスポンス値を受信したか否かを判断する。同一の識別情報を既に受信している場合(S73のYes)、悪意の第三者が何れかの電子機器30から送信された情報をコピーした可能性があるので、検証装置20は、受信した識別情報に対応する電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが異常である旨を結果記憶部78に登録する(S74)。
同一の識別情報を未だ受信していない場合(S73のNo)、検証装置20は、S62で特定したメモリイメージから、S63で選択したアドレスに記憶されているべき対象データを抽出する(S75)。例えば、検証装置20は、下記の式(28)に示すような対象データを抽出する。
対象データ=(data_1´)…(28)
続いて、検証装置20は、抽出した対象データおよびS72で抽出した識別情報から、予め定められたハッシュ関数を用いて検証値を算出する(S76)。ここでは、検証装置20は、S69において電子機器30がレスポンス値を生成した演算と同一の演算により検証値を生成する。
例えば、検証装置20は、抽出した対象データおよび識別情報を、下記の式(29)に示すように、S69のレスポンス値の生成で用いた順序と同一の順序で連結する。
連結されたデータ=(data_1´||id_i)…(29)
続いて、検証装置20は、下記の式(30)に示すように、連結されたデータを、S69のレスポンス値の生成で用いたハッシュ関数と同一のハッシュ関数に入力して、検証値を算出する。
検証値=h(data_1´||id_i)…(30)
続いて、検証装置20は、レスポンス値と検証値とを比較する(S77)。例えば、検証装置20は、式(26)に示したレスポンス値と式(30)に示した検証値とが一致するか否かを判断する。
検証装置20は、レスポンス値と検証値とが一致する場合(S77のtrue)、受信した識別情報に対応する電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが正常である旨を結果記憶部78に登録する(S78)。検証装置20は、レスポンス値と検証値とが一致しない場合(S77のfalse)、受信した識別情報に対応する電子機器30におけるデータ記憶部38の選択された少なくとも1つのアドレスに記憶されている対象データが異常である旨を結果記憶部78に登録する(S74)。
S74またはS78の処理に続いて、検証装置20は、グループに属する複数の電子機器30の全てについて、レスポンス値と識別情報との組を受信したか否かを判断する(S79)。全ての電子機器30について、レスポンス値と識別情報との組を受信した場合には(S79のYes)、検証装置20は、本フローを終了する。
全ての電子機器30について、レスポンス値と識別情報との組を受信していない場合には(S79のNo)、検証装置20は、処理をS71に戻し、処理を繰り返す。なお、S71において、一定時間を経過してもレスポンス値と識別情報との組を受信できない場合(S71のNo)、検証装置20は、強制的に本フローを終了してもよい。この場合、検証装置20は、レスポンス値と識別情報との組を受信できない電子機器30について、結果記憶部78に異常の旨を登録してから本フローを終了してもよい。
以上のように、本実施形態に係る検証装置20は、複数の電子機器30のそれぞれにおけるデータ記憶部38に記憶されている対象データが正常であるか否かを、一括して、ネットワークを介して遠隔から検証することができる。これにより、検証装置20は、多数の電子機器30を効率良く検証することができる。
なお、本実施形態においては、アドレス選択部54は、1個のアドレスを選択する構成であるが、第1実施形態と同様に複数のアドレスを選択してもよい。さらに、本実施形態に係る検証装置20は、第1実施形態に示す順序設定部56を備え、複数のアドレスをランダムに並べ替えたチャレンジ情報を生成してもよい。また、本実施形態に係る検証装置20は、第2実施形態に示す乱数発生部82をさらに有し、アドレスと乱数とを含むチャレンジ情報を生成してもよい。
(第4実施形態)
図9は、第4実施形態に係る検証装置20および電子機器30の構成を示す図である。
第4実施形態に係る検証装置20は、第1実施形態に示す構成に加えて、繰返制御部92をさらに有する。繰返制御部92は、データ記憶部38に記憶されている選択されたアドレスの対象データが正常であると判定した場合、アドレス選択部54にさらに他の少なくとも1つのアドレスを選択させる。そして、繰返制御部92は、順序設定部56、チャレンジ生成部58、チャレンジ送信部60、レスポンス受信部70、データ抽出部72、検証値生成部74および判定部76に、新たに選択された少なくとも1つのアドレスに基づき処理を再度実行させる。
これにより、本実施形態に係る検証装置20は、データ記憶部38における未検証の他のアドレスに記憶されている対象データをさらに検証することができる。また、本実施形態に係る検証装置20は、データ記憶部38に記憶されている対象データが正常でないと判定された場合には、繰り返して検証をさせないので、早期に検証処理を終了させることができる。
なお、第2実施形態または第3実施形態に示す検証装置20が、繰返制御部92をさらに有してもよい。これにより、第2実施形態または第3実施形態に示す検証装置20も第4実施形態と同様の効果を得ることができる。
図10は、実施形態に係る情報処理装置300のハードウェア構成の一例を示す図である。上述した検証装置20および電子機器30は、例えば図10に示すような情報処理装置300により実現することができる。
情報処理装置300は、通常のコンピュータと同様の構成をしている。すなわち、情報処理装置300は、CPU302と、ROM304と、RAM306と、記憶装置308と、通信装置310とを有する。CPU302、ROM304、RAM306、記憶装置308および通信装置310は、バスにより接続されている。
CPU302は、記憶装置308に記憶されたプログラムをRAM306に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。ROM304には、OSの起動用プログラムを記憶装置308からRAM306に読み出すスタートプログラムが記憶されている。RAM306は、CPU302の作業領域としてデータを記憶する。
記憶装置308は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶装置308は、オペレーティングシステム、アプリケーションプログラムおよびデータを記憶している。これらのプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラムは、サーバからダウンロードすることにより配布されてもよい。通信装置310は、ネットワークに接続するためのインターフェイス装置である。
本実施形態の情報処理装置300で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置300で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置300で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ROM304等に予め組み込んで提供するように構成してもよい。
情報処理装置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は、一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
また、情報処理装置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は、一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
本発明のいくつかの実施形態および変形例を説明したが、これらの実施形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
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 識別情報記憶部

Claims (19)

  1. 情報処理を実行する電子機器に記憶されている対象データをネットワークを介して検証する検証装置であって、
    前記電子機器が備えるデータ記憶部のメモリイメージを記憶するイメージ記憶部と、
    前記データ記憶部における少なくとも1つのアドレスを選択するアドレス選択部と、
    選択された前記少なくとも1つのアドレスを含むチャレンジ情報を生成するチャレンジ生成部と、
    前記チャレンジ情報を前記電子機器にネットワークを介して送信するチャレンジ送信部と、
    前記チャレンジ情報を送信したことに応じて返信されたレスポンス値を前記電子機器からネットワークを介して受信するレスポンス受信部と、
    前記メモリイメージから、選択された前記少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出するデータ抽出部と、
    抽出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いて検証値を生成する検証値生成部と、
    前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する判定部と、
    を備える検証装置。
  2. 前記検証値生成部は、予め定められたハッシュ関数を用いて、抽出した前記少なくとも1つの対象データにより定まるハッシュ値を前記検証値として算出する
    請求項1に記載の検証装置。
  3. 前記アドレス選択部は、前記データ記憶部における複数のアドレスを選択し、
    前記検証装置は、前記複数のアドレスをランダムに並べ替える順序設定部をさらに備え、
    前記チャレンジ生成部は、選択された前記複数のアドレスを、並び順を識別可能に含む前記チャレンジ情報を生成し、
    前記データ抽出部は、前記メモリイメージから、選択された前記複数のアドレスに記憶されているべき複数の対象データを抽出し、
    前記検証値生成部は、設定された並び順で並べられた前記複数の対象データから、前記ハッシュ関数を用いて前記検証値を生成する
    請求項2に記載の検証装置。
  4. 前記検証値生成部は、抽出した前記複数の対象データを設定された並び順に従って連結し、連結されたデータを前記ハッシュ関数に与えて前記検証値を生成する
    請求項3に記載の検証装置。
  5. 乱数を発生する乱数発生部をさらに備え、
    前記チャレンジ生成部は、前記少なくとも1つのアドレスおよび前記乱数を含む前記チャレンジ情報を生成し、
    前記検証値生成部は、抽出した前記少なくとも1つの対象データおよび前記乱数を前記ハッシュ関数に与えて、前記検証値を生成する
    請求項2に記載の検証装置。
  6. 前記検証値生成部は、抽出した前記少なくとも1つの対象データと前記乱数とを連結し、連結されたデータを前記ハッシュ関数に与えて前記検証値を生成する
    請求項5に記載の検証装置。
  7. 前記データ記憶部に記憶されている対象データのバージョンを取得するバージョン取得部をさらに備え、
    前記イメージ記憶部は、バージョン毎に前記メモリイメージを記憶し、
    前記データ抽出部は、取得したバージョンに対応する前記メモリイメージから、前記少なくとも1つの対象データを取得する
    請求項1から6の何れか1項に記載の検証装置。
  8. 同一の前記メモリイメージを記憶する複数の電子機器を管理するグループ管理部をさらに備え、
    前記チャレンジ送信部は、前記チャレンジ情報を前記複数の電子機器のそれぞれにネットワークを介して一斉送信する
    請求項1から6の何れか1項に記載の検証装置。
  9. 前記レスポンス受信部は、前記複数の電子機器のそれぞれから、前記レスポンス値と前記電子機器を識別する識別情報との組を受信し、
    前記検証値生成部は、前記レスポンス値と前記識別情報との組を受信する毎に、抽出した前記少なくとも1つの対象データおよび前記識別情報を予め定められたハッシュ関数に与えて前記検証値を生成し、
    前記判定部は、前記レスポンス値と前記識別情報との組を受信する毎に、前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する
    請求項8に記載の検証装置。
  10. 前記検証値生成部は、抽出した前記少なくとも1つの対象データと前記識別情報とを連結し、連結されたデータを前記ハッシュ関数に与えて前記検証値を生成する
    請求項9に記載の検証装置。
  11. 前記判定部は、前記識別情報が同一である複数の前記レスポンス値を受信した場合、受信した前記識別情報に対応する前記電子機器の前記データ記憶部に記憶されている対象データが正常ではないと判定する
    請求項9または10に記載の検証装置。
  12. 前記判定部が、前記データ記憶部における選択されたアドレスに記憶されている対象データが正常であると判定した場合、前記アドレス選択部にさらに他の少なくとも1つのアドレスを新たに選択させて、前記チャレンジ生成部、前記チャレンジ送信部、前記レスポンス受信部、前記データ抽出部、前記検証値生成部および前記判定部に、新たに選択された前記少なくとも1つのアドレスに基づき処理を再度実行させる繰返制御部
    をさらに備える請求項1から11の何れか1項に記載の検証装置。
  13. 情報処理装置を請求項1から12の何れか1項に記載の検証装置として機能させるためのプログラム。
  14. 検証装置からネットワークを介して検証がされる電子機器であって、
    対象データを記憶するデータ記憶部と、
    前記データ記憶部に記憶されている前記対象データを読み出して情報処理を実行する処理実行部と、
    前記検証装置からネットワークを介して、前記データ記憶部の少なくとも1つのアドレスを含むチャレンジ情報を受信するチャレンジ受信部と、
    前記チャレンジ情報に含まれる前記少なくとも1つのアドレスの対象データを、前記データ記憶部から読み出すデータ読出部と、
    読み出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いてレスポンス値を生成するレスポンス生成部と、
    前記レスポンス値を前記検証装置にネットワークを介して送信するレスポンス送信部と、
    を備える電子機器。
  15. 前記レスポンス生成部は、予め定められたハッシュ関数を用いて、読み出した前記少なくとも1つの対象データからハッシュ値を、前記レスポンス値として算出する
    請求項14に記載の電子機器。
  16. 前記チャレンジ受信部は、前記少なくとも1つのアドレスおよび乱数を含む前記チャレンジ情報を受信し、
    前記レスポンス生成部は、読み出した前記少なくとも1つの対象データおよび前記チャレンジ情報に含まれる前記乱数を前記ハッシュ関数に与えて、前記レスポンス値を生成する
    請求項15に記載の電子機器。
  17. 前記電子機器を識別する識別情報を記憶する識別情報記憶部をさらに備え、
    前記レスポンス生成部は、読み出した前記少なくとも1つの対象データおよび前記識別情報を前記ハッシュ関数に与えて、前記レスポンス値を生成し、
    前記レスポンス送信部は、前記レスポンス値と前記識別情報との組を前記検証装置に送信する
    請求項15または16に記載の電子機器。
  18. 情報処理装置を請求項14から17の何れか1項に記載の電子機器として機能させるためのプログラム。
  19. 情報処理を実行する電子機器と、
    前記電子機器に記憶されている対象データをネットワークを介して検証する検証装置と、
    を備える検証システムであって、
    前記電子機器は、
    対象データを記憶するデータ記憶部と、
    前記データ記憶部に記憶されている前記対象データを読み出して情報処理を実行する処理実行部と、
    を備え、
    前記検証装置は、
    前記データ記憶部のメモリイメージを記憶するイメージ記憶部と、
    前記データ記憶部における少なくとも1つのアドレスを選択するアドレス選択部と、
    選択された前記少なくとも1つのアドレスを含むチャレンジ情報を生成するチャレンジ生成部と、
    前記チャレンジ情報を前記電子機器にネットワークを介して送信するチャレンジ送信部と、
    を備え、
    前記電子機器は、
    前記検証装置からネットワークを介して、前記チャレンジ情報を受信するチャレンジ受信部と、
    前記チャレンジ情報に含まれる前記少なくとも1つのアドレスの対象データを、前記データ記憶部から読み出すデータ読出部と、
    読み出した前記少なくとも1つの対象データから、予め定められた演算アルゴリズムを用いてレスポンス値を生成するレスポンス生成部と、
    前記レスポンス値を前記検証装置にネットワークを介して送信するレスポンス送信部と、
    をさらに備え、
    前記検証装置は、
    前記チャレンジ情報を送信したことに応じて返信された前記レスポンス値を前記電子機器からネットワークを介して受信するレスポンス受信部と、
    前記メモリイメージから、選択された前記少なくとも1つのアドレスに記憶されているべき少なくとも1つの対象データを抽出するデータ抽出部と、
    抽出した前記少なくとも1つの対象データから、前記レスポンス生成部と同一の前記演算アルゴリズムを用いて検証値を生成する検証値生成部と、
    前記レスポンス値と前記検証値とが一致する場合、前記データ記憶部に記憶されている対象データが正常であると判定する判定部と、
    をさらに備える
    検証システム。
JP2016054535A 2016-03-17 2016-03-17 検証装置、電子機器、プログラムおよび検証システム Pending JP2017169147A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016054535A JP2017169147A (ja) 2016-03-17 2016-03-17 検証装置、電子機器、プログラムおよび検証システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016054535A JP2017169147A (ja) 2016-03-17 2016-03-17 検証装置、電子機器、プログラムおよび検証システム

Publications (1)

Publication Number Publication Date
JP2017169147A true JP2017169147A (ja) 2017-09-21

Family

ID=59913650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016054535A Pending JP2017169147A (ja) 2016-03-17 2016-03-17 検証装置、電子機器、プログラムおよび検証システム

Country Status (1)

Country Link
JP (1) JP2017169147A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
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 (zh) * 2021-01-18 2021-06-04 湖南海格力士智能科技有限公司 遥控器识别方法及遥控器识别装置
CN113396384A (zh) * 2019-02-14 2021-09-14 罗伯特·博世有限公司 用于处理存储装置中存储的数据的方法和设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055816A (ja) * 2000-08-08 2002-02-20 Sharp Corp プログラム管理装置及び方法並びにこれに利用される記憶媒体
JP2003087232A (ja) * 2001-09-10 2003-03-20 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 複製端末発見方法
US20060093144A1 (en) * 2004-07-29 2006-05-04 Wolfgang Reinelt Communications method for at least two system components of a motor vehicle
JP2009009541A (ja) * 2007-05-25 2009-01-15 Nec Corp 認証システム、端末、サーバ、認証方法、及びプログラム
JP2013042295A (ja) * 2011-08-12 2013-02-28 Sony Corp 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP2014021509A (ja) * 2012-07-12 2014-02-03 Mitsubishi Electric Corp 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法
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 (ja) * 2014-07-04 2016-02-01 国立大学法人名古屋大学 通信システム及び鍵情報共有方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055816A (ja) * 2000-08-08 2002-02-20 Sharp Corp プログラム管理装置及び方法並びにこれに利用される記憶媒体
JP2003087232A (ja) * 2001-09-10 2003-03-20 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 複製端末発見方法
US20060093144A1 (en) * 2004-07-29 2006-05-04 Wolfgang Reinelt Communications method for at least two system components of a motor vehicle
JP2009009541A (ja) * 2007-05-25 2009-01-15 Nec Corp 認証システム、端末、サーバ、認証方法、及びプログラム
JP2013042295A (ja) * 2011-08-12 2013-02-28 Sony Corp 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP2014021509A (ja) * 2012-07-12 2014-02-03 Mitsubishi Electric Corp 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法
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 (ja) * 2014-07-04 2016-02-01 国立大学法人名古屋大学 通信システム及び鍵情報共有方法

Cited By (7)

* Cited by examiner, † Cited by third party
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 (zh) * 2019-02-14 2021-09-14 罗伯特·博世有限公司 用于处理存储装置中存储的数据的方法和设备
JP2022520463A (ja) * 2019-02-14 2022-03-30 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング メモリ装置内に保存されているデータを処理するための方法及び装置
JP7192138B2 (ja) 2019-02-14 2022-12-19 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング メモリ装置内に保存されているデータを処理するための方法及び装置
US11947807B2 (en) 2019-02-14 2024-04-02 Robert Bosch Gmbh Method and device for processing data stored in a memory unit
CN113396384B (zh) * 2019-02-14 2025-06-06 罗伯特·博世有限公司 用于处理存储装置中存储的数据的方法和设备
CN112910652A (zh) * 2021-01-18 2021-06-04 湖南海格力士智能科技有限公司 遥控器识别方法及遥控器识别装置

Similar Documents

Publication Publication Date Title
US10073916B2 (en) Method and system for facilitating terminal identifiers
JP6708784B2 (ja) 認証方法、装置及び認証クライアント
JP6515100B2 (ja) 侵襲的なクローンアタックに抵抗するためのメモリベースpufのマスキング演算への回路遅延ベース物理的クローン化不能関数(puf)の適用
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
CN111149106B (zh) 使用多个设备证书进行密钥认证的设备和方法
US20080301793A1 (en) Apparatus and method of verifying online certificate for offline device
US10229467B2 (en) Model anti-collusion watermark
CN110690974A (zh) 基于区块链的数据验证方法、装置、设备及可读存储介质
US10708064B2 (en) Semiconductor device, boot method, and boot program
JP2017169147A (ja) 検証装置、電子機器、プログラムおよび検証システム
JP2019519849A (ja) サーバへの攻撃を防ぐ方法及びデバイス
CN117176472B (zh) 基于智能密码安全设备数据防篡改方法、装置及系统
CN113327108B (zh) 一种交易处理方法、相关设备及计算机可存储介质
CN110858803B (zh) 认证方法、系统、服务器和计算机可读存储介质
CN116795607A (zh) 页面截图的校验方法和装置、存储介质及电子设备
US10586034B2 (en) Network communication method and network communication system
CN116011000B (zh) 访问方法、装置、及计算设备
CN117896145B (zh) 一种模拟攻击的测试方法、系统、设备及存储介质
US12489638B2 (en) Detection system, detection device, detection method, and detection program
CN114387104B (zh) 跨区块链的数据推送方法及装置
WO2025121244A1 (ja) エッジネットワーク管理ノード、アプリケーション装置、通信システム、通信方法及びプログラム
CN116192737A (zh) 微前端子应用路由方法、装置、电子设备和存储介质
HK40050568B (en) A transaction processing method, related devices and computer storable medium
CN112637184A (zh) 安全认证系统、方法、装置、设备和计算机可读存储介质

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