JP2003122588A - Software processing device and software installation method - Google Patents

Software processing device and software installation method

Info

Publication number
JP2003122588A
JP2003122588A JP2001315815A JP2001315815A JP2003122588A JP 2003122588 A JP2003122588 A JP 2003122588A JP 2001315815 A JP2001315815 A JP 2001315815A JP 2001315815 A JP2001315815 A JP 2001315815A JP 2003122588 A JP2003122588 A JP 2003122588A
Authority
JP
Japan
Prior art keywords
software
buffer
processing device
rom
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.)
Granted
Application number
JP2001315815A
Other languages
Japanese (ja)
Other versions
JP3863401B2 (en
Inventor
Stajano Francesco
フランチェスコ・スタヤノ
Hiroshi Isozaki
宏 磯崎
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

Abstract

PROBLEM TO BE SOLVED: To provide a software processing device capable of obstructing the installation of invalid software. SOLUTION: Downloaded software and an attached signature enciphered by the secret key of a software distributor are temporarily held in the buffer of a RAM 13. After a processor 14 and the working memory of the RAM 13 are initialized at a specified timing and, based on the public key of the distributor created in a ROM 11 and the signature of the software temporarily held in the buffer, the validity of the software is verified by a first processing program code created in the ROM 11. When the validity is verified, the software from the buffer of the RAM 13 is stored in a flash memory 12 by a second processing program code created in the ROM 11.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、外部からソフトウ
ェアをインストールして実行する機能を有する、家電機
器、汎用計算機、携帯電話、PDAなどのソフトウェア
処理装置及びソフトウェア・インストール方法に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software processing device such as a home electric appliance, a general-purpose computer, a mobile phone, and a PDA, which has a function of installing and executing software from the outside, and a software installation method.

【0002】[0002]

【従来の技術】近年、インターネットの普及や常時接続
の一般化に伴い、汎用の計算機をはじめとする多くの機
器がネットワークに接続し、利用者はネットワークを利
用した様々なサービスを受けることが可能となってきて
いる。その一方で、悪意のある利用者によるネットワー
クを経由した不正行為が社会的な問題になっており、ネ
ットワークセキュリティの重要性は高まってきている。
2. Description of the Related Art In recent years, with the spread of the Internet and the generalization of always-on connections, many devices such as general-purpose computers are connected to a network, and users can receive various services using the network. Is becoming. On the other hand, malicious acts by malicious users via networks have become a social problem, and the importance of network security is increasing.

【0003】一般的にそれらの不正行為は、ソフトウェ
アの脆弱性や管理者の設定ミスを利用した攻撃やウィル
スによるものが多い。特にソフトウェアの脆弱性に関し
ては、開発者にとってあらかじめ設計上、実装上のミス
のない完全なソフトウェアを作成し配布することは一般
的に困難であることが原因となっている。さらに、それ
らのミスはソフトウェアの配布後、開発者や利用者によ
って使用中に発見されることが多いため、開発者側から
修正プログラムという形で公開・配布され、利用者は適
宜それらの修正プログラムをダウンロード後、インスト
ールするという形態が一般的である。
In general, these illegal acts are often caused by an attack or a virus that uses vulnerability of software or a setting error of an administrator. In particular, regarding software vulnerabilities, it is generally difficult for developers to create and distribute complete software that has no design or implementation mistakes in advance. Furthermore, since such mistakes are often found during use by developers and users after the software has been distributed, they are published and distributed in the form of modification programs by the developers, and the users can use these modification programs as appropriate. After downloading, the form is generally installed.

【0004】しかしながら、全てのネットワーク利用者
がネットワークセキュリティに関して専門の知識や関心
を持っているとは限らない。そのため、それらの問題の
あるソフトウェアを修正するプログラムが公開されてい
るにも関わらず、問題を抱えたソフトウェアが放置され
ている場合が少なくない。従って、ソフトウェア作成者
が修正プログラムや、修正プログラムを含んだアップデ
ートプログラムを、機器利用者に対して配布し、確実に
修正プログラムやソフトウェアをインストールすること
が求められる(ここで、確実とは、ダウンロードしたプ
ログラム自体が改竄されていたり、不正なソフトウェア
に置き換えられたりすることなく、正当なソフトウェア
をインストールすることを指す)。
However, not all network users have specialized knowledge or interest in network security. Therefore, there are many cases where the software having a problem is left unattended, even though a program for correcting the software having the problem has been released. Therefore, it is required that the software creator distribute the modification program or the update program including the modification program to the device users and surely install the modification program or the software. The program itself has been tampered with, or it is not replaced by unauthorized software, and refers to installing legitimate software).

【0005】従来のソフトウェアを安全にインストール
する技術としては、デジタル署名が有用であると考えら
れる。デジタル署名の利用方法例を以下に示す。
A digital signature is considered to be useful as a conventional technique for safely installing software. An example of how to use the digital signature is shown below.

【0006】ソフトウェア作成者は、公開鍵アルゴリズ
ムに基づいた公開鍵と秘密鍵を作成し、インストールの
対象となる機器のROMに公開鍵を書き込む。このた
め、公開鍵を書き換えることは不可能である。一方でイ
ンストールするソフトウェアはそれ自身が正しいと証明
するため、前記のROMに書き込まれた公開鍵に対応す
る秘密鍵で暗号化されたシグネチャを持つ。ソフトウェ
アをインストールする際、前記の公開鍵とシグネチャを
用いて、そのソフトウェアが鍵の作成者、すなわち正当
なソフトウェアの作成者であるかソフトウェアの妥当性
を検証する。改竄検証のコードもROMに保存しておけ
ば、例えソフトウェアが悪意のあるコードによって改竄
されたとしても、改竄検証の処理が改竄されることはな
いため、不正なシグネチャを持つソフトウェアのインス
トールを防ぐことができる。
[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. Therefore, it is impossible to rewrite the public key. On the other hand, the software to be installed has a signature encrypted with the private key corresponding to the public key written in the ROM in order to prove itself to be correct. When the software is installed, the validity of the software is verified by using the public key and the signature, which is the creator of the key, that is, the creator of the legitimate software. If the tampering verification code is also stored in the ROM, even if the software is tampered with by malicious code, the tampering verification process will not be tampered with, so the installation of software with an illegal signature is prevented. be able to.

【0007】しかしながら、インストール処理を行うソ
フトウェア自身が実装上、設計上のミスを利用した悪意
あるコードによって、改竄検証処理をスキップさせた
り、改竄検証結果を無効にさせたりするように改竄され
てしまった場合、強制的に正当な改竄検証処理を行わせ
ることはできない。従って前記の手法は、安全にソフト
ウェアをインストールするための本質的な問題解決には
なっていない。
However, the software that performs the installation process itself has been tampered with by implementing malicious code that makes use of design mistakes to skip the tampering verification process or invalidate the tampering verification result. In this case, it is not possible to forcibly carry out a proper tampering verification process. Therefore, the above method does not solve the essential problem of installing software safely.

【0008】ソフトウェアを安全にインストールさせる
ためには、ソフトウェアのインストールの際に、必ずシ
グネチャの改竄検証処理を行うよう、ソフトウェアの改
竄を不可能にするだけでなく、ソフトウェアをインスト
ールさせる処理そのものを改竄されずに、安全にソフト
ウェアのアップデートが行えるようにする仕組みを備え
ていなければならない。
In order to install the software safely, not only is the software tampering impossible, but the software itself is tampered with so that the signature tampering verification process is always performed when the software is installed. Instead, it must be equipped with a mechanism that allows software to be updated safely.

【0009】[0009]

【発明が解決しようとする課題】以上説明したように、
従来のソフトウェアを安全にインストールさせる仕組み
では、正当でないソフトウェアがインストールされる可
能性があり、対策として不十分であった。
As described above,
In the conventional mechanism for safely installing software, there is a possibility that illegal software may be installed, which is insufficient as a countermeasure.

【0010】本発明は、上記事情を考慮してなされたも
ので、正当でないソフトウェアのインストールを阻止す
ることのできるソフトウェア処理装置及びソフトウェア
・インストール方法を提供することを目的とする。
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a software processing device and a software installation method capable of preventing the installation of unauthorized software.

【0011】[0011]

【課題を解決するための手段】本発明は、外部からソフ
トウェアをインストールして実行する機能を有するソフ
トウェア処理装置において、ソフトウェアを実行するた
めのプロセッサと、実行すべきソフトウェアを保存する
ためのフラッシュメモリと、外部から入力された、ソフ
トウェアと、該ソフトウェアの正当性の検証のための、
第1の鍵で暗号化されたシグネチャとを、一時的に保持
するためのバッファと、前記第1の鍵に一意に対応する
第2の鍵と、前記バッファに一時的に保持されている前
記ソフトウェアに対するシグネチャと該第2の鍵とに基
づいて該ソフトウェアの正当性を検証するための第1の
処理のプログラムコード、該検証によって正当性が確認
された前記ソフトウェアを前記バッファから前記フラッ
シュメモリに保存するための第2の処理のプログラムコ
ードとを書き込んだROMとを備えたことを特徴とす
る。
According to the present invention, in a software processing device having a function of installing and executing software from the outside, a processor for executing the software and a flash memory for storing the software to be executed. And the software input from the outside and for verifying the correctness of the software,
A buffer for temporarily holding the signature encrypted with the first key, a second key uniquely corresponding to the first key, and the buffer temporarily held in the buffer. The program code of the first process for verifying the correctness of the software based on the signature for the software and the second key, and the software whose correctness is confirmed by the verification is transferred from the buffer to the flash memory. And a ROM in which the program code of the second process for saving is written.

【0012】また、本発明は、外部からソフトウェアを
インストールして実行する機能を有する装置におけるソ
フトウェア・インストール方法であって、外部から入力
された、ソフトウェアと、該ソフトウェアの正当性の検
証のための、第1の鍵で暗号化されたシグネチャとを、
バッファに一時的に保持するステップと、ROMに書き
込まれた前記第1の鍵に一意に対応する第2の鍵と、前
記バッファに一時的に保持されている前記ソフトウェア
に対するシグネチャとに基づいて、前記ROMに書き込
まれた第1の処理のプログラムコードによって、該ソフ
トウェアの正当性を検証するステップと、前記検証によ
って正当性が確認された場合に、前記ROMに書き込ま
れた第2の処理のプログラムコードによって、正当性が
確認された前記ソフトウェアを前記バッファからフラッ
シュメモリに保存するステップとを有することを特徴と
する。
Further, the present invention is a software installation method in an apparatus having a function of installing and executing software from the outside, which is used for verifying the software inputted from the outside and the correctness of the software. , The signature encrypted with the first key,
Temporarily holding in a buffer, a second key uniquely corresponding to the first key written in ROM, and a signature for the software temporarily held in the buffer, A step of verifying the correctness of the software by the program code of the first process written in the ROM, and a program of the second process written in the ROM when the correctness is confirmed by the verification. Saving the software, which has been validated by the code, from the buffer to the flash memory.

【0013】好ましくは、一定期間ごとに、プロセッサ
及びワーキングメモリの初期化を行った後に、前記RO
Mに書き込まれた前記処理に制御を移すステップを更に
有するようにしてもよい。
Preferably, after the processor and the working memory are initialized at regular intervals, the RO
The method may further include the step of transferring control to the processing written in M.

【0014】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。
It should be noted that the present invention relating to the apparatus also holds as the invention relating to the method, and the present invention relating to the method also holds as the invention relating to the apparatus.

【0015】本発明によれば、ROMに第2の鍵と検証
のための第1の処理のプログラムコードと正当なソフト
ウェアをインストールするための第2の処理のプログラ
ムコードとを作り込むとともに、入力したソフトウェア
/シグネチャはバッファに一時的に保持した後に、RO
Mによって検証に成功したソフトウェアのみフラッシュ
メモリに保存することによって、鍵/検証処理/インス
トール処理の改竄を阻止し、正当性のあるソフトウェア
のみをインストールすることを保証することが可能にな
る。また、これによって、正当性のあるソフトウェアの
利用を保証することが可能になる。
According to the present invention, the ROM is provided with the second key, the program code for the first process for verification, and the program code for the second process for installing the proper software, and the input is made. The stored software / signature is temporarily stored in a buffer and then RO
By storing only the software successfully verified by M in the flash memory, it is possible to prevent falsification of the key / verification process / installation process and to ensure that only legitimate software is installed. This also makes it possible to guarantee the use of the legitimate software.

【0016】また、一定期間ごとにプロセッサ及びワー
キングメモリの初期化を行った後に、検証/インストー
ルの処理を行うことによって、動作中のソフトウェアが
仮に改竄されたとしても、リセット後も改竄されたソフ
トウェアが継続して動作することを防ぐことができる。
Further, even if the running software is tampered with by performing the verification / installation process after the initialization of the processor and the working memory at regular intervals, the software that has been tampered with even after the reset is executed. Can be prevented from continuing to operate.

【0017】[0017]

【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings.

【0018】図1に、本発明の一実施形態に係るシステ
ムの全体構成例を示す。
FIG. 1 shows an example of the overall configuration of a system according to an embodiment of the present invention.

【0019】図1の機器1は、外部からインストールし
たソフトウェアをプロセッサで実行する機能を有するも
のであれば、家電機器、汎用の計算機、携帯電話、PD
Aなど、どのような機器に対しても適用可能である。ま
た、図1の機器1は、LAN及び又はWANなどのネッ
トワーク(無線ネットワークでも有線ネットワークでも
よい)に接続可能な装置だけでなく、スタンドアローン
の装置であってもよい。なお、以下では、主に機器1が
ネットワークに接続可能な家電機器である場合を例にと
って説明している。
The device 1 of FIG. 1 is a home electric device, a general-purpose computer, a mobile phone, a PD as long as it has a function of executing software installed from the outside by a processor.
It is applicable to any device such as A. The device 1 of FIG. 1 may be a stand-alone device as well as a device connectable to a network (a wireless network or a wired network) such as a LAN and / or a WAN. In the following description, the case where the device 1 is a home appliance that can be connected to the network is mainly described as an example.

【0020】インターネット3上に接続されるソフトウ
ェア配布サーバ6は、「修正プログラム」、「修正プロ
グラムを含んだアップデートプログラム」、「機能追加
プログラム」など、当該機器1で動作するソフトウェア
を公開し、配布する機能を持つ。ソフトウェア配布サー
バ6は、例えば機器製造ベンダーもしくは機器に関連す
るソフトウェアの製造ベンダーが立ち上げたサーバでも
よい。ソフトウェアには、当該ソフトウェアの配布元の
秘密鍵で暗号化された、当該ソフトウェアに対するシグ
ネチャが付加されているものとする。
The software distribution server 6 connected to the Internet 3 publishes and distributes software such as “correction program”, “update program including correction program”, and “function addition program” that operates on the device 1. With the function to do. The software distribution server 6 may be, for example, a server launched by a device manufacturer or a vendor of software related to the device. It is assumed that the software has a signature for the software, which is encrypted with the private key of the distributor of the software.

【0021】なお、ソフトウェア配布サーバ6は、必ず
しもインターネット3上にある必要はなく、企業や個人
の構築したLAN2上に設置してもよい。また、CD−
ROMやフレキシブル・ディスクやICカードなどの携
帯可能な記録媒体によってソフトウェアを配布するよう
にしてもよい。また、インターネット3上にソフトウェ
ア配布サーバ6を設ける方法と、LAN2上にソフトウ
ェア配布サーバ5を設置する方法と、記録媒体によって
ソフトウェアを配布する方法とのうちの2以上を組み合
わせて実施してもよい。なお、以下では、主に機器1に
既にインストールされているソフトウェアに対して上書
きすべきソフトウェアを、配布・インストールする場合
を例にとって説明している。
The software distribution server 6 does not necessarily have to be on the Internet 3, but may be installed on the LAN 2 constructed by a company or an individual. Also, CD-
The software may be distributed by a portable recording medium such as a ROM, a flexible disk, or an IC card. Further, two or more of the method of providing the software distribution server 6 on the Internet 3, the method of installing the software distribution server 5 on the LAN 2, and the method of distributing the software by the recording medium may be combined and implemented. . In the following, a case where software to be overwritten over software already installed in the device 1 is mainly distributed and installed will be described as an example.

【0022】なお、最初のバージョンのソフトウェアに
ついては、上記と同じ方法で配布してもよいし、予め機
器1にインストールされていてもよいし、その他の方法
で配布・インストールされてもよい。
The first version of the software may be distributed by the same method as that described above, may be pre-installed in the device 1, or may be distributed / installed by another method.

【0023】機器1が外部からソフトウェアを取得する
手段には種々の形態がある。例えば、(1)機器1が通
信インタフェース部15を備え、インターネット3上の
ソフトウェア配布サーバ6からソフトウェアをダウンロ
ードする方法(この場合において、LAN2を介してイ
ンターネット3に接続する方法、LAN2を介さずにイ
ンターネット3に直接接続する方法などがある)、
(2)機器1が通信インタフェース部15を備え、LA
N2上のソフトウェア配布サーバ5からソフトウェアを
ダウンロードする方法(なお、この場合において、ソフ
トウェア配布サーバ5へは、例えばソフトウェア配布サ
ーバ6等からインターネット3経由でソフトウェアを与
える方法や、記録媒体からソフトウェアを読み込ませる
方法などがある)、(3)機器1が外部記憶装置インタ
フェース部16を備え、CD−ROMドライブやフレキ
シブル・ディスク・ドライブやICカード・ドライブな
どの外部記憶装置4からソフトウェアを読み込む方法な
どがある。
There are various forms of means 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 via the LAN 2 or not via the LAN 2) There is a method to connect directly to the Internet 3),
(2) The device 1 includes the communication interface unit 15 and
Method of downloading software from the software distribution server 5 on N2 (In this case, for example, a method of giving software to the software distribution server 5 from the software distribution server 6 or the like via the Internet 3 or reading software from a recording medium (3) The device 1 is provided with the external storage device interface section 16, and the software is read from the external storage device 4 such as a CD-ROM drive, a flexible disk drive or an IC card drive. is there.

【0024】もちろん、機器1は、上記に例示したよう
な外部からソフトウェアを取得する手段を、1つのみ持
っていてもよいし、複数持っていてもよい。
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, after the shipment, software is additionally installed on the home appliances connected to the network, and the software is used to provide a new service to the user, or a defect is found in the software. In this case, it is an attractive service for both the user and the vendor that the home appliance manufacturer or the software vendor distributes and installs the correction program via the network.

【0026】特に、家電機器は、利用者がネットワーク
セキュリティに対する知識を有しているとは限らず、さ
らに常にその機器のソフトウェアの状況を監視している
とは限らない。また、家電機器は、汎用の計算機に比べ
物理的な被害をもたらす影響も大きいと考えられる。例
えば、冷蔵庫の設計によっては、悪意のある利用者が冷
蔵庫のソフトウェアを誤作動させることで、内容物を腐
敗させる危険性がある。
In particular, for home electric appliances, the user does not always have knowledge of network security, and furthermore, the status of software of the appliance is not always monitored. In addition, it is considered that home appliances are more likely to cause physical damage than general-purpose computers. For example, depending on the refrigerator design, there is a risk that a malicious user may cause the refrigerator software to malfunction, thereby corrupting the contents.

【0027】このため、利用者がセキュリティやソフト
ウェアに対する専門的な知識必要とせず、不正な作成者
が作成したソフトウェアを排除して、正当なソフトウェ
アのみを適用させる仕組みを機器が備えるのが望まし
い。
Therefore, it is desirable that the device does not require security or specialized knowledge of software by the user, and that the device has a mechanism for excluding software created by an unauthorized creator and applying only valid software.

【0028】図2に、ソフトウェアをインストールして
実行する機能を有する機器1のハードウェア構成例を示
す。
FIG. 2 shows a hardware configuration example of the device 1 having a function of installing and executing software.

【0029】図2に示されるように、機器1は、ROM
11、フラッシュメモリ12、RAM13、所定の処理
を行うプロセッサ14を備えている。
As shown in FIG. 2, the device 1 is a ROM
11, a flash memory 12, a RAM 13, and a processor 14 that performs a predetermined process.

【0030】ROM11には、ソフトウェア配布元の公
開鍵と、ソフトウェアに付加されているシグネチャの検
証処理(プログラム)と、ソフトウェアのインストール
処理(プログラム)が作り込まれている。
In the ROM 11, a public key of a software distributor, a signature verification process (program) added to the software, and a software installation process (program) are built.

【0031】なお、当該機器1が複数のソフトウェア配
布元を対象とする場合には、公開鍵は、ソフトウェア配
布元に対応して複数備えればよい。なお、この場合に
は、公開鍵は、例えば、ソフトウェア配布元を識別する
ベンダーIDと対応付けてROM11に記憶し、ソフト
ウェアにはベンダーIDを付加して配布するものとすれ
ばよい。検証処理/インストール処理については、ソフ
トウェア配布元毎に用意する方法と、ソフトウェア配布
元にかかわらずに同一にする方法とがある。
When the device 1 is intended for a plurality of software distributors, a plurality of public keys may be provided corresponding to the software distributors. In this case, the public key may be stored in the ROM 11 in association with the vendor ID for identifying the software distributor, and the vendor ID may be added to the software for distribution. As for the verification process / installation process, there are a method prepared for each software distribution source and a method made the same regardless of the software distribution source.

【0032】また、当該機器1が複数のソフトウェア配
布元を対象とする場合に、ROM11を、ソフトウェア
配布元に対応してそれぞれ設ける構成も可能である。
When the device 1 is intended for a plurality of software distributors, the ROM 11 may be provided corresponding to each software distributor.

【0033】なお、検証処理プログラムとインストール
処理プログラムとは、別々に作成されていてもよいし、
一体化して作成されていてもよい。前者の場合には、検
証処理が実行された後に、インストール処理が実行され
る形態や、最初にインストール処理が起動され、インス
トール処理が検証処理をコールする形態など、種々の形
態が可能である。また、検証処理プログラムとインスト
ール処理プログラムの他に、それら処理全体の制御を司
る制御プログラムがさらにROM11に作り込まれてい
る形態も可能である。
The verification processing program and the installation processing program may be created separately,
It may be integrally formed. In the former case, various modes are possible, such as a mode in which the installation process is executed after the verification process is executed, or a mode 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 control program for controlling the entire processing may be further built in the ROM 11.

【0034】RAM13は、プロセッサ14が使用する
ワーキングメモリと、インストールする対象のプログラ
ムを一時的に保存するバッファとを含む。この様子を図
3に示す。なお、実際には、ワーキングメモリとバッフ
ァとは、同一のRAM上にあってもよいし、異なるRA
M上にあってもよい(ワーキングメモリの一部とバッフ
ァの一部が同一のRAM上にあるなど、他の形態でもよ
い)。
The RAM 13 includes a working memory used by the processor 14 and a buffer for temporarily storing a program to be installed. This state is shown in FIG. In practice, the working memory and the buffer may be on the same RAM or different RAs.
It may be on M (other forms such as part of the working memory and part of the buffer being on the same RAM).

【0035】フラッシュメモリ12は、RAM13のバ
ッファに一時的に保存されているソフトウェアのうち、
その正当性についての認証(シグネチャの検証)に成功
したもののみを、記憶するためのものである。すなわ
ち、ソフトウェア配布元により配布されるソフトウェア
は、その認証を経て、フラッシュメモリ12で保存す
る。
Of the software temporarily stored in the buffer of the RAM 13, the flash memory 12 is
It is for storing only those that have been successfully authenticated (verification of signature) for their validity. That is, the software distributed by the software distributor is authenticated and stored in the flash memory 12.

【0036】ここで、図4に、ROM11とフラッシュ
メモリ12とRAM13との相互間での書き込み権限の
関係を示す。フラッシュメモリ12は、ROM11内に
作り込まれたプログラムによってのみ、データを書き込
むことができる。また、ROM11の内容は、改竄でき
ないようになっている。したがって、シグネチャの検証
を通過することのできない正当性のないソフトウェアが
フラッシュメモリ12に保存されることはないので、フ
ラッシュメモリ12には、ソフトウェア配布元により配
布された正当なソフトウェアが保存されている、という
ことが保証される。
Here, FIG. 4 shows the relationship of 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 created in the ROM 11. Further, the contents of the ROM 11 cannot be tampered with. Therefore, since the unjustified software that cannot pass the signature verification is not stored in the flash memory 12, the flash memory 12 stores the legal software distributed by the software distributor. Is guaranteed.

【0037】一方、機器1は、図2に示されるように、
インストールするソフトウェアを入手するために、通信
インターフェース部15または外部記憶装置接続インタ
ーフェース部16の少なくとも一方を備えている。な
お、通信インターフェース部15が利用するネットワー
クは、例えば、無線ネットワークでもよいし、イーサネ
ット(登録商標)のような有線ネットワークでもよい。ま
た、外部記憶装置接続インターフェース部15は、CD
−ROMなどの記録媒体を接続し、それら外部記憶装置
とデータ交換可能な機能を備えるものである。
On the other hand, the device 1 is, as shown in FIG.
At least one of the communication interface unit 15 and the external storage device connection interface unit 16 is provided to obtain the 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). Further, the external storage device connection interface unit 15 is a CD
-A recording medium such as a ROM is connected, and a function of exchanging data with these external storage devices is provided.

【0038】なお、図2は、本実施形態を説明するため
に必要な部分のみ示したもので、実際には、図2に示さ
れた以外の種々の構成要素を備えて構わない。例えば、
家電機器では、当該家電機器の本来の機能を実現するた
めの構成要素が備わっている。
Note that FIG. 2 shows only the parts necessary for explaining the present embodiment, and in practice, various components other than those shown in FIG. 2 may be provided. For example,
The home electric appliance is provided with constituent elements for realizing the original function of the home electric appliance.

【0039】図5に、機器1のソフトウェア構成例を示
す。
FIG. 5 shows a software configuration example of the device 1.

【0040】図5に示されるように、機器1は、オペレ
ーティングシステム、アプリケーション、後述するタイ
マーを含む(必要に応じてミドルウェアが組み込まれる
場合がある)。なお、タイマーは、ハードウェアで構成
される場合もある。また、タイマーを備えない構成も可
能である。
As shown in FIG. 5, the device 1 includes an operating system, applications, and a timer described later (middleware may be incorporated if necessary). The timer may be configured by hardware. Also, a configuration without a timer is possible.

【0041】なお、本実施形態における、機器へのイン
ストール対象となるソフトウェアとは、機器を制御する
オペレーティングシステム、ミドルウェア、及びそれら
修正プログラム、機能追加プログラム、ユーザアプリケ
ーションなどを指す。
In the present embodiment, the software to be installed in the device refers to an operating system for controlling the device, middleware, and their modification programs, function addition programs, user applications and the like.

【0042】以下、図6を参照しながら、本実施形態に
ついてより詳しく説明する。
The present embodiment will be described in more detail below with reference to FIG.

【0043】ここでは、主に、ソフトウェア配布サーバ
からネットワークを経由して家電機器1へソフトウェア
をダウンロードし、シグネチャの検証を経た後に、ソフ
トウェアを上書きする場合を例にとって説明する。
Here, a case will be mainly described where the software is downloaded from the software distribution server to the home electric appliance 1 via the network, the signature is verified, and then the software is overwritten.

【0044】図7に、ソフトウェア取得時の手順の一例
を示す。すなわち、機器1は、例えば予め登録された
(1又は複数の)ソフトウェア配布サーバ(5または
6)から必要なソフトウェアをダウンロードし(ステッ
プS1)(図6の101参照)、RAM13のバッファ
131に一時的に保存しておく(ステップS2)(図6
の102参照)。なお、外部記憶装置インタフェース部
16による場合には、CD−ROMドライブにCD−R
OMを装着するなどして、ステップS1においてソフト
ウェアの読み込みを行う。
FIG. 7 shows an example of a procedure for acquiring software. That is, the device 1 downloads necessary software from, for example, a pre-registered (one or more) 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) (FIG. 6)
102). In the case of using the external storage device interface unit 16, the CD-R is loaded in the CD-ROM drive.
The software is read in step S1 by mounting the OM.

【0045】サーバ登録については、(i)機器出荷時
に機器製造ベンダーまたはソフトウェアの製造ベンダー
が規定してもよいし、(ii)出荷後に利用者が追加的に
規定してもよいし、(iii)(i)と(ii)を両方可能と
してもよい。ベンダーが規定したサーバ登録情報は、R
OM11内に書き込まれていてもよい。
Regarding server registration, (i) the device manufacturing vendor or software manufacturing vendor may specify at the time of device shipment, (ii) the user may additionally specify after shipping, or (iii) ) Both (i) and (ii) may be possible. The server registration information specified by the vendor is R
It may be written in the OM 11.

【0046】ダウンロードすべきソフトウェアの有無の
チェックについては、(i)機器1に、定期的にソフト
ウェア配布サーバに対して、新しいアップデートするソ
フトウェアなどが配布(公開)されているかチェックす
る機能を持たせることで、利用者が意識することなく、
自動的に最新のソフトウェアを機器1にインストールで
きるようにしてもよいし、(ii)利用者の要望に応じ
て、チェックする期間を変更したり、利用者が任意の時
間にチェックをさせることができるようにしてもよい
し、(iii)(i)と(ii)を両方可能としてもよい。
For checking whether or not there is software to be downloaded, (i) the device 1 is provided with a function of periodically checking whether or not new software to be updated is distributed (disclosed) to the software distribution server. Therefore, without the user being aware,
The latest software may be automatically installed in the device 1, or (ii) the checking period can be changed or the user can check at any time according to the user's request. Alternatively, both (iii), (i) and (ii) may be possible.

【0047】ダウンロードにあたっては、機器1とソフ
トウェア配布サーバとの間で所定の認証/鍵交換手続き
を行うことによって、セキュアな通信経路上でのデータ
交換を行うようにしてもよい。
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】なお、詳しくは後述する処理のために、こ
こでは、ダウンロード等したソフトウェアをRAM13
のバッファ131に保存するにあたっては、該ソフトウ
ェアをRAM13に保存した日時を該ソフトウェアに対
応付けて保存しておくものとする。また、ソフトウェア
をRAM13のバッファ131からフラッシュメモリ1
2に保存するにあたっては、該日時(該ソフトウェアを
RAM13に保存した日時)を該ソフトウェアに対応付
けて保存しておくものとする。
For the details of the processing to be described later, the downloaded software is stored in the RAM 13 here.
When the software is stored in the buffer 131, the date and time when the software is stored in the RAM 13 is stored in association with the software. In addition, the software is loaded from the buffer 131 of the RAM 13 to the flash memory 1
In storing the data in 2, the date and time (the date and time when the software is stored in the RAM 13) are stored in association with the software.

【0049】さて、ここで、機器1がソフトウェア配布
サーバ(5または6)に接続して目的のソフトウェアを
ダウンロードする際、ネットワーク上の悪意ある利用者
が、サーバのIPアドレスを詐称するなどして偽のサー
バに誘導し、トロイの木馬やウィルスを含む偽のソフト
ウェアを機器1にダウンロードさせたり、ソフトウェア
配布サーバ(5または6)に侵入したりしてサーバの内
容を書き換えたりすることで偽のソフトウェアを配布す
る危険性がある。
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 misrepresents the IP address of the server. Fake it by fake it to a fake server and letting it download fake software including Trojan horses and viruses to the device 1 or intruding into the software distribution server (5 or 6) and rewriting the contents of the server. There is a risk of distributing the software.

【0050】したがって、必ずしもソフトウェア配布サ
ーバ(5または6)からダウンロードしたソフトウェア
が正当であるとは限らないため、本実施形態では、ソフ
トウェアが悪意のある者によって作成された偽のソフト
ウェアではなく、正当なソフトウェアであるか検査し、
正当なものと偽のものとを区別し、正当なもののみをイ
ンストールする機能を機器1に設けている。また、現在
利用しているソフトウェアを改竄するなどによって上記
の正当なもののみをインストールする機能自体を阻害す
る、ということができないようしている。
Therefore, since the software downloaded from the software distribution server (5 or 6) is not always valid, in the present embodiment, the software is not fake software created by a malicious person and is legitimate. Check that it is the correct software,
The device 1 is provided with a function of distinguishing between legitimate and fake ones and installing only legitimate ones. Moreover, it is impossible to prevent the function itself of installing only the above-mentioned legitimate software from being disturbed by falsifying the software currently used.

【0051】図8に、その検証処理/インストール処理
の手順の一例を示す。
FIG. 8 shows an example of the procedure of the verification process / installation process.

【0052】前記のようにソフトウェアがダウンロード
されRAM13のバッファ131に一時的に保存される
一方で、図8の処理が行われる。
While the software is downloaded and temporarily stored in the buffer 131 of the RAM 13 as described above, the processing of FIG. 8 is performed.

【0053】すなわち、タイマー(図6の17参照)
が、一定時間の経過ごと(あるいは、一定の値をカウン
トするごと)に作動し、まず、プロセッサ14やRAM
13のワーキングメモリ132のリセットを行う(ステ
ップS11)(図6の103参照)。
That is, a timer (see 17 in FIG. 6)
Operates every time a certain time elapses (or every time a certain value is counted).
The working memory 132 of 13 is reset (step S11) (see 103 in FIG. 6).

【0054】このタイマーは、オペレーティングシステ
ムやミドルウェア、アプリケーションの処理とは独立
し、それらソフトウェアからは制御不可能で時間管理を
する(例えば、ROM11に蓄えられた値を元に一定周
期で値を加算し続ける)。一定時間が経過すると(ある
いは、カウントが一定の値を越えると)、プロセッサ
(のレジスタ等)と、一時的にワーキングメモリに蓄え
られた現在のRAMの処理内容とを、無条件に強制的に
クリアする。クリアとは、例えば初期化処理のような、
それまでの処理状態を保存せずに値をリセットする処理
を指す。
This timer is independent of the processing of the operating system, middleware, and applications, and cannot be controlled by those software, and manages the time (for example, the value is added in a constant cycle based on the value stored in the ROM 11). Continue to). When a certain time has passed (or when the count exceeds a certain value), the processor (registers, etc.) and the current contents of RAM processing temporarily stored in the working memory are unconditionally forced. clear. Clear means, for example, initialization processing,
It refers to the process of resetting the value without saving the processing state up to that point.

【0055】このタイマーは、値を加算し(もしくはメ
モリ範囲外の値まで加算された場合にはリセットし)、
かつ減算することのできない機能を有する。該タイマー
に対してソフトウェアがリセットをスキップすることで
無効にしたり、タイマーの値を変更したりすることでリ
セットの時間を遅延させたりすることはできない。
This timer adds the value (or resets when the value outside the memory range is added),
Moreover, it has a function that cannot be subtracted. The software cannot disable the timer by skipping the reset, and cannot delay the reset time by changing the value of the timer.

【0056】なお、動作中のソフトウェアが強制的なリ
セットが原因でデータを損失・破壊してしまうことを防
ぐために、ソフトウェアがタイマーに対してリセットを
繰り上げる要求を発行してもよい。例えば、現在実行中
のプログラムが次の処理単位を実行する前に、次のリセ
ットまでの残り時間を調べ、もしもその時間が短かった
場合には、(リセットに備えて)通常の処理手順は短時
間でリセット可能な状態になるよう処理を行うようにし
てもよい(この場合、次の処理単位は行わずに、短時間
で済む処理を行うことによって、該処理がリセット時間
前に完了した場合には、リセットを繰り上げて実行する
ようにすることも可能である)。
Note that the software may issue a request to advance the reset to the timer in order to prevent the software in operation from losing or destroying data due to the forced reset. For example, before the currently executing program executes the next processing unit, check the remaining time until the next reset, and if that time is short, the normal processing procedure (in preparation for reset) is short. The processing may be performed so that it can be reset in time (in this case, by performing processing that can be completed in a short time without performing the next processing unit, the processing is completed before the reset time). It is also possible to advance the reset and execute it).

【0057】なお、機器1のコアの部分は、上記のリセ
ットにかかわらずに、稼働し続けるものとしてもよい。
例えば、インターネット機能を有する冷蔵庫において、
インターネット機能の部分は、上記のリセットによって
初期化されるが、冷蔵庫の本来の機能の部分は、上記の
リセットにかかわらずに、稼働し続けるようにしてもよ
い。
The core portion of the device 1 may be kept operating regardless of the above reset.
For example, in a refrigerator with Internet function,
The internet function part is initialized by the above reset, but the original function part of the refrigerator may be kept operating regardless of the reset.

【0058】さて、リセット処理を行った後、タイマー
は、ROM11に処理を移す(図6の104参照)。
After performing the reset process, the timer shifts the process to the ROM 11 (see 104 in FIG. 6).

【0059】ROM11は、RAM12の特定のバッフ
ァ131をチェックする。
The ROM 11 checks the specific buffer 131 of the RAM 12.

【0060】RAM13のバッファ131にソフトウェ
アのイメージが存在する場合(ステップS12)、その
ソフトウェアのシグネチャと、ROM11に記憶された
(該ソフトウェアの配布元の)公開鍵1101とを用い
て、改竄検証処理(図6の105,106,1102参
照)を行う(ステップS13)。
If a software image is present in the buffer 131 of the RAM 13 (step S12), a falsification verification process is performed using the signature of the software and the public key 1101 (from which the software is distributed) stored in the ROM 11. (Refer to 105, 106, 1102 in FIG. 6) (step S13).

【0061】例えば、シグネチャが、当該ソフトウェア
に所定のハッシュ関数を適用して得たハッシュ値を、該
ソフトウェアの配布元の秘密鍵で暗号化したものである
場合に、該シグネチャをROM11に記憶された公開鍵
で復号して元のハッシュ値を求めるとともに、当該ソフ
トウェアに同一の所定のハッシュ関数を適用してハッシ
ュ値を求め、両者が一致したならば、シグネチャの検証
(ソフトウェアの認証)に成功したものとする。もちろ
ん、検証処理については種々の方法が知られており、ど
のような方法を用いることも可能である。
For example, when the signature is a hash value obtained by applying a predetermined hash function to the software, the signature is stored in the ROM 11 when it is encrypted with the private key of the distribution source of the software. The original hash value is obtained by decrypting with the public key, and the same predetermined hash function is applied to the software to obtain the hash value. If the two match, the signature verification (software authentication) succeeds. It is assumed that Of course, various methods are known for the verification process, and any method can be used.

【0062】ここで、改竄検証の結果が偽である場合
(ステップS14)には、所定のエラー処理を行う(ス
テップS18)。
If the result of the falsification verification is false (step S14), a predetermined error process is performed (step S18).

【0063】改竄検証に失敗する原因として、例えば、
「ネットワークの異常によりファイルが正常に転送され
なかった」、「ファイルが正当な作成者によって作成さ
れたものではない」、などが考えられる。ファイルが正
当な作成者によって作成されたものではない場合、悪意
のある利用者が配布した偽のソフトウェアである可能性
がある。そこで、例えば、エラー処理に、機器1からソ
フトウェアの配布元へエラーの情報をレポートする機能
を備えれば、ソフトウェア配布元が対策や調査を行う上
での資料として利用することが可能となる。
As a cause of failure in falsification verification, for example,
Possible causes include "the file was not transferred normally due to a network error" and "the file was not created by a legitimate creator". If the file was not created by a legitimate author, it may be fake software distributed by a malicious user. Therefore, for example, if the error processing is provided with a function of reporting error information from the device 1 to the software distribution source, the software distribution source can be used as a material for taking countermeasures and investigations.

【0064】なお、検証に失敗したソフトウェアについ
ては、エラー処理においてRAMのバッファから直ちに
消去する方法、エラー処理においては消去しない(例え
ば、対策や調査等のための保存しておく)方法などがあ
る。
As for software that has failed verification, there are a method of immediately erasing it from the RAM buffer in error processing, a method of not erasing it in error processing (for example, saving it for countermeasures, investigations, etc.). .

【0065】他方、改竄検証の結果が真である場合(ス
テップS14)には、この手順例では、フラッシュ12
に保存されている現在のソフトウェアに対応する日時
(図6の107−1参照)と、RAM13のバッファ1
31上に記憶されたソフトウェアのイメージに対応する
日時(図6の107−2参照)とを比較する処理(図6
の1103参照)を行う(ステップS15)。
On the other hand, if the result of the tampering verification is true (step S14), the flash 12 is used in this procedure example.
The date and time (see 107-1 in FIG. 6) corresponding to the current software stored in the RAM 1 and the buffer 1 of the RAM 13
A process of comparing with the date and time (see 107-2 of FIG. 6) corresponding to the image of the software stored on 31 (see FIG. 6).
1103) is performed (step S15).

【0066】そして、RAM13のバッファ131上に
記憶されたソフトウェアのイメージに対応する日時が、
フラッシュ12に保存されている現在のソフトウェアに
対応する日時より新しい場合(ステップS16)は、フ
ラッシュメモリ12にRAM13のバッファ131のイ
メージをコピーし、以前の内容を上書きする(ステップ
S17)(図6の108参照)。
Then, the date and time corresponding to the image of the software stored in the buffer 131 of the RAM 13 is
If it is newer than the date and time corresponding to the current software stored in the flash 12 (step S16), the image of the buffer 131 of the RAM 13 is copied to the flash memory 12 and the previous contents are overwritten (step S17) (FIG. 6). 108).

【0067】上記の比較処理の結果、RAM13のバッ
ファ131上に記憶されたソフトウェアのイメージに対
応する日時が、フラッシュ12に保存されている現在の
ソフトウェアに対応する日時より古い場合(ステップS
16)は、既にそのソフトウェアがインストールされて
いると考えられるので(上記の検証に失敗したソフトウ
ェアをエラー処理においては消去しない場合には、検証
に失敗したためにインストールしないことが決定された
ソフトウェアであることもあり得る)、フラッシュ12
への書き込みは行わない。
As a result of the above comparison processing, when the date and time corresponding to the image of the software stored in 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 S
16) is software that is considered to have already been installed (if the software that has failed the above verification is not erased in the error processing, it is the software that has been determined not to be installed because the verification failed. Flash 12
Is not written to.

【0068】なお、ステップS15においてフラッシュ
12に当該ソフトウェアが保存されていないことがあり
得る構成の場合において、フラッシュ12に当該ソフト
ウェアが保存されていなければ、ステップS16では、
例えば、RAM13のバッファ131上に記憶されたソ
フトウェアのイメージに対応する日時が、フラッシュ1
2に保存されている現在のソフトウェアに対応する日時
より新しいものとすればよい。また、ステップS15に
おいてフラッシュ12に当該ソフトウェアが保存されて
いないことがあり得ない構成の場合において、フラッシ
ュ12に当該ソフトウェアが保存されていなければ、例
えば、エラー処理を行えばよい。
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, in step S16,
For example, the date and time corresponding to the image of the software stored in the buffer 131 of the RAM 13 is the flash 1
It may be newer than the date and time corresponding to the current software stored in 2. 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】なお、ステップS17において、フラッシ
ュメモリ12にRAM13のバッファ113に記憶され
たソフトウェアを書き込んだ際に、RAM13のバッフ
ァ113から当該ソフトウェアを消去するようにしても
よいし、その代わりにまたはそれとともに、ステップS
16においてNoの場合に、RAM13のバッファ11
3から当該ソフトウェアを消去するようにしてもよい。
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 in addition to that. With step S
In the case of No in 16, the buffer 11 of the RAM 13
The software may be deleted from item 3.

【0070】しかして、(ステップS17でRAM13
のバッファ113からフラッシュメモリ12にソフトウ
ェアを書き込んだ場合、ステップS16においてNoの
場合、ステップS18でエラー処理を行った場合、また
はステップS12においてNoの場合(RAM13のバ
ッファ131にソフトウェアのイメージがない場合)
に、)ROM11は、フラッシュメモリ12に処理を移
動させ、フラッシュメモリ12に書き込まれたイメージ
に制御を移し、当該イメージはシステムの起動処理(図
6の109参照)を実行する。
Then, (in step S17, the RAM 13
When the software is written from the buffer 113 to the flash memory 12, No in step S16, error processing is performed in step S18, or No in step S12 (when there is no image of software in the buffer 131 of the RAM 13). )
The ROM 11 moves the process to the flash memory 12 and transfers control to the image written in the flash memory 12, and the image executes the system boot process (see 109 in FIG. 6).

【0071】ここで、本実施形態のメモリアドレス制御
機能について説明する。
Now, the memory address control function of this embodiment will be described.

【0072】かりにRAM13のワーキングメモリ13
2上で動作するソフトウェアが改竄されてしまったとす
る。しかし、上記のように、タイマーによるリセット時
にRAM13のワーキングメモリ132はリセットされ
る。従って、この改竄されたソフトウェアがリセット後
も存続するには、フラッシュメモリ12にコピーする必
要がある。しかしながら、フラッシュメモリ12につい
ては、ROM11からの書き換えのみを可能とするため
(図4参照)、改竄されたRAM13のイメージがフラ
ッシュ12を書き換えることはできない。このメモリア
ドレス制御手段を用いることで、改竄されたRAM13
のイメージがリセット後も存在し続けることはない。
In addition, the working memory 13 of the RAM 13
Suppose that the software running on 2 has been tampered with. However, as described above, the working memory 132 of the RAM 13 is reset when reset by the timer. Therefore, in order for this falsified software to survive the reset, it is necessary to copy it to the flash memory 12. However, since the flash memory 12 can only be rewritten from the ROM 11 (see FIG. 4), the image of the falsified RAM 13 cannot rewrite the flash 12. By using this memory address control means, the tampered RAM 13
Image does not continue to exist after reset.

【0073】タイマーによる強制的なリセット手段と、
メモリアドレス制御手段により、RAM13のワーキン
グメモリ132で動作中のソフトウェアがかりに悪意の
ある利用者によって改竄されてしまった場合でも、次回
の起動時にフラッシュメモリ12に保存された正当なソ
フトウェアに復旧することが可能となる。
Forced resetting means by a timer,
Even if the malicious software is tampered with by the operating software in the working memory 132 of the RAM 13, the memory address control means restores the legitimate software stored in the flash memory 12 at the next startup. Is possible.

【0074】以上のように、本実施形態によれば、イン
ストール対象のソフトウェアを、正当な作成者によって
作成されたことが保証されたものと、それ以外のもの
(例えば、偽造されたもの)とに区別し、前者のみを選
別しインストールすることが可能となる。また、かりに
ソフトウェアが改竄されたとしても、定期的にシステム
をリセットすることによって、現在のワーキングメモリ
に存在する改竄されたイメージが存在し続けることを阻
止できる。従って、機器は常に正当な作成者が作成した
ソフトウェアを利用することが保証され、かつ正当な作
成者が作成したソフトウェアのみをインストールするこ
とができる。
As described above, according to this embodiment, the software to be installed is guaranteed to have been created by a legitimate creator, and the other software (eg, forged). It is possible to distinguish and install only the former. In addition, even if the software has been tampered with, by periodically resetting the system, it is possible to prevent the tampered image existing in the current working memory from continuing to exist. Therefore, the device is always guaranteed to use the software created by the authorized creator, and only the software created by the authorized creator can be installed.

【0075】なお、図8の手順は一例であり、種々変形
して実施することが可能である。例えば、上記処理で
は、まず、シグネチャによる検証処理を行い、これに成
功した場合に、RAMのバッファ上に保存されたソフト
ウェアとフラッシュメモリに保存されたソフトウェアと
の日時を比較する日時チェックを行い、さらにこれに成
功したならば、ダウンロードされたソフトウェアが正当
かつインストールすべきものであると判断して、フラッ
シュメモリにRAMのバッファのイメージを書き込んだ
が、逆に、日時チェックを行い、これに成功した場合
に、検証処理を行い、さらにこれに成功したならば、フ
ラッシュメモリに書き込むようにしてもよい。また、検
証処理と日時チェックを並列的に行い、それらの結果が
両方とも真である場合に、フラッシュメモリに書き込む
ようにし、少なくとも一方の結果が偽であれば、書き込
まないようにしてもよい。
The procedure of FIG. 8 is an example, and various modifications can be implemented. For example, in the above process, first, a signature verification process is performed, and if this is successful, a date and time check is performed to compare the date and time between 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 legitimate and should be installed, and the image of the RAM buffer is written to the flash memory. Conversely, if the date and time check is performed and this succeeds, Then, the verification process is performed, and if the verification process is successful, the verification process may be written in the flash memory. Alternatively, the verification process and the date / time check may be performed in parallel, and if both of the results are true, they may be written in the flash memory, and if at least one result is false, they may not be written.

【0076】また、これまでの説明では、同一性を有す
るソフトウェアに対して「上書きするソフトウェア」を
想定しているが、メインとなるソフトウェアに対してソ
フトウェアを追加する場合には、例えば図8の手順にお
いて、ステップS15とステップS16を省き、ステッ
プS17の上書き処理を組み込み処理に修正して、ステ
ップS14で検証に成功した場合にステップS17で該
当ソフトウェアを組み込むようにすればよい。また、そ
の時々で上書きするか追加するかが異なってくる場合に
は、例えば図8の手順においては、対象としているソフ
トウェアを上書きすべきか追加すべきかを判断し、前者
の場合には、日時チェックを行い、(検証処理に)日時
チェックの結果が真のときに、フラッシュメモリにRA
Mのバッファのソフトウェアを上書きし、後者の場合に
は、日時チェックを行わずに、フラッシュメモリのソフ
トウェアにRAMのバッファのソフトウェアを追加する
ようにしてもよい。なお、対象としているソフトウェア
を上書きすべきか追加すべきかについては、例えば、各
ソフトウェアに固有の識別情報を持たせ、RAMのバッ
ファ内のソフトウェアの持つ識別情報と同一の識別情報
を持つものが、フラッシュメモリに保存されていれば、
上書きすると判断し、保存されていなければ、追加する
と判断するようにしてもよい。また、例えば、各ソフト
ウェアに、上書きすべきか追加すべきかを示す情報を付
加する方法もある。
Further, in the above description, "overwriting software" is assumed for the software having the sameness. However, when the software is added to the main software, for example, as shown in FIG. In the procedure, steps S15 and S16 may be omitted, the overwriting process of step S17 may be modified to an incorporation process, and if the verification is successful in step S14, the corresponding software may be incorporated in step S17. If it is different whether to overwrite or add at each time, for example, in the procedure of FIG. 8, it is determined whether the target software should be overwritten or added, and in the former case, the date and time check is performed. When the result of the date and time check is true (in the verification process), the RA is written to the flash memory.
The software of the buffer of M may be overwritten, and in the latter case, the software of the buffer of RAM may be added to the software of the flash memory without performing the date and time check. As to whether the target software should be overwritten or added, for example, the one having unique identification information for each software and having the same identification information as the identification information of the software in the RAM buffer is stored in the flash memory. If stored in memory,
It may be determined to overwrite, and if not saved, it may be determined to add. Also, for example, there is a method of adding information indicating whether to overwrite or add to each software.

【0077】また、図8のステップS12で複数種類の
ソフトウェア(各ソフトウェアは、例えば、ソフトウェ
アに固有の識別情報によって識別される)がRAMのバ
ッファに存在し得る場合には、検証/インストールを、
RAMのバッファに存在する各々のソフトウェアに対し
て行えばよい。
If a plurality of types of software (each software is identified by, for example, identification information unique to the software) can be present in the RAM buffer in step S12 of FIG. 8, verification / installation is performed.
It may be performed for each software existing in the RAM buffer.

【0078】また、図8のステップS19のフラッシュ
メモリ内のソフトウェアの起動にあたって、起動できる
ソフトウェアがフラッシュメモリ内に複数存在し得る場
合には、予め定められた選択基準に従って、起動すべき
ものを選択して、起動すればよい。この選択基準として
は、例えば、予めROMに設定された識別情報を持つソ
フトウェアを選択する方法、予めユーザが指定したソフ
トウェアを選択する方法、リセット時に起動中であった
ものを選択する方法など、種々の方法がある。
Further, in starting the software in the flash memory in step S19 of FIG. 8, when there can be a plurality of software that can be started in the flash memory, the one to be started is selected according to a predetermined selection criterion. And start it up. There are various selection criteria, for example, a method of selecting software having identification information set in ROM in advance, a method of selecting software designated by a user in advance, a method of selecting software that has been activated at reset, and the like. There is a method.

【0079】また、図8の手順においては、ステップS
19のフラッシュメモリ内のソフトウェアの起動を行わ
ず、異なる契機によって起動を行う方法もある。
Further, in the procedure of FIG. 8, step S
There is also a method in which the software in the flash memory 19 is not activated but is activated at different triggers.

【0080】また、図8の手順においては、ステップS
11のプロセッサやRAMのワーキングメモリのリセッ
トを行わず、異なる契機によって行う方法もある。
Further, in the procedure of FIG. 8, step S
There is also a method of resetting the working memory of the processor 11 and the RAM of 11 and performing them with different triggers.

【0081】また、これまでタイマーの起動時にソフト
ウェアが自動的にインストールされるような方法を述べ
てきたが、自動インストールの代わりにまたはこれとと
もに、利用者が任意の時間にソフトウェアをインストー
ルできるようにすることも可能である。このようにする
ことによって、例えば、ソフトウェアの重要な欠陥が発
見された場合に、利用者の希望に応じて修正プログラム
をインストールすることができる。
Although the method in which the software is automatically installed when the timer is started has been described so far, the user can install the software at an arbitrary time instead of or together with the automatic installation. It is also possible to do so. By doing so, for example, when an important defect of software is discovered, the correction program can be installed according to the user's request.

【0082】利用者が任意の時間にインストールする機
能については、自動インストールと併用する場合には、
例えば、前述したタイマーのリセットを繰り上げて実行
する機能があれば、この機能を利用して実現することも
できる。タイマーのリセットを繰り上げる命令を実行す
るにあたっては、機器1に物理的なスイッチを備えても
よいし、赤外線リモコンなどを通じて機器1に要求を送
信するようにしてもよい。また、ネットワーク経由で任
意のコマンドを送信することも可能である。この場合、
タイマーがリセット要求を受けると、図8の手順と同様
に、プロセッサの現在の処理内容とRAMのワーキング
メモリに保存された情報をリセットし、ROMに処理内
容を移し、ソフトウェアの改竄検証及びインストールを
開始する。
Regarding the function to be installed by the user at any time, when used in combination with automatic installation,
For example, if there is a function of advancing and executing the resetting of the timer described above, this function can be used to realize it. To execute the instruction to advance the reset of the timer, the device 1 may be provided with a physical switch, or the 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 the reset request, the current processing content of the processor and the information stored in the working memory of the RAM are reset, the processing content is transferred to the ROM, and the falsification verification and installation of the software are performed as in the procedure of FIG. Start.

【0083】自動インストール機能を備えずに、利用者
が任意の時間にソフトウェアをインストールする機能を
備える場合には、ユーザの入力を契機として、リセッ
ト、検証、インストールの処理を行えばよい(この場合
に、リセットは行わない形態等も可能である)。
If the user is provided with the function of installing software at an arbitrary time without the automatic installation function, the reset, verification, and installation processes may be carried out triggered by the user's input (in this case, However, it is also possible to do not reset.

【0084】また、これまでの説明では、ダウンロード
等したソフトウェアをRAMのバッファに保存するにあ
たって、該ソフトウェアをRAMに保存した日時を該ソ
フトウェアに対応付けて保存しておき、ソフトウェアを
RAMのバッファからフラッシュメモリに保存するにあ
たっては、該日時(該ソフトウェアをRAMに保存した
日時)を該ソフトウェアに対応付けて保存しておき、両
者の日時を比較した結果に応じて、ソフトウェアをRA
Mのバッファからフラッシュメモリに保存するか否かを
決定したが、その代わりに、例えば、ソフトウェアにバ
ージョン情報等を付加しておき、両バージョン情報の新
旧の比較結果に応じて、ソフトウェアをRAMのバッフ
ァからフラッシュメモリに保存するか否かを決定するよ
うにしてもよい。また、その他の方法も可能である。
Further, in the above description, when the downloaded software is stored in the buffer of the RAM, the date and time when the software is stored in the RAM is stored in association with the software, and the software is stored in the buffer of the RAM. When storing the data in the flash memory, the date and time (the date and time when the software is stored in the RAM) is stored in association with the software, and the software is RA-stored according to the result of comparing the both dates and times.
It was decided whether to save from the M buffer to the flash memory. Instead, for example, version information is added to the software, and the software is stored in the RAM according to the comparison result of the old and new version information. It may be possible to determine whether to save from the buffer to the flash memory. Also, other methods are possible.

【0085】また、これまでは、ソフトウェアには、そ
の配布元の秘密鍵で暗号化されたシグネチャが付加さ
れ、機器1のROM11には該ソフトウェア配布元の公
開鍵が作り込まれているものとして説明したが、公開鍵
暗号方式ではなく、他の暗号方式を採用することも可能
である。例えば、ソフトウェア配布元と機器1とで同一
の共有鍵を用いる方法を採用することも可能である。
Up to now, it has been assumed that the software has the signature encrypted with the secret key of the distributor and the public key of the software distributor is built in the ROM 11 of the device 1. As described above, it is possible to adopt another encryption method instead of the public key encryption method. For example, a method of using the same shared key for the software distributor and the device 1 can be adopted.

【0086】また、これまでネットワークを経由したソ
フトウェアの配布とインストールを中心に説明してきた
が、前述したように、機器または利用者がネットワーク
経由でソフトウェアを入手する必要があるわけではな
い。機器が通信インターフェースを持っていない場合
や、機器がネットワークに接続されていない場合は、フ
ロッピー(登録商標)ディスクなどの携帯可能で書き込み
可能なメディアや、CD−ROMなどのような携帯可能
で書き込み不可能なメディアからソフトウェアをアップ
デートすることが考えられる。もちろん、ネットワーク
経由でのダウンロードの場合と同様に、記憶媒体となる
メディアは必ずしも正当な作成者が作成したソフトウェ
アが記録されているという保証はないため、一旦RAM
のバッファに保存した後にフラッシュメモリにインスト
ールすることで適用可能である。
Further, the distribution and installation of the software via the network have been mainly described so far, but as described above, the device or the user does not need to obtain the software via the network. If the device does not have a communication interface, or if the device is not connected to a network, then portable and writable media such as floppy disks, or portable and writable media such as CD-ROM. It is possible to update the software from an impossible medium. Of course, as in the case of downloading via a network, the storage medium does not always have the guarantee that software created by a legitimate creator is recorded.
It can be applied by saving it in the buffer of and then installing it in the flash memory.

【0087】また、前述したように、本発明は、家電機
器に限らず、汎用の計算機や、携帯電話、PDAなどの
機器に対しても適用可能である。特に、携帯電話やPD
Aは、メモリの容量に制限があるため、一度に大量のア
プリケーションをインストールすることが困難である。
また、携帯電話のサービスやインターネット接続サービ
スを利用してインターネット経由でアプリケーションを
ダウンロードし、インストールする際に、本発明が適用
可能である。
Further, as described above, the present invention is applicable not only to home electric appliances but also to general-purpose computers, mobile phones, PDAs and other such devices. Especially mobile phones and PDs
Since A has a limited memory capacity, it is difficult to install a large number of applications at once.
Further, the present invention can be applied when an application is downloaded and installed via the Internet using a mobile phone service or an Internet connection service.

【0088】なお、この発明の実施の形態で例示した構
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。また、この
発明の実施の形態で例示した各種構成部分についての各
種バリエーションは、適宜組み合わせて実施することが
可能である。また、この発明の実施の形態は、個別装置
としての発明、関連を持つ2以上の装置についての発
明、システム全体としての発明、個別装置内部の構成部
分についての発明、またはそれらに対応する方法の発明
等、種々の観点、段階、概念またはカテゴリに係る発明
を包含・内在するものである。従って、この発明の実施
の形態に開示した内容からは、例示した構成に限定され
ることなく発明を抽出することができるものである。
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 configuration or illustrated. Other configurations that are obtained by omitting a part of the configuration, adding another function or element to the exemplified configuration, or combining them are possible. Also, another configuration logically equivalent to the exemplified configuration,
Other configurations including a portion logically equivalent to the exemplified configuration, another configuration logically equivalent to the main part of the exemplified configuration, and the like are possible. Further, another configuration that achieves the same or similar purpose as the exemplified configuration, another configuration that achieves the same or similar effect as the exemplified configuration, and the like are possible. Further, various variations of the various constituent parts illustrated in the embodiments of the present invention can be implemented in an appropriate combination. Further, the embodiments of the present invention include an invention as an individual device, an invention as to two or more related devices, an invention as an entire system, an invention as to a component inside an individual device, or a method corresponding thereto. It is intended to encompass and include inventions related to various viewpoints, stages, concepts or categories such as inventions. Therefore, the invention disclosed in the embodiments of the present invention can be extracted without being limited to the exemplified configurations.

【0089】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
The present invention is not limited to the above-described embodiments, but can be implemented with various modifications within the technical scope thereof.

【0090】[0090]

【発明の効果】本発明によれば、正当でないソフトウェ
アのインストールを阻止することができる。
According to the present invention, it is possible to prevent the installation of unauthorized software.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施形態に係るシステムの全体構成
例を示す図
FIG. 1 is a diagram showing an example of the overall configuration of a system according to an embodiment of the present invention.

【図2】同実施形態に係る機器のハードウェア構成例を
示す図
FIG. 2 is a diagram showing a hardware configuration example of a device according to the embodiment.

【図3】同実施形態に係る機器のRAMの構成例を示す
FIG. 3 is a diagram showing a configuration example of a RAM of the device according to the embodiment.

【図4】同実施形態に係る機器のROMとフラッシュメ
モリとRAMとの相互間での書き込み権限の関係を示す
FIG. 4 is a diagram showing a relationship of write authority among a ROM, a flash memory, and a RAM of the device according to the embodiment.

【図5】同実施形態に係る機器のソフトウェア構成例を
示す図
FIG. 5 is a diagram showing a software configuration example of a device according to the embodiment.

【図6】同実施形態に係る機器内でのデータの流れ及び
制御について説明するための図
FIG. 6 is a diagram for explaining a data flow and control in the device according to the embodiment.

【図7】同実施形態に係る機器のソフトウェア取得時の
手順の一例を示すフローチャート
FIG. 7 is a flowchart showing an example of a procedure for acquiring software of the device according to the embodiment.

【図8】同実施形態に係る機器の認証処理/インストー
ル処理の手順の一例を示すフローチャート
FIG. 8 is a flowchart showing an example of a procedure of device authentication processing / installation processing according to the embodiment.

【符号の説明】[Explanation of symbols]

1…機器 2…LAN 3…インターネット 4…外部記憶装置 5,6…ソフトウェア配布サーバ 11…ROM 12…フラッシュメモリ 13…RAM 14…プロセッサ 15…通信インターフェース部 16…外部記憶装置接続インターフェース部 17…タイマー 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 section 16 ... External storage device connection interface section 17 ... Timer

フロントページの続き Fターム(参考) 5B017 AA02 BA02 BA07 BA09 CA15 5B076 AC01 AC05 AC10 BA05 BB04 BB06 BB13 FA13 FA20 FB11Continued front page    F-term (reference) 5B017 AA02 BA02 BA07 BA09 CA15                 5B076 AC01 AC05 AC10 BA05 BB04                       BB06 BB13 FA13 FA20 FB11

Claims (20)

【特許請求の範囲】[Claims] 【請求項1】外部からソフトウェアをインストールして
実行する機能を有するソフトウェア処理装置において、 ソフトウェアを実行するためのプロセッサと、 実行すべきソフトウェアを保存するためのフラッシュメ
モリと、 外部から入力された、ソフトウェアと、該ソフトウェア
の正当性の検証のための、第1の鍵で暗号化されたシグ
ネチャとを、一時的に保持するためのバッファと、 前記第1の鍵に一意に対応する第2の鍵と、前記バッフ
ァに一時的に保持されている前記ソフトウェアに対する
シグネチャと該第2の鍵とに基づいて該ソフトウェアの
正当性を検証するための第1の処理のプログラムコー
ド、該検証によって正当性が確認された前記ソフトウェ
アを前記バッファから前記フラッシュメモリに保存する
ための第2の処理のプログラムコードとを書き込んだR
OMとを備えたことを特徴とするソフトウェア処理装
置。
1. A software processing device having a function of installing and executing software from the outside, a processor for executing the software, a flash memory for storing the software to be executed, and an external input. A buffer for temporarily holding software and a signature encrypted with the first key for verifying the authenticity of the software, and a second buffer uniquely corresponding to the first key. A program code of a first process for verifying the correctness of the software based on the key, the signature for the software temporarily held in the buffer, and the second key, and the correctness by the verification Of the second process for saving the identified software from the buffer to the flash memory. R with the program code written
A software processing device comprising: an OM.
【請求項2】前記フラッシュメモリは、前記ROM内の
前記第2の処理のプログラムを実行することによっての
み、データ書き込み可能であることを特徴とする請求項
1に記載のソフトウェア処理装置。
2. The software processing device according to claim 1, wherein the flash memory can write data only by executing a program of the second processing in the ROM.
【請求項3】前記第2の処理は、前記バッファに一時的
に保存されている前記ソフトウェアを前記フラッシュメ
モリに保存されているソフトウェアに対して上書きする
のに先だって、前記バッファに一時的に保存されている
前記ソフトウェアと、前記フラッシュメモリに保存され
ている前記ソフトウェアとの新旧を比較し、前記バッフ
ァに一時的に保存されている前記ソフトウェアの方が新
しいと判断された場合にのみ、前記上書きを行うことを
特徴とする請求項1に記載のソフトウェア処理装置。
3. The second process temporarily stores the software in the buffer before overwriting the software temporarily stored in the buffer with respect to the software stored in the flash memory. The old version of the software stored in the flash memory is compared with the old version of the software stored in the flash memory, and the overwriting is performed only when the software temporarily stored in the buffer is determined to be newer. The software processing device according to claim 1, wherein
【請求項4】前記第2の処理は、前記ソフトウェアに付
加されている日時情報に基づいて新旧の比較を行うこと
を特徴とする請求項3に記載のソフトウェア処理装置。
4. The software processing apparatus according to claim 3, wherein the second processing compares old and new based on date and time information added to the software.
【請求項5】前記第2の処理は、前記ソフトウェアに付
加されているバージョン情報に基づいて新旧の比較を行
うことを特徴とする請求項3に記載のソフトウェア処理
装置。
5. The software processing device according to claim 3, wherein the second processing compares old and new based on version information added to the software.
【請求項6】前記第1の鍵は、前記ソフトウェアの配布
元に固有の秘密鍵であり、 前記第2の鍵は、前記ソフトウェアの配布元に固有の公
開鍵であり、 前記第1の処理は、前記バッファに一時的に保持されて
いる前記秘密鍵で暗号化されたシグネチャを、前記RO
M内に書き込まれている前記公開鍵で復号する処理と、
該復号によって得たシグネチャに基づいて改竄の有無を
検証する処理とを含むことを特徴とする請求項1に記載
のソフトウェア処理装置。
6. The first key is a private key unique to a distribution source of the software, the second key is a public key unique to a distribution source of the software, and the first process Sends the signature encrypted with the secret key temporarily stored in the buffer to the RO
A process of decrypting with the public key written in M,
The software processing device according to claim 1, further comprising: a process of verifying the presence or absence of tampering based on the signature obtained by the decryption.
【請求項7】前記ROMを、対象とするソフトウェア配
布元ごとに設けたことを特徴とする請求項1に記載のソ
フトウェア処理装置。
7. The software processing device according to claim 1, wherein the ROM is provided for each target software distributor.
【請求項8】前記フラッシュメモリに保存される前記ソ
フトウェアは、オペレーティングシステム、アプリケー
ション及びそれらが必要とするデータからなる現在イン
ストールされているソフトウェアであることを特徴とす
る請求項1に記載のソフトウェア処理装置。
8. The software process according to claim 1, wherein the software stored in the flash memory is currently installed software including an operating system, applications, and data required by them. apparatus.
【請求項9】前記フラッシュメモリに保存される前記ソ
フトウェアは、オペレーティングシステム、該オペレー
ティングシステム上で実行されるミドルウェア、アプリ
ケーション及びそれらが必要とするデータからなる現在
インストールされているソフトウェアであることを特徴
とする請求項1に記載のソフトウェア処理装置。
9. The software stored in the flash memory is currently installed software consisting of an operating system, middleware executed on the operating system, applications, and data required by them. The software processing device according to claim 1.
【請求項10】ソフトウェアの稼動時に利用される再書
き込み可能なワーキングメモリを更に備えたことを特徴
とする請求項1に記載のソフトウェア処理装置。
10. The software processing apparatus according to claim 1, further comprising a rewritable working memory used when software is running.
【請求項11】一定期間ごとに前記プロセッサ及び前記
ワーキングメモリの初期化を行うためのリセット手段を
更に備えたことを特徴とする請求項10に記載のソフト
ウェア処理装置。
11. The software processing device according to claim 10, further comprising reset means for initializing the processor and the working memory at regular intervals.
【請求項12】一定期間ごとに、前記プロセッサ及び前
記ワーキングメモリの初期化を行った後に、前記ROM
に書き込まれた前記処理に制御を移すタイマー手段を更
に備えたことを特徴とする請求項10に記載のソフトウ
ェア処理装置。
12. The ROM after initializing the processor and the working memory at regular intervals.
11. The software processing device according to claim 10, further comprising timer means for transferring control to the processing written in.
【請求項13】前記タイマー手段は、オペレーティング
システム、ミドルウェア及びアプリケーションのいずれ
の処理とも独立し、それら処理からは制御不可能で、前
記一定期間の経過を管理することを特徴とする請求項1
2に記載のソフトウェア処理装置。
13. The timer means is independent of any processing of an operating system, middleware, and an application, cannot be controlled by the processing, and manages the elapse of the certain period.
2. The software processing device according to 2.
【請求項14】前記タイマー手段は、前記ROMに蓄え
られた値を元に一定周期で値を加算することによって、
前記一定期間の経過を管理することを特徴とする請求項
13に記載のソフトウェア処理装置。
14. The timer means adds a value at a constant cycle based on the value stored in the ROM,
14. The software processing device according to claim 13, wherein the progress of the certain period is managed.
【請求項15】前記タイマー手段は、現在実行中のソフ
トウェアが次の処理単位を実行する前に、次のリセット
予定時間までの残り時間を調べ、残り時間が短かった場
合に、通常の処理手順は短時間でリセット可能な状態に
なるよう処理を行い、該次のリセット予定時間より前に
リセットを繰り上げて実行するための手段を含むことを
特徴とする請求項12ないし14のいずれか1項に記載
のソフトウェア処理装置。
15. The timer means checks the remaining time until the next scheduled reset time before the currently executing software executes the next processing unit, and when the remaining time is short, the normal processing procedure is performed. 15. The method according to claim 12, further comprising means for performing processing so as to be in a resettable state in a short time, and advancing and executing resetting before the next scheduled resetting time. The software processing device according to.
【請求項16】インストールするソフトウェアを取得す
るための通信インターフェース手段を更に備えたことを
特徴とする請求項1に記載のソフトウェア処理装置。
16. The software processing apparatus according to claim 1, further comprising a communication interface unit for acquiring software to be installed.
【請求項17】インストールするソフトウェアを取得す
るために、ソフトウェアを含むメディアを接続するため
の外部記憶装置接続インターフェース手段を更に備えた
ことを特徴とする請求項1に記載のソフトウェア処理装
置。
17. The software processing device according to claim 1, further comprising external storage device connection interface means for connecting a medium including the software in order to obtain the software to be installed.
【請求項18】前記ソフトウェア処理装置は、外部から
ソフトウェアをインストールして実行する機能を有す
る、家電機器、汎用計算機、携帯電話又はPDAである
ことを特徴とする請求項1に記載のソフトウェア処理装
置。
18. The software processing device according to claim 1, wherein the software processing device is a home electric appliance, a general-purpose computer, a mobile phone, or a PDA having a function of installing and executing software from the outside. .
【請求項19】外部からソフトウェアをインストールし
て実行する機能を有する装置におけるソフトウェア・イ
ンストール方法であって、外部から入力された、ソフト
ウェアと、該ソフトウェアの正当性の検証のための、第
1の鍵で暗号化されたシグネチャとを、バッファに一時
的に保持するステップと、ROMに書き込まれた前記第
1の鍵に一意に対応する第2の鍵と、前記バッファに一
時的に保持されている前記ソフトウェアに対するシグネ
チャとに基づいて、前記ROMに書き込まれた第1の処
理のプログラムコードによって、該ソフトウェアの正当
性を検証するステップと、前記検証によって正当性が確
認された場合に、前記ROMに書き込まれた第2の処理
のプログラムコードによって、正当性が確認された前記
ソフトウェアを前記バッファからフラッシュメモリに保
存するステップとを有することを特徴とするソフトウェ
ア・インストール方法。
19. A software installation method in a device having a function of installing and executing software from the outside, which comprises a first software for verifying the correctness of the software and the software input from the outside. Temporarily storing in the buffer the signature encrypted with the key, a second key uniquely corresponding to the first key written in the ROM, and temporarily stored in the buffer. A step of verifying the legitimacy of the software by the program code of the first process written in the ROM based on the signature for the software, and the ROM when the legitimacy is confirmed by the verification. The software whose validity has been confirmed by the program code of the second processing written in How software installation, characterized by a step of storing from the buffer to the flash memory.
【請求項20】一定期間ごとに、プロセッサ及びワーキ
ングメモリの初期化を行った後に、前記ROMに書き込
まれた前記処理に制御を移すステップを更に有すること
を特徴とする請求項19に記載のソフトウェア・インス
トール方法。
20. The software according to claim 19, further comprising the step of transferring control to the processing written in the ROM after initializing the processor and the working memory at regular intervals. -Installation method.
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 true JP2003122588A (en) 2003-04-25
JP3863401B2 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 (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005085973A1 (en) * 2004-03-04 2005-09-15 Nec Corporation Data update system, data update method, date update program, and robot system
JP2005301968A (en) * 2003-08-12 2005-10-27 Ricoh Co Ltd Information processing apparatus, method, and program, and recording medium
WO2005106620A1 (en) * 2004-04-30 2005-11-10 Fujitsu Limited Information management device and information management method
JP2006119992A (en) * 2004-10-22 2006-05-11 Sony Corp Program updating method, information processor and program
JP2007179317A (en) * 2005-12-28 2007-07-12 Nec Electronics Corp Microcomputer, program writing method to microcomputer, and writing processing system
JP2009110511A (en) * 2007-09-29 2009-05-21 Symantec Corp Method and system for configuring specific-use computing system
US7543150B2 (en) 2004-07-27 2009-06-02 Hitachi, Ltd. Method and system for setting up hosting environments in safety
KR100917706B1 (en) * 2006-08-14 2009-09-21 후지쯔 마이크로일렉트로닉스 가부시키가이샤 Information management device and information management method
JP2010512590A (en) * 2007-06-20 2010-04-22 華為技術有限公司 Intelligent terminal and management method of intelligent terminal system
JP2011227674A (en) * 2010-04-19 2011-11-10 Canon Inc Management apparatus, and control method and program thereof
US8060873B2 (en) 2003-07-14 2011-11-15 Robert Bosch Gmbh Method and system for remote programming of a program-controlled device using a legitimization code
US8209547B2 (en) 2003-08-12 2012-06-26 Ricoh Company, Ltd. Recording medium, storage unit, information processing apparatus, information processing method, information processing program and computer readable medium
US8499358B2 (en) 2003-09-12 2013-07-30 Konica Minolta Business Technologies, Inc. Program executing processing and controlling
JP2017004548A (en) * 2010-06-11 2017-01-05 任天堂株式会社 Information processing terminal, information processing system, and information processing program
US10296319B2 (en) 2010-06-11 2019-05-21 Nintendo Co., Ltd. Information processing terminal, information processing system, computer-readable storage medium having stored thereon information processing program, and information processing method
EP4109812A4 (en) * 2020-02-25 2023-08-16 Samsung Electronics Co., Ltd. Method for signing key management by electronic device, and electronic device therefor
US11895226B2 (en) 2020-01-22 2024-02-06 Micron Technology, Inc. Dynamic command extension for a memory sub-system

Families Citing this family (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

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060873B2 (en) 2003-07-14 2011-11-15 Robert Bosch Gmbh Method and system for remote programming of a program-controlled device using a legitimization code
JP4676724B2 (en) * 2003-08-12 2011-04-27 株式会社リコー Information processing apparatus, information processing method, information processing program, and recording medium
JP2005301968A (en) * 2003-08-12 2005-10-27 Ricoh Co Ltd Information processing apparatus, method, and program, and recording medium
US8082449B2 (en) 2003-08-12 2011-12-20 Ricoh Company, Ltd. Information processing apparatus, information processing method, information processing program and recording medium
US8209547B2 (en) 2003-08-12 2012-06-26 Ricoh Company, Ltd. Recording medium, storage unit, information processing apparatus, information processing method, information processing program and computer readable medium
US8499358B2 (en) 2003-09-12 2013-07-30 Konica Minolta Business Technologies, Inc. Program executing processing and controlling
KR100914568B1 (en) * 2004-03-04 2009-08-31 닛본 덴끼 가부시끼가이샤 Data update system, data update method, recording medium having data update program recorded thereon, data supply device, robot apparatus and robot system
US7600119B2 (en) 2004-03-04 2009-10-06 Nec Corporation Data update system, data update method, data update program, and robot system
WO2005085973A1 (en) * 2004-03-04 2005-09-15 Nec Corporation Data update system, data update method, date update program, and robot system
WO2005106620A1 (en) * 2004-04-30 2005-11-10 Fujitsu Limited Information management device and information management method
US8272050B2 (en) 2004-04-30 2012-09-18 Fujitsu Semiconductor Limited Data managing device equipped with various authentication functions
US7543150B2 (en) 2004-07-27 2009-06-02 Hitachi, Ltd. Method and system for setting up hosting environments in safety
JP2006119992A (en) * 2004-10-22 2006-05-11 Sony Corp Program updating method, information processor and program
JP2007179317A (en) * 2005-12-28 2007-07-12 Nec Electronics Corp Microcomputer, program writing method to microcomputer, and writing processing system
KR100917706B1 (en) * 2006-08-14 2009-09-21 후지쯔 마이크로일렉트로닉스 가부시키가이샤 Information management device and information management method
JP2010512590A (en) * 2007-06-20 2010-04-22 華為技術有限公司 Intelligent terminal and management method of intelligent terminal system
JP2009110511A (en) * 2007-09-29 2009-05-21 Symantec Corp Method and system for configuring specific-use computing system
JP2011227674A (en) * 2010-04-19 2011-11-10 Canon Inc Management apparatus, and control method and program thereof
JP2017004548A (en) * 2010-06-11 2017-01-05 任天堂株式会社 Information processing terminal, information processing system, and information processing program
US9832718B2 (en) 2010-06-11 2017-11-28 Nintendo Co., Ltd. Portable information terminal using near field communication
US10296319B2 (en) 2010-06-11 2019-05-21 Nintendo Co., Ltd. Information processing terminal, information processing system, computer-readable storage medium having stored thereon information processing program, and information processing method
US11895226B2 (en) 2020-01-22 2024-02-06 Micron Technology, Inc. Dynamic command extension for a memory sub-system
EP4109812A4 (en) * 2020-02-25 2023-08-16 Samsung Electronics Co., Ltd. Method for signing key management by electronic device, and electronic device therefor

Also Published As

Publication number Publication date
JP3863401B2 (en) 2006-12-27

Similar Documents

Publication Publication Date Title
JP6595822B2 (en) Information processing apparatus and control method thereof
JP3863401B2 (en) Software processing device
JP4906854B2 (en) Information processing apparatus, information recording apparatus, information processing system, program update method, program, and integrated circuit
EP1342149B1 (en) Method for protecting information and privacy
US20170250818A1 (en) Method and System for Securely Updating Field Upgradeable Units
US9489496B2 (en) Secure software updates
US8165294B2 (en) Rollback attack prevention system and method
US8528062B1 (en) Method and service for securing a system networked to a cloud computing environment from malicious code attacks
US20080295174A1 (en) Method and System for Preventing Unauthorized Access and Distribution of Digital Data
US20040215909A1 (en) Nonvolatile memory device and data processing system
US20080022380A1 (en) Method of patching applications on small resource-constrained secure devices
CN105354050B (en) A kind of application software call method of intelligent terminal
WO2011118034A1 (en) Information recording device
JP2008521091A (en) System and method for programming an isolated computing environment
BRPI0612865A2 (en) automatic update of computer readable components to support a trusted environment
JP2008503014A (en) Ensuring software security
JP2014507043A (en) Protecting operating system configuration values
WO2007097700A2 (en) Method and system for secure software provisioning
US20090287917A1 (en) Secure software distribution
US8656190B2 (en) One time settable tamper resistant software repository
US10282549B2 (en) Modifying service operating system of baseboard management controller
US20100100966A1 (en) Method and system for blocking installation of some processes
US20060075401A1 (en) Patch installation control
KR101604892B1 (en) Method and devices for fraud prevention of android-based applications
EP3460705A1 (en) Distributed deployment of unique firmware

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