Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4891902B2 - 電子機器、更新サーバ装置、鍵更新装置 - Google Patents
[go: Go Back, main page]

JP4891902B2 - 電子機器、更新サーバ装置、鍵更新装置 - Google Patents

電子機器、更新サーバ装置、鍵更新装置 Download PDF

Info

Publication number
JP4891902B2
JP4891902B2 JP2007519003A JP2007519003A JP4891902B2 JP 4891902 B2 JP4891902 B2 JP 4891902B2 JP 2007519003 A JP2007519003 A JP 2007519003A JP 2007519003 A JP2007519003 A JP 2007519003A JP 4891902 B2 JP4891902 B2 JP 4891902B2
Authority
JP
Japan
Prior art keywords
update
falsification detection
data
application file
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007519003A
Other languages
English (en)
Other versions
JPWO2006129654A1 (ja
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007519003A priority Critical patent/JP4891902B2/ja
Publication of JPWO2006129654A1 publication Critical patent/JPWO2006129654A1/ja
Application granted granted Critical
Publication of JP4891902B2 publication Critical patent/JP4891902B2/ja
Anticipated expiration legal-status Critical
Active legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Description

電子機器が保持するソフトウェアをネットワークを介して更新し、改竄の有無を検出する技術に関する。
プログラムの不正な改竄や解析を防止する技術は従来から研究されている。たとえば、非特許文献1では、ソフトウェアの解析を防ぐための基本原則や具体的手法に関して記述している。また、非特許文献2では、ソフトウェアの解析を防ぐためのツールとして開発したTRCS(Tamper Resistant Coding System)の技術課題とその対策について記述している。このようなソフトウェアの不正な解析や改竄を防ぐ技術を、「耐タンパー技術」と呼ぶ。以降、不正な改竄を、単に「改竄」といい、正当な改竄を「更新」という。
以上のような耐タンパー技術は既に実用化されている。例えば、PC上で市販のDVDコンテンツを再生するソフトウェアがそれである。DVDのコンテンツは不正コピーを防止するために暗号化されており、この再生を行うには復号化するための鍵が必要となる。この鍵が悪意のあるユーザの手に渡ると、DVDコンテンツは容易にコピーされインターネットを通じて不正にばら撒かれる可能性がある。このため、前述のソフトウェアは耐タンパー技術によって保護されている。
このように、近年DVDに代表されるようにデジタルコンテンツが普及し、それらをコンピュータのような仕様の公開されたシステム上で再生するソフトウェアには耐タンパー技術が必要不可欠となっている。
携帯電話などの電子機器においても耐タンパー技術の適用が行われている。特許文献1では、電子機器内のメモリに対する改竄を防止するために、ハッシュ関数を用いた耐タンパー技術の一つである改竄検出方式が開示されている。
また、近年、携帯電話をはじめとした電子機器はネットワーク化が進み、既に組み込まれたソフトウェアに対して製品の出荷後も不具合を修正するソフトウェアを、ネットワークを通じて配布し更新することが可能となってきている。
「逆解析や改変からソフトを守る」 日経エレクトロニクス 1998.1.5 (P209−220) 「ソフトウェアの耐タンパー化技術」 富士ゼロックス テクニカル レポート No.13 (P20−28) 特表2001−500293号公報 特開2005−018725号公報
改竄検出を行う電子機器がネットワークを通じてソフトウェアを更新する場合、更新されたソフトウェア自体が、ネットワークを通じて電子機器に配布されるので、更新されたソフトウェアのサイズが大きくなればなるほど、電子機器が更新されたソフトウェアを受信する時間が長くなる。つまり、ソフトウェアの更新時間が長くなるので、利用者にとっては不満が生じてしまうという問題がある。
そこで、本発明は、ソフトウェアに係るファイルを更新する場合に通信に係るデータ量を従来よりも抑えることのでき、且つ改竄検出を行う電子機器、更新サーバ装置、鍵更新装置、更新方法、更新プログラム、ソフトウェアの更新に必要な情報を取得する取得方法及び取得プログラムを提供することを目的とする。
上記目的を達成するために、本発明は、アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する電子機器であって、1つ以上のデータからなるアプリケーションファイルを記憶している記憶手段と、更新データと、前記アプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを、前記ネットワークを介して外部装置から受け取る受取手段と、前記位置情報が示す位置に存在するデータを前記更新データに書き換えて、前記アプリケーションファイルの一部のみを更新する更新処理手段と、更新された前記アプリケーションファイルが改竄されているか否かの確認を行う改竄検出実行手段とを備えることを特徴とする。
上記に示した構成によると、電子機器は、ネットワークを介してアプリケーションファイルに含まれるデータに対する更新データと、前記アプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを受け取り、受け取った位置情報に基づいて前記データを前記更新データに書き換えて、アプリケーションファイルの一部のみを更新するので、外部装置から更新されたアプリケーションファイルを受け取る場合よりも通信に係るデータ量を少なくすることができる。
ここで、前記受取手段は、更新データと位置情報との組を少なくとも1つ以上受け取り、前記更新処理手段は、前記位置情報にて示される位置に基づいて、前記アプリケーションファイルの更新位置を決定する位置決定部と、決定された前記更新位置を前記更新データの書き込み開始位置として、前記更新データを書き込む書込部と、前記受取手段にて受け取った1つ以上の更新データ全ての書き込みが完了するまで、前記位置決定部と前記書込部の処理を行うように制御する更新制御部とを備えるとしてもよい。
この構成によると、電子機器は、受け取った位置情報にて示される位置に基づいて、更新データの書込開始位置を決定し、決定した書込開始位置から前記更新データを書き込むことができる。
ここで、前記更新制御部は、全ての更新データの書き込みが完了すると、前記改竄検出実行手段の処理を開始するように制御するとしてもよい。
この構成によると、電子機器は、アプリケーションファイルの更新後に、更新したアプリケーションファイルが改竄されているか否かの確認を行うことができるので、更新後のアプリケーションファイルの正当性を保証することができる。
ここで、前記更新処理手段は、さらに、アプリケーションファイルの更新中であることを示す第1の情報、又は更新中でないことを示す第2の情報の何れかを示すフラグを記憶しているフラグ記憶部と、前記フラグが示す情報を変更するフラグ変更部とを備え、前記フラグ変更部は、前記受取手段が更新データと位置情報との組を少なくとも1つ以上受け取るときに、前記フラグの情報を、前記第1の情報に変更し、前記改竄検出実行手段にて改竄が検出されなかった場合に、前記フラグの情報を、前記第2の情報に変更するとしてもよい。
この構成によると、電子機器は、フラグを用いることによりアプリケーションファイルの更新中であるか否かを識別することができる。
ここで、前記更新制御部は、さらに、前記電子機器に電源が投入されると、前記フラグが示す情報を確認し、第1の情報である場合には、前記位置決定部と前記書込部の処理を行うように制御するとしてもよい。
この構成によると、電子機器は、電源投入時にフラグが示す情報が第1の情報である場合には、再度、アプリケーションファイルの更新を行う。これにより、電子機器は、アプリケーションファイルの更新中に電源が切られても、その後電源が投入されることにより、確実にアプリケーションファイルの更新を行うことができる。
ここで、前記アプリケーションファイルは、1つ以上のブロックに分割されており、前記更新データは、前記1以上のブロックのうち少なくとも1つ以上の更新対象ブロックに含まれ、前記記憶手段は、1つ以上の前記ブロックそれぞれに対する基準改竄検出値を有する改竄検出リストを記憶しており、前記受取手段は、さらに、1つ以上の前記更新対象ブロックそれぞれに対する新たな基準改竄検出値と、前記1つ以上の前記更新対象ブロックそれぞれに対する基準改竄検出値の、前記改竄検出リストにおける位置を示す改竄検出位置情報とからなる組を受け取り、前記更新処理手段は、さらに、1つ以上の新たな基準改竄検出値と、前記改竄検出値位置情報とを用いて、前記改竄検出リストを更新し、前記改竄検出実行手段は、前記更新された改竄検出リストが正当なものである場合にのみ、前記更新された改竄検出リストが有する少なくとも1つ以上の基準改竄検出値に基づいて、改竄検出の対象となるブロックが改竄されているか否かを確認するとしてもよい。
この構成によると、電子機器は、改竄検出リストの正当性を確認しているので、改竄検出値自体を改竄することで不正なブロックを正当であると誤認させる行為を防止することができる。
ここで、前記アプリケーションファイルは、1つ以上のブロックに分割されており、前記記憶手段は、1つ以上の前記ブロックそれぞれに対する基準改竄検出値を有する改竄検出リストを記憶しており、前記改竄検出実行手段は、前記アプリケーションソフトウェアの起動時に処理を開始し、前記改竄検出リストが正当なものである場合にのみ、前記改竄検出リストが有する少なくとも1つ以上の改竄検出値に基づいて、改竄検出の対象となるブロックが改竄されているか否かを確認するとしてもよい。
この構成によると、電子機器は、改竄検出リストの正当性を確認しているので、改竄検出値自体を改竄することで不正なブロックを正当であると誤認させる行為を防止することができる。
ここで、前記改竄検出手段は、改竄検出対象であるブロックに対する検出用改竄検出値を算出し、算出した検出用改竄検出値と、改竄検出対象であるブロックに対する改竄検出値とが一致するか否かを判断し、一致すると判断する場合には前記アプリケーションファイルは改竄されていないとし、一致しない場合には前記アプリケーションファイルは改竄されているとするとしてもよい。
この構成によると、電子機器は、改竄検出対象のブロックに対する検出用改竄検出値と、改竄検出リストに含まれる前記ブロックに対する改竄検出値とを用いて、前記ブロックが改竄されているか否かを確認することができる。
ここで、前記記憶部は、部分鍵を記憶しており、前記改竄検出実行手段は、耐タンパ化されており、マスタ鍵を記憶し、前記部分鍵と前記マスタ鍵とを用いて、改竄検出鍵を生成し、生成した改竄検出鍵を用いて、前記検出用改竄検出値を算出するとしてもよい。
この構成によると、電子機器は、改竄検出実行手段が耐タンパ化されており、且つマスタ鍵を記憶しているので、改竄検出鍵の生成、及び生成した改竄検出鍵を不正解析者に解析されないようにすることができる。
ここで、前記受取手段は、前記部分鍵とは異なる別の部分鍵と、前記部分鍵が前記記憶部にて記憶されている位置を示す鍵位置情報とを受け取り、前記更新処理手段は、前記鍵位置情報に基づいて、前記部分鍵を前記別の部分鍵に更新するとしてもよい。
この構成によると、電子機器は、部分鍵を更新することができる。これにより、電子機器は、改竄検出鍵が不正解析者に知られたとしても、部分鍵を更新することにより、新たな改竄検出鍵を生成することができる。
ここで、前記改竄検出リストは、前記1つ以上のブロックそれぞれに対する基準改竄検出値を含むデータ部と、前記データ部に対する基準データ部改竄検出値を含むヘッダ部とから構成され、前記改竄検出実行手段は、前記データ部に対する検出用データ部改竄検出値を算出し、算出した前記検出用データ部改竄検出と前記基準データ部改竄検出値とが一致する場合に、前記改竄検出リストが正当なものであるとするとしてもよい。
この構成によると、電子機器は、改竄検出リストに含まれるデータ部に対する改竄検出値を確認することにより、改竄検出リストの正当性を保証することができる。これにより、アプリケーションファイルの改竄検出をより正確に行うことができる。
ここで、前記データ部は暗号化されており、前記改竄検出実行手段は、暗号化された前記データ部に対する検出用改竄検出値を算出し、前記改竄検出リストが正当なものである場合に、暗号化された前記データ部を復号するとしてもよい。
この構成によると、電子機器は、データ部が暗号化されているので、改竄検出リストに含まれる各ブロックの改竄検出値を不正解析者に知られないようにすることができる。
ここで、前記改竄検出リストにおいて、基準改竄検出値のそれぞれに対して、対応するブロックが改竄検出の対象として使用すべきか否かを示す判断情報が対応付けられており、前記改竄検出実行手段は、前記判断情報がブロックを改竄検出の対象としない旨を示す場合には、当該ブロックに対する改竄検出は行わないとしてもよい。
この構成によると、電子機器は、判断情報が改竄検出の対象としない旨を示す場合にはそのブロックに対する改竄検出を行わないようにすることができる。これにより、アプリケーションファイルが更新された結果、一部のブロックが不要となった場合、不要となったブロックに対しての改竄検出を省略することができる。
ここで、前記改竄検出リストは、前記1つ以上のブロックそれぞれに対する基準改竄検出値と、改竄検出の対象となるアプリケーションソフトウェアの種別を示すアプリケーション種別とが対応付けられた組を1つ以上含み、前記改竄検出実行手段は、起動されたアプリケーションソフトウェアに対するアプリケーション種別に対応する基準改竄検出値それぞれのうち少なくとも1つ以上の改竄検出値に基づいて、改竄検出の対象となるブロックが改竄されているか否かを確認するとしてもよい。
この構成によると、電子機器は、起動されたアプリケーションソフトウェアのアプリケーション種別に対応する1つ以上の改竄検出値を用いて、改竄検出を行うことができる。
ここで、前記アプリケーションソフトウェアの動作に係るアプリケーションファイルは複数個あり、前記アプリケーションファイルのそれぞれは、1つ以上のブロックに分割されており、前記改竄検出リストは、アプリケーションファイルそれぞれに対して、1つ以上のブロックそれぞれに対する基準改竄検出値を基準値群として格納し、1つ以上の前記基準値群のうち前記アプリケーションソフトウェアの起動時に改竄検出に用いる少なくとも1つ以上の基準値群の範囲を示す範囲情報を有し、前記改竄検出実行手段は、前記アプリケーションソフトウェアの起動時に、前記改竄検出リストが有する前記範囲情報にて示される少なくとも1つ以上の基準値群を用いて、改竄検出の対象となるブロックが改竄されているか否かを確認するとしてもよい。
この構成によると、電子機器は、アプリケーションソフトウェアの起動時に、範囲情報に示される少なくとも1つ以上基準値群を用いて優先的に改竄の検出を行うので、アプリケーションソフトウェアの起動にかかる時間を、すべての基準値群を用いて改竄検出を行う場合に比べて短くすることができる。
ここで、前記更新処理手段及び前記改竄検出実行手段は、耐タンパ化されているとしてもよい。
この構成によると、電子機器は、更新処理手段及び改竄検出実行手段が耐タンパ化されているので、更新処理の動作、改竄検出の動作を不正解析者に解析されないようにすることができる。
また、本発明は、ネットワークを介して電子機器に、前記電子機器が有し、且つ1つ以上のデータからなるアプリケーションファイルの更新を行わせる更新サーバ装置であって、更新後のアプリケーションファイルを取得する第1取得手段と、取得した前記更新後のアプリケーションファイルから更新データと、更新前のアプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを取得する第2取得手段と、取得した前記更新データと前記位置情報とを前記電子機器へ送信する送信手段とを備えることを特徴とする。
この構成によると、更新サーバ装置は、アプリケーションファイルに含まれるデータに対する更新データと、前記アプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを取得し、取得した更新データ及び位置情報とを、ネットワークを介して電子機器に送信するので、アプリケーションファイルを送信する場合よりも通信に係るデータ量を少なくすることができる。
ここで、前記更新前のアプリケーションファイルは、所定の大きさからなる1つ以上の更新前ブロックに分割されており、前記第1取得手段は、さらに、1つ以上の前記更新前ブロックそれぞれと、前記更新前ブロック毎に対する基準改竄検出値とからなる更新前改竄検出リストを取得し、前記更新サーバ装置は、さらに、前記更新後のアプリケーションファイルを前記所定の大きさに分割された1つ以上の更新後ブロックを取得し、取得した1つ以上の更新後ブロックそれぞれに対して基準改竄検出値を再計算して新たな改竄検出リストを生成する改竄検出リスト生成手段を備え、前記第2取得手段は、さらに、前記改竄検出リスト生成手段にて生成された新たな改竄検出リストから、前記更新データを含む更新後ブロックと、その更新後ブロックに対応する再計算された基準改竄検出値と、その更新後ブロックに対応する更新前ブロックの前記更新前改竄検出リストにおける位置を示す改竄検出値位置情報とを取得し、前記送信手段は、さらに、前記第2取得手段にて取得された更新後ブロックと前記基準改竄検出値と前記改竄検出値位置情報とを前記電子機器に送信するとしてもよい。
この構成によると、更新サーバ装置は、第2取得手段にて取得された更新後ブロックと、その基準改竄検出値と、改竄検出値位置情報と電子機器に送信するので、電子機器では、更新されたブロックに対する基準改竄検出値を、常に最新の値とすることができる。
ここで、前記改竄検出リスト生成手段は、外部装置によって部分鍵とマスタ鍵とを用いて生成された改竄検出鍵を記憶しており、前記改竄検出鍵を用いて、前記1以上の更新後ブロックそれぞれに対する基準改竄検出値を算出するとしてもよい。
この構成によると、更新サーバ装置は、部分鍵とマスタ鍵とを用いて生成された改竄検出鍵を用いて、基準改竄検出値を計算することができる。
ここで、前記更新サーバ装置は、前記外部装置によって更新された部分鍵と前記マスタ鍵とを用いて更新された改竄検出鍵を受け取ると、記憶している前記改竄検出鍵を、受け取った前記更新された改竄検出鍵に更新し、さらに、前記更新された部分鍵を前記外部装置から受け取り、前記改竄検出リスト生成手段は、前記更新された改竄検出鍵を用いて、前記1以上の更新後ブロックのそれぞれに対する基準改竄検出値を算出し、前記第2取得手段は、さらに、前記電子機器にて前記部分鍵が記憶されている位置を示す鍵位置情報を取得し、前記送信手段は、さらに、前記更新された部分鍵と、前記鍵位置情報とを前記電子機器に送信するとしてもよい。
この構成によると、更新サーバ装置は、改竄検出鍵を更新することができる。これにより、更新サーバ装置は、改竄検出鍵が不正解析者に知られたとしても、新たな改竄検出鍵を外部装置から受け取ることにより、不正解析者に知られた改竄検出鍵を用いることなく新たな基準改竄検出値を算出することができる。
ここで、前記改竄検出リストは、前記1つ以上の更新後ブロックそれぞれと、前記更新後ブロック毎に対する基準改竄検出値とからなるデータ部を有し、前記改竄検出リスト生成手段は、生成した新たな改竄検出リストのデータ部を暗号化するとしてもよい。
この構成によると、更新サーバ装置は、データ部が暗号化されているので、改竄検出リストに含まれる各ブロックの改竄検出値を不正解析者に知られないようにすることができる。
ここで、前記更新後改竄検出リストは、ヘッダ部を有し、前記改竄検出リスト生成手段は、外部装置によって部分鍵とマスタ鍵とを用いて生成された改竄検出鍵を記憶しており、前記改竄検出鍵を用いて、暗号化されたデータ部に対するデータ部改竄検出値を算出し、算出したデータ部改竄検出値を前記ヘッダ部へ格納するとしてもよい。
この構成によると、更新サーバ装置は、暗号化されたデータ部に対するデータ部改竄検出値を算出するので、暗号化されたデータ部に対する正当性を保証することができる。
ここで、前記改竄検出リストは、ヘッダ部と、前記1つ以上の前記更新後ブロックそれぞれと、前記更新後ブロック毎に対する基準改竄検出値とからなるデータ部とを有し、前記改竄検出リスト生成手段は、外部装置によって部分鍵とマスタ鍵とを用いて生成された改竄検出鍵を記憶しており、前記改竄検出鍵を用いて、前記データ部に対するデータ部改竄検出値を算出し、算出したデータ部改竄検出値を前記ヘッダ部へ格納するとしてもよい。
この構成によると、更新サーバ装置は、データ部に対するデータ部改竄検出値を算出するので、データ部に対する正当性を保証することができる。
ここで、前記改竄検出リスト生成手段は、前記データ部改竄検出値の算出後、前記データ部を暗号化するとしてもよい。
この構成によると、更新サーバ装置は、データ部が暗号化されているので、改竄検出リストに含まれる各ブロックの改竄検出値を不正解析者に知られないようにすることができる。
また、本発明は、1つ以上のブロックに分割されたアプリケーションファイルに対してブロック毎に改竄検出値を算出するために用いられる改竄検出鍵を生成する鍵生成装置であって、前記改竄検出鍵は、マスタ鍵と、部分鍵とから生成され、前記鍵生成装置は、前記マスタ鍵と、更新された部分鍵とを取得する鍵取得手段と、前記マスタ鍵と前記更新された部分鍵とを用いて新たな改竄検出鍵を生成する鍵生成手段と、前記鍵生成手段にて生成された改竄検出鍵を、前記改竄検出値を含む改竄検出リストを生成する外部装置へ配布する配布手段とを備えることを特徴とする。
この構成によると、鍵更新装置は、外部装置から改竄検出鍵が漏洩したとしても、部分鍵を更新するだけで、不正行為を行なった外部装置の持つ改竄検出鍵とは異なる新たな改竄検出鍵を生成することができる。
ここで、前記配布手段は、前記更新された部分鍵を、前記外部装置を介して前記アプリケーションファイルが改竄されているか否かの確認を行う電子機器へ配布するとしてもよい。
この構成によると、更新された部分鍵を電子機器に、外部装置を介して配布することができる。
1.第1の実施の形態
以下、本発明における第1の実施の形態について、図面を参照しながら説明する。
1.1 プログラム更新システム1の概要
図1は、第1の実施の形態におけるプログラム更新システム1の全体構成を示す図である。
プログラム更新システム1は、携帯電話機10、更新サーバ装置20、及び鍵更新装置30から構成されている。
鍵更新装置30は、更新サーバ装置20や携帯電話機10で用いられる改竄検出鍵を更新する。改竄検出鍵が不正に流出したときは、新しい改竄検出鍵の発行を行う。鍵更新装置30は、改竄検出鍵を生成する機関により厳重に管理されている。改竄検出鍵は、マスタ鍵と部分鍵とから生成される。マスタ鍵は、一度生成されると変更されない鍵であり、部分鍵は、改竄検出鍵の更新を行う際に、更新される鍵である。
携帯電話機10は、更新サーバ装置20に、アプリケーションソフトウェア(以下、APという。)に係るファイルの更新を要求する更新要求情報を送信し、更新に係るデータである更新データリストを受信する。携帯電話機10は、受信した更新データリストに基づいて、ファイルの更新を行う。ここで、APとは、具体的には音楽録音・再生ソフトウェアや動画録画・再生ソフトウェアのようなアプリケーションである。また、APに係るファイルとは、APそのものや、APから呼び出されるエンコーダ、デコーダ、ドライバ、APが動作する環境を提供するJava(登録商標)VMのような仮想実行環境などであり、1つ以上のデータからなる。
また、携帯電話機10は、アプリケーションソフトウェア更新時、及び起動時にAPに係るファイルが改竄されているか否かの確認を行う。ここで、改竄とは、不正にファイルを書き換えることをいう。
更新サーバ装置20は、更新データリストを保持しており、携帯電話機10からの更新要求情報を受け付けると、更新要求の対象であるファイルに対応する更新データリストを携帯電話機10に送信する。
携帯電話機10と更新サーバ装置20とは、携帯網40及びインターネット50を介して、通信を行う。
1.2 携帯電話機10の構成
携帯電話機10は、図2にて示すように、記憶部101、制御部102、更新処理部103、更新ファイル受取部104、改竄検出実行部105、マイク106、スピーカ107、入力部108、表示部109、無線部110、及びアンテナ111から構成されている。
(1)記憶部101
記憶部101は、図2に示すように、検出対象情報群120、120a、・・・、102mを記憶している。なお、検出対象情報群120、120a、・・・、102mは全て同じ構成であるので、ここでは、検出対象情報群120の構成について説明する。
検出対象情報群120は、図2に示すように、APファイル群121、ハッシュリスト122、及び部分鍵を記憶している。
(APファイル群121)
APファイル群121は、第1ファイル125、・・・、第nファイル126を有している。第1ファイル125、・・・、第nファイル126は、改竄検出の対象となるファイルであり、具体的には、上述したように、APそのものや、APから呼び出されるエンコーダ、デコーダ、ドライバ、APが動作する環境を提供するJava(登録商標)VMのような仮想実行環境などである。ここで、nは1以上の整数である。つまり、APファイル群121には、1つ以上のファイルが格納されている。
なお、以降では、第1ファイル125、・・・、第nファイル126それぞれのファイル名を「file_1」、・・・、「file_n」とする。なお、各ファイルは、局所的な更新が可能となるように、携帯電話機の製造時において固定されたアドレスに記録されている。
(ハッシュリスト122)
ハッシュリスト122は、第1ファイル125、・・・、第nファイル126の改竄検出用のハッシュ値をリストとして保持している。ハッシュリスト122は局所的な更新が可能となるように、携帯電話機の製造時において固定されたアドレスに記録されている。
ここで、ハッシュリスト122について説明する。
図3は、ハッシュリスト122のデータ構造の一例を示す図である。
ハッシュリスト122は、暗号化されていないヘッダ部130と暗号化されているデータ部131とから構成されている。ここで、暗号化に用いられるアルゴリズムは、例えば、XORのような論理演算もしくはDES(Data Encryption Standard)、AES(Advanced Encryption Standard)といった暗号アルゴリズムである。暗号アルゴリズムDES、AESは、公知であるため説明は省略する。
ヘッダ部130は、ハッシュリストファイルサイズ132とデータ部ハッシュ値133とから構成されている。ハッシュリストファイルサイズ132は、ヘッダ部130とデータ部131を合わせたハッシュリスト122全体のデータサイズを示す。データ部ハッシュ値133は、データ部131に対してハッシュ計算アルゴリズムを適用して算出されたハッシュ値を示す。ここで、ハッシュ計算アルゴリズムは、SHA−1やMD5などの一方向性関数に鍵値をからめるHMAC(Keyed−Hashing for Message Authentication)アルゴリズムであるとする。以降において、ハッシュ値を算出するハッシュ計算アルゴリズムは、HMACアルゴリズムであるとする。
データ部131は、1つ以上のハッシュ情報から構成されている。ここでは、データ部131は、ハッシュ情報134、・・・、ハッシュ情報135から構成されているものとする。ハッシュ情報は、改竄検出対象となるファイルに対して、少なくとも1つ存在する。
ハッシュ情報134は、1つのファイル情報140と複数のMAC情報141とから構成されている。
ファイル情報140は、改竄検出対象となるファイルを分割して生成したブロックの数を示すブロック数142と、改竄検出対象となるファイルを示すファイル名143とから構成されている。ここで、ファイル名は、改竄検出対象となるファイルのファイルシステム上の絶対パスや相対パスなど場所を特定できるパスを含めた形式で示されている。
MAC情報141は、1個以上のエントリで構成されている。ここで、エントリの数は、ブロック数142にて示される値+1である。
エントリ144は、ファイル名143にて示されるファイルの分割されたブロックについての先頭アドレスからのオフセットと、ブロックのサイズと、ブロックに対してハッシュ計算アルゴリズムを適用して算出されたハッシュ値とから構成されている。なお、(n−1)番目までのエントリの構成については、同様であるため説明は省略する。ハッシュリスト122に格納されているハッシュ値は、改竄検出時において、改竄がされているか否かを判断するための基準となる基準値である。
MAC情報141の最後に位置するエントリ145は、更新用に予約された空エントリであり、オフセット、サイズ、及びハッシュ値が記述される代わりに、“Reserved”がそれぞれ記述されている。なお、MAC情報141の最後に位置するエントリを最終エントリともいう。
データ部131の最後の位置するハッシュ情報における最終エントリには、ハッシュリスト122における最後のエントリであることを示す情報“end of entry”が埋められている。ここでは、ハッシュ情報135が、データ部131の最後に位置するハッシュ情報であるので、その最終エントリ146には、“end of entry”が埋められている。なお、ハッシュ情報135の他の構成要素は、ハッシュ情報134において最終エントリ145を除く他の構成要素と同様であるため説明は省略する。
また、上述したように、データ部131は、暗号化されている。暗号化は、ファイル情報140やMAC情報141の1エントリの単位で行われる。このため、ハッシュリスト122の更新は、ファイル情報140やMAC情報141の1エントリの単位で可能となる。
なお、ここでは、ハッシュリスト122は、ハッシュリスト122が属する検出対象情報群120に含まれるAPを識別するAP識別情報と対応付けがされているものとする。
(部分鍵123)
部分鍵123は、改竄検出を行われる実行するときにマスタ鍵とともに改竄検出鍵の算出に用いられる。部分鍵123は更新が可能となるように、携帯電話機の製造時において固定されたアドレスに記録されている。
なお、ここでは、ハッシュリスト122と同様に、部分鍵123は、部分鍵123が属する検出対象情報群120に含まれるAPを識別するAP識別情報と対応付けがされているものとする。
(2)制御部102
制御部102は、携帯電話機10の全体の制御を行う。
制御部102は、無線部110から通話に係る信号(音声信号)を受け取ると、受け取った信号をスピーカ107へ出力するための信号処理を行う。
制御部102は、マイク106から通話に係る信号(音声信号)を無線部110へ出力するための信号処理を行う。
制御部102は、入力部108からAPに係るファイルの更新の更新指示を受け取ると、ファイルの更新処理の開始を示す更新開始命令を更新処理部103へ出力する。ここで、更新指示、及び更新開始命令には、更新対象となるAPを示すAP識別情報が含まれる。
制御部102は、更新処理部103からファイルの更新完了の通知を受け取ると、表示部109を介して、更新完了のメッセージを表示する。
制御部102は、更新処理部103からファイルの更新失敗の通知を受け取ると、表示部109を介して、更新失敗のメッセージを表示する。また、制御部102は、入力部108から再更新の指示を受け取ると、ファイルの再更新の開始を示す再更新開始命令を更新処理部103へ出力する。制御部102は、入力部108から再更新を行わない指示を受け取ると、ファイルの更新処理の終了を示す更新終了命令を更新処理部103へ出力する。
制御部102は、入力部108からAPの起動指示を受け取ると、起動の対象となるAPの起動を行う。このとき、起動されたAPは、自APが改竄検出対象である場合には、検出開始命令と、自APを識別するAP識別情報とを、制御部102により改竄検出実行部105へ出力する。なお、改竄検出実行部105では、検出開始命令を制御部102から受け取ることになる。
制御部102は、改竄検出実行部105から改竄されていない通知を受け取ると、起動指示のあったAPに係る動作を実行する。
制御部102は、改竄検出実行部105から改竄が検出された通知を受け取ると、起動指示のあったAPの動作を終了する。
(3)更新処理部103
更新処理部103は、更新ファイル受取部104が更新サーバ装置20より受け取った更新データリスト150より更新対象となるファイルやリスト、もしくは鍵などのデータを更新する。
ここで、更新データリスト150は、図4に示すように、1つ以上の更新情報151、・・・、152から構成されている。更新情報151は、位置情報153、データサイズ154、及び更新データ155から構成されている。位置情報153は、更新するデータの位置を示す情報である。例えば、位置情報153は、ファイル名やファイルの先頭からのオフセット、アドレス情報などで表される。データサイズ154は、更新するデータのサイズを示す。更新データ155は、更新すべき情報であるファイルのうち更新対象となる1以上のブロック、ハッシュリスト122におけるハッシュリストファイルサイズ132、データ部ハッシュ値133、ファイル情報、MAC情報に含まれるエントリなどが記録されている。ここで、更新データには、1つ以上のデータが含まれており、更新データに含まれるデータとは、ハッシュリストファイルサイズやデータ部ハッシュ値などのような値や、アプリケーションソフトウェアを実行するための命令文などである。
例えば、ファイルを複数個のブロックに分割し、2〜4番目のブロックを更新する場合には、位置情報には2番目のブロックの位置を示すオフセットが格納され、データサイズには2〜4番目のブロックそれぞれのサイズを合計した合計サイズが格納され、更新データには、更新後の2〜4番目のブロックが格納される。また、ハッシュリストも更新する必要があるため、この場合には、2番目のブロックのハッシュ値を含むエントリの位置を示すオフセットが位置情報に格納され、2〜4番目のブロックのハッシュ値を含むエントリそれぞれのサイズの合計値がデータサイズに格納され、更新後の2〜4番目のブロックに対応するエントリそれぞれが、更新データに格納される。
更新処理部103は、更新データリスト150の内容に基づいて、ファイルやハッシュリスト122内のハッシュリストファイルサイズ132、データ部ハッシュ値133、ファイル情報、MAC情報に含まれるエントリ、部分鍵123の更新を行う。
更新処理部103は、図5に示すように、フラグ記憶部161、更新制御部162、更新データ読取部163、更新データ解析部164、書込位置決定部165、更新データ書込部166、及び更新確認部167から構成されている。
更新処理部103は、悪意のあるユーザによる解析に対する耐性をもつよう耐タンパー技術で保護されている。耐タンパー技術は、公知であるため説明は省略する。
(フラグ記憶部161)
フラグ記憶部161は、APに係るファイルの更新を行っているか否かを示すフラグを記憶している。ここでは、フラグの値「0」である場合には、更新処理部103が、更新を行っていない旨を示し、値「1」である場合には、更新処理部103が、更新を行っている旨を示す。なお、フラグ記憶部161は、具体的には、不揮発性のメモリである。つまり、携帯電話機10の電源を切っても、フラグ記憶部161の記憶内容は保持される。
(更新制御部162)
更新制御部162は、制御部102から更新開始命令を受け取ると、他の命令による処理が割り込まないように、制御部102に対して割り込み禁止を設定する。
更新制御部162は、フラグ記憶部161に記憶されているフラグの値を「1」に設定する。
更新制御部162は、受け取った更新開始命令に含まれるAP識別情報を更新データ読取部163へ出力する。
更新制御部162は、更新データ読取部163から全ての更新データの書き込みが完了した旨の書込完了命令を受け取ると、改竄検出の処理を開始する旨の検出開始命令と、AP識別情報とを改竄検出実行部105へ出力する。
更新制御部162は、改竄検出実行部105から改竄されていない通知を受け取ると、更新完了の通知を制御部102へ出力する。更新制御部162は、制御部102に対する割り込み禁止を解除し、フラグ記憶部161に記憶されているフラグの値を「0」に設定する。
更新制御部162は、改竄検出実行部105から改竄が検出された通知を受け取ると、更新失敗の通知を制御部102へ出力する。更新制御部162は、制御部102から再更新開始命令を受け取ると、再度、AP識別情報を更新データ読取部163へ出力する。
更新制御部162は、制御部102から更新終了命令を受け取ると、更新制御部162は、制御部102に対する割り込み禁止を解除し、フラグ記憶部161に記憶されているフラグの値を「0」に設定する。
携帯電話機10に電源が投入され、電源の供給が開始されると、更新制御部162は、フラグ記憶部161に記憶されているフラグの値をチェックする。値が「1」である場合には、更新処理中の状態であると判断し、制御部102に対して割り込み禁止を設定する。更新制御部162は、更新処理の再開始を示す再開始命令を更新データ読取部163へ出力する。更新制御部162は、更新データ読取部163から更新処理の再開始が不要である旨を示す再開始不要命令を受け取ると、制御部102に対する割り込み禁止を解除し、フラグ記憶部161に記憶されているフラグの値を「0」に設定する。
(更新データ読取部163)
更新データ読取部163は、更新制御部162からAP識別情報を受け取ると、受け取ったAP識別情報を更新ファイル受取部104へ出力する。
更新データ読取部163は、更新ファイル受取部104から更新サーバ装置20から更新データリスト150の受信が完了した旨の受信完了命令を受け取ると、受信した更新データリスト150から未読の更新情報を1つ読み出す。
更新データ読取部163は、更新確認部167から更新データの書き込みが正常に終了した旨の正常終了命令を受け取ると、受信した更新データリスト150に未読の更新情報が存在するか否かを判断する。存在すると判断する場合には、更新データ読取部163は、未読の更新情報を取得する。存在しないと判断する場合には、更新データ読取部163は、書込完了命令を、更新制御部162及び更新ファイル受取部104へ出力する。更新データ読取部163は、更新確認部167から更新データの書き込みが失敗した旨の異常終了命令を受け取ると、前回読み出した更新情報を再度読み出す。
更新データ読取部163は、更新制御部162から再開始命令を受け取ると、受け取った再開始命令を更新ファイル受取部104へ出力する。その後、更新データ読取部163は、更新ファイル受取部104から受信完了命令を受け取ると、上記と同様の動作を行う。
更新データ読取部163は、再開始不要命令を受け取ると、受け取った再開始不要命令を更新制御部162へ出力する。
(更新データ解析部164)
更新データ解析部164は、更新データ読取部163にて読み出された更新情報を、位置情報、データサイズ、及び更新データに分割する。これにより、更新データ解析部164は、更新情報から位置情報、データサイズ、及び更新データを取得することができる。
(書込位置決定部165)
書込位置決定部165は、更新データ解析部164にて取得された位置情報に基づいて、記憶部101における更新データの書込位置を決定する。
(更新データ書込部166)
更新データ書込部166は、書込位置決定部165にて決定された書込位置を書込開始の先頭位置として、更新データ解析部164にて取得された更新データを書き込む。
(更新確認部167)
更新確認部167は、更新データ書込部166による書き込みが正常に終了したか否かを確認する。
正常に終了したと判定する場合には、正常終了命令を更新データ読取部163へ出力し、正常に終了していないと判断する場合には、異常終了命令を更新データ読取部163へ出力する。
(4)更新ファイル受取部104
更新ファイル受取部104は、携帯電話機10を識別する端末識別子を予め記憶している。
更新ファイル受取部104は、更新処理部103から受け取ったAP識別情報を記憶するAP識別情報記憶領域、及び更新サーバ装置20から受信した更新データリスト150を記憶するリスト記憶領域を有している。ここで、AP識別情報記憶領域、及びリスト記憶領域は不揮発性メモリである。
更新ファイル受取部104は、更新処理部103の更新データ読取部163からAP識別情報を受け取ると、受け取ったAP識別情報と、端末識別子と、更新要求情報とを、無線部110を介して、更新サーバ装置20へ送信し、受け取ったAP識別情報をAP識別情報記憶領域へ格納する。
更新ファイル受取部104は、更新サーバ装置20から無線部110を介して、更新データリスト150を受け取ると、受け取った更新データリスト150をリスト記憶領域へ格納する。さらに、更新ファイル受取部104は、受け取った更新データリスト150の格納が完了すると、AP識別情報記憶領域にて格納されているAP識別情報を消去し、受信完了命令を更新データ読取部163へ出力する。
更新ファイル受取部104は、更新データ読取部163から書込完了命令を受け取ると、リスト格納領域に格納されている更新データリスト150を消去する。
更新ファイル受取部104は、更新データ読取部163から再開始命令を受け取ると、AP識別情報記憶領域に格納されているAP識別情報が存在するか否かを判断する。存在すると判断する場合には、更新ファイル受取部104は、格納しているAP識別情報と、端末識別子とを、無線部110を介して、更新サーバ装置20へ送信し、上記と同様の動作を行う。
AP識別情報記憶領域にAP識別情報が存在しないと判断する場合には、更新ファイル受取部104は、リスト記憶領域に更新データリスト150が格納されているか否かを判断する。格納されていると判断する場合には、受信完了命令を更新データ読取部163へ出力する。格納されていないと判断する場合には、再開始不要命令を更新データ読取部163へ出力する。
(5)改竄検出実行部105
改竄検出実行部105は、図6に示すように、検出制御部171、改竄検出呼出部172、改竄検出処理部173、及びファイル読込部174から構成されている。
改竄検出実行部105は、悪意のあるユーザによる解析に対する耐性をもつよう耐タンパー技術で保護されている。耐タンパー技術は、公知であるため説明は省略する。
(検出制御部171)
検出制御部171は、制御部102若しくは更新処理部103の更新制御部162のいずれかから検出開始命令とAP識別情報とを受け取ると、受け取った検出開始命令とAP識別情報とを改竄検出呼出部172へ出力する。
検出制御部171は、改竄検出処理部173から改竄されていない通知若しくは改竄が検出された通知のうちいずれかを受け取る。
検出制御部171は、受け取った通知を、検出開始命令及びAP識別情報の出力元である制御部102若しくは更新処理部103の更新制御部162のいずれかへ出力する。具体的には、検出開始命令を制御部102から受け取った場合には、検出制御部171は、改竄検出処理部173から受け取った通知を制御部102へ出力する。また、検出開始命令を更新制御部162から受け取った場合には、検出制御部171は、改竄検出処理部173から受け取った通知を更新制御部162へ出力する。
(改竄検出呼出部172)
改竄検出呼出部172は、検出制御部171から検出開始命令とAP識別情報とを受け取ると、記憶部101から受け取ったAP識別情報に対応するハッシュリスト122を読み出す。
改竄検出呼出部172は、読み出したハッシュリスト122と、受け取った検出開始命令及びAP識別情報とを、改竄検出処理部173へ出力する。
(改竄検出処理部173)
改竄検出処理部173は、図6に示すように、マスタ鍵記憶部175を有している。マスタ鍵記憶部175は、マスタ鍵176を記憶している。
改竄検出処理部173は、改竄検出呼出部172からハッシュリスト122と、検出開始命令及びAP識別情報とを受け取ると、改竄検出の処理を開始する。
改竄検出処理部173は、受け取ったAP識別情報に対応する部分鍵123を、記憶部101から読み出す。
改竄検出処理部173は、読み出した部分鍵123と、マスタ鍵176と、特定のアルゴリズムとを用いて改竄検出鍵を算出する。ここで、特定のアルゴリズムは、例えば、XOR(排他的論理和)のような論理演算、若しくはDES、AESといった暗号アルゴリズムであるとする。
改竄検出処理部173は、算出した改竄検出鍵とハッシュ計算アルゴリズムとを用いて、受け取ったハッシュリスト122のデータ部131に対するハッシュ値を算出する。改竄検出処理部173は、算出したハッシュ値と、ハッシュリスト122のヘッダ部130に含まれるデータ部ハッシュ値133とが一致するか否かを判断する。
一致しないと判断する場合には、改竄検出処理部173は、改竄が検出された通知を検出制御部171へ出力する。
一致すると判断する場合には、改竄検出処理部173は、改竄検出鍵を用いて、データ部131を復号する。なお、復号には、データ部131を暗号化したアルゴリズムに対応する復号アルゴリズムが用いられる。
改竄検出処理部173は、復号したデータ部から、未読のハッシュ情報を読み出す。改竄検出処理部173は、読み出したハッシュ情報に含まれるファイル情報をファイル読込部174へ出力し、その後、ファイル読込部174からファイルの読み込みが完了した旨を示すファイル読込完了命令を受け取る。
改竄検出処理部173は、読み出したハッシュ情報から未読のエントリを取得し、取得したエントリが最終エントリであるか否かを判断する。
最終エントリでないと判断する場合には、改竄検出処理部173は、取得したエントリに含まれるオフセット及びサイズとを読み出し、読み出したオフセット及びサイズに基づいて、ファイル読込部174にて読み込まれたファイルから検出対象のブロックを取得する。改竄検出処理部173は、算出した改竄検出鍵とハッシュ計算アルゴリズムとを用いて、取得したブロックに対する検出用ハッシュ値を算出する。改竄検出処理部173は、算出した検出用ハッシュ値と取得したエントリに含まれるハッシュ値とが一致するか否かを判断する。一致すると判断する場合には、改竄検出処理部173は、読み出したハッシュ情報から未読のエントリを取得し、上記動作を行う。一致しないと判断する場合には、改竄検出処理部173は、改竄が検出された通知を検出制御部171へ出力する。
取得したエントリが最終エントリであると判断する場合には、改竄検出処理部173は、未読のハッシュ情報が存在するか否かを判断する。存在すると判断する場合には、改竄検出処理部173は、未読のハッシュ情報を読み出し、上記の動作を行う。存在しないと判断する場合には、改竄検出処理部173は、改竄されていない通知を検出制御部171へ出力する。
(ファイル読込部174)
ファイル読込部174は、読み込んだファイルを一時的に記憶するファイル記憶領域を有している。
ファイル読込部174は、改竄検出処理部173からファイル情報を受け取ると、受け取ったファイル情報に含まれるファイル名に基づいて、改竄検出対象のファイルを記憶部101から読み出す。
ファイル読込部174は、読み出したファイルをファイル記憶領域に格納し、ファイル読込完了命令を、改竄検出処理部173へ出力する。
(6)マイク106
マイク106は、使用者の音声を受け付け、受け付けた音声を音声信号に変換し、変換した音声信号を制御部102へ出力する。
(7)スピーカ107
スピーカ107は、制御部102にて処理された音声信号を音声として出力する。
(8)入力部108
入力部108は、使用者の操作により、更新指示を受け付けると、受け付けた更新指示を制御部102へ出力する。
入力部108は、改竄検出対象のファイルの更新が失敗した場合に、使用者の操作により、再更新を行う指示を受け付けると、受け付けた再更新を行う指示を制御部102へ出力する。また、入力部108は、改竄検出対象のファイルの更新が失敗した場合に、使用者の操作により、再更新を行わない指示を受け付けると、受け付けた再更新を行わない指示を制御部102へ出力する。
入力部108は、使用者の操作により、APの起動指示を受け付けると、受け付けた起動指示を制御部102へ出力する。
(9)表示部109
表示部109は、制御部102から更新完了のメッセージを受け取ると、受け取ったメッセージを表示する。
表示部109は、制御部102から更新失敗のメッセージを受け取ると、受け取ったメッセージを表示する。
(10)無線部110
無線部110は、アンテナ111を備えており、無線信号の送受信を行う。
1.3 更新サーバ装置20の構成
更新サーバ装置20は、図7に示すように、記憶部201、データ取得部202、ハッシュリスト生成部203、ハッシュリスト書込部204、更新要求処理部205、入力部206、及び送受信部207から構成されている。
(1)記憶部201
記憶部201は、携帯電話機10にて記憶されている検出対象情報群に対する更新データリストを1以上記憶するための領域と、ハッシュリストを記憶するための領域とを有している。
ここでは、検出対象情報群120に対する更新データリストを1つ以上記憶しているものとする。また、記憶されている更新データリストのそれぞれは、更新対象のファイルを含むAPのAP識別情報と対応付けられ、さらに、版数の管理がされている。また、携帯電話機10の端末識別子と、携帯電話機10に送信した更新データリストの版数とが対応付けられて管理されているものとする。また、ハッシュリストは、対応するAPのAP識別情報と対応付けがされている。
(2)データ取得部202
データ取得部202は、入力部206から初期設定指示を受け取ると、さらに、改竄検出対象となる1つ以上のファイル、及びターゲットパスリストを取得する。このとき、取得元は、例えば、外部装置である。データ取得部202は、受け取った初期設定指示と、取得した1つ以上のファイル、及びターゲットパスリストとをハッシュリスト生成部203へ出力する。ここで、ターゲットパスリストとは、改竄検出対象となる1つ以上のファイルそれぞれに対してのファイルシステム上にて格納されている格納場所を示す絶対パスや相対パスなどからなるパス名が格納されているリストである。なお、初期設定指示には、生成されるハッシュリストと対応するAPのAP識別情報が含まれる。
データ取得部202は、入力部206から検出対象のファイルの更新があった旨を示す第1更新指示を受け取ると、さらに、更新対象となる1つ以上のファイルそれぞれに対する更新ファイル、及び更新対象となる1つ以上のファイルのターゲットパスリストを取得する。なお、第1更新指示には、更新の対象となるAPのAP識別情報が含まれているものとする。このとき、取得元は、例えば、外部装置である。データ取得部202は、記憶部201から第1更新指示に含まれるAP識別情報に対応するハッシュリストを取得する。データ取得部202は、受け取った第1更新指示と、取得した1つ以上の更新ファイル、ターゲットパスリスト、及びハッシュリストとをハッシュリスト生成部203へ出力する。ここで、更新ファイルとは、元のファイルに存在する不具合が解消された最新ファイルである。
データ取得部202は、鍵更新装置30から部分鍵の更新があった旨を示す第2更新指示と、更新後の部分鍵とを受け取ると、さらに、更新された部分鍵を用いた改竄検出の対象となる1つ以上のファイル、及びターゲットパスリストを取得する。なお、第2更新指示には、更新された部分鍵に対応するAPのAP識別情報が含まれているものとする。このとき、取得元は、例えば、外部装置である。データ取得部202は、記憶部201から第2更新指示に含まれるAP識別情報に対応するハッシュリストを取得する。データ取得部202は、受け取った第2更新指示及び部分鍵と、1つ以上のファイル、ターゲットパスリスト、及びハッシュリストとをハッシュリスト生成部203へ出力する。
(3)ハッシュリスト生成部203
ハッシュリスト生成部203は、図8に示すように、改竄検出鍵記憶部210、データ受取部211、ハッシュリスト生成処理部212、暗号化処理部213、及び更新データリスト生成部214から構成されている。
ここで、ハッシュリスト生成部203は、1つの装置(ハッシュリスト生成装置)としてもよい。
(改竄検出鍵記憶部210)
改竄検出鍵記憶部210は、改竄検出鍵215を記憶している。
(データ受取部211)
データ受取部211は、データ取得部202より初期設定指示、第1更新指示、及び第2更新指示の何れかを受け取る。
データ受取部211は、初期設定指示を受け取ると、さらに、改竄検出対象となる1つ以上のファイル、及びターゲットパスリストを受け取り、受け取った初期設定指示、1つ以上のファイル、及びターゲットパスリストをハッシュリスト生成処理部212に出力する。
データ受取部211は、第1更新指示を受け取ると、さらに、更新対象となる1つ以上のファイルそれぞれに対する更新ファイル、更新対象となる1つ以上のファイルのターゲットパスリスト、及びハッシュリストを受け取り、受け取った第1更新指示、1つ以上の更新ファイル、ターゲットパスリスト、及びハッシュリストをハッシュリスト生成処理部212に出力する。
データ受取部211は、第2更新指示を受け取ると、さらに、部分鍵、更新された部分鍵を用いた改竄検出の対象となる1つ以上のファイル、ターゲットパスリスト、及びハッシュリストを受け取り、受け取った第2更新指示、部分鍵、1つ以上のファイル、ターゲットパスリスト、及びハッシュリストをハッシュリスト生成処理部212に出力する。
(ハッシュリスト生成処理部212)
ハッシュリスト生成処理部212は、データ受取部211より初期設定指示、第1更新指示、及び第2更新指示の何れかを受け取る。
<初期設定指示を受け取った場合>
ハッシュリスト生成処理部212は、初期設定指示を受け取ると、さらに、改竄検出対象となる1つ以上のファイル、及びターゲットパスリストを受け取る。
ハッシュリスト生成処理部212は、受け取った1つ以上のファイルのうち1つのファイルを所定のサイズからなる1以上のブロックに分割する。ハッシュリスト生成処理部212は、分割されたファイルが携帯電話機10において格納されている位置を示すパス名をターゲットパスリストから読み取り、分割したブロックの数と、読み取ったパス名とからなるファイル情報を生成する。また、ハッシュリスト生成処理部212は、改竄検出鍵記憶部210から改竄検出鍵215を読み出す。ハッシュリスト生成処理部212は、所定のサイズに分割したブロック単位で、読み出した改竄検出鍵215とハッシュ計算アルゴリズムとを用いてハッシュ値を算出し、各ブロックに対して、ブロックの先頭位置を示すオフセットと、ブロックのサイズと、算出したハッシュ値とからなるエントリを生成し、生成した各エントリを含むMAC情報を生成する。ハッシュリスト生成処理部212は、生成したファイル情報とMAC情報とからなるハッシュ情報を生成する。なお、このとき、ハッシュ情報は、未だ暗号化されていない。この動作を、受け取った全てのファイルに対して行う。
ハッシュリスト生成処理部212は、受け取った1つ以上のファイルそれぞれに対するハッシュ情報を生成すると、生成した全てのハッシュ情報からなるデータ部を生成する。このとき、データ部は暗号化されていない。以下、暗号化されたデータ部を区別するため、暗号化されていないデータ部を非暗号化データ部という。
ハッシュリスト生成処理部212は、生成した非暗号化データ部を暗号化処理部213へ出力する。
ハッシュリスト生成処理部212は、暗号化処理部213から暗号化されたデータ部を受け取ると、暗号化されたデータ部に対して、ハッシュ計算アルゴリズムを適用してハッシュ値を算出し、ハッシュリストのデータ部ハッシュ値に記録する。ハッシュリスト生成処理部212は、ハッシュリストのサイズを算出し、算出結果をハッシュリストファイルサイズに記録する。これにより、ハッシュリスト生成処理部は、ハッシュリストのヘッダ部を生成することができる。
ハッシュリスト生成処理部212は、生成したヘッダ部と、暗号化処理部213から受け取った暗号化されたデータ部とからなるハッシュリストを生成する。
ハッシュリスト生成処理部212は、生成したハッシュリストを記憶部に格納するとともに、ハッシュリスト書込部204へ出力する。このとき、生成したハッシュリストと、初期設定指示に含まれるAP識別情報とが対応付けされる。
<第1更新指示を受け取った場合>
ハッシュリスト生成処理部212は、データ受取部211から第1更新指示を受け取ると、さらに、更新対象となる1つ以上のファイルそれぞれに対する更新ファイル、更新対象となる1つ以上のファイルのターゲットパスリスト、及びハッシュリストを受け取る。以下において、データ受取部211から受け取ったハッシュリストを旧ハッシュリストという。
ハッシュリスト生成処理部212は、受け取った1つ以上の更新ファイルのうち1つの更新ファイルを所定のサイズからなる1以上のブロックに分割する。ハッシュリスト生成処理部212は、分割された更新ファイルが携帯電話機10において格納されている位置を示すパス名をターゲットパスリストから読み取り、分割したブロックの数と、読み取ったパス名とからなるファイル情報を生成する。また、ハッシュリスト生成処理部212は、改竄検出鍵記憶部210から改竄検出鍵215を読み出す。ハッシュリスト生成処理部212は、所定のサイズに分割したブロック単位で、読み出した改竄検出鍵215とハッシュ計算アルゴリズムとを用いてハッシュ値を算出し、各ブロックに対して、ブロックの先頭位置を示すオフセットと、ブロックのサイズと、算出したハッシュ値とからなるエントリを生成し、生成した各エントリを含むMAC情報を生成する。ハッシュリスト生成処理部212は、生成したファイル情報とMAC情報とからなるハッシュ情報を生成する。なお、このとき、ハッシュ情報は、未だ暗号化されていない。この動作を、受け取った全ての更新ファイルに対して行う。
ハッシュリスト生成処理部212は、受け取った1つ以上の更新ファイルそれぞれに対するハッシュ情報を生成すると、生成した全てのハッシュ情報からなる非暗号化データ部を生成する。
ハッシュリスト生成処理部212は、生成した非暗号化データ部を暗号化処理部213へ出力する。
ハッシュリスト生成処理部212は、暗号化処理部213から暗号化されたデータ部を受け取ると、暗号化されたデータ部に対して、ハッシュ計算アルゴリズムを適用してハッシュ値を算出し、ハッシュリストのデータ部ハッシュ値に記録する。ハッシュリスト生成処理部212は、ハッシュリストのサイズを算出し、算出結果をハッシュリストファイルサイズに記録する。これにより、ハッシュリスト生成処理部は、ハッシュリストのヘッダ部を生成することができる。
ハッシュリスト生成処理部212は、生成したヘッダ部と、暗号化処理部213から受け取った暗号化されたデータ部とからなる新ハッシュリストを生成する。
ハッシュリスト生成処理部212は、第1更新指示、生成した新ハッシュリストと、データ受取部211から受け取った旧ハッシュリスト及び1以上の更新ファイルとを更新データリスト生成部214へ出力する。
<第2更新指示を受け取った場合>
ハッシュリスト生成処理部212は、データ受取部211から第2更新指示を受け取ると、さらに、部分鍵、検出対象となる1つ以上のファイル、ターゲットパスリスト、及び旧ハッシュリストを受け取る。
ハッシュリスト生成処理部212は、受け取った1つ以上のファイルのうち1つのファイルを所定のサイズからなる1以上のブロックに分割する。ハッシュリスト生成処理部212は、分割された更新ファイルが携帯電話機10において格納されている位置を示すパス名をターゲットパスリストから読み取り、分割したブロックの数と、読み取ったパス名とからなるファイル情報を生成する。また、ハッシュリスト生成処理部212は、改竄検出鍵記憶部210から改竄検出鍵215を読み出す。ハッシュリスト生成処理部212は、所定のサイズに分割したブロック単位で、読み出した改竄検出鍵215とハッシュ計算アルゴリズムとを用いてハッシュ値を算出し、各ブロックに対して、ブロックの先頭位置を示すオフセットと、ブロックのサイズと、算出したハッシュ値とからなるエントリを生成し、生成した各エントリを含むMAC情報を生成する。ハッシュリスト生成処理部212は、生成したファイル情報とMAC情報とからなるハッシュ情報を生成する。なお、このとき、ハッシュ情報は、未だ暗号化されていない。この動作を、受け取った全てのファイルに対して行う。
ハッシュリスト生成処理部212は、受け取った1つ以上のファイルそれぞれに対するハッシュ情報を生成すると、生成した全てのハッシュ情報からなる非暗号化データ部を生成する。
ハッシュリスト生成処理部212は、生成した非暗号化データ部を暗号化処理部213へ出力する。
ハッシュリスト生成処理部212は、暗号化処理部213から暗号化されたデータ部を受け取ると、暗号化されたデータ部に対して、ハッシュ計算アルゴリズムを適用してハッシュ値を算出し、ハッシュリストのデータ部ハッシュ値に記録する。ハッシュリスト生成処理部212は、ハッシュリストのサイズを算出し、算出結果をハッシュリストファイルサイズに記録する。これにより、ハッシュリスト生成処理部は、ハッシュリストのヘッダ部を生成することができる。
ハッシュリスト生成処理部212は、生成したヘッダ部と、暗号化処理部213から受け取った暗号化されたデータ部とからなる新ハッシュリストを生成する。
ハッシュリスト生成処理部212は、第2更新指示と、生成した新ハッシュリストと、データ受取部211から受け取った旧ハッシュリスト及び部分鍵とを更新データリスト生成部214へ出力する。
(暗号化処理部213)
暗号化処理部213は、ハッシュリスト生成処理部212から非暗号化データ部を受け取ると、改竄検出鍵記憶部210から改竄検出鍵215を読み出す。
暗号化処理部213は、読み出した改竄検出鍵を用いて、受け取った非暗号化データ部を暗号化する。暗号に用いられるアルゴリズムは例えばXORのような論理演算もしくはDES、AESといった暗号アルゴリズムであり、携帯電話機10にて用いられる復号アルゴリズムに対応するものである。このとき、暗号化はファイル情報やMAC情報の1エントリを単位として行われる。
暗号化処理部213は、暗号化されたデータ部をハッシュリスト生成処理部212へ出力する。
(更新データリスト生成部214)
更新データリスト生成部214は、第1更新指示及び第2更新指示のいずれかを受け取る。
<第1更新指示を受け取った場合>
更新データリスト生成部214は、さらに、ハッシュリスト生成処理部212から新ハッシュリストと、旧ハッシュリストと、1つ以上の更新ファイルとを受け取る。
更新データリスト生成部214は、受け取った旧ハッシュリスト、新ハッシュリストを比較し、情報の異なる箇所を新ハッシュリストから抽出する。ここで、抽出される情報は、データ部におけるエントリや、ヘッダ部におけるデータ部ハッシュ値である。
更新データリスト生成部214は、抽出された情報と、1つ以上の更新ファイルとを用いて更新データリストを生成する。このとき、更新データリスト生成部214は、抽出された情報から更新ファイルの更新箇所が特定できる。なぜなら、ファイルを分割する際には、各ブロックは、所定のサイズとなるように分割されているので、変更が生じないブロックのハッシュ値は、以前のハッシュと同じとなる。変更が生じているブロックのハッシュ値は以前のハッシュ値と異なっているので、変更された箇所を含むブロックに対するエントリは、旧ハッシュリストと新ハッシュリストとの比較により抽出される。上述したように、ブロックは、所定のサイズとなるように分割されているので、抽出されたエントリから更新ファイルにおける更新箇所を特定することができる。更新データリスト生成部214は、特定した更新箇所を更新データとし、更新データ(つまり更新箇所を含むブロック)の位置情報及びブロックのサイズを取得する。なお、更新箇所を含むブロックが連続している場合には、1つの更新データとして結合してもよい。このときの位置情報は、連続するブロックのうち先頭に位置するブロックの位置情報となり、サイズは、連続するブロックの個数から算出することができる。
更新データリスト生成部214は、更新データ、位置情報及びブロックのサイズからなる更新情報を1個以上生成し、さらに、生成した1個以上の更新情報からなる更新データリストを生成する。
更新データリスト生成部214は、新ハッシュリストと、生成した更新データリストを記憶部201へ格納する。このとき、生成した更新データリストと、第1更新指示に含まれるAP識別情報とが対応付けされる。なお、記憶部201に記憶されている旧ハッシュリストは消去される。
<第2更新指示を受け取った場合>
更新データリスト生成部214は、さらに、ハッシュリスト生成処理部212から新ハッシュリストと、旧ハッシュリストと、部分鍵とを受け取る。
更新データリスト生成部214は、受け取った旧ハッシュリスト、新ハッシュリストを比較し、情報の異なる箇所を新ハッシュリストから抽出する。ここで、抽出される情報は、データ部におけるエントリや、ヘッダ部におけるデータ部ハッシュ値である。
更新データリスト生成部214は、抽出された情報、及び受け取った部分鍵のそれぞれを更新データとする更新データリストを生成する。部分鍵を更新データとする更新情報の生成は、以下のようにして行う。更新データリスト生成部214は、携帯電話機10における部分鍵の記憶位置を示す位置情報と、受け取った部分鍵のデータサイズとを取得する。更新データリスト生成部214は、取得した位置情報と、データサイズと、更新データである部分鍵とからなる更新情報を生成する。
なお、抽出された情報を更新データとする更新情報の生成は、第1更新指示を受け取った場合にて示す更新情報の生成と同様であるので、ここでの説明は省略する。
更新データリスト生成部214は、生成した1個以上の更新情報からなる更新データリストを生成する。
更新データリスト生成部214は、新ハッシュリストと、生成した更新データリストを記憶部201へ格納する。このとき、生成した更新データリストと、第2更新指示に含まれるAP識別情報とが対応付けされる。なお、記憶部201に記憶されている旧ハッシュリストは消去される。
(4)ハッシュリスト書込部204
ハッシュリスト書込部204は、携帯電話機の製造時において、製造中(出荷前)の携帯電話機と接続され、携帯電話機の記憶部へのアクセスが可能である。
ハッシュリスト書込部204は、ハッシュリスト生成部203からハッシュリストを受け取ると、受け取ったハッシュリストを、接続された携帯電話機の記憶部へ書き込む。ハッシュリストが書き込まれるアドレスは、上述したように固定されたアドレスである。
(5)更新要求処理部205
更新要求処理部205は、送受信部207を介して携帯電話機10から、AP識別情報と、端末識別子と、更新要求情報とを受け取ると、受け取ったAP識別情報と、端末識別子とを用いて、携帯電話機10に送信すべき更新データリストの版数を決定する。上述したように、更新サーバ装置20は、更新データリストのそれぞれを、更新対象のファイルを含むAPのAP識別情報と対応付け、及び版数の管理を行っており、また、携帯電話機10の端末識別子と、携帯電話機10に送信した更新データリストの版数とを対応付けて管理しているので、送信すべき更新データリストを決定することができる。
更新要求処理部205は、送信すべき更新データリストを記憶部201から取得し、取得した更新データリストを、送受信部207を介して携帯電話機10へ送信する。
(6)入力部206
入力部206は、使用者の操作により、初期設定指示を受け付けると、受け付けた初期設定指示をデータ取得部202へ出力する。
入力部206は、使用者の操作により、第1更新指示を受け付けると、受け付けた第1更新指示をデータ取得部202へ出力する。
(7)送受信部207
送受信部207は、携帯網40及びインターネット50を介して携帯電話機10から受信した情報を更新要求処理部205へ出力する。
送受信部207は、更新要求処理部205から受け取った情報を、インターネット50及び携帯網40を介して携帯電話機10へ送信する。
1.4 鍵更新装置30の構成
鍵更新装置30は、図9に示すように、鍵取得部301、改竄検出鍵生成部302、改竄検出鍵配布部303、及び出力部304から構成されている。
鍵更新装置30は、改竄検出鍵が悪意のあるユーザによって解析され不正に流出した場合に、更新サーバ装置20に記憶されている改竄検出鍵を更新する。鍵更新装置30は鍵を正式に発行する機関によって厳重に管理されるものとする。
(1)鍵取得部301
鍵取得部301は、外部装置から、マスタ鍵、及び更新された部分鍵と、更新された部分鍵に対応するAPのAP識別情報とを取得する。なお、取得するマスタ鍵は、携帯電話機10にて記憶しているマスタ鍵と同一のものである。
鍵取得部301は、受け取ったマスタ鍵及び更新された部分鍵を改竄検出鍵生成部302へ出力する。
鍵取得部301は、改竄検出鍵配布部303から更新サーバ装置20に対して改竄検出鍵の配布が完了した旨を示す配布完了命令を受け取ると、AP識別情報を含む第2更新指示と、更新された部分鍵とを出力部304へ出力する。
(2)改竄検出鍵生成部302
改竄検出鍵生成部302は、鍵取得部301からマスタ鍵及び更新された部分鍵を受け取ると、受け取ったマスタ鍵と、更新された部分鍵と、特定のアルゴリズムとを用いて改竄検出鍵を算出する。なお、ここで用いる特定のアルゴリズムは、携帯電話機10の改竄検出処理部173にて用いられるアルゴリズムと同一のものである。
改竄検出鍵生成部302は、算出した改竄検出鍵を、改竄検出鍵配布部303へ出力する。
(3)改竄検出鍵配布部303
改竄検出鍵配布部303は、更新サーバ装置20と接続され、改竄検出鍵記憶部210にアクセス可能である。
改竄検出鍵配布部303は、改竄検出鍵生成部302から改竄検出鍵を受け取ると、受け取った改竄検出鍵を、改竄検出鍵記憶部210に書き込む。このとき、改竄検出鍵記憶部210に記憶されていた以前の改竄検出鍵は消去される。
改竄検出鍵配布部303は、改竄検出鍵の書き込みが完了すると、配布完了命令を鍵取得部301へ出力する。
(4)出力部304
出力部304は、更新サーバ装置20のデータ取得部202と接続される。
出力部304は、鍵取得部301から第2更新指示と、更新された部分鍵とを受け取ると、受け取った、第2更新指示と、更新された部分鍵とをデータ取得部202へ出力する。
1.5 更新サーバ装置20の動作
ここでは、更新サーバ装置20にて、更新データリスト、及びハッシュリストの生成の動作について、図10にて示す流れ図を用いて説明する。
データ受取部211は、データ取得部202より初期設定指示、第1更新指示、及び第2更新指示の何れかを受け取る(ステップS5)。
データ受取部211は、第1更新指示を受け取ると(ステップS10における「第1更新指示」)、更新対象となる1つ以上のファイルそれぞれに対する更新ファイル、更新対象となる1以上のファイルのターゲットパスリスト、及びハッシュリストを取得する(ステップS15)。
データ受取部211は、受け取った第1更新指示、1つ以上の更新ファイル、ターゲットパスリスト、及びハッシュリスト(以下、旧ハッシュリスト)をハッシュリスト生成処理部212に出力する。ハッシュリスト生成処理部212は、データ受取部211から第1更新指示、1つ以上のファイルそれぞれに対する更新ファイル、更新対象となる1つ以上のファイルのターゲットパスリスト、及び旧ハッシュリストを受け取る。
ハッシュリスト生成処理部212は、受け取った1以上の更新ファイルのうち1の更新ファイルを所定のサイズからなる1以上のブロックに分割する。ハッシュリスト生成処理部212は、分割された更新ファイルが携帯電話機10において格納されている位置を示すパス名をターゲットパスリストから読み取り、分割したブロックの数と、読み取ったパス名とからなるファイル情報を生成する。また、ハッシュリスト生成処理部212は、所定のサイズに分割したブロック単位でハッシュ計算アルゴリズムを適用してハッシュ値を算出し、各ブロックに対して、ブロックの先頭位置を示すオフセットと、ブロックのサイズと、算出したハッシュ値とからなるエントリを生成し、生成した各エントリを含むMAC情報を生成する。ハッシュリスト生成処理部212は、生成したファイル情報とMAC情報とからなるハッシュ情報を生成する。なお、このとき、ハッシュ情報は、未だ暗号化されていない。この動作を、受け取った全ての更新ファイルに対して行う。
ハッシュリスト生成処理部212は、受け取った1以上の更新ファイルそれぞれに対するハッシュ情報を生成すると、生成した全てのハッシュ情報からなる非暗号化データ部を生成する(ステップS20)。
ハッシュリスト生成処理部212は、生成した非暗号化データ部を暗号化処理部213へ出力する。暗号化処理部213は、ハッシュリスト生成処理部212から非暗号化データ部を受け取ると、改竄検出鍵記憶部210から改竄検出鍵215を読み出す。暗号化処理部213は、読み出した改竄検出鍵を用いて、受け取った非暗号化データ部を暗号化する(ステップS25)。このとき、暗号化はファイル情報やMAC情報の1エントリを単位として行われる。
暗号化処理部213は、暗号化されたデータ部をハッシュリスト生成処理部212へ出力する。ハッシュリスト生成処理部212は、暗号化処理部213から暗号化されたデータ部を受け取ると、暗号化されたデータ部に対して、ハッシュ計算アルゴリズムを適用してハッシュ値を算出し、ハッシュリストのデータ部ハッシュ値に記録する(ステップS30)。
ハッシュリスト生成処理部212は、ハッシュリストのサイズを算出し、算出結果をハッシュリストファイルサイズに記録する。これにより、ハッシュリスト生成処理部は、ハッシュリストのヘッダ部を生成することができる。
ハッシュリスト生成処理部212は、生成したヘッダ部と、暗号化処理部213から受け取った暗号化されたデータ部とからなる新ハッシュリストを生成する(ステップS35)。
ハッシュリスト生成処理部212は、第1更新指示、生成した新ハッシュリストと、データ受取部211から受け取った旧ハッシュリスト及び1以上の更新ファイルとを更新データリスト生成部214へ出力する。更新データリスト生成部214は、第1更新指示、ハッシュリスト生成処理部212から新ハッシュリストと、旧ハッシュリストと、1つ以上の更新ファイルとを受け取る。
更新データリスト生成部214は、受け取った旧ハッシュリスト、新ハッシュリストを比較し、情報の異なる箇所を新ハッシュリストから抽出する。ここで、抽出される情報は、データ部におけるエントリや、ヘッダ部におけるデータ部ハッシュ値である。更新データリスト生成部214は、抽出された情報と、1以上の更新ファイルとを用いて更新データリストを生成する(ステップS40)。
更新データリスト生成部214は、新ハッシュリストと、生成した更新データリストを記憶部201へ格納する(ステップS45)。このとき、生成した更新データリストと、第1更新指示に含まれるAP識別情報とが対応付けされる。なお、記憶部201に記憶されている旧ハッシュリストは消去される。
データ受取部211は、第2更新指示を受け取ると(ステップS10における「第2更新指示」)、部分鍵、検出対象となる1つ以上のファイル、ターゲットパスリスト、及びハッシュリストを取得し(ステップS50)、ステップS20からステップS45までの動作を行う。なお、この場合、各構成要素が出力、及び受け取る指示は、第2更新指示となる。また、ステップS40で生成される更新データリストは、旧ハッシュリスト、新ハッシュリスト、及び部分鍵から生成される。また、ステップS45では、生成した更新データリストと、第2更新指示に含まれるAP識別情報とが対応付けされる。
データ受取部211は、初期設定指示を受け取ると(ステップS10における「初期設定指示」)、改竄検出対象となる1つ以上のファイル、及びターゲットパスリストを取得する(ステップS55)。
データ受取部211は、受け取った初期設定指示、1以上のファイル、及びターゲットパスリストをハッシュリスト生成処理部212に出力する。
ハッシュリスト生成処理部212は、初期設定指示を受け取ると、さらに、改竄検出対象となる1つ以上のファイル、及びターゲットパスリストを受け取り、ハッシュリストを生成する(ステップS60)。なお、ハッシュリストの生成については、ステップS20からステップS35までの動作と概念的には同じであるので、ここでの詳細な説明は省略する。
ハッシュリスト生成処理部212は、生成したハッシュリストを記憶部に格納するとともに、ハッシュリスト書込部204へ出力する。ハッシュリスト書込部204は、ハッシュリスト生成部203からハッシュリストを受け取ると、受け取ったハッシュリストを、接続された携帯電話機の記憶部へ書き込む(ステップS65)。
1.6 ハッシュリスト更新時の動作概要
ここでは、ハッシュリスト更新時の動作概要について、図11にて示す流れ図を用いて説明する。
携帯電話機10における更新処理部103の更新制御部162は、更新指示を受け付けと(ステップS100)、制御部102に対して割り込み禁止の設定を行う(ステップS105)。
更新制御部162は、フラグ記憶部161に記憶されているフラグの値を「1」に設定する(ステップS110)。
更新制御部162は、受け取った更新開始命令に含まれるAP識別情報を更新データ読取部163へ出力する。
更新ファイル受取部104は、更新処理部103の更新データ読取部163からAP識別情報を受け取ると、受け取ったAP識別情報と、予め記憶している端末識別子と、更新要求情報とを、無線部110を介して、更新サーバ装置20へ送信する(ステップS115)。更新ファイル受取部104は、受け取ったAP識別情報をAP識別情報記憶領域へ格納する。
更新サーバ装置20の更新要求処理部205は、送受信部207を介して携帯電話機10から、AP識別情報と、端末識別子と、更新要求情報とを受信する(ステップS120)。
更新要求処理部205は、受信したAP識別情報と、端末識別子とを用いて、携帯電話機10に送信すべき更新データリストの版数を決定する。更新要求処理部205は、送信すべき更新データリストを記憶部201から取得し(ステップS125)、取得した更新データリストを、送受信部207を介して携帯電話機10へ送信する(ステップS130)。
携帯電話機10は、更新サーバ装置20から更新データリストを受信し、更新処理を行う(ステップS135)。
1.7 更新処理の動作
ここでは、図11のステップS135にて示す更新処理の動作について、図12、及び図13にて示す流れ図を用いて説明する。
更新ファイル受取部104は、更新サーバ装置20から無線部110を介して、更新データリストを受信すると、受信した更新データリストをリスト記憶領域へ格納する(ステップS200)。
更新ファイル受取部104は、受け取った更新データリストの格納が完了すると、AP識別情報記憶領域にて格納されているAP識別情報を消去し、受信完了命令を更新データ読取部163へ出力する。更新データ読取部163は、更新ファイル受取部104から更新サーバ装置20から更新データリストの受信が完了した旨の受信完了命令を受け取る。
更新データ読取部163は、更新ファイル受取部104のリスト記憶領域にて記憶されている更新データリストから未読の更新情報を1つ読み出す(ステップS205)。
更新データ解析部164は、更新データ読取部163にて読み出された更新情報を、位置情報、データサイズ、及び更新データに分割する(ステップS210)。
書込位置決定部165は、更新データ解析部164にて取得された位置情報に基づいて、記憶部101における更新データの書込位置を決定する(ステップS215)。
更新データ書込部166は、書込位置決定部165にて決定された書込位置を書込開始の先頭位置として、更新データ解析部164にて取得された更新データを書き込む(ステップS220)。
更新確認部167は、更新データ書込部166による書き込みが正常に終了したか否かを確認する(ステップS225)。
正常に終了していないと判断する場合には(ステップS225における「NO」)、更新確認部167は、異常終了命令を更新データ読取部163へ出力する。更新データ読取部163は、更新確認部167から異常終了命令を受け取ると、ステップS205にて読み出した更新情報と同一の更新情報を再度読み出し(ステップS230)、ステップS210へ戻る。
正常に終了したと判定する場合には(ステップS225における「YES」)、更新確認部167は、正常終了命令を更新データ読取部163へ出力する。更新データ読取部163は、更新確認部167から正常終了命令を受け取ると、更新ファイル受取部104のリスト記憶領域にて記憶されている更新データリストに未読の更新情報が存在するか否かを判断する(ステップS235)。
存在すると判断する場合には(ステップS235における「YES」)、更新データ読取部163は、ステップS205へ戻る。存在しないと判断する場合には(ステップS235における「NO」)、更新データ読取部163は、書込完了命令を、更新制御部162及び更新ファイル受取部104へ出力する。更新ファイル受取部104は、更新データ読取部163から書込完了命令を受け取ると、リスト格納領域に格納されている更新データリスト150を消去する。更新制御部162は、更新データ読取部163から書込完了命令を受け取ると、改竄検出の処理を開始する旨の検出開始命令と、AP識別情報とを改竄検出実行部105へ出力する。
改竄検出実行部105は、更新制御部162から検出開始命令と、AP識別情報とを受け取ると、改竄検出処理を行う(ステップS240)。
更新制御部162は、改竄検出実行部105から改竄検出処理の処理結果を受け取ると、受け取った処理結果が、改竄されていない通知であるか、改竄が検出された通知であるかを判断する(ステップS245)。
改竄が検出されていない、つまり改竄されていない通知を受け取ったと判断する場合には(ステップS245における「NO」)、更新制御部162は、更新完了の通知を制御部102へ出力する。制御部102は、更新処理部103からファイルの更新完了の通知を受け取ると、表示部109を介して更新完了のメッセージを表示する(ステップS250)。
更新制御部162は、制御部102に対する割り込み禁止を解除し(ステップS255)、フラグ記憶部161に記憶されているフラグの値を「0」に設定する(ステップS260)。
改竄が検出された、つまり改竄が検出された通知を受け取ったと判断する場合には(ステップS245における「YES」)、更新制御部162は、更新失敗の通知を制御部102へ出力する。制御部102は、更新処理部103からファイルの更新失敗の通知を受け取ると、表示部109を介して、更新失敗のメッセージを表示する(ステップS265)。また、制御部102は、入力部108から再更新の指示を受け取ると、再更新開始命令を更新処理部103へ出力する。制御部102は、入力部108から再更新を行わない指示を受け取ると、更新終了命令を更新処理部103へ出力する。
更新制御部162は、制御部102から再更新開始命令及び更新終了命令のうち何れかを受け取ると、受け取った命令が再更新開始命令か否かを判断する(ステップS270)。再更新開始命令である、つまり再更新を行うと判断する場合には(ステップS270における「YES」)、更新制御部162は、再度、AP識別情報を更新データ読取部163へ出力し、ステップS200へ戻る。この場合、更新データ読取部163は、再度、更新データリストの受信を行う。
更新制御部162は、受け取った命令が更新終了命令である、つまり再更新を行わないと判断する場合には(ステップS270における「NO」)、更新制御部162は、制御部102に対する割り込み禁止を解除し(ステップS255)、フラグ記憶部161に記憶されているフラグの値を「0」に設定する(ステップS260)。
1.8 AP起動時の動作
ここでは、AP起動時の動作について、図14にて示す流れ図を用いて説明する。
制御部102は、入力部108から改竄検出対象のAPの起動指示を受け取る(ステップS300)。制御部102は、APの起動を行う。このとき、起動されたAPは、自APが改竄検出対象である場合には、検出開始命令と、自APを識別するAP識別情報とを、制御部102により改竄検出実行部105へ出力する。
改竄検出実行部105は、制御部102から検出開始命令と、AP識別情報とを受け取ると、改竄検出処理を行う(ステップS305)。
制御部102は、改竄検出実行部105から改竄検出処理の処理結果を受け取ると、受け取った処理結果が、改竄されていない通知であるか、改竄が検出された通知であるかを判断する(ステップS310)。
改竄が検出されていない、つまり改竄されていない通知を受け取ったと判断する場合には(ステップS310における「NO」)、制御部102は、起動指示のあったAPに係る動作を実行する(ステップS315)。
改竄が検出された、つまり改竄が検出された通知を受け取ったと判断する場合には(ステップS310における「YES」)、制御部102は、起動指示のあったAPの動作を終了する(ステップS320)。
1.9 改竄検出処理の動作
ここでは、図12のステップS240、及び図14のステップS305のそれぞれにて示す改竄検出処理の動作について、図15及び図16にて示す流れ図を用いて説明する。
検出制御部171は、制御部102若しくは更新処理部103の更新制御部162のいずれかから検出開始命令とAP識別情報とを受け取ると、受け取った検出開始命令とAP識別情報とを改竄検出呼出部172へ出力する。
改竄検出呼出部172は、検出制御部171から検出開始命令とAP識別情報とを受け取ると、記憶部101から受け取ったAP識別情報に対応するハッシュリストを読み出す(ステップS400)。
改竄検出呼出部172は、読み出したハッシュリスト122と、受け取った検出開始命令及びAP識別情報とを、改竄検出処理部173へ出力する。改竄検出処理部173は、改竄検出呼出部172からハッシュリスト122と、検出開始命令及びAP識別情報とを受け取ると、改竄検出処理部173は、受け取ったAP識別情報に対応する部分鍵123を、記憶部101から読み出す。改竄検出処理部173は、読み出した部分鍵123と、マスタ鍵176と、特定のアルゴリズムとを用いて改竄検出鍵を算出する(ステップS405)。
改竄検出処理部173は、算出した改竄検出鍵とハッシュ計算アルゴリズムとを用いて、受け取ったハッシュリストのデータ部に対するハッシュ値を算出する(ステップS410)。改竄検出処理部173は、算出したハッシュ値と、ハッシュリストのヘッダ部に含まれるデータ部ハッシュ値とが一致するか否かを判断する(ステップS415)。
一致しないと判断する場合には(ステップS415における「NO」)、改竄検出処理部173は、改竄が検出された通知を検出制御部171へ出力する。検出制御部171は、改竄検出処理部173から改竄が検出された通知のうちいずれかを受け取る。検出制御部171は、受け取った通知を、呼出元(つまり、検出開始命令及びAP識別情報の出力元)である制御部102若しくは更新処理部103の更新制御部162のいずれかへ出力する(ステップS420)。
一致すると判断する場合には(ステップS415における「YES」)、改竄検出処理部173は、改竄検出鍵を用いて、データ部131を復号する(ステップS425)。なお、復号には、データ部を暗号化したアルゴリズムに対応する復号アルゴリズムが用いられる。
改竄検出処理部173は、復号したデータ部から、未読のハッシュ情報を読み出す(ステップS430)。
改竄検出処理部173は、読み出したハッシュ情報に含まれるファイル情報をファイル読込部174へ出力する。ファイル読込部174は、改竄検出処理部173からファイル情報を受け取ると、受け取ったファイル情報に含まれるファイル名に基づいて、改竄検出対象のファイルを記憶部101から読み出す(ステップS435)。
ファイル読込部174は、読み出したファイルをファイル記憶領域に格納し、ファイル読込完了命令を、改竄検出処理部173へ出力する。ファイル読込部174からファイルの読み込みが完了した旨を示すファイル読込完了命令を受け取る。
改竄検出処理部173は、読み出したハッシュ情報から未読のエントリを取得し(ステップS440)、取得したエントリが最終エントリであるか否かを判断する(ステップS445)。
最終エントリでないと判断する場合には(ステップS445における「NO」)、改竄検出処理部173は、取得したエントリに含まれるオフセット及びサイズとを読み出し、読み出したオフセット及びサイズに基づいて、ファイル読込部174にて読み込まれたファイルから検出対象のブロックを取得する(ステップS450)。改竄検出処理部173は、算出した改竄検出鍵とハッシュ計算アルゴリズムとを用いて、取得したブロックに対する検出用ハッシュ値を算出する(ステップS455)。改竄検出処理部173は、算出した検出用ハッシュ値と取得したエントリに含まれるハッシュ値とが一致するか否かを判断する(ステップS460)。一致すると判断する場合には(ステップS460における「YES」)、改竄検出処理部173は、ステップS440へ戻る。一致しないと判断する場合には(ステップS460における「NO」)、ステップS420へ戻る。
取得したエントリが最終エントリであると判断する場合には(ステップS445における「YES」)、改竄検出処理部173は、未読のハッシュ情報が存在するか否かを判断する(ステップS465)。存在すると判断する場合には(ステップS465における「YES」)、ステップS430へ戻る。存在しないと判断する場合には(ステップS465における「NO」)、改竄検出処理部173は、改竄されていない通知を検出制御部171へ出力する。検出制御部171は、改竄検出処理部173から改竄されていない通知を受け取る。検出制御部171は、受け取った通知を、呼出元(つまり、検出開始命令及びAP識別情報の出力元)である制御部102若しくは更新処理部103の更新制御部162のいずれかへ出力する(ステップS470)。
1.10 携帯電話機10の起動時の動作
携帯電話機10の起動時における更新処理及び改竄検出処理の動作について説明する。
携帯電話機10に電源が投入され、電源の供給が開始されると、更新制御部162は、フラグ記憶部161に記憶されているフラグの値をチェックする。
フラグの値が「0」である場合には、携帯電話機10は、前回の更新処理は完了していると判断し、更新処理及び改竄検出処理は行わない。
フラグの値が「1」である場合には、更新処理中の状態であると判断し、制御部102に対して割り込み禁止を設定する。更新制御部162は、更新処理の再開始を示す再開始命令を更新データ読取部163へ出力する。
更新データ読取部163は、更新制御部162から再開始命令を受け取ると、受け取った再開始命令を更新ファイル受取部104へ出力する。
更新ファイル受取部104は、更新データ読取部163から再開始命令を受け取ると、AP識別情報記憶領域に格納されているAP識別情報が存在するか否かを判断する。存在すると判断する場合には、携帯電話機10は、図11にて示すステップS115以降の動作を行う。
AP識別情報記憶領域に格納されているAP識別情報が存在しないと判断する場合には、更新ファイル受取部104は、リスト記憶領域に更新データリストが格納されているか否かを判断する。
更新データリストが格納されていると判断する場合には、受信完了命令を更新処理部103へ出力する。更新処理部103の更新データ読取部163は、更新ファイル受取部104から受信完了命令を受け取る。更新処理部103は、図12にて示すステップS205以降の動作を行う。
更新データリストが格納されていないと判断する場合には、再開始不要命令を更新データ読取部163へ出力する。更新データ読取部163は、再開始不要命令を受け取ると、受け取った再開始不要命令を更新制御部162へ出力する。更新制御部162は、更新データ読取部163から更新処理の再開始が不要である旨を示す再開始不要命令を受け取ると、制御部102に対する割り込み禁止を解除し、フラグ記憶部161に記憶されているフラグの値を「0」に設定する。
2.検出鍵と各動作との関係
図17は、本実施の形態で用いられる各鍵の関係と、鍵が利用される場面との関係を示す。
改竄検出鍵は、マスタ鍵、部分鍵、及び特定のアルゴリズムとを用いて算出される。この生成作業は、鍵更新装置30の改竄検出鍵生成部302、及び図15にて示すステップS405により携帯電話機10にて行われる。
生成された改竄検出鍵は、以下のようにハッシュリスト生成時、及びハッシュリストを用いた改竄検出処理時に用いられる。
(ハッシュリスト生成時)
改竄検出鍵は、検出対象のファイルにおける1以上のブロックそれぞれに対するハッシュ値を算出する場合に用いられる。具体的には、図10にて示すステップS20の動作に対応する。
また、改竄検出鍵は、ハッシュリストのデータ部を暗号化する場合に用いられる。具体的には、図10にて示すステップS25の動作に対応する。
また、改竄検出鍵は、ハッシュリストのデータ部のハッシュ値(データ部ハッシュ値)を算出する場合に用いられる。算出されたハッシュ値はハッシュリストのヘッダ部に埋め込まれる。具体的には、図10にて示すステップS30の動作に対応する。
(改竄検出処理時)
改竄検出鍵は、ハッシュリストのデータ部のハッシュ値を算出する場合に用いられる。具体的には、図15にて示すステップS410の動作に対応する。このとき、携帯電話機10は、算出されたハッシュ値と、あらかじめ埋め込まれたハッシュ値(データ部ハッシュ値)とを比較することで改竄の有無をチェックする。
また、改竄検出鍵は、ハッシュリストのデータ部を復号する場合に用いられる。具体的には、図15にて示すステップS425の動作に対応する。
また、改竄検出鍵は、検出対象のファイルにおける各ブロックのハッシュ値(検出用ハッシュ値)を算出場合に用いられる。具体的には、図16にて示すステップS455の動作に対応する。このとき、携帯電話機10は、算出された検出用ハッシュ値と、予め格納されているハッシュ値とを比較することで改竄の有無をチェックする。
3.変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記第1の実施の形態では、改竄を検出する装置として携帯電話機を用いたが、これに限定されない。
改竄を検出する装置は、通信機能を具備したHDDレコーダ/DVDレコーダ、ゲーム機器、PDAのような機器であってもよい。つまり、更新サーバ装置とネットワーク等により接続可能な電子機器であればよい。
(2)ハッシュリストのデータ部の暗号化は、セキュリティ強度を考慮して、データ部131の暗号化単位はデータ部全体に共通鍵暗号方式における連鎖のような暗号アルゴリズムを適用してもよい。このときのハッシュリストの更新単位はハッシュリスト全体となる。
(3)上記第1の実施の形態において、ハッシュリストの更新時に、改竄検出対象のファイルのサイズが増大して、更新前のMAC情報のエントリ数が増加した場合は、更新サーバ装置は、図18にて示すハッシュリスト122aを生成してもよい。図18においてファイル情報140aに対応するMAC情報141aの最後のエントリは、MAC情報1000に含まれるエントリ1001のアドレスを指すリンクエントリ144aとなっている。通常のエントリと、リンクエントリとは、サイズ及びハッシュとが異なる。リンクエントリのそれぞれには、数値が格納されずに、「―」が格納される。これにより、通常のエントリとリンクエントリとを区別することができる。
リンクエントリ144aのオフセットには、エントリ1001のアドレスを指す値として、ハッシュリスト内でのファイルからのオフセットが格納される。
このとき、ファイル情報140aに含まれるブロック数142aは、MAC情報141aとMAC情報1000とにおいて、リンクエントリ144aと、MAC情報1000の空エントリ1002(最終エントリ)とを除いたエントリ数である“4”となっている。
この場合のハッシュリストの生成方法の一例を以下に示す。
ハッシュリスト生成処理部212は、改竄検出鍵215を読み出す。そして、改竄検出鍵215を用いて、旧ハッシュリストのデータ部の復号を行い復号された旧ハッシュリストを生成する。以下復号された旧ハッシュリストを復号ハッシュリストという。
ハッシュリスト生成処理部212は、データ受取部211から受け取った1つ以上の更新ファイルに対して、所定のサイズに分割したブロック単位で、改竄検出処理部173と同一のハッシュ計算アルゴリズムを適用してハッシュ値を算出し、ターゲットパスリストから携帯電話機10におけるファイルパスを読み取り、復号ハッシュリストと比較して、データ部が暗号化されていないハッシュリストを生成する。このとき、生成したハッシュリストのサイズが復号ハッシュリストよりも大きくなるようなファイルの更新であった場合は、ハッシュリスト生成処理部212は、生成したハッシュリストを、図18に示すようなリンクエントリを用いたハッシュリストに変換する。
(4)上記第1の実施の形態において、改竄検出実行部105の改竄検出処理部173とファイル読込部174とを個別の構成としたが、これに限定されない。
改竄検出処理部173とファイル読込部174とを1つの構成要素としてもよい。
(5)上記第1の実施の形態において、ファイルの更新時には、指定されたAPを含む検出対象情報群を更新の対象としたが、これに限定されない。
1回の更新指示により、全ての検出対象情報群を更新の対象としてもよい。
(6)上記第1の実施の形態において、更新データリストのみを利用して、APに係るファイルを更新したが、これに限定されない。
更新サーバ装置は、携帯電話機へ、更新データリストとともに、更新対象となる1以上の更新ファイルを送信してもよい。このとき、送信される更新データリストには、ハッシュリストに係る更新情報のみから構成される。
(7)上記第1の実施の形態において、検出対象のファイルは、予め決められたサイズのブロック単位で分割されたが、これに限定されない。
更新サーバ装置は、ユーザの操作により入力値として、分割されるブロックのサイズを受け付ける構成であってもよい。これにより、ブロックのサイズを柔軟に設定できる。
(8)上記第1の実施の形態において、更新サーバ装置は、データ部ハッシュ値の算出を、データ部の暗号化後に行ったが、これに限定されない。
更新サーバ装置は、データ部の暗号化の前に、データ部ハッシュ値の算出を行ってもよい。
このとき、改竄検出の実行時には、データ部の復号後に、データ部に対するハッシュ値を算出し、ハッシュリスト自体の改竄検出を行うことになる。
(9)上記第1の実施の形態において、ハッシュリストのデータ部の暗号化に用いられる鍵と、ハッシュ計算に用いられる鍵とは、同一の鍵(改竄検出鍵)としたが、同一でなくてもよい。
(10)上記第1の実施の形態において、更新データリストは、ハッシュリストの更新内容とともに、更新ファイルの更新内容、及び更新された部分鍵を含めるとしたが、これに限定されない。
更新データリストは、ハッシュリスト用の更新データリスト、更新ファイル用の更新データリスト、及び部分鍵用の更新データリストに分けてもよい。
(11)上記第1の実施の形態において、ハッシュリストの更新は、携帯電話機を使用する使用者の要求によるものとしたが、更新サーバ装置からの強制アップデートであってもよい。
例えば、鍵更新装置で、更新サーバ装置に新たな改竄検出鍵が埋め込まれた場合には、更新サーバ装置は、更新された部分鍵を携帯電話機に送付するため、更新データリストを生成し、生成した更新データリストを、直ちに、携帯電話機へ送信する。
(12)上記第1の実施の形態において、他の携帯電話機は、携帯電話機10と同一のマスタ鍵を有してもよいし、異なるマスタ鍵を有してもよい。
携帯電話機間で異なるマスタ鍵を有する場合には、鍵更新装置は、複数のマスタ鍵を管理しており、更新された部分鍵から算出される改竄検出鍵も異なるため、更新サーバ装置においても複数の改竄検出鍵を管理することとなる。
(13)上記第1の実施の形態にて示すハッシュリストを、図19にて示すハッシュリスト122bとしてもよい。図19に示すハッシュリスト122bは、ヘッダ部130bにハッシュリストの版数を示すハッシュリストバージョン番号1010を有する。
この場合、携帯電話機は、更新サーバ装置に更新要求情報を送信するとき、ハッシュリストバージョン番号1010をも送信する。
更新サーバ装置は、生成したハッシュリストのハッシュリストバージョン番号毎に更新データリストを管理しておき、携帯電話機から受信したハッシュリストバージョン番号1010に応じた更新データリストを携帯電話機へ送信する。
(14)上記第1の実施の形態において、改竄検出処理は、ハッシュリストに含まれるMAC情報が有する全てのエントリを用いて、改竄検出を行ったがこれに限定されない。
より速度の求められる場合では、各MAC情報において、オフセットが0番のエントリのみをチェックするような手順であってもよい。また、ファイル情報のブロック数を読み込み、その半分のブロック数をチェックするような手順であってもよい。
つまり、改竄検出処理は、各MAC情報において、1つ以上のエントリをチェックするような手順であればよい。
(15)上記第1の実施の形態において、改竄検出の実行は、ハッシュリストの更新時、及び検出対象のAPの起動時としたが、これに限定されない。
改竄検出の実行は、携帯電話機の起動中に行ってもよいし、検出対象のAPを実行しているときに、バックグラウンドで実行してもよい。
または、携帯電話機は、当該携帯電話機の起動中に、定期的に改竄検出を実行してもよいし、検出対象のAPが起動している間に、起動しているAPに対する改竄検出を定期的に実行してもよい。
(16)図15にて示すステップS425において、携帯電話機は、データ部全体を復号しているが、これに限定されない。
携帯電話機は、MAC情報の1エントリ毎に復号を行うような構成であってもよい。
このとき、携帯電話機は、図15にて示すステップS415を実行後、ステップS425を省略し、ステップS430からステップS440までを実行する。このとき、読み出したエントリは暗号化されている。携帯電話機は、その後、読み出したエントリを復号し、ステップS445以降を行う。または、携帯電話機は、図15にて示すステップS415を実行後、ステップS425を省略し、ステップS430からステップS445までを実行し、その後、復号してもよい。
(17)上記第1の実施の形態において、ハッシュリストの更新時に、改竄検出対象のファイルのサイズが小さくなった場合には、不要となるエントリに含まれるサイズを「0」に設定する。
図20に、ファイルのブロック数が「8」から「7」に減少した場合の一例を示す。
この場合、更新前であるハッシュ情報1020において、8番目のブロックのエントリ1021に含まれるサイズは120が格納されている。ファイルの更新により、ブロック数が「8」から「7」に減少すると、8番目のブロックのエントリ1031に含まれるサイズを「0」として、ハッシュ情報1030が生成される。このとき、エントリ1031も更新の対象となることは言うまでもない。
改竄検出を実行する際には、携帯電話機は、エントリに含まれるサイズが「0」である場合には、そのエントリを無視、そのエントリに対する改竄のチェックは行わない。
なお、エントリ1031に含まれるハッシュ値は、更新前の値としているが、ハッシュ値を“0”にしてもよい。
これによると、携帯電話機は、サイズに格納される値を、当該サイズを含むエントリが改竄検出の対象であるか否かを判断する判断情報として用いることができる。つまり、値が「0」であると改竄検出の対象でないと判断し、「0」以外の値である場合には改竄検出の対象であると判断することができる。
(18)2つの携帯電話機(ここでは、携帯電話機11、12とする)において、携帯電話機11が機能A(例えば、オーディオデータの再生機能)を含む第1APと、機能B(例えば、コンテンツを暗号化しSDカードに格納するSD−Binding機能)を含む第2APとを具備し、携帯電話機12が機能A及び機能Bの双方を含む統合APを具備する場合、上記の第1の実施の形態にて示すように、AP毎に異なるハッシュリストが与えられてもよいし、以下に示すように1つのハッシュリストが与えられてもよい。
図21に、第1AP、第2AP、及び統合APに対して与えられた1つのハッシュリスト122cのデータ構成の一例を示す。なお、ヘッダ部130cのデータ構成は、第1の実施の形態にて示すハッシュリスト122のヘッダ部130のデータ構成と同様であるため、ここでの説明は省略する。
第1の実施の形態にて示すハッシュリスト122と異なる点は、ファイル情報に種別が追加されている点である。種別は、改竄検出の実行時に使用するハッシュ情報を識別するためのものであり、例えば、数値1、2、・・・、及びALLからなる。種別にALLが設定されると、ハッシュリストに含まれる全てのハッシュ情報が検出に用いられることを示し、数値が設定されると、設定された種別(数値)を含むファイル情報を有するハッシュ情報が検出の対象となる。
この場合、各AP(第1AP、第2AP、及び統合AP)は、自身の種別を記憶しており、起動時に記憶している種別を改竄検出実行部へ渡す。ここで、第1AP、第2AP、及び統合APのそれぞれには、種別1、2、ALLが設定されているものとする。
携帯電話機11において、第1APが起動されると、図21に示すように、種別「1」を含むファイル情報1040を有するハッシュ情報134cが、改竄検出の対象となる。
また、携帯電話機11において、第2APが起動されると、種別「2」を含むファイル情報1041を有するハッシュ情報135cが、改竄検出の対象となる。
携帯電話機12において、統合APが起動されると、統合APは種別「ALL」を記憶しているので、データ部131cに含まれる全てのハッシュ情報が、改竄検出の対象となる。
(19)上記第1の実施の形態にて示すハッシュリストにおいて改竄検出の対象のとなる少なくとも1つ以上のファイルを優先的に改竄検出を実行する優先度を設けてもよい。このとき、例えば、優先的に改竄検出されるファイルに対しては、APの起動時に改竄検出が実行され、他の改竄検出対象のファイルに対しては、APの起動が完了し、APが有する機能の動作中にバックグラウンドで改竄検出が実行される。
図22に、優先度を用いたハッシュリスト122dのデータ構成の一例を示す。なお、ヘッダ部130dのデータ構成は、第1の実施の形態にて示すハッシュリスト122のヘッダ部130のデータ構成と同様であるため、ここでの説明は省略する。
第1の実施の形態にて示すハッシュリスト122と異なる点は、データ部131dに第1オフセット1050と第2オフセット1051とからなる組みが追加されている点である。
第1オフセットは、優先的に改竄検出を行うハッシュ情報の先頭位置を示すオフセット値であり、第2オフセットは、優先的に改竄検出を行うハッシュ情報の最終位置を示すオフセット値である。
例えば、第1オフセットにハッシュ情報134dの先頭位置を示すオフセット値が格納され、第2オフセットにハッシュ情報134dの最終位置を示すオフセット値が格納されている場合には、ファイル名「file_1」であるファイルに対する改竄検出は、AP起動時に行われ、他のファイルに対する改竄検出は、動作中にバックグラウンドで行われる。
また、第1オフセットにハッシュ情報134dの先頭位置を示すオフセット値が格納され、第2オフセットにハッシュ情報136dの最終位置を示すオフセット値が格納されている場合には、ファイル名「file_1」であるファイル及びファイル名「file_2」であるファイルそれぞれに対する改竄検出は、AP起動時に行われ、他のファイルに対する改竄検出は、動作中にバックグラウンドで行われる。
(20)上記第1の実施の形態において、1つのAPファイル群、つまり1つのAPに対して、1つのハッシュリストが与えられたが、これに限定されない。
1以上のAPファイル群に対して、1つのハッシュリスト及び部分鍵を与えてもよい。
この場合における記憶部101構成を図23に示す。
図23において、記憶部101は1つの検出対象情報群1200を有している。
検出対象情報群1200は、1以上のAPファイル群1060、1061、・・・、1062と、ハッシュリスト122eと、部分鍵123eとを有している。
ハッシュリスト122eのデータ部には、APファイル群1060、1061、・・・、1062のそれぞれに含まれる各ファイルに対するハッシュ情報が含まれている。
検出対象情報群1200に含まれる1のAPが起動された場合、携帯電話機は、検出対象情報群1200に含まれる全てのファイルを改竄検出対象としてもよいし、起動されたAPに係る1以上のファイルのみを改竄検出の対象としてもよい。
(21)上記第1の実施の形態において、携帯電話機10の電源投入時に、更新制御部162は、フラグの値のチェックを行い、フラグの値が「1」である場合には、ファイルの更新を自動的に行ったが、これに限定されない。
携帯電話機10は、更新制御部162がフラグの値が「1」であると判断する場合には、ファイルの更新を再度行うか否かを通知し、ユーザから再度更新を行うとの指示を受け取った場合にファイルの更新を再度行ってもよい。
または、ファイルの更新を自動的に行う場合において、再度更新を行う旨をユーザに通知してもよい。
または、携帯電話機10の電源投入時に、更新制御部162は、フラグの値のチェックを行い、フラグの値が「1」である場合には、未更新のデータのみに対して更新を行ってもよい。つまり、携帯電話機10は、更新処理の途中(電源が落とされたときに動作していた時点)から更新の動作を行ってもよい。
(22)上記第1の実施の形態において、ハッシュリストのデータ部は暗号化されているとしたが、これに限定されない。
データ部は暗号化しなくてもよい。
(23)本発明におけるアプリケーションファイルとは、アプリケーションソフトウェアそのものや、アプリケーションソフトウェアから呼び出されるエンコーダ、デコーダ、ドライバ、アプリケーションソフトウェアが動作する環境を提供するJava(登録商標)VMのような仮想実行環境などである。また、アプリケーションファイルの概念に、部分鍵を含めてもよい。
(24)上記第1の実施の形態において、鍵更新装置は、外部装置から更新された部分鍵を取得するとしたが、これに限定されない。
鍵更新装置にて新たな部分鍵を生成して取得してもよい。
また、マスタ鍵は、鍵更新装置で記憶しておいてもよいし、外部装置から取得してもよい。
(25)上記第1の実施の形態において、更新データリストに含まれる更新データは、更新すべき情報であるファイルのうち更新対象となる1以上のブロック、ハッシュリストにおけるハッシュリストファイルサイズ、データ部ハッシュ値、ファイル情報、MAC情報に含まれるエントリなどが記録されているとしたが、これに限定されない。
更新すべき情報であるファイルのうち更新対象となる1以上のブロックを更新データとして記録する代わりに、アプリケーションソフトウェアを実行するための命令文などのような更新されたデータのみを記録してもよい。
また、更新対象となるブロックを、本願発明の「データ」の概念に含めてもよい。
(26)上記第1の実施の形態において、改竄検出用の値(改竄検出値)として、ハッシュ値を用いて改竄の検出を行ったが、これに限定されない。
ハッシュ値とは異なる値、データを用いてもよい。例えば、検証対象のデータを暗号化した結果等を改竄検出値として用いることができる。
(27)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(28)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(29)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(30)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(31)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
4.まとめ
本発明によれば、プログラム更新可能な電子機器においても実現可能な改竄検出方式の提供が可能となる。また、更新時の更新箇所を最小限にとどめ、更新時にかかる通信コストをおさえることができる。さらに電子機器の持つスペックに応じて、実行時の速度チューニングが可能な改竄検出方式の提供が可能となる。
また、改竄検出時に必要な鍵の生成に必要な情報を、更新サーバとは別の場所で管理することが可能であるため、万が一その鍵が漏洩しても鍵の発行および電子機器の鍵の更新が可能な改竄検出方式の提供が可能となる。
上記にて示したプログラム更新システムを構成する各装置は、電器機器製造産業において、経営的、つまり反復的かつ継続的に利用されうる。
また、本発明にかかるプログラム更新可能な電子機器における改竄検出方式は、セキュアなプログラムの実行を必要とする携帯電話をはじめとした組み込み機器がプログラムの更新機能を備えている場合に有用である。
プログラム更新システム1の概要を示す図である。 携帯電話機10の構成を示すブロック図である。 ハッシュリスト122のデータ構造の一例を示す図である。 更新データリスト150のデータ構造の一例を示す図である。 更新処理部103の構成を示すブロック図である。 改竄検出実行部105構成を示すブロック図である。 更新サーバ装置20の構成を示すブロック図である。 ハッシュリスト生成部203の構成を示すブロック図である。 鍵更新装置30の構成を示すブロック図である。 更新サーバ装置20にて行われる更新データリスト、及びハッシュリストの生成の動作を示す流れ図である。 ハッシュリスト更新時の動作概要を示す流れ図である。 携帯電話機10にて行われる更新処理の動作を示す流れ図である。図13へ続く。 携帯電話機10にて行われる更新処理の動作を示す流れ図である。図12から続く。 携帯電話機10にて行われるAP起動時の動作を示す流れ図である。 携帯電話機10にて行われる改竄検出処理の動作を示す流れ図である。図16へ続く。 携帯電話機10にて行われる改竄検出処理の動作を示す流れ図である。図15から続く。 第1の実施の形態で用いられる各鍵の関係と、鍵が利用される場面との関係を示す図である。 ハッシュリスト122aのデータ構造の一例を示す図である。 ハッシュリスト122bのデータ構造の一例を示す図である。 ファイルのブロック数が「8」から「7」に減少した場合のハッシュ情報1030の一例を示す。 ハッシュリスト122cのデータ構造の一例を示す図である。 ハッシュリスト122dのデータ構造の一例を示す図である。 1以上のAPファイル群に対して、1つのハッシュリスト及び部分鍵を与える場合における記憶部101構成を示すブロック図である。
符号の説明
1 プログラム更新システム
10 携帯電話機
20 更新サーバ装置
30 鍵更新装置
40 携帯網
50 インターネット
101 記憶部
102 制御部
103 更新処理部
104 更新ファイル受取部
105 改竄検出実行部
106 マイク
107 スピーカ
108 入力部
109 表示部
110 無線部
111 アンテナ
161 フラグ記憶部
162 更新制御部
163 更新データ読取部
164 更新データ解析部
165 書込位置決定部
166 更新データ書込部
167 更新確認部
171 検出制御部
172 改竄検出呼出部
173 改竄検出処理部
174 ファイル読込部
175 マスタ鍵記憶部
176 マスタ鍵
201 記憶部
202 データ取得部
203 ハッシュリスト生成部
204 ハッシュリスト書込部
205 更新要求処理部
206 入力部
207 送受信部
210 改竄検出鍵記憶部
211 データ受取部
212 ハッシュリスト生成処理部
213 暗号化処理部
214 更新データリスト生成部
215 改竄検出鍵
301 鍵取得部
302 改竄検出鍵生成部
303 改竄検出鍵配布部
304 出力部

Claims (25)

  1. アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する電子機器であって、
    1つ以上のデータからなるアプリケーションファイルを記憶し、且つ当該アプリケーションファイルを識別するファイル名、当該アプリケーションファイルを分割して生成したブロックの数、ブロック毎のサイズ及びハッシュ値からなるデータ部と、データ部のハッシュ値を含むヘッダ部とからなるハッシュリストを記憶している記憶手段と、
    前記アプリケーションファイルにおいて更新対象となるブロック毎に生成された、当該ブロックに対する更新後のブロック、当該更新後のブロックに対するサイズ、ハッシュ値、及び前記ハッシュリストのヘッダ部に含まれるデータ部のハッシュ値が記録された更新データと、前記アプリケーションファイルにおいて更新対象となるブロックの位置を示す位置情報と、更新データのサイズを示すサイズ情報とからなる更新データリストを、前記ネットワークを介して外部装置から受け取る受取手段と、
    耐タンパー性を有し、前記更新データリストに含まれる前記位置情報が示す位置に存在するブロックを当該更新データリストの前記更新データに記録された更新後のブロックに書き換えて、前記アプリケーションファイルの一部のみを更新し、且つ前記ハッシュリストの前記データ部における更新対象のブロックに対するハッシュ値及びサイズを、前記更新データリストの前記更新データに含まれる前記更新後のブロックに対するハッシュ値及びサイズに書き換え、前記ヘッダ部に含まれるデータ部のハッシュ値を前記更新データリストに記録された更新後のデータ部のハッシュ値へと書き換えて、前記ハッシュリストを更新する更新処理手段と、
    耐タンパー性を有し、前記アプリケーションファイルの更新時においては更新された前記アプリケーションファイルが改竄されているか否かの確認を、前記更新処理手段により更新されたハッシュリストを用いて更新後のアプリケーションファイルについてブロック毎に行い、及び前記アプリケーションファイルの起動時においては前記記憶手段で記憶している前記アプリケーションファイル改竄されているか否かの確認を、前記アプリケーションファイルの起動時に前記記憶手段で記憶しているハッシュリストを用いて前記アプリケーションファイルについてブロック毎に行う改竄検出実行手段と
    を備えることを特徴とする電子機器。
  2. 前記受取手段は、更新データと位置情報との組を少なくとも1つ以上受け取り、
    前記更新処理手段は、
    前記位置情報にて示される位置に基づいて、前記アプリケーションファイルの更新位置を決定する位置決定部と、
    決定された前記更新位置を前記更新データの書き込み開始位置として、前記更新データを書き込む書込部と、
    前記受取手段にて受け取った1つ以上の更新データ全ての書き込みが完了するまで、前記位置決定部と前記書込部の処理を行うように制御する更新制御部と
    を備えることを特徴とする請求項1に記載の電子機器。
  3. 前記更新制御部は、
    全ての更新データの書き込みが完了すると、前記改竄検出実行手段の処理を開始するように制御する
    ことを特徴とする請求項2に記載の電子機器。
  4. 前記更新処理手段は、さらに、
    アプリケーションファイルの更新中であることを示す第1の情報、又は更新中でないことを示す第2の情報の何れかを示すフラグを記憶しているフラグ記憶部と、
    前記フラグが示す情報を変更するフラグ変更部とを備え、
    前記フラグ変更部は、
    前記受取手段が更新データと位置情報との組を少なくとも1つ以上受け取るときに、前記フラグの情報を、前記第1の情報に変更し、前記改竄検出実行手段にて改竄が検出されなかった場合に、前記フラグの情報を、前記第2の情報に変更する
    ことを特徴とする請求項3に記載の電子機器。
  5. 前記更新制御部は、さらに、
    前記電子機器に電源が投入されると、前記フラグが示す情報を確認し、第1の情報である場合には、前記位置決定部と前記書込部の処理を行うように制御する
    ことを特徴とする請求項4に記載の電子機器。
  6. 前記改竄検出手段は、
    改竄検出対象であるブロックに対する検出用改竄検出値を算出し、算出した検出用改竄検出値と、改竄検出対象であるブロックに対する改竄検出値とが一致するか否かを判断し、一致すると判断する場合には前記アプリケーションファイルは改竄されていないとし、一致しない場合には前記アプリケーションファイルは改竄されているとする
    ことを特徴とする請求項1に記載の電子機器。
  7. 前記記憶部は、部分鍵を記憶しており、
    前記改竄検出実行手段は、耐タンパ化されており、マスタ鍵を記憶し、前記部分鍵と前記マスタ鍵とを用いて、改竄検出鍵を生成し、生成した改竄検出鍵を用いて、前記検出用改竄検出値を算出する
    ことを特徴とする請求項6に記載の電子機器。
  8. 前記受取手段は、前記部分鍵とは異なる別の部分鍵と、前記部分鍵が前記記憶部にて記憶されている位置を示す鍵位置情報とを受け取り、
    前記更新処理手段は、前記鍵位置情報に基づいて、前記部分鍵を前記別の部分鍵に更新する
    ことを特徴とする請求項7に記載の電子機器。
  9. 前記改竄検出リストは、前記1つ以上のブロックそれぞれに対する基準改竄検出値を含むデータ部と、前記データ部に対する基準データ部改竄検出値を含むヘッダ部とから構成され、
    前記改竄検出実行手段は、前記データ部に対する検出用データ部改竄検出値を算出し、算出した前記検出用データ部改竄検出と前記基準データ部改竄検出値とが一致する場合に、前記改竄検出リストが正当なものであるとする
    ことを特徴とする請求項1に記載の電子機器。
  10. 前記データ部は暗号化されており、
    前記改竄検出実行手段は、暗号化された前記データ部に対する検出用改竄検出値を算出し、前記改竄検出リストが正当なものである場合に、暗号化された前記データ部を復号する
    ことを特徴とする請求項9に記載の電子機器。
  11. 前記改竄検出リストにおいて、基準改竄検出値のそれぞれに対して、対応するブロックが改竄検出の対象として使用すべきか否かを示す判断情報が対応付けられており、
    前記改竄検出実行手段は、前記判断情報がブロックを改竄検出の対象としない旨を示す場合には、当該ブロックに対する改竄検出は行わない
    ことを特徴とする請求項1に記載の電子機器。
  12. 前記改竄検出リストは、前記1つ以上のブロックそれぞれに対する基準改竄検出値と、改竄検出の対象となるアプリケーションソフトウェアの種別を示すアプリケーション種別とが対応付けられた組を1つ以上含み、
    前記改竄検出実行手段は、起動されたアプリケーションソフトウェアに対するアプリケーション種別に対応する基準改竄検出値それぞれのうち少なくとも1つ以上の改竄検出値に基づいて、改竄検出の対象となるブロックが改竄されているか否かを確認する
    ことを特徴とする請求項1に記載の電子機器。
  13. 前記アプリケーションソフトウェアの動作に係るアプリケーションファイルは複数個あり、
    前記アプリケーションファイルのそれぞれは、1つ以上のブロックに分割されており、
    前記改竄検出リストは、アプリケーションファイルそれぞれに対して、1つ以上のブロックそれぞれに対する基準改竄検出値を基準値群として格納し、1つ以上の前記基準値群のうち前記アプリケーションソフトウェアの起動時に改竄検出に用いる少なくとも1つ以上の基準値群の範囲を示す範囲情報を有し、
    前記改竄検出実行手段は、前記アプリケーションソフトウェアの起動時に、前記改竄検出リストが有する前記範囲情報にて示される少なくとも1つ以上の基準値群を用いて、改竄検出の対象となるブロックが改竄されているか否かを確認する
    ことを特徴とする請求項1に記載の電子機器。
  14. 前記更新処理手段及び前記改竄検出実行手段は、耐タンパ化されている
    ことを特徴とする請求項2に記載の電子機器。
  15. 前記改竄検出実行手段は、さらに、
    前記アプリケーションソフトウェアの起動時に前記アプリケーションファイルが改竄されているか否かの確認を行う
    ことを特徴とする請求項1に記載の電子機器。
  16. 前記記憶手段は、さらに、
    前記アプリケーションファイルを構成するデータそれぞれに対応付けられた基準改竄検出値を含む改竄検出リストを記憶しており、
    前記改竄検出実行手段は、
    前記改竄検出リストが有する少なくとも1つ以上の基準改竄検出値に基づいて、前記アプリケーションファイルが改竄されているか否かを確認し、
    前記受信手段は、さらに、
    前記更新データに対応付けられた基準改竄検出値である更新用改竄検出値と、前記改竄検出リストにおいて前記更新用改竄検出値によって更新すべき基準改竄検出値が存在する位置を示す改竄検出値位置情報とを受け取り、
    前記更新処理手段は、
    前記更新検出値位置情報が示す位置に存在する基準改竄検出値を、前記更新用改竄検出値に書き換えることで、前記改竄検出リストの一部のみを更新する
    ことを特徴とする請求項15に記載の電子機器。
  17. 前記改竄検出実行手段は、さらに、
    前記更新処理手段による前記アプリケーションファィルの更新後も、更新された前記アプリケーションファイルが改竄されているか否かの確認を行うに先立って、前記改竄検出リストが正しく更新されているか否かの確認を行い、前記改竄検出リストが正しく更新されていると確認された場合に、前記更新された改竄検出リストに含まれる基準改竄検出値に基づいて、更新された前記アプリケーションファイルが改竄されているか否かの確認を行う
    ことを特徴とする請求項16に記載の電子機器。
  18. 前記改竄検出実行手段は、さらに、
    前記アプリケーションソフトウェアの起動時において、前記アプリケーションファイルが改竄されているか否かの確認を行うに先立って、前記記憶手段にて記憶されている改竄検出リストが改竄されているか否かを確認し、前記改竄検出リストが改竄されていないと確認された場合に、前記改竄検出リストに含まれる基準改竄検出値に基づいて、前記アプリケーションファイルが改竄されているか否かを確認する
    ことを特徴とする請求項16に記載の電子機器。
  19. 前記1つ以上のデータからなるアプリケーションファイルは、第1の機能に対応する第1アプリケーションファイル及び第2の機能に対応する第2アプリケーションファイルを含み、
    前記記憶手段は、さらに、
    前記第1アプリケーションファイルの改竄検出に使用する第1基準改竄検出値及び前記第1基準改竄検出値を識別する第1種別情報を記憶し、且つ、前記第2アプリケーションファイルの改竄検出に使用する第2基準改竄検出値及び前記第2基準改竄検出値を識別する第2識別情報を記憶しており、
    前記改竄検出実行手段は、
    前記記憶手段が、前記第1アプリケーションファイル及び前記第2アプリケーションファイルのそれぞれを個別のアプリケーションファイルとして含む場合、前記第1アプリケーションファイルの起動時に前記第1識別情報に基づいて前記第1基準改竄検出値を探して前記第1基準改竄検出値に基づいて前記第1アプリケーションファイルが改竄されているか否かを確認し、前記第2アプリケーションファイルの起動時に前記第2識別情報に基づいて前記第2基準改竄検出値を探して前記第2基準改竄検出値に基づいて前記第2アプリケーションファイルが改竄されているか否かを確認し、
    一方、前記記憶手段が、前記第1アプリケーションファイル及び前記第2アプリケーションファイルを統合した一つのアプリシーョンファイルとして含む場合、前記統合した一つのアプリケーションファイルの起動時に前記第1識別情報及び前記第2識別情報に基づいて前記第1基準改竄検出値及び前記第2基準改竄検出値を探して前記第1基準改竄検出値及び前記第2基準改竄検出値に基づいて前記統合した一つのアプリケーションファイルが改竄されているか否かを確認する
    ことを特徴とする請求項1記載の電子機器。
  20. 前記記憶手段は、さらに、
    前記1つ以上のデータからなるアプリケーションファイルを複数記憶し、前記複数のアプリケーションファイルの各々を構成するデータそれぞれに対応付けられた基準改竄検出値を記憶し、
    優先的に改竄検出を行う基準改竄検出値の先頭位置を示す第1位置情報と優先的に改竄検出を行う基準改竄検出値の最終位置を示す第2位置情報とを記憶し、
    前記改竄検出実行手段は、
    前記第1位置情報から前記第2位置情報に対応する基準改竄検出値に対応するデータについてはそのデータにより構成されるアプリケーションの起動時に改竄されているか否かを確認し、
    一方、前記第1位置情報から前記第2位置情報に対応する基準改竄検出値に対応していないデータに対する改竄検出は、前記電子機器の動作中にバックグラウンドで行う
    ことを特徴とする請求項1記載の電子機器。
  21. 前記電子機器は、
    更新後のアプリケーションファイルを取得する第1取得手段と、取得した前記更新後のアプリケーションファイルから更新データと、更新前のアプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを取得する第2取得手段と、取得した前記更新データと前記位置情報とを前記電子機器へ送信する送信手段とを備え、ネットワークを介して電子機器に、前記電子機器が有し、且つ1つ以上のデータからなるアプリケーションファイルの更新を行わせる更新サーバ装置を有するシステムに含まれる
    ことを特徴とする請求項1に記載の電子機器。
  22. アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する電子機器で用いられる更新方法であって、
    前記電子機器は
    1つ以上のデータからなるアプリケーションファイルを記憶し、且つ当該アプリケーションファイルを識別するファイル名、当該アプリケーションファイルを分割して生成したブロックの数、ブロック毎のサイズ及びハッシュ値からなるデータ部と、データ部のハッシュ値を含むヘッダ部とからなるハッシュリストを記憶している記憶手段を備え、
    前記更新方法は、
    前記アプリケーションファイルにおいて更新対象となるブロック毎に生成された、当該ブロックに対する更新後のブロック、当該更新後のブロックに対するサイズ、ハッシュ値、及び前記ハッシュリストのヘッダ部に含まれるデータ部のハッシュ値が記録された更新データと、前記アプリケーションファイルにおいて更新対象となるブロックの位置を示す位置情報と、更新データのサイズを示すサイズ情報とからなる更新データリストを、前記ネットワークを介して外部装置から受け取る受取ステップと、
    前記更新データリストに含まれる前記位置情報が示す位置に存在するブロックを当該更新データリストの前記更新データに記録された更新後のブロックに書き換えて、前記アプリケーションファイルの一部のみを更新し、且つ前記ハッシュリストの前記データ部における更新対象のブロックに対するハッシュ値及びサイズを、前記更新データリストの前記更新データに含まれる前記更新後のブロックに対するハッシュ値及びサイズに書き換え、前記ヘッダ部に含まれるデータ部のハッシュ値を前記更新データリストに記録された更新後のデータ部のハッシュ値へと書き換えて、前記ハッシュリストを更新する更新処理ステップと、
    前記アプリケーションファイルの更新時においては更新された前記アプリケーションファイルが改竄されているか否かの確認を、前記更新処理ステップにより更新されたハッシュリストを用いて更新後のアプリケーションファイルについてブロック毎に行い、及び前記アプリケーションファイルの起動時においては前記記憶手段で記憶している前記アプリケーションファイル改竄されているか否かの確認を、前記アプリケーションファイルの起動時に前記記憶手段で記憶しているハッシュリストを用いて前記アプリケーションファイルについてブロック毎に行う改竄検出実行ステップと
    を含むことを特徴とする更新方法。
  23. アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する電子機器で用いられる更新プログラムであって、
    前記電子機器は
    1つ以上のデータからなるアプリケーションファイルを記憶し、且つ当該アプリケーションファイルを識別するファイル名、当該アプリケーションファイルを分割して生成したブロックの数、ブロック毎のサイズ及びハッシュ値からなるデータ部と、データ部のハッシュ値を含むヘッダ部とからなるハッシュリストを記憶している記憶手段を備え、
    前記更新プログラムは、
    前記アプリケーションファイルにおいて更新対象となるブロック毎に生成された、当該ブロックに対する更新後のブロック、当該更新後のブロックに対するサイズ、ハッシュ値、及び前記ハッシュリストのヘッダ部に含まれるデータ部のハッシュ値が記録された更新データと、前記アプリケーションファイルにおいて更新対象となるブロックの位置を示す位置情報と、更新データのサイズを示すサイズ情報とからなる更新データリストを、前記ネットワークを介して外部装置から受け取る受取ステップと、
    前記更新データリストに含まれる前記位置情報が示す位置に存在するブロックを当該更新データリストの前記更新データに記録された更新後のブロックに書き換えて、前記アプリケーションファイルの一部のみを更新し、且つ前記ハッシュリストの前記データ部における更新対象のブロックに対するハッシュ値及びサイズを、前記更新データリストの前記更新データに含まれる前記更新後のブロックに対するハッシュ値及びサイズに書き換え、前記ヘッダ部に含まれるデータ部のハッシュ値を前記更新データリストに記録された更新後のデータ部のハッシュ値へと書き換えて、前記ハッシュリストを更新する更新処理ステップと、
    前記アプリケーションファイルの更新時においては更新された前記アプリケーションファイルが改竄されているか否かの確認を、前記更新処理ステップにより更新されたハッシュリストを用いて更新後のアプリケーションファイルについてブロック毎に行い、及び前記アプリケーションファイルの起動時においては前記記憶手段で記憶している前記アプリケーションファイル改竄されているか否かの確認を、前記アプリケーションファイルの起動時に前記記憶手段で記憶しているハッシュリストを用いて前記アプリケーションファイルについてブロック毎に行う改竄検出実行ステップと
    を含むことを特徴とする更新プログラム。
  24. 前記更新プログラムは、コンピュータ読み取り可能な記録媒体に記録されていることを特徴とする請求項23に記載の更新プログラム。
  25. アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する電子機器の集積回路であって、
    前記電子機器は
    1つ以上のデータからなるアプリケーションファイルを記憶し、且つ当該アプリケーションファイルを識別するファイル名、当該アプリケーションファイルを分割して生成したブロックの数、ブロック毎のサイズ及びハッシュ値からなるデータ部と、データ部のハッシュ値を含むヘッダ部とからなるハッシュリストを記憶している記憶手段を備え、
    前記集積回路は、
    前記アプリケーションファイルにおいて更新対象となるブロック毎に生成された、当該ブロックに対する更新後のブロック、当該更新後のブロックに対するサイズ、ハッシュ値、及び前記ハッシュリストのヘッダ部に含まれるデータ部のハッシュ値が記録された更新データと、前記アプリケーションファイルにおいて更新対象となるブロックの位置を示す位置情報と、更新データのサイズを示すサイズ情報とからなる更新データリストを、前記ネットワークを介して外部装置から受け取る受取手段と、
    耐タンパー性を有し、前記更新データリストに含まれる前記位置情報が示す位置に存在するブロックを当該更新データリストの前記更新データに記録された更新後のブロックに書き換えて、前記アプリケーションファイルの一部のみを更新し、且つ前記ハッシュリストの前記データ部における更新対象のブロックに対するハッシュ値及びサイズを、前記更新データリストの前記更新データに含まれる前記更新後のブロックに対するハッシュ値及びサイズに書き換え、前記ヘッダ部に含まれるデータ部のハッシュ値を前記更新データリストに記録された更新後のデータ部のハッシュ値へと書き換えて、前記ハッシュリストを更新する更新処理手段と、
    耐タンパー性を有し、前記アプリケーションファイルの更新時においては更新された前記アプリケーションファイルが改竄されているか否かの確認を、前記更新処理手段により更新されたハッシュリストを用いて更新後のアプリケーションファイルについてブロック毎に行い、及び前記アプリケーションファイルの起動時においては前記記憶手段で記憶している前記アプリケーションファイル改竄されているか否かの確認を、前記アプリケーションファイルの起動時に前記記憶手段で記憶しているハッシュリストを用いて前記アプリケーションファイルについてブロック毎に行う改竄検出実行手段と
    を備えることを特徴とする集積回路。
JP2007519003A 2005-06-01 2006-05-30 電子機器、更新サーバ装置、鍵更新装置 Active JP4891902B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007519003A JP4891902B2 (ja) 2005-06-01 2006-05-30 電子機器、更新サーバ装置、鍵更新装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005161358 2005-06-01
JP2005161358 2005-06-01
JP2007519003A JP4891902B2 (ja) 2005-06-01 2006-05-30 電子機器、更新サーバ装置、鍵更新装置
PCT/JP2006/310764 WO2006129654A1 (ja) 2005-06-01 2006-05-30 電子機器、更新サーバ装置、鍵更新装置

Publications (2)

Publication Number Publication Date
JPWO2006129654A1 JPWO2006129654A1 (ja) 2009-01-08
JP4891902B2 true JP4891902B2 (ja) 2012-03-07

Family

ID=37481583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007519003A Active JP4891902B2 (ja) 2005-06-01 2006-05-30 電子機器、更新サーバ装置、鍵更新装置

Country Status (6)

Country Link
US (1) US7934256B2 (ja)
EP (1) EP1887731A1 (ja)
JP (1) JP4891902B2 (ja)
KR (1) KR20080013940A (ja)
CN (1) CN100578522C (ja)
WO (1) WO2006129654A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL133584A (en) * 1999-12-19 2010-02-17 Enco Tone Ltd Method for the acoustic encodification of dynamic identification codes
JP4640083B2 (ja) * 2005-09-29 2011-03-02 セイコーエプソン株式会社 デバイス管理システム
JP4751785B2 (ja) * 2006-07-31 2011-08-17 富士通株式会社 伝送装置およびソフトウェア自動更新方法
US8412926B1 (en) * 2007-04-11 2013-04-02 Juniper Networks, Inc. Using file metadata for data obfuscation
WO2009013831A1 (ja) * 2007-07-26 2009-01-29 Panasonic Corporation 情報処理端末及び改ざん検証方法
JP2009053901A (ja) * 2007-08-27 2009-03-12 Seiko Epson Corp プリンタ
CN101382885B (zh) * 2007-09-06 2012-05-09 联想(北京)有限公司 一种数据文件的多版本控制方法及装置
US8413130B2 (en) * 2007-10-03 2013-04-02 International Business Machines Corporation System and method for self policing of authorized configuration by end points
US8806220B2 (en) * 2009-01-07 2014-08-12 Microsoft Corporation Device side host integrity validation
US8225316B1 (en) * 2009-02-11 2012-07-17 Symantec Corporation Methods and systems for creating and applying patches for virtualized applications
US8438401B2 (en) * 2009-09-22 2013-05-07 Raytheon BBN Technologies, Corp. Device and method for securely storing data
JP5681028B2 (ja) * 2010-04-26 2015-03-04 パナソニック株式会社 改ざん監視システム、管理装置及び管理方法
US8977739B2 (en) * 2010-05-03 2015-03-10 Salesforce.Com, Inc. Configurable frame work for testing and analysis of client-side web browser page performance
JP5960678B2 (ja) * 2011-03-15 2016-08-02 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
JP5708107B2 (ja) 2011-03-23 2015-04-30 日本電気株式会社 重複ファイル検出装置
CN102831362B (zh) * 2012-07-25 2014-12-10 飞天诚信科技股份有限公司 一种安全生产智能密钥设备的方法及装置
US9552296B2 (en) * 2013-03-15 2017-01-24 International Business Machines Corporation Verifying shared memory integrity
US9633227B2 (en) * 2013-07-29 2017-04-25 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and system of detecting unauthorized data modification
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
CN105335181A (zh) * 2014-08-06 2016-02-17 中兴通讯股份有限公司 一种实现ota升级的方法和终端
JP6618480B2 (ja) * 2014-11-12 2019-12-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 更新管理方法、更新管理システム及び制御プログラム
JP6888122B2 (ja) 2018-01-19 2021-06-16 ルネサスエレクトロニクス株式会社 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
JP7000895B2 (ja) * 2018-02-09 2022-01-19 株式会社デンソー 配布対象データの配布システム、及び配布対象データの取得方法
JP6697038B2 (ja) * 2018-07-31 2020-05-20 日本電信電話株式会社 情報処理装置、検証方法および検証プログラム
US12210504B2 (en) * 2019-01-23 2025-01-28 Scalar, Inc. System with tamper-evidence
JP7282616B2 (ja) * 2019-06-27 2023-05-29 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN111135581B (zh) * 2019-12-26 2023-09-12 网易(杭州)网络有限公司 游戏更新的方法与装置
DE112021007471T5 (de) * 2021-04-07 2024-01-18 Mitsubishi Electric Corporation Code-anpassungseinrichtung und code-anpassungsverfahren

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016565A (ja) * 2000-06-30 2002-01-18 Toshiba Corp 情報配信方法および情報配信装置および放送受信装置
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
JP2004514214A (ja) * 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
JP2005515534A (ja) * 2002-01-18 2005-05-26 テレフォンアクチーボラゲット エル エム エリクソン(パブル) 移動端末にデータをロードする方法
JP2007506187A (ja) * 2003-09-18 2007-03-15 アップル コンピュータ、インコーポレイテッド インクリメンタルなコード署名の方法及び装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6191701B1 (en) * 1995-08-25 2001-02-20 Microchip Technology Incorporated Secure self learning system
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US6453383B1 (en) * 1999-03-15 2002-09-17 Powerquest Corporation Manipulation of computer volume segments
DE60036189T2 (de) * 1999-11-25 2008-05-21 Matsushita Electric Industrial Co., Ltd., Kadoma Informationeinbettungsgerät und -verfahren für Erfassung von Verfälschungen
JP2002070636A (ja) * 2000-08-31 2002-03-08 Suzuki Motor Corp 車載電子制御装置、データ書換システム、データ書換方法、及び記憶媒体
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US20020181732A1 (en) * 2001-04-10 2002-12-05 Motorola, Inc Method of collaborative watermarking of a digital content
JP2003044155A (ja) * 2001-07-30 2003-02-14 Hitachi-Lg Data Storage Inc ソフトウェアのインストール方法及びファームウェアのアップデート方法及びそれらに用いる記録再生装置及び記録媒体
US7299463B2 (en) * 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
JP2003317387A (ja) * 2002-04-16 2003-11-07 Matsushita Electric Ind Co Ltd 情報記録装置および記録媒体への情報記録方法
CN101145177B (zh) * 2002-08-01 2011-06-15 松下电器产业株式会社 加密程序生成方法和设备
JP4475894B2 (ja) 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
US20040083373A1 (en) * 2002-10-28 2004-04-29 Perkins Gregory M. Automatically generated cryptographic functions for renewable tamper resistant security systems
JP2004152136A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム
US7337309B2 (en) * 2003-03-24 2008-02-26 Intel Corporation Secure online BIOS update schemes
JP4257150B2 (ja) * 2003-05-16 2009-04-22 沖電気工業株式会社 印刷文書の改ざん検出装置および改ざん検出方法
JP4462852B2 (ja) * 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US20040268068A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Efficient method for copying and creating block-level incremental backups of large files and sparse files
EP1519530A1 (en) * 2003-09-29 2005-03-30 STMicroelectronics S.r.l. Method for establishing an encrypted communication by means of keys
US7624269B2 (en) * 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
US7673148B2 (en) * 2004-10-15 2010-03-02 Microsoft Corporation Versioning component for applications
US7310716B2 (en) * 2005-03-04 2007-12-18 Emc Corporation Techniques for producing a consistent copy of source data at a target location
US7177994B2 (en) * 2005-03-04 2007-02-13 Emc Corporation Checkpoint and consistency markers
US7822200B2 (en) * 2005-03-07 2010-10-26 Microsoft Corporation Method and system for asymmetric key security

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
JP2002016565A (ja) * 2000-06-30 2002-01-18 Toshiba Corp 情報配信方法および情報配信装置および放送受信装置
JP2004514214A (ja) * 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
JP2005515534A (ja) * 2002-01-18 2005-05-26 テレフォンアクチーボラゲット エル エム エリクソン(パブル) 移動端末にデータをロードする方法
JP2007506187A (ja) * 2003-09-18 2007-03-15 アップル コンピュータ、インコーポレイテッド インクリメンタルなコード署名の方法及び装置

Also Published As

Publication number Publication date
WO2006129654A1 (ja) 2006-12-07
CN101189617A (zh) 2008-05-28
CN100578522C (zh) 2010-01-06
EP1887731A1 (en) 2008-02-13
JPWO2006129654A1 (ja) 2009-01-08
KR20080013940A (ko) 2008-02-13
US7934256B2 (en) 2011-04-26
US20090193521A1 (en) 2009-07-30

Similar Documents

Publication Publication Date Title
JP4891902B2 (ja) 電子機器、更新サーバ装置、鍵更新装置
US20210192095A1 (en) Program execution device
JP5006307B2 (ja) 電子機器、コンテンツ再生制御方法、プログラム、記憶媒体、集積回路
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US20080162949A1 (en) Program Conversion Device and Program Execution Device
WO2005096121A1 (ja) 実行装置
JP2009070408A (ja) 情報処理装置
US20080168562A1 (en) Secure Processing Device and Secure Processing System
JP4889638B2 (ja) 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
JP2007233426A (ja) アプリケーション実行装置
JP5255991B2 (ja) 情報処理装置、及びコンピュータプログラム
JP4816012B2 (ja) 情報処理装置、ソフトウェアインストール方法、および光ディスク
CN102982262B (zh) 用于开发的操作系统的安全机制
JP4796050B2 (ja) セキュア処理装置、及びセキュア処理システム
JP2010165206A (ja) メモリコントローラおよび不揮発性記憶装置
KR101405915B1 (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
CN101324914A (zh) 一种防盗版的方法和装置
JP4898823B2 (ja) アプリケーション情報改竄監視装置及び方法
JP4597651B2 (ja) メディア内のデータのリッピングを制御するための情報処理ユニット、方法及びプログラム
CN1898625A (zh) 许可信息管理设备和许可信息管理方法
JP2010061182A (ja) ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム
JP2006229672A (ja) コンテンツ再生装置、セキュア処理プログラム、セキュア処理プログラムが記録された記録媒体、権利管理プログラム、及び権利管理プログラムが記録された記録媒体
JP2003143540A (ja) 情報処理装置、情報処理システム、記録媒体へのアクセス制御方法、記憶媒体、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090324

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111216

R150 Certificate of patent or registration of utility model

Ref document number: 4891902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3