JP4503576B2 - コードイメージを安全に更新してブーティングする方法及び装置 - Google Patents

コードイメージを安全に更新してブーティングする方法及び装置 Download PDF

Info

Publication number
JP4503576B2
JP4503576B2 JP2006301504A JP2006301504A JP4503576B2 JP 4503576 B2 JP4503576 B2 JP 4503576B2 JP 2006301504 A JP2006301504 A JP 2006301504A JP 2006301504 A JP2006301504 A JP 2006301504A JP 4503576 B2 JP4503576 B2 JP 4503576B2
Authority
JP
Japan
Prior art keywords
code image
function
stored
area
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006301504A
Other languages
English (en)
Other versions
JP2007133875A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007133875A publication Critical patent/JP2007133875A/ja
Application granted granted Critical
Publication of JP4503576B2 publication Critical patent/JP4503576B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

本発明は、システムのブーティングに係り、より詳細には、コードイメージを安全に更新してブーティングする方法及び装置に関する。
一般的に、家電機器、通信機器、セットトップボックスなどのエンベッデッド型システムでは、データを保存して処理するための記録媒体として不揮発性保存装置が多く使われている。また、エンベッデッド型システムは不揮発性保存装置に運営体制(オペレーションシステム;OS)を保存し、保存された運営体制によってブーティングされて動作を実行する。このような運営体制は主に不揮発性保存装置にイメージの形態で保存される。
ホストが保安性を提供しようとすれば、運営体制のブーティング時からベンダーが製品を出市する時、不揮発性保存装置に記録しておいた運営体制イメージが変更なしにブーティングされるということが保証されなければならない。例えば、携帯電話にOSイメージと応用プログラムが保存されている場合、携帯電話に電源がついてOSイメージがローディングされる時、攻撃者がOSイメージの一部分を変更して実行ロジッグが変更される場合、OSイメージ内にあった保安モジュールは保安性が崩れることがある。したがって、このような場合、OSイメージをRAMでコピーした後、制御を越す前にOSイメージの無欠性が保存されているか確認し、無欠性が崩れない場合にのみ制御を越すことで攻撃者がOSイメージを変更できないように事前遮断しなければならない。
現在多いエンベッデッドシステムベンダーがOSイメージの無欠性を保存する技法を必要としており、また提供しているが、これは無欠性を検査するアルゴリズムを秘密で維持することに基盤するかCPU内にあるキーがTRM領域に保護されなければならないなど完全ではないか別途の回路を追加しなければならない。また、保存装置の特性によってこれを支援する方法が変わりうる。
図1は、従来の技術によってエンベッデッド型システムの安全なブーティングを可能にする保安ブーティング装置が図示された図面である。
運営体制及び運営体制に対応する固有のチェック値を有するアルゴリズムのチェック値を保存する運営体制保存部10と、ブーティングの時、運営体制保存部10に保存された運営体制がローディングされるメモリ部20と、チェック値保存時に使われたアルゴリズムを介してローディングされた運営体制によるチェック値を算出し、保存されたチェック値と算出されたチェック値とを比べてローディングされた運営体制の無欠性を判断する制御部30を含む。
このとき、運営体制保存部10は、保存された運営体制及びチェック値が印加された電源が除去される場合にも維持されるように不揮発性保存領域からなる。
また、運営体制を介したブーティングがなされる場合、ブーティングプロセスについての情報を含むブーティングコードを保存するブーティングコード保存部40と、運営体制保存部10に保存される運営体制及びチェック値を暗号化し、暗号化された運営体制及びチェック値を復号化するキーを保存するキー保存部50をさらに含む。このとき、ブーティングコード保存部40は、読み取り専用に設定されているために外部からのブーティングコードの変更ができない。このとき、チェック値算出時に使われるアルゴリズムとしては運営体制が1ビットでも変更される場合、異なるチェック値を有するようになり、同じチェック値を有さない条件に当たるすべてのアルゴリズムが使われる。
また、キー保存部50は、一般的に偽変造防止技術であるTRM(Tamper Resistance Module)などのような領域からなり外部の接近からキー保存部50に保存されたキーを保護する。これは、キー保存部50に保存されたキーが外部に露出される場合、暗号化されて運営体制保存部10に保存された運営体制及びチェック値が変更されることができるためである。また、キー保存部50は、全般的なブーティングプロセスを制御する制御部130と内蔵されるか別途に構成される。
ところが、エンベッデッドシステムが出市された後に運営体制が持続的にアップグレードされる場合が多い。特に、携帯電話、MP3プレーヤー、PMPのような製品は、その特性の上、早い環境適応が必要である。したがって、一度設けられた運営体制が以後正当に変更されるかアップグレードされなければならない必要性がある。ところが、図1のようにキーを保存すれば、不法的な外部の接近による運営体制の変更は阻むことができるが、正当な権利を有したベンダー側で運営体制を変更する場合まで阻む問題がある。しかし、正当な権利者の変更を許可する場合、不法的な運営体制の変更までも可能になる問題点があるところ、これを解決する必要がある。
特許文献1には二つのフラッシュメモリを利用し相互認証過程を経てブーティングを行うようにすることによって、ハッキングなどから保護することができるようにした方法を開示しています。しかし、これはOSが設置された後の保安に対しては開示されていないため、OSのブート時だけでなく、OSのブート後にも保安機能を提供することができる発明の登場が要求されます。
韓国公開特許第2004−062718号公報
本発明は、前記問題点を改善するために案出されたものであって、本発明は、正当なユーザーの運営体制に対する変更を保証しながら不法的なユーザーの運営体制の変更を遮断する方法及び装置を提供するところにその目的がある。
本発明のさらなる目的は、正当なユーザーの運営体制に対する変更を保証して保存装置を含むことである。
本発明は、前述した目的に制限されず、言及されなかったさらなる目的は、下記から当業者に明確に理解されるであろう。
本発明の一実施形態によるコードイメージ更新方法は、ブートコードがローディングされる第1領域と第1コードイメージが保存された第2領域及び前記ブートコードを保存して前記第1コードイメージを検証するための第1チェックデータが保存された第3領域からなる運営体制を保存した保存媒体でのコードイメージ更新方法において、前記第2領域に第2コードイメージを保存する段階、前記第1チェックデータから保安一方向関数についての情報を抽出する段階、及び前記抽出した保安一方向関数の情報を用いて前記第2コードイメージを検証するための第2チェックデータを生成して前記第3領域に保存する段階を含み、前記第2チェックデータを前記保安一方向関数のパラメータにする場合、前記第1チェックデータが生成される。
本発明の一実施形態によるコードイメージブーティング方法は、ブートコードがローディングされる第1領域とコードイメージが保存された第2領域及び前記ブートコードを保存して前記コードイメージを検証するためのチェックデータが保存された第3領域からなる運営体制を保存した保存媒体でのコードイメージブーティング方法において、第3領域に保存されたブートコードを読取って第1領域に保存する段階、前記第2領域に保存されたコードイメージが初期に設けられたコードイメージではない更新されたコードイメージである場合、初期に設けられた初期コードイメージについての情報が保存された第3領域で正当変更如何を確認する第1関数及び前記第1関数に第1パラメータを適用した第1結果、前記更新されたコードイメージについての情報が保存された前記第3領域で前記第1関数に第2パラメータを適用した第2結果を抽出する段階、及び前記第2結果をパラメータとして前記第1関数を適用した結果と前記第1結果とを比べて同一である場合、前記コードイメージを実行する段階を含む。
本発明の一実施形態による保存装置は、ブートコードがローディングされて動作される第1領域とシステムを動作させるコードイメージが保存されており、読み書き可能なメモリ素子で構成された第2領域及び前記ブートコードが保存されており、前記コードイメージを検証するシグネチャ情報が保存された第3領域を含む保存部、及び前記保存部のブートコードを読取って第1領域にローディングし、前記コードイメージが初期に設けられたコードイメージではない更新されたコードイメージである場合、初期に設けられた初期コードイメージについての情報が保存された第3領域で正当変更如何を確認する第1関数及び前記第1関数に第1パラメータを適用した第1結果を抽出し、前記更新されたコードイメージについての情報が保存された前記第3領域で前記第1関数に第2パラメータを適用した第2結果を抽出して、前記第2結果をパラメータとして前記第1関数を適用した結果と前記第1結果とを比べて同一である場合、前記コードイメージを実行する制御部を含む。
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。
本発明を具現することで一度運営体制のコードイメージを不揮発性保存領域に記録してOTP領域にこれと関連した検査情報を記録した後に正直なユーザー(例えば、開発者)がOSイメージを反復的に安全に更新できる。
本発明を具現することで一応製品化が完了して出市された製品に対して後でコードイメージを更新する必要がある時、安全に作業を実行できる。
本発明の利点及び特徴、そしてそれらの達成方法は、添付図面と共に詳細に後述されている実施形態を参照すれば、明確になる。しかし、本発明は、以下で開示される実施形態に限定されず、相異なる多様な形態で具現でき、単に本実施形態は本発明の開示を完全にし、当業者に発明の範ちゅうを完全に知らせるために提供され、本発明は特許請求の範ちゅうにより定義されるだけである。明細書全体にわたって同一参照符号は、同一構成要素を指称する。
以下、本発明の実施形態によってコードイメージを安全に更新してブーティングする方法及び装置を説明するためのブロック図または処理フローチャートを参考にして、本発明について説明する。このとき、処理フローチャートの各ブロックとフローチャートとの組合わせは、コンピュータプログラムインストラクションによって行われるということを理解できるであろう。これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータまたはその他のプログラム可能なデータプロセッシング装備のプロセッサに搭載されることができるので、コンピュータまたはその他のプログラム可能なデータプロセッシング装備のプロセッサを通じて行われるそのインストラクションがフローチャートブロックで説明された機能を実行する手段を生成する。
各ブロックは、特定された論理的機能を実行するための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を表すことができる。また、いくつかの代替実行例では、ブロックで言及された機能が順序を外れて発生することも可能であるということに注目しなければならない。例えば、相次いで図示されている二つのブロックは、実質的に同時に行われることも可能であり、またはそのブロックが時々該当する機能によって逆順に行われることも可能である。
図2は、本明細書の技術を適用するようになる保存装置で運営体制が駆動される方式を示す図面である。
図2の保存装置は、携帯電話、デジタルカメラ、ノートブック、PDA、PMP、MP3プレーヤーなどに装着されるもので前記装置を動作させる運営体制イメージが内蔵されている。
コードイメージを不揮発性で保存する不揮発性保存装置100と不揮発性保存装置100にあるコードイメージの実行に必要な揮発性保存装置200、そして、コードを実行する中央処理装置(CPU)400を利用する。以下、本明細書で不揮発性でコードイメージを保存する保存装置の一実施形態でフラッシュメモリを中心に説明する。また、安全な更新を具現するために保安一方向関数(セキュアワンウェイファンクション)を利用する。
不揮発性保存装置100であるフラッシュメモリは、システムに電源が供給された時、自動的にメモリアドレス空間の特定領域にマッピングされるRAM領域である110と、不揮発性でデータを書込み/消去を反復できるR/W(リード/ライト)領域である120、1回のみ書き込みが可能であり、1回書き込みが完了すると読み取りのみ可能なOTP(One Time Programmable)領域である130で構成されている。
110、120、130は、一つのメモリ装置として具現されることもでき、このような特性を有する3個のメモリ装置を組み合わせて使うこともできる。すなわち、120と130は、フラッシュメモリ素子として、110はRAM素子として結合できる。
電源が供給されれば、130領域の特定位置に保存されているブートコード131が自動的にRAM領域である110にコピーされて、110領域は読み取り及び実行のみ可能な領域に転換され、CPU400は110領域にある機械語命令を実行する。
ブートコード(Boot Code、またはBoot Loader)131は、1回のみ記録可能な領域である130に記録し、運営体制イメージを含むコードイメージは、読み取りと書き込みとが可能な120領域に記録し、コードイメージの変更如何を検討するシグネチャ132値を計算して1回のみ書き込みが可能であり、変更不可能な130領域に記録する。
システムに電源が印加されれば、OTP領域130にあるブートコード131が自動的にRAM領域110にコピーされる。
システムのメモリビュー300は、110をブーティング装置で使うようにマッピングされて、ブートコードが実行され、ブートコードがあまり大きくて110装置にすべてコピーされることができない場合、110にコピーされたブートコードが残りのブートコード部分を揮発性保存装置200にコピーする。
ブートコードがR/W領域である120にあるコードイメージを揮発性保存装置200にコピーする。120領域ですぐ実行しうる装置である場合には、揮発性保存装置200を使わないこともある。
コードイメージは、R/W領域に保存されるので変更される可能性がある。したがって、コードイメージに対するシグネチャ値を計算してOTP領域130に保存されているシグネチャ値132と比べて一致する場合にのみブーティングを進行し続け、一致していない場合、ブーティングを中断することでコードイメージが変更される場合、システムが動作しないようにする。
シグネチャ値とは、保安一方向関数(セキュアワンウェイファンクション)であって、結果値は計算しやすいが、結果値から入力値が分かることができず、同じ結果値を有する相異なる2個の入力値を捜すことが不可能であるかほとんど不可能な関数であって、入力が少しでも異なると、結果値も異なる可能性が非常に高い関数を意味する。
図2の構成を通じてコードイメージを不法的なユーザーが変更することを阻んでコードイメージに対する保安を高めうる。図3と図4は、コードイメージを正当なユーザーが変更しようとする場合、保安性を向上させるための不揮発性保存装置の構成を示す。
説明に先立って保安一方向関数に対して簡略に見れば、y=h(x)形態の関数と仮定すれば、x値が分かる場合、y値は計算しやすいがy値が分かって、そこに対応するx値は分かりにくく、y=h(x)=h(x’)である相異なるxとx’とを捜すことも難しいと仮定する。
図3は、第1コードイメージが保存された不揮発性保存装置と揮発性保存装置及びCPUの関係を示す例示図である。図3で不揮発性保存装置100に第1コードイメージが保存されており、これに対するシグネチャ情報と保安と関連された情報を含む第1シグネチャ領域134がある。
不揮発性保存装置100に初めてコードイメージとブートコードとを記録する時には、以下の内容を記録する。ユーザーまたは製造者、販売者のようなコードイメージを設けて変更する権原のある者はSを秘密で維持する。Sは正当な権限を有した者のみが有することができる値であって、保安を維持するキー値になりうる。
保安一方向関数の条件を満たすh()という関数を次のように定義できる。h_0=h(S)、h_n+1(S)=h(h_n(S))とする時、ユーザーは適当に大きい値N(例えば、100以上)に対してh_Nを計算する。例えば、(式1)のように求められうる。
(式1)
h_3(S)=h(h_2(S))=h(h(h_1(S)))
=h(h(h(h_0)(S)))
=h(h(h(h(S))))
ユーザーは、第1コードイメージに対するシグネチャ値を計算するが、この値をSig_1と言う。Sig_1値を計算するためにはh()関数を使うことができ、他の保安一方向関数を使うこともできる。
不揮発性保存装置100のOTP領域130の一番前にブートコード133を記録し、第1コードイメージのためのシグネチャ値であるSig_1を第1シグネチャ領域130に記録する。Sig_1外にも第1シグネチャ領域134に入る内容では、h()関数の実行イメージ、h_N、N、R/W領域120にあるコードイメージの位置及び大きさ情報も記録する。
h_Nとは、h_N(S)の実行値を意味する。h_N(S)は、数1によってh(h_N−1(S))で求められうる。
このように第1コードイメージを設けて、そのためのシグネチャ及び追後正当なユーザーのコードイメージ変更を可能にする情報を第1シグネチャ領域134に記録した以後にコードがアップグレードされるか新しい機能が追加されれば、コードイメージを修正する過程が必要である。または新しいコードイメージに更新できる。
図4は、本発明の一実施形態による変更されたコードイメージを正当なユーザーが不揮発性保存装置に保存した例を示す図面である。
コードイメージを変更しようとすれば、まず第1シグネチャ領域134に保存されたN値を読取る。そして、図3で言及したS(正当なユーザーが秘密で維持するキー値)をh_N−1(S)で計算する。そして、変更されたコードイメージ(第2コードイメージ)をR/W領域120に保存して第2コードイメージの有效性を検証するSig_2値を計算する。そして、第2シグネチャ領域135に前記の情報を保存する。第1シグネチャ134に保存されたh_N(S)の結果とh()関数及びNについての情報が保存されており、正当なユーザーならSがどんな値であるかが分かるので、h_N−1(S)を求められうる。したがって、正当なユーザーは変更されるか追加される第2コードイメージをR/W領域120に保存し、第2コードイメージの有效性を検証するSig_2、そして、h_N−1(S)結果とh()関数、N−1の値を第2シグネチャ領域135に保存する。追後ブーティングの時には、h_N−1(S)の結果を通じて正当なユーザーによって追加されたコードイメージであるかを確認できる。これについての検証過程は、図5で説明する。
図5は、本発明の一実施形態による変更されたコードイメージを検証する過程を示す図面である。図5でNは100に設定した。システムをブーティングする場合、第1シグネチャ領域134で関数h()についての情報とh_100(S)値、そして、Nの値である100を得る。そして、第2シグネチャ領域135からh_99(S)の値と99、第2コードイメージについての情報及びSig_2値を読取る。第2コードイメージについての情報を通じて第2コードイメージが保存された位置及び大きさを読取る。そして、第2コードイメージに対してSig_2を通じて検証作業を実行する。第2コードイメージに所定の検証アルゴリズムを適用してSig_2値と比べた場合、第2コードイメージが正当なユーザーによって更新されたかを確認するためにh_99(S)値をh()関数の入力値にしてh_100(S)の値を求める。h_99(S)の値がKとし、このK値が第2シグネチャ領域135に保存されているのでh(K)を求められうる。
h(K)はh(h_99(S))であり、これはh_100(S)なので第1シグネチャ領域134に保存された値と比べることができる。S値は、正当なユーザーが有しているのでh_99(S)値は正当なユーザーのみが算出できる。したがって、第2コードイメージが正当なユーザーによって更新されたことを確認できる。もし、第2シグネチャ領域に正当なユーザーではない者がS値ではないDという他の値でh_99(D)を記録したら、ブーティング過程でh_100(S)値とh_100(D)値とが相異なることを確認してブーティングを中止できる。
図6は、本発明の一実施形態による正当なユーザーがコードイメージを修正した場合と許諾されていないユーザーがコードイメージを修正した場合とを比べる図面である。製品に初期に装着されたコードイメージは正当なユーザーによって保存されて以後正当なユーザーがコードイメージを更新する場合(a)と正当なユーザーではない者によってコードイメージが更新された場合(b)とを示す。
(a)で正当なユーザーは、新しいコードイメージを保存する場合にコードイメージに対する検証を実行するSig_2、そして、S値と第1シグネチャ領域136の100という数字に基づいてh_99(S)を求められうる。
一方、(b)で不法的なユーザーは、Sig_2値を求めた場合にもS値が分かることができないので任意の値Dに対してh_99(D)を求める。しかし、ブーティング過程でh_99(D)の値にh関数を再び適用してh(h_99(D))を実行する場合にh_100(D)を求められうるが、これはh_100(S)と異なるのでブーティングが中断される。
したがって、不法的なユーザーがコードを変更する場合に、Sig_2によって検証されてSig_2を生成してもh_99(S)の値を計算することができないのでウイルス、ハッキングなどによるコードイメージの不法的な変更を阻むことができる。
前述した過程で、NとN−1、N−2のように逆順で保安一方向関数を適用した結果を得ているが、これは一実施形態で必ずしも前記順序による必要はない。例えば、N、N−2、N−4の方式で保安一方向関数を適用することができ、以外にも保安一方向関数を多様に適用しうる。
本明細書では、正当なユーザーによってコードイメージの変更がなされたかを検証するために、変更されたコードに対するチェック値で変更前のコードに対するチェック値が導出可能であるかを見ることである。そして、導出可能な場合には、正当なユーザーによってコードイメージが変更されたものと見て更新されたコードイメージを実行する。
図7は、本発明の一実施形態による更新されたコードイメージが正当なユーザーによって更新されたかを確認して実行する過程を示す図面である。
OTP領域130に保存されたブートコードをローディングする(S510)。ブートコードに羅列された命令語によるコードイメージの実行前に、コードイメージが有效であるかを検査する(S520)。コードイメージが変形されたか否かを調査するためにコードイメージの保存時にコードイメージに対するハッシュ関数、保安一方向関数を適用した結果値をOTP領域130に保存して追後コードイメージが変形されたか否かを関数を適用してチェックできる。前述したSig_1、Sig_2値を通じてコードイメージの有效性を検査できる。コードイメージが有效でなければ(S530)、コードイメージを実行せずに終了する。
コードイメージが有效であれば(S540)、コードイメージが更新されたかをチェックする。コードイメージが更新されなかったら、そのコードイメージをそのまま実行する。
しかし、コードイメージが更新されたら、該当更新が正当なユーザーによる更新であるか確認する。そのためにS552ないしS556過程を実行する。先に初期コードイメージについての情報、例えば、第1シグネチャで保安一方向関数と関数を実行した第1結果及びパラメータ情報を抽出する(S552)。図6で、h()が保安一方向関数になって関数を実行した第1結果がh_100(S)、そして、パラメータ情報は100になる。S値に対しては情報を有する必要がない。これはSをパラメータで実行された結果が保存されているためである。次に更新されたコードイメージについての情報で関数を実行した第2結果及びパラメータ情報を抽出する(S554)。第2シグネチャが更新されたコードイメージについての情報になりうる。ここで、関数を実行した第2結果は、図6の(a)でh_99(S)の実行結果が一実施形態であり、パラメータ情報は99になる。更新されたコードイメージに対する第2シグネチャでパラメータが99であり、元々のコードイメージに対する第1シグネチャでパラメータは100なので、h_99(S)をパラメータとしてh()関数をもう一度適用すれば、第1シグネチャのh_100(S)の結果が出て、これを比べて正当に更新されたか否かが分かる。すなわち、S556段階のように保安一方向関数に前記第2結果(h_99(S))をパラメータとして実行した結果と第1結果(h_100(S))とを比べる。そして、二つの結果が同一であれば(S560)、更新されたコードイメージが正当なユーザーによって更新されたのでコードイメージを実行する(S570)。同一でない場合には、更新されたコードイメージを実行せずに終了する。前記の説明例でS552、S554、S556検査をS520より先に実行することもできる。
当業者ならば本発明がその技術的思想や必須的な特徴を変更せず、他の具体的な形態に実施されるということを理解できるであろう。したがって、前述した実施形態は、あらゆる面で例示的なものであり、限定的ではないということを理解せねばならない。本発明の範囲は、前記詳細な説明よりは後述する特許請求の範囲によって表わされて、特許請求の範囲の意味及び範囲そしてその均等概念から導出されるすべての変更または変形された形態が本発明の範囲に含まれるものと解釈されなければならない.
本発明は、コードイメージを安全に更新してブーティングする方法及び装置に関連する技術分野に適用されうる。
従来の技術によってエンベッデッド型システムの安全なブーディングを可能にする保安ブーディング装置が図示された図である。 本明細書の技術を適用するようになる保存装置で運営体制が駆動される方式を示す図である。 第1コードイメージが保存された不揮発性保存装置と揮発性保存装置及びCPUの関係を示す例示図である。 本発明の一実施形態による変更されたコードイメージを正当なユーザーが不揮発性保存装置に保存した例を示す図である。 本発明の一実施形態による変更されたコードイメージを検証する過程を示す図である。 本発明の一実施形態による正当なユーザーがコードイメージを修正した場合と許諾されていないユーザーがコードイメージを修正した場合とを比べる図である。 本発明の一実施形態による更新されたコードイメージが正当なユーザーによって更新されたかを確認して実行する過程を示す図である。
符号の説明
100 保存部
110 RAM領域
120 R/W領域
130 OTP領域
200 RAM
400 制御部

