JP4501349B2 - System module execution device - Google Patents

System module execution device Download PDF

Info

Publication number
JP4501349B2
JP4501349B2 JP2003068582A JP2003068582A JP4501349B2 JP 4501349 B2 JP4501349 B2 JP 4501349B2 JP 2003068582 A JP2003068582 A JP 2003068582A JP 2003068582 A JP2003068582 A JP 2003068582A JP 4501349 B2 JP4501349 B2 JP 4501349B2
Authority
JP
Japan
Prior art keywords
system module
hash value
module
update
public key
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.)
Expired - Fee Related
Application number
JP2003068582A
Other languages
Japanese (ja)
Other versions
JP2004280284A (en
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2003068582A priority Critical patent/JP4501349B2/en
Publication of JP2004280284A publication Critical patent/JP2004280284A/en
Application granted granted Critical
Publication of JP4501349B2 publication Critical patent/JP4501349B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、OS、アプリケーションといったソフトウェアであるシステムモジュールを外部の記憶部から読み出して実行し、かつネットワークに接続してデータの送受信を行うシステムモジュール実行装置に関する。
【0002】
【従来の技術】
パーソナルコンピュータを始めとしたデジタル機器がインターネットに接続されるようになり、クラッカー等と呼ばれる悪意を持った者による破壊行為や、コンピュータウィルスの侵入等といった攻撃は増加の一途を辿っている。こうした攻撃に耐えられる安全なシステムを構成する方策の一つとして、機器内で動作するソフトウェアについて信頼できるデジタル認証方式を使い、認証された信頼できるソフトウェアだけを起動することが考えられている。
【0003】
しかし、マイクロソフト(Microsoft)社のウィンドウズ(Windows;登録商標)や、リナックス(Linux)等の従来からの基本ソフトウェアシステム(Operating System:OS)では、こうしたソフトウェアの信頼性についての対策が採られていない。また、こうした認証機能を後から追加するにしても、OSの中心たるカーネル(Kernel)等を含めたシステム全体に信頼できるものであるかどうかの明確な根拠が無いため、システム全体の信頼性に疑問が生じる。
【0004】
このような現状において、例えば、特開2002−152196号公報には、ソフトウェアを認証して実行するという、以下のプログラム認証方法が開示されている。先ず、携帯機器の、組み込み機能部により、ハッシュ値がプログラム本体とプログラムの出所由来を表す公開鍵と対をなす秘密鍵とによって生成されたものであることを確認する。次に、親機器が、公開鍵及び秘密鍵を用いた公開鍵方式により携帯機器の認証を行い、認証が成功した場合に、携帯機器によるハッシュ値確認に基づいてプログラムが真正な出所由来をもつものかを判定する。このように、親機器が携帯機器の認証に成功し、かつプログラムが真正な出所由来をもつものであるときに公開鍵でプログラムを認証したとする。そして、認証したソフトウェアを実行する。
【0005】
また、特開平10−333902号公報には、以下の改ざん検知機能付きコンピュータシステムが開示されている。制御部のROMに格納されたブート(Boot)プログラムにて、基本入出力システム(Basic Input/Output System:BIOS)を初期化した後に、補助記憶装置に格納された第1の保存情報をOSを介さずに読み込み、その読み込み内容にしたがって被検査ファイルをOSを介さずに読み込む。これらの読み込み内容とROMに格納された第2保存情報とを用いて被検査ファイルの改ざんの有無を検査する。改ざん無しを確認後に、OSローダーを呼び出してOSを起動させる。このため、OSローダー(Loader)やOSを起動する前に、OSローダーやOSファイル、或いはその他の任意のファイルの改ざんの有無を、確実に、検証することができるという効果をもたらす技術である。
【0006】
【特許文献1】
特開2002−152196号
【特許文献2】
特開平10−333902号
【0007】
【発明が解決しようとする課題】
ところで、前記特許文献1、特許文献2に開示された技術は、制御部に外部からハッシュ値などのデータや、アルゴリズムを読み出し、制御部内にて実行するものであったので、補助記憶装置等が攻撃を受けた場合には認証処理が正しいか否かの判定が困難になる。
また、OSなどのシステムモジュールを更新するときの対策は採られていなかった。
【0008】
本発明は、前記実情に鑑みてなされたものであり、OSと独立した処理を実現するために必要なデータ、アルゴリズムをセキュアな状態で保存し、制御部内にてセキュアな状態でソフトウェアの認証処理を正しく実行することができるシステムモジュール実行装置の提供を目的とする。
【0009】
また、本発明は、前記実情に鑑みてなされたものであり、システムモジュールの更新をセキュアな状態で行うことができる電子機器のシステムモジュール更新方法の提供を目的とする。
【0010】
【課題を解決するための手段】
本発明に係るシステムモジュール実行装置は、前記課題を解決するために、システムモジュールを取得するシステムモジュール取得部と、前記システムモジュールに添付された電子署名を取得する電子署名取得部と、権利者の公開鍵を添付した権利者用公開鍵証明書を記憶する権利者公開鍵証明書記憶部と、前記権利者用公開鍵証明書に不具合があるかを検証する権利者用公開鍵証明書検証部と、前記権利者の前記公開鍵に基づき、前記システムモジュールに添付された前記電子署名を検証する電子署名検証部と、前記電子署名検証部の検証結果に応じて、前記システムモジュールを実行するシステムモジュール実行部と、前記システムモジュールの更新が要求されたときには、システムモジュールを更新する権利を、固有の秘密鍵と更新する更新モジュールに対して定義されるハッシュ関数とを用いて演算したハッシュ値と、当該更新モジュールに含まれる更新前ハッシュ値、及び更新後ハッシュ値とが一致するかによってチェックし、更新する権利を有するシステムモジュールだけを判断して、更新を実行するシステムモジュール更新部とを備える。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。この実施の形態は、インターネット等のネットワークと接続され、ネットワークを通してビデオ、オーディオ、テキストデータ或いはコントロールデータ等を、このネットワークに接続された他の電子機器や、情報提供業者のサーバに対して送受信するネットワーク接続型電子機器である。例えば、インターネットを通してビデオデータを送信するビデオカメラや、デジタルスチルカメラ、さらにはインターネットを通してビデオデータサービスサーバからビデオデータをダウンロードするネット接続型のビデオ再生装置、ビデオ記録再生装置や、またオーディオデータサービスサーバからオーディオデータをダウンロードするネット接続型のオーディオ再生装置、オーディオ記録再生装置等を挙げることができる。
【0019】
以下では、ネットワーク接続型電子機器と呼ぶが、前記各装置、機器に限定されるものではなく、ネットワーク接続可能であれば携帯電話、携帯情報端末、或いはモニタ装置等、いわゆる民生用電子機器(consumer electronics:CE)全般に及ぶ。もちろん、ネットワークに接続する業務用の電子機器も対象となる。コンピュータがOSの下、複数の任意のソフトウェア開発業者が製造した複数のソフトウェアを実行するのに比べ、前記ネットワーク接続型電子機器は、用途を絞り、機器製造者又は機器製造者によりライセンスを付与された出所由来の分かっているソフトウェア開発業者が製造したソフトウェアを実行する。
【0020】
先ず、ネットワーク接続型電子機器1の第1実施例について説明する。この第1実施例は、図1に示すように、制御プロセッサ(Processor)2が内部バス3を介してROM4、RAM5、入力/出力インターフェース(I/O用I/F)6、及びネットワークI/F7と接続している構成を採る。
【0021】
制御プロセッサ2は、システム全体を安全に起動するために、システムで動作する全てのシステムモジュール、例えばOSやアプリケーションといったソフトウェアなどを認証、すなわち完全性の検査をしてから実行する。このような認証を行うには、認証の根拠(始まり、起点)が必要である。
【0022】
図2に示すように、Aは信頼できる(信頼する)のであれば、→AによってBの完全性(Integrity)を証明できる。また、Bの完全性を証明できたのであれば、→BによってB1の完全性を証明できる。また、Aは信頼できるのであり、よって→AによってCの完全性は証明できる。このように、Aを信頼できれば、Aを認証の根拠とし、B、B1、B2・・・や、C、C1、C2・・・といった認証の連鎖を構築できる。
【0023】
そこで、制御プロセッサ2は、前記認証の根拠を確保するために、セキュア(Secure)なデバイスを用いている。具体的に制御プロセッサ2は、ネットワーク接続型電子機器1をセキュアに起動し、実行するため、後述の暗号演算回路、IPL(Intial Program Loader)を書き込んだROM、制御プロセッサ固有の秘密鍵、ハッシュ値テーブル用メモリを一体化している。つまり、本来であれば、内部バスを介して外部に接続されることになるいくつかのデバイスを1チップ化している。
【0024】
ROM4は、制御プロセッサ2に対して内部バス3を介して接続された補助記憶部である。また、RAM5は、同様に内部バス3を介して接続された補助記憶装置及びワークエリアとして用いられる。I/O用I/F6は、キー操作部、ジョグダイヤルなど入力操作部用のインターフェースである。また、映像出力部、又は音声出力部などの出力部用のインターフェースでもある。ネットワークI/F7は、インターネットなどのネットワークに接続するためのインターフェースである。
【0025】
制御プロセッサ2は、詳細な構成を図3に示すように、暗号演算回路11、IPLを書き込んだROM(以下、IPL用ROMという)12、制御プロセッサ固有の秘密鍵13、ハッシュ値テーブル用メモリ14を一体に1チップ化している。
【0026】
暗号演算回路11には、ネットワーク接続型電子機器1で必要となる暗号用演算、認証用演算、例えばSHA1、MD5、MASHなどのハッシュ関数、HMAC-SHA1などのハッシュ関数、ECCなどの署名に関する演算、AES、DES、Triple-DESなどの共通鍵暗号の演算、RSAなどの公開鍵暗号の演算等が含まれる。
【0027】
暗号用演算は、ネットワークで送信するメッセージを第三者が理解できないようにする演算である。さらに、暗号用演算は、RAMや二次記憶装置等に情報を保存する場合などにも利用される。
【0028】
認証用演算は、認証処理に関わる演算であり、認証する対象により、相手認証、ユーザ認証、メッセージ認証、デジタル認証に分かれる。特に、デジタル認証は、文書の正当性を保証する技術であり、公開鍵を用いる演算により行われる。
【0029】
ハッシュ関数は、デジタル認証や完全性検査に利用される数学的処理法である。長いデータを攪乱し、一定の長さ(例えば、128ビット、160ビット等)のハッシュ値に圧縮する。ハッシュ値から入力を推定することが困難なこと、及び二つの異なるデータのハッシュ値が一致する確率が極めて小さいことが安全なハッシュ関数の条件である。
【0030】
署名に関する演算としては、公開鍵暗号の一種である、楕円暗号(Elliptic Curve Cryptosystem:ECC)を用いる。従来のRSA暗号に比べて鍵のサイズが小さくて済む。一般的に、1024ビットのデータ長を持つRSA暗号とほぼ同水準の強度を160ビットのECCで実現できる。もちろん、前記RSA暗号を用いてもよいし、他の署名アルゴリズムを用いてもよい。
【0031】
共通鍵暗号は、暗号化する鍵と復号する鍵が同じであり、送信者と受信者がともに秘密に持っている暗号である。秘密鍵暗号とも呼ばれている。共通鍵暗号の演算は、前もって送信者と受信者の間で秘密鍵を共有し、暗号化の演算を行う。AES(Advanced Encryption Standard)は、手順公開型の共通鍵暗号である。ブロック長は、128ビット、鍵長は128/192/256ビットから選択される。DES(Data Encryption Standard)も、手順公開型の共通鍵暗号である。データを56ビットの鍵+8ビットのパリティ部分の計64ビットのデータ・ブロック単位に暗号化する。Triple-DESは、安全性を高めるためDESを3段並べて鍵を長くした方式である。
【0032】
公開鍵暗号は、暗号化する鍵と復号する鍵が異なり、片方の鍵を公開し、もう一方の鍵は秘密にした暗号であり、非対称暗号とも呼ばれている。公開鍵暗号を守秘に使う場合、送信者は受信者の公開鍵を用いて暗号化し、暗号文を送る。受信者は、自分だけが知っている秘密鍵を用いて復号し、元の平文を得る。RSA(Rivest-Shamir-Adleman Scheme)は、大きな整数nを素因数分解することの難しさに安全性の根拠をおいている。
【0033】
なお、暗号演算回路11は、これらの暗号用演算、認証用演算、ハッシュ関数、署名に関する演算、共通鍵暗号の演算、開鍵暗号の演算等を、全て必須とするものではないが、少なくとも主に認証処理に関わる暗号演算処理を行う。
【0034】
IPL用ROM12に書き込まれるIPLとは、ネットワーク接続型電子機器1が、OS、アプリケーションなどのソフトウェアやオブジェクトであるシステムモジュールを読み込むのに必要な最低限の処理、例えば、メモリテストなど、である。また、後述するシステムモジュールの読み出し、完全性の確認に関係する処理などもIPLに含まれており、この完全性の確認に関係する処理の部分が重要である。
【0035】
制御プロセッサ固有の秘密鍵13は、Kとして説明する。この秘密鍵(K)13は、制御プロセッサに固有の鍵であり、前記共通鍵暗号を復号するのに使われる。もちろん、暗号化するのにも使われる。また、後述の第2実施例などでは、ハッシュ値テーブルのチェックにも使われる。システムモジュールが秘密鍵Kによって暗号化されている場合には、復号の際に使われることになる。
【0036】
ハッシュ値テーブル用メモリ14は、この第1実施例では、予めハッシュ値テーブルを記録している。図4には、ネットワーク接続型電子機器1が起動する際に、図1のROM4又はRAM5等から読み込むシステムモジュールと、ハッシュ値に関するテーブルを示す。ROM4又はRAM5等からロードするシステムモジュール21、アルゴリズム22、ハッシュ値23によって構成される。アルゴリズム22をシステムモジュール21に適用したときに得られるハッシュ値23という構成になる。すなわち、モジュールAにSHA1演算というアルゴリズムを適用してハッシュ値を計算すると、”83f9c9aee9893b9defba9883187f38bc8f9aa824”となることを意味している。
【0037】
ここでは、便宜上、ロードするモジュール21、アルゴリズム22、ハッシュ値23としているが、実際には前記電子機器が理解できる形式になっている。
【0038】
また、図4のハッシュ値テーブルは、システムモジュールを読み込む順番も示している。ここで、前記電子機器はA、B、C、Dの順番でシステムモジュールを読み込む。
【0039】
このハッシュ値テーブルは、前述したように、予めプロセッサ内部のハッシュ値テーブル用メモリ14に書き込まれている。このように、システムモジュールの照合用ハッシュ値がプロセッサ内部のハッシュ値テーブル用メモリ14に存在することにより、ハッシュテーブルの改ざんや消去をすることはできず、照合用ハッシュ値として信頼できる状態である。
【0040】
なお、ハッシュ値テーブルは、ハッシュ値テーブル用メモリに予め書き込まれておらず、前記電子機器の起動フロー中にプロセッサ内部のハッシュ値テーブル用メモリに書き込れるようにしてもよい。この場合についての詳細は後述する。
【0041】
図5は、ハッシュ値テーブルがハッシュ値テーブル用メモリに予め書き込まれている場合の、前記電子機器の起動時の処理手順を表している。ハッシュ値テーブルの存在する場所ごとに記述する。
【0042】
前記電子機器の電源がオンになったとき、制御プロセッサ2のIPL用ROM12にあるIPLが実行される(ステップS1)。次に、ハッシュ値テーブル用メモリ14に書き込まれているハッシュ値テーブルを参照し、外部メモリ、例えばRAM5からシステムモジュールを読み出す(ステップS2)。次に読み出してきたシステムモジュールの完全性のチェックを行う(ステップS3)。
【0043】
完全性のチェックは、システムモジュールに、図4のアルゴリズム22を適用し、ハッシュ値23と照合することによって行う(ステップS3)。ハッシュ値が一致しなかった場合(NG)、システムモジュールに不具合(改ざんなど)があったことを主原因とし、エラーを判断して終了とする。このとき、前記電子機器を起動しない。或いは、前記電子機器にエラーコード等を出力する機能があれば、エラーであることと、エラーコードを出力してもよい(ステップS4)。ステップS3にて、ハッシュ値が一致した場合(OK)、システムモジュール全てが読み込まれたかどうかをチェックし(ステップS5)、読み込まれていれば(YES)、前記電子機器は起動終了(ステップS6)、読み込まれていなければ(NO)、ステップS2へ戻り次のシステムモジュールを読み込む。
【0044】
このように、ネットワーク接続型電子機器1の第1実施例は、図3に示すように、暗号演算回路11、IPL用ROM12、制御プロセッサ固有の秘密鍵13、ハッシュ値テーブル用メモリ14を一体に1チップ化している。特に、ハッシュ値テーブルメモリ14には、予めハッシュ値テーブルを書き込んでいるため、ハッシュテーブルの改ざんや消去をすることはできず、照合用ハッシュ値として信頼できる状態である。このため、第1実施例によれば、起動直後のネットワーク接続型電子機器1は、悪意を持った改ざんを受けていない信頼できるソフトウェア群によって動作していると信頼することができる。また、その後に使用されるアプリケーション等についても、それが改ざんされたり、或いは、置き換えられたりといったような、使用者、或いは管理者が意図しない変更を加えられていないことを認証する際の根拠として、このシステムを利用することができる。
【0045】
次に、ネットワーク接続型電子機器1の第2実施例について説明する。この第2実施例も前記図1に示すように、制御プロセッサ2が内部バス3を介してROM4、RAM5、入力/出力インターフェース(I/O用I/F)6、及びネットワークI/F7と接続している構成である。ただし、ハッシュ値テーブルは、図3のハッシュ値テーブル用メモリ14に予め書き込まれておらず、前記電子機器の起動フロー中にプロセッサ内部のハッシュ値テーブル用メモリに書き込れる。ハッシュ値テーブルは、プロセッサ固有の秘密鍵K13、或いはKをもとに生成される鍵K’によって暗号化されて、外部メモリ4又は5に保存されているとする。
【0046】
この第2実施例の処理手順について図6を参照して説明する。先ず、電子機器の電源がオンになったとき、制御プロセッサのIPL用ROM12にあるIPLが実行される(ステップS11)。次にハッシュ値テーブルを外部メモリから読み出す(ステップS12)。次に読み出してきたハッシュ値テーブルのチェックを行う(ステップS13)。
【0047】
このステップS13におけるハッシュ値テーブルのチェックは、プロセッサ固有の秘密鍵K13或いはKから生成する別の鍵K’によってハッシュ値テーブルを復号して行われる。復号して得る情報がハッシュ値テーブルの形式になっているかどうかをチェックする。
【0048】
ステップS13によるチェックの結果、ハッシュ値テーブルの形式が正しくない場合、ハッシュ値テーブルに不具合(改ざんなど)があるのが主原因であるので、前記電子機器は起動しない、或いは、前記機器にエラー出力する機能があれば、エラーを出力する(ステップS14)。ステップS13によるチェックの結果、ハッシュ値テーブルの形式が正しい場合(OK)、ハッシュ値テーブルをハッシュ値テーブル用メモリ14に展開する(ステップS15)。
【0049】
次にハッシュ値テーブルを参照し、外部メモリからシステムモジュールを読み出す(ステップS16)。そして、読み出してきたシステムモジュールの完全性のチェックを行う(ステップS17)。完全性のチェックは、図4のシステムモジュール21にアルゴリズム22を適用し、ハッシュ値23と照合する。
【0050】
ステップS17におけるモジュールチェックにてハッシュ値が一致しなかった場合、システムモジュールに不具合(改ざんなど)があるのが主原因であり、前記電子機器は起動しない、或いは、前記電子機器にエラー出力する機能があれば、エラー出力する(ステップS18)。
【0051】
ステップS17におけるシステムモジュールチェックにてハッシュ値が一致した場合、システムモジュール全てが読み込まれたかどうかチェックし(ステップS19)、読み込まれていれば前記電子機器は起動終了し(ステップS19)、読み込まれていなければ、ステップS16へ戻り外部メモリから次のシステムモジュールを読み込む。
【0052】
なお、図6に示した処理手順では、システムモジュールは暗号化されていないが、プロセッサ固有の秘密鍵K或いはKから生成する別の鍵K’によって暗号化されていてもよく、この場合、図6のステップS17の完全性のチェックの前であって、ステップS16のシステムモジュールの読み出しの後に復号すればよい。
【0053】
このように、ネットワーク接続型電子機器1の第2実施例は、図3に示すように、暗号演算回路11、IPL用ROM12、制御プロセッサ固有の秘密鍵13、ハッシュ値テーブル用メモリ14を一体に1チップ化している。特に、ハッシュ値テーブルメモリ14には、前記電子機器の起動フロー中に、外部メモリからハッシュ値テーブルが書き込まれ、動作中はそのまま制御プロセッサ2に一体化されたハッシュ値テーブル用メモリ14に格納されることになるので、ハッシュテーブルの改ざんや消去をすることはできず、照合用ハッシュ値として信頼できる状態である。このため、第2実施例によれば、起動直後のネットワーク接続型電子機器1は、悪意を持った改ざんを受けていない信頼できるソフトウェア群によって動作していると信頼することができる。また、その後に使用されるアプリケーション等についても、それが改ざんされたり、或いは、置き換えられたりといったような、使用者、或いは管理者が意図しない変更を加えられていないことを認証する際の根拠として、このシステムを利用することができる。
【0054】
次に、ネットワーク接続型電子機器1の第3実施例について説明する。この第3実施例も前記図1に示すように、制御プロセッサが内部バス3を介してROM4、RAM5、入力/出力インターフェース(I/O用I/F)6、及びネットワークI/F7と接続している構成である。ただし、前記制御プロセッサ2に代わり、図7に示す制御プロセッサ30を用いる。
【0055】
図7において、制御プロセッサ30は、ネットワーク接続型電子機器1をセキュアに起動し、実行するため、暗号演算回路31、IPL(Initial Program Loader)を書き込んだROM32、制御プロセッサ固有の秘密鍵33、CA(Certificate Authority)の公開鍵証明書34、権利者の公開鍵証明書35によって構成される。特に、二種類の公開鍵証明書を制御プロセッサ30内に格納しているのは特徴的である。これらの公開鍵証明書は、後述の図8のシステムモジュール一覧と、システムモジュールに、モジュールの権利者(モジュール作成者、モジュール配布者、電子機器製造者などのいずれか)によって付加されている公開鍵基盤(Public Key Infrastructure:PKI)ベースの電子署名を検証するために用いられる。この電子署名を検証することによりシステムモジュールの完全性を維持するというところに特徴がある。
【0056】
暗号演算回路31には、前記暗号演算回路11と同様にネットワーク接続型電子機器1で必要となる暗号用演算、認証用演算、例えば、SHA1、MD5などのハッシュ関数、HMAC-SHA1などのハッシュ関数、ECCなどの署名に関する演算、AES、Triple-DESなどの共通鍵演算の演算、RSAなどの公開鍵暗号の演算等が含まれる。これらの演算は、全てが必須ではないが、少なくとも主に認証処理に関わる暗号演算処理を行う。
【0057】
IPL用ROM32に書き込まれるIPLとは、ネットワーク接続型電子機器1がソフトウェアであるシステムモジュールを読み込むのに必要な最低限の処理、例えば、メモリテストなど、である。また、後述するシステムモジュール読み出し、認証に関係する処理などもIPLに含まれており、この認証に関係する処理の部分が重要である。
【0058】
制御プロセッサ固有の秘密鍵33は、前記秘密鍵13と同様に、Kとして説明する。この秘密鍵(K)33は、制御プロセッサに固有の鍵であり、暗号を復号するのに使われる。もちろん、暗号化する場合にも使われる。
【0059】
CA公開鍵証明書34は、認証局(Certificate Authority:CA)が発行したデジタル証明書である。CA公開鍵が添付されている。文書の正当性を保証するために使われる。
【0060】
権利者公開鍵証明書35は、モジュールの権利者(モジュール作成者、モジュール配布者、前記電子機器製造者などのいずれか)の公開鍵を証明するデジタル証明書である。権利者公開鍵が添付されている。
【0061】
図8は、前記電子機器が読み込むべきシステムモジュール一覧と読み込み順番を表しており、IPL用ROM32に格納されているIPLは外部メモリからシステムモジュールを読み込む前にこれを読み込むような処理を行う。便宜上、ロードするシステムモジュールとしているが、実際には前記機器が理解できる形式になっている。また、図8のシステムモジュール一覧も、システムモジュールと同様にモジュールの権利者(モジュール作成者、モジュール配布者、前記電子機器製造者などのいずれか)によってPKIベースの電子署名が付加されている。この第3実施例は、前述したように制御プロセッサ30を用いて、PKIベースの電子署名を検証することによりシステムモジュールの完全性を維持することができる。
【0062】
図9には、第3実施例の起動時の処理手順を表している。前記電子機器の電源がオンになったとき、プロセッサのIPL用ROM32にあるIPLが実行される(ステップS21)。次にCAの公開鍵証明書34を読み出し(ステップS22)、チェックする(ステップS23)。なお、プロセッサ内に記録されていることからステップS23のチェックは省略することが可能である。
【0063】
ステップS23のチェックでCA公開鍵証明書34が正しくなかった場合、CAの公開鍵証明書34の不具合が主原因であり、前記電子機器は起動しない、或いは、電子機器にエラー出力する機能があればエラーを出力する。
【0064】
次に権利者の公開鍵証明書35を読み出し(ステップS24)、チェックする(ステップS25)。制御プロセッサ30内に記録されていることからステップS25のチェックは省略することが可能である。
【0065】
ステップS25のチェックで正しくなかった場合、権利者の公開鍵証明書35の不具合が主原因であり、前記電子機器は起動しない、或いは、電子機器にエラー出力する機能があればエラーを出力する。
【0066】
次に外部メモリにある図8のモジュールリストを読み出す(ステップS26)。そして、読み出してきたモジュールリストの署名をチェックする(ステップS27)。ここでの署名のチェックには、権利者公開鍵証明書に添付されている権利者の公開鍵を用いて検証する。
【0067】
ステップS27のチェックで正しくなかった場合、モジュールリストの不具合(改ざんなど)が主原因であり、前記電子機器は起動しない、或いは、電子機器にエラー出力する機能があればエラーを出力する。
【0068】
次にモジュールリストを参照し、外部メモリからシステムモジュールを読み出す(ステップS28)。次に読み出してきたシステムモジュールの署名をチェックする(ステップS29)。このチェックはステップS27のチェックと同じである。
【0069】
ステップS29のチェックで正しくなかった場合、システムモジュールの不具合(改ざんなど)が主原因であり、前記電子機器は起動しない、或いは、電子機器にエラー出力する機能があればエラーを出力する。
【0070】
次にシステムモジュール全てが読み込まれたかどうかをチェックし(ステップS30)、読み込まれていれば前記電子機器は起動終了(ステップS31)、読み込まれていなければステップS28へ戻り次のシステムモジュールを読み込む。
【0071】
なお、この図9の処理では、システムモジュールは暗号化されていないが、プロセッサ固有の秘密鍵K或いはKから生成する別の鍵K'によって暗号化されていてもよく、この場合、署名のチェックの前に復号すればよい。
【0072】
このように、ネットワーク接続型電子機器1の第3実施例は、図7に示すように、CAの公開鍵証明書34、権利者の公開鍵証明書35を制御プロセッサ30内に格納し、システムモジュール一覧と、システムモジュールに、モジュールの権利者(モジュール作成者、モジュール配布者、電子機器製造者などのいずれか)によって付加されている公開鍵基盤(Public Key Infrastructure:PKI)ベースの電子署名を検証するのに用いるので、システムモジュールの完全性を維持することができる。このため、第3実施例によれば、起動直後のネットワーク接続型電子機器1は、悪意を持った改ざんを受けていない信頼できるソフトウェア群によって動作していると信頼することができる。また、その後に使用されるアプリケーション等についても、それが改ざんされたり、或いは、置き換えられたりといったような、使用者、或いは管理者が意図しない変更を加えられていないことを認証する際の根拠として、このシステムを利用することができる。
【0073】
次に、ネットワーク接続型電子機器1の第4実施例について説明する。この第4実施例も前記図1に示すように、制御プロセッサ2が内部バス3を介してROM4、RAM5、入力/出力インターフェース(I/O用I/F)6、及びネットワークI/F7と接続している構成である。そして、前記第2実施例のように、図3に示した前記制御プロセッサ2が一体化しているハッシュ値テーブル用メモリ14には、ハッシュ値テーブルが予め書き込まれておらず、前記電子機器の起動フロー中に外部メモリ(例えばROM4やRAM5)から読み出されて書き込まれる。このような構成の制御プロセッサ2は、システムモジュールの権利者が作成したシステムモジュールを更新するという処理を行うものである。
【0074】
図10には、システムモジュールの権利者が作成する更新モジュールを示す。モジュール51、アルゴリズム52、更新前ハッシュ値53、更新後ハッシュ値54、新システムモジュール55によって構成される。
【0075】
更新モジュールは、どのシステムモジュールを更新するのかを限定する情報と、新システムモジュールによって構成されていればよく、必ずしも図10の構成というわけではない。
【0076】
システムモジュールの権利者は、プロセッサ固有の秘密鍵K13を用いて、先の更新モジュールのハッシュ値Hを計算する。例えば、更新モジュールをMとすると、
H=HMAC−SHA1(K、M)
といった演算を行う。これは、ハッシュ関数SHA1に鍵Kを付け加えた演算である。ここで用いているプロセッサ固有の秘密鍵Kは、システムモジュールの権利者と前記電子機器(厳密にはプロセッサ)の間で予め共有している。よって、HMAC−SHA1によるハッシュ値を用いることにより、前記電子機器はシステムモジュールの権利者、厳密には更新モジュールにシステムモジュールを更新する権利があるかどうかの検査を行うことができる。
【0077】
システムモジュールの権利者は、更新モジュールMとハッシュ値Hを前記電子機器に、例えばメモリ4又は5を介して与える。
【0078】
図11には、この第4実施例におけるシステムモジュール更新時の処理手順を示す。先ず、制御プロセッサ2は、更新モジュールM、プロセッサ固有の秘密鍵K、ハッシュ値Hを読み込む(ステップS41)。次にハッシュ値H’を計算し、
H’=HMAC−SHA1(K、M)
システムモジュールの権利者から受け取ったハッシュ値Hと一致するかどうか検査する(ステップS42)。すなわち、
H’=H
が成立するかどうかを検査する。この検査によって、前記電子機器はシステムモジュールの権利者が正しい相手であるか否かを判断する。検査によって、プロセッサ固有の秘密鍵Kを、システムモジュールの権利者が前記電子機器と共有していることが分かるためである。ここで、一致しなければ、エラー処理、例えば、「アップデートに失敗しました」などのメッセージを出力して停止する。また、エラーコードを出力して停止してもよい。
【0079】
ステップS42の検査にて、計算したハッシュ値H’と、受け取ったハッシュ値Hとが一致していた場合(OK)、図10に示した更新モジュールMからモジュール51を取り出し(ステップS43)、ハッシュ値テーブル(図4)にそのモジュールが存在するかどうかを確認する(ステップS44)。存在しない場合はエラー処理を行う。
【0080】
ステップS44における確認により、モジュール51に相当するモジュールが図4のハッシュ値テーブルに存在していた場合、更新モジュールMから更新前ハッシュ値53を取り出し(ステップS45)、ハッシュ値テーブル(図4)の該当するハッシュ値と一致するかどうか確認する(ステップS46)。一致しない場合はエラー処理を行う。
【0081】
ステップS46において一致していた場合(OK)、更新モジュールMから更新後のハッシュ値54を取り出す(ステップS47)。次に、更新モジュールMから新システムモジュール55を取り出し(ステップS48)、ハッシュ値を計算する(ステップS49)。このハッシュ値の計算は更新モジュールMのアルゴリズム52を用いる。ステップS49の演算の結果とステップS47で取り出した更新後ハッシュ値が一致するかどうかを確認し(ステップS50)。一致しない場合はエラー処理を行う。
【0082】
ステップS50にて一致していた場合、システムモジュールを更新し(ステップS51)、ハッシュ値テーブルを更新する(ステップS52)。
【0083】
例えば、システムモジュールの権利者が作成した更新モジュールMが図4に示したテーブル中のモジュールCに関するものである場合について以下に説明する。図11にあっては、モジュール51が“C”であり、アルゴリズム52が“SHA1”である。
【0084】
先ず、図11のステップS41にて、制御プロセッサ2は、更新モジュールM、プロセッサ固有の秘密鍵K、ハッシュ値Hを読み込む。このハッシュ値Hは、システムの権利者が、プロセッサ固有の秘密鍵K13を用いて、
H=HMAC−SHA1(K、M)
として計算したものである。図4においては、“9aa8b7b3c・・・dba”となっている。
【0085】
制御プロセッサ2は、ステップS42にて、プロセッサ固有の秘密鍵13と、更新モジュールMとから、
H’=HMAC−SHA1(K、M)
のようにハッシュ値H’を計算し、システムモジュールの権利者から受け取ったハッシュ値Hと一致するかどうか検査する。ここで、制御プロセッサ2の計算したハッシュ値H’も、“9aa8b7b3c・・・dba”であれば、制御プロセッサ2は、ステップS43にて、図10に示した更新モジュールMからモジュール51を取り出し、ハッシュ値テーブル(図4)にそのモジュールが存在するかどうかを確認する(ステップS44)。
【0086】
ステップS44では、モジュール51に相当するモジュールが図4のハッシュ値テーブルにCとして存在している。そこで、ステップS45にて、更新モジュールMから更新前ハッシュ値53を取り出し、ハッシュ値テーブル(図4)の該当するハッシュ値と一致するかどうか確認する(ステップS46)。ここでは、“9aa8b7b3c・・・dba”として一致しているとする。
【0087】
ステップS47において、更新モジュールMから更新後のハッシュ値54を取り出す。例えば、更新後のハッシュ値は“f9b18d348・・・2349a”であったとする。次に、更新モジュールMから新システムモジュール55としてCを取り出し(ステップS48)、更新モジュールMのアルゴリズム52を用いて、ハッシュ値を計算する(ステップS49)。ここでの計算によるハッシュ値も“f9b18d348・・・2349a”であったとする。
【0088】
そして、ステップS49の演算の結果とステップS47で取り出した更新後ハッシュ値の一致をステップS50にて確認し、システムモジュールCを更新し(ステップS51)、ハッシュ値テーブルを更新する(ステップS52)。これにより、図12に示すように、システムモジュールCの更新後のハッシュ値テーブルが得られる。
【0089】
このように、ネットワーク接続型電子機器1の第4実施例は、図3に示すように、暗号演算回路11、IPL用ROM12、制御プロセッサ固有の秘密鍵13、ハッシュ値テーブル用メモリ14を一体に1チップ化している。ハッシュ値テーブルメモリ14には、前記電子機器の起動フロー中に、外部メモリからハッシュ値テーブルが書き込まれ、動作中はそのまま制御プロセッサ2に一体化されたハッシュ値テーブル用メモリ14に格納されることになる。そして、この第4実施例は、システムモジュールの権利者が作成したシステムモジュールを更新するという処理を行うとき、システムモジュールを更新する権利をチェックし、更新する権利を有するシステムモジュールだけを正確に判断し、更新を実行することができる。セキュアな状態を維持したままでの更新が可能となるので、システムモジュールの更新後にシステムを起動しても、システムは悪意を持った改ざんなどを受けていない信頼できるソフトウェア群によって動作していると信頼することができる。また、その後に使用されるアプリケーション等についても、それが改ざんされたり、或いは、置き換えられたりといったような、使用者、或いは管理者が意図しない変更を加えられていないことを認証する際の根拠として、このシステムを利用することができる。
【0090】
次に、ネットワーク接続型電子機器1の第5実施例について説明する。この第5実施例も前記図1に示すように、制御プロセッサが内部バス3を介してROM4、RAM5、入力/出力インターフェース(I/O用I/F)6、及びネットワークI/F7と接続している構成である。ただし、前記第3実施例と同様に前記制御プロセッサ2に代わり、図7に示す制御プロセッサ30を用いる。そして、この制御プロセッサ30は、システムモジュールの権利者が作成したシステムモジュールを更新するという処理を行うものである。
【0091】
図13には、システムモジュールの権利者が作成する更新モジュールを示す。モジュール71、新システムモジュール72によって構成される。
【0092】
システムモジュールの権利者は、自身の秘密鍵Sを用いて、先の更新モジュールの署名Dを計算する。例えば、更新モジュールをMとすると、
D=DSA(S、M)
といった演算を行う。秘密鍵Sは、制御プロセッサ30に含まれる権利者公開鍵証明書35の公開鍵に対応する秘密鍵である。システムモジュールの権利者は、更新モジュールMと署名Dを前記電子機器1に与える。
【0093】
図14は第5実施例におけるシステムモジュール更新時の処理手順を示す図である。システムモジュールの更新が行われるのは前記電子機器1が起動してからであるため、起動時に、CA公開鍵証明書の検査、権利者公開鍵証明書の検査が行われている。よってここでは同様の処理を省略しているが、省略せずに同様の検査を行ってもよい。その場合は、ステップS61の前に、図9のステップS21からステップS25の処理を行う。
【0094】
図14において、先ず、更新モジュールM、署名D、権利者公開鍵を読み込む(ステップS61)。次に署名Dの検証を行う(ステップS62)。署名の検証は、前記署名生成のアルゴリズムに対応する検証アルゴリズムを用いる。署名が正しくなければ、エラー処理、例えば、「アップデートに失敗しました」などのメッセージを出力して停止するか、或いはエラーコードを出力して停止する。
【0095】
ステップS62にて更新モジュールをチェックし、署名が正しい場合、更新モジュールMからモジュール71を取り出し(ステップS63)、図8に示したシステムモジュール一覧にそのモジュールが存在するかどうかを確認する(ステップS64)。存在しない場合はエラー処理を行う。
【0096】
ステップS64でのモジュールの存在確認において、存在していた場合、更新モジュールMから新システムモジュールを取り出し(ステップS65)、新システムモジュールの署名を検証する(ステップS66)。署名が正しくなければエラー処理を行う。ステップS66にて署名が正しいと判断した場合、システムモジュールを更新する(ステップS67)。
【0097】
このように、ネットワーク接続型電子機器1の第5実施例は、図7に示すように、CAの公開鍵証明書34、権利者の公開鍵証明書35を制御プロセッサ30内に格納し、システムモジュール一覧と、システムモジュールに、モジュールの権利者(モジュール作成者、モジュール配布者、電子機器製造者などのいずれか)によって付加されている公開鍵基盤(Public Key Infrastructure:PKI)ベースの電子署名を検証するのに用いる。そして、この第5実施例は、システムモジュールの権利者が作成したシステムモジュールを更新するという処理を行うとき、オブジェクトを更新する権利をチェックし、権利を有するオブジェクトだけを正確に判断し、更新を実行することができる。セキュアな状態を維持したままでの更新が可能となるので、システムモジュールの更新後にシステムを起動しても、システムは悪意を持った改ざんなどを受けていない信頼できるソフトウェア群によって動作していると信頼することができる。また、その後に使用されるアプリケーション等についても、それが改ざんされたり、或いは、置き換えられたりといったような、使用者、或いは管理者が意図しない変更を加えられていないことを認証する際の根拠として、このシステムを利用することができる。
【0098】
さらに、この第5実施例のような方式であれば、複数のシステムモジュールの権利者が存在することを許すことができる。複数のシステムモジュールの権利者が存在する場合は、システムモジュールの権利者の数だけその公開鍵証明書を制御プロセッサ30内部に記録しておけばよい。
【0099】
ところで、ネットワーク接続型電子機器1の第1実施例、第2実施例及び第4実施例では、図3に示す構成において、ハッシュ値テーブル用メモリ14に、予め又は機器起動中に、ハッシュ値テーブルを書き込んでいた。このハッシュ値テーブルを用いて、前記電子機器1を起動する際に、利用するシステムモジュールの完全性(Integrity)の検査を実施することにより、正しいモジュールによって起動することを保証し、セキュアな状態での前記電子機器1の起動を行っている。このシステムモジュールの完全性の検査のためには、前記電子機器1にて利用する全モジュールのハッシュ値が必要となる。しかしながら、ハッシュ値テーブル用メモリ14の限られたメモリ資源において、全モジュールのハッシュ値を記録することは困難である場合がある。
【0100】
そこで、ハッシュ用テーブルメモリ14が有限である前記電子機器において、システムモジュールのハッシュ値を管理する場合、複数のシステムモジュールをまとめて一つのシステムモジュールと見なすことにより、システムモジュールが増大したとしてもハッシュ値テーブルを限られたメモリの中で管理することができる。
【0101】
以下、システムモジュールが、非圧縮の場合について説明する。図15は、システムモジュールを一意に定めるモジュールID81と、モジュール名82を示している。モジュールID81が”1、2、3、4、5、6、7”であるシステムモジュールの名前が、”A、C、G、D、B、F、E”であることを示している。ここでは明示的にシステムモジュール名82を示しているが、利用対象物内で識別できるもの、例えば、システムモジュールが記録されているアドレスなどであってもよい。
【0102】
図16は、各モジュールごとのハッシュ値を示している。ハッシュ値ごとのID91とシステムモジュール92、ハッシュ値を導出するアルゴリズム93、ハッシュ値94によって構成される。ここではアルゴリズム93としてアルゴリズム名を示しているが利用対象内で識別できるもの、例えば、アルゴリズムを呼び出す命令などであってもよい。この図16において、例えば、ハッシュ値のIDが5の場合、それは図15のシステムモジュールIDが5、すなわちシステムモジュール名がBであるものをアルゴリズム「SHA1」によってハッシュ値を導出し、その結果が16進数で「8d34fba01b88da3f9eac0394bd4bca84da94abda」であることを意味する。
【0103】
図15、図16の状態のとき、二つのモジュールS,Pが追加された場合について図17を用いて説明する。新たに、システムモジュールID81が8でシステムモジュール名82がSのシステムモジュールと、システムモジュールID81が9でシステムモジュール名82がPのシステムモジュールが追加されている。図18には、図17の各モジュールごとのハッシュ値を示す。単純に、ID91が8と9という下2行が増えている。
【0104】
図18に示した情報を圧縮したものが図19である。図18に対して図19では、システムモジュールID102が4と5、7と8が統合されてハッシュ値104が計算されている。統合したことにより図19と図16は見かけ上同じサイズとなる。ここで見かけ上としたのは、図19のシステムモジュールID102の部分に統合した分の情報が付加していることを考慮していないからである。
【0105】
どの部分を統合するかは、連続するシステムモジュールIDを複数個、連続しないシステムモジュールIDを複数個のどちらかであってもよく、またいくつ統合してもよい。
【0106】
また、統合する方法は、ここでは複数個のシステムモジュールを一つのシステムモジュールと見なしてハッシュ値を計算している。すなわち、通常、ハッシュ値=ハッシュ関数(システムモジュール1個)としている部分を、
ハッシュ値=ハッシュ関数(モジュール|モジュール|・・|モジュール)
としてハッシュ値を計算する。記号「|」は連接を意味している。
【0107】
図20は、ハッシュ値表を更新する処理のフロー図である。システムモジュールが追加(ステップS71)された場合、システムモジュール表を更新(ステップS72)する。これは図15から図18への追加である。次にシステムモジュールを追加したことにより、メモリが限界に達するかどうかを確認(ステップS73)する。これは、追加したシステムモジュールの個数nとシステムモジュール1個あたり消費するメモリ量yによって
ny
だけ増加することから、現在のメモリ使用量m、メモリに限界値Mとすると、
M>m+ny (1)
が成立するかどうかを計算する。式(1)が成立する場合、追加したシステムモジュールのハッシュ値を計算(ステップS75)する。これは、図18に対応する。式(1)が成立しない場合、システムモジュールIDを統合(ステップS74)する。これは図19の(102)の部分にあたる。その後、ハッシュ値を計算(ステップS75)する。これは、図19に対応する。
【0108】
次に、複数個のシステムモジュールを圧縮して一つと見なした場合について述べる。図21は、図17に示した例と同様に、図15にシステムモジュールPとシステムモジュールSを追加したものである。図21のシステムモジュールID111が4の場合、システムモジュールDとシステムモジュールBが統合されていることを意味する。同様にシステムモジュールIDが6の場合、システムモジュールEとシステムモジュールSが統合されていることを意味する。図22は、このときの各モジュールのハッシュ値を示している。システムモジュールIDとハッシュ値ごとのID121は1対1対応を採るために、図22にはシステムモジュールIDは必要としない。結果的に、前記例よりも保持すべき情報は図22のシステムモジュールID分だけ少なくなる。
【0109】
どの部分を統合するかは、連続するシステムモジュールIDを複数個、連続しないシステムモジュールIDを複数個のどちらであってもよく、またいくつ統合してもよい。図22の例では、図17におけるシステムモジュールIDが4と5,7と8を統合している。
【0110】
複数個のシステムモジュールを統合する方法は、単純にシステムモジュールを統合する方法、システムモジュールを圧縮しつつ統合する方法がある。
【0111】
図23は、ハッシュ値表を更新する処理のフロー図である。システムモジュールが追加(ステップS81)された場合、システムモジュール表を更新(ステップS82)する。これは図15から図18への追加である。次にシステムモジュールを追加したことにより、メモリが限界に達するかどうかを確認(ステップS83)する。これは、前記例と同様の計算式(1)を用いる。式(1)が成立する場合、追加したシステムモジュールのハッシュ値を計算(ステップS85)する。これは、図18に対応する。式(1)が成立しない場合、システムモジュールを統合(ステップS84)する。これは、図21の(112)の部分に対応する。その後、ハッシュ値を計算(ステップS85)する。これは、図22に対応する。
【0112】
以下には、メモリ効率利用の効果について説明する。前述したように、システムモジュールのハッシュ値を管理する場合、複数のシステムモジュールをまとめて一つのシステムモジュールと見なすことにより、メモリを効率よく利用することができるだけでなく、統合することにより、あるシステムモジュールに対する改ざん攻撃を行うことが難しくなる。これは、どのシステムモジュールを統合しているかの情報を入手しなければ、事実上、改ざんできないからである。
【0113】
なお、ハッシュ値テーブルの実装において、ハッシュ計算の対象となる全てのシステムモジュールをテーブルの段数にあわせて区分けすることになるが、この分け方は、計算速度や効率を考慮して設計されなければならない。考慮すべき点として、
(a)ハッシュテーブルの各段のハッシュ値計算に含まれるシステムモジュールのサイズの合計を各段で同程度にする。
(b)同じハッシュ値計算に含まれる各システムモジュールは、論理的に、或いは物理的に近い位置にあり、ファイルアクセス時間の総計が効率的であるようにする。
(c)ハッシュ値計算に含まれるシステムモジュール数を、ハッシュテーブル各段でほぼ同じになるようにする。
といったことが想定されるが、どの条件を優先するかは機器の能力や用途、構造等に応じて決めればよい。
【0114】
【発明の効果】
本発明によれば、OSと独立した処理を実現するために必要なデータ、アルゴリズムをセキュアな状態で保存し、制御部内にてセキュアな状態でソフトウェアの認証処理を正しく実行することができる。また、システムモジュールの更新をセキュアな状態で行うことができる。
【図面の簡単な説明】
【図1】ネットワーク接続型電子機器の第1実施例のブロック図である。
【図2】認証の連鎖を説明するための図である。
【図3】制御プロセッサの構成を示す図である。
【図4】ハッシュテーブルを示す図である。
【図5】ネットワーク接続型電子機器の第1実施例の起動時の処理手順を示すフローチャートである。
【図6】ネットワーク接続型電子機器の第2実施例の起動時の処理手順を示すフローチャートである。
【図7】ネットワーク接続型電子機器の第3実施例を構成する制御プロセッサを示す図である。
【図8】システムモジュール一覧を示す図である。
【図9】ネットワーク接続型電子機器の第3実施例の起動時の処理手順を示すフローチャートである。
【図10】ネットワーク接続型電子機器の第4実施例が更新する更新モジュールを示す図である。
【図11】ネットワーク接続型電子機器の第4実施例の起動時の処理手順を示すフローチャートである。
【図12】システムモジュールの更新後のハッシュ値テーブルを示す図である。
【図13】システムモジュールの権利者が作成する更新モジュールを示す図である。
【図14】ネットワーク接続型電子機器の第5実施例の起動時の処理手順を示すフローチャートである。
【図15】システムモジュールを一意に定めるモジュールIDと、システムモジュール名を示す図である。
【図16】各システムモジュールごとのハッシュ値を示している図である。
【図17】二つのシステムモジュールS,Pが追加された場合のシステムモジュールIDと、システムモジュール名を示す図である。
【図18】前記図17の各モジュールごとのハッシュ値を示す図である。
【図19】前記図18に示した情報を圧縮したハッシュ値を示す図である。
【図20】ハッシュ値表を更新する処理手順を示すフローチャートである。
【図21】前記図15にシステムモジュールPとシステムモジュールSを追加した場合のシステムモジュールIDと、システムモジュール名を示す図である。
【図22】システムモジュールID分だけ少なくなったハッシュ値表を示す図である。
【図23】ハッシュ値表を更新する処理手順を示すフローチャートである。
【符号の説明】
1 ネットワーク接続型電子機器、2 制御プロセッサ、11 暗号演算回路、12 IPL用ROM、13 秘密鍵、14 ハッシュ値テーブル用メモリ、30 制御プロセッサ、31 暗号演算回路、32 IPL用ROM、33 秘密鍵、34 CA公開鍵証明書、35 権利者公開鍵証明書
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a system module execution device that reads and executes a system module, which is software such as an OS and an application, from an external storage unit, and transmits and receives data by connecting to a network. In place Related.
[0002]
[Prior art]
As digital devices such as personal computers are connected to the Internet, attacks such as destruction by malicious persons called crackers and intrusions of computer viruses are increasing. As one of the measures for constructing a safe system that can withstand such an attack, it is considered to use only a trusted digital authentication method for software operating in the device and start only the authenticated reliable software.
[0003]
However, conventional software systems (Operating System: OS) such as Windows (registered trademark) of Microsoft Corporation and Linux (Linux) do not take measures against such software reliability. . Even if such an authentication function is added later, there is no clear basis for whether the entire system including the kernel, which is the core of the OS, can be trusted. Questions arise.
[0004]
Under such circumstances, for example, Japanese Patent Application Laid-Open No. 2002-152196 discloses the following program authentication method for authenticating and executing software. First, it is confirmed by the built-in function unit of the portable device that the hash value is generated by the program main body and the private key that is paired with the public key that represents the origin of the program. Next, when the parent device authenticates the portable device by the public key method using the public key and the secret key, and the authentication is successful, the program has a genuine origin based on the hash value confirmation by the portable device. Determine if it is a thing. As described above, it is assumed that when the parent device succeeds in authenticating the portable device and the program has a genuine source, the program is authenticated with the public key. Then, the authenticated software is executed.
[0005]
Japanese Patent Laid-Open No. 10-333902 discloses the following computer system with a falsification detection function. After initializing the basic input / output system (BIOS) with the boot program stored in the ROM of the control unit, the OS stores the first saved information stored in the auxiliary storage device. The file to be inspected is read without going through the OS according to the read contents. Using these read contents and the second saved information stored in the ROM, the presence or absence of falsification of the inspected file is inspected. After confirming that there is no tampering, the OS loader is called to start the OS. For this reason, it is a technique that brings about an effect that the presence or absence of alteration of the OS loader, the OS file, or any other file can be surely verified before the OS loader or OS is started.
[0006]
[Patent Document 1]
JP 2002-152196 A
[Patent Document 2]
JP-A-10-333902
[0007]
[Problems to be solved by the invention]
By the way, the techniques disclosed in Patent Document 1 and Patent Document 2 read data such as hash values and algorithms from the outside to the control unit and execute them in the control unit. In the case of an attack, it is difficult to determine whether the authentication process is correct.
Further, no measures have been taken when updating a system module such as an OS.
[0008]
The present invention has been made in view of the above circumstances, stores data and algorithms necessary for realizing processing independent of the OS in a secure state, and performs software authentication processing in a secure state in the control unit. System module execution device that can execute correctly Set For the purpose of provision.
[0009]
In addition, the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a system module update method for an electronic device that can update a system module in a secure state.
[0010]
[Means for Solving the Problems]
In order to solve the above problems, a system module execution device according to the present invention includes a system module acquisition unit that acquires a system module, an electronic signature acquisition unit that acquires an electronic signature attached to the system module, Right holder public key certificate storage unit for storing the public key certificate for the right holder attached with the public key, and a public key certificate verification unit for the right holder for verifying whether the public key certificate for the right holder is defective. An electronic signature verification unit that verifies the electronic signature attached to the system module based on the public key of the right holder, and a system that executes the system module according to a verification result of the electronic signature verification unit Module execution part When update of the system module is requested, a right to update the system module is calculated using a unique secret key and a hash function defined for the update module to be updated, and the update module A system module update unit that performs an update by checking only a system module that has a right to update by checking whether the hash value before update and the hash value after update included in Is provided.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. This embodiment is connected to a network such as the Internet, and transmits / receives video, audio, text data, control data, and the like to / from other electronic devices connected to the network and a server of an information provider. Network-connected electronic equipment. For example, a video camera that transmits video data over the Internet, a digital still camera, and a network-connected video playback device, video recording / playback device, or audio data service server that downloads video data from a video data service server over the Internet A network-connected audio playback device, an audio recording / playback device, and the like that download audio data.
[0019]
Hereinafter, it is referred to as a network-connected electronic device, but is not limited to the above-described devices and devices. If a network connection is possible, a so-called consumer electronic device (consumer) such as a mobile phone, a personal digital assistant, or a monitor device is used. electronics: CE) Of course, business electronic devices connected to the network are also targeted. Compared to the case where a computer executes a plurality of software manufactured by a plurality of arbitrary software developers under an OS, the network-connected electronic device is limited in use and is licensed by the device manufacturer or the device manufacturer. Run software manufactured by a known software developer from the source.
[0020]
First, a first embodiment of the network connection type electronic apparatus 1 will be described. In the first embodiment, as shown in FIG. 1, a control processor 2 is connected to a ROM 4, a RAM 5, an input / output interface (I / O I / F) 6, and a network I / O via an internal bus 3. A configuration connected to F7 is adopted.
[0021]
In order to safely start the entire system, the control processor 2 executes all the system modules operating in the system, for example, software such as an OS and an application after verifying the integrity. In order to perform such authentication, the basis (starting and starting point) of authentication is required.
[0022]
As shown in FIG. 2, if A is reliable (trusted), the integrity of B can be proved by → A. If the integrity of B can be proved, the integrity of B1 can be proved by → B. Also, A can be trusted, so the completeness of C can be proved by → A. Thus, if A can be trusted, A can be used as a basis for authentication, and an authentication chain such as B, B1, B2,..., C, C1, C2,.
[0023]
Therefore, the control processor 2 uses a secure device to secure the basis for the authentication. Specifically, the control processor 2 securely activates and executes the network-connected electronic device 1 to execute and execute a cryptographic operation circuit (described later), a ROM in which an IPL (Intial Program Loader) is written, a secret key unique to the control processor, and a hash value. Table memory is integrated. In other words, a number of devices that would otherwise be connected to the outside via an internal bus are made into one chip.
[0024]
The ROM 4 is an auxiliary storage unit connected to the control processor 2 via the internal bus 3. Similarly, the RAM 5 is used as an auxiliary storage device and work area connected via the internal bus 3. The I / O I / F 6 is an interface for an input operation unit such as a key operation unit and a jog dial. It is also an interface for an output unit such as a video output unit or an audio output unit. The network I / F 7 is an interface for connecting to a network such as the Internet.
[0025]
As shown in FIG. 3, the control processor 2 includes a cryptographic operation circuit 11, a ROM (hereinafter referred to as IPL ROM) 12 in which IPL is written, a secret key 13 unique to the control processor, and a hash value table memory 14 Are integrated into one chip.
[0026]
The cryptographic operation circuit 11 includes cryptographic operations and authentication operations necessary for the network-connected electronic device 1, for example, hash functions such as SHA1, MD5, and MASH, hash functions such as HMAC-SHA1, and computations related to signatures such as ECC. Calculation of common key cryptography such as AES, DES, Triple-DES, and public key cryptography such as RSA.
[0027]
The cryptographic operation is an operation that prevents a third party from understanding a message transmitted over a network. Furthermore, the cryptographic operation is also used when information is stored in a RAM or a secondary storage device.
[0028]
The authentication calculation is an operation related to authentication processing, and is divided into counterpart authentication, user authentication, message authentication, and digital authentication depending on the authentication target. In particular, digital authentication is a technique for guaranteeing the validity of a document, and is performed by a calculation using a public key.
[0029]
The hash function is a mathematical processing method used for digital authentication and integrity check. Disturb long data and compress it into a hash value of a certain length (eg 128 bits, 160 bits, etc.). It is a safe hash function condition that it is difficult to estimate the input from the hash value and that the probability that the hash values of two different data match is extremely small.
[0030]
As an operation related to the signature, elliptical cryptography (Elliptic Curve Cryptosystem: ECC), which is a kind of public key cryptography, is used. The key size is smaller than the conventional RSA cipher. In general, 160-bit ECC can achieve almost the same strength as RSA encryption having a data length of 1024 bits. Of course, the RSA encryption may be used, or another signature algorithm may be used.
[0031]
Common key cryptography is a cipher in which the key to be encrypted is the same as the key to be decrypted, and both the sender and the receiver have secretly. Also called private key cryptography. In the calculation of the common key encryption, the secret key is shared between the sender and the receiver in advance to perform the encryption calculation. AES (Advanced Encryption Standard) is a procedural public key encryption. The block length is selected from 128 bits and the key length is selected from 128/192/256 bits. DES (Data Encryption Standard) is also a procedure public key cipher. Data is encrypted into a 64-bit data block unit of 56 bits key + 8 bits parity part. Triple-DES is a method in which the keys are lengthened by arranging three stages of DES to increase security.
[0032]
In public key cryptography, the key to be encrypted is different from the key to be decrypted, one of the keys is made public, and the other key is secret, and is also called asymmetric cryptography. When public key cryptography is used confidentially, the sender encrypts it using the recipient's public key and sends the ciphertext. The recipient decrypts it using a secret key known only to him and obtains the original plaintext. RSA (Rivest-Shamir-Adleman Scheme) bases safety on the difficulty of factoring large integers n.
[0033]
The cryptographic operation circuit 11 does not necessarily require all of the operations for encryption, authentication, hash function, signature, common key encryption, open key encryption, etc. In addition, cryptographic processing related to authentication processing is performed.
[0034]
The IPL written in the IPL ROM 12 is a minimum process necessary for the network-connected electronic device 1 to read a system module that is software or an object such as an OS or an application, such as a memory test. Further, processing related to system module reading and integrity confirmation, which will be described later, is also included in the IPL, and the processing related to this integrity confirmation is important.
[0035]
The secret key 13 unique to the control processor will be described as K. The secret key (K) 13 is a key unique to the control processor, and is used to decrypt the common key cipher. Of course, it is also used for encryption. In the second embodiment to be described later, it is also used for checking the hash value table. If the system module is encrypted with the secret key K, it is used for decryption.
[0036]
In the first embodiment, the hash value table memory 14 records a hash value table in advance. FIG. 4 shows a system module that is read from the ROM 4 or RAM 5 of FIG. 1 when the network-connected electronic device 1 is activated, and a table relating to the hash value. The system module 21 is loaded from the ROM 4 or RAM 5, the algorithm 22, and the hash value 23. The hash value 23 is obtained when the algorithm 22 is applied to the system module 21. That is, if the hash value is calculated by applying an algorithm called SHA1 calculation to the module A, it means “83f9c9aee9893b9defba9883187f38bc8f9aa824”.
[0037]
Here, for the sake of convenience, the module 21 to be loaded, the algorithm 22 and the hash value 23 are used, but the format is actually understood by the electronic device.
[0038]
The hash value table in FIG. 4 also shows the order in which the system modules are read. Here, the electronic device reads the system modules in the order of A, B, C, and D.
[0039]
As described above, this hash value table is written in the hash value table memory 14 in the processor in advance. As described above, since the hash value for collation of the system module exists in the hash value table memory 14 inside the processor, the hash table cannot be tampered with or deleted, and the hash value for collation can be trusted. .
[0040]
The hash value table may not be written in the hash value table memory in advance, but may be written in the hash value table memory inside the processor during the startup flow of the electronic device. Details of this case will be described later.
[0041]
FIG. 5 shows a processing procedure when the electronic apparatus is activated when the hash value table is written in the hash value table memory in advance. Describe each location where the hash value table exists.
[0042]
When the power of the electronic device is turned on, the IPL in the IPL ROM 12 of the control processor 2 is executed (step S1). Next, with reference to the hash value table written in the hash value table memory 14, the system module is read from an external memory, for example, the RAM 5 (step S2). Next, the integrity of the read system module is checked (step S3).
[0043]
The integrity check is performed by applying the algorithm 22 of FIG. 4 to the system module and collating it with the hash value 23 (step S3). If the hash values do not match (NG), the main cause is that the system module has a problem (such as tampering), and an error is determined and the process ends. At this time, the electronic device is not activated. Alternatively, if the electronic device has a function of outputting an error code or the like, an error and an error code may be output (step S4). If the hash values match in step S3 (OK), it is checked whether all the system modules have been read (step S5). If they have been read (YES), the electronic device has been activated (step S6). If not read (NO), the process returns to step S2 to read the next system module.
[0044]
As described above, the first embodiment of the network-connected electronic device 1 includes the cryptographic operation circuit 11, the IPL ROM 12, the secret key 13 unique to the control processor, and the hash value table memory 14 as shown in FIG. One chip. In particular, since the hash value table is written in the hash value table memory 14 in advance, the hash table cannot be tampered with or deleted, and can be trusted as a hash value for verification. For this reason, according to the first embodiment, it is possible to trust that the network-connected electronic device 1 immediately after startup is operated by a reliable software group that has not been maliciously altered. Also, as a basis for authenticating that the application or the like used after that has not been altered by the user or the administrator, such as falsification or replacement. This system can be used.
[0045]
Next, a second embodiment of the network connection type electronic apparatus 1 will be described. Also in the second embodiment, as shown in FIG. 1, the control processor 2 is connected to the ROM 4, RAM 5, input / output interface (I / O I / F) 6, and network I / F 7 via the internal bus 3. This is the configuration. However, the hash value table is not written in advance in the hash value table memory 14 of FIG. 3, but is written in the hash value table memory inside the processor during the startup flow of the electronic device. It is assumed that the hash value table is encrypted by the processor-specific secret key K13 or the key K ′ generated based on K and stored in the external memory 4 or 5.
[0046]
The processing procedure of the second embodiment will be described with reference to FIG. First, when the power of the electronic device is turned on, the IPL in the IPL ROM 12 of the control processor is executed (step S11). Next, the hash value table is read from the external memory (step S12). Next, the read hash value table is checked (step S13).
[0047]
The check of the hash value table in step S13 is performed by decrypting the hash value table with the processor-specific secret key K13 or another key K ′ generated from K. Check whether the information obtained by decryption is in the hash value table format.
[0048]
If the hash value table format is not correct as a result of the check in step S13, the main cause is that the hash value table has a defect (such as falsification), so the electronic device does not start or an error is output to the device. If there is a function to do so, an error is output (step S14). As a result of the check in step S13, if the format of the hash value table is correct (OK), the hash value table is expanded in the hash value table memory 14 (step S15).
[0049]
Next, referring to the hash value table, the system module is read from the external memory (step S16). Then, the integrity of the read system module is checked (step S17). For the integrity check, an algorithm 22 is applied to the system module 21 of FIG.
[0050]
If the hash value does not match in the module check in step S17, the main cause is that the system module has a defect (such as tampering), and the electronic device does not start or an error is output to the electronic device. If there is an error, an error is output (step S18).
[0051]
If the hash values match in the system module check in step S17, it is checked whether all the system modules have been read (step S19). If they have been read, the electronic device is activated and finished (step S19). If not, the process returns to step S16 to read the next system module from the external memory.
[0052]
In the processing procedure shown in FIG. 6, the system module is not encrypted, but may be encrypted with the processor-specific secret key K or another key K ′ generated from K. Decoding may be performed before the integrity check in step S17 in step 6 and after reading out the system module in step S16.
[0053]
As described above, the second embodiment of the network-connected electronic device 1 includes the cryptographic operation circuit 11, the IPL ROM 12, the secret key 13 unique to the control processor, and the hash value table memory 14 as shown in FIG. One chip. In particular, the hash value table memory 14 is written with the hash value table from the external memory during the startup flow of the electronic device, and is stored in the hash value table memory 14 integrated with the control processor 2 during operation. Therefore, the hash table cannot be tampered with or deleted, and the hash value for verification can be trusted. For this reason, according to the second embodiment, it is possible to trust that the network-connected electronic device 1 immediately after startup is operated by a reliable software group that has not been maliciously altered. Also, as a basis for authenticating that the application or the like used after that has not been altered by the user or the administrator, such as falsification or replacement. This system can be used.
[0054]
Next, a third embodiment of the network connection type electronic apparatus 1 will be described. In the third embodiment, as shown in FIG. 1, the control processor is connected to the ROM 4, RAM 5, input / output interface (I / O I / F) 6, and network I / F 7 via the internal bus 3. It is the composition which is. However, instead of the control processor 2, a control processor 30 shown in FIG. 7 is used.
[0055]
In FIG. 7, the control processor 30 securely starts and executes the network-connected electronic device 1 to execute a cryptographic operation circuit 31, a ROM 32 in which an IPL (Initial Program Loader) is written, a secret key 33 unique to the control processor, a CA. (Certificate Authority) public key certificate 34 and right holder's public key certificate 35. In particular, it is characteristic that two types of public key certificates are stored in the control processor 30. These public key certificates are listed in the system module list of FIG. 8 described later, and publicly attached to the system module by the right holder of the module (one of the module creator, module distributor, electronic device manufacturer, etc.). Used to verify a public key infrastructure (PKI) based electronic signature. It is characterized in that the integrity of the system module is maintained by verifying the electronic signature.
[0056]
The cryptographic operation circuit 31 includes cryptographic operations and authentication operations necessary for the network-connected electronic device 1, for example, hash functions such as SHA1 and MD5, and hash functions such as HMAC-SHA1. , Computation related to signatures such as ECC, computation of common key computations such as AES and Triple-DES, computation of public key cryptography such as RSA, and the like. All of these operations are not essential, but at least cryptographic operation processing mainly related to authentication processing is performed.
[0057]
The IPL written in the IPL ROM 32 is a minimum process necessary for the network-connected electronic device 1 to read a system module that is software, for example, a memory test. Further, processing related to system module reading and authentication, which will be described later, is also included in the IPL, and the processing related to authentication is important.
[0058]
The secret key 33 unique to the control processor will be described as K like the secret key 13. The secret key (K) 33 is a key unique to the control processor, and is used to decrypt the encryption. Of course, it is also used for encryption.
[0059]
The CA public key certificate 34 is a digital certificate issued by a certificate authority (CA). A CA public key is attached. Used to ensure document correctness.
[0060]
The right holder public key certificate 35 is a digital certificate that certifies the public key of the module right holder (one of the module creator, the module distributor, and the electronic device manufacturer). A rights holder's public key is attached.
[0061]
FIG. 8 shows a list of system modules to be read by the electronic device and the reading order. The IPL stored in the IPL ROM 32 performs a process of reading the system modules before reading them from the external memory. For convenience, a system module to be loaded is used, but in actuality, the device is in a format that can be understood by the device. Also, the system module list of FIG. 8 is added with a PKI-based electronic signature by the right holder of the module (any one of the module creator, the module distributor, the electronic device manufacturer, etc.), as in the system module. In the third embodiment, the integrity of the system module can be maintained by verifying the PKI-based electronic signature using the control processor 30 as described above.
[0062]
FIG. 9 shows a processing procedure when the third embodiment is activated. When the power source of the electronic device is turned on, the IPL in the IPL ROM 32 of the processor is executed (step S21). Next, the CA public key certificate 34 is read (step S22) and checked (step S23). Since it is recorded in the processor, the check in step S23 can be omitted.
[0063]
If the CA public key certificate 34 is not correct in the check in step S23, the CA public key certificate 34 is the main cause, and the electronic device does not start or has an error output function to the electronic device. Output an error.
[0064]
Next, the right holder's public key certificate 35 is read (step S24) and checked (step S25). Since it is recorded in the control processor 30, the check in step S25 can be omitted.
[0065]
If the check in step S25 is not correct, the main cause is a failure of the right holder's public key certificate 35, and if the electronic device does not start or if the electronic device has an error output function, an error is output.
[0066]
Next, the module list of FIG. 8 in the external memory is read (step S26). Then, the signature of the read module list is checked (step S27). The signature is checked here using the public key of the right holder attached to the right holder public key certificate.
[0067]
If the result of the check in step S27 is incorrect, the main cause is a malfunction (such as falsification) in the module list, and if the electronic device does not start or if the electronic device has an error output function, an error is output.
[0068]
Next, referring to the module list, the system module is read from the external memory (step S28). Next, the signature of the read system module is checked (step S29). This check is the same as the check in step S27.
[0069]
If the check in step S29 is not correct, the main cause is a malfunction (tampering) of the system module, and if the electronic device does not start or if the electronic device has an error output function, an error is output.
[0070]
Next, it is checked whether or not all the system modules have been read (step S30). If they have been read, the electronic device is activated (step S31). If not read, the process returns to step S28 to read the next system module.
[0071]
In the process of FIG. 9, the system module is not encrypted, but may be encrypted with the processor-specific secret key K or another key K ′ generated from K. In this case, the signature check Decoding may be performed before
[0072]
As described above, the third embodiment of the network-connected electronic device 1 stores the CA public key certificate 34 and the right holder's public key certificate 35 in the control processor 30, as shown in FIG. A public key infrastructure (PKI) -based electronic signature attached to the module list and the system module by the right holder of the module (one of the module creator, module distributor, electronic device manufacturer, etc.) Since it is used for verification, the integrity of the system module can be maintained. For this reason, according to the third embodiment, it is possible to trust that the network-connected electronic device 1 immediately after startup is operated by a software group that is not subject to malicious tampering. Also, as a basis for authenticating that the application or the like used after that has not been altered by the user or the administrator, such as falsification or replacement. This system can be used.
[0073]
Next, a fourth embodiment of the network connection type electronic apparatus 1 will be described. In the fourth embodiment, as shown in FIG. 1, the control processor 2 is connected to the ROM 4, RAM 5, input / output interface (I / O I / F) 6, and network I / F 7 via the internal bus 3. This is the configuration. As in the second embodiment, the hash value table memory 14 integrated with the control processor 2 shown in FIG. 3 does not have a hash value table written in advance, and the electronic device is activated. During the flow, data is read from an external memory (for example, ROM 4 or RAM 5) and written. The control processor 2 having such a configuration performs a process of updating the system module created by the right holder of the system module.
[0074]
FIG. 10 shows an update module created by the right holder of the system module. The module 51 includes an algorithm 52, a hash value 53 before update, a hash value 54 after update, and a new system module 55.
[0075]
The update module only needs to be configured by information for limiting which system module is updated and the new system module, and is not necessarily configured as shown in FIG.
[0076]
The right holder of the system module calculates the hash value H of the previous update module using the processor-specific secret key K13. For example, if the update module is M,
H = HMAC-SHA1 (K, M)
The operation is performed. This is an operation in which the key K is added to the hash function SHA1. The processor-specific secret key K used here is shared in advance between the right holder of the system module and the electronic device (strictly, the processor). Therefore, by using the hash value by HMAC-SHA1, the electronic device can check whether or not the right holder of the system module, strictly speaking, the update module has the right to update the system module.
[0077]
The right holder of the system module gives the update module M and the hash value H to the electronic device via, for example, the memory 4 or 5.
[0078]
FIG. 11 shows a processing procedure when the system module is updated in the fourth embodiment. First, the control processor 2 reads the update module M, the processor-specific secret key K, and the hash value H (step S41). Next, the hash value H ′ is calculated,
H ′ = HMAC-SHA1 (K, M)
Whether the hash value H received from the right holder of the system module matches is checked (step S42). That is,
H '= H
Check whether is true. By this inspection, the electronic device determines whether the right holder of the system module is the correct partner. This is because it is clear from the examination that the right holder of the system module shares the processor-specific secret key K with the electronic device. If they do not match, an error process, for example, a message such as “Update failed” is output and the process stops. Also, an error code may be output to stop.
[0079]
When the calculated hash value H ′ matches the received hash value H in the inspection in step S42 (OK), the module 51 is taken out from the update module M shown in FIG. 10 (step S43), and the hash It is confirmed whether the module exists in the value table (FIG. 4) (step S44). If it does not exist, error processing is performed.
[0080]
If the module corresponding to the module 51 exists in the hash value table of FIG. 4 as a result of the confirmation in step S44, the pre-update hash value 53 is extracted from the update module M (step S45), and the hash value table (FIG. 4) It is confirmed whether or not it matches the corresponding hash value (step S46). If they do not match, error processing is performed.
[0081]
If they match in step S46 (OK), the updated hash value 54 is extracted from the update module M (step S47). Next, the new system module 55 is extracted from the update module M (step S48), and a hash value is calculated (step S49). This hash value calculation uses the algorithm 52 of the update module M. It is confirmed whether the result of the calculation in step S49 matches the updated hash value extracted in step S47 (step S50). If they do not match, error processing is performed.
[0082]
If they match in step S50, the system module is updated (step S51), and the hash value table is updated (step S52).
[0083]
For example, a case where the update module M created by the right holder of the system module is related to the module C in the table shown in FIG. 4 will be described below. In FIG. 11, the module 51 is “C”, and the algorithm 52 is “SHA1”.
[0084]
First, in step S41 of FIG. 11, the control processor 2 reads the update module M, the processor-specific secret key K, and the hash value H. This hash value H is obtained by the right holder of the system using the processor-specific secret key K13.
H = HMAC-SHA1 (K, M)
Is calculated as follows. In FIG. 4, “9aa8b7b3c... Dba”.
[0085]
In step S42, the control processor 2 uses the processor-specific secret key 13 and the update module M,
H ′ = HMAC-SHA1 (K, M)
The hash value H ′ is calculated as follows, and it is checked whether or not it matches the hash value H received from the right holder of the system module. If the hash value H ′ calculated by the control processor 2 is also “9aa8b7b3c... Dba”, the control processor 2 takes out the module 51 from the update module M shown in FIG. It is confirmed whether or not the module exists in the hash value table (FIG. 4) (step S44).
[0086]
In step S44, a module corresponding to the module 51 exists as C in the hash value table of FIG. Therefore, in step S45, the pre-update hash value 53 is extracted from the update module M, and it is confirmed whether or not it matches the corresponding hash value in the hash value table (FIG. 4) (step S46). Here, it is assumed that “9aa8b7b3c... Dba” matches.
[0087]
In step S47, the updated hash value 54 is extracted from the update module M. For example, assume that the updated hash value is “f9b18d348... 2349a”. Next, C is extracted from the update module M as the new system module 55 (step S48), and a hash value is calculated using the algorithm 52 of the update module M (step S49). Assume that the hash value calculated here is “f9b18d348... 2349a”.
[0088]
In step S50, the result of the calculation in step S49 and the updated hash value extracted in step S47 are confirmed in step S50, the system module C is updated (step S51), and the hash value table is updated (step S52). As a result, the updated hash value table of the system module C is obtained as shown in FIG.
[0089]
As described above, the fourth embodiment of the network-connected electronic device 1 includes the cryptographic operation circuit 11, the IPL ROM 12, the secret key 13 unique to the control processor, and the hash value table memory 14 as shown in FIG. One chip. The hash value table memory 14 is written with the hash value table from the external memory during the startup flow of the electronic device, and is stored in the hash value table memory 14 integrated with the control processor 2 during operation. become. In the fourth embodiment, when the process of updating the system module created by the right holder of the system module is performed, the right to update the system module is checked, and only the system module having the right to update is accurately determined. And update can be performed. Since it is possible to update while maintaining a secure state, even if the system is started after updating the system module, the system is operated by a group of reliable software that has not received malicious tampering. Can be trusted. Also, as a basis for authenticating that the application or the like used after that has not been altered by the user or the administrator, such as falsification or replacement. This system can be used.
[0090]
Next, a fifth embodiment of the network connection type electronic apparatus 1 will be described. In the fifth embodiment, as shown in FIG. 1, the control processor is connected to the ROM 4, RAM 5, input / output interface (I / O I / F) 6, and network I / F 7 via the internal bus 3. It is the composition which is. However, as in the third embodiment, a control processor 30 shown in FIG. 7 is used instead of the control processor 2. The control processor 30 performs processing for updating the system module created by the right holder of the system module.
[0091]
FIG. 13 shows an update module created by the right holder of the system module. A module 71 and a new system module 72 are included.
[0092]
The right holder of the system module has its own private key S M Is used to calculate the signature D of the previous update module. For example, if the update module is M,
D = DSA (S M , M)
The operation is performed. Secret key S M Is a secret key corresponding to the public key of the right holder public key certificate 35 included in the control processor 30. The right holder of the system module gives the update module M and the signature D to the electronic device 1.
[0093]
FIG. 14 is a diagram showing a processing procedure when the system module is updated in the fifth embodiment. Since the system module is updated after the electronic device 1 is activated, the CA public key certificate and the rights holder public key certificate are inspected at the time of activation. Therefore, although the same processing is omitted here, the same inspection may be performed without omission. In that case, the processing from step S21 to step S25 in FIG. 9 is performed before step S61.
[0094]
In FIG. 14, first, the update module M, signature D, and right holder public key are read (step S61). Next, the signature D is verified (step S62). The signature verification uses a verification algorithm corresponding to the signature generation algorithm. If the signature is not correct, an error process, for example, a message such as “Update failed” is output and stopped, or an error code is output and stopped.
[0095]
In step S62, the update module is checked. If the signature is correct, the module 71 is extracted from the update module M (step S63), and it is confirmed whether the module exists in the system module list shown in FIG. 8 (step S64). ). If it does not exist, error processing is performed.
[0096]
If it is determined in step S64 that the module exists, the new system module is extracted from the update module M (step S65), and the signature of the new system module is verified (step S66). If the signature is not correct, error handling is performed. If it is determined in step S66 that the signature is correct, the system module is updated (step S67).
[0097]
As described above, the fifth embodiment of the network-connected electronic device 1 stores the CA public key certificate 34 and the right holder's public key certificate 35 in the control processor 30, as shown in FIG. A public key infrastructure (PKI) -based electronic signature attached to the module list and the system module by the right holder of the module (one of the module creator, module distributor, electronic device manufacturer, etc.) Used to verify. In the fifth embodiment, when the process of updating the system module created by the right holder of the system module is performed, the right to update the object is checked, only the object having the right is accurately determined, and the update is performed. Can be executed. Since it is possible to update while maintaining a secure state, even if the system is started after updating the system module, the system is operated by a group of reliable software that has not received malicious tampering. Can be trusted. Also, as a basis for authenticating that the application or the like used after that has not been altered by the user or the administrator, such as falsification or replacement. This system can be used.
[0098]
Furthermore, with the system as in the fifth embodiment, it is possible to allow a plurality of right holders of system modules to exist. When there are a plurality of right holders of system modules, the public key certificates may be recorded in the control processor 30 by the number of right holders of the system modules.
[0099]
By the way, in the first embodiment, the second embodiment, and the fourth embodiment of the network-connected electronic device 1, in the configuration shown in FIG. 3, the hash value table is stored in the hash value table memory 14 in advance or during device activation. Was written. Using this hash value table, when the electronic device 1 is started up, the integrity of the system module to be used is checked to ensure that it is started up with the correct module in a secure state. The electronic device 1 is activated. In order to check the integrity of the system module, hash values of all modules used in the electronic device 1 are required. However, it may be difficult to record the hash values of all modules in the limited memory resource of the hash value table memory 14.
[0100]
Therefore, when managing the hash value of the system module in the electronic device having the limited hash table memory 14, even if the system module is increased by considering a plurality of system modules as one system module, the hash is increased. The value table can be managed in a limited memory.
[0101]
Hereinafter, a case where the system module is not compressed will be described. FIG. 15 shows a module ID 81 that uniquely defines a system module and a module name 82. It shows that the names of the system modules whose module ID 81 is “1, 2, 3, 4, 5, 6, 7” are “A, C, G, D, B, F, E”. Although the system module name 82 is explicitly shown here, it may be an item that can be identified in the object to be used, for example, an address where the system module is recorded.
[0102]
FIG. 16 shows a hash value for each module. Each hash value includes an ID 91, a system module 92, an algorithm 93 for deriving the hash value, and a hash value 94. Here, although the algorithm name is shown as the algorithm 93, it may be an identifier that can be identified within the usage target, for example, an instruction for calling the algorithm. In FIG. 16, for example, when the hash value ID is 5, the hash value is derived by the algorithm “SHA1” for the system module ID of FIG. 15, that is, the system module name is B, and the result is It means "8d34fba01b88da3f9eac0394bd4bca84da94abda" in hexadecimal.
[0103]
The case where two modules S and P are added in the state of FIGS. 15 and 16 will be described with reference to FIG. A system module having a system module ID 81 of 8 and a system module name 82 of S and a system module having a system module ID 81 of 9 and a system module name 82 of P are newly added. FIG. 18 shows a hash value for each module in FIG. Simply, the bottom two lines with ID91 of 8 and 9 are increasing.
[0104]
FIG. 19 shows a compressed version of the information shown in FIG. In FIG. 19, the hash value 104 is calculated by integrating the system module ID 102 with 4 and 5, and 7 and 8 in FIG. Due to the integration, FIG. 19 and FIG. 16 appear to be the same size. Here, the reason is that it is not considered that the integrated information is added to the system module ID 102 in FIG.
[0105]
Which part is integrated may be either a plurality of continuous system module IDs or a plurality of non-consecutive system module IDs, or any number.
[0106]
In the integration method, a hash value is calculated by regarding a plurality of system modules as one system module. That is, usually, the portion where the hash value = hash function (one system module) is
Hash value = hash function (module | module | ・ ・ | module)
Calculate the hash value as The symbol “|” means connection.
[0107]
FIG. 20 is a flowchart of a process for updating the hash value table. When the system module is added (step S71), the system module table is updated (step S72). This is an addition to FIG. 15 to FIG. Next, it is confirmed whether or not the memory reaches the limit by adding the system module (step S73). This depends on the number of added system modules n and the amount of memory consumed per system module y.
ny
As the current memory usage m and the memory limit value M,
M> m + ny (1)
Calculate whether or not If the expression (1) holds, the hash value of the added system module is calculated (step S75). This corresponds to FIG. If equation (1) does not hold, the system module IDs are integrated (step S74). This corresponds to the portion (102) in FIG. Thereafter, a hash value is calculated (step S75). This corresponds to FIG.
[0108]
Next, a case where a plurality of system modules are compressed and regarded as one will be described. FIG. 21 is obtained by adding a system module P and a system module S to FIG. 15 in the same manner as the example shown in FIG. When the system module ID 111 in FIG. 21 is 4, it means that the system module D and the system module B are integrated. Similarly, when the system module ID is 6, it means that the system module E and the system module S are integrated. FIG. 22 shows the hash value of each module at this time. Since the system module ID and the ID 121 for each hash value have a one-to-one correspondence, the system module ID is not required in FIG. As a result, the information to be retained is less than the above example by the system module ID of FIG.
[0109]
Which part is integrated may be a plurality of continuous system module IDs or a plurality of discontinuous system module IDs. In the example of FIG. 22, system module IDs 4, 5, 7, and 8 in FIG. 17 are integrated.
[0110]
As a method of integrating a plurality of system modules, there are a method of simply integrating system modules and a method of integrating system modules while compressing them.
[0111]
FIG. 23 is a flowchart of a process for updating the hash value table. When the system module is added (step S81), the system module table is updated (step S82). This is an addition to FIG. 15 to FIG. Next, it is confirmed whether or not the memory reaches the limit due to the addition of the system module (step S83). This uses the same calculation formula (1) as in the above example. If the expression (1) holds, the hash value of the added system module is calculated (step S85). This corresponds to FIG. If equation (1) does not hold, the system modules are integrated (step S84). This corresponds to the portion (112) in FIG. Thereafter, a hash value is calculated (step S85). This corresponds to FIG.
[0112]
Hereinafter, the effect of using the memory efficiency will be described. As described above, when managing the hash value of a system module, not only can the memory be used efficiently by combining a plurality of system modules as a single system module, but also a certain system can be integrated. It becomes difficult to perform tampering attacks on modules. This is because, in practice, falsification cannot be made without obtaining information on which system modules are integrated.
[0113]
Note that in the implementation of the hash value table, all system modules that are subject to hash calculation are classified according to the number of stages in the table, but this division method must be designed in consideration of calculation speed and efficiency. Don't be. As a consideration,
(A) The total size of the system modules included in the hash value calculation at each stage of the hash table is set to the same level at each stage.
(B) Each system module included in the same hash value calculation is positioned logically or physically close so that the total file access time is efficient.
(C) The number of system modules included in the hash value calculation is made substantially the same at each stage of the hash table.
However, what condition should be given priority may be determined according to the capability, application, structure, etc. of the device.
[0114]
【The invention's effect】
According to the present invention, data and algorithms necessary for realizing processing independent of the OS can be stored in a secure state, and software authentication processing can be correctly executed in the secure state in the control unit. In addition, the system module can be updated in a secure state.
[Brief description of the drawings]
FIG. 1 is a block diagram of a first embodiment of a network-connected electronic device.
FIG. 2 is a diagram for explaining an authentication chain;
FIG. 3 is a diagram illustrating a configuration of a control processor;
FIG. 4 is a diagram illustrating a hash table.
FIG. 5 is a flowchart showing a processing procedure at the start-up of the first embodiment of the network-connected electronic device.
FIG. 6 is a flowchart showing a processing procedure when starting up the second embodiment of the network-connected electronic device.
FIG. 7 is a diagram showing a control processor constituting a third embodiment of the network connection type electronic apparatus.
FIG. 8 is a diagram showing a list of system modules.
FIG. 9 is a flowchart showing a processing procedure when starting up the third embodiment of the network-connected electronic device.
FIG. 10 is a diagram showing an update module updated by a fourth embodiment of the network-connected electronic device.
FIG. 11 is a flowchart showing a processing procedure when starting up the fourth embodiment of the network-connected electronic device.
FIG. 12 is a diagram showing a hash value table after the system module is updated.
FIG. 13 is a diagram showing an update module created by a right holder of a system module.
FIG. 14 is a flowchart showing a processing procedure at the start-up of the fifth embodiment of the network-connected electronic device.
FIG. 15 is a diagram illustrating a module ID that uniquely defines a system module and a system module name.
FIG. 16 is a diagram showing a hash value for each system module.
FIG. 17 is a diagram illustrating a system module ID and a system module name when two system modules S and P are added.
18 is a diagram showing a hash value for each module in FIG. 17;
FIG. 19 is a diagram showing a hash value obtained by compressing the information shown in FIG. 18;
FIG. 20 is a flowchart illustrating a processing procedure for updating a hash value table.
FIG. 21 is a diagram showing a system module ID and a system module name when a system module P and a system module S are added to FIG. 15;
FIG. 22 is a diagram showing a hash value table that is reduced by the system module ID.
FIG. 23 is a flowchart showing a processing procedure for updating a hash value table;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Network connection type electronic device, 2 Control processor, 11 Cryptographic operation circuit, 12 IPL ROM, 13 Secret key, 14 Hash value table memory, 30 Control processor, 31 Cryptographic operation circuit, 32 IPL ROM, 33 Secret key, 34 CA public key certificate, 35 rights holder public key certificate

Claims (1)

システムモジュールを取得するシステムモジュール取得部と、
前記システムモジュールに添付された電子署名を取得する電子署名取得部と、
権利者の公開鍵を添付した権利者用公開鍵証明書を記憶する権利者公開鍵証明書記憶部と、
前記権利者用公開鍵証明書に不具合があるかを検証する権利者用公開鍵証明書検証部と、
前記権利者の前記公開鍵に基づき、前記システムモジュールに添付された前記電子署名を検証する電子署名検証部と、
前記電子署名検証部の検証結果に応じて、前記システムモジュールを実行するシステムモジュール実行部と、
前記システムモジュールの更新が要求されたときには、システムモジュールを更新する権利を、固有の秘密鍵と更新する更新モジュールに対して定義されるハッシュ関数とを用いて演算したハッシュ値と、当該更新モジュールに含まれる更新前ハッシュ値、及び更新後ハッシュ値とが一致するかによってチェックし、更新する権利を有するシステムモジュールだけを判断して、更新を実行するシステムモジュール更新部と
を備えるシステムモジュール実行装置。
A system module acquisition unit for acquiring a system module;
An electronic signature acquisition unit for acquiring an electronic signature attached to the system module;
A rights holder public key certificate storage unit for storing a rights holder public key certificate to which the rights holder's public key is attached;
A rights holder public key certificate verifying unit that verifies whether the rights holder public key certificate has a defect;
An electronic signature verification unit that verifies the electronic signature attached to the system module based on the public key of the right holder;
A system module execution unit that executes the system module according to a verification result of the electronic signature verification unit;
When an update of the system module is requested, a right to update the system module is calculated using a unique secret key and a hash function defined for the update module to be updated, and the update module A system module execution device comprising: a system module update unit that checks whether a pre-update hash value and an after-update hash value are included, determines only a system module that has the right to update, and executes an update.
JP2003068582A 2003-03-13 2003-03-13 System module execution device Expired - Fee Related JP4501349B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003068582A JP4501349B2 (en) 2003-03-13 2003-03-13 System module execution device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003068582A JP4501349B2 (en) 2003-03-13 2003-03-13 System module execution device

Publications (2)

Publication Number Publication Date
JP2004280284A JP2004280284A (en) 2004-10-07
JP4501349B2 true JP4501349B2 (en) 2010-07-14

Family

ID=33285869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003068582A Expired - Fee Related JP4501349B2 (en) 2003-03-13 2003-03-13 System module execution device

Country Status (1)

Country Link
JP (1) JP4501349B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703960B2 (en) 2014-03-07 2017-07-11 Samsung Electronics Co., Ltd. Electronic system having integrity verification device

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4531498B2 (en) * 2004-09-07 2010-08-25 大日本印刷株式会社 Parallel distributed processing authentication system and parallel distributed processing authentication method
JP4489030B2 (en) * 2005-02-07 2010-06-23 株式会社ソニー・コンピュータエンタテインメント Method and apparatus for providing a secure boot sequence within a processor
US8539587B2 (en) 2005-03-22 2013-09-17 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
JP4698285B2 (en) 2005-05-19 2011-06-08 富士通株式会社 Information processing apparatus, information processing method, and computer program
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
JP4718921B2 (en) * 2005-07-14 2011-07-06 株式会社東芝 Method for preventing falsification of processing program in paper sheet processing apparatus, method for preventing falsification of processing program in paper sheet processing apparatus and paper sheet processing system, and paper sheet processing system
KR101014179B1 (en) * 2005-09-14 2011-02-14 디스크레틱스 테크놀로지스 엘티디. Secure yet flexible system architecture for secure devices with flash mass storage memory
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US7917762B2 (en) * 2005-09-30 2011-03-29 Phoenix Technologies Ltd. Secure execution environment by preventing execution of unauthorized boot loaders
JP2009517972A (en) * 2005-11-29 2009-04-30 トムソン ライセンシング Method and apparatus for protecting digital content
JP4769608B2 (en) 2006-03-22 2011-09-07 富士通株式会社 Information processing apparatus having start verification function
JP4822544B2 (en) * 2006-04-26 2011-11-24 株式会社リコー Image forming apparatus capable of managing a plurality of module configuration information
JP2008146479A (en) * 2006-12-12 2008-06-26 Toshiba Corp Software component, software component management method and software component management system
US8392988B2 (en) 2007-02-09 2013-03-05 Ntt Docomo, Inc. Terminal device and method for checking a software program
JP5116325B2 (en) 2007-03-15 2013-01-09 株式会社リコー Information processing apparatus, software update method, and image processing apparatus
JP2008305035A (en) 2007-06-06 2008-12-18 Hitachi Ltd Device, update method, and control software
EA201070673A1 (en) 2008-01-30 2011-02-28 Панасоник Корпорэйшн SAFE INITIAL DOWNLOAD BY METHOD OF OPTIONAL COMPONENTS
JP4991592B2 (en) 2008-02-18 2012-08-01 株式会社リコー Software alteration detection method, software alteration detection program and device
US8751860B2 (en) * 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
JP2014170255A (en) * 2011-06-29 2014-09-18 Panasonic Corp Secure boot method
JP5387724B2 (en) * 2012-05-07 2014-01-15 株式会社リコー Software alteration detection method, software alteration detection program and device
JP6009290B2 (en) * 2012-09-12 2016-10-19 株式会社ケーヒン Electronic control device for vehicle
JP5574007B2 (en) * 2013-04-26 2014-08-20 株式会社リコー Information processing apparatus and information protection method
JP2013191226A (en) * 2013-05-17 2013-09-26 Ricoh Co Ltd Information processing apparatus, software update method, and image processing apparatus
JP2015022521A (en) * 2013-07-19 2015-02-02 スパンション エルエルシー Secure boot method, built-in apparatus, secure boot device and secure boot program
JP6244759B2 (en) * 2013-09-10 2017-12-13 株式会社ソシオネクスト Secure boot method, semiconductor device, and secure boot program
JP5536944B1 (en) * 2013-10-06 2014-07-02 春佳 西守 Computer program
JP6088452B2 (en) * 2014-02-19 2017-03-01 日本電信電話株式会社 Database system and data update method
JP7065578B2 (en) * 2017-09-21 2022-05-12 キヤノン株式会社 Information processing equipment, its control method, and programs
JP7004478B2 (en) * 2020-02-12 2022-01-21 三菱電機株式会社 Information processing equipment, information processing methods and information processing programs

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322253A (en) * 1999-05-14 2000-11-24 Namco Ltd Security system
JP2001524229A (en) * 1997-02-13 2001-11-27 ピーシーエスイーシー,リミティド ライアビリティ カンパニー Security-type coprocessor for improving the security performance of computer systems
JP2001527675A (en) * 1997-05-15 2001-12-25 モンデックス インターナショナル リミテッド IC card delivery key set
JP2002507307A (en) * 1998-04-27 2002-03-05 モトローラ・インコーポレイテッド Apparatus and method for loading a program into a processor
JP2002116838A (en) * 2000-06-30 2002-04-19 Internatl Business Mach Corp <Ibm> Device for updating code and method for the same
JP2002202720A (en) * 2000-12-28 2002-07-19 Toshiba Corp Method for sharing enciphered data area among processes in a tamper-resistant processor
JP2002351723A (en) * 2001-05-29 2002-12-06 Tokyo Inst Of Technol Antivirus computer system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001524229A (en) * 1997-02-13 2001-11-27 ピーシーエスイーシー,リミティド ライアビリティ カンパニー Security-type coprocessor for improving the security performance of computer systems
JP2001527675A (en) * 1997-05-15 2001-12-25 モンデックス インターナショナル リミテッド IC card delivery key set
JP2002507307A (en) * 1998-04-27 2002-03-05 モトローラ・インコーポレイテッド Apparatus and method for loading a program into a processor
JP2000322253A (en) * 1999-05-14 2000-11-24 Namco Ltd Security system
JP2002116838A (en) * 2000-06-30 2002-04-19 Internatl Business Mach Corp <Ibm> Device for updating code and method for the same
JP2002202720A (en) * 2000-12-28 2002-07-19 Toshiba Corp Method for sharing enciphered data area among processes in a tamper-resistant processor
JP2002351723A (en) * 2001-05-29 2002-12-06 Tokyo Inst Of Technol Antivirus computer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703960B2 (en) 2014-03-07 2017-07-11 Samsung Electronics Co., Ltd. Electronic system having integrity verification device
US10289849B2 (en) 2014-03-07 2019-05-14 Samsung Electronics Co., Ltd. Electronic system having integrity verification device

