JP2007328541A - 電子機器 - Google Patents

電子機器 Download PDF

Info

Publication number
JP2007328541A
JP2007328541A JP2006159013A JP2006159013A JP2007328541A JP 2007328541 A JP2007328541 A JP 2007328541A JP 2006159013 A JP2006159013 A JP 2006159013A JP 2006159013 A JP2006159013 A JP 2006159013A JP 2007328541 A JP2007328541 A JP 2007328541A
Authority
JP
Japan
Prior art keywords
loader
kernel
header
encrypted
elf
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.)
Pending
Application number
JP2006159013A
Other languages
English (en)
Inventor
Tsutomu Uno
勉 宇野
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006159013A priority Critical patent/JP2007328541A/ja
Publication of JP2007328541A publication Critical patent/JP2007328541A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】プログラムの改ざんの検知機能を有し、改ざんの防止のため解析を困難とし、かつ復号化処理の時間を短縮する。
【解決手段】ELF形式でコンパイルされたOSローダ及びカーネルのELFヘッダ部を暗号化し、暗号化ヘッダを追加した形式でROMに記録する。起動時には、この暗号化ヘッダ部を読み出し、暗号化ヘッダとして有効かを判断し、有効であれば暗号化部分をRAMに復号化し展開する。非暗号化部分はそのままRAMにコピーする。
【選択図】図3

Description

本発明は、プログラムをROMやHDD等の記憶部から読み出して実行する電子機器に関する。
電子機器において、CPUの高機能化、高速化、ROMやRAMといった記憶部の大容量化に伴い、プログラムの多機能化が進んできている。このような状況下でオープンソースを利用し、ソフトを再利用することで開発効率を上げる試みがなされている。しかしながら、このようなオープンソースの利用は、安定した機能を簡単に利用できる反面、ソースコードの公開が義務付けられていることに伴う不具合がある。例えば、悪意を持った第三者が、公開されたソースコードを改造し作成したプログラムコードを利用して、簡単に電子機器を不正に利用することが可能となってしまう。こうした問題に対して、プログラムコード全体を暗号化することで、改ざんされたコードを検知し、不正に改造されたプログラムの起動を阻止するといった対策等がなされてきた。
これらは、プログラム全体を暗号化しているため、復号に時間がかかってしまうというという問題点がある。
特開平10−333902号公報 特開2004−280284号公報
本発明の目的は、プログラム領域の関数のエントリを含む一部を暗号化することで、プログラム自体の解析を困難にし、プログラム改ざんを検知可能とし、さらに従来よりも復号化処理にかかる時間が短くなる電子装置を提供することにある。
前記課題を解決するために本発明は、起動するとブートプログラムを実行し、前記ブートプログラムが、ROMやHDD等の第1の記憶部に記録されたOSローダプログラムを実行し、前記OSローダプログラムがカーネルプログラムを実行し、その後各アプリケーションを順次実行していく起動手段と、OSローダとカーネルはELF形式でコンパイルされ、ELF形式のELFヘッダ部が暗号化され、暗号化ヘッダを追加した形式で、ROMやHDD等の第2の記憶部に記録されており、それぞれの暗号化ヘッダ部分を読み出し、暗号化ヘッダとして有効か判定し、暗号化部分をRAMに復号化し展開し、非暗号化部分をそのまま前記RAMにコピーする復号化手段と、前記復号化されたOSローダ及びカーネルのELFヘッダ部を解析し、有効なデータか判断し、前記OSローダ及びカーネルを起動させるOSローダ・カーネル起動手段を持つことを特徴とする電子機器等、を提供する。
本発明によれば、プログラム領域の関数のエントリを含む一部を暗号化することで、プログラム自体の解析を困難にし、プログラム改ざんを検知可能とし、更に従来よりも復号化処理にかかる時間が短くなる電子機器を提供することが可能になる。
(第1の実施形態)
本発明の実施の形態について以下に図面を用いて説明する。
本発明の実施形態に係る電子機器のプログラムには、大きくブートローダ、OSローダ、カーネルが含まれている。OSローダ、カーネルは、コンパイル後、ELFヘッダ部分を暗号化し、先頭にサイズが記された暗号化ヘッダが追加されたものである。これらのブートローダ、OSローダ、カーネルはROMやHDDといった記憶部に記憶されている。ここでは、記憶部としてROMに記憶されている場合の実施形態について述べる。
図1に本発明の電子機器のブロック図を示す。図中の101は起動手段を示し、102は復号化手段を示し、103はOSローダ・カーネル起動手段を示す。起動手段101のフローチャートを図4に示し、復号化手段102のフローチャートを図5に示し、OSローダ・カーネル起動手段103のフローチャートを図6に示す。
図2に本発明の電子機器のシステム構成図を示す。図中の201はCPUであり、202はRAMであり、203は記憶部である。記憶部203の中には、HDD等の外部記憶装置204やROM205等が含まれている。予め、ブートローダ、OSローダ、カーネルは、記憶部203に記憶されているものとする。RAM202は、例えば、ブートローダが、OSローダ、カーネルを復号化しコピーする際に利用する。
図3に、復号化処理の概念図を示す。図中の310はROMを示し、320はRAMを示す。ROM310には、ブートローダ311、OSローダ用暗号化ヘッダ312、OSローダ313、カーネル用暗号化ヘッダ315及びカーネル316が記憶されている。OSローダ313の一部であるELFヘッダ部314は、予め暗号化されて記憶されている。また、カーネル316の一部であるELFヘッダ部317も、予め暗号化されて記憶されている。
OSローダ313の暗号化ヘッダ312は、図3に示すように、OSローダ313の暗号化されているELFヘッダ314の開始アドレス及びサイズを情報331として持っている。また、カーネル316の暗号化ヘッダ315は、図3に示すように、カーネル316の暗号化されているELFヘッダ316の開始アドレス及びサイズを情報332として持っている。
RAM320には、起動後、復号化手段102により、暗号化ヘッダ312の情報331から、OSローダ313がOSローダ321としてコピーされ、OSローダ313のELFヘッダ314が復号化された上で、ELFヘッダ322としてコピーされる。また、カーネル部についても同様に、暗号化ヘッダ315の情報332から、カーネル316がカーネル323としてコピーされ、カーネル316のELFヘッダ317が復号化された上で、ELFヘッダ324としてコピーされる。
次に、図4を参照しながら、本発明の実施形態に係る電子機器の起動手段101の動作について説明する。
電源投入後、ステップS401にて、ブートローダが実行される。ブートローダは、ROMやHDDといった記憶部に記憶されているOSローダとカーネルを、復号化手段102を用いて実行できる形式に復号してRAM320(202)にコピーする。そして、ブートローダはOSローダ・カーネル起動手段103を用いて、有効なプログラムかを判断する。有効なプログラムと判断された場合は、ブートローダは、ステップS402にて、RAM320にコピーしたOSローダ321を実行する。OSローダは、ブートローダによってRAM320にコピーしたカーネル323をロードし、CPUレジスタの初期化、各デバイスの初期化等を行った後、ステップS403にて、カーネル323を実行する。ステップS403にて、カーネルは、デバイスの検出やコンフィグレーション等のOSの起動処理を行い、ステップS404の各アプリケーションの実行を順次行う。
次に、図5を参照しながら、復号化手段102の動作について説明する。
ステップS501からステップS505の処理を、先ず、OSローダに対して行い、続いてカーネルに対して同様に行う。ステップS501にて、ROM等の記憶部に記録されている暗号化ヘッダを読み出し、ステップS502にて、暗号化ヘッダとして有効であるか判定を行う。有効と判断された場合は、ステップS503へ進み、無効と判断された場合は、エラーとしてステップS504へ進み、その後の処理をすべて停止する。
ステップS503では、ステップS501で読み出した暗号化ヘッダから、暗号化されている領域についての開始アドレス及びサイズを取得し、暗号化部を復号化しながらRAM320にコピーする。また、ステップS505では、残りの非暗号化部をそのままRAM320にコピーする。これを、OSローダ313及びカーネル316の夫々に対して実行する。
次に、図6を参照しながら、OSローダ・カーネル起動手段103の動作について説明する。
ステップS601では、RAM320にコピーされた復号化復号済みのOSローダ321のELFヘッダ322を読み出す。ステップS602の判定処理で、ELFヘッダ322が有効かを、例えば、ELFの認識コードがあるかどうか等に基づいて判断し、有効であればステップS603へ進み、処理を継続する。無効であればステップS604へ進み、エラーとしてその後の処理をすべて停止する。
その後、ステップS603では、RAM320にコピーされた復号化復号済みのカーネル323のELFヘッダ324を読み出す。ステップS605の判定処理で、ELFヘッダ324が有効かを、例えば、ELFの認識コードがあるかどうか等に基づいて判断し、有効であればステップS606へ進み、処理を継続する。無効であればステップS607へ進み、エラーとしてその後の処理をすべて停止する。以上の処理で、OSローダ321及びカーネル323のELFヘッダ322及び324が有効であると判断された時は、ステップS606へ進み、OSローダ321を起動し、ステップS608でカーネル323を起動する。
(第2の実施形態)
次に、第2の実施形態について説明する。図7は、OSローダ及びカーネルが、ELF形式以外のもので、関数情報が格納されている領域が暗号化される場合における復号化処理を示す概念図である。
図中の710はROMを示し、720はRAMを示す。ROM710には、ブートローダ711、OSローダ用暗号化ヘッダ712、OSローダ713、カーネル用暗号化ヘッダ715及びカーネル716が記憶されている。OSローダ713の一部である関数情報部714は、予め暗号化されて記憶されている。また、カーネル716の一部である関数情報部717も、予め暗号化されて記憶されている。
OSローダ713の暗号化ヘッダ712は、図7に示すように、OSローダ713の暗号化されている関数情報部714の開始アドレス及びサイズを情報731として持っている。また、カーネル716の暗号化ヘッダ715は、図7に示すように、カーネル716の暗号化されている関数情報部717の開始アドレス及びサイズを情報732として持っている。
RAM720には、起動後、復号化手段102により、暗号化ヘッダ712の情報731から、OSローダ713がOSローダ721としてコピーされ、OSローダ713の関数情報部714が復号化された上で、関数情報部722としてコピーされる。また、カーネル部についても同様に、暗号化ヘッダ715の情報732から、カーネル716がカーネル723としてコピーされ、カーネル716の関数情報部717が復号化された上で、関数情報部724としてコピーされる。
(第3の実施形態)
次に、第3の実施形態について説明する。図8は、ブートローダとOSローダとが一体となった場合における復号化処理を示す概念図である。
図中の810はROMを示し、820はRAMを示す。ROM810には、ブートローダ811、OSローダ812、カーネル用暗号化ヘッダ813及びカーネル814が記憶されている。なお、ブートローダ811及びOSローダ812は一体化されて記憶されている。一方、カーネル814の一部であるELFヘッダ又は関数情報部815は、予め暗号化されて記憶されている。
カーネルの暗号化ヘッダ813は、図8に示すように、カーネル814の暗号化されているELFヘッダ又は関数情報部815の開始アドレス及びサイズを情報831として持っている。
RAM820には、起動後、復号化手段102により、暗号化ヘッダ813の情報831から、カーネル814がカーネル821としてコピーされる。また、カーネル814のELFヘッダ又は関数情報部815が復号化された上で、ELFヘッダ又は関数情報部822としてコピーされる。
(第4の実施形態)
次に、第4の実施形態について説明する。図9は、OSローダとカーネルとが一体となった場合における復号化処理を示す概念図である。
図中の910はROMを、920はRAMを示す。ROM910には、ブートローダ911、OSローダ及びカーネル用の暗号化ヘッダ912、並びに一体化されたOSローダ及びカーネル913が記憶されている。また、OSローダ及びカーネル913の一部であるELFヘッダ又は関数情報部914は、予め暗号化されて記憶されている。
暗号化ヘッダ912は、図9に示すように、暗号化されているELFヘッダ又は関数情報部914の開始アドレス及びサイズを情報931として持っている。
RAM920には、起動後、復号化手段102により、暗号化ヘッダ912の情報931から、OSローダ及びカーネル913がOSローダ及びカーネル921としてコピーされる。また、ELFヘッダ又は関数情報部914が復号化された上で、ELFヘッダ又は関数情報部922としてコピーされる。
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
電子機器のブロック図である。 電子機器のシステム構成図である。 復号化処理の概念図である。 起動手段のフローチャートを示す図である。 復号化手段のフローチャートを示す図である。 OSローダ・カーネル起動手段のフローチャートを示す図である。 OSローダとカーネルが、ELF形式以外のもので、関数情報が格納されている領域が暗号化される場合における復号化処理の概念図である。 ブートローダとOSローダが一体となった場合における復号化処理の概念図である。 OSローダとカーネルが一体となった場合における復号化処理の概念図である。
符号の説明
310:ROM
311:ブートローダ
312:暗号化ヘッダ
313:OSローダ
314:ELFヘッダ
315:暗号化ヘッダ
316:カーネル
317:ELFヘッダ
320:RAM
321:OSローダ
322:ELFヘッダ
323:カーネル
324:ELFヘッダ
331:暗号化ヘッダ
332:暗号化ヘッダ

Claims (4)

  1. 起動するとブートプログラムを実行し、前記ブートプログラムが、第1の記憶部に記録されたOSローダプログラムを実行し、前記OSローダプログラムがカーネルプログラムを実行し、その後各アプリケーションを順次実行していく起動手段と、
    OSローダ及びカーネルはELF形式でコンパイルされ、ELF形式のELFヘッダ部が暗号化され、暗号化ヘッダを追加した形式で、第2の記憶部に記録されており、それぞれの暗号化ヘッダ部分を読み出し、暗号化ヘッダとして有効か判定し、暗号化部分をRAMに復号化し展開し、非暗号化部分をそのまま前記RAMにコピーする復号化手段と、
    前記復号化されたOSローダ及びカーネルのELFヘッダ部を解析し、有効なデータか判断し、前記OSローダ及びカーネルを起動させるOSローダ・カーネル起動手段と、
    を有することを特徴とする電子機器。
  2. 前記OSローダ及び前記カーネルが、ELF形式以外のもので、関数情報が格納されている領域が暗号化されることを特徴とする請求項1に記載の電子機器。
  3. ブートローダと前記OSローダとが一体となったことを特徴とする請求項1又は2に記載の電子機器。
  4. 前記OSローダと前記カーネルとが一体となったことを特徴とする請求項1又は2に記載の電子機器。
JP2006159013A 2006-06-07 2006-06-07 電子機器 Pending JP2007328541A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006159013A JP2007328541A (ja) 2006-06-07 2006-06-07 電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006159013A JP2007328541A (ja) 2006-06-07 2006-06-07 電子機器

Publications (1)

Publication Number Publication Date
JP2007328541A true JP2007328541A (ja) 2007-12-20

Family

ID=38928969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006159013A Pending JP2007328541A (ja) 2006-06-07 2006-06-07 電子機器

Country Status (1)

Country Link
JP (1) JP2007328541A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047854A (ja) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc 情報秘匿化方法および情報秘匿化装置
JP2018527664A (ja) * 2015-08-10 2018-09-20 Line株式会社 アプリケーションのコードを保護するためのシステムおよび方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047854A (ja) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc 情報秘匿化方法および情報秘匿化装置
JP2018527664A (ja) * 2015-08-10 2018-09-20 Line株式会社 アプリケーションのコードを保護するためのシステムおよび方法

Similar Documents

Publication Publication Date Title
JP5670578B2 (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
KR100692348B1 (ko) 휴면 보호
US7930743B2 (en) Information processing system, information processing method, information processing program, computer readable medium and computer data signal
JP4903071B2 (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
US20090259855A1 (en) Code Image Personalization For A Computing Device
JP2011070664A (ja) 暗号キー選択装置を具備するストレージ・システム及び暗号キー選択方法
JP2005135265A (ja) 情報処理装置
JP6751856B2 (ja) 情報処理装置および情報処理システム
JP2007199949A (ja) 情報管理システムおよび情報処理装置
JP2006309449A (ja) 機器及びプログラム起動方法
JP2007148806A (ja) アプリケーション起動制限方法及びアプリケーション起動制限プログラム
JP2007328541A (ja) 電子機器
JP5374751B2 (ja) メモリ管理方法
JP2007199928A (ja) データ通信監視プログラム、システム及び方法
US11829231B2 (en) Methods and systems for generating core dump in a user equipment
JP4930982B2 (ja) ダウンロードシステム
JP2010244261A (ja) 情報処理装置、情報処理方法
JP2007172526A (ja) 情報処理システム、情報処理方法
JP5673045B2 (ja) 組み込み機器、暗号化・復号方法、プログラム
JP2004362077A (ja) データ変換システム
JP2002082732A (ja) プログラムコードの不正改竄防止システム及びその方法並びにその制御プログラムを記録した記録媒体
JP4895068B2 (ja) 処理装置及び処理方法
WO2011096073A1 (ja) メモリ管理方法
JP2004252852A (ja) 情報処理装置及び情報処理方法
JP5493235B2 (ja) 処理装置及び処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110111