(57)【要約】【課題】トラステッド実行環境及びセキュア要素を制御するソフトウェアを安全に更新するためのソフトウェア更新方法を提供する。【解決手段】非セキュリティ実行環境でセキュリティ実行環境を駆動する第１ソフトウェアの更新を検証する段階と、非セキュリティ実行環境に保存された第１ソフトウェアの更新の第１イメージを用いて第１ソフトウェアを更新する段階と、セキュリティ実行環境でセキュリティ実行環境によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新を検証する段階と、セキュリティ実行環境に保存された第２ソフトウェアの更新の第２イメージを用いて第２ソフトウェアを更新する段階と、を有し、第１ソフトウェアの更新を検証する段階及び第２ソフトウェアの更新を検証する段階は、正しいソフトウェアバージョン、又は第１、第２ソフトウェアの更新の機能を検証する段階を含む。【選択図】図１
2016207219.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを更新するための方法であって、
プロセッサ及び非セキュリティ実行環境で動作する第１更新管理部にて、非セキュリティ実行環境でセキュリティ実行環境を駆動する第１ソフトウェアの更新を検証する段階と、
前記第１更新管理部にて、前記非セキュリティ実行環境に保存された前記第１ソフトウェアの更新の第１イメージ（ｉｍａｇｅ）を用いて前記第１ソフトウェアを更新する段階と、
前記プロセッサとセキュリティ実行環境で動作する第２更新管理部にて、セキュリティ実行環境でセキュリティ実行環境によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新を検証する段階と、
前記第２更新管理部にて、前記セキュリティ実行環境に保存された前記第２ソフトウェアの更新の第２イメージを用いて前記第２ソフトウェアを更新する段階と、を有し、
前記第１ソフトウェアの更新を検証する段階及び前記第２ソフトウェアの更新を検証する段階は、正しいソフトウェアバージョン、又は前記第１、第２ソフトウェアの更新の機能（ｃａｐａｂｉｌｉｔｉｅｓ）を検証する段階を含むことを特徴とするソフトウェア更新方法。
【請求項２】
前記第１ソフトウェアの更新を検証する段階の前に、イメージ管理部にて、非セキュリティ実行環境に前記第１イメージ及び第２イメージを保存する段階をさらに有することを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項３】
前記第２イメージは、前記非セキュリティ実行環境に保存された時点でエンコードされることを特徴とする請求項２に記載のソフトウェア更新方法。
【請求項４】
前記第２更新管理部によって、前記エンコードされた第２イメージを前記セキュリティ実行環境に保存するために前記非セキュリティ実行環境から前記エンコードされた第２イメージを受け取る段階をさらに有し、
前記第２ソフトウェアを更新する段階は、前記エンコードされた第２イメージをデコードした後、デコードされた第２イメージを用いて第２ソフトウェアを更新する段階を含むことを特徴とする請求項３に記載のソフトウェア更新方法。
【請求項５】
前記第１ソフトウェアの更新を検証する段階は、バイナリハッシュ及びセキュリティ実行環境のソフトウェアのバージョン情報の内の少なくとも一つを検証する段階を含むことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項６】
第２ソフトウェアの更新を検証する段階は、前記セキュリティデバイスのソフトウェアのバージョン情報を検証する段階を含むことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項７】
前記第１ソフトウェアは、ファームウェア又はアプリケーションを含み、前記第２ソフトウェアは、ファームウェア又はアプリケーションを含むことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項８】
前記第１ソフトウェアを更新する段階は、前記第１ソフトウェアを更新する段階の前に、セキュリティ実行環境に第１ソフトウェアの現在のイメージをバックアップする段階（ｂａｃｋｉｎｇ−ｕｐ）をさらに含むことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項９】
前記第２ソフトウェアを更新する段階は、前記第２ソフトウェアを更新する段階の前に、セキュリティ実行環境、又は前記セキュリティデバイスに、第２ソフトウェアの現在のイメージをバックアップする段階（ｂａｃｋｉｎｇ−ｕｐ）をさらに含むことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項１０】
前記第２ソフトウェアを更新する段階は、前記第２ソフトウェアの更新が失敗した時、セキュリティ実行環境又は前記セキュリティデバイスにバックアップされた前記第２ソフトウェアの現在のイメージを用いることにより、前記第２ソフトウェアをロールバックさせる段階（ｒｏｌｌｉｎｇ  ｂａｃｋ）をさらに含むことを特徴とする請求項９に記載のソフトウェア更新方法。
【請求項１１】
セキュリティデバイスは、第１セキュリティデバイスと第１セキュリティデバイスとは異なる第２セキュリティデバイスを含み、
前記第２ソフトウェアの更新を検証する段階は、第１セキュリティデバイスと第２セキュリティデバイスをそれぞれ駆動する第３ソフトウェアと第４ソフトウェアの更新を検証する段階を含み、
第２ソフトウェアを更新する段階は、セキュリティ実行環境に保存された第３ソフトウェアの更新の第３イメージと第４ソフトウェアの更新の第４イメージをそれぞれ用いて、第３ソフトウェアと第４ソフトウェアを更新する段階を含むことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項１２】
前記第１ソフトウェアの更新を検証する段階の前に、
イメージ管理部にて、非セキュリティ実行環境に第３イメージ、第４イメージ、及び第１イメージを保存する段階をさらに有することを特徴とする請求項１１に記載のソフトウェア更新方法。
【請求項１３】
ソフトウェアを更新するための方法であって、
イメージ管理部にて、非セキュリティ実行環境を駆動する第１ソフトウェアの更新の第１イメージと、セキュリティ実行環境によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新の第２イメージとを含むイメージデータを非セキュリティ実行環境に保存する段階と、
非セキュリティ実行環境で動作する第１更新管理部にて、前記イメージデータの第１イメージを用いて第１ソフトウェアを非セキュリティ実行環境で更新する段階と、
前記イメージ管理部にて、セキュリティ実行環境に前記第２イメージを保存するために、前記イメージデータに含まれた前記第２イメージを抽出する段階と、
セキュリティ実行環境で動作する第２更新管理部にて、セキュリティ実行環境に保存された前記第２イメージを用いてセキュリティ実行環境で前記第２ソフトウェアを更新する段階と、を有することを特徴とするソフトウェア更新方法。
【請求項１４】
前記第１イメージは非エンコードイメージであり、前記第２イメージはエンコードイメージであり、
エンコードされた第２イメージはセキュリティ実行環境のみでデコードされ、非セキュリティ実行環境ではデコードされないことを特徴とする請求項１３に記載のソフトウェア更新方法。
【請求項１５】
前記セキュリティデバイスは、第１セキュリティデバイスと第１セキュリティデバイスとは異なる第２セキュリティデバイスを含み、
非セキュリティ実行環境に保存された前記イメージデータは、第１セキュリティデバイスと第２セキュリティデバイスをそれぞれ駆動する第３ソフトウェアの更新の第３イメージ及び第４ソフトウェアの更新の第４イメージを含み、
前記第２イメージを抽出する段階は、前記イメージデータに含まれる前記第３イメージ及び第４イメージを抽出する段階を含み、
前記第２ソフトウェアを更新する段階は、前記第３イメージ及び第４イメージを用いて前記第３ソフトウェア及び第４ソフトウェアを更新する段階を含む、ことを特徴とする請求項１３に記載のソフトウェア更新方法。
【請求項１６】
前記イメージデータは、前記第１ソフトウェアの更新に関連付けられた第１シグネチャー（ｓｉｇｎａｔｕｒｅ）と、前記第２のソフトウェアの更新に関連付けられた第２シグネチャーをさらに含み、
前記第１ソフトウェアを非セキュリティ実行環境で更新する段階は、前記第１シグネチャーの検証の後、前記第１イメージを用いて第１ソフトウェアを更新する段階を含み、
前記第２ソフトウェアをセキュリティ実行環境で更新する段階は、前記第２シグネチャーの検証の後、セキュリティ実行環境に保存された前記第２イメージを用いて第２ソフトウェアを更新する段階を含む、ことを特徴とする請求項１３に記載のソフトウェア更新方法。
【請求項１７】
ソフトウェアを更新するためのシステムであって、
プロセッサと、
非セキュリティ実行環境で動作する第１更新管理部と、
セキュリティ実行環境で動作する第２更新管理部と、を有し、
前記第１更新管理部は、前記プロセッサを用いて前記セキュリティ実行環境で動作する第１ソフトウェアの更新を検証し、前記非セキュリティ実行環境に保存された第１ソフトウェアの更新の第１イメージを用いて前記第１ソフトウェアを更新し、
前記第２更新管理部は、前記プロセッサを用いて前記セキュリティ実行環境によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新を検証し、前記セキュリティ実行環境に保存された第２ソフトウェアの更新の第２イメージを用いて前記第２ソフトウェアを更新し、
前記第１ソフトウェア及び第２ソフトウェアの更新の検証は、正しいソフトウェアバージョン、又は前記第１、第２ソフトウェアの更新の機能を検証することを含むことを特徴とするソフトウェア更新システム。
【請求項１８】
前記第１ソフトウェアの更新を検証する前に、非セキュリティ実行環境に前記第１イメージ及び第２イメージを保存するイメージ管理部をさらに有することを特徴とする請求項１７に記載のソフトウェア更新システム。
【請求項１９】
前記第２イメージはエンコードされ、前記第１イメージはエンコードされず、
イメージ管理部は、非セキュリティ実行環境に前記エンコードされた第２イメージ及び前記エンコードされない第１イメージを保存することを特徴とする請求項１８に記載のソフトウェア更新システム。
【請求項２０】
前記第２更新管理部は、前記エンコードされた第２イメージを前記セキュリティ実行環境に保存するために前記非セキュリティ実行環境から前記エンコードされた第２イメージを受け取り、
前記エンコードされた第２イメージがデコードした後、前記デコードされた第２イメージを用いて第２ソフトウェアを更新することを特徴とする請求項１９に記載のソフトウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新方法及びそのシステムに関し、特に、ＴＥＥ及びＳＥを制御するソフトウェアを安全に更新するための方法及びそのシステムに関する。
【背景技術】
【０００２】
モバイルデバイスを始めとしてコンピューティング装置において、リッチ実行環境（Ｒｉｃｈ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｉｏｎｍｅｎｔ：以下、ＲＥＥ）及びトラステッド実行環境（Ｔｒｕｓｔｅｄ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｉｏｎｍｅｎｔ：以下、ＴＥＥ）を含むプラットホームを用いたセキュリティメカニズムを使用することができる。
リッチ実行環境は非セキュリティ実行環境を含み、トラステッド実行環境はセキュリティを必要とするデータ又はハードウェアへの排他的アクセスを提供するセキュリティ実行環境を含む。
【０００３】
例えば、一つ以上のプロセッサは、ＲＥＥ及びＴＥＥの両方のホストすることができ、ＴＥＥはＲＥＥから隔離され（ｉｓｏｌａｔｅｄ）、プロセッサは一部の処理（ｏｐｅｒａｔｉｏｎ）がＴＥＥでのみ実行されることを保障する。
このようなセキュリティメカニズムの信頼性を保障するためには、ＴＥＥによって制御されるセキュア要素（Ｓｅｃｕｒｅ  Ｅｌｅｍｅｎｔ：以下、ＳＥ）がインストールされたソフトウェア（例えば、ファームウェア）及びＴＥＥが、偽造若しくは変造されたものであってはならない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そこで、本発明は上記従来のセキュリティメカニズムの信頼性における問題点に鑑みてなされたものであって、本発明の目的は、ＴＥＥ及びＳＥを制御するソフトウェアを安全に更新するためのソフトウェア更新方法を提供することにある。
また、本発明の他の目的は、ＴＥＥ及びＳＥを制御するソフトウェアを安全に更新するためのソフトウェア更新システムを提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するためになされた本発明によるソフトウェア更新方法は、プロセッサ及び非セキュリティ実行環境で動作する第１更新管理部にて、非セキュリティ実行環境でセキュリティ実行環境を駆動する第１ソフトウェアの更新を検証する段階と、前記第１更新管理部にて、前記非セキュリティ実行環境に保存された前記第１ソフトウェアの更新の第１イメージを用いて前記第１ソフトウェアを更新する段階と、前記プロセッサとセキュリティ実行環境で動作する第２更新管理部にて、セキュリティ実行環境でセキュリティ実行環境によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新を検証する段階と、前記第２更新管理部にて、前記セキュリティ実行環境に保存された前記第２ソフトウェアの更新の第２イメージを用いて前記第２ソフトウェアを更新する段階と、を有し、前記第１ソフトウェアの更新を検証する段階及び前記第２ソフトウェアの更新を検証する段階は、正しいソフトウェアバージョン、又は前記第１、第２ソフトウェアの更新の機能を検証する段階を含むことを特徴とする。
【０００６】
上記目的を達成するためになされた本発明によるソフトウェア更新システムは、プロセッサと、非セキュリティ実行環境で動作する第１更新管理部と、セキュリティ実行環境で動作する第２更新管理部と、を有し、前記第１更新管理部は、前記プロセッサを用いて前記セキュリティ実行環境で動作する第１ソフトウェアの更新を検証し、前記非セキュリティ実行環境に保存された第１ソフトウェアの更新の第１イメージを用いて前記第１ソフトウェアを更新し、前記第２更新管理部は、前記プロセッサを用いて前記セキュリティ実行環境によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新を検証し、前記セキュリティ実行環境に保存された第２ソフトウェアの更新の第２イメージを用いて前記第２ソフトウェアを更新し、前記第１ソフトウェア及び第２ソフトウェアの更新の検証は、正しいソフトウェアバージョン、又は前記第１、第２ソフトウェアの更新の機能（ｃａｐａｂｉｌｉｔｉｅｓ）を検証することを含むことを特徴とする。
【発明の効果】
【０００７】
本発明に係るソフトウェア更新方法によれば、セキュア要素のソフトウェアイメージ、例えば、セキュア要素を駆動するファームウェアに対するバイナリイメージが非セキュリティ実行環境を始め外部に露出されないため、安全な方法でセキュア要素のソフトウェアの更新ができるという効果がある。
また、第１ソフトウェアを更新するために使用する第１イメージと、第１ソフトウェアによって駆動されるデバイスや実行環境を制御する第２ソフトウェアを更新するために使用する第２イメージが共に含まれた一つのイメージデータを用いて順次的に第１ソフトウェアと第２ソフトウェアを更新するので、複数の実行環境又はデバイスを駆動する複数のソフトウェアを容易に更新して、ソフトウェアに対する問題が発生した場合、容易に復旧することができるという効果がある。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態によるソフトウェア更新システムを説明するための概略ブロック図である。
【図２】本発明の一実施形態によるソフトウェア更新システムの更新管理部を説明するための概略ブロック図である。
【図３】本発明の第１の実施形態によるイメージデータの構造を説明するための概略図である。
【図４】本発明の第１の実施形態によるソフトウェア更新方法を説明するための概略図である。
【図５】本発明の第２の実施形態によるイメージデータの構造を説明するための概略図である。
【図６】本発明の第２の実施形態によるソフトウェア更新方法を説明するための概略図である。
【図７】本発明の第３の実施形態によるイメージデータの構造を説明するための概略図である。
【図８】本発明の第３の実施形態によるソフトウェア更新方法を説明するための概略図である。
【図９】本発明の第４の実施形態によるイメージデータの構造を説明するための概略図である。
【図１０】本発明の第４の実施形態によるソフトウェア更新方法を説明するための概略図である。
【図１１】本発明の一実施形態によるソフトウェア更新方法を説明するためのフローチャートである。
【図１２】本発明の他の実施形態によるソフトウェア更新方法を説明するためのフローチャートである。
【図１３】本発明のさらに他の実施形態によるソフトウェア更新方法を説明するためのフローチャートである。
【図１４】本発明の一実施形態によるソフトウェア更新方法及びシステムを適用できる例示的な半導体システムを示す外観図である。
【図１５】本発明の一実施形態によるソフトウェア更新方法及びシステムの適用できる例示的な半導体システムを示す外観図である。
【図１６】本発明の一実施形態によるソフトウェア更新方法及びシステムの適用できる例示的な半導体システムを示す外観図である。
【発明を実施するための形態】
【０００９】
次に、本発明に係るソフトウェア更新方法及びそのシステムを実施するための形態の具体例を図面を参照しながら説明する。
【００１０】
図１は、本発明の一実施形態によるソフトウェア更新システムを説明するための概略ブロック図である。
図１を参照すると、本発明の一実施形態によるソフトウェア更新システム（１）は、プロセッサ（１０）、ディスプレイ（１２）、ストレージ（１４）、入力デバイス（１６）、メモリ（１８）及びセキュア要素（Ｓｅｃｕｒｅ  Ｅｌｅｍｅｎｔ：以下、ＳＥ）（２０）が含まれる。
プロセッサ（１０）、ディスプレイ（１２）、ストレージ（１４）、入力デバイス（１６）、メモリ（１８）、及びＳＥ（２０）は、バス（２２）を通じて電気的に接続され、互いにデータをやり取りすることができる。
【００１１】
本発明の多様な実施形態において、メモリ（１８）は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）（２４）、更新管理部（１００）、及びイメージ管理部（２００）を含む。
ここで、オペレーティングシステム（２４）は、非セキュリティ実行環境（２１０（図２参照））で動作する非セキュリティカーネル（ＲＥＥカーネル）（２１６（図２参照））及びセキュリティ実行環境（２２０（図２参照））で動作するセキュリティカーネル（ＴＥＥカーネル）（２２６（図２参照））を含む。
【００１２】
更新管理部（１００）は、非セキュリティ実行環境（２１０）に保存されたイメージを用いてセキュリティ実行環境（２２０）を駆動するソフトウェアを更新し、セキュリティ実行環境（２２０）に保存されたイメージを用いてセキュア要素（２０）を駆動するソフトウェアを更新する。
ここで、イメージは、多様な種類の半導体装置、例えば、コンピュータシステム、モバイル装置、セキュリティハードウェア、デバイスコントローラ等を駆動できるソフトウェア又はオペレーティングシステムに対するデータを含む“ソフトウェアイメージ”を意味する。
【００１３】
更新管理部（１００）は、非セキュリティ実行環境（２１０）で動作する第１更新管理部（１１０）及びセキュリティ実行環境（２２０）で動作する第２更新管理部（１２０）を含み、これら第１更新管理部（１１０）及び第２更新管理部（１２０）に対する具体的な説明は図２と共に後述する。
イメージ管理部（２００）は、セキュリティ実行環境（２２０）を駆動するソフトウェア又はセキュア要素（２０）を駆動するソフトウェアを更新するために使われるソフトウェアイメージを非セキュリティ実行環境（２１０）又はセキュリティ実行環境（２２０）に保存し、また、エンコードされたソフトウェアをデコードすることができる。
【００１４】
本発明のいくつかの実施形態において、更新管理部（１００）及びイメージ管理部（２００）は、ソフトウェアプログラムで具現され、メモリ（１８）に積載され、プロセッサ（１０）上で実行され得る。
しかし本発明の範囲はこれに限られず、本発明のいくつかの実施形態において、更新管理部（１００）及びイメージ管理部（２００）は、電子回路を含むチップのようにハードウェアとして具現することもできる。
【００１５】
図２は、本発明の一実施形態によるソフトウェア更新システムの更新管理部を説明するための概略ブロック図である。
図２を参照すると、本発明の一実施形態によるソフトウェア更新システム（２）は、非セキュリティ実行環境（２１０）及びセキュリティ実行環境（２２０）を含む。
【００１６】
本発明のいくつかの実施形態において、非セキュリティ実行環境（２１０）はリッチ実行環境（Ｒｉｃｈ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｉｏｎｍｅｎｔ：以下、ＲＥＥ）を含み、セキュリティ実行環境（２２０）はトラステッド実行環境（Ｔｒｕｓｔｅｄ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｉｏｎｍｅｎｔ：以下、ＴＥＥ）が含まれる。
【００１７】
非セキュリティ実行環境（２１０）は、第１更新管理部（ＴＥＥ更新管理部）（１１０）、非セキュリティアプリケーション（２１３、２１４）、非セキュリティＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）（２１５）、及び非セキュリティカーネル（２１６）が含まれる。
【００１８】
第１更新管理部（１１０）は、非セキュリティ実行環境（２１０）で動作して、セキュリティ実行環境（２２０）を駆動する第１ソフトウェアの更新を検証する。
本発明のいくつかの実施形態において、第１更新管理部（１１０）は、バイナリハッシュ（ｂｉｎａｒｙ  ｈａｓｈ）、セキュリティ実行環境（２２０）のソフトウェアバージョン情報、第１ソフトウェアの更新のソフトウェアバージョン情報の内の少なくとも一つを検証し得る。
【００１９】
また、第１更新管理部（１１０）は、非セキュリティ実行環境（２１０）に保存された第１ソフトウェアの更新の第１イメージを用いて第１ソフトウェアを更新する。
本発明のいくつかの実施形態において、第１ソフトウェアの更新は、第１更新管理部（１１０）が第１ソフトウェアの更新を検証する前に、イメージ管理部（２００）によって非セキュリティ実行環境（２１０）に保存される。
また、本発明のいくつかの実施形態において、第１ソフトウェアは、セキュリティ実行環境（２２０）を駆動するファームウェア（ｆｉｒｍｗａｒｅ）又はアプリケーションが含まれる。
【００２０】
非セキュリティアプリケーション（２１３、２１４）は、セキュリティできない処理（動作）又は機能を行う。
非セキュリティアプリケーション（２１３、２１４）は、例えばプレロードアプリケーション（ｐｒｅｌｏａｄｅｄ  ａｐｐｌｉｃａｔｉｏｎ）、ネイティブアプリケーション（ｎａｔｉｖｅ  ａｐｐｌｉｃａｔｉｏｎ）等が含まれるが、本発明の範囲に制限されるわけではない。
【００２１】
非セキュリティＡＰＩ（２１５）は、非セキュリティアプリケーション（２１３、２１４）が非セキュリティカーネル（２１６）によって提供する機能を制御するためのインターフェース又は機能（又は関数）（ｆｕｎｃｔｉｏｎ）を提供する。
例えば、非セキュリティＡＰＩ（２１５）は、非セキュリティアプリケーション（２１３、２１４）が非セキュリティカーネル（２１６）とデータを交換できるようにし、非セキュリティアプリケーション（２１３、２１４）が非セキュリティカーネル（２１６）によって管理されるハードウェアリソース（２１２）を使用できるようにする。
【００２２】
非セキュリティカーネル（２１６）は、非セキュリティアプリケーション（２１３、２１４）又は非セキュリティＡＰＩ（２１５）で具現された処理（動作）又は機能を実行するために使用されるハードウェアリソース（２１２）を制御、又は管理する。
特に、非セキュリティカーネル（２１６）は、セキュリティカーネル（２２６）との通信を行うためのドライバ（例えば、モニター（ｍｏｎｉｔｏｒ））が含まれる。
非セキュリティ実行環境（２１０）は、ドライバを用いてセキュリティ実行環境（２２０）が特定セキュリティ処理（動作）又は機能を行うように要請する。
【００２３】
一方、セキュリティ実行環境（２２０）は、第２更新管理部（ＳＥ更新管理部）（１２０）、セキュリティアプリケーション（２２３、２２４）、セキュリティＡＰＩ（２２５）及びセキュリティカーネル（２２６）が含まれる。
【００２４】
第２更新管理部（１２０）は、セキュリティ実行環境（２２０）で動作して、セキュリティ実行環境（２２０）によって制御されるセキュリティデバイスを駆動する第２ソフトウェアの更新を検証する。
ここで、セキュリティデバイスは、例えばセキュア要素（２０）を含む。
本発明のいくつかの実施形態において、第２更新管理部（１２０）は、セキュリティデバイスのソフトウェアバージョン情報又は第２ソフトウェアの更新のソフトウェアバージョン情報を検証する。
【００２５】
また、第２更新管理部（１２０）は、セキュリティ実行環境（２２０）に保存された第２ソフトウェアの更新の第２イメージを用いて第２ソフトウェアを更新する。
本発明のいくつかの実施形態において、第２ソフトウェアは、第１更新管理部（１１０）が第１ソフトウェアの更新を検証する前に、イメージ管理部（２００）によって非セキュリティ実行環境（２１０）に保存された第１イメージと共に更新する。
一方、本発明のいくつかの実施形態において、第２ソフトウェアはファームウェア、又はセキュリティ実行環境（２２０）によって制御されるセキュリティデバイスを駆動するアプリケーションが含まれる。
【００２６】
セキュリティアプリケーション（２２３、２２４）は、例えば、非セキュリティ実行環境（２１０）の要請に応答してセキュアされた（保護された）処理（動作）又は機能を行う。
セキュリティアプリケーション（２２３、２２４）は、例えば、プレロードアプリケーション、ネイティブアプリケーション等が含まれるが、本発明の範囲に制限されるものではない。
特に、本発明のいくつかの実施形態において、セキュリティアプリケーション（２２４）は、セキュア要素（ＳＥ）（２０）とのデータの送受信をすることができる。
【００２７】
セキュリティＡＰＩ（２２５）は、セキュリティアプリケーション（２２３、２２４）がセキュリティカーネル（２２６）によって提供される機能を制御するためのインターフェース又は機能（又は関数）を提供する。
例えば、セキュリティＡＰＩ（２２５）は、セキュリティアプリケーション（２２３、２２４）がセキュリティカーネル（２２６）とデータを交換したり、セキュリティアプリケーション（２２３、２２４）が非セキュリティカーネル（２１６）によって管理されるハードウェアセキュリティリソース（２２２）を使用することができるようにする。
【００２８】
セキュリティカーネル（２２６）は、セキュリティアプリケーション（２２３、２２４）又はセキュリティＡＰＩ（２２５）で具現された処理（動作）又は機能を実行するために使用されるハードウェアセキュリティリソース（２２２）を制御、又は管理する。
【００２９】
図３は、本発明の第１の実施形態によるイメージデータの構造を説明するための概略図である。
図３を参照すると、本発明の第１の実施形態によるイメージデータ（３００）は、ＴＥＥイメージ（３１０）、ＳＥイメージ（３２０）、及びシグネチャー（３３０）を含む。
ここでＴＥＥイメージ（３１０）はセキュリティ実行環境（２２０）を駆動する第１ソフトウェアの更新のイメージを含み、ＳＥイメージ（３２０）はセキュリティ実行環境（２２０）によって制御されるセキュア要素（２０）を駆動する第２ソフトウェアの更新のイメージを含む。
【００３０】
本実施形態において、イメージデータ（３００）に含まれるＳＥイメージ（３２０）は、エンコードされたＳＥイメージ（３２２）及びシグネチャー（３２４）を含む。
即ち、イメージ管理部（２００）は、ＴＥＥイメージ（３１０）とエンコードされたＳＥイメージ（３２２）を含むイメージデータ（３００）を生成した後、イメージデータ（３００）を非セキュリティ実行環境（２１０）に保存することができる。
ここでＴＥＥイメージ（３１０）は、エンコードされないイメージであるが、本発明の範囲がこれに制限されるわけではない。
【００３１】
一方、シグネチャー（３３０、３２４）は、ソフトウェア更新をする前にソフトウェアが偽造又は変造されたか否かを判断するためのデータも含む。
例えば、第１ソフトウェアを更新するためシグネチャー（３３０）を検証することは、非セキュリティ実行環境（２１０）に保存されたアプリケーションプロセッサ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ：ＡＰ）の公開キー（ｐｕｂｌｉｃ  ｋｅｙ）を用いてシグネチャー（３３０）を検証することを含む。
一方、第２ソフトウェアを更新するためにシグネチャー（３２４）を検証することは、セキュリティ実行環境（２２０）に保存されたアプリケーションプロセッサの公開キーを用いてシグネチャー（３２４）を検証することを含む。
【００３２】
図４は、本発明の第１の実施形態によるソフトウェア更新方法を説明するための概略図である。
図４を参照すると、第１更新管理部（１１０）はセキュリティ実行環境（２２０）を駆動する第１ソフトウェアの更新を検証する。
即ち、第１更新管理部（１１０）の第１ソフトウェア更新検証作業は、非セキュリティ実行環境（２１０）で実行される。
【００３３】
本発明のいくつかの実施形態において、第１更新管理部（１１０）は、バイナリハッシュ（ｂｉｎａｒｙ  ｈａｓｈ）、セキュリティ実行環境（２２０）のソフトウェアバージョン情報、及び第１ソフトウェアの更新のソフトウェアバージョン情報の内の少なくとも一つを検証する。
第１ソフトウェアを検証した結果、第１ソフトウェアを更新する必要があると判断された場合、第１更新管理部（１１０）は、非セキュリティ実行環境（２１０）に保存されたイメージデータ（３００）の中の第１ソフトウェアの更新の第１イメージ、即ち、ＴＥＥイメージ（３１０）を用いて第１ソフトウェアを更新する。
ここで第１ソフトウェアを更新する必要がある場合とは、第１ソフトウェアが偽造又は変造されその信頼性が疑わしい場合、第１ソフトウェアのバージョンが旧バージョン又は他のデバイスとの互換性が保障されない場合、及びユーザーアプリケーション又はシステムアプリケーションから第１ソフトウェアを更新するための要請がある場合等が含まれる。
【００３４】
第１ソフトウェアの更新作業後、非セキュリティ実行環境（２１０）に保存されていたイメージデータ（３００）の中のエンコードされたＳＥイメージ（３２２）及びシグネチャー（３２４）は、イメージ管理部（２００）、第１更新管理部（１１０）、及び第２更新管理部（１２０）の内の少なくとも一つによってセキュリティ実行環境（２２０）に保存され得る。
これに従って、非セキュリティ実行環境（２１０）は、セキュリティ実行環境（２２０）に保存されたエンコードされたＳＥイメージ（３２２）及びシグネチャー（３２４）にアクセスできなくなる。
【００３５】
本発明のいくつかの実施形態において、非セキュリティ実行環境（２１０）に保存されたＴＥＥイメージ（３１０）を用いて第１ソフトウェアを更新することは、第１ソフトウェアを更新する前に、第１ソフトウェアのイメージをセキュリティ実行環境（２２０）にバックアップ（ｂａｃｋｕｐ）することがさらに含まれる。
これにより、第１ソフトウェアの更新が失敗した場合、セキュリティ実行環境（２２０）にバックアップされた第１ソフトウェアのイメージを用いて第１ソフトウェアをロールバック（ｒｏｌｌｂａｃｋ）を実行できる。
【００３６】
また図４を参照すると、第２更新管理部（１２０）は、セキュリティ実行環境（２２０）によって制御されるセキュア要素（２０）を駆動する第２ソフトウェアの更新を検証する。
即ち、第２更新管理部（１２０）の第２ソフトウェア更新検証作業は、セキュリティ実行環境（２２０）で実行される。
本発明のいくつかの実施形態において、第２更新管理部（１２０）は、セキュア要素（２０）のソフトウェアバージョン情報又は第２ソフトウェアの更新のソフトウェアバージョン情報を検証する。
【００３７】
第２ソフトウェアの更新を検証した結果、第２ソフトウェアを更新する必要があると判断された場合、第２更新管理部（１２０）は、セキュリティ実行環境（２２０）に保存された第２イメージ、即ちエンコードされたＳＥイメージ（３２２）を用いて第２ソフトウェアを更新する。
ここで第２ソフトウェアを更新する必要がある場合とは、第２ソフトウェアが偽造又は変造されてその信頼性が疑わしい場合、第２ソフトウェアのバージョンが旧バージョン又は他のデバイスとの互換性が保障されない場合、ユーザーアプリケーション又はシステムアプリケーションから第２ソフトウェアを更新するための要請がある場合等が含まれる。
【００３８】
ここで、エンコードされたＳＥイメージ（３２２）は第２ソフトウェアを更新する前にデコードされ得る。
本発明のいくつかの実施形態において、エンコードされたＳＥイメージ（３２２）はセキュリティ実行環境（２２０）でデコードされた後、第２ソフトウェアを更新するために用いられる。
一方、本発明の他のいくつかの実施形態において、エンコードされたＳＥイメージ（３２２）はセキュリティ実行環境（２２０）からセキュア要素（２０）に伝達されセキュア要素（２０）でデコードされた後、第２ソフトウェアを更新するために用いられる。
【００３９】
本発明のいくつかの実施形態において、セキュリティ実行環境（２２０）に保存されたエンコードされたＳＥイメージ（３２２）を用いて第２ソフトウェアを更新することは、第２ソフトウェアを更新する前に、第２ソフトウェアのイメージをセキュリティ実行環境（２２０）又はセキュア要素（２０）にバックアップ（ｂａｃｋｕｐ）することをさらに含む。
これにより、第２ソフトウェアの更新が失敗した場合、セキュリティ実行環境（２２０）又はセキュア要素（２０）にバックアップされた第２ソフトウェアのイメージを用いて第２ソフトウェアのロールバック（ｒｏｌｌｂａｃｋ）を実行することができる。
【００４０】
本発明のいくつかの実施形態において、第１ソフトウェア及び第２ソフトウェアの更新の検証及び更新作業は、ソフトウェア更新システム（１）のブーティング（ｂｏｏｔｉｎｇ）時に実行される。
具体的には、ソフトウェア更新システム（１）のブーティングが始まって第１更新管理部（１１０）及び第２更新管理部（１２０）が第１ソフトウェア及び第２ソフトウェアの更新の検証及び更新作業を行った後に、ソフトウェア更新システム（１）のブーティングが完了する。
【００４１】
一方、本発明のいくつかの実施形態において、第１ソフトウェア及び第２ソフトウェアの更新の検証及び更新作業は、第１ソフトウェア及び第２ソフトウェアを更新するための要請をしたユーザーアプリケーション又はシステムアプリケーションの開始時に実行される。
ソフトウェアの更新を検証することは、ソフトウェアのソフトウェアバージョン又は機能をチェックすることが含まれる。
従って、第１及び第２ソフトウェアの更新の検証することは、第１及び第２ソフトウェアの更新のソフトウェアバージョン又は機能（ｃａｐａｂｉｌｉｔｉｅｓ）をチェックすることが含まれる。
【００４２】
上述したように本発明のソフトウェア更新方法によれば、セキュア要素（２０）のソフトウェアイメージ、例えば、セキュア要素（２０）を駆動するファームウェアに対するバイナリイメージが非セキュリティ実行環境（２１０）を始め外部に露出されないため、安全な方法でセキュア要素（２０）のソフトウェアの更新ができる。
また、本発明のソフトウェア更新方法は、第１ソフトウェアを更新するために使用する第１イメージと、第１ソフトウェアによって駆動されるデバイスや実行環境を制御する第２ソフトウェアを更新するために使用する第２イメージが共に含まれた一つのイメージデータを用いて順次的に第１ソフトウェアと第２ソフトウェアを更新するので、複数の実行環境又はデバイスを駆動する複数のソフトウェアを容易に更新して、ソフトウェアに対する問題が発生した場合容易に復旧することもできる。
【００４３】
図５は、本発明の第２の実施形態によるイメージデータの構造を説明するための概略図である。
図５を参照すると、本発明の第２の実施形態によるイメージデータ（４００）は、ＴＥＥイメージ（４１０）、デバイスイメージ（４２０）、及びシグネチャー（４６０）を含む。
ここでＴＥＥイメージ（４１０）は、セキュリティ実行環境（２２０）を駆動する第１ソフトウェアの更新のイメージを含み、デバイスイメージ（４２０）はセキュリティ実行環境（２２０）によって制御される一つ以上のデバイス（２３０、２３２）を駆動する一つ以上の第２ソフトウェアの更新のイメージを含む。
【００４４】
本実施形態において、イメージデータ（４００）に含まれるデバイスイメージ（４２０）は、一つ以上のデバイスイメージ（例えば、第１デバイスイメージ（４２２）、第Ｎデバイスイメージ（４２４））及びシグネチャー（４２６）が含まれる。
本発明のいくつかの実施形態において、一つ以上のデバイスイメージ（４２２、４２４）は、エンコードされ得るイメージである。
【００４５】
一方、シグネチャー（４６０、４２６）は、ソフトウェアの更新をする前に、ソフトウェアの偽造又は変造があるか否かを判断するためのデータを含む。
例えば、シグネチャー（４６０）は、第１ソフトウェアを更新するための検証に使われ、シグネチャー（４２６）は一つ以上のデバイス（２３０、２３２）の一つ以上の第２ソフトウェアをそれぞれ更新するための検証に共通で使用できる。
【００４６】
図６は、本発明の第２の実施形態によるソフトウェア更新方法を説明するための概略図である。
図６を参照すると、第１更新管理部（１１０）はセキュリティ実行環境（２２０）を駆動する第１ソフトウェアの更新を検証する。
即ち、第１更新管理部（１１０）の第１ソフトウェア更新検証作業は、非セキュリティ実行環境（２１０）で実行される。
【００４７】
第１ソフトウェアの更新を検証した結果、第１ソフトウェアを更新する必要があると判断された場合、第１更新管理部（１１０）は、非セキュリティ実行環境（２１０）に保存されたイメージデータ（４１０）の中の第１ソフトウェアの更新の第１イメージ、即ち、ＴＥＥイメージ（４１０）を用いて第１ソフトウェアを更新する。
ここで第１ソフトウェアを更新する必要がある場合とは、第１ソフトウェアが偽造又は変造されてその信頼性が疑わしい場合、第１ソフトウェアのバージョンが旧バージョン又は他のデバイスとの互換性が保障されない場合、ユーザーアプリケーション又はシステムアプリケーションから第１ソフトウェアを更新するための要請がある場合等が含まれる。
【００４８】
第１ソフトウェアの更新作業後、非セキュリティ実行環境（２１０）に保存されていたイメージデータ（４００）の中のデバイスイメージ（４２２ａ、４２２ｂ）及びシグネチャー（４２６）は、イメージ管理部（２００）、第１更新管理部（１１０）及び第２更新管理部（１２０）の内の少なくとも一つによってセキュリティ実行環境（２２０）に保存される。
これにより、非セキュリティ実行環境（２１０）は、セキュリティ実行環境（２２０）に保存されたデバイスイメージ（４２２ａ、４２２ｂ）及びシグネチャー（４２６）にアクセスできなくなる。
本発明のいくつかの実施形態において、デバイスイメージ（４２２ａ、４２２ｂ）はエンコードされる。
【００４９】
また、図６を参照すると、第２更新管理部（１２０）は、セキュリティ実行環境（２２０）によって制御される一つ以上のデバイス（２３０、２３２）を駆動する一つ以上の第２ソフトウェアの更新を検証する。
即ち、第２更新管理部（１２０）の第２ソフトウェア更新検証作業は、セキュリティ実行環境（２２０）で実行される。
本発明のいくつかの実施形態において、第２更新管理部（１２０）は、デバイス（２３０、２３２）それぞれのソフトウェアバージョン情報又は第２ソフトウェアの更新のソフトウェアバージョン情報を検証する。
【００５０】
第２ソフトウェアを検証した結果、第２ソフトウェアを更新する必要があると判断された場合、第２更新管理部（１２０）は、セキュリティ実行環境（２２０）に保存された第２イメージ、即ちデバイスイメージ（４２２ａ、４２２ｂ）を用いて第２ソフトウェアを更新する。
具体的には、第２更新管理部（１２０）は、デバイスイメージ（４２２ａ）を用いて第１デバイス（２３０）を駆動する第２ソフトウェアを更新し、デバイスイメージ（４２２ｂ）を用いて第２デバイス（２３２）を駆動する第２ソフトウェアを更新する。
ここで第２ソフトウェアを更新する必要がある場合とは、第２ソフトウェアが偽造又は変造されてその信頼性が疑わしい場合、第２ソフトウェアのバージョンが旧バージョン又は他のデバイスとの互換性が保障されない場合、ユーザーアプリケーション又はシステムアプリケーションから第２ソフトウェアを更新するための要請がある場合等が含まれる。
【００５１】
ここで、デバイスイメージ（４２２ａ、４２２ｂ）がエンコードされている場合、エンコードされたデバイスイメージ（４２２ａ、４２２ｂ）は、第２ソフトウェアを更新する前にデコードされる。
本発明のいくつかの実施形態において、エンコードされたデバイスイメージ（４２２ａ、４２２ｂ）はセキュリティ実行環境（２２０）でデコードされた後、第２ソフトウェアを更新するために使用される。
一方、本発明の他のいくつかの実施形態において、エンコードされたデバイスイメージ（４２２ａ、４２２ｂ）はセキュリティ実行環境（２２０）からデバイス（２３０、２３２）に送信されデバイス（２３０、２３２）でデコードされた後、第２ソフトウェアを更新するために使用される。
【００５２】
上述したように本発明のソフトウェア更新方法によれば、複数のデバイス（２３０、２３２）のソフトウェアイメージ、例えば、複数のデバイス（２３０、２３２）をそれぞれ駆動するファームウェアのバイナリイメージが非セキュリティ実行環境（２１０）を含む外部（ｏｕｔｓｉｄｅ）に露出されないので、安全な方法で複数のデバイス（２３０、２３２）のソフトウェアの更新が可能となる。
また、本発明のソフトウェア更新方法は、第１ソフトウェアの更新に用いられる第１イメージと、第１ソフトウェアによって駆動される実行環境又はデバイスを制御する第２ソフトウェアの更新に用いられる第２イメージとが共に含まれた一つのイメージデータを用いて順次的に第１ソフトウェアと第２ソフトウェアを更新する。特に、複数のデバイス（２３０、２３２）を駆動するソフトウェアを連続して更新する。
従って、複数の実行環境又はデバイスを駆動する複数のソフトウェアを容易又は効率的に更新し、複数のデバイス（２３０、２３２）のソフトウェアに対する問題が発生した場合、容易又は効率的に復旧できる。
【００５３】
図７は、本発明の第３の実施形態によるイメージデータの構造を説明するための概略図である。
図７を参照すると、図５に関する実施形態と異なる点は、本実施形態によるイメージデータ（４００）は、ＴＥＥイメージ（４１０）、デバイスイメージ（４３０）、及びシグネチャー（４６０）を含み、デバイスイメージ（４３０）はセキュリティ実行環境（２２０）によって制御される一つ以上のデバイス（２３０、２３２）を駆動する一つ以上の第２ソフトウェアの更新のイメージを保存する方式が異なる。
【００５４】
具体的には、本実施形態において、イメージデータ（４００）に含まれるデバイスイメージ（４３０）は、第１デバイスイメージ（４３２）、第１シグネチャー（４３３）、…、第Ｎデバイスイメージ（４３４）、第Ｎシグネチャー（４３５）が含まれる（ただし、Ｎは自然数）。
本発明のいくつかの実施形態において、一つ以上のデバイスイメージ（４３２、４３３）はエンコードされたイメージである。
ここで、第１シグネチャー（４３３）は第１デバイスの第２ソフトウェアの更新に対する検証のために用いられ、第Ｎシグネチャー（４３５）は第Ｎデバイスの第２ソフトウェアの更新に対する検証のために用いられる。
【００５５】
図８は、本発明の第３の実施形態によるソフトウェア更新方法を説明するための概略図である。
図８を参照すると、図６に関した実施形態と異なる点は、第１ソフトウェアの更新作業後、非セキュリティ実行環境（２１０）に保存されていたイメージデータ（４００）の中のデバイスイメージ（４３２ａ、４３２ｂ）及びシグネチャー（４３３ａ、４３３ｂ）が、イメージ管理部（２００）、第１更新管理部（１１０）、及び第２更新管理部（１２０）の内の少なくとも一つによってセキュリティ実行環境（２２０）に保存されるという点である。
【００５６】
これにより、第２ソフトウェアを更新する必要がある場合、第２更新管理部（１２０）は、第１デバイスイメージ（４３２ａ）及び第１シグネチャー（４３３ａ）を用いて第１デバイス（２３０）を駆動する第２ソフトウェアを更新し、第２デバイスイメージ（４３２ｂ）及び第２シグネチャー（４３３ｂ）を用いて第２デバイス（２３２）を駆動する第２ソフトウェアを更新する。
【００５７】
図９は、本発明の第４の実施形態によるイメージデータの構造を説明するための概略図である。
図９を参照すると、図７に関した実施形態と異なる点は、本実施形態によるイメージデータ（４００）は、ＴＥＥイメージ（４１０）、デバイスイメージ（４４０）及びシグネチャー（４６０）を含み、デバイスイメージ（４４０）はセキュリティ実行環境（２２０）によって制御される第１デバイスイメージ（４４２）、残りのデバイスイメージ（４５０）及び第１シグネチャー（４４６）を含み、デバイスイメージ（４５０）はセキュリティ実行環境（２２０）によって制御される第２デバイスイメージ（４５２）、残りのデバイスのイメージ（４５４）及び第２シグネチャー（４５６）を含む。
【００５８】
本発明のいくつかの実施形態において、一つ以上のデバイスイメージ（４４２、４５２）はエンコードされたイメージである。
ここで、第１シグネチャー（４４６）は第１デバイスの第２ソフトウェアの更新に対する検証に用いられ、第２シグネチャー（４５６）は第２デバイスの第２ソフトウェアの更新に対する検証に用いられる。
【００５９】
図１０は、本発明の第４の実施形態によるソフトウェア更新方法を説明するための概略図である。
図１０を参照すると、図８に関した実施形態と異なる点は、第１ソフトウェアの更新作業後、非セキュリティ実行環境（２１０）に保存されていたイメージデータ（４００）の中の第１デバイスイメージ（４４２）、残りのデバイスのイメージ（４５０）、及び第１シグネチャー（４４６）が、イメージ管理部（２００）、第１更新管理部（１１０）、及び第２更新管理部（１２０）の内の少なくとも一つによってセキュリティ実行環境（２２０）に保存され、第１デバイス（２３０）の更新作業実行中に、第２デバイスイメージ（４５２）、残りのデバイスのイメージ（４５４）、及び第２シグネチャー（４５６）が、イメージ管理部（２００）及び第２更新管理部（１２０）の内の少なくとも一つによって第１デバイス（２３０）に保存されるという点である。
【００６０】
これにより、第２ソフトウェアを更新する必要がある場合、第２更新管理部（１２０）は、セキュリティ実行環境（２２０）に保存された第１デバイスイメージ（４４２）及び第１シグネチャー（４４６）を用いて第１デバイス（２３０）を駆動する第２ソフトウェアを更新し、第１デバイス（２３０）に保存された第２デバイスイメージ（４５２）及び第２シグネチャー（４５６）を用いて第２デバイス（２３２）を駆動する第２ソフトウェアを更新する。
勿論、第１デバイス（２３０）に保存された残りのデバイスのイメージ（４５４）は、第２デバイス（２３２）に送信され保存される。
【００６１】
図１１は、本発明の一実施形態によるソフトウェア更新方法を説明するためのフローチャートである。
図１１を参照すると、本発明の一実施形態によるソフトウェア更新方法は、ソフトウェア更新システム（１）の起動を開始し（ｓｔａｒｔ  ｂｏｏｔｉｎｇ）（ステップＳ１１０１）、ＲＥＥを通じＴＥＥを検証する（ステップＳ１１０３）。
【００６２】
更新の判断方法としては、例えば、ＴＥＥのバイナリハッシュ又はソフトウェアのバージョンを検証してＴＥＥを駆動するソフトウェアの更新が必要か否かを判断する（ステップＳ１１０５）。
ＴＥＥソフトウェアの更新が必要な場合（Ｙ）、前記方法はＲＥＥに保存されたＴＥＥイメージを用いてＴＥＥを駆動するソフトウェアを更新し（ステップＳ１１０７）、更新が成功裏に行われたか否かを判断する（ステップＳ１１１１）。
更新が成功裏に行われていない場合（Ｎ）、ＴＥＥを駆動するソフトウェアをロールバックし（ステップＳ１１１３）、更新が成功裏に行われた場合（Ｙ）、ＴＥＥを通じＳＥを検証する（ステップＳ１１０９）。
【００６３】
次に、例えば、ＳＥのソフトウェアのバージョンを検証してＳＥを駆動するソフトウェア更新が必要か否かを判断する（ステップＳ１１１５）。
ＳＥソフトウェアの更新が必要な場合（Ｙ）、ＴＥＥに保存されたＳＥイメージを用いてＳＥを駆動するソフトウェアを更新し（ステップＳ１１１７）、更新が成功裏に行われたか否かを判断する（ステップＳ１１２１）。
更新が成功裏に行われていない場合（Ｎ）、ＴＥＥを駆動するソフトウェアをロールバックし（ステップＳ１１２３）、更新が成功裏に行われた場合（Ｙ）、ソフトウェア更新システム（１）の起動を完了する（ｃｏｍｐｌｅｔｅ  ｂｏｏｔｉｎｇ）（ステップＳ１１１９）。
【００６４】
図１２は、本発明の他の実施形態によるソフトウェア更新方法を説明するためのフローチャートである。
図１２を参照すると、本発明の他の実施形態によるソフトウェア更新方法は、ソフトウェア更新システム（１）の起動（ｂｏｏｔｉｎｇ）を開始し（ステップＳ１２０１）、ソフトウェア更新システム（１）の起動を完了（ステップＳ１２０３）した後、ＲＥＥを通じＴＥＥを検証する（ステップＳ１２０５）。
【００６５】
ＴＥＥソフトウェアの更新が必要な場合、ＲＥＥに保存されたＴＥＥイメージを用いてＴＥＥを駆動するソフトウェアを更新する（ステップＳ１２０７）。
次に、ＴＥＥを通じデバイスを検証する（ステップＳ１２０９）。
例えば、デバイスのソフトウェアのバージョンを検証してデバイスを駆動するソフトウェア更新が必要か否かを判断する。
デバイスソフトウェアの更新が必要な場合、ＴＥＥに保存されたデバイスイメージを用いてデバイスを駆動するソフトウェアを更新し（ステップＳ１２１１）、あらゆるデバイスに対して検証及び更新が完了したのか判断（ステップＳ１２１３）する。
検証及び更新が必要なデバイスがまだ存在する場合（Ｎ）、ＴＥＥを通じ該当デバイスを検証する（ステップＳ１２０９）にもどる。
【００６６】
図１３は、本発明のさらに他の実施形態によるソフトウェア更新方法を説明するためのフローチャートである。
図１３を参照すると、本発明のさらに他の実施形態によるソフトウェア更新方法は、ソフトウェア更新システム（１）の起動（ｂｏｏｔｉｎｇ）の開始（ステップＳ１３０１）し、ソフトウェア更新システム（１）の起動を完了（ステップＳ１３０３）した後、ＲＥＥを通じＴＥＥを検証する（ステップＳ１３０５）。
ＴＥＥソフトウェアの更新が必要な場合、ＲＥＥに保存されたＴＥＥイメージを用いてＴＥＥを駆動するソフトウェアを更新する（ステップＳ１３０７）。
【００６７】
次に、ＴＥＥを通じ第１デバイスを検証する（ステップＳ１３０９）。
例えば、第１デバイスのソフトウェアのバージョンを検証して第１デバイスを駆動するソフトウェアの更新が必要か否かを判断する。
第１デバイスソフトウェアの更新が必要な場合、ＴＥＥに保存された第１デバイスイメージを用いて第１デバイスを駆動するソフトウェアを更新する（ステップＳ１３１１）。
【００６８】
次に、例えば、第２デバイスのソフトウェアのバージョンを検証して第２デバイスを駆動するソフトウェアの更新が必要か否かを判断する。
第２デバイスソフトウェアの更新が必要な場合、第１デバイスに保存された第２デバイスイメージを用いて第２デバイスを駆動するソフトウェアを更新する（ステップＳ１３１３）。
このような工程を繰り返して第Ｎデバイスを駆動するソフトウェアまでの更新を完了する（ただし、Ｎは自然数）。
【００６９】
上述したように本発明の多様な実施形態は多様なコンピュータを通じて行えるプログラム命令に具現され、コンピュータで読取可能な記録媒体に記録できる。
ここで記録媒体は、プログラム命令、データファイル、データ構造等が含まれる。
またプログラム命令は、本発明の多様な実施形態のために特別に設計されたか構成されたものであるか、コンピュータソフトウェア分野の通常の技術者に公示され、使用可能なものであってもよい。
【００７０】
また、記録媒体にはハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体（Ｍａｇｎｅｔｉｃ  Ｍｅｄｉａ）と、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体（Ｏｐｔｉｃａｌ  Ｍｅｄｉａ）と、フロプティカルディスク（Ｆｌｏｐｔｉｃａｌ  Ｄｉｓｋ）のような磁気−光媒体（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｍｅｄｉａ）と、ロム（ＲＯＭ）と、ラム（ＲＡＭ）と、フラッシュメモリー等と同様のハードウェアが含まれる。
【００７１】
また、プログラム命令にはコンパイラーによって作られることと同様の機械語コードだけでなく、インタープリター等を使用してコンピュータによって実行させることができる高級言語コードが含まれる。
一方、上述したように本発明の多様な実施形態はプロセッサ（１０）と電気的に接続してプロセッサ（１０）の制御によって動作するハードウェアモジュールとして具現することもできる。
例えば、上述したように本発明の多様な実施形態はアプリケーションプロセッサ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ）の一部領域に複数の半導体素子を形成するように製造できる。
【００７２】
図１４〜図１６は、本発明の実施形態によるソフトウェア更新方法及びシステムを適用できる例示的な半導体システムの外観図である。
図１４は、タブレットＰＣ（１２００）を示す図であり、図１５はノートブック型ＰＣ（１３００）を示す図であり、図１６はスマートフォン（１４００）を示す図である。
本発明の実施形態によるソフトウェア更新方法及びシステムの中の少なくとも一つはこのようなタブレットＰＣ（１２００）、ノートブック型ＰＣ（１３００）、スマートフォン（１４００）等に使われる。
【００７３】
また、本発明のいくつかの実施形態によるソフトウェア更新方法及びシステムは、例示しなかった他の集積回路装置にも適用できるとは該当技術分野の通常の技術者には自明である。
即ち、以上では本実施形態によるソフトウェア更新システムの例で、タブレットＰＣ（１２００）、ノートブック型ＰＣ（１３００）、及びスマートフォン（１４００）のみを開示したが、本実施形態によるソフトウェア更新システムの例がこれに制限されるわけではない。
【００７４】
本発明のいくつかの実施形態で、ソフトウェア更新システムは、コンピュータ、ＵＭＰＣ（Ｕｌｔｒａ  Ｍｏｂｉｌｅ  ＰＣ）、ワークステーション、ネットブック（ｎｅｔ−ｂｏｏｋ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ポータブルコンピュータ、無線電話機（ｗｉｒｅｌｅｓｓ  ｐｈｏｎｅ）、モバイルフォン（ｍｏｂｉｌｅ  ｐｈｏｎｅ）、ｅ−ブック（ｅ−ｂｏｏｋ）、ＰＭＰ（ｐｏｒｔａｂｌｅ  ｍｕｌｔｉｍｅｄｉａ  ｐｌａｙｅｒ）、携帯用ゲーム機、ナビゲーション（ｎａｖｉｇａｔｉｏｎ）装置、ブラックボックス（ｂｌａｃｋ  ｂｏｘ）、デジタルカメラ（ｄｉｇｉｔａｌ  ｃａｍｅｒａ）、３Ｄテレビージョン（３−ｄｉｍｅｎｓｉｏｎａｌ  ｔｅｌｅｖｉｓｉｏｎ）、デジタルオーディオプレーヤー（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｐｌａｙｅｒ）、デジタルオーディオレコーダー（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｒｅｃｏｒｄｅｒ）、デジタル画像デコーダー（ｄｉｇｉｔａｌ  ｐｉｃｔｕｒｅ  ｒｅｃｏｄｅｒ）、デジタル画像プレーヤー（ｄｉｇｉｔａｌ  ｐｉｃｔｕｒｅ  ｐｌａｙｅｒ）、デジタルビデオレコーダー（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｒｅｃｏｒｄｅｒ）、デジタルビデオプレーヤー（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｐｌａｙｅｒ）等で具現される。
【００７５】
本発明の実施形態を説明したが、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００７６】
１、２    ソフトウェア更新システム
１０    プロセッサ
１２    ディスプレイ
１４    ストレージ
１６    入力デバイス
１８    メモリ
２０    セキュア要素（ＳＥ）
２２    バス
２４    オペレーティングシステム（ＯＳ）
１００    更新管理部
１１０    第１更新管理部（ＴＥＥ更新管理部）
１２０    第２更新管理部（ＳＥ更新管理部）
２００    イメージ管理部
２１０    非セキュリティ実行環境
２１２    ハードウェアリソース
２１３、２１４    非セキュリティアプリケーション
２１５    非セキュリティＡＰＩ
２１６    非セキュリティカーネル
２２０    セキュリティ実行環境
２２２    ハードウェアセキュリティリソース
２２３、２２４    セキュリティアプリケーション
２２５    セキュリティＡＰＩ
２２６    セキュリティカーネル
２３０、２３２    （第１、第２）デバイス
３００、４００    イメージデータ
３１０、４１０    ＴＥＥイメージ
３２０    ＳＥイメージ
３２２    エンコードされたＳＥイメージ
３２４、３３０、４２６、４６０    シグネチャー
４２０、４２２ａ、４２２ｂ、４３０    デバイスイメージ
【図１】
2016207219.tif 000003
【図２】
2016207219.tif 000004
【図３】
2016207219.tif 000005
【図４】
2016207219.tif 000006
【図５】
2016207219.tif 000007
【図６】
2016207219.tif 000008
【図７】
2016207219.tif 000009
【図８】
2016207219.tif 000010
【図９】
2016207219.tif 000011
【図１０】
2016207219.tif 000012
【図１１】
2016207219.tif 000013
【図１２】
2016207219.tif 000014
【図１３】
2016207219.tif 000015
【図１４】
2016207219.tif 000016
【図１５】
2016207219.tif 000017
【図１６】
2016207219.tif 000018