JP2019003275A - 確認システム、制御装置及び確認方法 - Google Patents

確認システム、制御装置及び確認方法 Download PDF

Info

Publication number
JP2019003275A
JP2019003275A JP2017115236A JP2017115236A JP2019003275A JP 2019003275 A JP2019003275 A JP 2019003275A JP 2017115236 A JP2017115236 A JP 2017115236A JP 2017115236 A JP2017115236 A JP 2017115236A JP 2019003275 A JP2019003275 A JP 2019003275A
Authority
JP
Japan
Prior art keywords
file
data
identifier
execution
integrity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017115236A
Other languages
English (en)
Other versions
JP6744256B2 (ja
Inventor
健一郎 武藤
Kenichiro Muto
健一郎 武藤
山本 隆広
Takahiro Yamamoto
隆広 山本
剛 永吉
Takeshi Nagayoshi
剛 永吉
雄一 小松
Yuichi Komatsu
雄一 小松
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
Priority to JP2017115236A priority Critical patent/JP6744256B2/ja
Publication of JP2019003275A publication Critical patent/JP2019003275A/ja
Application granted granted Critical
Publication of JP6744256B2 publication Critical patent/JP6744256B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】システムの起動時に使用されるファイルの完全性を確認し、安定した状態でシステムが起動することができる。【解決手段】確認システムは、システムの起動時に使用されるファイルについて事前に生成されたファイルのデータそのものを特徴づける第1のデータと、ファイルの識別子とを対応付けた正解データ122と、ファイルの識別子を特定して該特定したファイルに対する第1のデータを生成し、該生成した第1のデータと正解データ122の第1のデータとをファイルごとに照合していずれかのファイルについて生成した第1のデータと正解データ122の第1のデータとが一致しない場合には実行部121にシステムの起動を中断させる完全性確認部123と、を有するブートイメージ12を有する。【選択図】図1

Description

本発明は、確認システム、制御装置及び確認方法に関する。
システムの起動中に実行されたプログラムの完全性を確認する従来技術として、Trusted BootやLinux(登録商標)-IMAがある(例えば、非特許文献1参照)。これらの技術では、システム起動中に実行されたプログラムの実行ファイルの完全性を計測し、計測結果を逐次更新する。
また、システムの起動中に、完全性が確認されたプログラムのみ実行を許可する従来技術として、UEFI SecureBoot(及びAppLocker)がある(例えば、非特許文献2,3参照)。この技術では、実行ファイルに対して事前に電子署名を付与し、該実行ファイルの実行前に署名検証を行い、検証が失敗した際には、当該プログラムの実行を中断する。このような検証を連鎖させていくことにより、システムの起動中、プログラムの検証が失敗するまで、完全性が確認されたプログラムが実行されていく。
IPA, "情報セキュリティ技術動向調査タスクグループ報告書(2009 年上期)", pp.11-13, 2009 年 9 月,[online],[平成29年5月31日検索],インターネット<URL:https://www.ipa.go.jp/security/fy21/reports/tech1-tg/indexa.html> UEFI "Unified Extensible Firmware Interface Specification Version 2.6", pp.1803-1808, January, 2016,[online],[平成29年5月31日検索],インターネット<URL:http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf> MSDNライブラリ, "AppLocker 規則条件の種類について",[online],[平成29年5月31日検索],インターネット<URL:https://msdn.microsoft.com/ja-jp/library/ee460959(v=ws.11).aspx>
しかしながら、従来技術では、プログラム群の実行順序が改ざんされ、予期しない順序で各実行ファイルが起動されてしまう状態を完全に回避することが難しい。このように、プログラム群の実行順序が改ざんされ、予期しない順序で各実行ファイルが起動されてしまうと、システムの安定動作が保証されない可能性がある。すなわち、従来技術を用いても、システムが不安定な状態で起動してしまうおそれがある。
例えば、Trusted BootやLinux-IMAでは、計測結果を、事前に計測した正解値と比較することによって、起動中に実行されたファイルや、その実行順序に改ざんがあった場合、改ざんの事実を事後的に確認することができる。しかしながら、Trusted BootやLinux-IMAでは、改ざんされたファイルであっても実行自体は阻止されないといった問題点がある。
一方、UEFI SecureBootやAppLockerは、実行ファイルの改ざん時にプログラムの起動を中断することが可能である。しかしながら、UEFI SecureBootは、未署名の実行ファイルは、署名検証ができないため、UEFI SecureBootでは、改ざん検知の対象外である。また、UEFI SecureBootは、署名済の実行ファイルであっても、署名検証が成功するような実行ファイルに差し替えるような攻撃は検知できない。例えば、UEFI SecureBootは、古いバージョンのプログラムへの差し替え等による攻撃は検知できない。AppLockerでは、実行ファイルのハッシュ値を事前に登録し、当該実行ファイルから計算したハッシュ値が一致しない場合に、当該実行ファイルの起動を取りやめることも可能である。しかし、その実行ファイルが、事前に登録したハッシュ値ごと差し替えられてしまうと、同様の問題が発生する。このため、UEFI SecureBootやAppLockerでは、このように実行ファイルが改ざんされた場合、この実行ファイルの完全性が確保されていないにもかかわらず、起動されてしまうという問題点がある。
そして、「Trusted Boot(及びLinux-IMA)」と「UEFI SecureBoot(及びAppLocker)」とを組み合わせて利用することも考えられる。しかしながら、上記の問題点により、これらを組み合わせたとしても、システム起動時に実行される一連のプログラム群の中で、未署名のファイルの改ざんや、署名済のファイルに対し署名ごと差し替えるような攻撃があった場合、これらの事象を検知してファイルの実行を中断することができない。したがって、「Trusted Boot(及びLinux-IMA)」と「UEFI SecureBoot(及びAppLocker)」とを組み合わせても、システム起動時に実行される一連のプログラム群に関し、その実行順序と実行ファイルの完全性とを確保することができない。例えば、実行順序を定義する設定ファイルを改ざんすることにより、本来起動対象とすべき実行ファイルを、起動対象外にすることも可能である。
本発明は、上記に鑑みてなされたものであって、システムの起動時に使用されるファイルの完全性を確認し、安定した状態でシステムが起動することができる確認システム、制御装置及び確認方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る確認システムは、システム起動時に使用されるファイルの完全性を確認する確認システムであって、ファイルの識別子を受け付け、該受け付けた識別子を有するファイルのデータそのものを特徴づける第1のデータを生成し、該生成したデータを識別子の送信元に返却する生成部と、生成部に対してファイルの識別子を送信し、生成部から返却された第1のデータの生成結果をファイルの識別子に対応付けた正解データを作成する正解作成部と、正解データと、段階的にファイルを起動してシステムの起動を実行する実行部と、システムの起動時に使用されるファイルの識別子を特定して該特定したファイルに対する第1のデータを生成し、該生成したデータと正解データのデータとをファイルごとに照合していずれかのファイルについて生成した第1のデータと正解データの第1のデータとが一致しない場合には実行部にシステムの起動を中断させる完全性確認部と、を有するブートイメージと、を有することを特徴とする。
本発明によれば、システムの起動時に使用されるファイルの完全性を確認し、安定した状態でシステムが起動することができる。
図1は、実施の形態に係る確認システムの概略構成を示す模式図である。 図2は、図1に示す正解データのデータ構成の一例を示す図である。 図3は、図1に示す確認システムによる正解データ作成処理の処理手順を示すシーケンス図である。 図4は、図1に示す確認システムにシステムの起動時におけるファイルの完全性確認処理の処理手順を示すシーケンス図である。 図5は、プログラムが実行されることにより、完全性確認システムと正解作成システムが実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
まず、実施の形態に係る確認システムについて、概略構成、完全性確認処理の流れ及び具体例を説明する。本実施の形態は、システムの起動中に実行されるブートシーケンスに関し、非ROM領域または書き換え可能なストレージ領域等に格納されたファイルの利用を伴うサーバ機器、及びクライアント機器に対してファイルの完全性を確認するシステムである。確認対象のファイルは、プログラムの実行ファイル群、及びこれらの実行順序を既定する設定ファイル等である。実施の形態によれば、ブートシーケンスの初期段階で、以降のブートシーケンスで実行されるプログラム、及びそれらの実行順序の完全性を確保することによって、安定した状態でのシステム起動を実現する。
図1は、実施の形態に係る確認システムの概略構成を示す模式図である。図1に示すように、実施の形態に係る確認システムは、完全性確認システム10(制御装置)と、正解作成システム20とを有する。完全性確認システム10及び正解作成システム20は、ワークステーションやパソコン等の汎用コンピュータで実現され、CPU(Central Processing Unit)等の演算処理装置がメモリに記憶された処理プログラムを実行することによって、以下の各処理を実行する。
[完全性確認システムの構成]
まず、完全性確認システム10の構成について説明する。完全性確認システム10は、設定ファイルA及び実行ファイルB,Cと、正解計算部11(生成部)と、ブートイメージ12と、を有する。
設定ファイルA及び実行ファイルB,Cは、完全性確認システム10のシステム起動時に使用されるファイルである。設定ファイルA及び実行ファイルB,Cは、完全性確認システム10の非ROM領域または書き換え可能なストレージ領域等に格納される。設定ファイルAは、実行ファイルB,Cの実行順序を既定する設定ファイルである。実行ファイルB,Cは、プログラムの実行ファイルである。設定ファイルA及び実行ファイルB,Cは、完全性確認システム10に格納されたファイル群の一例であり、システム起動時に使用されるファイルは、図1に示す種別及びファイル数に限定されない。
正解計算部11は、完全性確認システム10の起動時に使用されるファイルの識別子を受け付け、該受け付けた識別子のファイルのデータを特徴づける第1のデータを生成し、該生成したデータを識別子の送信元に返却する。
具体的には、正解計算部11は、第1のデータとして、ファイルのデータのハッシュ値を計算する。また、正解計算部11は、正解作成部21(後述)よりファイルの識別子を受け付ける。正解計算部11が受け付ける識別子は、一つでも複数でもよい。正解計算部11は、複数の場合は、ハッシュ値の計算結果も複数返却する。なお、ファイルの識別子は、全機能部で共通のものを用いる。例えば、ファイルの識別子は、ファイルパスやファイルポインタなどである。また、正解計算部11が有するハッシュ計算の具体的なアルゴリズムについては限定しないが、正解作成部21(後述)及び完全性確認部123(後述)に対応するアルゴリズムを用いる。
ブートイメージ12は、完全性確認システム10の起動時に使用されるファイルの第1のデータを、ブートイメージ12内に格納することによって、ブートイメージ12の提供元によるファイルの完全性確保を実現する。
このブートイメージ12は、一度しか書き込みが出来ない媒体に書き込まれる。または、ブートイメージ12に対し、書き込みが出来ないようアクセス権設定を施される。具体的には、例えば、CD−ROM等の媒体にブートイメージ12を書き込む、ブートイメージ12を格納したメディアに対してライトプロテクトを施す、OSのパーミッション設定を変更する等の手段などがある。完全性確認システム10の起動時には、このように書き換えができないブートイメージ12を用いて、システムを起動する。ブートイメージ12は、実行部121、正解データ122及び完全性確認部123を有する。
実行部121は、システムの起動時に使用されるファイルを段階的に起動して完全性確認システム10のシステムの起動を実行する。まず、実行部121は、完全性の確保対象とするファイルに関して、該ファイルの識別子とともに、完全性確認部123(後述)に対し完全性の確認依頼を要求する。続いて、実行部121は、完全性確認部123から受け取る通知に応じて、以下の処理を行う。
例えば、実行部121は、完全性確認部123から完全性確認完了通知を受け取った場合には、設定ファイルAを読み込み、設定ファイルAによって定義された順序にしたがって、段階的に実行ファイルB,Cを起動していく。一方、実行部121は、完全性確認部123からシステム強制終了命令を受け取った場合には、設定ファイルAは読み込まず、完全性確認システム10のシステムを強制終了する。なお、実行部121は、完全性確認システム10のブートイメージ12に格納されており、ブートイメージ12から展開されたプログラムとしてシステムの起動中に実行される。
正解データ122は、完全性確認システム10のシステムの起動時に使用されるファイルについて事前に生成されたファイルのデータを特徴づける第1のデータと、ファイルの識別子とを対応付けたデータ構成を有する。正解データ122は、正解作成システム20(後述)の正解作成部21(後述)によって作成され、ブートイメージ12に格納されたものである。なお、正解データ122は、正解作成システム20(後述)の正解データ22(後述)と同一の情報である。
図2は、図1に示す正解データ122のデータ構成の一例を示す図である。図2に示すように、正解データ122は、ファイルの識別子であるファイルパスと、各ファイルのデータのハッシュ値の事前計算値とのペアで構成される。また、ハッシュ値の事前計算値は、対応する識別子のファイルに対して、完全性確認部123(後述)が事前に計算したハッシュ値である。
例えば、図2に示す正解データ122では、識別子「A」のファイルには、ハッシュ値の事前計算値「H」が対応付けられている。識別子「B」のファイルには、ハッシュ値の事前計算値「H」が対応付けられている。識別子「C」のファイルには、ハッシュ値の事前計算値「H」が対応付けられている。このような正解データ122は、次に説明する完全性確認部123の各処理において使用される。
完全性確認部123は、システムの起動時に、システムの起動時に使用されるファイルの識別子を特定する。完全性確認部123は、特定したファイルに対する第1のデータを生成する。続いて、完全性確認部123は、生成した第1のデータと正解データ122の第1のデータとをファイルごとに照合する。そして、完全性確認部123は、いずれかのファイルについて、生成した第1のデータと正解データ122の第1のデータとが一致しない場合に実行部121にシステムの起動を中断させる。
具体的には、完全性確認部123は、実行部121によるシステム起動時に使用するファイルの完全性の確認依頼を受けることによって実行部121よりファイルの識別子を受け付ける。完全性確認部123は、受け付けた識別子のファイルを特定し、該ファイルのデータのハッシュ値を計算する。完全性確認部123は、正解データ122内に格納されているハッシュ値と照合し、照合結果と一致するか否かを判定する。
続いて、完全性確認部123は、受け付けた識別子のファイルが特定できなかった場合、または、計算したファイルのハッシュ値が正解データ122のハッシュ値と一致しなかった場合、実行部121に対して、システムの強制終了命令を返却する。これに対し、完全性確認部123は、いずれにも該当せず、完全性が確認できた場合、実行部121に対して、完全性確認完了通知を返却する。
なお、完全性確認部123が受け付ける識別子は一つ以上とし、二つ以上複数の場合には、複数のファイルに対して前述の処理を行う。また、完全性確認部123は、完全性確認システム10のブートイメージ12に格納されており、ブートイメージ12から展開されたプログラムとしてシステムの起動中に、実行部121から呼び出される。
[正解作成システムの構成]
次、図1を参照して、正解作成システム20の構成について説明する。正解作成システム20は、正解作成部21と正解データ22とを有する。
正解作成部21は、完全性確認システム10の正解計算部11に対してファイルの識別子を送信する。そして、正解作成部21は、正解計算部11から返却された第1のデータの生成結果をファイルの識別子に対応付けた正解データ22を作成する。
具体的には、正解作成部21は、正解計算部11に対してファイルの識別子を送信し、完全性確認システム10から応答として返却されたハッシュ値の計算結果を、識別子と対応付けて正解データ22に格納する。格納された「ファイルの識別子−ハッシュ値」のペアは、完全性確認システム10内において、識別子が示すファイルから計算されるべきハッシュ値の正解値として取り扱われる。
なお、正解作成部21は、図1では、一例として、正解作成システム20内の機能部として配置するが、必ずしも完全性確認システム10と独立したシステムでなくてもよく、完全性確認システム10内の機能部としてもよい。
正解データ22は、正解データ122と同一の情報であり、正解作成部21で作成された後に、完全性確認システム10のブートイメージ12に格納される。なお、正解データ22のブートイメージへの12への格納は、例えば、CD−ROMやUSBメモリ等の物理メディアや、ネットワークなどの通信手段を利用して手動で格納してもよい。
[正解データ作成処理]
確認システムが実行する各処理のうち、まず、ブートイメージ12に格納する正解データ122を事前に作成する処理について説明する。ここでは、第1のデータとして、ファイルのデータのハッシュ値を適用した場合を例に説明する。図3は、図1に示す確認システムによる正解データ作成処理の処理手順を示すシーケンス図である。
図3に示すように、正解作成システム20の正解作成部21は、完全性確認システム10の正解計算部11に対して、ファイルの識別子を送信する(ステップS1)。具体的には、正解作成部21は、ファイルの識別子として、「A」,「B」,「C」を送信する。正解計算部11は、ファイルの識別子を受け付け、この受け付けた識別子を有するファイルのデータのハッシュ値の事前計算を行う(ステップS2)(第1の生成工程)。正解計算部11は、例えば、識別子「A」,「B」,「C」の各ファイルについて、それぞれ、ハッシュ値「H」,「H」,「H」を計算する。そして、正解計算部11は、各ハッシュ値の事前計算値「H」,「H」,「H」を正解作成部21に返却する(ステップS3)。
正解作成部21は、正解計算部11から返却されたハッシュ値の事前計算結果をファイルの識別子に対応付けた正解データ22を作成する(ステップS4)(第2の生成工程)。具体的には、ファイルの識別子「A」,「B」,「C」について、それぞれハッシュ値の事前計算値「H」,「H」,「H」が対応付けられた正解データ22を生成する(図2参照)。そして、正解作成部21は、作成した正解データ22を、ブートイメージ12に格納する(ステップS5)。
[確認処理]
次に、確認システムが実行する各処理のうち、システムの起動時におけるファイルの完全性確認の処理について説明する。図4は、図1に示す確認システムにシステムの起動時におけるファイルの完全性確認処理の処理手順を示すシーケンス図である。
図4に示すように、実行部121は、完全性確認部123に、システム起動時に使用する実行ファイルB,Cの完全性の確認依頼を要求する(ステップS11)。完全性確認部123は、実行ファイルの完全性の確認依頼を受けると、正解データ122の識別子を参照し(ステップS12)、実行ファイルB,C及び設定ファイルAの識別子が全て正解データ122に登録されているか否かを判定する(ステップS13)。
完全性確認部123は、実行ファイルB,C及び設定ファイルAの識別子が一つでも登録されていないと判定した場合(ステップS13:No)、実行部121に、システムの強制終了命令を返却する(ステップS14)。実行部121は、完全性確認部123からのシステム強制終了命令を受けて、設定ファイルAは読み込まず、完全性確認システム10のシステムを強制終了する(ステップS15)。
一方、完全性確認部123は、実行ファイルB,C及び設定ファイルAの識別子が全て登録されていると判定した場合(ステップS13:Yes)、設定ファイルA及び実行ファイルB,Cのデータの各ハッシュ値の計算を行い、それぞれのファイルのハッシュ値「H’」,「H’」,「H’」,取得する(ステップS16〜ステップS18)(第3の生成工程)。そして、完全性確認部123は、正解データ122のハッシュ値事前計算値を参照し(ステップS19)、設定ファイルA及び実行ファイルB,Cのハッシュ値の事前計算値「H」,「H」,「H」を取得する。
続いて、完全性確認部123は、全てのX(X=A,B,C)において、「H’」=「H」であるか否かを判定する(ステップS20)。すなわち、完全性確認部123は、ファイルごとに、設定ファイルA及び実行ファイルB,Cについて計算したハッシュ値と、正解データ122におけるハッシュ値の事前計算値とを照合する。
まず、完全性確認部123は、全てのX(X=A,B,C)において、「H’」=「H」でないと判定した場合(ステップS20:No)について説明する。すなわち、いずれかのファイルについて計算したハッシュ値と正解データ122のハッシュ値の事前計算値とが一致しない場合である。この場合、完全性確認部123は、実行部121に、システムの強制終了命令を返却する(ステップS14)。実行部121は、完全性確認部123からのシステム強制終了命令を受けて、設定ファイルAは読み込まず、完全性確認システム10のシステムを強制終了する(ステップS15)。
これに対し、完全性確認部123は、全てのX(X=A,B,C)において、「H’」=「H」であると判定した場合(ステップS20:Yes)について説明する。すなわち、全てのファイルについて、計算したハッシュ値と、正解データ122のハッシュ値の事前計算値とが一致した場合である。この場合、完全性確認部123は、実行部121に、完全性確認完了通知を返却する(ステップS21)。実行部121は、この完全性確認完了通知を受けて、設定ファイルAを読み込み(ステップS22)、設定ファイルAによって定義された順序に従って、段階的に実行ファイルB,Cを起動していく(ステップS23,S24)。
[実施の形態の効果]
このように、実施の形態に係る確認システムは、完全性確認システム10のブートイメージ12が、システムの起動時に使用されるファイルの識別子を特定して該特定したファイルに対する第1のデータを生成する。そして、ブートイメージ12は、生成したデータと正解データ122のデータとをファイルごとに照合し、いずれかのファイルについて、生成した第1のデータと正解データの第1のデータとが一致しない場合には実行部121にシステムの起動を中断させている。
具体的には、本実施の形態では、システムの起動中、ブートイメージ12の展開後ただちにブートイメージ12内に格納した識別子からファイル群を特定し、ファイルごとのハッシュ値を再計算する。そして、ブートイメージ12は、計算したファイルのハッシュ値と事前に計算したファイルのハッシュ値を照合する。
ここで、ファイルの完全性が喪失している場合には、再計算したハッシュ値が、事前に計算したハッシュ値(正解値)と異なる値となる。また、署名が付与されたファイルの場合には、ファイルと署名の両方が入れ替えられた場合であっても再計算したハッシュ値が異なる値となる。このため、本実施の形態では、ハッシュ値の事前計算値と、再計算値との一致性を判断することによって、署名の有無によらずファイルの改ざんを検知することができる。したがって、ブートイメージ12は、一つでも照合結果が一致しない場合には、システム起動中に実行される実行ファイル及び実行順序のいずれかの完全性が喪失したと判定する。この場合、ブートイメージ12は、ただちにシステムの起動を中断する。
一方、ブートイメージ12は、照合結果が全て一致した場合には、システム起動中に実行される実行ファイル及び実行順序の完全性が確保されていると判定する。このように、実行ファイル及び実行順序の完全性が確保されている場合にのみ、ブートイメージ12は、ただちに実行順序の設定ファイルを読み込み、各実行ファイルを、当該設定ファイルで定められた実行順序に従って実行する。
このように、本実施の形態では、ブートシーケンスの初期段階で、以降のブートシーケンスで実行されるプログラム、及びそれらの実行順序の完全性が確認できるため、システムが不安定な状態で起動してしまうリスクを軽減することができる。そして、本実施の形態では、ブートイメージ12外に存在するファイル群とブートイメージ12とを対応付けることにより、独立して管理されていたファイル群とブートイメージ12とが、一体で管理できるようになる。このため、本実施の形態によれば、ブートイメージ12とファイル群のバージョンの整合性(例えば、バージョン違い等)とに異常が発生した場合であっても、その異常を検知することができる。
また、本実施の形態では、完全性の確保対象とするファイル群に対し、各ファイルのハファイルのデータそのものを特徴づける第1のデータを事前に生成し、これらの第1のデータを、完全性の確保対象とするファイル群に対する正解値とする。すなわち、本実施の形態では、完全性の確保対象とする各ファイルのデータについて計算したハッシュ値は、各ファイルの識別子とペアで予めブートイメージ12内に格納しておく。
これによって、ブートイメージ12の提供元は、ハッシュ値の計算対象となったファイル群が、非ROM領域や書き換え可能なストレージ領域等のようにブートイメージ12外にあった場合でも、これらの各ファイルをブートイメージ12に対応付けて管理することができ、ファイル群の完全性を確保することができる。
そして、本実施の形態では、ブートイメージ12を、一度しか書き込みが出来ない媒体に書き込む。或いは、ブートイメージ12のファイルに対し、書き換えを禁止するようなアクセス権設定を施す。したがって、本実施の形態では、システムの起動時には、このように書き換えができないブートイメージを用いて、システムを起動することができる。
上記のように、本実施の形態によれば、システムの起動中に実行される一連のプログラム群の実行順序と実行ファイルの完全性を確保することができる。そして、本実施の形態では、完全性の確保対象とするファイル群は、ブートイメージ12の作成者が決定可能である。このため、ブートイメージ12の作成者は、任意のプログラム群に対してその実行順序と実行ファイルの完全性とを確保し、予め規定したブートシーケンスから改ざんされたブートシーケンスの実行を阻止することができる。
従って、本実施の形態によれば、システム起動時に実行される一連のプログラム群に関し、その実行順序と実行ファイルの完全性を確保することが可能になるため、安定した状態でシステムが起動することができる。
[実施の形態のシステム構成について]
図1に示した完全性確認システム10と、正解作成システム20と各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、完全性確認システム10と、正解作成システム20との機能の分散及び統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、完全性確認システム10と、正解作成システム20とにおいておこなわれる各処理は、全部または任意の一部が、CPU、GPU(Graphics Processing Unit)、及び、CPU、GPUにより解析実行されるプログラムにて実現されてもよい。また、完全性確認システム10と、正解作成システム20においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
[プログラム]
図5は、プログラムが実行されることにより、完全性確認システム10と正解作成システム20とが実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、完全性確認システム10と、正解作成システム20の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、完全性確認システム10と、正解作成システム20とにおける機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
10 完全性確認システム
11 正解計算部
12 ブートイメージ
20 正解作成システム
21 正解作成部
22,122 正解データ
121 実行部
123 完全性確認部

Claims (6)

  1. システム起動時に使用されるファイルの完全性を確認する確認システムであって、
    前記ファイルの識別子を受け付け、該受け付けた識別子を有するファイルのデータを特徴づける第1のデータを生成し、該生成した第1のデータを前記識別子の送信元に返却する生成部と、
    前記生成部に対して前記ファイルの識別子を送信し、前記生成部から返却された第1のデータの生成結果を前記ファイルの識別子に対応付けた正解データを作成する正解作成部と、
    前記正解データと、段階的に前記ファイルを起動して前記システムの起動を実行する実行部と、前記システムの起動時に使用されるファイルの識別子を特定して該特定したファイルに対する第1のデータを生成し、該生成したデータと前記正解データのデータとをファイルごとに照合していずれかの前記ファイルについて前記生成した第1のデータと前記正解データの第1のデータとが一致しない場合には前記実行部に前記システムの起動を中断させる完全性確認部と、を有するブートイメージと、
    を有することを特徴とする確認システム。
  2. 前記ブートイメージは、一度しか書き込みができない媒体に書き込まれている、または、書き込みが禁止される設定であることを特徴とする請求項1に記載の確認システム。
  3. 前記ファイルは、前記システムの起動中に実行される実行ファイルまたは前記実行ファイルの実行順序を設定した設定ファイルであり、非ROM領域、または、書き換え可能なストレージ領域に格納されることを特徴とする請求項1または2に記載の確認システム。
  4. 前記第1のデータは、前記ファイルのデータのハッシュ値であることを特徴とする請求項1〜3のいずれか一つに記載の確認システム。
  5. ブートイメージを有する制御装置であって、
    前記ブートイメージは、
    システムの起動時に使用されるファイルについて事前に生成された前記ファイルのデータを特徴づける第1のデータと、前記ファイルの識別子とを対応付けた正解データと、
    段階的に前記ファイルを起動して前記システムの起動を実行する実行部と、
    前記システムの起動時に、前記システムの起動時に使用されるファイルの識別子を特定して該特定したファイルに対する第1のデータを生成し、該生成した第1のデータと前記正解データの第1のデータとをファイルごとに照合していずれかの前記ファイルについて前記生成した第1のデータと前記正解データの第1のデータとが一致しない場合には前記実行部に前記システムの起動を中断させる完全性確認部と、
    を有することを特徴とする制御装置。
  6. システム起動時に使用されるファイルの完全性を確認する確認システムが実行する確認方法であって、
    前記確認システムは、システムの起動時に使用されるファイルについて事前に計算された各ファイルのデータを特徴づける第1のデータと、前記ファイルの識別子とを対応付けた正解データを有するブートイメージを有し、
    前記ファイルの識別子を送信先に送信する送信工程と、
    前記ファイルの識別子を受け付け、該受け付けた識別子を有するファイルのデータそのものを特徴づける第1のデータを生成する第1の生成工程と、
    前記第1のデータの生成結果を前記ファイルの識別子に対応付けた正解データを生成する第2の生成工程と、
    段階的に前記ファイル群のファイルを起動して前記システムの起動を実行する実行工程と、
    前記システムの起動時に使用されるファイルの識別子を特定して該特定したファイルに対する第1のデータを生成する第3の生成工程と、
    前記第3の生成工程において生成された第1のデータと前記正解データの第1のデータとをファイルごとに照合する照合工程と、
    前記照合工程において、いずれかの前記ファイルについて前記第3の生成工程において生成された第1のデータと前記正解データの第1のデータとが一致しない場合には、前記実行工程において実行される前記システムの起動を中断させる完全性確認工程と、
    を含んだことを特徴とする確認方法。
JP2017115236A 2017-06-12 2017-06-12 確認システム、制御装置及び確認方法 Active JP6744256B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017115236A JP6744256B2 (ja) 2017-06-12 2017-06-12 確認システム、制御装置及び確認方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017115236A JP6744256B2 (ja) 2017-06-12 2017-06-12 確認システム、制御装置及び確認方法

Publications (2)

Publication Number Publication Date
JP2019003275A true JP2019003275A (ja) 2019-01-10
JP6744256B2 JP6744256B2 (ja) 2020-08-19

Family

ID=65005864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017115236A Active JP6744256B2 (ja) 2017-06-12 2017-06-12 確認システム、制御装置及び確認方法

Country Status (1)

Country Link
JP (1) JP6744256B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020262412A1 (ja) * 2019-06-27 2020-12-30 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
EP3819800A1 (en) 2019-11-07 2021-05-12 Ricoh Company, Ltd. Information processing apparatus, method for ensuring files and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JP2008305128A (ja) * 2007-06-07 2008-12-18 Panasonic Corp 情報処理装置及び改竄検証方法
JP2010182196A (ja) * 2009-02-06 2010-08-19 Kddi Corp 情報処理装置およびファイル検証システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JP2008305128A (ja) * 2007-06-07 2008-12-18 Panasonic Corp 情報処理装置及び改竄検証方法
JP2010182196A (ja) * 2009-02-06 2010-08-19 Kddi Corp 情報処理装置およびファイル検証システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020262412A1 (ja) * 2019-06-27 2020-12-30 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP2021005336A (ja) * 2019-06-27 2021-01-14 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP7378980B2 (ja) 2019-06-27 2023-11-14 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
EP3819800A1 (en) 2019-11-07 2021-05-12 Ricoh Company, Ltd. Information processing apparatus, method for ensuring files and storage medium

Also Published As

Publication number Publication date
JP6744256B2 (ja) 2020-08-19

Similar Documents

Publication Publication Date Title
US10656936B2 (en) Systems and methods for software integrity validation using blockchain
KR101804996B1 (ko) 집중형 동작 관리
JP5932837B2 (ja) コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
KR101692817B1 (ko) 손상된 소프트웨어의 치료
US9092598B2 (en) Version-based software product activation
JP5582909B2 (ja) プラットフォーム完全性検証システム
US20170270301A1 (en) Systems And Methods Using Virtual UEFI Path For Secure Firmware Handling In Multi-Tenant Or Server Information Handling System Environments
JP2021518705A (ja) ブロックチェーン台帳のためのランタイム自己修正
JP2019500676A (ja) ソフトウェア開発のためのソフトウェアリスク制御方法およびシステム
US20100122090A1 (en) Secure Bytecode Instrumentation Facility
US11281768B1 (en) Firmware security vulnerability verification service
US10776493B2 (en) Secure management and execution of computing code including firmware
US20100169879A1 (en) Resource distribution system and method
KR20220090537A (ko) 정책 적용을 위한 가상 환경 유형 검증
JP6712207B2 (ja) セキュリティ対策装置
JP6744256B2 (ja) 確認システム、制御装置及び確認方法
US7526811B1 (en) Methods for detecting executable code which has been altered
JP2019046266A (ja) 情報処理装置、情報処理方法およびプログラム
US11847227B2 (en) Firmware version corruption attack prevention
CN111158771B (zh) 处理方法、装置及计算机设备
JP7084160B2 (ja) 起動制御装置、起動制御システム、起動制御方法、及び、起動制御プログラム
US11921858B2 (en) System and method for protecting against alterations in chain of trust sequences
KR102369874B1 (ko) 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
JP7341376B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
WO2020027159A1 (ja) 情報処理装置、検証方法および検証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200713

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: 20200728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200730

R150 Certificate of patent or registration of utility model

Ref document number: 6744256

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150