JP3863401B2 - Software processing device - Google Patents

Software processing device Download PDF

Info

Publication number
JP3863401B2
JP3863401B2 JP2001315815A JP2001315815A JP3863401B2 JP 3863401 B2 JP3863401 B2 JP 3863401B2 JP 2001315815 A JP2001315815 A JP 2001315815A JP 2001315815 A JP2001315815 A JP 2001315815A JP 3863401 B2 JP3863401 B2 JP 3863401B2
Authority
JP
Japan
Prior art keywords
software
processor
program code
buffer
processing apparatus
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
JP2001315815A
Other languages
Japanese (ja)
Other versions
JP2003122588A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001315815A priority Critical patent/JP3863401B2/en
Publication of JP2003122588A publication Critical patent/JP2003122588A/en
Application granted granted Critical
Publication of JP3863401B2 publication Critical patent/JP3863401B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、外部からソフトウェアをインストールして実行する機能を有する、家電機器、汎用計算機、携帯電話、PDAなどのソフトウェア処理装置に関する。
【0002】
【従来の技術】
近年、インターネットの普及や常時接続の一般化に伴い、汎用の計算機をはじめとする多くの機器がネットワークに接続し、利用者はネットワークを利用した様々なサービスを受けることが可能となってきている。その一方で、悪意のある利用者によるネットワークを経由した不正行為が社会的な問題になっており、ネットワークセキュリティの重要性は高まってきている。
【0003】
一般的にそれらの不正行為は、ソフトウェアの脆弱性や管理者の設定ミスを利用した攻撃やウィルスによるものが多い。特にソフトウェアの脆弱性に関しては、開発者にとってあらかじめ設計上、実装上のミスのない完全なソフトウェアを作成し配布することは一般的に困難であることが原因となっている。さらに、それらのミスはソフトウェアの配布後、開発者や利用者によって使用中に発見されることが多いため、開発者側から修正プログラムという形で公開・配布され、利用者は適宜それらの修正プログラムをダウンロード後、インストールするという形態が一般的である。
【0004】
しかしながら、全てのネットワーク利用者がネットワークセキュリティに関して専門の知識や関心を持っているとは限らない。そのため、それらの問題のあるソフトウェアを修正するプログラムが公開されているにも関わらず、問題を抱えたソフトウェアが放置されている場合が少なくない。従って、ソフトウェア作成者が修正プログラムや、修正プログラムを含んだアップデートプログラムを、機器利用者に対して配布し、確実に修正プログラムやソフトウェアをインストールすることが求められる(ここで、確実とは、ダウンロードしたプログラム自体が改竄されていたり、不正なソフトウェアに置き換えられたりすることなく、正当なソフトウェアをインストールすることを指す)。
【0005】
従来のソフトウェアを安全にインストールする技術としては、デジタル署名が有用であると考えられる。デジタル署名の利用方法例を以下に示す。
【0006】
ソフトウェア作成者は、公開鍵アルゴリズムに基づいた公開鍵と秘密鍵を作成し、インストールの対象となる機器のROMに公開鍵を書き込む。このため、公開鍵を書き換えることは不可能である。一方でインストールするソフトウェアはそれ自身が正しいと証明するため、前記のROMに書き込まれた公開鍵に対応する秘密鍵で暗号化されたシグネチャを持つ。ソフトウェアをインストールする際、前記の公開鍵とシグネチャを用いて、そのソフトウェアが鍵の作成者、すなわち正当なソフトウェアの作成者であるかソフトウェアの妥当性を検証する。改竄検証のコードもROMに保存しておけば、例えソフトウェアが悪意のあるコードによって改竄されたとしても、改竄検証の処理が改竄されることはないため、不正なシグネチャを持つソフトウェアのインストールを防ぐことができる。
【0007】
しかしながら、インストール処理を行うソフトウェア自身が実装上、設計上のミスを利用した悪意あるコードによって、改竄検証処理をスキップさせたり、改竄検証結果を無効にさせたりするように改竄されてしまった場合、強制的に正当な改竄検証処理を行わせることはできない。従って前記の手法は、安全にソフトウェアをインストールするための本質的な問題解決にはなっていない。
【0008】
ソフトウェアを安全にインストールさせるためには、ソフトウェアのインストールの際に、必ずシグネチャの改竄検証処理を行うよう、ソフトウェアの改竄を不可能にするだけでなく、ソフトウェアをインストールさせる処理そのものを改竄されずに、安全にソフトウェアのアップデートが行えるようにする仕組みを備えていなければならない。
【0009】
【発明が解決しようとする課題】
以上説明したように、従来のソフトウェアを安全にインストールさせる仕組みでは、正当でないソフトウェアがインストールされる可能性があり、対策として不十分であった。
【0010】
本発明は、上記事情を考慮してなされたもので、正当でないソフトウェアのインストールを阻止することのできるソフトウェア処理装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明は、外部からソフトウェアをインストールして実行する機能を有するソフトウェア処理装置において、ソフトウェアを実行するためのプロセッサと、実行すべきソフトウェアを保存するためのフラッシュメモリと、外部から入力された、ソフトウェアと、該ソフトウェアの正当性の検証のための、第1の鍵で暗号化されたシグネチャとを、一時的に保持するためのバッファと、前記プロセッサにより実行される第1の処理のプログラムコードと、前記プロセッサにより実行される第2の処理のプログラムコードとが書き込まれたROMとを備え、前記第1の処理のプログラムコードは、前記第1の鍵に一意に対応する第2の鍵と、前記バッファに一時的に保持されている前記ソフトウェアに対するシグネチャと該第2の鍵とに基づいて該ソフトウェアの正当性を検証するためのものであり、前記第2の処理のプログラムコードは、該検証によって正当性が確認された前記ソフトウェアを前記バッファから前記フラッシュメモリに保存するためのものであり、前記フラッシュメモリは、前記ROM内の前記第2の処理のプログラムコードを前記プロセッサにより実行することによってのみ、データ書き込み可能であり、前記ROMを、対象とするソフトウェア配布元ごとに設けたことを特徴とする。
また、本発明は、外部からソフトウェアをインストールして実行する機能を有するソフトウェア処理装置において、ソフトウェアを実行するためのプロセッサと、実行すべきソフトウェアを保存するためのフラッシュメモリと、外部から入力された、ソフトウェアと、該ソフトウェアの正当性の検証のための、第1の鍵で暗号化されたシグネチャとを、一時的に保持するためのバッファと、前記プロセッサにより実行される第1の処理のプログラムコードと、前記プロセッサにより実行される第2の処理のプログラムコードとが書き込まれたROMと、前記プロセッサによる前記ソフトウェアの稼動時に前記プロセッサにより利用される再書き込み可能なワーキングメモリと、一定期間ごとに、前記プロセッサ及び前記ワーキングメモリの初期化を行った後に、前記ROMに書き込まれた前記処理に制御を移すタイマー手段とを備え、前記第1の処理のプログラムコードは、前記第1の鍵に一意に対応する第2の鍵と、前記バッファに一時的に保持されている前記ソフトウェアに対するシグネチャと該第2の鍵とに基づいて該ソフトウェアの正当性を検証するためのものであり、前記第2の処理のプログラムコードは、該検証によって正当性が確認された前記ソフトウェアを前記バッファから前記フラッシュメモリに保存するためのものであり、前記フラッシュメモリは、前記ROM内の前記第2の処理のプログラムコードを前記プロセッサにより実行することによってのみ、データ書き込み可能であり、前記タイマー手段は、オペレーティングシステム、ミドルウェア及びアプリケーションのいずれの処理とも独立し、それら処理からは制御不可能で、前記一定期間の経過を管理することを特徴とする。
【0014】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【0015】
本発明によれば、ROMに第2の鍵と検証のための第1の処理のプログラムコードと正当なソフトウェアをインストールするための第2の処理のプログラムコードとを作り込むとともに、入力したソフトウェア/シグネチャはバッファに一時的に保持した後に、ROMによって検証に成功したソフトウェアのみフラッシュメモリに保存することによって、鍵/検証処理/インストール処理の改竄を阻止し、正当性のあるソフトウェアのみをインストールすることを保証することが可能になる。また、これによって、正当性のあるソフトウェアの利用を保証することが可能になる。
【0016】
また、一定期間ごとにプロセッサ及びワーキングメモリの初期化を行った後に、検証/インストールの処理を行うことによって、動作中のソフトウェアが仮に改竄されたとしても、リセット後も改竄されたソフトウェアが継続して動作することを防ぐことができる。
【0017】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0018】
図1に、本発明の一実施形態に係るシステムの全体構成例を示す。
【0019】
図1の機器1は、外部からインストールしたソフトウェアをプロセッサで実行する機能を有するものであれば、家電機器、汎用の計算機、携帯電話、PDAなど、どのような機器に対しても適用可能である。また、図1の機器1は、LAN及び又はWANなどのネットワーク(無線ネットワークでも有線ネットワークでもよい)に接続可能な装置だけでなく、スタンドアローンの装置であってもよい。なお、以下では、主に機器1がネットワークに接続可能な家電機器である場合を例にとって説明している。
【0020】
インターネット3上に接続されるソフトウェア配布サーバ6は、「修正プログラム」、「修正プログラムを含んだアップデートプログラム」、「機能追加プログラム」など、当該機器1で動作するソフトウェアを公開し、配布する機能を持つ。ソフトウェア配布サーバ6は、例えば機器製造ベンダーもしくは機器に関連するソフトウェアの製造ベンダーが立ち上げたサーバでもよい。ソフトウェアには、当該ソフトウェアの配布元の秘密鍵で暗号化された、当該ソフトウェアに対するシグネチャが付加されているものとする。
【0021】
なお、ソフトウェア配布サーバ6は、必ずしもインターネット3上にある必要はなく、企業や個人の構築したLAN2上に設置してもよい。また、CD−ROMやフレキシブル・ディスクやICカードなどの携帯可能な記録媒体によってソフトウェアを配布するようにしてもよい。また、インターネット3上にソフトウェア配布サーバ6を設ける方法と、LAN2上にソフトウェア配布サーバ5を設置する方法と、記録媒体によってソフトウェアを配布する方法とのうちの2以上を組み合わせて実施してもよい。なお、以下では、主に機器1に既にインストールされているソフトウェアに対して上書きすべきソフトウェアを、配布・インストールする場合を例にとって説明している。
【0022】
なお、最初のバージョンのソフトウェアについては、上記と同じ方法で配布してもよいし、予め機器1にインストールされていてもよいし、その他の方法で配布・インストールされてもよい。
【0023】
機器1が外部からソフトウェアを取得する手段には種々の形態がある。例えば、
(1)機器1が通信インタフェース部15を備え、インターネット3上のソフトウェア配布サーバ6からソフトウェアをダウンロードする方法(この場合において、LAN2を介してインターネット3に接続する方法、LAN2を介さずにインターネット3に直接接続する方法などがある)、
(2)機器1が通信インタフェース部15を備え、LAN2上のソフトウェア配布サーバ5からソフトウェアをダウンロードする方法(なお、この場合において、ソフトウェア配布サーバ5へは、例えばソフトウェア配布サーバ6等からインターネット3経由でソフトウェアを与える方法や、記録媒体からソフトウェアを読み込ませる方法などがある)、
(3)機器1が外部記憶装置インタフェース部16を備え、CD−ROMドライブやフレキシブル・ディスク・ドライブやICカード・ドライブなどの外部記憶装置4からソフトウェアを読み込む方法などがある。
【0024】
もちろん、機器1は、上記に例示したような外部からソフトウェアを取得する手段を、1つのみ持っていてもよいし、複数持っていてもよい。
【0025】
ところで、ネットワークに接続された家電機器に対して、出荷後に追加的にソフトウェアをインストールし、そのソフトウェアを用いて利用者に対して新しいサービスを提供したり、ソフトウェアに欠陥が発見された場合に、家電機器製造ベンダやソフトウェアの製造ベンダがネットワーク経由で修正プログラムを配布し、インストールしたりすることは利用者、ベンダ双方にとって魅力的なサービスである。
【0026】
特に、家電機器は、利用者がネットワークセキュリティに対する知識を有しているとは限らず、さらに常にその機器のソフトウェアの状況を監視しているとは限らない。また、家電機器は、汎用の計算機に比べ物理的な被害をもたらす影響も大きいと考えられる。例えば、冷蔵庫の設計によっては、悪意のある利用者が冷蔵庫のソフトウェアを誤作動させることで、内容物を腐敗させる危険性がある。
【0027】
このため、利用者がセキュリティやソフトウェアに対する専門的な知識必要とせず、不正な作成者が作成したソフトウェアを排除して、正当なソフトウェアのみを適用させる仕組みを機器が備えるのが望ましい。
【0028】
図2に、ソフトウェアをインストールして実行する機能を有する機器1のハードウェア構成例を示す。
【0029】
図2に示されるように、機器1は、ROM11、フラッシュメモリ12、RAM13、所定の処理を行うプロセッサ14を備えている。
【0030】
ROM11には、ソフトウェア配布元の公開鍵と、ソフトウェアに付加されているシグネチャの検証処理(プログラム)と、ソフトウェアのインストール処理(プログラム)が作り込まれている。
【0031】
なお、当該機器1が複数のソフトウェア配布元を対象とする場合には、公開鍵は、ソフトウェア配布元に対応して複数備えればよい。なお、この場合には、公開鍵は、例えば、ソフトウェア配布元を識別するベンダーIDと対応付けてROM11に記憶し、ソフトウェアにはベンダーIDを付加して配布するものとすればよい。検証処理/インストール処理については、ソフトウェア配布元毎に用意する方法と、ソフトウェア配布元にかかわらずに同一にする方法とがある。
【0032】
また、当該機器1が複数のソフトウェア配布元を対象とする場合に、ROM11を、ソフトウェア配布元に対応してそれぞれ設ける構成も可能である。
【0033】
なお、検証処理プログラムとインストール処理プログラムとは、別々に作成されていてもよいし、一体化して作成されていてもよい。前者の場合には、検証処理が実行された後に、インストール処理が実行される形態や、最初にインストール処理が起動され、インストール処理が検証処理をコールする形態など、種々の形態が可能である。また、検証処理プログラムとインストール処理プログラムの他に、それら処理全体の制御を司る制御プログラムがさらにROM11に作り込まれている形態も可能である。
【0034】
RAM13は、プロセッサ14が使用するワーキングメモリと、インストールする対象のプログラムを一時的に保存するバッファとを含む。この様子を図3に示す。なお、実際には、ワーキングメモリとバッファとは、同一のRAM上にあってもよいし、異なるRAM上にあってもよい(ワーキングメモリの一部とバッファの一部が同一のRAM上にあるなど、他の形態でもよい)。
【0035】
フラッシュメモリ12は、RAM13のバッファに一時的に保存されているソフトウェアのうち、その正当性についての認証(シグネチャの検証)に成功したもののみを、記憶するためのものである。すなわち、ソフトウェア配布元により配布されるソフトウェアは、その認証を経て、フラッシュメモリ12で保存する。
【0036】
ここで、図4に、ROM11とフラッシュメモリ12とRAM13との相互間での書き込み権限の関係を示す。フラッシュメモリ12は、ROM11内に作り込まれたプログラムによってのみ、データを書き込むことができる。また、ROM11の内容は、改竄できないようになっている。したがって、シグネチャの検証を通過することのできない正当性のないソフトウェアがフラッシュメモリ12に保存されることはないので、フラッシュメモリ12には、ソフトウェア配布元により配布された正当なソフトウェアが保存されている、ということが保証される。
【0037】
一方、機器1は、図2に示されるように、インストールするソフトウェアを入手するために、通信インターフェース部15または外部記憶装置接続インターフェース部16の少なくとも一方を備えている。なお、通信インターフェース部15が利用するネットワークは、例えば、無線ネットワークでもよいし、イーサネット(登録商標)のような有線ネットワークでもよい。また、外部記憶装置接続インターフェース部15は、CD−ROMなどの記録媒体を接続し、それら外部記憶装置とデータ交換可能な機能を備えるものである。
【0038】
なお、図2は、本実施形態を説明するために必要な部分のみ示したもので、実際には、図2に示された以外の種々の構成要素を備えて構わない。例えば、家電機器では、当該家電機器の本来の機能を実現するための構成要素が備わっている。
【0039】
図5に、機器1のソフトウェア構成例を示す。
【0040】
図5に示されるように、機器1は、オペレーティングシステム、アプリケーション、後述するタイマーを含む(必要に応じてミドルウェアが組み込まれる場合がある)。なお、タイマーは、ハードウェアで構成される場合もある。また、タイマーを備えない構成も可能である。
【0041】
なお、本実施形態における、機器へのインストール対象となるソフトウェアとは、機器を制御するオペレーティングシステム、ミドルウェア、及びそれら修正プログラム、機能追加プログラム、ユーザアプリケーションなどを指す。
【0042】
以下、図6を参照しながら、本実施形態についてより詳しく説明する。
【0043】
ここでは、主に、ソフトウェア配布サーバからネットワークを経由して家電機器1へソフトウェアをダウンロードし、シグネチャの検証を経た後に、ソフトウェアを上書きする場合を例にとって説明する。
【0044】
図7に、ソフトウェア取得時の手順の一例を示す。すなわち、機器1は、例えば予め登録された(1又は複数の)ソフトウェア配布サーバ(5または6)から必要なソフトウェアをダウンロードし(ステップS1)(図6の101参照)、RAM13のバッファ131に一時的に保存しておく(ステップS2)(図6の102参照)。なお、外部記憶装置インタフェース部16による場合には、CD−ROMドライブにCD−ROMを装着するなどして、ステップS1においてソフトウェアの読み込みを行う。
【0045】
サーバ登録については、(i)機器出荷時に機器製造ベンダーまたはソフトウェアの製造ベンダーが規定してもよいし、(ii)出荷後に利用者が追加的に規定してもよいし、(iii)(i)と(ii)を両方可能としてもよい。ベンダーが規定したサーバ登録情報は、ROM11内に書き込まれていてもよい。
【0046】
ダウンロードすべきソフトウェアの有無のチェックについては、(i)機器1に、定期的にソフトウェア配布サーバに対して、新しいアップデートするソフトウェアなどが配布(公開)されているかチェックする機能を持たせることで、利用者が意識することなく、自動的に最新のソフトウェアを機器1にインストールできるようにしてもよいし、(ii)利用者の要望に応じて、チェックする期間を変更したり、利用者が任意の時間にチェックをさせることができるようにしてもよいし、(iii)(i)と(ii)を両方可能としてもよい。
【0047】
ダウンロードにあたっては、機器1とソフトウェア配布サーバとの間で所定の認証/鍵交換手続きを行うことによって、セキュアな通信経路上でのデータ交換を行うようにしてもよい。
【0048】
なお、詳しくは後述する処理のために、ここでは、ダウンロード等したソフトウェアをRAM13のバッファ131に保存するにあたっては、該ソフトウェアをRAM13に保存した日時を該ソフトウェアに対応付けて保存しておくものとする。また、ソフトウェアをRAM13のバッファ131からフラッシュメモリ12に保存するにあたっては、該日時(該ソフトウェアをRAM13に保存した日時)を該ソフトウェアに対応付けて保存しておくものとする。
【0049】
さて、ここで、機器1がソフトウェア配布サーバ(5または6)に接続して目的のソフトウェアをダウンロードする際、ネットワーク上の悪意ある利用者が、サーバのIPアドレスを詐称するなどして偽のサーバに誘導し、トロイの木馬やウィルスを含む偽のソフトウェアを機器1にダウンロードさせたり、ソフトウェア配布サーバ(5または6)に侵入したりしてサーバの内容を書き換えたりすることで偽のソフトウェアを配布する危険性がある。
【0050】
したがって、必ずしもソフトウェア配布サーバ(5または6)からダウンロードしたソフトウェアが正当であるとは限らないため、本実施形態では、ソフトウェアが悪意のある者によって作成された偽のソフトウェアではなく、正当なソフトウェアであるか検査し、正当なものと偽のものとを区別し、正当なもののみをインストールする機能を機器1に設けている。また、現在利用しているソフトウェアを改竄するなどによって上記の正当なもののみをインストールする機能自体を阻害する、ということができないようしている。
【0051】
図8に、その検証処理/インストール処理の手順の一例を示す。
【0052】
前記のようにソフトウェアがダウンロードされRAM13のバッファ131に一時的に保存される一方で、図8の処理が行われる。
【0053】
すなわち、タイマー(図6の17参照)が、一定時間の経過ごと(あるいは、一定の値をカウントするごと)に作動し、まず、プロセッサ14やRAM13のワーキングメモリ132のリセットを行う(ステップS11)(図6の103参照)。
【0054】
このタイマーは、オペレーティングシステムやミドルウェア、アプリケーションの処理とは独立し、それらソフトウェアからは制御不可能で時間管理をする(例えば、ROM11に蓄えられた値を元に一定周期で値を加算し続ける)。一定時間が経過すると(あるいは、カウントが一定の値を越えると)、プロセッサ(のレジスタ等)と、一時的にワーキングメモリに蓄えられた現在のRAMの処理内容とを、無条件に強制的にクリアする。クリアとは、例えば初期化処理のような、それまでの処理状態を保存せずに値をリセットする処理を指す。
【0055】
このタイマーは、値を加算し(もしくはメモリ範囲外の値まで加算された場合にはリセットし)、かつ減算することのできない機能を有する。該タイマーに対してソフトウェアがリセットをスキップすることで無効にしたり、タイマーの値を変更したりすることでリセットの時間を遅延させたりすることはできない。
【0056】
なお、動作中のソフトウェアが強制的なリセットが原因でデータを損失・破壊してしまうことを防ぐために、ソフトウェアがタイマーに対してリセットを繰り上げる要求を発行してもよい。例えば、現在実行中のプログラムが次の処理単位を実行する前に、次のリセットまでの残り時間を調べ、もしもその時間が短かった場合には、(リセットに備えて)通常の処理手順は短時間でリセット可能な状態になるよう処理を行うようにしてもよい(この場合、次の処理単位は行わずに、短時間で済む処理を行うことによって、該処理がリセット時間前に完了した場合には、リセットを繰り上げて実行するようにすることも可能である)。
【0057】
なお、機器1のコアの部分は、上記のリセットにかかわらずに、稼働し続けるものとしてもよい。例えば、インターネット機能を有する冷蔵庫において、インターネット機能の部分は、上記のリセットによって初期化されるが、冷蔵庫の本来の機能の部分は、上記のリセットにかかわらずに、稼働し続けるようにしてもよい。
【0058】
さて、リセット処理を行った後、タイマーは、ROM11に処理を移す(図6の104参照)。
【0059】
ROM11は、RAM12の特定のバッファ131をチェックする。
【0060】
RAM13のバッファ131にソフトウェアのイメージが存在する場合(ステップS12)、そのソフトウェアのシグネチャと、ROM11に記憶された(該ソフトウェアの配布元の)公開鍵1101とを用いて、改竄検証処理(図6の105,106,1102参照)を行う(ステップS13)。
【0061】
例えば、シグネチャが、当該ソフトウェアに所定のハッシュ関数を適用して得たハッシュ値を、該ソフトウェアの配布元の秘密鍵で暗号化したものである場合に、該シグネチャをROM11に記憶された公開鍵で復号して元のハッシュ値を求めるとともに、当該ソフトウェアに同一の所定のハッシュ関数を適用してハッシュ値を求め、両者が一致したならば、シグネチャの検証(ソフトウェアの認証)に成功したものとする。もちろん、検証処理については種々の方法が知られており、どのような方法を用いることも可能である。
【0062】
ここで、改竄検証の結果が偽である場合(ステップS14)には、所定のエラー処理を行う(ステップS18)。
【0063】
改竄検証に失敗する原因として、例えば、「ネットワークの異常によりファイルが正常に転送されなかった」、「ファイルが正当な作成者によって作成されたものではない」、などが考えられる。ファイルが正当な作成者によって作成されたものではない場合、悪意のある利用者が配布した偽のソフトウェアである可能性がある。そこで、例えば、エラー処理に、機器1からソフトウェアの配布元へエラーの情報をレポートする機能を備えれば、ソフトウェア配布元が対策や調査を行う上での資料として利用することが可能となる。
【0064】
なお、検証に失敗したソフトウェアについては、エラー処理においてRAMのバッファから直ちに消去する方法、エラー処理においては消去しない(例えば、対策や調査等のための保存しておく)方法などがある。
【0065】
他方、改竄検証の結果が真である場合(ステップS14)には、この手順例では、フラッシュ12に保存されている現在のソフトウェアに対応する日時(図6の107−1参照)と、RAM13のバッファ131上に記憶されたソフトウェアのイメージに対応する日時(図6の107−2参照)とを比較する処理(図6の1103参照)を行う(ステップS15)。
【0066】
そして、RAM13のバッファ131上に記憶されたソフトウェアのイメージに対応する日時が、フラッシュ12に保存されている現在のソフトウェアに対応する日時より新しい場合(ステップS16)は、フラッシュメモリ12にRAM13のバッファ131のイメージをコピーし、以前の内容を上書きする(ステップS17)(図6の108参照)。
【0067】
上記の比較処理の結果、RAM13のバッファ131上に記憶されたソフトウェアのイメージに対応する日時が、フラッシュ12に保存されている現在のソフトウェアに対応する日時より古い場合(ステップS16)は、既にそのソフトウェアがインストールされていると考えられるので(上記の検証に失敗したソフトウェアをエラー処理においては消去しない場合には、検証に失敗したためにインストールしないことが決定されたソフトウェアであることもあり得る)、フラッシュ12への書き込みは行わない。
【0068】
なお、ステップS15においてフラッシュ12に当該ソフトウェアが保存されていないことがあり得る構成の場合において、フラッシュ12に当該ソフトウェアが保存されていなければ、ステップS16では、例えば、RAM13のバッファ131上に記憶されたソフトウェアのイメージに対応する日時が、フラッシュ12に保存されている現在のソフトウェアに対応する日時より新しいものとすればよい。また、ステップS15においてフラッシュ12に当該ソフトウェアが保存されていないことがあり得ない構成の場合において、フラッシュ12に当該ソフトウェアが保存されていなければ、例えば、エラー処理を行えばよい。
【0069】
なお、ステップS17において、フラッシュメモリ12にRAM13のバッファ113に記憶されたソフトウェアを書き込んだ際に、RAM13のバッファ113から当該ソフトウェアを消去するようにしてもよいし、その代わりにまたはそれとともに、ステップS16においてNoの場合に、RAM13のバッファ113から当該ソフトウェアを消去するようにしてもよい。
【0070】
しかして、(ステップS17でRAM13のバッファ113からフラッシュメモリ12にソフトウェアを書き込んだ場合、ステップS16においてNoの場合、ステップS18でエラー処理を行った場合、またはステップS12においてNoの場合(RAM13のバッファ131にソフトウェアのイメージがない場合)に、)ROM11は、フラッシュメモリ12に処理を移動させ、フラッシュメモリ12に書き込まれたイメージに制御を移し、当該イメージはシステムの起動処理(図6の109参照)を実行する。
【0071】
ここで、本実施形態のメモリアドレス制御機能について説明する。
【0072】
かりにRAM13のワーキングメモリ132上で動作するソフトウェアが改竄されてしまったとする。しかし、上記のように、タイマーによるリセット時にRAM13のワーキングメモリ132はリセットされる。従って、この改竄されたソフトウェアがリセット後も存続するには、フラッシュメモリ12にコピーする必要がある。しかしながら、フラッシュメモリ12については、ROM11からの書き換えのみを可能とするため(図4参照)、改竄されたRAM13のイメージがフラッシュ12を書き換えることはできない。このメモリアドレス制御手段を用いることで、改竄されたRAM13のイメージがリセット後も存在し続けることはない。
【0073】
タイマーによる強制的なリセット手段と、メモリアドレス制御手段により、RAM13のワーキングメモリ132で動作中のソフトウェアがかりに悪意のある利用者によって改竄されてしまった場合でも、次回の起動時にフラッシュメモリ12に保存された正当なソフトウェアに復旧することが可能となる。
【0074】
以上のように、本実施形態によれば、インストール対象のソフトウェアを、正当な作成者によって作成されたことが保証されたものと、それ以外のもの(例えば、偽造されたもの)とに区別し、前者のみを選別しインストールすることが可能となる。また、かりにソフトウェアが改竄されたとしても、定期的にシステムをリセットすることによって、現在のワーキングメモリに存在する改竄されたイメージが存在し続けることを阻止できる。従って、機器は常に正当な作成者が作成したソフトウェアを利用することが保証され、かつ正当な作成者が作成したソフトウェアのみをインストールすることができる。
【0075】
なお、図8の手順は一例であり、種々変形して実施することが可能である。例えば、上記処理では、まず、シグネチャによる検証処理を行い、これに成功した場合に、RAMのバッファ上に保存されたソフトウェアとフラッシュメモリに保存されたソフトウェアとの日時を比較する日時チェックを行い、さらにこれに成功したならば、ダウンロードされたソフトウェアが正当かつインストールすべきものであると判断して、フラッシュメモリにRAMのバッファのイメージを書き込んだが、逆に、日時チェックを行い、これに成功した場合に、検証処理を行い、さらにこれに成功したならば、フラッシュメモリに書き込むようにしてもよい。また、検証処理と日時チェックを並列的に行い、それらの結果が両方とも真である場合に、フラッシュメモリに書き込むようにし、少なくとも一方の結果が偽であれば、書き込まないようにしてもよい。
【0076】
また、これまでの説明では、同一性を有するソフトウェアに対して「上書きするソフトウェア」を想定しているが、メインとなるソフトウェアに対してソフトウェアを追加する場合には、例えば図8の手順において、ステップS15とステップS16を省き、ステップS17の上書き処理を組み込み処理に修正して、ステップS14で検証に成功した場合にステップS17で該当ソフトウェアを組み込むようにすればよい。
また、その時々で上書きするか追加するかが異なってくる場合には、例えば図8の手順においては、対象としているソフトウェアを上書きすべきか追加すべきかを判断し、前者の場合には、日時チェックを行い、(検証処理に)日時チェックの結果が真のときに、フラッシュメモリにRAMのバッファのソフトウェアを上書きし、後者の場合には、日時チェックを行わずに、フラッシュメモリのソフトウェアにRAMのバッファのソフトウェアを追加するようにしてもよい。なお、対象としているソフトウェアを上書きすべきか追加すべきかについては、例えば、各ソフトウェアに固有の識別情報を持たせ、RAMのバッファ内のソフトウェアの持つ識別情報と同一の識別情報を持つものが、フラッシュメモリに保存されていれば、上書きすると判断し、保存されていなければ、追加すると判断するようにしてもよい。また、例えば、各ソフトウェアに、上書きすべきか追加すべきかを示す情報を付加する方法もある。
【0077】
また、図8のステップS12で複数種類のソフトウェア(各ソフトウェアは、例えば、ソフトウェアに固有の識別情報によって識別される)がRAMのバッファに存在し得る場合には、検証/インストールを、RAMのバッファに存在する各々のソフトウェアに対して行えばよい。
【0078】
また、図8のステップS19のフラッシュメモリ内のソフトウェアの起動にあたって、起動できるソフトウェアがフラッシュメモリ内に複数存在し得る場合には、予め定められた選択基準に従って、起動すべきものを選択して、起動すればよい。この選択基準としては、例えば、予めROMに設定された識別情報を持つソフトウェアを選択する方法、予めユーザが指定したソフトウェアを選択する方法、リセット時に起動中であったものを選択する方法など、種々の方法がある。
【0079】
また、図8の手順においては、ステップS19のフラッシュメモリ内のソフトウェアの起動を行わず、異なる契機によって起動を行う方法もある。
【0080】
また、図8の手順においては、ステップS11のプロセッサやRAMのワーキングメモリのリセットを行わず、異なる契機によって行う方法もある。
【0081】
また、これまでタイマーの起動時にソフトウェアが自動的にインストールされるような方法を述べてきたが、自動インストールの代わりにまたはこれとともに、利用者が任意の時間にソフトウェアをインストールできるようにすることも可能である。このようにすることによって、例えば、ソフトウェアの重要な欠陥が発見された場合に、利用者の希望に応じて修正プログラムをインストールすることができる。
【0082】
利用者が任意の時間にインストールする機能については、自動インストールと併用する場合には、例えば、前述したタイマーのリセットを繰り上げて実行する機能があれば、この機能を利用して実現することもできる。タイマーのリセットを繰り上げる命令を実行するにあたっては、機器1に物理的なスイッチを備えてもよいし、赤外線リモコンなどを通じて機器1に要求を送信するようにしてもよい。また、ネットワーク経由で任意のコマンドを送信することも可能である。この場合、タイマーがリセット要求を受けると、図8の手順と同様に、プロセッサの現在の処理内容とRAMのワーキングメモリに保存された情報をリセットし、ROMに処理内容を移し、ソフトウェアの改竄検証及びインストールを開始する。
【0083】
自動インストール機能を備えずに、利用者が任意の時間にソフトウェアをインストールする機能を備える場合には、ユーザの入力を契機として、リセット、検証、インストールの処理を行えばよい(この場合に、リセットは行わない形態等も可能である)。
【0084】
また、これまでの説明では、ダウンロード等したソフトウェアをRAMのバッファに保存するにあたって、該ソフトウェアをRAMに保存した日時を該ソフトウェアに対応付けて保存しておき、ソフトウェアをRAMのバッファからフラッシュメモリに保存するにあたっては、該日時(該ソフトウェアをRAMに保存した日時)を該ソフトウェアに対応付けて保存しておき、両者の日時を比較した結果に応じて、ソフトウェアをRAMのバッファからフラッシュメモリに保存するか否かを決定したが、その代わりに、例えば、ソフトウェアにバージョン情報等を付加しておき、両バージョン情報の新旧の比較結果に応じて、ソフトウェアをRAMのバッファからフラッシュメモリに保存するか否かを決定するようにしてもよい。また、その他の方法も可能である。
【0085】
また、これまでは、ソフトウェアには、その配布元の秘密鍵で暗号化されたシグネチャが付加され、機器1のROM11には該ソフトウェア配布元の公開鍵が作り込まれているものとして説明したが、公開鍵暗号方式ではなく、他の暗号方式を採用することも可能である。例えば、ソフトウェア配布元と機器1とで同一の共有鍵を用いる方法を採用することも可能である。
【0086】
また、これまでネットワークを経由したソフトウェアの配布とインストールを中心に説明してきたが、前述したように、機器または利用者がネットワーク経由でソフトウェアを入手する必要があるわけではない。機器が通信インターフェースを持っていない場合や、機器がネットワークに接続されていない場合は、フロッピー(登録商標)ディスクなどの携帯可能で書き込み可能なメディアや、CD−ROMなどのような携帯可能で書き込み不可能なメディアからソフトウェアをアップデートすることが考えられる。もちろん、ネットワーク経由でのダウンロードの場合と同様に、記憶媒体となるメディアは必ずしも正当な作成者が作成したソフトウェアが記録されているという保証はないため、一旦RAMのバッファに保存した後にフラッシュメモリにインストールすることで適用可能である。
【0087】
また、前述したように、本発明は、家電機器に限らず、汎用の計算機や、携帯電話、PDAなどの機器に対しても適用可能である。特に、携帯電話やPDAは、メモリの容量に制限があるため、一度に大量のアプリケーションをインストールすることが困難である。また、携帯電話のサービスやインターネット接続サービスを利用してインターネット経由でアプリケーションをダウンロードし、インストールする際に、本発明が適用可能である。
【0088】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0089】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0090】
【発明の効果】
本発明によれば、正当でないソフトウェアのインストールを阻止することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るシステムの全体構成例を示す図
【図2】同実施形態に係る機器のハードウェア構成例を示す図
【図3】同実施形態に係る機器のRAMの構成例を示す図
【図4】同実施形態に係る機器のROMとフラッシュメモリとRAMとの相互間での書き込み権限の関係を示す図
【図5】同実施形態に係る機器のソフトウェア構成例を示す図
【図6】同実施形態に係る機器内でのデータの流れ及び制御について説明するための図
【図7】同実施形態に係る機器のソフトウェア取得時の手順の一例を示すフローチャート
【図8】同実施形態に係る機器の認証処理/インストール処理の手順の一例を示すフローチャート
【符号の説明】
1…機器
2…LAN
3…インターネット
4…外部記憶装置
5,6…ソフトウェア配布サーバ
11…ROM
12…フラッシュメモリ
13…RAM
14…プロセッサ
15…通信インターフェース部
16…外部記憶装置接続インターフェース部
17…タイマー
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a software processing apparatus such as a home appliance, a general-purpose computer, a mobile phone, or a PDA having a function of installing and executing software from the outside.
[0002]
[Prior art]
In recent years, with the spread of the Internet and the generalization of constant connection, many devices such as general-purpose computers are connected to the network, and users can receive various services using the network. . On the other hand, fraudulent acts via malicious networks by malicious users are becoming a social problem, and the importance of network security is increasing.
[0003]
In general, these fraudulent acts are often caused by attacks or viruses that use software vulnerabilities or administrator misconfigurations. In particular, software vulnerabilities are caused by the fact that it is generally difficult for developers to create and distribute complete software without design and implementation errors in advance. In addition, these mistakes are often discovered by developers and users after distribution of the software, so they are released and distributed in the form of correction programs from the developer side, and the user can appropriately modify those correction programs. Generally, after downloading the software, it is installed.
[0004]
However, not all network users have specialized knowledge or interest in network security. For this reason, there are many cases where the problematic software is left unattended even though a program for correcting the problematic software is disclosed. Therefore, it is required that the software creator distributes the correction program or the update program including the correction program to the device user and installs the correction program or software without fail. This means installing legitimate software without the program itself being tampered with or replaced with malicious software).
[0005]
A digital signature is considered useful as a technique for safely installing conventional software. An example of how to use a digital signature is shown below.
[0006]
The software creator creates a public key and a secret key based on the public key algorithm, and writes the public key in the ROM of the device to be installed. For this reason, it is impossible to rewrite the public key. On the other hand, the software to be installed has a signature encrypted with a secret key corresponding to the public key written in the ROM in order to prove that the software itself is correct. When installing the software, the validity of the software is verified by using the public key and the signature to determine whether the software is a key creator, that is, a valid software creator. If the code for falsification verification is also stored in the ROM, even if the software is falsified by malicious code, the falsification verification process will not be falsified, preventing the installation of software with an illegal signature. be able to.
[0007]
However, if the software that performs the installation process itself has been falsified so that the falsification verification process is skipped or the falsification verification result is invalidated by malicious code that uses a design error in implementation, It is not possible to force a valid tampering verification process. Thus, the above approach is not an essential problem solution for safely installing software.
[0008]
In order to install the software safely, not only does it not possible to falsify the software so that the signature falsification verification process is always performed at the time of software installation, but also the process of installing the software itself is not falsified. It must be equipped with a mechanism that allows software updates to be performed safely.
[0009]
[Problems to be solved by the invention]
As described above, the mechanism for safely installing the conventional software may cause unauthorized software to be installed, which is insufficient as a countermeasure.
[0010]
The present invention has been made in view of the above circumstances, and an object thereof is to provide a software processing apparatus capable of preventing installation of unauthorized software.
[0011]
[Means for Solving the Problems]
The present invention relates to a software processing apparatus having a function of installing and executing software from outside, a processor for executing software, a flash memory for storing software to be executed, and software input from the outside A buffer for temporarily storing a signature encrypted with a first key for verifying the validity of the software, and a program code of a first process executed by the processor A ROM in which a program code of a second process executed by the processor is written, and the program code of the first process includes a second key uniquely corresponding to the first key; Based on the signature for the software temporarily held in the buffer and the second key The program code for the second process is for saving the software whose validity is confirmed by the verification from the buffer to the flash memory, and The flash memory can write data only by executing the program code of the second process in the ROM by the processor, and the ROM is provided for each target software distribution source. And
Further, the present invention provides a software processing apparatus having a function of installing and executing software from outside, a processor for executing software, a flash memory for storing software to be executed, and an external input A buffer for temporarily storing software and a signature encrypted with a first key for verifying the validity of the software, and a program for a first process executed by the processor A ROM in which a code and a program code of a second process executed by the processor are written; a rewritable working memory used by the processor when the software is operated by the processor; First of the processor and the working memory Timer means for transferring control to the process written in the ROM, the program code of the first process includes a second key uniquely corresponding to the first key, And verifying the validity of the software based on the signature for the software temporarily held in the buffer and the second key, and the program code of the second process The software whose validity has been confirmed by the program is stored in the flash memory from the buffer, and the flash memory executes the program code of the second process in the ROM by the processor. Only the data can be written, and the timer means includes an operating system, middleware and an application. With any of the processing of Shon independently from their processing uncontrollable, characterized by managing the progress of the predetermined period.
[0014]
The present invention relating to the apparatus is also established as an invention relating to a method, and the present invention relating to a method is also established as an invention relating to an apparatus.
[0015]
According to the present invention, the second key, the program code of the first process for verification and the program code of the second process for installing valid software are created in the ROM, and the input software / After the signature is temporarily stored in the buffer, only the software that has been successfully verified by the ROM is stored in the flash memory, thereby preventing the key / verification process / installation process from being tampered with and installing only the valid software. Can be guaranteed. This also makes it possible to guarantee the use of legitimate software.
[0016]
In addition, by initializing the processor and working memory at regular intervals and then performing verification / installation processing, even if the operating software is tampered, the tampered software will continue even after reset. Can be prevented.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the invention will be described with reference to the drawings.
[0018]
FIG. 1 shows an example of the overall configuration of a system according to an embodiment of the present invention.
[0019]
The device 1 in FIG. 1 can be applied to any device such as a home appliance, a general-purpose computer, a mobile phone, and a PDA as long as it has a function of executing software installed from outside by a processor. . 1 may be a stand-alone device as well as a device connectable to a network such as a LAN and / or a WAN (which may be a wireless network or a wired network). In the following description, a case where the device 1 is a home appliance that can be connected to a network will be mainly described as an example.
[0020]
The software distribution server 6 connected to the Internet 3 has a function to publish and distribute software that operates on the device 1 such as “correction program”, “update program including correction program”, “function addition program”, and the like. Have. The software distribution server 6 may be, for example, a server set up by a device manufacturing vendor or a software manufacturing vendor related to the device. It is assumed that a signature for the software encrypted with a secret key of the software distribution source is added to the software.
[0021]
The software distribution server 6 does not necessarily have to be on the Internet 3 and may be installed on a LAN 2 constructed by a company or an individual. The software may be distributed by a portable recording medium such as a CD-ROM, a flexible disk, or an IC card. Further, two or more of a method of providing the software distribution server 6 on the Internet 3, a method of installing the software distribution server 5 on the LAN 2, and a method of distributing software by a recording medium may be combined. . In the following, a case will be described as an example where software that should be overwritten on software that has already been installed in the device 1 is distributed and installed.
[0022]
Note that the first version of the software may be distributed by the same method as described above, may be installed in the device 1 in advance, or may be distributed and installed by other methods.
[0023]
There are various modes for the device 1 to acquire software from the outside. For example,
(1) A method in which the device 1 includes the communication interface unit 15 and downloads software from the software distribution server 6 on the Internet 3 (in this case, a method of connecting to the Internet 3 through the LAN 2, a method of connecting to the Internet 3 without using the LAN 2 To connect directly to)
(2) Method in which the device 1 includes the communication interface unit 15 and downloads software from the software distribution server 5 on the LAN 2 (in this case, the software distribution server 5 is accessed from the software distribution server 6 or the like via the Internet 3, for example) For example, how to give the software on the computer and how to load the software from the recording medium)
(3) There is a method in which the device 1 includes the external storage device interface unit 16 and software is read from the external storage device 4 such as a CD-ROM drive, a flexible disk drive, and an IC card drive.
[0024]
Of course, the device 1 may have only one or a plurality of means for acquiring software from the outside as exemplified above.
[0025]
By the way, for home appliances connected to a network, if software is additionally installed after shipment and a new service is provided to users using the software, or a defect is found in the software, It is an attractive service for both users and vendors that home appliance manufacturers and software manufacturers distribute and install patches via the network.
[0026]
In particular, home appliances do not necessarily have a user's knowledge of network security, and do not always monitor the software status of the device. In addition, home appliances are considered to have a greater impact on physical damage than general-purpose computers. For example, depending on the design of the refrigerator, there is a risk that a malicious user could corrupt the contents by malfunctioning the refrigerator software.
[0027]
For this reason, it is desirable for the device to have a mechanism that eliminates software created by an unauthorized creator and applies only legitimate software without requiring specialized knowledge of security and software by the user.
[0028]
FIG. 2 shows a hardware configuration example of the device 1 having a function of installing and executing software.
[0029]
As shown in FIG. 2, the device 1 includes a ROM 11, a flash memory 12, a RAM 13, and a processor 14 that performs predetermined processing.
[0030]
The ROM 11 has a software distribution source public key, a signature verification process (program) added to the software, and a software installation process (program).
[0031]
When the device 1 targets a plurality of software distribution sources, a plurality of public keys may be provided corresponding to the software distribution sources. In this case, for example, the public key may be stored in the ROM 11 in association with the vendor ID for identifying the software distribution source, and distributed with the vendor ID added to the software. The verification process / installation process includes a method prepared for each software distribution source and a method for making the same regardless of the software distribution source.
[0032]
Further, when the device 1 targets a plurality of software distribution sources, a configuration in which the ROM 11 is provided corresponding to each software distribution source is also possible.
[0033]
Note that the verification processing program and the installation processing program may be created separately or may be created integrally. In the former case, various forms are possible, such as a form in which the installation process is executed after the verification process is executed, or a form in which the installation process is first activated and the installation process calls the verification process. In addition to the verification processing program and the installation processing program, a form in which a control program for controlling the entire processing is further built in the ROM 11 is also possible.
[0034]
The RAM 13 includes a working memory used by the processor 14 and a buffer that temporarily stores a program to be installed. This is shown in FIG. Actually, the working memory and the buffer may be on the same RAM or on different RAMs (a part of the working memory and a part of the buffer are on the same RAM). Other forms may be used.
[0035]
The flash memory 12 is for storing only software that has been successfully authenticated (signature verification) for its validity among software temporarily stored in the buffer of the RAM 13. That is, the software distributed by the software distribution source is stored in the flash memory 12 after being authenticated.
[0036]
Here, FIG. 4 shows the relationship of the write authority among the ROM 11, the flash memory 12, and the RAM 13. The flash memory 12 can write data only by a program built in the ROM 11. The contents of the ROM 11 cannot be tampered with. Therefore, since the unauthenticated software that cannot pass the signature verification is not stored in the flash memory 12, the valid software distributed by the software distribution source is stored in the flash memory 12. Is guaranteed.
[0037]
On the other hand, as shown in FIG. 2, the device 1 includes at least one of a communication interface unit 15 and an external storage device connection interface unit 16 in order to obtain software to be installed. The network used by the communication interface unit 15 may be, for example, a wireless network or a wired network such as Ethernet (registered trademark). The external storage device connection interface unit 15 has a function of connecting a recording medium such as a CD-ROM and exchanging data with the external storage device.
[0038]
Note that FIG. 2 shows only the portions necessary for explaining the present embodiment, and actually various components other than those shown in FIG. 2 may be provided. For example, a home appliance includes a component for realizing the original function of the home appliance.
[0039]
FIG. 5 shows a software configuration example of the device 1.
[0040]
As illustrated in FIG. 5, the device 1 includes an operating system, an application, and a timer described later (middleware may be incorporated as necessary). Note that the timer may be configured by hardware. A configuration without a timer is also possible.
[0041]
In the present embodiment, software to be installed on a device refers to an operating system, middleware, a correction program, a function addition program, a user application, and the like that control the device.
[0042]
Hereinafter, this embodiment will be described in more detail with reference to FIG.
[0043]
Here, a case will be described as an example where software is downloaded from the software distribution server to the home appliance 1 via the network, and after the signature is verified, the software is overwritten.
[0044]
FIG. 7 shows an example of a procedure when acquiring software. That is, the device 1 downloads necessary software from, for example, a pre-registered software distribution server (5 or 6) (step S1) (see 101 in FIG. 6), and temporarily stores it in the buffer 131 of the RAM 13. (Step S2) (see 102 in FIG. 6). In the case of using the external storage device interface unit 16, the software is read in step S1, for example, by mounting a CD-ROM in the CD-ROM drive.
[0045]
Regarding server registration, (i) the device manufacturer or software manufacturer may specify the device at the time of device shipment, (ii) the user may additionally specify after the shipment, or (iii) (i ) And (ii) may be possible. Server registration information defined by the vendor may be written in the ROM 11.
[0046]
As for checking whether there is software to be downloaded, (i) by providing the device 1 with a function to periodically check whether software to be updated is distributed (published) to the software distribution server. The user may be able to automatically install the latest software on the device 1 without being conscious of it, or (ii) change the check period according to the user's request, or the user can arbitrarily (Iii) (i) and (ii) may be both possible.
[0047]
When downloading, data may be exchanged on a secure communication path by performing a predetermined authentication / key exchange procedure between the device 1 and the software distribution server.
[0048]
Note that, for the purpose of processing that will be described in detail later, here, when storing downloaded software in the buffer 131 of the RAM 13, the date and time when the software was stored in the RAM 13 is stored in association with the software. To do. Further, when saving the software from the buffer 131 of the RAM 13 to the flash memory 12, the date and time (date and time when the software was saved in the RAM 13) is stored in association with the software.
[0049]
Now, when the device 1 connects to the software distribution server (5 or 6) and downloads the target software, a malicious user on the network impersonates the server IP address, etc. Distribute fake software by rewriting the contents of the server by downloading fake software containing Trojan horses or viruses to the device 1 or intruding into the software distribution server (5 or 6). There is a risk of doing.
[0050]
Therefore, since the software downloaded from the software distribution server (5 or 6) is not necessarily valid, in this embodiment, the software is not a fake software created by a malicious person, but a valid software. The device 1 is provided with a function of checking whether there is a right, distinguishing between a legitimate one and a fake one, and installing only the legitimate one. Moreover, it is impossible to prevent the function itself that installs only the above-mentioned legitimate one by tampering with currently used software.
[0051]
FIG. 8 shows an example of the procedure of the verification process / installation process.
[0052]
As described above, the software is downloaded and temporarily stored in the buffer 131 of the RAM 13, while the processing of FIG. 8 is performed.
[0053]
That is, the timer (see 17 in FIG. 6) is activated every time a certain time elapses (or every time a certain value is counted), and first, the processor 14 and the working memory 132 of the RAM 13 are reset (step S11). (See 103 in FIG. 6).
[0054]
This timer is independent of the processing of the operating system, middleware, and application, and cannot be controlled from the software, and performs time management (for example, the value is continuously added at a constant cycle based on the value stored in the ROM 11). . When a certain amount of time has passed (or when the count exceeds a certain value), the processor (registers, etc.) and the current RAM processing temporarily stored in the working memory are unconditionally forced. clear. “Clear” refers to a process of resetting a value without saving the previous processing state, such as an initialization process.
[0055]
This timer has a function that adds a value (or resets when a value outside the memory range is added) and cannot subtract. The software cannot be invalidated by skipping reset, or the reset time cannot be delayed by changing the timer value.
[0056]
In order to prevent the operating software from losing or destroying data due to a forced reset, the software may issue a request to advance the reset to the timer. For example, before the program currently being executed executes the next processing unit, the remaining time until the next reset is checked. If the time is short, the normal processing procedure is short (in preparation for reset). Processing may be performed so that it can be reset in time (in this case, when the processing is completed before the reset time by performing processing in a short time without performing the next processing unit) (It is also possible to carry out resets and execute them).
[0057]
Note that the core portion of the device 1 may continue to operate regardless of the above-described reset. For example, in a refrigerator having an Internet function, the Internet function part is initialized by the above-described reset, but the original function part of the refrigerator may continue to operate regardless of the reset. .
[0058]
After performing the reset process, the timer moves the process to the ROM 11 (see 104 in FIG. 6).
[0059]
The ROM 11 checks a specific buffer 131 in the RAM 12.
[0060]
When an image of software exists in the buffer 131 of the RAM 13 (step S12), a falsification verification process (FIG. 6) is performed using the signature of the software and the public key 1101 (from the distribution source of the software) stored in the ROM 11. 105, 106, and 1102) (step S13).
[0061]
For example, when the signature is obtained by encrypting a hash value obtained by applying a predetermined hash function to the software with a secret key of the software distribution source, the signature is stored in the ROM 11. To obtain the original hash value and apply the same predetermined hash function to the software to obtain the hash value. If they match, the signature verification (software authentication) is successful. To do. Of course, various methods are known for the verification process, and any method can be used.
[0062]
Here, when the result of falsification verification is false (step S14), a predetermined error process is performed (step S18).
[0063]
Possible causes of failure in falsification verification include, for example, “a file was not transferred normally due to a network error”, “a file was not created by a valid creator”, and the like. If the file was not created by a legitimate creator, it could be fake software distributed by a malicious user. Therefore, for example, if the error processing is provided with a function for reporting error information from the device 1 to the software distributor, it can be used as a material for the software distributor to take measures and investigate.
[0064]
As for software that has failed verification, there are a method of erasing immediately from the RAM buffer in error processing, a method of not erasing in error processing (for example, storing for countermeasures or investigation), and the like.
[0065]
On the other hand, if the result of the tampering verification is true (step S14), in this example procedure, the date and time corresponding to the current software stored in the flash 12 (see 107-1 in FIG. 6) and the RAM 13 A process (see 1103 in FIG. 6) for comparing the date and time (see 107-2 in FIG. 6) corresponding to the software image stored in the buffer 131 is performed (step S15).
[0066]
If the date and time corresponding to the software image stored on the buffer 131 of the RAM 13 is newer than the date and time corresponding to the current software stored in the flash 12 (step S16), the buffer of the RAM 13 is stored in the flash memory 12. The image 131 is copied and the previous contents are overwritten (step S17) (see 108 in FIG. 6).
[0067]
As a result of the above comparison processing, when the date and time corresponding to the software image stored on the buffer 131 of the RAM 13 is older than the date and time corresponding to the current software stored in the flash 12 (step S16), that date has already been reached. Since it is considered that the software is installed (if the software that failed the above verification is not erased in error processing, it may be determined to not be installed because the verification failed) Writing to the flash 12 is not performed.
[0068]
In the case where the software may not be stored in the flash 12 in step S15, if the software is not stored in the flash 12, it is stored in the buffer 131 of the RAM 13 in step S16, for example. The date and time corresponding to the software image may be newer than the date and time corresponding to the current software stored in the flash 12. Further, in the case where the software cannot be stored in the flash 12 in step S15, if the software is not stored in the flash 12, for example, error processing may be performed.
[0069]
In step S17, when the software stored in the buffer 113 of the RAM 13 is written in the flash memory 12, the software may be erased from the buffer 113 of the RAM 13, or instead of or together with the step In the case of No in S16, the software may be deleted from the buffer 113 of the RAM 13.
[0070]
Therefore, (when software is written from the buffer 113 of the RAM 13 to the flash memory 12 in step S17, No in step S16, error processing is performed in step S18, or No in step S12 (buffer of the RAM 13). In the case where there is no software image in 131), the ROM 11 moves the processing to the flash memory 12, and transfers control to the image written in the flash memory 12, and the image is a system startup process (see 109 in FIG. 6). ).
[0071]
Here, the memory address control function of this embodiment will be described.
[0072]
Assume that the software operating on the working memory 132 of the RAM 13 has been falsified. However, as described above, the working memory 132 of the RAM 13 is reset when the timer resets. Therefore, it is necessary to copy the altered software to the flash memory 12 in order to survive the reset. However, since the flash memory 12 can only be rewritten from the ROM 11 (see FIG. 4), the image of the altered RAM 13 cannot rewrite the flash 12. By using this memory address control means, the altered image of the RAM 13 does not continue to exist after reset.
[0073]
Even if the software is running on the working memory 132 of the RAM 13 by the forced resetting means by the timer and the memory address control means, it is saved in the flash memory 12 at the next start-up even if it is falsified by a malicious user. It is possible to recover to the authorized software.
[0074]
As described above, according to the present embodiment, the software to be installed is classified into one that is guaranteed to be created by a legitimate creator and one that is not (for example, forged). Only the former can be selected and installed. Also, even if the software is tampered with, it is possible to prevent the tampered image existing in the current working memory from continuing to exist by periodically resetting the system. Therefore, it is guaranteed that the device always uses software created by the authorized creator, and only software created by the authorized creator can be installed.
[0075]
Note that the procedure of FIG. 8 is an example, and can be implemented with various modifications. For example, in the above processing, first, verification processing using a signature is performed, and if this is successful, a date check is performed to compare the date and time of the software stored in the RAM buffer and the software stored in the flash memory, If this succeeds, it is judged that the downloaded software is valid and should be installed, and the image of the RAM buffer is written in the flash memory. In addition, verification processing may be performed, and if this is successful, data may be written to the flash memory. Further, the verification process and the date / time check may be performed in parallel, and if both of the results are true, the data may be written to the flash memory, and if at least one result is false, the data may not be written.
[0076]
In the description so far, “overwriting software” is assumed for software having the sameness. However, when adding software to main software, for example, in the procedure of FIG. Steps S15 and S16 may be omitted, and the overwrite process in step S17 may be modified to an incorporation process, and if verification is successful in step S14, the corresponding software may be incorporated in step S17.
In addition, when overwriting or adding is different from time to time, for example, in the procedure of FIG. 8, it is determined whether the target software should be overwritten or added. When the date / time check result is true (for verification processing), the RAM buffer software is overwritten in the flash memory. In the latter case, the RAM memory is not stored in the flash memory software without performing the date / time check. Buffer software may be added. Whether the target software should be overwritten or added is determined by, for example, assigning unique identification information to each software and having the same identification information as that of the software in the RAM buffer. If it is stored in the memory, it may be determined to overwrite, and if not stored, it may be determined to add. For example, there is a method of adding information indicating whether to overwrite or add to each software.
[0077]
In addition, when a plurality of types of software (each software is identified by, for example, identification information unique to the software) can exist in the RAM buffer in step S12 of FIG. 8, the verification / installation is performed in the RAM buffer. For each piece of software present in
[0078]
Further, when the software in the flash memory is activated in step S19 in FIG. 8, if there can be a plurality of software that can be activated in the flash memory, the software to be activated is selected and activated according to a predetermined selection criterion. do it. Examples of the selection criteria include various methods such as a method of selecting software having identification information set in the ROM in advance, a method of selecting software specified by the user in advance, and a method of selecting what was being activated at the time of resetting. There is a way.
[0079]
Further, in the procedure of FIG. 8, there is a method in which the software in the flash memory is not activated in step S19 but is activated at a different timing.
[0080]
Further, in the procedure of FIG. 8, there is a method in which the processor and the working memory of the RAM in step S11 are not reset but are performed at different triggers.
[0081]
In addition, we have described a method in which software is automatically installed when the timer starts, but it is also possible to allow users to install software at any time instead of or in conjunction with automatic installation. Is possible. By doing so, for example, when an important defect of software is found, a correction program can be installed according to the desire of the user.
[0082]
The function that the user installs at an arbitrary time can be realized by using this function if there is a function that, for example, resets the timer as described above if it is used together with automatic installation. . In order to execute the instruction to advance the resetting of the timer, the device 1 may be provided with a physical switch, or a request may be transmitted to the device 1 through an infrared remote controller or the like. It is also possible to send an arbitrary command via the network. In this case, when the timer receives a reset request, as in the procedure of FIG. 8, the current processing contents of the processor and information stored in the working memory of the RAM are reset, the processing contents are transferred to the ROM, and software tampering verification is performed. And start the installation.
[0083]
If the user has a function to install software at an arbitrary time without providing an automatic installation function, reset, verification, and installation may be performed in response to user input (in this case, reset It is possible to adopt a form that does not.
[0084]
In the description so far, when storing downloaded software in the RAM buffer, the date and time when the software was stored in the RAM is stored in association with the software, and the software is transferred from the RAM buffer to the flash memory. When saving, the date and time (date and time when the software was saved in the RAM) is saved in association with the software, and the software is saved from the RAM buffer to the flash memory according to the comparison result of the two dates and times. Instead, for example, version information or the like is added to the software, and the software is saved from the RAM buffer to the flash memory according to the comparison result of the old and new version information. It may be determined whether or not. Other methods are also possible.
[0085]
In the above description, it is assumed that a signature encrypted with the secret key of the distribution source is added to the software, and the public key of the software distribution source is built in the ROM 11 of the device 1. Instead of the public key cryptosystem, other cryptosystems can be adopted. For example, a method using the same shared key between the software distribution source and the device 1 can be adopted.
[0086]
In addition, the description has been focused on the distribution and installation of software via a network, but as described above, it is not necessary for a device or a user to obtain software via a network. If the device does not have a communication interface, or if the device is not connected to a network, portable and writable media such as a floppy disk and portable and writable media such as a CD-ROM It is conceivable to update the software from impossible media. Of course, as in the case of downloading via the network, there is no guarantee that the media that is the storage medium is recorded with software created by an authorized creator. It can be applied by installing.
[0087]
Further, as described above, the present invention is not limited to home appliances, but can be applied to general-purpose computers, mobile phones, PDAs, and other devices. In particular, since mobile phones and PDAs have a limited memory capacity, it is difficult to install a large number of applications at once. Further, the present invention is applicable when downloading and installing an application via the Internet using a mobile phone service or an Internet connection service.
[0088]
Note that the configuration illustrated in the embodiment of the present invention is an example, and is not intended to exclude other configurations, and a part of the illustrated configuration may be replaced with another or one of the illustrated configurations. Other configurations obtained by omitting a part, adding another function or element to the illustrated configuration, or combining them are also possible. Also, another configuration that is logically equivalent to the exemplified configuration, another configuration that includes a portion that is logically equivalent to the exemplified configuration, another configuration that is logically equivalent to the main part of the illustrated configuration, and the like are possible. is there. Further, another configuration that achieves the same or similar purpose as the illustrated configuration, another configuration that achieves the same or similar effect as the illustrated configuration, and the like are possible.
In addition, various variations of various components illustrated in the embodiment of the present invention can be implemented in appropriate combination.
Further, the embodiment of the present invention is an invention of an invention as an individual device, an invention of two or more related devices, an invention of the entire system, an invention of components within an individual device, or a method corresponding thereto. The invention includes inventions according to various viewpoints, stages, concepts, or categories.
Therefore, the present invention can be extracted from the contents disclosed in the embodiments of the present invention without being limited to the exemplified configuration.
[0089]
The present invention is not limited to the embodiment described above, and can be implemented with various modifications within the technical scope thereof.
[0090]
【The invention's effect】
According to the present invention, it is possible to prevent installation of unauthorized software.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example of the overall configuration of a system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of the hardware configuration of a device according to the embodiment
FIG. 3 is a view showing a configuration example of a RAM of the device according to the embodiment;
FIG. 4 is a view showing a relationship of write authority among ROM, flash memory, and RAM of the device according to the embodiment;
FIG. 5 is a view showing a software configuration example of the device according to the embodiment;
FIG. 6 is a view for explaining data flow and control in the device according to the embodiment;
FIG. 7 is a flowchart showing an example of a procedure when acquiring software of the device according to the embodiment;
FIG. 8 is a flowchart showing an example of a procedure of authentication / installation processing of the device according to the embodiment;
[Explanation of symbols]
1 ... Equipment
2 ... LAN
3 ... Internet
4. External storage device
5, 6 ... Software distribution server
11 ... ROM
12 ... Flash memory
13 ... RAM
14 ... Processor
15. Communication interface part
16 ... External storage device connection interface section
17 ... Timer

Claims (14)

外部からソフトウェアをインストールして実行する機能を有するソフトウェア処理装置において、
ソフトウェアを実行するためのプロセッサと、
実行すべきソフトウェアを保存するためのフラッシュメモリと、
外部から入力された、ソフトウェアと、該ソフトウェアの正当性の検証のための、第1の鍵で暗号化されたシグネチャとを、一時的に保持するためのバッファと
記プロセッサにより実行される第1の処理のプログラムコードと、前記プロセッサにより実行される第2の処理のプログラムコードと書き込まれたROMとを備え
前記第1の処理のプログラムコードは、前記第1の鍵に一意に対応する第2の鍵と、前記バッファに一時的に保持されている前記ソフトウェアに対するシグネチャと該第2の鍵とに基づいて該ソフトウェアの正当性を検証するためのものであり、前記第2の処理のプログラムコードは、該検証によって正当性が確認された前記ソフトウェアを前記バッファから前記フラッシュメモリに保存するためのものであり、前記フラッシュメモリは、前記ROM内の前記第2の処理のプログラムコードを前記プロセッサにより実行することによってのみ、データ書き込み可能であり、
前記ROMを、対象とするソフトウェア配布元ごとに設けたことを特徴とするソフトウェア処理装置。
In a software processing apparatus having a function of installing and executing software from outside,
A processor for executing the software;
Flash memory for storing software to be executed,
A buffer for temporarily holding externally input software and a signature encrypted with the first key for verifying the validity of the software ;
Before SL comprising a program code for a first process that will be executed by a processor, and a write Mareta ROM writing a program code for a second process that will be executed by the processor,
The program code of the first process is based on a second key uniquely corresponding to the first key, a signature for the software temporarily stored in the buffer, and the second key. The program code of the second process is for saving the software whose validity is confirmed by the verification from the buffer to the flash memory. , before Symbol flash memory program code of the second process in the ROM only by executing by the processor is capable of data write,
Software processing device according to claim that you said ROM, provided for each software distributor of interest.
外部からソフトウェアをインストールして実行する機能を有するソフトウェア処理装置において、
ソフトウェアを実行するためのプロセッサと、
実行すべきソフトウェアを保存するためのフラッシュメモリと、
外部から入力された、ソフトウェアと、該ソフトウェアの正当性の検証のための、第1の鍵で暗号化されたシグネチャとを、一時的に保持するためのバッファと
記プロセッサにより実行される第1の処理のプログラムコードと、前記プロセッサにより実行される第2の処理のプログラムコードと書き込まれたROMと、
前記プロセッサによる前記ソフトウェアの稼動時に前記プロセッサにより利用される再書き込み可能なワーキングメモリと、
一定期間ごとに、前記プロセッサ及び前記ワーキングメモリの初期化を行った後に、前記ROMに書き込まれた前記処理に制御を移すタイマー手段とを備え
前記第1の処理のプログラムコードは、前記第1の鍵に一意に対応する第2の鍵と、前記バッファに一時的に保持されている前記ソフトウェアに対するシグネチャと該第2の鍵とに基づいて該ソフトウェアの正当性を検証するためのものであり、前記第2の処理のプログラムコードは、該検証によって正当性が確認された前記ソフトウェアを前記バッファから前記フラッシュメモリに保存するためのものであり、前記フラッシュメモリは、前記ROM内の前記第2の処理のプログラムコードを前記プロセッサにより実行することによってのみ、データ書き込み可能であり、
前記タイマー手段は、オペレーティングシステム、ミドルウェア及びアプリケーションのいずれの処理とも独立し、それら処理からは制御不可能で、前記一定期間の経過を管理することを特徴とするソフトウェア処理装置。
In a software processing apparatus having a function of installing and executing software from outside,
A processor for executing the software;
Flash memory for storing software to be executed,
A buffer for temporarily holding externally input software and a signature encrypted with the first key for verifying the validity of the software ;
A program code for a first process that will be executed by the pre-Symbol processor, and a is write Mareta ROM program code of the second processing that will be executed by the processor,
A rewritable working memory utilized by the processor during operation of the software by the processor;
Timer unit for transferring control to the process written in the ROM after initialization of the processor and the working memory at regular intervals ;
The program code of the first process is based on a second key uniquely corresponding to the first key, a signature for the software temporarily stored in the buffer, and the second key. The program code of the second process is for saving the software whose validity is confirmed by the verification from the buffer to the flash memory. , before Symbol flash memory program code of the second process in the ROM only by executing by the processor is capable of data write,
The software processing apparatus characterized in that the timer means is independent of any processing of the operating system, middleware, and application, cannot be controlled from these processing, and manages the progress of the predetermined period .
前記タイマー手段は、前記ROMに蓄えられた値を元に一定周期で値を加算することによって、前記一定期間の経過を管理することを特徴とする請求項に記載のソフトウェア処理装置。 3. The software processing apparatus according to claim 2 , wherein the timer unit manages progress of the predetermined period by adding a value at a constant period based on a value stored in the ROM. 前記タイマー手段は、現在実行中のソフトウェアが次の処理単位を実行する前に、次のリセット予定時間までの残り時間を調べ、残り時間が短かった場合に、通常の処理手順は短時間でリセット可能な状態になるよう処理を行い、該次のリセット予定時間より前にリセットを繰り上げて実行するための手段を含むことを特徴とする請求項2または3に記載のソフトウェア処理装置。The timer means checks the remaining time until the next scheduled reset time before the currently executing software executes the next processing unit. If the remaining time is short, the normal processing procedure is reset in a short time. 4. The software processing apparatus according to claim 2 , further comprising means for performing processing so as to be in a possible state, and executing reset before the next scheduled reset time. 一定期間ごとに前記プロセッサ及び前記ワーキングメモリの初期化を行うためのリセット手段を更に備えたことを特徴とする請求項に記載のソフトウェア処理装置。 3. The software processing apparatus according to claim 2 , further comprising a reset unit for initializing the processor and the working memory at regular intervals. 前記プロセッサが前記第2の処理のプログラムコードを実行することによってなされる前記第2の処理は、前記バッファに一時的に保存されている前記ソフトウェアを前記フラッシュメモリに保存されているソフトウェアに対して上書きするのに先だって、前記バッファに一時的に保存されている前記ソフトウェアと、前記フラッシュメモリに保存されている前記ソフトウェアとの新旧を比較し、前記バッファに一時的に保存されている前記ソフトウェアの方が新しいと判断された場合にのみ、前記上書きを行うものであることを特徴とする請求項1または2に記載のソフトウェア処理装置。The second process, which is performed by the processor executing the program code of the second process, executes the software temporarily stored in the buffer with respect to the software stored in the flash memory. Prior to overwriting, the software temporarily stored in the buffer is compared with the software stored in the flash memory, and the software temporarily stored in the buffer is compared. it is only when it is determined that a new, software processing apparatus according to claim 1 or 2, characterized in that performing the overwriting. 前記プロセッサが前記第2の処理のプログラムコードを実行することによってなされる前記第2の処理は、前記ソフトウェアに付加されている日時情報に基づいて新旧の比較を行うものであることを特徴とする請求項に記載のソフトウェア処理装置。The second process performed by the processor executing the program code of the second process is for comparing old and new based on date and time information added to the software. The software processing apparatus according to claim 6 . 前記プロセッサが前記第2の処理のプログラムコードを実行することによってなされる前記第2の処理は、前記ソフトウェアに付加されているバージョン情報に基づいて新旧の比較を行うものであることを特徴とする請求項に記載のソフトウェア処理装置。The second process performed by the processor executing the program code of the second process is for comparing old and new based on version information added to the software. The software processing apparatus according to claim 6 . 前記第1の鍵は、前記ソフトウェアの配布元に固有の秘密鍵であり、
前記第2の鍵は、前記ソフトウェアの配布元に固有の公開鍵であり、
前記プロセッサが前記第1の処理のプログラムコードを実行することによってなされる前記第1の処理は、前記バッファに一時的に保持されている前記秘密鍵で暗号化されたシグネチャを、前記ROM内に書き込まれている前記公開鍵で復号し、該復号によって得たシグネチャに基づいて改竄の有無を検証するものであることを特徴とする請求項1または2に記載のソフトウェア処理装置。
The first key is a secret key unique to the distribution source of the software,
The second key is a public key unique to the distribution source of the software,
The first process, which is performed by the processor executing the program code of the first process, stores the signature encrypted with the secret key temporarily stored in the buffer in the ROM. 3. The software processing apparatus according to claim 1, wherein the software processing apparatus decrypts with the written public key and verifies the presence or absence of falsification based on a signature obtained by the decryption.
前記フラッシュメモリに保存される前記ソフトウェアは、オペレーティングシステム、アプリケーション及びそれらが必要とするデータからなる現在インストールされているソフトウェアであることを特徴とする請求項1または2に記載のソフトウェア処理装置。 3. The software processing apparatus according to claim 1, wherein the software stored in the flash memory is currently installed software including an operating system, an application, and data required by them. 前記フラッシュメモリに保存される前記ソフトウェアは、オペレーティングシステム、該オペレーティングシステム上で実行されるミドルウェア、アプリケーション及びそれらが必要とするデータからなる現在インストールされているソフトウェアであることを特徴とする請求項1または2に記載のソフトウェア処理装置。The software stored in the flash memory, according to claim, characterized in that the operating system, a software middleware running on the operating system, applications and their currently installed consisting of data required 1 Or the software processing apparatus of 2. インストールするソフトウェアを取得するための通信インターフェース手段を更に備えたことを特徴とする請求項1または2に記載のソフトウェア処理装置。 3. The software processing apparatus according to claim 1, further comprising communication interface means for acquiring software to be installed. インストールするソフトウェアを取得するために、ソフトウェアを含むメディアを接続するための外部記憶装置接続インターフェース手段を更に備えたことを特徴とする請求項1または2に記載のソフトウェア処理装置。 3. The software processing apparatus according to claim 1, further comprising external storage device connection interface means for connecting a medium including software in order to acquire software to be installed. 前記ソフトウェア処理装置は、外部から前記ソフトウェアをインストールして前記プロセッサにより実行する機能を有する、家電機器、汎用計算機、携帯電話又はPDAであることを特徴とする請求項1または2に記載のソフトウェア処理装置。 3. The software processing according to claim 1, wherein the software processing device is a home appliance, a general-purpose computer, a mobile phone, or a PDA having a function of installing the software from the outside and executing the software by the processor. apparatus.
JP2001315815A 2001-10-12 2001-10-12 Software processing device Expired - Fee Related JP3863401B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001315815A JP3863401B2 (en) 2001-10-12 2001-10-12 Software processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001315815A JP3863401B2 (en) 2001-10-12 2001-10-12 Software processing device

Publications (2)

Publication Number Publication Date
JP2003122588A JP2003122588A (en) 2003-04-25
JP3863401B2 true JP3863401B2 (en) 2006-12-27

Family

ID=19133931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001315815A Expired - Fee Related JP3863401B2 (en) 2001-10-12 2001-10-12 Software processing device

Country Status (1)

Country Link
JP (1) JP3863401B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210232384A1 (en) * 2020-01-24 2021-07-29 Insyde Software Corp. System and Method for Runtime Capsule Firmware Update with Low-Latency Software SMIs

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10331874A1 (en) 2003-07-14 2005-03-03 Robert Bosch Gmbh Remote programming of a program-controlled device
JP4728611B2 (en) 2003-08-12 2011-07-20 株式会社リコー Storage medium, storage apparatus, information processing apparatus, information processing method, information processing program, and recording medium
JP4676724B2 (en) 2003-08-12 2011-04-27 株式会社リコー Information processing apparatus, information processing method, information processing program, and recording medium
US8499358B2 (en) 2003-09-12 2013-07-30 Konica Minolta Business Technologies, Inc. Program executing processing and controlling
EP1722287A1 (en) * 2004-03-04 2006-11-15 NEC Corporation Data update system, data update method, date update program, and robot system
CN1918526B (en) * 2004-04-30 2012-03-14 富士通半导体股份有限公司 Information management device and information management method
JP4736370B2 (en) 2004-07-27 2011-07-27 株式会社日立製作所 Hosting environment construction method and computer system
JP4815782B2 (en) * 2004-10-22 2011-11-16 ソニー株式会社 Program update method, information processing apparatus, and program
JP4851182B2 (en) * 2005-12-28 2012-01-11 ルネサスエレクトロニクス株式会社 Microcomputer, program writing method for microcomputer, and writing processing system
KR100917706B1 (en) * 2006-08-14 2009-09-21 후지쯔 마이크로일렉트로닉스 가부시키가이샤 Information management device and information management method
CN102982274B (en) * 2007-06-20 2015-12-02 华为技术有限公司 The management method of intelligent terminal system and intelligent terminal
US8205217B2 (en) * 2007-09-29 2012-06-19 Symantec Corporation Methods and systems for configuring a specific-use computing system limited to executing predetermined and pre-approved application programs
JP5553670B2 (en) * 2010-04-19 2014-07-16 キヤノン株式会社 Management device, control method thereof, and program
JP2012018657A (en) 2010-06-11 2012-01-26 Nintendo Co Ltd Information processing terminal, information processing system, and information processing program
JP5677811B2 (en) 2010-06-11 2015-02-25 任天堂株式会社 Portable information terminal, portable information system, portable information terminal control program
US11483137B2 (en) 2020-01-22 2022-10-25 Micron Technology, Inc. Dynamic command extension for a memory sub-system
KR20210108279A (en) * 2020-02-25 2021-09-02 삼성전자주식회사 Electronic device and method for managing signature key

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210232384A1 (en) * 2020-01-24 2021-07-29 Insyde Software Corp. System and Method for Runtime Capsule Firmware Update with Low-Latency Software SMIs

Also Published As

Publication number Publication date
JP2003122588A (en) 2003-04-25

Similar Documents

Publication Publication Date Title
JP3863401B2 (en) Software processing device
JP6595822B2 (en) Information processing apparatus and control method thereof
US11178121B2 (en) Secure software updates
JP4906854B2 (en) Information processing apparatus, information recording apparatus, information processing system, program update method, program, and integrated circuit
US20170250818A1 (en) Method and System for Securely Updating Field Upgradeable Units
KR101888712B1 (en) Protecting operating system configuration values
US6757824B1 (en) Client-side boot domains and boot rules
EP1342149B1 (en) Method for protecting information and privacy
JP3444227B2 (en) How to prevent unauthorized use of software
JP5380604B2 (en) Information recording device
US20050021968A1 (en) Method for performing a trusted firmware/bios update
US20080022380A1 (en) Method of patching applications on small resource-constrained secure devices
US20140059679A1 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US8250630B2 (en) Detecting unauthorized computer access
US20090287917A1 (en) Secure software distribution
EP3460705A1 (en) Distributed deployment of unique firmware
JP5969845B2 (en) Information processing apparatus and control method thereof
JP2015135703A (en) Method and system for recursive security protocol for digital copyright control
JP2020035202A (en) Information processing device, system and method
JP2007087275A (en) License management device
JP2002189526A (en) Distribution system
JP2013084294A (en) Method and system for recursive security protocol for digital copyright control
JP2010061182A (en) Software management method, software management device, and software management program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060928

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

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131006

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees