JP4932034B2 - ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム - Google Patents
ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム Download PDFInfo
- Publication number
- JP4932034B2 JP4932034B2 JP2010505049A JP2010505049A JP4932034B2 JP 4932034 B2 JP4932034 B2 JP 4932034B2 JP 2010505049 A JP2010505049 A JP 2010505049A JP 2010505049 A JP2010505049 A JP 2010505049A JP 4932034 B2 JP4932034 B2 JP 4932034B2
- Authority
- JP
- Japan
- Prior art keywords
- update
- module
- information
- update module
- modules
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Description
本発明は、改ざんされた更新モジュールによる不正な動作を防止するソフトウェア更新装置を提供することを目的とする。
ここで、前記更新モジュール群に含まれる複数の更新モジュールの各々を無効化するための所定の情報を格納し、所定の暗号鍵で暗号化されたアクセス制御モジュールをさらに備え、前記他の更新モジュールは、前記外部サーバにアクセスして前記外部サーバから前記所定の暗号鍵に対応した復号鍵を取得し、前記取得した復号鍵を用いてアクセス制御モジュールを復号し、前記不正動作を行う可能性があると検証された更新モジュールを無効化するための所定の情報を前記アクセス制御モジュールから取得し、前記所定の情報に基づいて前記不正動作を行う可能性があると検証された更新モジュールを無効化するとしてもよい。
また、アクセス制御モジュールは所定の暗号鍵で暗号化されているので、所定の情報が外部に漏れるのを防止できる。したがって、例えば、不正動作を行う可能性があると検証された更新モジュールを無効化するための所定の情報が事前に書き換えられて、当該更新モジュールが無効化されずに残存することを防止することができる。
また、前記他の更新モジュールは、前記格納位置情報に基づいて、前記不正動作を行う可能性があると検証された更新モジュールの全体を消去することで無効化するとしてもよい。
ここで、前記格納位置情報は、前記更新モジュールが無効化される際に消去される消去部分を示し、前記他の更新モジュールは、前記格納位置情報に基づいて、前記不正動作を行う可能性があると検証された更新モジュールの消去部分を消去することで無効化するとしてもよい。
ここで、前記格納位置情報は、前記更新モジュールが無効化される際に消去されるコード部分を示し、前記他の更新モジュールは、前記格納位置情報に基づいて、前記不正動作を行う可能性があると検証された更新モジュールのコード部分を消去することで無効化するとしてもよい。
ここで、前記他の更新モジュールは、前記不正動作を行う可能性があると検証された更新モジュールを無効化した場合、前記アクセス制御モジュールに格納されている、無効化した更新モジュールについての所定の情報を消去するとしてもよい。
(実施の形態1)
1.ソフトウェア更新システム1000の構成
図1は、本発明の実施の形態1において、本発明に係るソフトウェア更新装置が適用されたソフトウェア更新システム1000の全体構成図である。ソフトウェア更新システム1000は、図1に示すように、機器100と更新サーバ200とから構成され、機器100は、ネットワークを介して更新サーバ200と接続されている。
機器100は、ネットワークを介して、例えば、コンテンツ配信サーバから音楽や映像等のコンテンツを購入し再生したり、金融機関のシステムにアクセスし、ネットバンキング(預金の残高照会や口座振り込み等)を行ったりするなど、ユーザに対してネットワークを利用した様々な機能を提供するデータ処理装置である。
アプリ110、111は、機器100を使用するユーザに対して、ネットワークを利用した機能を提供するソフトウェアであり、例えば、ネットワーク上のコンテンツ配信サーバ(不図示)から音楽や映像等のコンテンツを購入し、購入したコンテンツを再生するソフトウェアや、ネットワークを介して金融機関のシステム(不図示)にアクセスし、預金の残高照会や口座振り込み等のネットバンキングを行うソフトウェア等である。
保護制御モジュール120は、攻撃者によりアプリ110、111が解析され、認証鍵等の秘匿データが抜き取られないようにアプリ110、111を保護するための機能を有するモジュールである。アプリを保護するための機能としては、例えば、アプリを利用しない時には暗号化して保存しておき、アプリを利用する時にのみ復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作していないかをチェックする解析ツール検出機能などがある。保護制御モジュール120は、これらの機能の動作を制御し、アプリ110、111を保護する。
更新モジュール群130は、複数の更新モジュール(ここでは3つ)から構成される。更新モジュール131、132、133は、機器100内部のソフトウェア(ここでは保護制御モジュール120)が改ざんされていないかを検出し、改ざんされている場合には、機器100外部の更新サーバ200から更新用のソフトウェア(保護制御モジュール121)をダウンロードし保護制御モジュールを更新する機能を持つ。
更新サーバ200は、機器100内部のソフトウェア(ここでは保護制御モジュール120)を更新するために必要な更新用のソフトウェア(保護制御モジュール121)を機器100に配布するソフトウェア配布装置である。
更新サーバ200は、更新用ソフトウェア配布モジュール210とアクセス情報取得鍵配布モジュール220とを含んで構成される。
アクセス情報取得鍵配布モジュール220は、機器100内部の更新モジュール131、132、133からのアクセス情報取得鍵取得要求に応じて、アクセス情報取得鍵を更新モジュールへ配布するモジュールである。
なお、機器100と更新サーバ200との間のネットワークを介した通信には、通信データが暗号化されるなど、セキュリティの確保された通信路を用いてもよい。
2.更新モジュールの詳細な構成
図2は、更新モジュールの機能ブロック図である。実際には、この構成は更新モジュールの数だけ存在するが、ここでは、代表的に更新モジュール131のものだけ示す。他の更新モジュールの構成も基本的に同一構成である。同図に示すように、更新モジュール131は、監視制御部301、改ざんチェック実行部302、更新制御部303、復号部304、認証部305、署名公開鍵保持部306、検証鍵保持部307、認証鍵対保持部308、MAC値保持部309、分散情報保持部310、アクセス情報取得部311、及び無効化処理部312を含んで構成される。
また、定期的あるいは不定期に、保護制御モジュール120の改ざんチェックを実施し、改ざんを検出した場合には、更新ソフトウェア配布モジュール210及び他の更新モジュールに改ざん検出通知を送信する。その一方で、他の更新モジュールから保護制御モジュール120の改ざん検出通知を受け付けた場合には、保護制御モジュール120の改ざんチェックを実施し、チェック結果を更新用ソフトウェア配布モジュール210に送信する。
更新制御部303は、機器100内部のソフトウェア(保護制御モジュール120)の更新を制御する。具体的には、他の更新モジュールまたは更新用ソフトウェア配布モジュール210から、暗号化されている更新用の保護制御モジュール121を受け取り、更新用ソフトウェア配布モジュール210から、更新用の保護制御モジュール121の証明書(例えば、更新用の保護制御モジュール121のハッシュ値が記述されている)、及び更新用の保護制御モジュール121を復号するための復号鍵を受け取ると、当該更新用の保護制御モジュール121を復号部304に復号させ、復号された更新用の保護制御モジュール121を他の更新モジュールへ送信し、あるいは機器100内部の保護制御モジュール120を復号された更新用の保護制御モジュール121に更新する。
復号部304は、暗号化された更新用の保護制御モジュール121の復号を更新制御部303から依頼されると、更新制御部303から入力される復号鍵を用いて、暗号化された更新用の保護制御モジュール121を復号する。更新用ソフトウェア配布モジュール210から入力される復号鍵は、復号部304が保持する、更新モジュール131固有の鍵を用いて暗号化された状態あるため、復号部304は、復号鍵を使用する前に、更新モジュール131固有の鍵を用いて当該復号鍵を復号する。
署名公開鍵保持部306は、署名公開鍵を保持する。署名公開鍵は、更新モジュール131が機器100内のソフトウェア(保護制御モジュール120)の改ざんチェックを、改ざん検出用証明書を用いて行う場合に使用される。署名公開鍵と更新用ソフトウェア配布モジュール210が保持する署名秘密鍵とは、公開鍵暗号方式における鍵対になる。
認証鍵対保持部308は、認証鍵対を保持する。認証鍵対は、更新モジュール131と更新用ソフトウェア配布モジュール210とが相互認証処理を行うときに用いられる。認証鍵対は、公開鍵暗号方式における公開鍵(認証公開鍵)と秘密鍵(認証秘密鍵)との鍵対で構成される。認証公開鍵には、更新用ソフトウェア配布モジュール210が保持する署名秘密鍵を用いて生成された証明書(認証鍵証明書)が付加されている。
分散情報保持部310は、保護制御モジュール120から入力される、分散情報(share)と暗復号鍵証明書とを保持する。
3.更新用ソフトウェア配布モジュール210の詳細な構成
図3は、本発明の実施の形態1における更新用ソフトウェア配布モジュール210の機能ブロック図である。同図に示すように、更新用ソフトウェア配布モジュール210は、暗号鍵生成部401、暗号処理部402、暗号鍵保持部403、認証部404、更新判定部405、不正モジュール判定部406、更新モジュール選択部407、証明書生成部408、署名秘密鍵保持部409、及び更新用ソフトウェア保持部410から構成される。
暗号処理部402は、更新用ソフトウェア保持部410から更新用の保護制御モジュール121を取得し、暗号鍵生成部401から入力される複数の暗号鍵を用いて、取得した更新用の保護制御モジュール121を多重に暗号化する。そして、暗号化された更新用の保護制御モジュール121及び複数の暗号鍵を更新モジュール選択部407に送信する。
認証部404は、更新モジュール131、132、133と相互認証の処理を行う。具体的には、更新モジュールから送信される認証鍵(公開鍵)を用いて更新モジュール131、132、133を認証し、認証結果を更新判定部405に送信する。
さらに、更新モジュール131、132、133から入力される検証結果通知に基づいて、保護制御モジュールが正しく更新されたか判定し、判定結果に応じて、保護制御モジュール120の更新終了通知を更新モジュール131、132、133に送信する。
また、正常な更新モジュールに対し、改ざんされた更新モジュールを無効化するよう指示するとともに、アクセス情報取得鍵配布モジュール220に無効化に関する情報を通知する。
署名秘密鍵保持部409は、証明書生成部408による証明書の生成に用いられる署名秘密鍵を保持する。
更新用ソフトウェア保持部410は、保護制御モジュール120が改ざんされた場合に用いられ、当該保護制御モジュールを更新するための更新用の保護制御モジュール121を保持する。ここで、更新用の保護制御モジュール121は、正常なものであることが保障されているものとし、必ずしも最新版の保護制御モジュールである必要はない。
4.保護制御モジュールの詳細な構成
図4は、本発明の実施の形態1における保護制御モジュール120の機能ブロック図である。同図に示すように、保護制御モジュール120は、制御部501、復号ロード部502、改ざん検出部503、解析ツール検出部504、暗復号鍵保持部505、暗復号鍵生成部506、暗復号鍵分散部507、証明書生成部508、及び暗復号鍵復元部509を含んで構成される。
復号ロード部502は、暗号化されて機器100内部に保持されているアプリ110、111が実行される際に、暗復号鍵保持部505に保持されている暗復号鍵を用いてアプリを復号し、メモリ上にロードする処理を行う。
さらに、後述する再暗号化処理において、暗復号鍵復元部509から入力される復元された旧暗復号鍵を用いてアプリ110、111を復号し、暗復号鍵保持部505に保持されている新たな暗復号鍵でアプリ110、111を暗号化する。
解析ツール検出部504は、攻撃者がアプリ110、111を攻撃しようとして、デバッガ等の解析ツールをインストールし動作させたときに、解析ツールの動作を検出する。検出方法としては、例えば、ファイル名を検索する方法や、デバッガが使用する特殊なレジスタが使われているかを調べる方法、デバッガが設定する割り込みを検出する方法などがある。
暗復号鍵生成部506は、暗復号鍵復元部509から暗復号鍵を復元した旨の通知を受け付けると、アプリ110、111を暗復号するための新たな暗復号鍵を生成する。生成した暗復号鍵を暗復号鍵保持部505、証明書生成部508、及び暗復号鍵分散部507に送信する。
証明書生成部508は、暗復号鍵生成部506から入力される暗復号鍵に基づいて証明書を生成し、生成した証明書を更新モジュール131、132、133に送信する。証明書は、暗復号鍵から生成される分散情報を復元する際に、正しく復元できたかの検証に使用される。
5.アクセス制御モジュール
図5は、本発明の実施の形態1におけるアクセス制御モジュール140の機能ブロック図である。同図に示すように、アクセス制御モジュール140は、通信部601と、アクセス情報保持部602とから構成される。
アクセス情報保持部602は、更新モジュール毎に当該更新モジュールを消去するためのアクセス情報を保持する。アクセス情報は、更新モジュール毎にそれぞれ個別のアクセス情報取得鍵で暗号化され、識別子(更新モジュール識別子)等により、各更新モジュールと対応付けられる。
6.アクセス情報取得鍵配布モジュール
図6は、本発明の実施の形態1におけるアクセス情報取得鍵配布モジュール220の機能ブロック図である。同図に示すように、アクセス情報取得鍵配布モジュール220は、通信部701と、アクセス情報取得鍵保持部702とから構成される。
7.機器100のハードウェア構成
続いて、機器100のハードウェア構成について説明する。図7は、機器100のハードウェア構成を示す図である。同図に示すように、機器100は、CPU(Central Processing Unit)11、不揮発メモリ(例えば、EEPROM(ElectricallyErasable and Programmable Read Only Memory))12、RAM(Random Access Memory)13、及びNIC(NetworkInterface Card)14等を含んで構成され、これらはバスを介して相互に通信可能に接続されている。
EEPROM12に格納されている制御用の各種モジュールをCPU11が実行することにより、各種モジュールの各機能部の制御は実現される。各機能部は、具体的には、コンピュータプログラムによって記述され実現される。
NICは、ネットワークに接続するための拡張カードである。
8.ソフトウェア階層
続いて、機器100におけるソフトウェア階層について説明する。図8は、機器100のソフトウェア階層を示す図である。同図に示すように、アクセス制御モジュール140及び更新モジュール群130は、OS150の中に組み込まれている。アプリ110、111はOS150上で動作し、保護制御モジュール120はブートローダ160等とともにOSの管理外にある。機器100の起動の際には、まず保護制御モジュール120及び更新モジュール群130が起動された上でアプリケーションが実行される。
9.ソフトウェア更新システム1000の動作
9.1.ソフトウェア更新システム1000の動作概略
続いて、ソフトウェア更新システム1000の動作を説明する。初めに、ソフトウェア更新システム1000の大まかな処理を説明する。大まかな処理として、以下の7つの処理がある。
2つ目の処理は、機器100内部のソフトウェア(保護制御モジュール120)が改ざんされていないかを検知する処理(検知処理)である。
4つ目の処理は、更新モジュール131、132、133と更新用ソフトウェア配布モジュール210とが互いに正しいソフトウェアであるかどうかを確認するために、相互に行う認証処理(相互認証処理)である。
6つ目の処理は、次のソフトウェア更新のための鍵データや分散情報を生成し、各更新モジュールに埋め込む処理(次ラウンド準備処理)である。
上記7つの処理のうち、無効化処理以外の6つの処理の関係は、図9に示す関係になる。無効化処理は、それぞれの処理の中で必要に応じて呼び出される。図9は、ソフトウェア更新システム1000の全体的な動作の流れを示すフローチャートである。
ユーザにより機器100が利用される際には、機器100内部では、保護制御モジュール120がアプリ110、111を攻撃者による攻撃から保護する。これと同時に、更新モジュール131、132、133が保護制御モジュール120の改ざん検出を実施し、保護制御モジュール120が攻撃されていないかをチェックする検知処理を行う(ステップS200)。
なお、上記すべての処理が必要ではなく、少なくとも外部から更新のトリガを与えられて、更新を行う処理(回復処理)があればよい。
9.2.初期設計時の動作
まず、初期化処理について説明する。図11は、初期設計時のソフトウェア更新システム1000の動作の流れを示すフローチャートである。本フローチャートにおいて、更新モジュール131、132、133の各々が個別に行う処理を、更新モジュール群としてまとめて記載している。
図11に戻って、各ソフトウェアのインストール後、機器100の初期設定を行うソフトウェアや、正常に動作するかをテストするためのソフトウェアなどを実行し、初期化処理を行い(ステップS102)、保護制御モジュール120及び更新モジュール131、132、133に初期化指示を送信する(ステップS103)。初期化指示を受信する保護制御モジュール120及び更新モジュール131、132、133でもそれぞれ初期化処理が行われる。
図12は、更新モジュール初期化処理を示すフローチャートである。本図では、代表的に更新モジュール131のものだけ示す。他の更新モジュールの動作も基本的に同一である。
改ざん検出対象となる他の更新モジュール及び保護制御モジュール120の改ざん検出用証明書の検証を実施する(ステップS112)。この検証は、各モジュールからハッシュ値を生成し、生成したハッシュ値とそれぞれの改ざん検出用証明書に記述されているハッシュ値とを比較することにより行われる。
9.3.検知時の動作
続いて、検知処理について説明する。機器100は、初期化処理を終えると工場から出荷され、ユーザの元へ送られる。ユーザが機器100を使用し、アプリ110、111を利用しているときには、機器100内部では、保護制御モジュール120が復号ロード機能や改ざん検出機能、解析ツール検出機能などの機能を制御し、アプリ110、111を攻撃者による攻撃から保護する。
保護制御モジュール120が改ざんされていないと判定した場合には(ステップS202でNo)、更新用ソフトウェア配布モジュール210や他の更新モジュールへの通知を行わず、改ざん検出処理(S201)へ戻る。
更新用ソフトウェア配布モジュール210は、更新モジュール131から改ざん検出通知を(ステップS204a)、更新モジュール132、133から改ざんチェック結果をそれぞれ受信する(ステップS207)。
続いて、解析判断処理について説明する。図14、15は、解析・判断時のソフトウェア更新システム1000の動作の流れを示すフローチャートである。本フローチャートにおいて、更新モジュール131、132、133の各々が個別に行う処理を、更新モジュール群としてまとめて記載している。
保護制御モジュール120が改ざんされていると判定した場合には(ステップS301でYes)、更新用ソフトウェア配布モジュール210は、更新モジュール131、132、133に対して保護制御モジュール120のどの部分が改ざんされたかを示す改ざん情報を通知するよう依頼する(ステップS303)。
更新用ソフトウェア配布モジュール210は、更新モジュール群から改ざん情報を受信すると(ステップS307)、受信した改ざん情報を解析し(ステップS308)、解析結果に基づいて、保護制御モジュール120を無効化するか否かを判断する(ステップS309)。
保護制御モジュール120を無効化しないと判断した場合には(ステップS309でNo)、保護制御モジュール120を更新するか否かを判断する(ステップS312)。
保護制御モジュール120を更新しないと判断した場合には(ステップS312でNo)、検知処理に戻る(ステップS302)。
9.5.相互認証時の動作
続いて、相互認証処理について説明する。解析・判断処理において、保護制御モジュール120を更新する必要があると判断され、更新モジュール131、132、133へ認証処理の開始を指示した後、更新用ソフトウェア配布モジュール210と各更新モジュール131、132、133との間で、それぞれ1対1の相互認証処理が行われる。これにより、機器100が不正な更新サーバへ接続されることや、更新サーバ200が不正な機器へ接続されることを防止することができる。相互認証には、更新サーバ200は署名秘密鍵と署名公開鍵を使用し、各更新モジュール131、132、133は認証鍵対(認証秘密鍵、認証公開鍵)を使用する。
更新用ソフトウェア配布モジュール210は、各更新モジュールからチャレンジデータを受信すると(ステップS403)、受信したチャレンジデータに対し、署名秘密鍵を用いて署名生成を行い(ステップS404)、生成した署名をレスポンスデータとして、送信してきた更新モジュールへ返信する(ステップS405)。
検証した結果、レスポンスデータが送信したチャレンジデータに対する署名になっている、すなわち、更新用ソフトウェア配布モジュール210が正当なモジュールである場合には(ステップS408でYes)、処理を継続する。
次に、更新用ソフトウェア配布モジュール210がそれぞれの更新モジュール131、132、133を認証する。図17は、更新用ソフトウェア配布モジュール210がそれぞれの更新モジュール131、132、133を認証する時のソフトウェア更新システム1000の動作の流れを示すフローチャートである。本フローチャートにおいて、更新モジュール131、132、133の各々が個別に行う処理を、更新モジュール群としてまとめて記載している。
更新モジュール群は、更新用ソフトウェア配布モジュール210からチャレンジデータを受信すると(ステップS413)、受信したチャレンジデータに対し、認証秘密鍵を用いて署名生成を行い(ステップS414)、生成した署名をレスポンスデータとして更新用ソフトウェア配布モジュール210へ返信する(ステップS415)。その際、認証公開鍵と認証鍵証明書とを併せて更新用ソフトウェア配布モジュール210へ返信する(ステップS415)。
検証した結果、認証鍵証明書あるいは認証公開鍵に問題があれば(ステップS418でNo)、処理を停止する(ステップS419)。
正当なモジュールであると検証できた更新モジュールが、回復処理に必要な数を満たすと判定した場合には(ステップS421でYes)、正当なモジュールであると検証できた更新モジュールに更新処理開始指示を送信し(ステップS422)、正当なモジュールであると検証された更新モジュールは、更新処理開始指示を受信する(ステップS423)。以上で相互認証処理を終了する。
9.6.回復時の動作
続いて、回復処理について図18〜24を用いて説明する。相互認証処理において、相互認証が成功した場合には、改ざんされた保護制御モジュール120を更新用の保護制御モジュール(更新用保護制御モジュール)121へ更新する回復処理を実施する。図18は、回復処理時のソフトウェア更新システム1000の動作の流れを示すフローチャートである。回復処理は、大きく3つの処理からなる。
2つ目の処理は、更新用保護制御モジュール121を用いて保護制御モジュール120を更新する更新処理(ステップS502)である。
3つ目の処理は、暗号化されたアプリ110、111を再暗号化する再暗号化処理(ステップS503)である。
上記3つの処理について、その詳細を順に説明する。
監視処理では、更新モジュール群130内の更新モジュール131、132、133が、更新モジュール群130内の他の更新モジュールに対して改ざん検出の処理を実施する。これにより、回復処理中に一部の更新モジュールが攻撃者により改ざんされた場合にも、改ざん検出が可能となる。さらに、監視処理を定期的に実施することで、更新用保護制御モジュール121が完全に漏洩する前に改ざんを検出し、漏洩を防止することが可能となる。
まず、更新モジュール131は、更新モジュール132に対し改ざん検出処理を実施し(ステップS511a)、更新モジュール132は、更新モジュール133に対し改ざん検出処理を実施し(ステップS511b)、更新モジュール133は、更新モジュール131に対し改ざん検出処理を実施する(ステップS511c)。改ざん検出は、更新モジュール131、132、133のMAC値を、検証鍵を使用して計算し、MAC値テーブルに保持されている、初期設計時に計算したMAC値と比較することにより、行われる。また、更新モジュール131、132、133のハッシュ値を算出し、算出したハッシュ値と、各更新モジュールに予め付加されている証明書に記述されているハッシュ値とを比較することにより行われるとしてもよい。
更新用ソフトウェア配布モジュール210は、各更新モジュールから改ざん検出結果を受信し(ステップS513)、改ざんされた更新モジュールがあるか否かを判定する(ステップS514)。
改ざんされた更新モジュールがないと判定した場合には(ステップS514でNo)、処理を継続する。
続いて更新処理について説明する。更新処理では、更新用ソフトウェア配布モジュール210が更新用保護制御モジュール121を複数の鍵を用いて多重に暗号化し、更新モジュール群130に含まれる更新モジュールを送信先として送信する。更新モジュール群130に含まれる複数の更新モジュールは、保護制御モジュール120を更新用保護制御モジュール121に更新する。この時、多重に暗号化された更新用保護制御モジュール121を復号するための複数の鍵を、更新モジュール群130に含まれる各更新モジュールへ送信するタイミングを更新用ソフトウェア配布モジュール210が制御することで、攻撃者が暗号化されていない更新用保護制御モジュール121を入手することを不可能にする。
まず、更新用ソフトウェア配布モジュール210は、更新用保護制御モジュール121が機器100に正しくインストールされたかを更新モジュール131、132、133が検証できるように、更新用保護制御モジュール121の証明書(更新検証証明書)を、証明書生成部408を用いて生成し(ステップS521)、生成した更新検証証明書を各更新モジュール131、132、133へ送信する(ステップS522)。更新検証証明書の生成には、署名秘密鍵を利用する。各更新モジュールは、更新検証証明書を受信する(ステップS523)。
更新モジュール131は、多重暗号化更新用保護制御モジュール121及び第1の鍵を受信すると(ステップS529)、第1の鍵を用いて、多重暗号化更新用保護制御モジュール121を復号し、暗号化更新用保護制御モジュール121を取得する(ステップS530)。復号が終了すると、復号終了通知を更新用ソフトウェア配布モジュール210に送信する(ステップS531)。
更新モジュール132は、更新用ソフトウェア配布モジュール210から第2の鍵を受信し(ステップS535)、更新モジュール131から暗号化更新用保護制御モジュール121を受信すると(ステップS539)、第2の鍵を用いて、暗号化更新用保護制御モジュール121を復号し、更新用保護制御モジュール121を取得する(ステップS540)。
更新用ソフトウェア配布モジュール210は、各更新モジュールから送信された検証結果を受信すると(ステップS546)、受信した検証結果から保護制御モジュール121が正しく更新されたかを判定し(ステップS547)、正しく更新されていないと判定した場合には(ステップS547でNo)、機器100を停止する(ステップS548)。
更新モジュール131、132、133はそれぞれ、更新処理の終了の通知を受けると(ステップS550)、保護制御モジュール121のMAC値を生成し、MAC値テーブルに保護制御モジュール121の識別子とMAC値との組を保存する(ステップS551)。
続いて、監視処理と更新処理との関係について説明する。上述した監視処理と更新処理とは、互いに連携しながら実行される。
監視処理は、更新用ソフトウェア配布モジュール210から、更新モジュール群130に含まれる更新モジュールを送信先として、複数の鍵が送られる時と、暗号化された更新用保護制御モジュールの更新モジュール群130に含まれる更新モジュールでの復号処理中に定期的に実施される。定期的に実施する際の時間間隔は、例えば、更新用保護制御モジュール121が通信路を通して完全に外部に出力されるまでの時間より短い間隔である。完全に外部に出力されるまでに1秒かかるのであれば、例えば、それより短い500ミリ秒間隔のタイミングで監視処理を実行する。
まず、回復処理の開始後、更新サーバ200から機器100へ多重暗号化更新用保護制御モジュール121が送付される前に、機器100内部で監視処理(監視1)を実施する。更新処理を開始するにあたって、不正な更新モジュールが機器100内部に存在しないことを検証するためである。
さらに、更新モジュール131が第1の鍵を受信し、第1の鍵を用いて多重暗号化更新用保護制御モジュール121を復号する間、定期的に更新モジュール131による復号処理を中断し、監視処理(監視3−1、3−2)を実施する。これにより、復号処理中に、更新モジュール131、132、133の何れかが攻撃されたとしても、暗号化更新用保護制御モジュール121が全て漏洩する前に攻撃者による攻撃を検出することができ、暗号化更新用保護制御モジュール121の漏洩を防止することが可能となる。
さらに、更新モジュール132が第2の鍵を受信した後、第2の鍵を用いて暗号化更新用保護制御モジュール121を復号する間、定期的に更新モジュール132による復号処理を中断し、監視処理(監視5−1、5−2)を実施する。これにより、更新用保護制御モジュール121が全て漏洩する前に攻撃者による攻撃を検出することができ、更新用保護制御モジュール121の漏洩を防止することが可能となる。
続いて、再暗号化処理について説明する。再暗号化処理では、更新用保護制御モジュール121が、各更新モジュールが保持している分散情報を取得し、取得した分散情報から、更新前の保護制御モジュール120が保持していた暗復号鍵(旧暗復号鍵)を復元する。さらに、新たに暗復号鍵(新暗復号鍵)を生成し、復元した旧暗復号鍵を用いて、暗号化されたアプリ110、111を復号した後、新暗復号鍵を用いて、アプリ110、111を再暗号化する。
まず、更新された保護制御モジュール121が、各更新モジュール131、132、133に対して、それぞれが保持している分散情報と暗復号鍵証明書とを送信するよう依頼する(ステップS561)。
保護制御モジュール121は、更新モジュール群から分散情報と暗復号鍵証明書とを受信すると(ステップS564)、受信した分散情報から更新前の保護制御モジュール120が使用していた暗復号鍵(旧暗復号鍵)を復元する(ステップS565)。そして、旧暗復号鍵が正しく復元されたか否かを、暗復号鍵証明書を用いて検証する(ステップS566)。
ここで、不正な更新モジュールを特定するための方法としては、以下の方法がある。まず、保護制御モジュール121は、各更新モジュールから分散情報のペアを取得し、取得した各分散情報に、どの更新モジュールから取得したかを識別するための識別情報をつける。次に、同じ識別子が付された、同一の値となるべき分散情報同士をグループ化し、各グループ中の分散情報同士の値を比較し、同じ値になる分散情報同士をさらにグループ化(サブグループ)する。そして、全てのグループからサブグループを1つずつ選び出す組み合わせの全てに対して、それぞれ旧暗復号鍵を生成し、正しい旧暗復号鍵が生成できたかを検証する。検証した結果、正しい旧暗復号鍵が生成できた場合は、当該組み合わせで選択されているサブグループに検証を通ったことを表す検証通過識別情報を付す。全ての組み合わせで旧暗復号鍵の生成及び検証を行った後、検証通過識別情報が付されているサブグループに含まれる分散情報を取り除く。ここで取り除かれずに残った分散情報が不正な値になっている分散情報である。そして、この分散情報の識別情報から当該分散情報を保持していた更新モジュールを特定する。これにより、識別情報に対応する更新モジュールが不正な分散情報を保持していた不正な更新モジュールであると特定することができる。
続いて、次ラウンド準備処理について説明する。回復処理の終了後、次の回復処理のための準備を行う次ラウンド準備処理を実施する。次ラウンド準備処理では、初期設計時の初期化処理と同様に、分散情報の生成と埋め込みを行う。
図25は、次ラウンド準備時のソフトウェア更新システム1000の動作の流れを示すフローチャートである。本フローチャートにおいて、更新モジュール131、132、133の各々が個別に行う処理を、更新モジュール群としてまとめて記載している。
なお、この時、相互認証時において認証に失敗した不正な更新モジュールや、回復処理内の監視処理において検出した不正な更新モジュール、回復処理内の再暗号化処理において炙り出した不正な更新モジュールに対しては、分散情報を送信しない。
続いて、無効化処理について説明する。無効化処理は、相互認証時において認証に失敗した更新モジュールが存在した場合や、回復処理内の監視処理において改ざんされた更新モジュールを検出した場合、回復処理内の再暗号化処理において不正な更新モジュールを炙り出した場合等に、機器100内部に存在する不正な更新モジュールを無効化する処理である。
まず、更新用ソフトウェア配布モジュール210は、監視処理において更新モジュール131、132、133から受信した改ざん検出結果に基づいて、どの更新モジュールが改ざんされたかを判定する(ステップS701)。この例では、更新モジュール133が改ざんされていると判定し、それ以外の更新モジュールは改ざんされていないと判定する。
正しい依頼であると判断した場合には(ステップS709でYes)、依頼元の更新モジュール131へ、更新モジュール133を無効化するためのアクセス情報取得鍵を送付する(ステップS710)。
更新モジュール131は、アクセス制御モジュール140から暗号化アクセス情報を受信し(ステップS713)、アクセス情報取得鍵配布モジュール220からアクセス情報取得鍵を受信すると(ステップS714)、受信したアクセス情報取得鍵を用いて暗号化アクセス情報を復号し、アクセス情報を取得する(ステップS715)。取得したアクセス情報は、更新モジュール133を消去するための専用ドライバである。更新モジュール131は、そのドライバを利用して、RAM13上に展開されている、改ざんされた不正な更新モジュール133を無効化する(ステップS716)。
以上のように本実施の形態によれば、回復処理において、更新モジュール群内の複数の更新モジュールが監視処理を行うので、改ざんされた更新モジュールを検出することが可能となり、ソフトウェア更新システムの信頼性を高めることができる。
(実施の形態2)
実施の形態2では、保護制御モジュール120が、復号ロード機能や改ざん検出機能、解析ツール検出機能等の機能を制御し、アプリ110、111を攻撃者による攻撃から保護するだけではなく、更新モジュール131、132、133を攻撃者による攻撃から保護する。これにより、更新モジュール131、132、133が一方的に保護制御モジュール120の改ざんを検出するだけでなく、更新モジュール131、132、133と保護制御モジュール120とが相互に監視し合う構成とすることができる。
改ざんを検出しなかった場合には、更新用ソフトウェア配布モジュール210への通知は行わない。
以降の処理は、本発明の実施の形態1における検知処理において、更新モジュール131、132、133から更新用ソフトウェア配布モジュール210へ、保護制御モジュール120の改ざんを検出した旨の通知があった場合の処理と同様であるので、ここでは省略する。
(実施の形態3)
実施の形態3では、各更新モジュールに保護制御モジュール120を更新するための機能を予め持たせるのではなく、保護制御モジュール120の改ざんを検出し、保護制御モジュール120を更新する必要が生じた時に、保護制御モジュール120を更新するためのアクセス情報を取得することにより、保護制御モジュール120を更新する機能を更新モジュールに付加する。
また、本実施の形態におけるアクセス情報モジュール140は、各更新モジュールのアクセス情報に加え、保護制御モジュール120を更新するための暗号化アクセス情報を保持している。
更新処理(ステップS502)において、更新用ソフトウェア配布モジュール210が更新用保護制御モジュール121を複数の鍵を用いて多重に暗号化し、多重暗号化更新用保護制御モジュールと第1の鍵とを、更新モジュール群に含まれる更新モジュール131を送信先として送信する(ステップS521からS528)。
更新用保護制御モジュールを取得後、更新モジュール132は、保護制御モジュール120を更新用保護制御モジュール121へ更新するために、アクセス情報取得鍵配布モジュール220に対し保護制御モジュール120を更新するためのアクセス情報取得鍵を送付するよう依頼する。さらに、アクセス制御モジュール140に対し保護制御モジュール120を更新するためのアクセス情報を送信するよう依頼する。
更新モジュール132は、アクセス情報取得鍵配布モジュール220からアクセス情報取得鍵を受信し、アクセス制御モジュール140から暗号化アクセス情報を受信すると、受信したアクセス情報取得鍵を用いて、暗号化アクセス情報を復号し、アクセス情報を取得する。取得したアクセス情報は、保護制御モジュール120を更新するための専用ドライバである。更新モジュール132は、そのドライバを利用して、保護制御モジュール120を更新用保護制御モジュール121へ更新する(ステップS541)。そして、更新の終了を他の更新モジュールへ通知する(ステップS542)。
(その他の変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
更新モジュールの更新処理では、保護制御モジュールを更新する場合と同様に、更新用ソフトウェア配布モジュール210が更新用更新モジュール133を複数の鍵を用いて多重に暗号化し、更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)を送信先として送信する。更新モジュール群130に含まれる更新モジュールは、更新モジュール133を更新用更新モジュール133に更新する。この時、多重に暗号化された更新用更新モジュール133を復号するための複数の鍵を、更新モジュール群130に含まれる更新モジュールへ送信するタイミングを更新用ソフトウェア配布モジュール210が制御することで、攻撃者が暗号化されていない更新用更新モジュール133を入手することを不可能にする。
図28〜30は、基本的には、図20〜22と同様である。異なる点は、更新対象となる更新モジュール133には、更新検証証明書や、復号終了通知、更新終了通知が送信されないことである。
また、一つでも更新モジュールが改ざんされている場合には、改ざんされていない更新モジュールが全ての更新モジュール及び保護制御モジュールを更新あるいは無効化するとしてもよい。
また、一度に改ざん対象全てを改ざんチェックするのではなく、改ざん対象の一部を改ざんチェックするだけでもよい。この時、改ざん対象を一定のサイズに分割した部分毎に改ざんチェックしてもよいし、機能や関数単位で分割した部分毎に改ざんチェックしてもよい。さらに、改ざん対象の一部を、改ざんチェックの度に順番に改ざんチェックするとしてもよいし、改ざんチェックする部分を改ざんチェックの度にランダムに決定してもよし、どの部分を改ざんチェックするかが他のモジュールや機器100外部などから与えられるとしてもよい。
(6)上記実施の形態では、アクセス情報取得鍵配布モジュール220は、更新サーバ200にあり、アクセス制御モジュール140は、機器100にあるとしたが、これに限定するものではなく、アクセス情報取得鍵配布モジュール220とアクセス制御モジュール140とはそれぞれ、機器100にあってもよいし、更新サーバ200にあってもよいし、各更新モジュール内にあってもよい。
(7)上記実施の形態では、更新サーバ200は、更新用ソフトウェア配布モジュール210とアクセス情報取得鍵配布モジュール220とから構成されるとしたが、これに限定するものではなく、更新用ソフトウェア配布モジュール210とアクセス情報取得鍵配布モジュール220とは、1つのモジュールであってもよいし、どちらか1つのモジュールのみで構成されてもよい。
(9)上記実施の形態では、初期設計時の動作として、改ざん検出用証明書及び認証鍵証明書は、更新用ソフトウェア配布モジュール210が保持する署名秘密鍵を用いて生成された証明書であるとしたが、これに限定するものではなく、それぞれ別の鍵を用いて生成されてもよいし、更新用ソフトウェア配布モジュール210以外の証明書発行装置により発行された証明書でもよい。
(18)上記実施の形態では、相互認証時の動作として、更新サーバ200は署名秘密鍵と署名公開鍵とを使用して相互認証処理を実施するとしたが、これに限定するものではなく、署名秘密鍵と署名公開鍵とは別に、相互認証に使用する認証鍵対を用いるとしてもよい。この時、更新サーバ200の認証鍵対のうちの認証公開鍵は、予め更新モジュール131、132、133で保持するとしてもよいし、相互認証処理時に更新サーバ200から更新モジュール131、132、133へ送信するとしてもよい。
さらに、通常時と回復処理時とにおける検知頻度を変更するとしてもよい。例えば、通常時より回復処理時の検知頻度を高くすることにより、回復処理中の保護制御モジュールの保護に万全を期すことができる。検知頻度の変更は、回復処理中であってもよい。
別の方法として、暗号化した分割モジュールは1度に更新モジュールへ送信し、それらを復号するための鍵の送信のタイミングのみを制御するとしてもよいし、鍵は1度に更新モジュールへ送信し、暗号化した分割モジュールの送信のタイミングのみを制御するとしてもよいし、全ての鍵と暗号化した分割モジュールを1度に送信するとしてもよい。また、分割モジュールは、1つの鍵で暗号化されるのではなく、複数の鍵を用いて多重に暗号化されてもよい。
(30)本発明の実施の形態1において、無効化時の動作として、アクセス情報は、更新モジュールを消去するための専用ドライバであるとしたが、これに限定するものではなく、更新モジュールを消去するための専用プログラムであってもよいし、更新モジュールを消去するための手順が記された手順書であってもよいし、消去する更新モジュールのアドレスであってもよいし、更新モジュールを消去するプログラムのアドレスであってもよいし、更新モジュールを消去するための機能を動作させるためのレジスタやメモリのアドレスやレジスタやメモリに設定する値であってもよい。
(32)本発明の実施の形態1において、改ざんされた不正な更新モジュールを無効化するとしたが、これに限定するものではなく、改ざんされた不正な更新モジュールを無効化しないとしてもよい。この時、どのくらいの部分が改ざんされているか、どの部分が改ざんされたか等によって、無効化するかどうかを判断してもよいし、改ざんされた不正な更新モジュールの数によって無効化する更新モジュール数を決めてもよい。
(34)本発明の実施の形態2では、保護制御モジュール120が、更新モジュール131、132、133の改ざんを検出しなかった場合には、更新用ソフトウェア配布モジュール210へ通知を行わないとしたが、これに限定するものではなく、改ざんを検出しなかった旨を更新用ソフトウェア配布モジュール210へ通知してもよい。
(38)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、前記コンピュータプログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記コンピュータプログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(42)上記実施の形態では、アクセス制御モジュール140及び更新モジュール群130は、OS150の中に組み込まれているとしたが、更新モジュールがOSを更新する機能を備えている場合等には、更新モジュールは、OSの管理外にプログラムとして格納されているとしてもよい。また、保護制御モジュールがOSに組み込まれているとしてもよい。
(45)上記実施の形態では、アクセス情報は、更新モジュール毎にそれぞれ個別のアクセス情報取得鍵で暗号化されているとしたが、同一のアクセス情報取得鍵で暗号化されているとしてもよい。その場合には、正常な更新モジュールが更新サーバにアクセスして、アクセス情報取得鍵に対応した復号鍵を取得し、取得した復号鍵を用いてアクセス制御モジュールを復号し、アクセス制御モジュールから、改ざんされた更新モジュールに対応するアクセス情報を取得し、取得したアクセス情報に基づいて、改ざんされた更新モジュールを無効化するとしてもよい。
以下に、脱退処理及び追加処理の詳細を説明する。ここでは、機器100Aは6つの更新モジュール121A〜126Aを備えるものとして説明する。
脱退処理について、図30にて示す流れ図を用いて説明する。
この処理では、更新モジュールが不正な動作を行う可能性を考え、更新モジュール間で送信されるデータが正しいデータであるかを常に検証することで、不正な動作を行う更新モジュールが存在した場合に検知できるようにしている。さらに、各処理において、分散情報の値を更新する場合には、更新前の分散情報の値を退避しておき、脱退処理中に不正な動作を行う更新モジュールの存在を検知した場合には、脱退処理を中止し、分散情報の値を脱退処理前の値に戻すことで、分散情報が不正な値になることを防止する。
なお、脱退対象となるモジュールを更新モジュール121Aとし、部分情報の生成を更新モジュール126Aが行うものとして、以下説明する。
更新モジュール126Aは、第1他モジュール分散情報“d1_1”から5つの分散情報を生成し、配布する処理を行う(ステップS4000)。言い換えると、更新モジュール126Aは、第1他モジュール分散情報“d1_1”を、5つの分散情報に分散(分解)する。
更新モジュール122A〜126Aは、脱退時における第1及び第2更新処理を行い、それぞれが保持する分散情報、第1及び第2他モジュール分散情報を更新する(ステップS4100、S4150)。
なお、セキュリティの確保された通信路で分散情報を送りあい、受信した分散情報と同じ値かどうかを検証するとしたが、これに限定するものではなく、ゼロ知識証明などの暗号プロトコルを使用して検証してもよい。ゼロ知識証明については、非特許文献1の132〜150ページに、暗号プロトコルについては、非特許文献1の224〜225ページに詳しく説明されている。
(部分情報の生成処理)
ここでは、図30のステップS4000にて示す部分情報の生成処理について、図31にて示す流れ図を用いて説明する。
更新モジュール126Aの分散情報分割部261_6は、第1他モジュール分散情報“d1_1”211_6から5つの部分情報(d_1_1〜d_1_5)を生成する(ステップS4500)。このとき、各部分情報は、次式を満たすものとする。
具体的には、分散情報分割部261_6は、乱数生成器を用いて、(k−2)個(=4個)の乱数を生成することにより、部分情報(d_1_1〜d_1_4)を生成する。次に、分散情報分割部261_6は、
d_1_5 = d1_1 − (d_1_1+d_1_2+d_1_3+d_1_4)
により、d_1_5を算出する。このとき、減算結果が負の数になる事もあるが、そのまま部分情報として扱う。
具体的には、分散情報分割部261_6は、以下のように各部分情報を配布する。
(分散情報の検証処理)
ここでは、図30のステップS4050にて示す分散情報の検証処理について、図32にて示す流れ図を用いて説明する。
部分情報検証部264_2は、更新モジュール126Aから部分情報検証指示を、受信部257_jを介して受け取ると、更新モジュール121Aを除く残りのモジュール123A、124A、125A及び126Aそれぞれから部分情報d_1_2、d_1_3、d_1_4、d_1_5を収集する(ステップS4700)。
部分情報検証部264_2は、分散情報更新部260_jにて記憶しているd_1_1と、受信した各部分情報d_1_2、d_1_3、d_1_4、d_1_5とを加算し、値s’を算出し、算出した値s’が正当であるか否かを検証する(ステップS4800)。具体的には、部分情報検証部264_2は、算出した値s’と、他モジュール分散情報格納部252_jに格納されている第2他モジュール分散情報“d2_1”とが一致するか否かを判断する。
(脱退時の第1更新処理)
ここでは、図30のステップS410にて示す脱退時の第1更新処理について、図33及び図34にて示す流れ図を用いて説明する。
(脱退時の第2更新処理)
ここでは、図30のステップS415にて示す脱退時の第2更新処理について、図35にて示す流れ図を用いて説明する。
更新モジュール122Aの分散情報更新部260_2は、分散情報“d_2’”を更新モジュール126Aへ出力する(ステップS6050)。
分散情報更新部260_6は、分散情報“d_2’”及び“d2_2’”を収集する(ステップS6100)。このとき、更新モジュール123Aの分散情報更新部260_3は分散情報“d2_2’”を送信する(ステップS6110)。
分散情報更新部260_6は、収集した分散情報“d_2’”及び“d2_2’”が一致するか否かを判断する(ステップS6200)。一致すると判断する場合には(ステップS6200における「YES」)、分散情報更新部260_6は、第1他モジュール分散情報を“d_2’”とする(ステップS6250)。
分散情報更新部260_6は、一致しないと判断する場合には(ステップS6200における「NO」)、更新モジュール126Aは、更新モジュール122A〜125Aへその旨を通知する。更新モジュール126A、及び通知を受けた更新モジュール122A〜125Aは、脱退処理を中止し、自モジュールの分散情報の値を脱退処理の前に戻し、処理を終了する。
(具体例)
脱退処理後の更新モジュール122A〜126Aのそれぞれが保持する分散情報、第1及び第2他モジュール分散情報を、図36にて示す。
ここで、更新後の各分散情報“d_2’”〜“d_6’”により、秘密鍵“d”が回復されることを以下に示す。
= (d_2+d_1_1)+(d_3+d_1_2)+(d_4+d_1_3)+(d_5+d_1_4)+(d_6+d_1_5)
= (d_1_1+d_1_2+d_1_3+d_1_4+d_1_5)
+(d_2+d_3+d_4+d_5+d_6)
= d_1+d_2+d_3+d_4+d_5+d_6
= d
このように、更新モジュール121Aが脱退後も、それぞれの更新モジュールが保持する分散情報の総和を一定とすることが可能となるため、脱退処理時において、ソフトウェア更新システムは、新しい秘密鍵“d”を復元し分散情報を再生成することなく、更新モジュールを脱退させることが可能となる。
ここでは、追加処理について、図37にて示す流れ図を用いて説明する。
追加処理では、更新モジュールが不正な動作を行う可能性を考え、更新モジュール間で送信されるデータが正しいデータであるかを常に検証することで、不正な動作を行う更新モジュールが存在した場合に検知できるようにしている。さらに、追加処理では、分散情報の値を更新する場合には、更新前の分散情報の値を退避しておき、追加処理中に不正な動作を行う更新モジュールの存在を検知した場合には、追加処理を中止し、分散情報の値を追加処理前の値に戻すことで、分散情報が不正な値になることを防止する。
更新モジュール121A、及び126Aが、変形情報を生成し、各更新モジュールへ配布する配布処理を行う(ステップS7000)。
追加対象の更新モジュール127A及び、更新モジュール127Aと同一の分散情報を保持する更新モジュール121A、及び126Aとが分散情報を生成する分散情報の生成処理を行う(ステップS7050)。
更新モジュール121A、122A、125A〜127Aは、更新が正常に行われたか否かを判断する(ステップS7150)。更新モジュール121A、122A、125A及び126Aは、検証結果を更新モジュール127Aへ通知し、更新モジュール127Aは、検証結果を一時的に保持する。
分散情報更新部260_7は、更新モジュール121A及び126Aから収集した証明書が正当であるか否かを判断する(ステップS7250)。具体的には、分散情報更新部260_7は、収集した2つの証明書が同一であるか否かを判断する。
次に、更新モジュール121Aが、自身が保持する分散情報から7つの部分情報を生成し、生成した各部分情報を各更新モジュールへ配布する追加時の第1分割処理を行う(ステップS7350)。
更新モジュール121A〜127Aは、更新が正常に行われたか否かを判断する(ステップS7450)。このとき、更新モジュール122A〜127Aは、判断結果を部分情報送信元である更新モジュール121Aへ通知する。具体的には、分散情報を共通に持っている更新モジュール同士で、分散情報検証部262_j及び他モジュール分散情報検証部263_jを用いて、互いに持っている分散情報が同じ値に更新されたかを、セキュリティの確保された通信路で分散情報を送りあい、受信した分散情報と各自が保持していた分散情報が同じ値かどうかを検証する。更新モジュール122A〜127Aは、検証結果を更新モジュール121Aへ通知し、更新モジュール121Aは、検証結果を一時的に保持する。
更新モジュール121A〜127Aは、更新が正常に行われたか否かを判断する(ステップS7600)。更新モジュール121A〜125A及び127Aは、検証結果を更新モジュール126Aへ通知し、更新モジュール126Aは、検証結果を一時的に保持する。
また、ステップS7600における「NO」の場合も同様に、更新モジュール121A〜127Aは、脱退処理を中止し、自モジュールの分散情報の値を脱退処理の前に戻し、処理を終了する。
(配布処理)
ここでは、図37のステップS7000にて示す部分情報の生成処理について、図38にて示す流れ図を用いて説明する。
更新モジュール126Aの変形情報生成部265_6は、外部装置から追加時の分散情報生成指示を受け取ると、変形情報nを生成する(ステップS8000)。
変形情報生成部265_6は、生成した変形情報nを更新モジュール121A、125及び127へ出力する(ステップS8100)。
変形情報生成部265_1は、生成した変形情報mを更新モジュール122A、126A、及び127Aへ出力する(ステップS8150)。
更新モジュール121Aの分散情報更新部260_1は、変形情報nを受け取ると、受け取った変形情報nを一時的に格納する(ステップS8250)。
分散情報更新部260_6は、生成した変形情報nを用いて、新たな分散情報“d_6’(=d_6−n)”を生成し、分散情報格納部251_6に格納されている分散情報“d_6“を“d_6’”へと更新する(ステップS8300)。
更新モジュール125Aの分散情報更新部260_5は、変形情報nを受け取ると、受け取った変形情報nを用いて新たな第1他モジュール分散情報“d1_6’(=d1_6−n)”を生成し、他モジュール分散情報格納部252_5に格納されている第1他モジュール分散情報“d1_6”を“d1_6’”へと更新する(ステップS8400)。
更新モジュール122Aの分散情報更新部260_2は、変形情報mを受け取ると、受け取った変形情報mを用いて新たな第2他モジュール分散情報“d2_1’(=d2_1−m)”を生成し、他モジュール分散情報格納部252_2に格納されている第2他モジュール分散情報“d2_1”を“d2_1’”へと更新する(ステップS8500)。
(分散情報の生成処理)
ここでは、図37のステップS705にて示す分散情報の生成処理について、図39にて示す流れ図を用いて説明する。
分散情報更新部260_7は、変形情報n及びmを用いて分散情報“d_7=(m+n)”を生成する(ステップS8700)。分散情報更新部260_7は、分散情報格納部251_7に生成した分散情報“d_7”を格納する(ステップS8750)。
(他モジュール分散情報の格納処理)
ここでは、図37のステップS7100にて示す他モジュール分散情報の格納処理について、図40にて示す流れ図を用いて説明する。
同一であると判断する場合には(ステップS9050における「YES」)、分散情報更新部260_7は、収集した分散情報“d_1’”を第1他モジュール分散情報として他モジュール分散情報格納部252_7へ格納する(ステップS9100)。
同一であると判断する場合には(ステップS9200における「YES」)、分散情報更新部260_7は、収集した分散情報“d_6’”を第2他モジュール分散情報として他モジュール分散情報格納部252_7へ格納する(ステップS9250)。
(追加時の第1分割処理)
ここでは、図37のステップS7350にて示す追加時の第1分割処理について、図41にて示す流れ図を用いて説明する。
具体的には、分散情報分割部261_1は、乱数生成器を用いて、6個の乱数を生成することにより、部分情報(d_1_1〜d_1_6)を生成する。次に、分散情報分割部261_1は、
d_1_7 = d_1’ − (d_1_1+d_1_2+・・・+d_1_6)
により、d_1_7を算出する。このとき、減算結果が負の数になる事もあるが、そのまま部分情報として扱う。
具体的には、分散情報分割部261_1は、更新モジュール122A及び127に対して生成した部分情報d_1_2〜d_1_7を配布する(ステップS9560及びS9610)。他のモジュール123A〜126Aにおけるi番目のモジュールに対しては、部分情報d_1_(i−1)、d_1_i及びd_1_(i+1)を配布する(ステップS9570、S9580、S9590及びS9600)。
(追加時の第1更新処理)
ここでは、図37のステップS7400にて示す追加時の第1更新処理について、図42から図44にて示す流れ図を用いて説明する。
(追加時の第2分割処理)
ここでは、図37のステップS750にて示す追加時の第2分割処理について、図45にて示す流れ図を用いて説明する。
具体的には、分散情報分割部261_6は、乱数生成器を用いて、6個の乱数を生成することにより、部分情報(d_6_1〜d_6_6)を生成する。次に、分散情報分割部261_6は、
d_6_7 = D_6 − (d_6_1+d_6_2+・・・+d_6_6)
により、d_6_7を算出する。このとき、減算結果が負の数になる事もあるが、そのまま部分情報として扱う。
更新モジュール125A及び127Aに対して生成した部分情報d_6_1〜d_6_5及びd_6_7を配布する(ステップS10600及びS10610)。他のモジュール121A〜124Aにおけるi番目のモジュールに対しては、部分情報d_6_(i−1)、d_6_i及びd_6_(i+1)を配布する(ステップS10560、S10570、S10580及びS10590)。なお、i−1=0の場合には、部分情報d_6_7を配布する。
(追加時の第2更新処理)
ここでは、図37のステップS7550にて示す追加時の第2更新処理について、図46から図48にて示す流れ図を用いて説明する。
(具体例)
追加処理後の更新モジュール121A〜127Aのそれぞれが保持する分散情報、第1及び第2他モジュール分散情報を、図49にて示す。
ここで、更新後の各分散情報“D_1’”〜“D_7’”により、秘密鍵“d”が回復されることを以下に示す。
= (D_1+d_6_1)+(D_2+d_6_2)+(D_3+d_6_3)+(D_4+d_6_4)+(D_5+d_6_5)+(d_6_6)+(D_7+d_6_7)
= D_1+D_2+D_3+D_4+D_5+D_7+d_6_1+d_6_2+d_6_3+d_6_4+d_6_5+d_6_6+d_6_7
= D_1+D_2+D_3+D_4+D_5+D_6+D_7
= (d_1_1)+(d_2+d_1_2)+(d_3+d_1_3)+(d_4+d_1_4)+(d_5+d_1_5)+(d_6’+d_1_6)+(d_7+d_1_7)
= d_2+d_3+d_4+d_5+d_6’+d_7+d_1_1+d_1_2+d_1_3+d_1_4+d_1_5+d_1_6+d_1_7
= d_1’+d_2+d_3+d_4+d_5+d_6’+d_7
= (d_1−m)+d_2+d_3+d_4+d_5+(d_6−n)+m+n
= d_1+d_2+d_3+d_4+d_5+d_6+d_7
= d
このように、更新モジュール127Aの追加後も、それぞれの更新モジュールが保持する分散情報の総和を一定とすることが可能となるため、追加処理時において、ソフトウェア更新システムは、新しい秘密鍵“d”を復元し分散情報を再生成することなく、更新モジュールを追加させることが可能となる。
(追加処理時の第1及び第2更新処理の必要性)
追加時における第1及び第2更新処理は、更新モジュール121Aと126Aが分散情報を持ちすぎるために必要になる処理である。
(49)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
100 機器
110 アプリケーション
111 アプリケーション
120 保護制御モジュール
130 更新モジュール群
131 更新モジュール
132 更新モジュール
133 更新モジュール
140 アクセス制御モジュール
200 更新サーバ
210 更新用ソフトウェア配布モジュール
220 アクセス情報取得鍵配布モジュール
301 監視制御部
302 改ざんチェック実行部
303 更新制御部
304 復号部
305 認証部
306 署名公開鍵保持部
307 検証鍵保持部
308 認証鍵対保持部
309 MAC値保持部
310 分散情報保持部
311 アクセス情報取得部
312 無効化処理部
401 暗号鍵生成部
402 暗号処理部
403 暗号鍵保持部
404 認証部
405 更新判定部
406 不正モジュール判定部
407 更新モジュール選択部
408 証明書生成部
409 署名秘密鍵保持部
410 更新用ソフトウェア保持部
501 制御部
502 復号ロード部
503 改ざん検出部
504 解析ツール検出部
505 暗復号鍵保持部
506 暗復号鍵生成部
507 暗復号鍵分散部
508 証明書生成部
509 暗復号鍵復元部
601 通信部
602 アクセス情報保持部
701 通信部
702 アクセス情報取得鍵保持部
Claims (17)
- 所定のアプリケーションと、
前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、
前記保護制御モジュールを更新する更新用の保護制御モジュールを外部サーバから受信し前記保護制御モジュールを更新する更新モジュールを複数含む更新モジュール群と、を備え、
前記更新モジュール群に含まれる複数の更新モジュールの各々は、
同時に起動している全ての更新モジュールが、少なくとも他の一つの更新モジュールの検証対象となるように、検証対象を選定して不正動作を行わないか検証を行い、
前記複数の更新モジュールの何れかが不正動作を行う可能性があることが検証された場合、前記更新モジュール群に含まれる他の更新モジュールが、前記不正動作を行う可能性があると検証された更新モジュールを無効化する
ことを特徴とするソフトウェア更新装置。 - 前記更新モジュール群に含まれる複数の更新モジュールの各々を無効化するための所定の情報を格納し、所定の暗号鍵で暗号化されたアクセス制御モジュールをさらに備え、
前記他の更新モジュールは、前記外部サーバにアクセスして前記外部サーバから前記所定の暗号鍵に対応した復号鍵を取得し、前記取得した復号鍵を用いてアクセス制御モジュールを復号し、
前記不正動作を行う可能性があると検証された更新モジュールを無効化するための所定の情報を前記アクセス制御モジュールから取得し、前記所定の情報に基づいて前記不正動作を行う可能性があると検証された更新モジュールを無効化する
ことを特徴とする請求項1記載のソフトウェア更新装置。 - 前記更新モジュール群に含まれる複数の更新モジュールの各々を無効化するための所定の情報を格納しているアクセス制御モジュールをさらに備え、
前記所定の情報は、更新モジュール毎に異なる暗号鍵で暗号化されており、
前記他の更新モジュールは、前記外部サーバにアクセスし、前記不正動作を行う可能性があると検証された更新モジュールに関する所定の情報を暗号化した暗号鍵に対応した復号鍵を前記外部サーバから取得し、前記不正動作を行う可能性があると検証された更新モジュールに関する所定の情報を前記取得した復号鍵を用いて復号し、
前記復号された所定の情報に基づいて前記不正動作を行う可能性があると検証された更新モジュールを無効化する
ことを特徴とする請求項1記載のソフトウェア更新装置。 - 前記所定の情報は、前記更新モジュール群に含まれる複数の更新モジュールの各々の格納位置情報である
ことを特徴とする請求項2または3の何れかに記載のソフトウェア更新装置。 - 前記所定の情報は、前記更新モジュール群に含まれる複数の更新モジュールの各々を無効化するための処理手順を示す情報である
ことを特徴とする請求項2または3の何れかに記載のソフトウェア更新装置。 - 前記他の更新モジュールは、前記格納位置情報に基づいて、前記不正動作を行う可能性があると検証された更新モジュールの全体を消去することで無効化する
ことを特徴とする請求項4記載のソフトウェア更新装置。 - 前記格納位置情報は、前記更新モジュールが無効化される際に消去される消去部分を示し、
前記他の更新モジュールは、前記格納位置情報に基づいて、前記不正動作を行う可能性があると検証された更新モジュールの消去部分を消去することで無効化する
ことを特徴とする請求項4記載のソフトウェア更新装置。 - 前記格納位置情報は、前記更新モジュールが無効化される際に消去されるコード部分を示し、
前記他の更新モジュールは、前記格納位置情報に基づいて、前記不正動作を行う可能性があると検証された更新モジュールのコード部分を消去することで無効化する
ことを特徴とする請求項4記載のソフトウェア更新装置。 - 前記他の更新モジュールは、前記不正動作を行う可能性があると検証された更新モジュールを無効化した場合、前記アクセス制御モジュールに格納されている、無効化した更新モジュールについての所定の情報を消去する
ことを特徴とする請求項2または3の何れかに記載のソフトウェア更新装置。 - 前記無効化は、前記不正動作を行う可能性があると検証された更新モジュールが、検証対象となる更新モジュールを検証する際に参照する、当該検証対象の更新モジュールにアクセスするための情報を消去することである
ことを特徴とする請求項1記載のソフトウェア更新装置。 - 前記無効化は、前記不正動作を行う可能性があると検証された更新モジュールが、前記保護制御モジュールにアクセスするための情報を消去することである
ことを特徴とする請求項1記載のソフトウェア更新装置。 - 前記複数の更新モジュールの各々による検証は、当該更新モジュールが自更新モジュールを検証する場合を含む
ことを特徴とする請求項1記載のソフトウェア更新装置。 - 自更新モジュールが不正動作を行う可能性があることを検証した場合には、前記自更新モジュールは前記自更新モジュールを無効化する
ことを特徴とする請求項12記載のソフトウェア更新装置。 - 前記複数の更新モジュールの各々は、前記選定した更新モジュールのハッシュ値を算出し、当該更新モジュールに予め付加されているハッシュ値と、算出したハッシュ値が一致するか判断することにより、前記検証を行う
ことを特徴とする請求項1記載のソフトウェア更新装置。 - ソフトウェア更新装置と当該ソフトウェア更新装置に接続されるサーバとを含むソフトウェア更新システムであって、
前記ソフトウェア更新装置は、
所定のアプリケーションと、
前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、
前記保護制御モジュールを更新する更新用の保護制御モジュールを前記サーバから受信し前記保護制御モジュールを更新する更新モジュールを複数含む更新モジュール群と、を備え、
前記サーバは、
前記保護制御モジュールを更新する更新用の保護制御モジュールを格納する格納部と、
前記更新用の保護制御モジュールを前記ソフトウェア更新装置に送信する通信部と、を備え、
前記更新モジュール群に含まれる複数の更新モジュールの各々は、
同時に起動している全ての更新モジュールが、少なくとも他の一つの更新モジュールの検証対象となるように、検証対象を選定して不正動作を行わないか検証を行い、
前記複数の更新モジュールの何れかが不正動作を行う可能性があることが検証された場合、前記更新モジュール群に含まれる他の更新モジュールが、前記不正動作を行う可能性があると検証された更新モジュールを無効化する
ことを特徴とするソフトウェア更新システム。 - 無効化方法であって、
所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する更新用の保護制御モジュールを外部サーバから受信し前記保護制御モジュールを更新する更新モジュールを複数含む更新モジュール群とを起動する起動ステップと、
前記所定のアプリケーションを実行する実行ステップとを含み、
前記更新モジュール群に含まれる複数の更新モジュールの各々は、
同時に起動している全ての更新モジュールが、少なくとも他の一つの更新モジュールの検証対象となるように、検証対象を選定して不正動作を行わないか検証を行い、
前記複数の更新モジュールの何れかが不正動作を行う可能性があることが検証された場合、前記更新モジュール群に含まれる他の更新モジュールが、前記不正動作を行う可能性があると検証された更新モジュールを無効化する
ことを特徴とする無効化方法。 - 無効化プログラムであって、
前記無効化プログラムは、
所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、
前記保護制御モジュールを更新する更新用の保護制御モジュールを外部サーバから受信し前記保護制御モジュールを更新する更新モジュールを複数含む更新モジュール群と、を含み、
前記更新モジュール群に含まれる複数の更新モジュールの各々は、
同時に起動している全ての更新モジュールが、少なくとも他の一つの更新モジュールの検証対象となるように、検証対象を選定して不正動作を行わないか検証する検証手順と、
前記複数の更新モジュールの何れかが不正動作を行う可能性があることが検証された場合、前記更新モジュール群に含まれる他の更新モジュールが、前記不正動作を行う可能性があると検証された更新モジュールを無効化する無効化手順とを含む処理をコンピュータに行わせる
無効化プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010505049A JP4932034B2 (ja) | 2008-03-28 | 2008-11-06 | ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008087301 | 2008-03-28 | ||
JP2008087301 | 2008-03-28 | ||
PCT/JP2008/003208 WO2009118801A1 (ja) | 2008-03-28 | 2008-11-06 | ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム |
JP2010505049A JP4932034B2 (ja) | 2008-03-28 | 2008-11-06 | ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009118801A1 JPWO2009118801A1 (ja) | 2011-07-21 |
JP4932034B2 true JP4932034B2 (ja) | 2012-05-16 |
Family
ID=41113045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010505049A Active JP4932034B2 (ja) | 2008-03-28 | 2008-11-06 | ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム |
Country Status (4)
Country | Link |
---|---|
US (2) | US8600896B2 (ja) |
EP (1) | EP2259204A1 (ja) |
JP (1) | JP4932034B2 (ja) |
WO (1) | WO2009118801A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171547B2 (en) | 2008-12-03 | 2012-05-01 | Trend Micro Incorporated | Method and system for real time classification of events in computer integrity system |
JP5368878B2 (ja) * | 2009-05-25 | 2013-12-18 | キヤノン株式会社 | 情報処理装置、製造装置及びデバイス製造方法 |
EP2454658A1 (en) * | 2009-07-16 | 2012-05-23 | Assa Abloy Ab | Blind verification of computer firmware |
US8234518B2 (en) * | 2009-07-21 | 2012-07-31 | Vmware, Inc. | Method for voting with secret shares in a distributed system |
US8352482B2 (en) | 2009-07-21 | 2013-01-08 | Vmware, Inc. | System and method for replicating disk images in a cloud computing based virtual machine file system |
US8352490B2 (en) * | 2009-10-22 | 2013-01-08 | Vmware, Inc. | Method and system for locating update operations in a virtual machine disk image |
JP5681028B2 (ja) * | 2010-04-26 | 2015-03-04 | パナソニック株式会社 | 改ざん監視システム、管理装置及び管理方法 |
US9450928B2 (en) | 2010-06-10 | 2016-09-20 | Gemalto Sa | Secure registration of group of clients using single registration procedure |
US8594850B1 (en) * | 2012-09-30 | 2013-11-26 | Nest Labs, Inc. | Updating control software on a network-connected HVAC controller |
WO2015142765A1 (en) | 2014-03-17 | 2015-09-24 | Coinbase, Inc | Bitcoin host computer system |
US9405524B1 (en) * | 2014-04-30 | 2016-08-02 | Allscripts Software, Llc | Software verification system and methods |
US20180314510A1 (en) * | 2014-05-08 | 2018-11-01 | Google Inc. | System for distributing components |
US9753719B2 (en) * | 2014-12-29 | 2017-09-05 | Visa International Service Association | Over-the-air-provisioning of application library |
US10205598B2 (en) * | 2015-05-03 | 2019-02-12 | Ronald Francis Sulpizio, JR. | Temporal key generation and PKI gateway |
US9735958B2 (en) | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
US10728043B2 (en) * | 2015-07-21 | 2020-07-28 | Entrust, Inc. | Method and apparatus for providing secure communication among constrained devices |
US10250600B2 (en) | 2015-07-27 | 2019-04-02 | International Business Machines Corporation | Updating database drivers for client applications through a database server push |
JP6644037B2 (ja) * | 2017-09-08 | 2020-02-12 | 株式会社東芝 | 通信制御システム |
JP7171339B2 (ja) * | 2018-09-26 | 2022-11-15 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及び、プログラム |
JP7166884B2 (ja) | 2018-11-14 | 2022-11-08 | キヤノン株式会社 | ソフトウェアの改ざんを検知することが可能な情報処理装置 |
JP7278753B2 (ja) * | 2018-11-19 | 2023-05-22 | キヤノン株式会社 | ソフトウェアの改ざんを検知することが可能な情報処理装置 |
US11394543B2 (en) | 2018-12-13 | 2022-07-19 | Coinbase, Inc. | System and method for secure sensitive data storage and recovery |
JP7008661B2 (ja) * | 2019-05-31 | 2022-01-25 | 本田技研工業株式会社 | 認証システム |
US11635990B2 (en) | 2019-07-01 | 2023-04-25 | Nutanix, Inc. | Scalable centralized manager including examples of data pipeline deployment to an edge system |
US11501881B2 (en) | 2019-07-03 | 2022-11-15 | Nutanix, Inc. | Apparatus and method for deploying a mobile device as a data source in an IoT system |
US10903991B1 (en) | 2019-08-01 | 2021-01-26 | Coinbase, Inc. | Systems and methods for generating signatures |
NZ786912A (en) | 2019-09-25 | 2022-08-26 | Shift5 Inc | Passive monitoring and prevention of unauthorized firmware or software upgrades between computing devices |
WO2021076868A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
JP7374780B2 (ja) * | 2020-01-20 | 2023-11-07 | キヤノン株式会社 | 情報処理装置および情報処理装置の制御方法 |
US11726764B2 (en) * | 2020-11-11 | 2023-08-15 | Nutanix, Inc. | Upgrade systems for service domains |
US11665221B2 (en) | 2020-11-13 | 2023-05-30 | Nutanix, Inc. | Common services model for multi-cloud platform |
US11736585B2 (en) | 2021-02-26 | 2023-08-22 | Nutanix, Inc. | Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4608049A (en) | 1982-06-28 | 1986-08-26 | Kelman Charles D | Intraocular lens and method of inserting an intraocular lens into an eye |
JP2837446B2 (ja) | 1989-07-21 | 1998-12-16 | カヤバ工業株式会社 | 二段作動ステーダンパ |
CN100452072C (zh) * | 1995-02-13 | 2009-01-14 | 英特特拉斯特技术公司 | 用于管理在第一装置和第二装置之间的数字文档的分布的方法 |
US5991399A (en) * | 1997-12-18 | 1999-11-23 | Intel Corporation | Method for securely distributing a conditional use private key to a trusted entity on a remote system |
JPH11252067A (ja) | 1998-03-03 | 1999-09-17 | Nippon Telegr & Teleph Corp <Ntt> | セキュリティオペレーション制御方法およびその記録媒体 |
JP3056732B1 (ja) | 1999-04-09 | 2000-06-26 | コナミ株式会社 | コンピュ―タシステム、コンピュ―タプログラムの実行方法及びコンピュ―タプログラム記録媒体 |
US6874087B1 (en) | 1999-07-13 | 2005-03-29 | International Business Machines Corporation | Integrity checking an executable module and associated protected service provider module |
CN1182479C (zh) * | 2000-01-07 | 2004-12-29 | 国际商业机器公司 | 有效地收集、整理和访问证书吊销表的***和方法 |
US20070271191A1 (en) | 2000-03-09 | 2007-11-22 | Andres Torrubia-Saez | Method and apparatus for secure distribution of software |
JP3644494B2 (ja) | 2001-04-13 | 2005-04-27 | 日本電気株式会社 | 情報検索装置 |
US20030009681A1 (en) | 2001-07-09 | 2003-01-09 | Shunji Harada | Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus |
JP2003044155A (ja) | 2001-07-30 | 2003-02-14 | Hitachi-Lg Data Storage Inc | ソフトウェアのインストール方法及びファームウェアのアップデート方法及びそれらに用いる記録再生装置及び記録媒体 |
BR0304559A (pt) * | 2002-04-26 | 2004-08-03 | Koninkl Philips Electronics Nv | Sistema compreendendo diversos dispositivos interconectados |
US7216369B2 (en) * | 2002-06-28 | 2007-05-08 | Intel Corporation | Trusted platform apparatus, system, and method |
CN101145177B (zh) | 2002-08-01 | 2011-06-15 | 松下电器产业株式会社 | 加密程序生成方法和设备 |
US7240200B2 (en) | 2002-09-26 | 2007-07-03 | International Business Machines Corporation | System and method for guaranteeing software integrity via combined hardware and software authentication |
JP2004234645A (ja) | 2003-01-10 | 2004-08-19 | Canon Inc | 画像形成装置の監視装置、該監視装置による制御方法、及び該制御方法を実行するプログラム、並びに管理装置、該管理装置による制御方法、及び該制御方法を実行するプログラム |
US20060168580A1 (en) | 2003-02-21 | 2006-07-27 | Shunji Harada | Software-management system, recording medium, and information-processing device |
US20040202324A1 (en) | 2003-04-11 | 2004-10-14 | Matsushita Electric Industrial Co., Ltd | Program electronic watermark processing apparatus |
US7249353B2 (en) | 2003-04-17 | 2007-07-24 | Hewlett-Packard Development Company, L.P. | Image-formation device firmware having modular upgrade capability |
KR100568228B1 (ko) | 2003-05-20 | 2006-04-07 | 삼성전자주식회사 | 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치 |
JP4676724B2 (ja) | 2003-08-12 | 2011-04-27 | 株式会社リコー | 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体 |
CA2548546A1 (en) | 2003-12-18 | 2005-06-30 | Matsushita Electric Industrial Co., Ltd. | Method for storing, authenticalting and executing an application program |
JP4335707B2 (ja) | 2004-02-06 | 2009-09-30 | Necエレクトロニクス株式会社 | プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法 |
US7325126B2 (en) | 2004-03-05 | 2008-01-29 | Microsoft Corporation | System and method for distributed module authentication |
EP1783581A4 (en) | 2004-06-30 | 2010-08-25 | Panasonic Corp | PROVISION OF EXECUTION OF A PROGRAM AND METHOD OF EXECUTION |
JP4475511B2 (ja) * | 2004-07-02 | 2010-06-09 | 日本電信電話株式会社 | 発展型コンテンツ作成装置、コンテンツ発展装置及びそのプログラム |
GB2419198A (en) * | 2004-10-14 | 2006-04-19 | Hewlett Packard Development Co | Identifying performance affecting causes in a data storage system |
JP4496061B2 (ja) | 2004-11-11 | 2010-07-07 | パナソニック株式会社 | 機密情報処理装置 |
CN100543761C (zh) * | 2005-02-10 | 2009-09-23 | 松下电器产业株式会社 | 程序变换装置及程序执行装置 |
US20080168562A1 (en) | 2005-02-25 | 2008-07-10 | Tomoyuki Haga | Secure Processing Device and Secure Processing System |
US20060248107A1 (en) | 2005-04-11 | 2006-11-02 | Coronado Juan A | Apparatus system and method for updating software while preserving system state |
US7509528B2 (en) | 2006-03-10 | 2009-03-24 | Alcatel Lucent | Transaction bundling for improved redundancy |
US8645942B2 (en) | 2006-05-26 | 2014-02-04 | Oracle International Corporation | Software update syndication |
US20080005800A1 (en) | 2006-06-07 | 2008-01-03 | Kaoru Yokota | Confidential information protection system, confidential information restoring device, and tally generating device |
JP2008016014A (ja) * | 2006-06-07 | 2008-01-24 | Matsushita Electric Ind Co Ltd | 機密情報保護システム、機密情報復元装置、及び割符生成装置 |
US7424398B2 (en) | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
JP4048382B1 (ja) | 2006-09-01 | 2008-02-20 | 富士ゼロックス株式会社 | 情報処理システムおよびプログラム |
US20080244557A1 (en) | 2007-04-02 | 2008-10-02 | Inventec Corporation | Knowledge management system and method for implementing management software using the same |
US9053323B2 (en) | 2007-04-13 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | Trusted component update system and method |
US8612773B2 (en) | 2007-05-03 | 2013-12-17 | International Business Machines Corporation | Method and system for software installation |
US20080301667A1 (en) | 2007-05-30 | 2008-12-04 | Google Inc. | Dynamically Updating Software Applications on a Device |
US8225105B2 (en) | 2007-08-13 | 2012-07-17 | International Business Machines Corporation | Method and apparatus for verifying integrity of computer system vital data components |
-
2008
- 2008-11-06 US US12/601,368 patent/US8600896B2/en active Active
- 2008-11-06 EP EP08873612A patent/EP2259204A1/en not_active Withdrawn
- 2008-11-06 WO PCT/JP2008/003208 patent/WO2009118801A1/ja active Application Filing
- 2008-11-06 JP JP2010505049A patent/JP4932034B2/ja active Active
-
2013
- 2013-10-30 US US14/066,835 patent/US9594909B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2009118801A1 (ja) | 2009-10-01 |
US9594909B2 (en) | 2017-03-14 |
US20100175061A1 (en) | 2010-07-08 |
US20140059679A1 (en) | 2014-02-27 |
JPWO2009118801A1 (ja) | 2011-07-21 |
US8600896B2 (en) | 2013-12-03 |
EP2259204A1 (en) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4932034B2 (ja) | ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム | |
JP4932033B2 (ja) | ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム | |
US8935530B2 (en) | Control device and computer readable medium | |
JP5411282B2 (ja) | 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路 | |
JP5453324B2 (ja) | 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 | |
US8516574B2 (en) | Software update system, management apparatus, recording medium, and integrated circuit | |
US8707430B2 (en) | Tampering monitoring system, management apparatus, and management method | |
US8745735B2 (en) | Monitoring system, program-executing device, monitoring program, recording medium and integrated circuit | |
JP6720581B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US8769312B2 (en) | Tampering monitoring system, protection control module, and detection module | |
CN103229451A (zh) | 用于硬件设备的密钥供应的方法和装置 | |
JPWO2009119049A1 (ja) | 電子端末、制御方法、コンピュータプログラム及び集積回路 | |
JPWO2010041462A1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び集積回路 | |
CN102656592A (zh) | 信息处理设备、信息处理***、软件例程执行方法和远程认证方法 | |
US8800038B2 (en) | Tampering monitoring system, control device, and tampering control method | |
JP5453323B2 (ja) | 改竄監視システム、管理装置及び改竄管理方法 | |
KR20160098756A (ko) | 하드웨어 보안 모듈, 상기 하드웨어 보안 모듈에 저장된 무결성 검증 값을 업데이트하는 방법, 상기 하드웨어 보안 모듈을 이용하여 단말에 저장된 프로그램을 업데이트하는 방법 | |
CN113626803A (zh) | 一种bmc固件的保护方法、***、装置及可读存储介质 | |
JP2008033512A (ja) | セキュリティチップ及びプラットフォーム | |
EP3460705A1 (en) | Distributed deployment of unique firmware | |
JP2023164669A (ja) | 情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110829 |
|
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: 20120117 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4932034 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150224 Year of fee payment: 3 |