Also Published As

Publication number Publication date
JP2004280284A (en) 2004-10-07

Similar Documents

Publication Publication Date Title
JP4501349B2 (en) System module execution device
JP6151402B2 (en) Inclusive verification of platform to data center
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
US8572673B2 (en) Data processing apparatus and method
KR100657532B1 (en) A method for securing an electronic device, a security system and an electronic device
JP4668619B2 (en) Device key
CN112737779B (en) Cryptographic machine service method, device, cryptographic machine and storage medium
EP3248360A1 (en) Systems and methods for trusted path secure communication
KR100702499B1 (en) System and method for guaranteeing software integrity
JP5097130B2 (en) Information terminal, security device, data protection method, and data protection program
JP2009087035A (en) Encryption client device, encryption package distribution system, encryption container distribution system, encryption management server device, solftware module management device and software module management program
SE517116C2 (en) Method and device for secure communication services
US7552092B2 (en) Program distribution method and system
CN112907375A (en) Data processing method, data processing device, computer equipment and storage medium
Bruseghini et al. Victory by KO: Attacking OpenPGP using key overwriting
US11743055B2 (en) Storing data on target data processing devices
KR102282788B1 (en) Blockchain system for supporting change of plain text data included in transaction
CN114024702A (en) Information security protection method and computing device
CN117556430B (en) Safe starting method, device, equipment and storage medium
JP2002006739A (en) Authentication information generating device and data verifying device
JP5180264B2 (en) Device key
CN115480797A (en) Switch upgrading method and device
CN114747173A (en) Data integrity verification via degenerate keys
JP2003318891A (en) Signature verification device, its method, computer program, recording medium with the program recorded, authentication station, and method for issuing public key certificate

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091027

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100308

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees