JP6595822B2 - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法 Download PDF

Info

Publication number
JP6595822B2
JP6595822B2 JP2015136367A JP2015136367A JP6595822B2 JP 6595822 B2 JP6595822 B2 JP 6595822B2 JP 2015136367 A JP2015136367 A JP 2015136367A JP 2015136367 A JP2015136367 A JP 2015136367A JP 6595822 B2 JP6595822 B2 JP 6595822B2
Authority
JP
Japan
Prior art keywords
software
update
version
unit
processing apparatus
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
JP2015136367A
Other languages
English (en)
Other versions
JP2017021434A5 (ja
JP2017021434A (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.)
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 JP2015136367A priority Critical patent/JP6595822B2/ja
Priority to US15/201,757 priority patent/US9965268B2/en
Publication of JP2017021434A publication Critical patent/JP2017021434A/ja
Publication of JP2017021434A5 publication Critical patent/JP2017021434A5/ja
Application granted granted Critical
Publication of JP6595822B2 publication Critical patent/JP6595822B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 operation
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Description

本発明は情報処理装置及びその方法に関し、特に情報処理装置の基本ソフトウェアであるファームウェアを古いバージョンに戻すこと(以下、ロールバック)の防止に用いて好適なものである。
パーソナルコンピュータ(PC)等の情報処理装置において、耐タンパーなセキュリティチップであるTPM(Trusted Platform Module)を用いて、情報処理装置のファームウェアのロールバックを防止する従来技術がある(特許文献1)。この特許文献1は、TPMチップが具備するNVRAM(不揮発性メモリ)に保存した現在のファームウェアのバージョン番号と、更新(アップデート)する配信ファームウェアのバージョン番号とを比較することで、ロールバックを検知・防止している。例えば、配信ファームウェアのバージョン番号が「5」で、TPM内のNVRAMに保存した現在のファームウェアのバージョン番号が「10」の場合、ロールバックとして検知し、ファームウェアのアップデートを中止する。また、別の従来技術(非特許文献1)では、TPMが具備する単調にしか増加しないカウンタ(単調増加カウンタ)で現在のファームウェアのバージョン番号を管理し、配信ファームウェアのバージョン番号と比較することで、ロールバックを検知・防止している。ロールバックを防止することで、古いファームウェアの脆弱性を突いた攻撃から情報処理装置を保護することができる。
米国特許第8745612号公報
TCG Mobile Trusted Module Specification(Version 1.0, Revision 7.02)
しかしながら、特許文献1には、TPMのNVRAMに現在のファームウェアのバージョン番号を保存しているため、NVRAMにアクセスし、古いバージョン番号でNVRAM内のバージョン番号を書き換えれば、ロールバックが可能となる。例えば、NVRAM内のバージョン番号を「10」から「2」に書き換えることで、現在のバージョン番号である「10」よりも古い、「3」から「9」のバージョンのファームウェアに戻すことができる。一方、非特許文献1には、バージョン番号を単調増加カウンタで管理しているため、バージョン番号を古い値に書き換えることは物理的に不可能である。しかし、非特許文献1には、単調増加カウンタを増加させるタイミングについては言及していないため、次の課題が想定される。つまり、ファームウェアのアップデートに失敗し、単調増加カウンタのバージョン番号を元には戻そうとしても2度と元には戻せないため、単調増加カウンタの増加タイミングが適切でなければ、今後のアップデートができなくなる課題がある。例えば、バージョン番号が「2」のファームウェアから、バージョン番号が「11」のファームウェアにアップデートする場合を考える。このとき、アップデートにより、単調増加カウンタが管理するバージョン番号が「2」から「11」に増加するが、増加した後でファームウェアの書き換えなどに失敗すると、単調増加カウンタだけが「11」に更新され、実際のファームウェアは更新されない。従って、もう一度バージョン番号が「11」のファームウェアへのアップデートをやり直そうとしても、単調増加カウンタで管理するバージョン番号よりも値が大きくないためアップデートができなくなってしまう可能性がある。
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
セキュリティチップを具備する情報処理装置であって、
単調に増加するカウンタ値を保持するカウンタ部と、
前記カウンタ部が保持するカウンタ値で前記情報処理装置内のソフトウェアの現在のバージョン番号を管理するバージョン管理部と、
前記ソフトウェアのアップデート用ソフトウェア、及び前記アップデート用ソフトウェアのバージョン番号の正当性を検証する第1の検証部と、
前記アップデート用ソフトウェアのバージョン番号と前記カウンタ部が保持する前記ソフトウェアの現在のバージョン番号を比較することで、前記アップデート用ソフトウェアのバージョンが現在のソフトウェアのバージョンより新しいバージョンか否かを検知するロールバック検知部と、
前記ロールバック検知部で前記アップデート用ソフトウェアのバージョンの方が現在のソフトウェアのバージョンより新しいと判断された場合に前記アップデート用ソフトウェアを用いて前記ソフトウェアを更新し、前記ロールバック検知部で前記アップデート用ソフトウェアのバージョンの方が現在のソフトウェアのバージョンより新しいと判断されなかった場合に前記ソフトウェアの更新を中断するアップデート部と、
前記アップデート部が前記ソフトウェアの更新に成功したか否かを検証する第2の検証部と、
アクセス制御可能な不揮発性メモリである保存部と、を有し、
前記バージョン管理部は、前記第2の検証部が前記ソフトウェアの更新に成功したと判断した場合に、前記カウンタ部が保持するバージョン番号を、前記アップデート用ソフトウェアのバージョン番号と一致するまで増加させ
前記カウンタ部は、前記バージョン管理部からバージョン番号の増加の要求があった場合、パスワードである認可シークレットを要求し、前記認可シークレットが正しい場合にのみ前記カウンタ部が保持するバージョン番号の増加を実行し、
前記認可シークレットは、前記情報処理装置で起動するソフトウェアに改竄がない場合にのみアクセスできるようにアクセス制御された前記保存部に保存されていることを特徴とする。
本発明によれば、情報処理装置のファームウェアアップデートにおいて、ファームウェアのロールバックを防止することができる。
情報処理装置の構成例を示すブロック図。 情報処理装置の機能構成例を説明するブロック図。 第1の実施形態のファームウェアアップデートにおけるロールバック検知処理を示すフローチャート。 変形例1の単調増加カウンタの不正増加防止処理を説明するフローチャート。 変形例1及び2の認可シークレットのアクセス制御を説明する図。 変形例3のルート証明書のアクセス制御を説明する図。 配信ファームウェア情報を説明する図。
以下、添付図面に従って本発明にかかる実施形態を詳細に説明する。
[実施形態]
[装置構成]
図1は、本実施形態が適応可能な情報処理装置100のブロック構成図である。情報処理装置100は、例えば一般に普及しているパーソナルコンピュータ・情報携帯端末、或いは画像データのコピー、スキャン、プリント等を実行可能な画像処理装置、或いはデジタル写真を撮影可能な撮像装置である。なお、例えば撮像装置の場合、当然、撮像装置に固有のハードウェア構成要素である操作部、撮像部等を持つことになる。実施形態でが、説明を単純化するため装置種類に固有のハードウェア構成は省略し、図1ではファームウェアのアップデートに関連する構成のみを示した。
図1に示すように、本実施形態における情報処理装置100は、ROM101、HDD102、TPM(Trusted Platform Module)103、RAM104、及びCPU105から構成される。
ROM101は、物理的、或いは論理的な書き換えが不可能な不揮発性メモリであり、BIOS110や各種ソフトウェア、及びデータを記憶可能な記憶装置である。BIOS110は情報処理装置100全体を制御するソフトウェアである。また、BIOS110は、情報処理装置100に電源が投入された際、情報処理装置内部で最初に起動されるソフトウェアである。
HDD102は、ブートローダ111、OS(Operation System)112、ソフトウェアA 113、ソフトウェアB 114、アップデータ(アップデート用ソフトウェア)123をはじめ様々なファイルが記憶(格納)可能な記憶装置である。ここで、ブートローダ111はOS112やアップデータ123の起動を制御をするソフトウェアである。OS112は、各種ソフトウェア(後述のソフトウェアA113、ソフトウェアB114)のロード、RAM104のメモリ管理、及び不図示の画面出力などの入出力機能を制御するソフトウェアである。ソフトウェアA 113、及びソフトウェアB 114 は、メール、ワードプロセッサ、表計算、データベース管理、ネットワークブラウジング、映像・音声再生、印刷、通信など、情報処理装置100が実現する各種機能を提供するソフトウェアである。本実施形態ではHDD102内の各種機能を提供するソフトウェアをソフトウェアA 113、及びソフトウェアB 114 から構成されているものとして説明するが、これに限定されることなく、より多くのソフトウェアから構成されていても良い。アップデータ123は、情報処理装置100を制御する基本ソフトウェアであるファームウェア(例えば、OS112など)を、アップデート用ファームウェア(以下、配信ファームウェア)で書き換える機能を持つソフトウェアである。配信ファームウェアは、例えばサーバやSDカードなどの記憶媒体経由で情報処理装置内にダウンロードできる。
TPM103は、耐タンパー性を有するセキュリティチップである。耐タンパー性とは、外部からの解析を困難にすると共に、外部から解析しようとした場合に内部に記憶されているソフトウェア、或いはデータを破壊することにより自己防衛する特性である。また、TPM103は、NVRAM115、PCR0 118、PCR1 119、PCR2 120、PCR3 121、PCR4 122、単調増加カウンタ117、及び制御部116から構成されている。単調増加カウンタ117は、カウンタ値を保持し、且つ、その値を減少が不可能なカウンタであり、例えば、単調に増加するハードウェアカウンタとして実現できる。NVRAM115は後述するアクセス制御が可能な不揮発性メモリである。
PCRは、Platform Configration Registerと略称で、揮発性メモリである。実施形態のTPM103は、PCR0,PCR1,PCR2,PCR3,PCR4の5つPCRを有するものとしているが、この数に制限はない。また、PCR0,PCR1,PCR2,PCR3,PCR4は、前述したBIOS110、ブートローダ111、OS112、ソフトウェアA 113、ソフトウェアB 114、アップデータ123などのハッシュ値を記憶する。制御部116はPCR0、PCR1、PCR2、PCR3、PCR4へのハッシュ値保存処理、暗号・復号処理、カウンタ値増加処理などを実行する。
ここで、制御部116によるPCRx(xは0,1,2,3,4のいずれか)へのハッシュ値保存処理を説明する。ハッシュ値保存処理では、所定のPCRに既に保存されているハッシュ値Hash1と、TPM103の外部から入力されたソフトウェアまたはデータのハッシュ値Hash2を用いて次の式(1)を計算し、計算した値Result1を当該PCRに保存する。
Result1=H(Hash1|Hash2) …(1)
ここで、H(x)は値xに対するハッシュ関数である。ハッシュ関数としては公知のSHA1、SHA256、SHA512等のアルゴリズムが適応可能である。「x|y」は値xと値yの連結を示している。以上説明したPCRへのハッシュ値保存処理は、情報処理装置100が起動する際などに実行される。
ここで、まず情報処理装置100の通常の起動処理について説明する。情報処理装置100に電源が投入されると、まずBIOS110が実行される。その後、ブートローダ111、OS112、ソフトウェアA113、及びソフトウェアB114の順にロード・実行する。ここで、ソフトウェアA113、及びソフトウェアB114は選択的にロード・実行することも可能である。即ち、ロード・実行されないソフトウェアもある。また、ソフトウェアA113、及びソフトウェアB114のロード・実行の順序は特に定める必要はなく、必要な時に必要なソフトウェアがロード・実行される。また、ソフトウェアのロード・実行に関わらず、任意の値のハッシュ値をPCRに保存することもできる。
次に、情報処理装置100のファームウェアアップデート時の起動処理について説明する。ファームウェアアップデート時には、OSなどの基本ソフトウェアも更新するため、OSが起動していない状態でアップデータを起動し、ファームウェアをアップデートをする必要がある。従って、BIOS110の起動後、ブートローダ111を起動し、OS112を起動せずにアップデータ123を起動し、ファームウェアをアップデートする。
本実施形態では、前述したPCRへのハッシュ値保存処理を、以上説明した起動処理中に実行する。即ち、CPU105は、BIOS110に従って起動中に、BIOS110自身のハッシュ値を算出し、TPM103を介して、算出したハッシュ値を式1に従ってPCR0へ保存する。そして、CPU105は、BIOS110に従って、次にブートローダ111のハッシュ値を算出し、算出したハッシュ値を式1に従ってPCR1へ保存する。その後、CPU105は、ブートローダ111を起動する。CPU105は、ブートローダ111を起動すると、通常起動時には、OS112のハッシュ値を算出し、算出したハッシュ値を式1に従ってPCR3へ保存する。その後、CPU105はOS112を起動する。OS112を起動すると、CPU105は、ソフトウェア(ソフトウェアA113、ソフトウェアB114)を起動する前にソフトウェアのハッシュ値を算出し、算出したハッシュ値を式1に従ってPCR4へ保存し、ソフトウェアを起動する。CPU105は、OS112に従ってソフトウェアを起動する毎にハッシュ値保存処理を繰り返し実行する。一方で、ファームウェアアップデート時には、CPU105は、ブートローダ111に従って、OS112ではなく、アップデータ123のハッシュ値を算出し、算出したハッシュ値を式1に従ってPCR2に保存する。その後、CPU105は、アップデータ123を起動する。アップデータを起動すると、CPU105は、そのアップデータに従い、ダウンロードした配信ファームウェアで情報処理装置100の現在のファームウェアを更新する。
[機能構成]
図2は、実施形態における情報処理装置100の機能ブロック図である。この機能構成は、CPU105が実施形態の情報処理プログラム(アップデータ123)を実行することで実現される。本機能構成により、情報処理装置100のファームウェアが古いバージョンのファームウェアに書き換えられること(ロールバック)を防止できる。
第1の検証部201は、サーバやSDカード経由でダウンロードした配信ファームウェア及び当該配信ファームウェアのバージョン番号が正規のものである(改竄されていない)か否かを検証し、正規でなければファームウェアのアップデートを中止する。例えば、図7に示すように配信ファームウェア情報700として、配信ファームウェアのバージョン番号701、配信ファームウェアのハッシュ値702及びデジタル署名703で構成することで、配信ファームウェア及びバージョン番号が正規か否かを検証できる。具体的には配信ファームウェア情報のデジタル署名703が正しいか否かを署名検証鍵(公開鍵)209を用いて検証する。署名検証鍵(公開鍵)209は、デジタル署名703の生成に用いた署名生成鍵(秘密鍵)と対になる公開鍵である。配信ファームウェア情報700のデジタル署名703が正しいことが検証されれば、それに含まれる配信ファームウェアのバージョン番号701及び配信ファームウェアのハッシュ値702が正しいこと(正当性)が保証される。そして、配信ファームウェア208から算出したハッシュ値と、配信ファームウェア情報700に含まれる配信ファームウェアのハッシュ値702が一致するか否かを検証することで配信ファームウェア208が改竄されているか否かを検証できる。これはあくまで一例であり、例えば配信ファームウェアのハッシュ値ではなく、配信ファームウェアのデジタル署名を配信ファームウェアと一緒に配信し、当該デジタル署名を検証することでも配信ファームウェアの改竄を検証できる。また、署名検証鍵(公開鍵)209を公開鍵証明書とすることで、情報処理装置100内に保存するルート証明書で署名検証鍵(公開鍵)が正規のものかを検証するようにしても良い。
ロールバック検知部202は、ダウンロードした配信ファームウェアのバージョンが古いバージョンか否かを検知し、古いバージョンであればファームウェアのアップデートを中止する。具体的には、第1の検証部201で検証した配信ファームウェア情報700に含まれる配信ファームウェアのバージョン番号701、後述するTPM103が具備するカウンタ部204(単調増加カウンタ117に対応)で管理する現在のファームウェアのバージョン番号の比較が行われる。配信ファームウェアのバージョン番号701がカウンタ部204で管理する現在のファームウェアのバージョン番号より小さい場合は、配信ファームウェアが古いバージョンであると判断し、アップデートを中止する。なお、カウンタ部204で管理する現在のファームウェアのバージョン番号は、後述するバージョン管理部203を介して取得する。
バージョン管理部203は、後述するTPM103が具備する単調増加カウンタ117であるカウンタ部204のカウンタ値を取得したり、増加させる機能を持つ。取得したカウンタ値は、要求に応じてロールバック検知部202や後述する第2の検証部207に送信する。
カウンタ部204は、バージョン管理部203の指示で増加する単調増加なカウンタであり、例えば、TPM103の単調増加カウンタ117で実現できる。また、認証が成功した時だけ、カウンタ部204が増加できるように制御することもできる。例えば、カウンタ部204の増加時に、パスワード(以下、認可シークレット)を要求し、認可シークレットが正しい時だけ増加可能に制御できる。
保存部205は、アクセス制御可能な不揮発性メモリであり、例えば、TPM103のNVRAM115で実現できる。以下、保存部205のアクセス制御機能について説明する。
保存部205のアクセス制御機能を用いることで、PCRに保存されているハッシュ値が正解ハッシュ値と一致した場合にのみ、保存部205に保存するデータを読み書きできるように制御できる。例えば、BIOS110、ブートローダ111、アップデータ123が改竄されていない場合のハッシュ値を正解ハッシュ値として、保存部205に保存されるデータへのアクセス条件に設定できる。このとき、BIOS110、ブートローダ111、アップデータ123の何れかが改竄されていると、アクセス条件に設定した正解ハッシュ値とPCRのハッシュ値とが不一致となり、NVRAM115に保存されるデータにアクセスできなくなる。これにより、改竄されたソフトウェアによる、データへの不正アクセスを防止できる。なお、上述した保存部205のアクセス制御機能を、以下ではTPMのNVRAM機能と呼称する場合がある。
アップデート部206は、配信ファームウェア208で、情報処理装置100のファームウェアを更新する。ここで、配信ファームウェア208は、秘匿にするために暗号化されていても良い。この場合、アップデート部206は、情報処理装置100に保存される復号鍵を使い、暗号化された配信ファームウェア208を復号する。ここで、復号鍵の秘匿化には、上述したTPMのNVRAM機能やシール機能を用いることができる。例えば、TPMのNVRAM機能で保存部205にアクセス制御を付与し、そこに復号鍵を保存することで改竄されたソフトウェアによる復号鍵への不正アクセスを防止できる。
次にTPM103のシール機能について説明する。TPM103のシール機能は、PCRに保存されているハッシュ値が正解ハッシュ値と一致した場合にのみ復号可能となるように暗号化する機能である。例えば、シール機能を用いることで、BIOS110、ブートローダ111、アップデータ123が改竄されていない場合のハッシュ値を正解ハッシュ値として復号条件に設定し、復号鍵を暗号化できる。このとき、BIOS110、ブートローダ111、アップデータ123の何れかが改竄されていると、復号条件に設定した正解ハッシュ値とPCRのハッシュ値とが不一致となり、暗号化した復号鍵を復号(アンシール)できなくなる。これにより、改竄されたソフトウェアによる復号鍵の不正読み取りを防止できる。
なお、前述した正解ハッシュ値は一例であり、例えば、BIOS110、ブートローダ111、OS112のハッシュ値を正解ハッシュ値とすることもできる。また、BIOS110、ブートローダ111、OS112、アップデータ123のハッシュ値を正解ハッシュ値としてもよい。
第2の検証部207は、アップデート部206によるアップデートが正常に行われたか否かを検証する。例えば、アップデート部206によりROMやHDDに書き込まれた配信ファームウェア208からハッシュ値を計算し、配信ファームウェア情報700の配信ファームウェアのハッシュ値702と比較することで、ファームウェアが正しく更新されたかを検証できる。
正しく更新されていない場合は、元のファームウェア(更新前のファームウェア)に戻してからアップデートを中止する。更新前に予め元のファームウェアをHDDなどに退避しておくなどすることで、元のファームウェアに戻すことが可能となる。これは一例であり、例えば、更新ファームウェアを元のファームウェアとは別の領域に書き込むことでも元のファームウェアに戻すことができる。
ハッシュ値比較により正しく更新されていることが確認できた場合、第2の検証部207は、バージョン管理部203にカウンタ部204で管理するバージョン番号を増加するように指示する。具体的には、配信ファームウェア情報700の配信ファームウェアのバージョン番号701の値と一致するまで、カウンタ部204で管理するバージョン番号を増加させる。
上述した第1の検証部201、ロールバック検知部202、バージョン管理部203、アップデート部206及び第2の検証部207は、例えばアップデータ123が具備する機能として実現できる。
ここで、改竄されていないアップデータ123のみ起動するように制御することもできる。例えば、BIOS110、ブートローダ111、アップデータ123が改竄されていない状態のハッシュ値を正解ハッシュ値(期待値)としてTPM103のNVRAM115に保存しておく。なお、正解ハッシュ値はNVRAM115に保存せず、デジタル署名付きでHDD102に保存するようにしてもよい。BIOS110は、ブートローダ111の起動前にTPM103のPCR1に保存したハッシュ値とNVRAM115に保存してあるブートローダ111の正解ハッシュ値を比較し、一致する場合にのみブートローダ111を起動する。ブートローダ111は、アップデータ123の起動前にTPM103のPCR2に保存したハッシュ値とNVRAM115に保存してあるアップデータ123の正解ハッシュ値を比較し、一致する場合にのみアップデータ123を起動する。これにより、改竄のない正常なアップデータ123のみ、起動可能となるため、改竄されたアップデータ123によるファームウェアの不正アップデートを防止できる。
尚、上述した正常なソフトウェアの起動機能を、以下ではTPMのセキュアブート機能と呼称する場合がある。
[ファームウェアアップデートにおけるロールバック検知処理]
図3のフローチャートにより本実施形態のファームウェアアップデートにおけるロールバック検知処理を説明する。
以下では、サーバからダウンロードした配信ファームウェアで直接ファームウェアをアップデートする処理を説明するが、これは例示である。他にも、SDカードなどの記憶媒体に保存した配信ファームウェアで、情報処理装置100のファームウェアを更新することもできる。また、以下では配信ファームウェアを暗号化しているが、秘匿にする必要がなければ暗号化しなくてもよい。
情報処理装置100のCPU105は、ソフトウェアA113やソフトウェアB114が具備する通信機能を使い、サーバにファームウェアのアップデートのリクエストをする。そして、暗号化された配信ファームウェア208及び配信ファームウェア情報700をサーバからダウンロードする(S301、S302)。ここで、情報処理装置100内に、署名検証鍵(公開鍵)209がない場合は、S302で署名検証鍵(公開鍵)209もダウンロードする。ダウンロード後、リブートし、BIOS、ブートローダ、アップデータを順次起動する(S303、S304)。起動したアップデータは、第1の検証部201で署名検証鍵(公開鍵)209が正しいか否かを情報処理装置100内に保存するルート証明書で検証する(S305)。検証に失敗した場合は、アップデート失敗として処理を終了する(S306)。検証に成功した場合は、第1の検証部201で配信ファームウェア情報700に含まれるデジタル署名703を署名検証鍵(公開鍵)209で検証する(S307)。検証に失敗した場合は、アップデート失敗として処理を終了する(S308)。検証に成功した場合は、ロールバック検知部202で、配信ファームウェアのバージョン番号701と、カウンタ部204で管理する現在のファームウェアのバージョン番号とを比較し、バージョンが古いか否かを検証する(S309)。
配信ファームウェアのバージョン番号701がカウンタ部204で管理する現在のファームウェアのバージョン番号以下の場合は、アップデート失敗として処理を終了する(S310)。配信ファームウェアのバージョン番号701の方が大きい場合は、アップデート部206で、TPMのシール機能で暗号化された配信ファームウェア208の復号鍵を復号(アンシール)する(S311)。アンシールに失敗した場合は、何れかのモジュールが改竄されていると判断し、アップデート失敗として処理を終了する(S312)。アンシールに成功した場合は、アップデート部206で、アンシールした復号鍵を用い、暗号化された配信ファームウェア208を復号する(S313)。次に、アップデート部206は、復号した配信ファームウェアから計算したハッシュ値と、配信ファームウェア情報700に含まれる配信ファームウェアのハッシュ値702が一致するか検証する(S314)。ハッシュ値が一致しない場合は、アップデート失敗として処理を終了する(S315)。ハッシュ値が一致した場合は、アップデート部206は、配信ファームウェア208で情報処理装置100内のファームウェアを更新する(S316)。第2の検証部207は、情報処理装置100のファームウェアが配信ファームウェア208で正しく更新できたか否かをハッシュ値比較で検証する(S317)。正しく更新できていない場合は、元のファームウェアに戻し、アップデート失敗として処理を終了する。正しく更新できていた場合は、第2の検証部207は、カウンタ部204で管理する現在のファームウェアのバージョン番号を、配信ファームウェア700に含まれる配信ファームウェアのバージョン番号701と一致するまで増加させる(S318)。
このように、TPM103のカウンタ部204でロールバックを検知し、かつファームウェアが正しく書き換えられたことを確認した後にカウンタ部204を増加するようにすることで、ロールバック検知とアップデート失敗時の対応を両立することができる。
[変形例1]
以下、本発明に係る変形例1の処理を説明する。なお、変形例1において、上記実施形態と略同様の構成については、同一符号を付して、その詳細説明を省略する。
変形例1では、改竄されていないアップデータだけがカウンタ部204の増加ができるように制限する。カウンタ部の増加を制限しない場合、次の脅威が想定される。例えば、改竄されたアップデータや他のソフトウェアを介して、攻撃者がカウンタ部204のカウンタ値を不正に増加させる攻撃が考えられる。このとき、最新のファームウェアにアップデートしようとしても、カウンタ部204のカウンタが不正に大きい値になってしまっているため、ロールバック検知部202で古いファームウェアと判定され、アップデートできない。
本変形例では、上述の脅威に対抗するために、正常なアップデータのみカウンタ部204の増加ができるように、認可シークレットを使いカウンタ部204の増加を制御する。
[機能構成]
図2のブロック図により変形例1の情報処理装置100の機能構成例を説明する。
本変形例1の機能構成は図2に示すように、実施形態と実質的に同じで、保存部205が具備するTPMのNVRAM機能を利用し、認可シークレットへのアクセス制御を実現する。そして、正しい認可シークレットを利用した場合にのみ、カウンタ部204のカウンタ値を増加できるようにカウンタ部204を制御する。
以下、図5(A)を用い認可シークレットへのアクセス制御を説明する。認可シークレット501は、情報処理装置100が具備するTPM103のNVRAM115に、前述したTPMのNVRAM機能でアクセス制御された状態で保存される。例えば、認可シークレット501のアクセス条件502にBIOSの正解ハッシュ値503、ブートローダの正解ハッシュ値504、アップデータの正解ハッシュ値505を設定することができる。このとき、BIOS110、ブートローダ111、アップデータ123の何れかが改竄されていると、認可シークレットへのアクセスができなくなる。
従って、カウンタ部204の増加には正しい認可シークレット501が必要なので、上述のようにTPMのNVRAM機能で認可シークレット501にアクセス制御をすることで、改竄されたモジュールによるカウンタ部204の増加を防止できる。
[カウンタ部の不正増加の防止処理]
図4のフローチャートにより、本変形例1のカウンタ部204の不正な増加を防止する処理を説明する。図3で示す実施形態のフローチャートと略同様の処理には同一番号を付記し、説明を省略する。
情報処理装置100のアップデータ123は、ダウンロードした配信ファームウェア配信ファームウェアの検証及び復号をした後で、ファームウェアの書き換えを実施する(S301〜S317)。アップデータ123の第2の検証部207は、保存部205にTPMのNVRAM機能でアクセス制御して保存した認可シークレットを取得する(S401)。モジュールの改竄等により認可シークレットが取得できないかった場合は、アップデート失敗として処理を終了する(S402)。取得できた場合、当該認可シークレットを用い、カウンタ部204で管理するバージョン番号の増加を試みる。認可シークレットが正しくない場合は、カウンタ部204で管理するバージョン番号の増加に失敗し、アップデート失敗として処理を終了する(S403)。正しい場合は、配信ファームウェアのバージョン番号までカウンタ部204で管理するバージョン番号を増加させる(S318)。
このように、カウンタ部204の増加に認可シークレットを要求するようにし、かつ改竄されたモジュールがアクセスできないようにアクセス制御された領域に認可シークレットを保存することで、カウンタ部204の不正な増加を防止できる。
[変形例2]
以下、本発明にかかる変形例2の処理を説明する。なお、変形例2において、上記実施形態及び変形例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
本変形例2では、TPM103のNVRAM機能による認可シークレットへのアクセス条件に、OSの正解ハッシュ値としてPCRの初期値を追加する。初期値は例えば、20byte分の「0」が並ぶ値である。本変形例により、以下の脅威に対抗できるようになる。
例えば、通常のブートでOS112を起動し、OSプロセス上の改竄モジュールがアップデータ123からハッシュ値を計算し、PCR2に保存することで、PCR0、PCR1、PCR2の値が認可シークレット501のアクセス条件502と一致する。このとき、改竄モジュールであるにもかかわらず、認可シークレット501にアクセスできてしまう。
本変形例2は上述の脅威に対抗するために、図5(B)に示すように認可シークレットへのアクセス条件507としてOSの正解ハッシュ値(PCR初期値)506を追加している。OSの正解ハッシュ値としてPCRの初期値を設定することで、OSが一度でも起動すると、そのOSのハッシュ値がPCRに保存されるため、ハッシュ値が不一致となり認可シークレット501へのアクセスができなくなる。従って、本変形例2により、OSプロセス上で起動する改竄モジュールも認可シークレット501にアクセスできなくなる。具体的に説明すると、OS112が一度でも起動すると場合、PCR3にOS112のハッシュ値が保存されるため、アクセス条件507のOSの正解ハッシュ値(PCR初期値)と不一致になり、認可シークレット501にアクセスできなくなる。
このように、認可シークレットへのアクセス条件として、PCR初期値をOSの正解ハッシュ値に設定することで、OSプロセス上の改竄モジュールによる認可シークレットへの不正アクセスを防止できる。
[変形例3]
以下、本発明にかかる変形例3の処理を説明する。なお、本変形例3において、上記実施形態、変形例1及び変形例2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
本変形例3では、図3中のS305の処理である署名検証鍵の検証に用いるルート証明書をTPM103のNVRAM機能を用い保護する。ルート証明書は、署名検証鍵のような公開鍵証明書とは異なり、大元の証明書であるため、例えばデジタル署名などを用いてルート証明書を検証することはできない。従って、ルート証明書は適切に保護する必要がある。本変形例3では、上述したTPM103のNVRAM機能により、ルート証明書にアクセス制御を付与する。なお、ルート証明書は、公開鍵証明書のため秘匿にする必要はなく、改竄防止だけを行えばよい。従って、書き込みに対してのみアクセス制御を行えばよい。例えば、図6(A)のように、TPM103のNVRAM機能により、ルート証明書601の書き込み条件602として、BIOSの正解ハッシュ値503、ブートローダの正解ハッシュ値504、アップデータの正解ハッシュ値505を設定する。これにより、改竄されたアップデータによるルート証明書の改竄を防止できる。また、図6(B)のように、ルート証明書601の書き込み条件603として、OSの正解ハッシュ値(PCR初期値)を設定することで、OSプロセス上で起動した不正なモジュールによるルート証明書の改竄を防止できる。
[変形例4]
変形例2、3、4では、TPM103のNVRAM機能で認可シークレットやルート証明書を保護したが、TPMのシール機能を使っても良い。この場合、TPMのNVRAM機能で設定したアクセス条件をそのままTPMのシール機能の復号条件に設定することができる。
[変形例5]
上述の実施形態及び各変形例では、セキュリティチップ103をTPMとして説明したが、これは例示であり、例えばTPMのNVRAM機能及びシール機能と同等の機能を持ち、かつ単調増加カウンタ117を具備する解析困難なチップであればよい。例えば、上述の機能を持たせた画像処理を行うハードウェアチップを、セキュリティチップ103とすることもできる。また、ハードウェアチップではなく、同等の機能をもつソフトウェアをセキュリティチップ103の代わりに用いることもできる。この場合、TPMと同等の機能を持つソフトウェアを例えば、ROMに保存し改竄困難にしたり、通常のモジュールからはアクセスできないようにアクセス制御した領域に保存することで、保護することができる。
[変形例6]
上述の実施形態及び各変形例では、配信ファームウェアに対してロールバック検知を行うものとして説明したが、これは例示であり、例えば基本ソフトウェア以外のソフトウェアであるアプリケーションなどのロールバック検知にも適応できる。
[変形例7]
上述の実施形態及び各変形例では、第1の検証部201でダウンロードした配信ファームウェアの正当性検証、及び第2の検証部での配信ファームウェアが正しく更新されたか否かの検証にハッシュ値を用いたがこれは例示である。例えば、ハッシュ値と同等の役割を持つ値であればよいため、CRCを用いることもできる。
また、第2の検証部は、配信ファームウェアが正しく書き込まれたか否かを検証できればよく、上記はあくまで例示である。例えば別の検証方法として、ROMやHDDに書き込んだ配信ファームウェアと、ダウンロードした配信ファームウェアのバイナリデータを直接比較することでも、配信ファームウェアが正しく書き込まれたか否かを検証できる。
また、上述の実施形態及び変形例では、配信ファームウェアが正しく更新されたか否かを第2の検証部で検証したが、これは必須ではなく、不要であれば検証しなくても良い。この場合、第2の検証部の機能は不要となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100…情報処理装置、101…ROM、102…HDD、103…TPM、104…RAM、105…CPU、115…NVRAM、116…制御部、117…単調増加カウンタ、118〜122…PCR、123…アップデータ、201…第1の検証部、202…ロールバック検知部、203…バージョン解離部、204…カウンタ部204、205…保存部、206…アップデート部、207…第2の検証部

Claims (7)

  1. セキュリティチップを具備する情報処理装置であって、
    単調に増加するカウンタ値を保持するカウンタ部と、
    前記カウンタ部が保持するカウンタ値で前記情報処理装置内のソフトウェアの現在のバージョン番号を管理するバージョン管理部と、
    前記ソフトウェアのアップデート用ソフトウェア、及び前記アップデート用ソフトウェアのバージョン番号の正当性を検証する第1の検証部と、
    前記アップデート用ソフトウェアのバージョン番号と前記カウンタ部が保持する前記ソフトウェアの現在のバージョン番号を比較することで、前記アップデート用ソフトウェアのバージョンが現在のソフトウェアのバージョンより新しいバージョンか否かを検知するロールバック検知部と、
    前記ロールバック検知部で前記アップデート用ソフトウェアのバージョンの方が現在のソフトウェアのバージョンより新しいと判断された場合に前記アップデート用ソフトウェアを用いて前記ソフトウェアを更新し、前記ロールバック検知部で前記アップデート用ソフトウェアのバージョンの方が現在のソフトウェアのバージョンより新しいと判断されなかった場合に前記ソフトウェアの更新を中断するアップデート部と、
    前記アップデート部が前記ソフトウェアの更新に成功したか否かを検証する第2の検証部と、
    アクセス制御可能な不揮発性メモリである保存部と、を有し、
    前記バージョン管理部は、前記第2の検証部が前記ソフトウェアの更新に成功したと判断した場合に、前記カウンタ部が保持するバージョン番号を、前記アップデート用ソフトウェアのバージョン番号と一致するまで増加させ
    前記カウンタ部は、前記バージョン管理部からバージョン番号の増加の要求があった場合、パスワードである認可シークレットを要求し、前記認可シークレットが正しい場合にのみ前記カウンタ部が保持するバージョン番号の増加を実行し、
    前記認可シークレットは、前記情報処理装置で起動するソフトウェアに改竄がない場合にのみアクセスできるようにアクセス制御された前記保存部に保存されていることを特徴とする情報処理装置。
  2. 前記認可シークレットは、
    前記情報処理装置のOSが起動していない場合にのみアクセスできるようにアクセス制御された前記保存部に保存されていることを特徴とする請求項に記載の情報処理装置。
  3. 前記第1の検証部は、当該ソフトウェアのアップデート用ソフトウェア、及び前記アップデート用ソフトウェアのバージョン番号の正当性をデジタル署名で検証するために公開鍵証明書であるルート証明書を用いることを特徴とし、
    前記ルート証明書は、前記情報処理装置で起動するソフトウェアに改竄がない場合にのみアクセスできるようにアクセス制御された前記保存部に保存されている
    ことを特徴とする請求項又はのいずれか1項に記載の情報処理装置。
  4. 前記認可シークレットは、前記情報処理装置で起動するソフトウェアに改竄がない場合にのみ復号できるように前記セキュリティチップを用い暗号化されていることを特徴とする請求項又はに記載の情報処理装置。
  5. アクセス制御可能な不揮発性メモリである保存部を有し、セキュリティチップを用いる情報処理装置の制御方法であって、
    単調に増加するカウンタ値を保持するカウンタ工程と、
    前記カウンタ工程で保持するカウンタ値でソフトウェアの現在のバージョン番号を管理するバージョン管理工程と、
    前記ソフトウェアのアップデート用ソフトウェア、及び前記アップデート用ソフトウェアのバージョン番号の正当性を検証する第1の検証工程と、
    前記アップデート用ソフトウェアのバージョン番号と前記カウンタ工程で保持する前記ソフトウェアの現在のバージョン番号を比較することで、前記アップデート用ソフトウェアのバージョンが現在のソフトウェアのバージョンより新しいバージョンか否かを検知するロールバック検知工程と、
    前記ロールバック検知工程で前記アップデート用ソフトウェアのバージョンの方が現在のソフトウェアのバージョンより新しいと判断された場合に前記アップデート用ソフトウェアを用いて前記ソフトウェアを更新し、前記ロールバック検知工程で前記アップデート用ソフトウェアのバージョンの方が現在のソフトウェアのバージョンより新しいと判断されなかった場合に前記ソフトウェアの更新を中断するアップデート工程と、
    前記アップデート工程で前記ソフトウェアの更新に成功したか否かを検証する第2の検証工程と、を有し、
    前記バージョン管理工程は、前記第2の検証工程が前記ソフトウェアの更新に成功したと判断した場合に、前記カウンタ工程で保持するバージョン番号を、前記アップデート用ソフトウェアのバージョン番号と一致するまで増加させ
    前記カウンタ工程は、前記バージョン管理工程からバージョン番号の増加の要求があった場合、パスワードである認可シークレットを要求し、前記認可シークレットが正しい場合にのみ前記カウンタ工程が保持するバージョン番号の増加を実行し、
    前記認可シークレットは、前記情報処理装置で起動するソフトウェアに改竄がない場合にのみアクセスできるようにアクセス制御された前記保存部に保存されていることを特徴とする情報処理装置の制御方法。
  6. コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項に記載の方法の各工程を実行させるためのプログラム。
  7. 請求項に記載のプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
JP2015136367A 2015-07-07 2015-07-07 情報処理装置及びその制御方法 Active JP6595822B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015136367A JP6595822B2 (ja) 2015-07-07 2015-07-07 情報処理装置及びその制御方法
US15/201,757 US9965268B2 (en) 2015-07-07 2016-07-05 Method and apparatus for preventing software version rollback

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015136367A JP6595822B2 (ja) 2015-07-07 2015-07-07 情報処理装置及びその制御方法

Publications (3)

Publication Number Publication Date
JP2017021434A JP2017021434A (ja) 2017-01-26
JP2017021434A5 JP2017021434A5 (ja) 2018-08-16
JP6595822B2 true JP6595822B2 (ja) 2019-10-23

Family

ID=57731088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015136367A Active JP6595822B2 (ja) 2015-07-07 2015-07-07 情報処理装置及びその制御方法

Country Status (2)

Country Link
US (1) US9965268B2 (ja)
JP (1) JP6595822B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017049550A1 (zh) * 2015-09-24 2017-03-30 广东欧珀移动通信有限公司 适配器和适配器升级的方法
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
JP2020506490A (ja) * 2017-01-04 2020-02-27 シュバルツ、ゲルハルト 非対称システムおよびネットワークアーキテクチャ
WO2019081057A1 (en) * 2017-10-27 2019-05-02 Giesecke+Devrient Mobile Security Gmbh RULE MEMORY
EP3489853B1 (en) 2017-11-27 2021-02-24 Schneider Electric Industries SAS A method for providing a firmware update of a device
US11374745B1 (en) * 2017-11-29 2022-06-28 Amazon Technologies, Inc. Key usage tracking using TPM
CN111433773B (zh) * 2017-11-30 2023-04-11 Abb瑞士股份有限公司 对变电站中的网关的更新
US10459714B2 (en) * 2017-12-20 2019-10-29 Coolbitx Ltd. Method of updating firmware of closed storage device
CN108985049A (zh) * 2018-06-06 2018-12-11 晶晨半导体(上海)股份有限公司 防回滚方法及系统
JP6697038B2 (ja) * 2018-07-31 2020-05-20 日本電信電話株式会社 情報処理装置、検証方法および検証プログラム
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
JP7171339B2 (ja) * 2018-09-26 2022-11-15 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP6925542B2 (ja) 2018-10-12 2021-08-25 三菱電機株式会社 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
US10965551B2 (en) * 2018-11-21 2021-03-30 Microsoft Technology Licensing, Llc Secure count in cloud computing networks
US11301566B2 (en) 2019-07-03 2022-04-12 Ati Technologies Ulc Firmware anti-rollback
KR20210046418A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법
KR20210079601A (ko) * 2019-12-20 2021-06-30 주식회사 실리콘웍스 펌웨어를 업데이트하는 터치 시스템 및 방법
CN113094060A (zh) * 2019-12-23 2021-07-09 瑞昱半导体股份有限公司 电子装置与软体更新方法
JP2021135937A (ja) * 2020-02-28 2021-09-13 株式会社日立製作所 情報処理装置、及びプログラム起動方法
US11409877B2 (en) 2020-03-27 2022-08-09 Intel Corporation Firmware verification mechanism
WO2021217410A1 (en) * 2020-04-28 2021-11-04 Arris Enterprises Llc Electronic device, system, method and program with enhanced detection of potential bricking
US11681513B2 (en) * 2020-05-14 2023-06-20 Texas Instmments Incorporated Controlled scope of authentication key for software update
US11216597B2 (en) * 2020-05-14 2022-01-04 Nuvoton Technology Corporation Security system and method for preventing rollback attacks on silicon device firmware
JP7362583B2 (ja) * 2020-09-23 2023-10-17 株式会社東芝 情報処理装置
US20220382868A1 (en) * 2021-06-01 2022-12-01 Mellanox Technologies Ltd. Unidirectional counter
US20230017231A1 (en) * 2021-07-17 2023-01-19 International Business Machines Corporation Securely executing software based on cryptographically verified instructions

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US5528490A (en) * 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
US5835911A (en) * 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
JP3409983B2 (ja) * 1996-11-29 2003-05-26 富士通株式会社 通信システム
US7185332B1 (en) * 1998-03-25 2007-02-27 Symantec Corporation Multi-tiered incremental software updating
JP2000293366A (ja) * 1999-04-06 2000-10-20 Mitsubishi Electric Corp セットトップボックス用モジュールのアップデート方法
US6986132B1 (en) * 2000-04-28 2006-01-10 Sun Microsytems, Inc. Remote incremental program binary compatibility verification using API definitions
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
DE60228202D1 (de) * 2001-02-12 2008-09-25 Gracenote Inc Verfahren zum erzeugen einer identifikations hash vom inhalt einer multimedia datei
US7761543B2 (en) * 2002-07-09 2010-07-20 Ciena Corporation Method and apparatus for backward and forward compatibilty in device management
US7313791B1 (en) * 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US7415706B1 (en) * 2003-12-01 2008-08-19 Cisco Technology, Inc. Dynamic handling of multiple software component versions for device management
US7770151B2 (en) * 2005-04-07 2010-08-03 International Business Machines Corporation Automatic generation of solution deployment descriptors
ATE470909T1 (de) * 2006-04-24 2010-06-15 Ericsson Telefon Ab L M Prüfung der berechtigung der installation einer softwareversion
US8612773B2 (en) * 2007-05-03 2013-12-17 International Business Machines Corporation Method and system for software installation
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US7676501B2 (en) * 2008-03-22 2010-03-09 Wilson Kelce S Document integrity verification
US8239339B2 (en) * 2008-04-29 2012-08-07 Rockwell Automation Technologies, Inc. Library synchronization between definitions and instances
JP5369502B2 (ja) * 2008-06-04 2013-12-18 株式会社リコー 機器、管理装置、機器管理システム、及びプログラム
CA2686796C (en) * 2008-12-03 2017-05-16 Trend Micro Incorporated Method and system for real time classification of events in computer integrity system
US8595715B2 (en) * 2010-12-31 2013-11-26 International Business Machines Corporation Dynamic software version selection
US8745612B1 (en) 2011-01-14 2014-06-03 Google Inc. Secure versioning of software packages
US8978160B2 (en) * 2012-09-12 2015-03-10 GM Global Technology Operations LLC Method for selective software rollback
US9910659B2 (en) * 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory

Also Published As

Publication number Publication date
US20170010881A1 (en) 2017-01-12
US9965268B2 (en) 2018-05-08
JP2017021434A (ja) 2017-01-26

Similar Documents

Publication Publication Date Title
JP6595822B2 (ja) 情報処理装置及びその制御方法
JP5116325B2 (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
KR101888712B1 (ko) 운영 체제 구성 값 보호 기법
US8200961B2 (en) Securing a flash memory block in a secure device system and method
KR100746012B1 (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
JP4890309B2 (ja) 情報処理装置及び情報保護方法
US20050021968A1 (en) Method for performing a trusted firmware/bios update
CN110990084B (zh) 芯片的安全启动方法、装置、存储介质和终端
US7840795B2 (en) Method and apparatus for limiting access to sensitive data
EP0932953A4 (en) PROTECTED BASIC INPUT-OUTPUT SYSTEM (BIOS)
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
US20100100966A1 (en) Method and system for blocking installation of some processes
JP6930884B2 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
JP2009301429A (ja) ソフトウェア改ざん検知方法、機器及び画像処理装置
JP5582231B2 (ja) 情報処理装置、真正性確認方法、及び記録媒体
WO2016024967A1 (en) Secure non-volatile random access memory
JP5049179B2 (ja) 情報処理端末装置及びアプリケーションプログラムの起動認証方法
JP5969845B2 (ja) 情報処理装置及びその制御方法
JP5574007B2 (ja) 情報処理装置及び情報保護方法
JP5278520B2 (ja) 情報処理装置、情報保護方法
US20230126541A1 (en) Information processing apparatus, control method for controlling the same and storage medium
CN116089967B (zh) 数据防回滚方法和电子设备
JP5500232B2 (ja) 情報処理装置及び情報保護方法
JP5310897B2 (ja) 情報処理装置、ソフトウェア更新方法及び記録媒体
JP2013191226A (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180703

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190806

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190927

R151 Written notification of patent or utility model registration

Ref document number: 6595822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151