JP7327490B2 - 検証装置、検証システム、検証方法および検証プログラム - Google Patents

検証装置、検証システム、検証方法および検証プログラム Download PDF

Info

Publication number
JP7327490B2
JP7327490B2 JP2021543848A JP2021543848A JP7327490B2 JP 7327490 B2 JP7327490 B2 JP 7327490B2 JP 2021543848 A JP2021543848 A JP 2021543848A JP 2021543848 A JP2021543848 A JP 2021543848A JP 7327490 B2 JP7327490 B2 JP 7327490B2
Authority
JP
Japan
Prior art keywords
target device
storage
verification
hash value
block
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.)
Active
Application number
JP2021543848A
Other languages
English (en)
Other versions
JPWO2021044529A1 (ja
Inventor
真奈美 伊藤
公洋 山越
浩義 瀧口
毅 中津留
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021044529A1 publication Critical patent/JPWO2021044529A1/ja
Application granted granted Critical
Publication of JP7327490B2 publication Critical patent/JP7327490B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、検証装置、検証システム、検証方法および検証プログラムに関する。
近年、IoT(Internet of Things)の普及等により、組み込み機器において、マルウェアおよびソフトウェア改ざんを検知してセキュリティ対策を行うことが重要になっている。一方、組み込みシステムは、コスト等の観点から、耐タンパ性を備えたハードウェアの組み込みが難しく、サーバ等の汎用PCに比べ機能拡張が困難である。そこで、特別なハードウェアを利用せずに、機器にインストールされたソフトウェアが予め定義された正しい状態から乖離しているか否かを外部から検証するホワイトリスト型の検知技術が期待されている(非特許文献1)。
A.Seshadri, A.Perrig, L.van Doorn, P.Khosla, "SWATT: SoftWare-based ATTestation for Embedded Devices", USA, IEEE Symposium on Security and Privacy, 2004.Proceedings, 2004年, pp.272-282 Ling Ren, Srinivas Devadas, "Proof of Space from Stacked Expanders", Theory of Cryptography Conference,ドイツ, 2016年, p.262-285 Stefan Dziembowski, Sebastian Faust, Vladimir Kolmogorov, Krzysztof Pietrzak, "Proofs of Space", Annual Cryptology Conference, ドイツ, 2015年, pp.585-605
しかしながら、従来の技術では、組み込み機器のソフトウェアの改ざんの有無を、機器の外部から検証することが困難な場合がある。例えば、非特許文献1に記載の技術によれば、機器のストレージのソフトウェア領域が改ざんされていないことは証明できるものの、空き領域に不正ソフトウェアが追加されていないことの証明は困難である。
本発明は、上記に鑑みてなされたものであって、組み込み機器のソフトウェアの改ざんの有無を機器の外部から検証することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る検証装置は、対象機器のストレージの空き領域のサイズと、該ストレージに格納されているソフトウェアとを記憶する記憶部と、前記対象機器のストレージの空き領域のサイズに応じた数のノードで構成されるグラフを生成し、該対象機器に送信する生成部と、前記対象機器のストレージに格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する算出部と、算出された前記ブロックに対応するハッシュ値と、前記グラフのノードを指定したチャレンジに対して前記対象機器から返送された前記グラフを用いて算出されたレスポンス、および、前記ブロックを指定したチャレンジに対するレスポンスとして前記対象機器から返送された該ブロックに対応するハッシュ値とを用いて、前記対象機器のストレージの改ざんの有無を検証する検証部と、を有することを特徴とする。
本発明によれば、組み込み機器のソフトウェアの改ざんの有無を機器の外部から検証することが容易に可能となる。
図1は、本実施形態の検証システムの概略構成を例示する模式図である。 図2は、生成部の処理を説明するための図である。 図3は、検証処理の概要を説明するための図である。 図4は、検証処理手順を示すシーケンス図である。 図5は、検証プログラムを実行するコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[検証システムの構成]
図1は、本実施形態の検証システムの概略構成を例示する模式図である。図1に示すように、検証システム1は、検証装置10と対象機器20とを有する。対象機器20は、後述する検証処理の対象とするIoT機器等のソフトウェア組み込み機器である。ここで、本実施形態において、プログラムおよびデータをまとめてソフトウェアと記す。また、対象機器20のストレージ21において、ソフトウェアを格納する領域をソフトウェア領域と記す。
検証装置10は、後述する検証処理により、対象機器20のソフトウェア領域に改ざんがなく空き領域への不正ソフトウェアが追加されていないかを検証する。これにより、検証装置10は、対象機器20のプログラムおよびデータの改ざんや不正プログラムおよびデータの追加がないか否か、すなわち対象機器20のソフトウェア改ざんの有無の検証を、対象機器20の外部から行うことが可能となる。
[検証装置の構成]
図1は、本実施形態の検証装置の概略構成を例示する模式図である。図1に例示するように、本実施形態の検証装置10は、パソコン等の汎用コンピュータで実現され、記憶部11と制御部12と、不図示の通信制御部とを備える。
記憶部11は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部11には、検証装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。本実施形態では、記憶部11は、対象機器20のストレージ21の空き領域のサイズと、該ストレージ21に格納されているソフトウェアとを記憶する。
このソフトウェアには、対象機器20を後述する検証処理の対象として動作させるためのプログラムである検証プログラムが含まれる。また、ソフトウェア領域は、アドレス等によって任意のブロックに分割されている。ブロックxにはデータd(x)が格納されているものとする。
通信制御部は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した対象機器20等の外部の装置と制御部12との通信を制御する。
制御部12は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部12は、図1に例示するように、生成部12a、算出部12b、および検証部12cとして機能する。なお、これらの機能部は、それぞれ、あるいは一部が異なるハードウェアに実装されてもよい。また、制御部12は、その他の機能部を備えてもよい。
生成部12aは、対象機器20のストレージ21の空き領域のサイズに応じた数のノードで構成されるグラフを生成し、対象機器20に送信する。
まず、有向非巡回グラフG=(V,E)対するグラフラベリングについて説明する。ここで、VはGに含まれるノードの集合、Eはエッジの集合である。Vに含まれるノードの個数を|V|=Nとして、各ノードに1~Nの数値でラベリングする。また、すべてのノードv∈Vに対して、数値ω(v)∈{1,0}λを対応させる。λはハッシュ値のサイズである。
ここで、サブセットV’={v,…,v},v⊂Vについて、ω(V’)={(ω(v),…,ω(v)}と定義する。また、vの親ノードの集合π(v)={v’|(v’,v)∈E}と定義する。また、各ノードに対応する数値ω(v)=H(v,ω(v,π(v)))と定義する。ここで、Hはハッシュ関数H:{1,0}→{1,0}λである。
本実施形態では、有向非巡回グラフとして、非特許文献2で提案されているLocalized Stacked Expanders LG(n,k,α,β)を用いる。Localized Stacked Expandersは、ノード数nの有向二部グラフlocalized Bipartite Expander LBG(n,α,β)をk+1個含むノード数n(k+1)のグラフである。
Localized Stacked Expandersを用いれば、全てのノードvにおけるω(v)を算出するために、一定以上のメモリ容量を要求するようなグラフを構築することができることが知られている。
次に、図2を参照して、非特許文献1で提案されているハッシュツリーを使った検証方法について説明する。図2は、生成部12aの処理を説明するための図である。図2に示すように、N個のリーフのハッシュツリーを生成すると、(logN+1)段のハッシュツリーとなる。出力エッジのない末端のノードφを0段目とすると、図2の左端はlogN段目となる。各ノードに対応するハッシュ値は、親ノードのハッシュ値との連結ハッシュ値である。
ここで、関数Open(c)は、次のような関数である。すなわち、ノードvに到達可能なノードの集合をΠ(v)とし、ノードvからの入力エッジを持つノードの集合をσ(v)=v’(v,v’)∈Eとする。Open(c)は、logN段目のノードcが選択されたときに、i=1,…,logNについて、次式(1)の満たす関数である。
Figure 0007327490000001
言い換えれば、このOpen(c)は、cには到達可能ではないがcの子ノードには到達可能なノード、つまり、グラフの末端のノードφのハッシュ値を算出するために必要となる、図2に斜線で示すノードのハッシュ値を返す関数である。
後述する処理において、検証装置10が対象機器20に、ノードcについてチャレンジC(c∈C)を送った場合に、チャレンジCに対して、対象機器20がレスポンスとしてOpen(c)とπ(c)を返送する。その場合に、すべてのc∈Cについて、親ノードのハッシュ値H((π(c)))がcのハッシュ値に一致し、H(Open(c))が一致すれば、対象機器20がN個のノードvに対応するω(v)を正しく算出したことを、高い確率で保証することができる。
そこで、生成部12aは、ノード数nのLocalized Bipartite Expander LBG(n,α,β)を生成し、対象機器20に送信する。ここで、図3は、検証処理の概要を説明するための図である。図3に示すように、本実施形態の検証装置10は、検証プログラムにより、対象機器20のストレージ21の空き領域のサイズnのスペースにおいて、LGB(n,α,β)を展開させる。そして、検証装置10は、グラフのノードに対応するOpen関数を用いて、対象機器20のストレージ21の空き領域が確実に空いていることを証明する。
また、検証装置10は、LBG(n,α,β)のハッシュ値を算出する過程で、ランダムにソフトウェア領域のブロックxを指定して、ブロックxのデータd(x)を参照して算出された連結ハッシュ値を用いて、対象機器20のストレージ21のソフトウェア領域が改ざんされていないかを検証する。
具体的には、生成部12aは、まず、ノード数nのLocalized Bipartite Expander LBG(n,α,β)を生成し、対象機器20に送信する。
対象機器20では、後述するように、ストレージ21の空き領域のうち、サイズnのスペースを検証処理のために確保して、受信したLBG(n,α,β)をもとに、ハッシュ値を書き込む。
図1の説明に戻る。算出部12bは、対象機器20のストレージ21に格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する。具体的には、算出部12bは、後述する検証部12cのk回繰り返す処理の各回に用いるH(Open(c))、z(c)等の値を算出する。
また、検証部12cは、算出されたブロックに対応するハッシュ値と、グラフのノードを指定したチャレンジに対して対象機器20から返送されたグラフを用いて算出されたレスポンス、および、ブロックを指定したチャレンジに対するレスポンスとして対象機器20から返送された該ブロックに対応するハッシュ値とを用いて、対象機器20のストレージ21の改ざんの有無を検証する。
この検証部12cは、対象機器20から返送されたグラフを用いて算出されたレスポンスがすべてのチャレンジに対して整合性を持っていること、および、算出されたブロックに対応するハッシュ値が、対象機器20から返送されたブロックに対応するハッシュ値と一致するか否かを検証する。
また、検証部12cは、ブロックに対応するハッシュ値として、さらに所定数の乱数を用いた連結ハッシュ値を用いる。
具体的には、検証部12cは、対象機器20にチャレンジC={C,c,L}を送信する。ここで、Cは、ストレージ21の空き領域に対するチャレンジであり、生成したグラフのノードc∈Cを指定する。また、cは、ストレージ21のソフトウェア領域に対するチャレンジであり、ブロックをランダムに指定する。また、Lは、ブロックをランダムに指定する際に生成する乱数の数、つまり、指定するブロックの数を指定する情報である。
検証部12cは、すべてのc∈Cについてのチャレンジcに対するレスポンスとして、対象機器20からOpen(c)とπ(c)を受信する。
また、検証部12cは、チャレンジcに対するレスポンスとして、対象機器20から連結ハッシュ値z(c)=H(d(r),…,d(r))を受信する。ここで、R(c)={r、…、r}は、疑似乱数生成関数によって生成されたL個の乱数の乱数列である。
つまり、検証部12cは、チャレンジCに対するレスポンスとして、{Open(c),π(c),z(c)}を受信する。
そして、検証部12cは、すべてのc∈Cについて、H((π(c)))がcのハッシュ値に一致するか否か、H(Open(c))がすべて一致するか否か、また、連結ハッシュ値z(c)が、算出部12bが算出した値と一致するか否を検証する。検証部12cは、すべてが一致した場合に、空き領域が確実に空いていて、ソフトウェア領域が改ざんされていないこと、すなわち、対象機器20のストレージ21の改ざんが無いことを高い確率で保証したことになる。
検証部12cは、以上の処理をk回繰り返す。このように、検証装置10は、ノード数n(k+1)のグラフを用いて、検証処理を行う。
なお、生成部12aは、ノードの数と各ノードに対応するハッシュ値のサイズとの積が、対象機器20のストレージ21の空き領域のサイズと所定の範囲で近似するように、グラフを生成する。
例えば、γ=β―2αを1に十分に近づければ、空き領域に十分に近い容量γnの領域を利用したことを証明できるため、空き領域に不正なソフトウェアが追加されていないことを証明することができる。ただし、γを1に近づけるにつれ、各ノードの入力エッジの数dが指数関数的に大きくなることが知られている。検証装置10が証明できる領域のサイズは、LBGの計算量dnkとのトレードオフになるため、例えば、0.7<γ<0.9とすればよい。
[対象機器]
対象機器20は、ストレージ21と制御部22と不図示の通信制御部とを有する。
ストレージ21は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。ストレージ21には、対象機器20を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。本実施形態において、ストレージ21のソフトウェア領域には、対象機器20として動作させるためのプログラムである検証プログラムが記憶されている。
通信制御部は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した検証装置10等の外部の装置と制御部22との通信を制御する
制御部22は、CPU(Central Processing Unit)やNP(Network Processor)やFPGA(Field Programmable Gate Array)等を用いて実現され、メモリに記憶された処理プログラムを実行する。本実施形態では、制御部22は、検証プログラムを実行することにより、格納部22aおよび応答部22bとして機能する。
格納部22aは、検証装置10から受信したグラフのノードのそれぞれに対応して算出したハッシュ値をストレージ21の空き領域に格納する。具体的には、格納部22aは、ノード数nのLocalized Bipartite Expanders LBG(n,α,β)を受信した際、ストレージ21の空き領域のうち、サイズnのスペースを検証処理のために確保して、受信したLBG(n,α,β)をもとに、ハッシュ値を書き込む。
応答部22bは、検証装置10からグラフのノードと、ストレージに格納されているソフトウェアのブロックとを指定したチャレンジを受信した場合に、格納されたノードに対応するハッシュ値を用いて算出したレスポンスと、該ブロックに対応して算出したハッシュ値とで検証装置10に応答する。
また、検証装置10から、ブロックを指定したチャレンジを受信する際に、さらに乱数の数が指定された場合には、応答部22bは、ブロックに対応するハッシュ値として、さらに指定された数の乱数を用いて算出した連結ハッシュ値を返送する。
具体的には、応答部22bは、検証装置10からチャレンジC={C,c,L}を受信した場合に、すべてのc∈Cに対するOpen(c)とπ(c)を算出する。
また、チャレンジc2を疑似乱数生成関数のシーズとして、乱数列R(c)={r、…、r}を生成する。そして、応答部22bは、連結ハッシュ値z(c)=H(d(r),…,d(r))を算出する。
そして、応答部22bは、チャレンジに対するレスポンスとして、res={Open(c),π(c),z(c)}を検証装置10に返送する。対象機器20は、検証装置10との間で、以上の処理をk回繰り返す。これにより、上記のとおり、検証装置10が、対象機器20のストレージ21の改ざんの有無を検証する。
[検証処理]
次に、図4を参照して、本実施形態に係る検証装置10による検証処理について説明する。図4は、検証処理手順を示すシーケンス図である。図4のシーケンスは、例えば、ユーザが開始を指示する操作入力を行ったタイミングで開始される。
まず、検証装置10において、生成部12aが、該対象機器20のストレージ21の空き領域のサイズに応じた数のノードで構成されるグラフを生成し、対象機器20に送信する(ステップS1)。
対象機器20では、格納部22aが、検証装置10から受信したグラフのノードのそれぞれに対応したハッシュ値を算出し、ストレージ21の空き領域に格納する(ステップS2)。
次に、検証装置10において、検証部12cが、対象機器20対してグラフのノードと、ストレージに格納されているソフトウェアのブロックとを指定したチャレンジを送信する(ステップS3)。
チャレンジを受信した対象機器20では、応答部22bが、ノードを指定したチャレンジに対してグラフを用いてレスポンスを算出し、ブロックを指定したチャレンジに対するレスポンスとして、ブロックに対応するハッシュ値を算出する。また、応答部22bは、算出したレスポンスを検証装置10に返送する(ステップS4)。
レスポンスを受信した検証装置10では、検証部12cが、対象機器20のストレージ21の改ざんの有無を検証する(ステップS5)。具体的には、検証部12cは、ノードを指定したチャレンジに対するレスポンスが、すべてのチャレンジに対して整合するか否かを検証する。また、検証部12cは、ブロックを指定したチャレンジに対するレスポンスが、算出部12bが算出したブロックに対応するハッシュ値と一致するか否かを検証する。検証部12cは、ステップS1からS5の処理をk回繰り返す。
例えば、すべてが一致した場合に、検証部12cは、対象機器20のストレージ21の空き領域が確実に空いていて、ソフトウェア領域が改ざんされていない、すなわち、対象機器20のストレージ21の改ざんが無いと判定する。
また、検証部12cは、検証結果をディスプレイ等の不図示の出力部に表示出力する。これにより、一連の検証処理が終了する。
以上、説明したように、本実施形態の検証装置10において、記憶部11が、対象機器のストレージの空き領域のサイズと、該ストレージに格納されているソフトウェアとを記憶する。また、生成部12aが、対象機器20のストレージ21の空き領域のサイズに応じた数のノードで構成されるグラフを生成し、対象機器20に送信する。また、算出部12bが、対象機器20のストレージ21に格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する。また、検証部12cが、ブロックに対応するハッシュ値と、グラフのノードを指定したチャレンジに対して対象機器20から返送されたグラフを用いて算出されたレスポンス、および、ブロックを指定したチャレンジに対するレスポンスとして対象機器20から返送された該ブロックに対応するハッシュ値とを用いて、対象機器20のストレージ21の改ざんの有無を検証する。
この検証部12cは、対象機器20から返送されたグラフを用いて算出されたレスポンスがすべてのチャレンジに対して整合性を持っていること、および、算出されたブロックに対応するハッシュ値が、対象機器20から返送されたブロックに対応するハッシュ値と一致するか否かを検証する。
これにより、検証装置10は、対象機器20の揮発性メモリを含むストレージ21の空き領域のうち、一定以上の容量の領域を利用させることにより、空き領域が確実に空いていることを高精度に証明することができる。また、検証装置10は、ソフトウェア領域のデータを参照させることにより、ソフトウェア領域の改ざんの有無を検知することができる。とくに、検証装置10は、ストレージ21のソフトウェア領域の改ざんまたは空き領域への不正ソフトウェアの追加のいずれかまたは両方が発生している場合に、高い確率で検知できる。したがって、検証装置10は、ソフトウェア領域の改ざんの有無または空き領域が確実に空いているか否かの検証を同時に行うことができる。このように、検証装置10によれば、組み込み機器20のソフトウェアの改ざんの有無を対象機器20の外部から検証することが可能となる。
また、生成部12aは、ノードの数と各ノードに対応するハッシュ値のサイズとの積が、対象機器20のストレージの空き領域のサイズと所定の範囲で近似するように、グラフを生成する。これにより、検証装置10は、対象機器20の空き領域が確実に空いているか否かをさらに高精度に検証することが可能となる。
また、対象機器20において、格納部22aが、検証装置10から受信したグラフのノードのそれぞれに対応して算出したハッシュ値をストレージ21の空き領域に格納する。また、応答部22bが、検証装置10からグラフのノードと、ストレージに格納されているソフトウェアのブロックとを指定したチャレンジを受信した場合に、格納されたグラフのノードに対応するハッシュ値を用いて算出したレスポンスと、該ブロックに対応して算出したハッシュ値とで検証装置10に応答する。
これにより、検証装置10が、対象機器20のストレージ21の改ざんの有無を検証することが可能となる。
また、検証装置10の検証部12cは、ブロックを指定したチャレンジを対象機器20に送信する際に、さらに乱数の数を指定する。その場合に、対象機器20の応答部22bは、ブロックに対応するハッシュ値として、さらに指定された数の乱数を用いて算出した連結ハッシュ値を返送する。これにより、ソフトウェア領域の改ざんの有無をさらに精度高く検証することが可能となる。
なお、検証装置10は、ソフトウェア領域をkL回探索する。このとき、サイズmのソフトウェア領域のうちεmが改ざんされていることを検知する確率は、(1-ε)kLとなる。ε=(1/kL)とすると、kLが十分に大きいとき、この確率はe-kLとなる。したがって、kLを十分に大きくすれば、ソフトウェア領域の改ざんを見逃す確率は指数関数的に低くなる。
また、上記実施例において、対象機器20の計算量は、k(2n-1+L+dn)であり、検証装置10の計算量は、k(|C|logn+L)である。kLを十分に大きくした場合には、検証装置10、対象機器20の計算量はともにkLとなる。
[プログラム]
上記実施形態に係る検証装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、検証装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の検証処理を実行する検証プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検証プログラムを情報処理装置に実行させることにより、情報処理装置を検証装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistant)などのスレート端末などがその範疇に含まれる。また、検証装置10の機能を、クラウドサーバに実装してもよい。
図5は、検証プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
また、検証プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した検証装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
また、検証プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、検証プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検証プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LANやWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
1 検証システム
10 検証装置
11 記憶部
12 制御部
12a 生成部
12b 算出部
12c 検証部
20 対象機器
21 ストレージ
22 制御部
22a 格納部
22b 応答部

Claims (8)

  1. 対象機器のストレージの空き領域のサイズと、該ストレージに格納されているソフトウェアとを記憶する記憶部と、
    前記対象機器のストレージの空き領域のサイズに応じた数のノードで構成され、該対象機器のストレージの空き領域のサイズと所定の範囲で近似するサイズの領域が該空き領域において利用されるグラフを生成し、該対象機器に送信する生成部と、
    前記対象機器のストレージに格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する算出部と、
    算出された前記ブロックに対応するハッシュ値と、前記グラフのノードを指定したチャレンジに対して前記対象機器から返送された前記グラフを用いて算出されたレスポンス、および、前記ブロックを指定したチャレンジに対するレスポンスとして前記対象機器から返送された該ブロックに対応するハッシュ値とを用いて、前記対象機器のストレージの改ざんの有無を検証する検証部と、
    を有することを特徴とする検証装置。
  2. 前記検証部は、前記対象機器から返送された前記グラフを用いて算出されたレスポンスがすべての前記チャレンジに対して整合性を持っていること、および、算出された前記ブロックに対応するハッシュ値が、前記対象機器から返送された前記ブロックに対応するハッシュ値と一致するか否かを検証することを特徴とする請求項1に記載の検証装置。
  3. 前記生成部は、前記ノードの数と各ノードに対応するハッシュ値のサイズとの積が、前記対象機器のストレージの空き領域のサイズと所定の範囲で近似するように、前記グラフを生成することを特徴とする請求項1に記載の検証装置。
  4. 前記検証部は、前記ブロックに対応するハッシュ値として、さらに所定数の乱数を用いた連結ハッシュ値を用いることを特徴とする請求項1に記載の検証装置。
  5. 検証装置と対象機器とを有する検証システムであって、
    前記検証装置は、
    前記対象機器のストレージの空き領域のサイズと、該ストレージに格納されているソフトウェアとを記憶する記憶部と、
    前記対象機器のストレージの空き領域のサイズに応じた数のノードで構成され、該対象機器のストレージの空き領域のサイズと所定の範囲で近似するサイズの領域が該空き領域において利用されるグラフを生成し、該対象機器に送信する生成部と、
    前記対象機器のストレージに格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する算出部と、
    算出された前記ブロックに対応するハッシュ値と、前記グラフのノードを指定したチャレンジに対して前記対象機器から返送された前記グラフを用いて算出されたレスポンス、および、前記ブロックを指定したチャレンジに対するレスポンスとして前記対象機器から返送された該ブロックに対応するハッシュ値とを用いて、前記対象機器のストレージの改ざんの有無を検証する検証部と、を有し、
    前記対象機器は、
    前記検証装置から受信した前記グラフのノードのそれぞれに対応して算出したハッシュ値をストレージの空き領域に格納する格納部と、
    前記検証装置から前記グラフのノードを指定したチャレンジと、ストレージに格納されているソフトウェアのブロックを指定したチャレンジを受信した場合に、格納された前記グラフのノードに対応するハッシュ値を用いて算出したレスポンスと、該ブロックに対応して算出したハッシュ値とで前記検証装置に応答する応答部と、を有する
    ことを特徴とする検証システム。
  6. 前記検証部は、前記ブロックを指定したチャレンジを前記対象機器に送信する際に、さらに乱数の数を指定し、
    前記応答部は、前記ブロックに対応するハッシュ値として、さらに指定された前記乱数の数と同じ数の乱数を用いて算出した連結ハッシュ値を返送することを特徴とする請求項5に記載の検証システム。
  7. 検証装置で実行される検証方法であって、
    前記検証装置は、対象機器のストレージの空き領域のサイズと、該ストレージに格納されているソフトウェアとを記憶する記憶部を有し、
    前記対象機器のストレージの空き領域のサイズに応じた数のノードで構成され、該対象機器のストレージの空き領域のサイズと所定の範囲で近似するサイズの領域が該空き領域において利用されるグラフを生成し、該対象機器に送信する生成工程と、
    前記対象機器のストレージに格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する算出工程と、
    算出された前記ブロックに対応するハッシュ値と、前記グラフのノードを指定したチャレンジに対して前記対象機器から返送された前記グラフを用いて算出されたレスポンス、および、前記ブロックを指定したチャレンジに対するレスポンスとして前記対象機器から返送された該ブロックに対応するハッシュ値とを用いて、前記対象機器のストレージの改ざんの有無を検証する検証工程と、
    を含むことを特徴とする検証方法。
  8. 対象機器のストレージの空き領域のサイズと、該ストレージに格納されているソフトウェアとを記憶する記憶部を参照し、
    前記対象機器のストレージの空き領域のサイズに応じた数のノードで構成され、該対象機器のストレージの空き領域のサイズと所定の範囲で近似するサイズの領域が該空き領域において利用されるグラフを生成し、該対象機器に送信する生成ステップと、
    前記対象機器のストレージに格納されているソフトウェアのブロックのそれぞれに対応するハッシュ値を算出する算出ステップと、
    算出された前記ブロックに対応するハッシュ値と、前記グラフのノードを指定したチャレンジに対して前記対象機器から返送された前記グラフを用いて算出されたレスポンス、および、前記ブロックを指定したチャレンジに対するレスポンスとして前記対象機器から返送された該ブロックに対応するハッシュ値とを用いて、前記対象機器のストレージの改ざんの有無を検証する検証ステップと、
    をコンピュータに実行させるための検証プログラム。
JP2021543848A 2019-09-03 2019-09-03 検証装置、検証システム、検証方法および検証プログラム Active JP7327490B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/034662 WO2021044529A1 (ja) 2019-09-03 2019-09-03 検証装置、検証システム、検証方法および検証プログラム

Publications (2)

Publication Number Publication Date
JPWO2021044529A1 JPWO2021044529A1 (ja) 2021-03-11
JP7327490B2 true JP7327490B2 (ja) 2023-08-16

Family

ID=74852595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021543848A Active JP7327490B2 (ja) 2019-09-03 2019-09-03 検証装置、検証システム、検証方法および検証プログラム

Country Status (6)

Country Link
US (1) US12067152B2 (ja)
EP (1) EP4009210B1 (ja)
JP (1) JP7327490B2 (ja)
CN (1) CN114341849A (ja)
AU (1) AU2019464433B2 (ja)
WO (1) WO2021044529A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015156055A (ja) 2014-02-19 2015-08-27 キヤノン株式会社 情報処理装置、情報処理方法
JP2018073245A (ja) 2016-11-01 2018-05-10 パナソニックIpマネジメント株式会社 検査装置、検査システム、情報処理装置、検査方法およびコンピュータプログラム
JP2018081349A (ja) 2016-11-14 2018-05-24 日本電信電話株式会社 改竄検知システム、検証ecu、被検証ecu、プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101067613B1 (ko) * 2004-04-02 2011-09-28 파나소닉 주식회사 비인증 콘텐츠 검출시스템
US20080184041A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Graph-Based Tamper Resistance Modeling For Software Protection
US9558297B1 (en) * 2014-03-27 2017-01-31 EMC IP Holding Company LLC Memory management techniques
EP3861671A4 (en) * 2018-10-02 2021-11-24 Visa International Service Association NON-MALLEABLE CODES DELIMITED BY CONTINUOUS SPACE FROM STRONGER SPACE EVIDENCE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015156055A (ja) 2014-02-19 2015-08-27 キヤノン株式会社 情報処理装置、情報処理方法
JP2018073245A (ja) 2016-11-01 2018-05-10 パナソニックIpマネジメント株式会社 検査装置、検査システム、情報処理装置、検査方法およびコンピュータプログラム
JP2018081349A (ja) 2016-11-14 2018-05-24 日本電信電話株式会社 改竄検知システム、検証ecu、被検証ecu、プログラム

Also Published As

Publication number Publication date
AU2019464433A1 (en) 2022-03-24
JPWO2021044529A1 (ja) 2021-03-11
CN114341849A (zh) 2022-04-12
US20220292225A1 (en) 2022-09-15
EP4009210B1 (en) 2024-03-13
EP4009210A1 (en) 2022-06-08
EP4009210A4 (en) 2023-05-03
US12067152B2 (en) 2024-08-20
WO2021044529A1 (ja) 2021-03-11
AU2019464433B2 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
CN106656502B (zh) 计算机系统及安全执行的方法
US9946880B2 (en) Software vulnerability analysis method and device
EP3330879B1 (en) Vulnerability discovering device, vulnerability discovering method, and vulnerability discovering program
RU2634178C1 (ru) Способ обнаружения вредоносных составных файлов
US10691739B2 (en) Multi-label content recategorization
US10417579B2 (en) Multi-label classification for overlapping classes
US20200327227A1 (en) Method of speeding up a full antivirus scan of files on a mobile device
US20130297280A1 (en) Verification of Design Derived From Power Intent
US10019577B2 (en) Hardware hardened advanced threat protection
Apvrille et al. Model-driven engineering for designing safe and secure embedded systems
CN115248919A (zh) 一种函数接口的调用方法、装置、电子设备及存储介质
CN104268461A (zh) 一种可信度量方法及装置
US20090327686A1 (en) Updating A Basic Input/Output System ('BIOS') Boot Block Security Module In Compute Nodes Of A Multinode Computer
CN111832018B (zh) 病毒检测方法、装置、计算机装置及存储介质
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
US10944768B2 (en) System for automated signature generation and refinement
JP7327490B2 (ja) 検証装置、検証システム、検証方法および検証プログラム
CN110363011B (zh) 用于验证基于uefi的bios的安全性的方法和设备
CN115964721A (zh) 一种程序验证方法及电子设备
US12003525B2 (en) Development security operations on the edge of the network
US9400986B2 (en) Determining community gatekeepers in networked systems
US11899794B1 (en) Machine learning model robustness characterization
CN114398678A (zh) 电子文件防篡改的登记验证方法、装置、电子设备及介质
US10121008B1 (en) Method and process for automatic discovery of zero-day vulnerabilities and expoits without source code access
WO2022254729A1 (ja) 解析装置、解析方法、および、解析プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230410

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230717

R150 Certificate of patent or registration of utility model

Ref document number: 7327490

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150