Claims (6)

  1. ブートコードがローディングされる第1領域とコードイメージが保存された第2領域と、前記ブートコード、前記コードイメージが変更された場合に正当変更か否かを検証するための一方向関数である第1関数、パラメータ、及び前記パラメータを前記第1関数に適用した結果が保存された第3領域とを有する保存装置でのコードイメージブーティング方法において、
    第3領域に保存されたブートコードを読取って第1領域に保存する段階と、
    前記第2領域に保存されたコードイメージが初期に設けられたコードイメージではない更新されたコードイメージである場合、
    初期に設けられた初期コードイメージについての情報が保存された第3領域から前記第1関数、前記第1関数に第1パラメータを適用した第1結果及び前記更新されたコードイメージについての情報が保存された前記第3領域から前記第1関数に第2パラメータを適用した第2結果を抽出する段階と、
    前記第2結果をパラメータとして前記第1関数適用した結果と前記第1結果とを比べて同一である場合、前記更新されたコードイメージを実行する段階と、を含むことを特徴とするコードイメージブーティング方法。
  2. 前記第3領域は、一度データが保存されれば、変更または修正が不可能なメモリ素子で構成されたことを特徴とする請求項に記載のコードイメージブーティング方法。
  3. 前記第1関数は、入力値が異なる場合、出力値が異なり、前記出力値から入力値を類推しにくい特性を有する関数であることを特徴とする請求項に記載のコードイメージブーティング方法。
  4. ブートコードがローディングされて動作される第1領域と、
    システムを動作させるコードイメージが保存されており、読み書き可能なメモリ素子で構成された第2領域及び、
    前記ブートコードが保存されており、前記コードイメージが変更された場合に正当変更か否かを検証するための一方向関数である第1関数、パラメータ、及び前記パラメータを前記第1関数に適用した結果が保存された第3領域を含む保存部と、
    前記保存部のブートコードを読取って第1領域にローディングし、前記コードイメージが初期に設けられたコードイメージではない更新されたコードイメージである場合、初期に設けられた初期コードイメージについての情報が保存された第3領域から前記第1関数及び前記第1関数に第1パラメータを適用した第1結果を抽出し、
    前記更新されたコードイメージについての情報が保存された前記第3領域から前記第1関数に第2パラメータを適用した第2結果を抽出して、
    前記第2結果をパラメータとして前記第1関数適用した結果と前記第1結果とを比べて同一である場合、前記更新されたコードイメージを実行する制御部と、を含むことを特徴とする保存装置。
  5. 前記第3領域は、一度データが保存されれば、変更または修正が不可能なメモリ素子で構成されたことを特徴とする請求項に記載の保存装置。
  6. 前記第1関数は、入力値が異なる場合、出力値が異なり、前記出力値から入力値を類推しにくい特性を有する関数であることを特徴とする請求項に記載の保存装置。

JP2006301504A 2005-11-07 2006-11-07 コードイメージを安全に更新してブーティングする方法及び装置 Expired - Fee Related JP4503576B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050106081A KR100746012B1 (ko) 2005-11-07 2005-11-07 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2007133875A JP2007133875A (ja) 2007-05-31
JP4503576B2 true JP4503576B2 (ja) 2010-07-14

Family

ID=37907358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006301504A Expired - Fee Related JP4503576B2 (ja) 2005-11-07 2006-11-07 コードイメージを安全に更新してブーティングする方法及び装置

Country Status (5)

Country Link
US (1) US7711944B2 (ja)
EP (1) EP1788506A3 (ja)
JP (1) JP4503576B2 (ja)
KR (1) KR100746012B1 (ja)
CN (1) CN100530096C (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070099200A (ko) 2006-04-03 2007-10-09 삼성전자주식회사 휴대형 무선 기기의 응용 모듈 접근 제한 장치 및 이를이용한 접근 제한 방법
US8452987B2 (en) * 2006-10-06 2013-05-28 Broadcom Corporation Method and system for disaster recovery in a secure reprogrammable system
US20080222428A1 (en) * 2007-03-07 2008-09-11 Andrew Dellow Method for Securing Authenticity of Data in a Digital Processing System
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
CN101739270B (zh) * 2008-11-05 2013-04-03 英华达(上海)科技有限公司 电子装置及其系统更新方法
US8386738B1 (en) * 2008-11-06 2013-02-26 Marvell International Ltd. Off-chip non-volatile memory access
CN101751273B (zh) * 2008-12-15 2013-04-24 中国科学院声学研究所 用于嵌入式系统的安全引导装置及方法
US8214692B1 (en) * 2011-09-30 2012-07-03 Google Inc. System and method for enforcing a third-party factory test
US9069966B2 (en) 2011-10-11 2015-06-30 International Business Machines Corporation Code updates in processing systems
GB2499985A (en) 2012-02-29 2013-09-11 Nds Ltd Current state of OTP memory used with new received information to define new OTP state for computation of new digital signature in preventing playback attacks
KR101412202B1 (ko) * 2012-12-27 2014-06-27 주식회사 안랩 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법
CN105408858B (zh) * 2013-07-31 2019-11-12 惠普发展公司,有限责任合伙企业 用于计算系统的方法和系统
JP6548636B2 (ja) * 2014-05-16 2019-07-24 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、および電子機器
KR102277666B1 (ko) * 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
US10037201B2 (en) * 2016-02-26 2018-07-31 Dell Products L.P. Secure live media boot system
KR101968382B1 (ko) * 2016-07-14 2019-04-11 경희대학교 산학협력단 Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법
JP6871727B2 (ja) * 2016-11-29 2021-05-12 キヤノン株式会社 撮像装置、画像処理方法、及び、プログラム
CN109284114B (zh) * 2017-07-20 2022-07-12 深圳市中兴微电子技术有限公司 嵌入式系统中可编程芯片的自动烧录方法
KR102567097B1 (ko) 2018-12-05 2023-08-14 삼성전자주식회사 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
KR102282039B1 (ko) * 2019-11-19 2021-07-27 한국항공우주연구원 Cbc 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법
CN117494079B (zh) * 2023-12-25 2024-03-26 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
WO2004061667A1 (en) * 2002-12-19 2004-07-22 International Business Machines Corporation System and method to proactively detect software tampering
JP2005033640A (ja) * 2003-07-09 2005-02-03 Canon Inc コンテンツ流通方法またはコンテンツ改ざん検出方法
JP2005182509A (ja) * 2003-12-19 2005-07-07 Ntt Docomo Inc 計算機システム並びにデータ改竄検出方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US6581159B1 (en) * 1999-12-23 2003-06-17 Intel Corporation Secure method of updating bios by using a simply authenticated external module to further validate new firmware code
KR100367620B1 (ko) * 2001-03-29 2003-01-10 엘지전자 주식회사 블루투스 시스템의 주파수 호핑 방법
US6993648B2 (en) * 2001-08-16 2006-01-31 Lenovo (Singapore) Pte. Ltd. Proving BIOS trust in a TCPA compliant system
JP3863447B2 (ja) * 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7296143B2 (en) * 2004-06-22 2007-11-13 Lenovo (Singapore) Pte. Ltd. Method and system for loading processor boot code from serial flash memory
US7318151B1 (en) * 2004-11-04 2008-01-08 Network Appliance, Inc. Method and system for firmware management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
WO2004061667A1 (en) * 2002-12-19 2004-07-22 International Business Machines Corporation System and method to proactively detect software tampering
JP2005033640A (ja) * 2003-07-09 2005-02-03 Canon Inc コンテンツ流通方法またはコンテンツ改ざん検出方法
JP2005182509A (ja) * 2003-12-19 2005-07-07 Ntt Docomo Inc 計算機システム並びにデータ改竄検出方法

Also Published As

Publication number Publication date
US20070106890A1 (en) 2007-05-10
US7711944B2 (en) 2010-05-04
CN100530096C (zh) 2009-08-19
KR100746012B1 (ko) 2007-08-06
KR20070048960A (ko) 2007-05-10
JP2007133875A (ja) 2007-05-31
CN1963758A (zh) 2007-05-16
EP1788506A2 (en) 2007-05-23
EP1788506A3 (en) 2012-04-04

Similar Documents

Publication Publication Date Title
JP4503576B2 (ja) コードイメージを安全に更新してブーティングする方法及び装置
JP6595822B2 (ja) 情報処理装置及びその制御方法
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
KR101888712B1 (ko) 운영 체제 구성 값 보호 기법
US20090193211A1 (en) Software authentication for computer systems
US20050021968A1 (en) Method for performing a trusted firmware/bios update
US20090063865A1 (en) Configurable Signature for Authenticating Data or Program Code
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
JP2006164273A (ja) 保安ブート装置及び方法
JP6639620B2 (ja) コード署名の条件付き規定に基づくセキュアクライアント認証
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
US10885196B2 (en) Executing protected code
TWI760752B (zh) 應用加速驗證映像檔方法的系統
US9805186B2 (en) Hardware protection for encrypted strings and protection of security parameters
Ruan et al. Boot with integrity, or don’t boot
CN112613011A (zh) U盘系统认证方法、装置、电子设备及存储介质
JP2007507020A (ja) プログラミング可能な読出し専用メモリのブートセクタ内にソフトウェアをリロードするための方法
WO2023212178A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
KR20210089486A (ko) 키를 안전하게 관리하기 위한 장치 및 방법
EP3460705B1 (en) Distributed deployment of unique firmware
US11429722B2 (en) Data protection in a pre-operation system environment based on an embedded key of an embedded controller
KR101886176B1 (ko) 소유자만 기록 가능한 부트영역을 포함하는 저장장치
Amato et al. Mobile Systems Secure State Management
JP5126530B2 (ja) コンピュータの環境を測定する機能を備えた外部記憶デバイス
JP2014175758A (ja) Icカード及びその処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100209

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees