JP5038397B2 - ソフトウェアバージョンのインストールの許可 - Google Patents

ソフトウェアバージョンのインストールの許可 Download PDF

Info

Publication number
JP5038397B2
JP5038397B2 JP2009506952A JP2009506952A JP5038397B2 JP 5038397 B2 JP5038397 B2 JP 5038397B2 JP 2009506952 A JP2009506952 A JP 2009506952A JP 2009506952 A JP2009506952 A JP 2009506952A JP 5038397 B2 JP5038397 B2 JP 5038397B2
Authority
JP
Japan
Prior art keywords
value
integrity protection
counter
version
processing device
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
JP2009506952A
Other languages
English (en)
Other versions
JP2009534765A (ja
Inventor
スメーツ,ベン
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2009534765A publication Critical patent/JP2009534765A/ja
Application granted granted Critical
Publication of JP5038397B2 publication Critical patent/JP5038397B2/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

カウンタを維持する方法、製品手段、および装置が開示される。
携帯電話や他のデータ処理装置のような埋め込みシステムは、正しいソフトウェアの実行に依存する。さらに、ソフトウェアは、相当小さなシステムに対するものであってもますます複雑になり、それによりエラーのリスクと、意図せぬ特徴とが、特にソフトウェアサイクルの中の早期リリースにおいて増加している。さらに、早期ソフトウェアリリースの機能は概して制限されるものである。結果的に、埋め込み装置に格納されるソフトウェアの、古いバージョンから更新バージョンへの頻繁な更新がますます必要となっている。どのバージョンが装置にインストールされているか記録しておくために、概して装置はバージョンカウンタを維持し、バージョンカウンタの値が目下インストールされているバージョン番号に対応する。
例えば、無許可操作に対して静的および動的データを保護する、国際公開第02/27441号パンフレットに開示されている方法が知られているとはいえ、このような方法は、ソフトウェアバージョンのロールバックに対する保護を提供しない。例えば、このような方法は、ソフトウェアをインストールする許可を有するユーザが古いソフトウェアバージョンを再インストールすることを防止しない。
しかしながら、初期ソフトウェアバージョンを有する携帯電話を取得したユーザが、初期バージョンを超えてロールバックを行うこと、すなわち初期バージョンより古いものである古いソフトウェアバージョンをインストールすることを防止するソフトウェア更新ポリシーを実施することが一般的に望ましい。例えば古いソフトウェアバージョンは、SIMロックなどを破るなど、不正ユーザが無許可操作または望ましくない操作を装置で行うことを可能にするエラーを含み得るため、このような無許可ロールバックは望ましくない場合がある。
ゆえに、初期ソフトウェアバージョン、概してユーザが取得した処理装置が有するバージョンを超えるソフトウェアロールバックをユーザが行うことを防止するバージョンカウンタを維持する方法を提供することが一般的に望ましい。
装置に格納されるデータが、例えば他の保護要素へのアクセスを制御するために使用されるデータのような保護データの最新許可バージョンであることを検証するアクセス制御システムを、国際公開第01/33317号パンフレットが開示している。この先行技術コントロールアクセスシステムは、カウンタと、保護されようとするデータにカウンタのコンテンツを結び付けるパラメータを含むように構成される安全メモリ場所とを備える。
しかしながら、上述の先行技術システムが一方向バージョンカウンタを提供するとはいえ、上述の先行技術システムは安全メモリ場所を必要とするということが、上述の先行技術システムの問題である。例えば、埋め込みシステムについて、このような安全メモリ場所は、概して、制御システムを実施するASIC論理回路に関連して実施される安全オンチップ再書き込み可能不揮発性メモリとして実施される。しかしながら、このような安全再書き込み可能不揮発性メモリの実現は、ASIC製造中に追加ステップを必要とし、それにより全体の製造コストが増加する。
上述のおよび他の問題は、処理装置によりバージョンカウンタを維持する方法により解決される。バージョンカウンタは、上記処理装置に格納されるメモリコンテンツのバージョンを示す。上記方法は、第1のモードおよび第2のモードのうち1つで処理装置を選択的に操作することを含み、その場合第1のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第2のモードへのアクセスとは別に制御される。
第1のモードで処理装置を操作するステップは
第2のモードでの前記処理装置の操作中、前記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも1つの初期完全性保護値を生成することと、その場合初期カウンタ値は、一連のカウンタ値から選択されることと、
格納媒体に目下の完全性保護値として初期完全性保護値を格納することと
を含む。
第2のモードで処理装置を操作するステップは、目下のカウンタ値を後続カウンタ値へインクリメントすることを含み、後続カウンタ値は、一連のカウンタ値において目下のカウンタ値の後に続き、その場合インクリメントすることは、目下のカウンタ値の完全性を暗号保護するための目下の完全性保護値を前記格納媒体から削除することを含む。
結果的に、安全メモリに依存しないソフトウェア反ロールバック機構が提供される。
特に、無効のカウンタ値の完全性保護値は格納媒体から削除されるため、また、完全性保護値の計算は個別に保護された操作モードにおいてのみ許されるため、特定の許可を持たない正規ユーザは、無効のカウンタ値を再生成することを防がれてしまう。
上述のように、ここで説明する処理装置の実施形態において、処理装置は、第1および第2のモードのうち1つで選択的に操作可能であり、その場合第1のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第2のモードへのアクセスとは別に制御される。ゆえに、第2のモードで装置を操作することを許可されるユーザは、必ずしも第1のモードで装置を操作することも許可されているわけではない。例えば装置が起動可能である2つのモードを提供することにより、または最初は第2のモードでのアクセスを与え、アクセス制御成功を条件として、第1のモードで提供される追加機能へのアクセスを提供することより、選択的操作は実施可能である。
完全性保護値の削除は、多くの異なる方法で行われる場合がある。例えば、無効の完全性保護値を更新値で上書きすること、保護値を所定のデータ項目、例えば0で上書きすること、またはユーザがその後削除データを格納媒体から取り戻すことを防止する何らかの他の適当な方法がある。
バージョンカウンタの偶発的ロールバックが防止されることが、ここで説明する方法および装置の利点である。さらに、現ユーザの制御の下で以前にインストールされているバージョン番号に対応する古いカウンタ値への意図的ロールバックは、格納統合保護値の操作を必要とするため、例えば全部の統合保護値がバージョンカウンタのインクリメントに関連して削除されてしまった後に、それらを取り戻して再入力することを必要とするために、かかる意図的ロールバックは困難になる。
後にひとたび装置が後続バージョンへ更新されると、装置が取得された初期バージョンへのロールバックを含む全部のバージョンロールバックを厳しく防止するポリシーよりも、上述の更新ポリシーは、一見するところでは厳しくないように見えるかもしれない。しかしながら、このような更新ポリシーの厳しい実施は、新バージョンへの更新が利用可能であるとすぐにソフトウェアを更新することをユーザに強制する機構を必要とするであろうということが観察されるべきである。このような機構がなくては、ユーザは単に装置を更新し損なう可能性があり、それにより、バージョンロールバックを行う必要がなくとも、なおも装置を初期ソフトウェアバージョンで操作可能である。
ここでの説明のために、バージョンカウンタ(version counter)という言葉は、例えばソフトウェアバージョンや格納データのバージョンなどのメモリコンテンツの一連のバージョンの各々に実質的固有値を提供するいかなる装置または機構も表すことを意図する。バージョンカウンタは、連続的に並べられたデータ項目組として、例えば番号や他の値として実施可能である。バージョンカウンタは、非反復的な一連の乱数を生成する乱数生成器として、または他の固有値生成器としても実施可能であることが理解される。ある実施形態において、バージョンカウンタは、装置にインストールされるソフトウェアのソフトウェアバージョンをカウントするバージョンカウンタである。
ある実施形態において、第1のモードで処理装置を操作することは、
一連のカウンタ値のそれぞれの完全性を暗号保護するための一連の完全性保護値を生成することと、その場合一連のカウンタ値は、上記初期カウンタ値から始まり、連続して並べられることと、
格納媒体に一連の完全性保護値を格納すること
を含む。
結果的に、この実施形態によれば、第1のモードでの装置の初期操作中、完全性保護値の組が作成され、格納される。第2のモードでの装置の後続操作中、目下の値から後続値へバージョンカウンタがインクリメントされることになるとすぐ、完全性保護値、または後続値を超えるカウンタ値に対応する値――特に、目下のカウンタ値に対応する完全性保護値――は、格納媒体から削除され、それにより、目下のカウンタ値の後続暗号検証が防止される。
ある実施形態において、カウンタをインクリメントする2つのモードが提供される。すなわち、前の完全性保護値が削除される不可逆インクリメントと、完全性保護値が削除されない可逆インクリメントとである。なお別の実施形態において、完全性保護値の削除は、カウンタの実際のインクリメントから所定の時間が経過した後に実行可能である。代替または追加として、完全性保護値の削除は、カウンタの実際のインクリメント後、所定数の再起動後に実行可能である。カウンタ更新のこのような遅れた遂行は、ユーザが更新ソフトウェアバージョンの適切な操作を遂行前にテストすることを可能にするために有用である場合がある。
ある実施形態において、装置が第1および第2のモードのうち第1のモードで操作される場合のみ、上記一連の完全性保護値の生成完全性保護値を出力するように適合される完全性保護値計算部を提供することを、上記方法はさらに含む。結果的に、第1のモードで装置を操作することを許可されるユーザのみが、完全性保護値を(再)計算可能である。例えば、装置製造者は、第1のモードへのアクセスを上記製造者に対して制限するように選択可能である。結果的に、電子装置の製造中、製造者は第1のモードで操作して、装置上に適当数の完全性保護値を生成し、格納する場合がある。装置を取得する全後続ユーザは、第2のモードでのみ装置にアクセス可能であり、このように、古いカウンタ値に対する完全性保護値を再生成することを防止される。
ある実施形態において、目下のカウンタ値を後続カウンタ値へインクリメントすることは、後続カウンタ値に対応する後続完全性保護値を生成することと、目下の完全性保護値を後続完全性保護値で置き換えることとを含む。結果的に、この実施形態において、最初から装置に多くの完全性保護値を格納する必要はなく、それにより格納容量が節約され、格納された多くの完全保護値により保護可能なカウンタ値の範囲が制限されることが回避される。さらに、第2のモードで操作される場合、装置は、後続カウンタ値に対応する完全性保護値のみを生成し、それにより、第1のモードで装置を操作することを許可されていないユーザが、前のカウンタ値、すなわちカウンタ値の連続順序について目下のカウンタ値より低い順番のカウンタ値の完全性保護値を再生成することが、なおも防止される。
後続完全性保護値を生成することが、目下の完全性保護値に基づいて目下のカウンタ値を検証することと、上記目下のカウンタ値の成功検証を条件として上記後続完全性保護値を生成することとを含む場合、目下の値が成功検証されると、装置は後続完全性保護値のみを生成するため、上記方法の安全性はさらに向上する。
生成された各完全性保護値が、対応する前記カウンタ値および装置に固有である場合、ユーザが、カウンタが未だインクリメントされていない別の装置から前の完全性保護値を単純に複製することを防止される。
完全性保護値(integrity protection value)という言葉は、メモリに格納される情報が偶然にまたは悪意を持って変更または破壊されないことを保障する機構により生成されるいかなるデータ項目をも含むことを意図する。完全性保護機構の例は、メッセージ認証符号、一方向ハッシュ関数、およびデジタル署名を含む。完全性機構は暗号完全性保護機構である。すなわち、シークレットキーに基づいて、完全性保護の安全性が向上される。完全性保護値がメッセージ認証符号である場合、特に安全で効果的な完全性保護が得られる。
メッセージ認証符号(Message authentication codes:MAC)は、完全性保護データのための周知の機構である。MACは、可変長入力とキーとをとり、出力として固定長完全性保護値、いわゆるMAC値またはタグ値を作成する関数である。概してMACは、シークレットキーを共有する2つの団体間において、これらの2つの団体間で送信される情報を有効とするために使用される。一方向ハッシュ関数をデータに適用し、その結果を、シークレットキーを用いて暗号化することにより、MACが計算可能である。暗号ハッシュ関数と組み合わせ可能である適当なMAC関数の例は、HMAC(Keyed‐Hashing for Message Authentication:メッセージ認証のためのキードハッシング)、例えばAESを用いる暗号ブロック連鎖(Cipher Block Chaining:CBC)MAC、または安全一方向ハッシュ関数を含む。ここで説明する方法および装置の実施形態において、メッセージ認証符号が、処理装置の格納媒体に格納されるカウンタ値の完全性をチェックするために使用され、それにより、安全メモリ場所にカウンタ値を格納する必要性が回避される。
結果的に、ある実施形態において、完全性保護は、保護されるカウンタ値に関連させて、計算参照完全性保護値、例えばメッセージ認証符号値を格納することを含み、それにより、計算参照完全性保護値は、処理装置によるカウンタ値の後続監査に使用可能となる。ゆえに、カウンタ値を監査する場合、装置は、装置に格納されるシークレットキーを用いて、カウンタ値の完全性保護値を計算し、その結果を、以前に格納された参照完全性保護値、例えば参照MAC値と比較する。結果的に、この実施形態において、シークレットキーはデジタル処理装置にのみ認知されている必要がある。ある実施形態において、シークレットキーは、処理装置固有のシークレットデータ項目であり、例えば処理装置のみに認知されるシークレットデータ項目である。
カウンタ値の各々が装置固有である場合、ある装置から別の装置へ完全性保護値を複製することに対する追加保護が提供される。
対応する完全性保護値を用いたカウンタ値の生成および検証は、完全性保護モジュールにより実施され、完全性保護モジュールは修正に対して安全であり、それにより、処理の安全性が向上する。完全性保護モジュールは、例えば保護されたハードウェアモジュールにより、および/または信頼性のあるプログラム符号により実施可能である。ここで、信頼性のあるプログラム符号(trusted program code)という言葉は、処理装置のファームウェアに含まれるプログラム符号、処理装置の起動ROM符号に含まれる符号、または処理装置の起動ROM符号に含まれるプログラム符号などのような、例えばプログラム一回可能(One‐Time Programmable:OTP)メモリに格納される完全性保護値に基づいて完全性が保護されたいかなるプログラム符号をも含むことを意図する。
ある実施形態において、上記方法は、
メモリコンテンツの更新バージョンを受信することと、更新バージョンはバージョンインジケータを含むことと、
受信されたメモリコンテンツの真正を検証することと、
バージョンインジケータおよびバージョンカウンタの目下の値に基づいて、受信された更新メモリコンテンツのバージョン制御を行うことと、
バージョン制御の結果を条件に、受信された更新メモリコンテンツを受け入れること
をさらに含む。
結果的に、メモリコンテンツの効果的で安全な更新が提供される。処理装置は、適当ないかなるデータインターフェースを介してもメモリコンテンツを受信可能であり、例えばCDのようなコンピュータ読み出し可能媒体上、メモリスティック上または他のメモリデバイス上へ、有線または無線通信インターフェースなどを介して受信可能である。
真正の検証は、例えばデジタル署名および/または証明、および/またはメッセージ認証符号を用いるなど、当技術分野において周知である適当ないかなる技術を含んでもよい。
バージョン制御は、当技術分野において周知である適当ないかなるバージョン制御機構を含んでもよく、例えば、バージョンインジケータをバージョンカウンタの目下の値と比較することによるなどして、IBM AIX Unixオペレーティングシステムにおけるソフトウェアモジュールのソフトウェアナンバリング、およびLINUXカーネルのナンバリングに使用されるようなものを含んでも良い。ある実施形態において、バージョンインジケータが、バージョンカウンタの最低真正カウンタ値、すなわち有効な完全性保護値が装置に格納される最低カウンタ値よりも大きい、または等しい場合、更新メモリコンテンツは受け入れられる。例えば受信バージョンが目下のバージョンより古い、または目下のバージョンまたは最低真正バージョンと互換性がないために、バージョン制御が失敗すると、更新処理はアボートされる場合があり、エラーメッセージが生成される場合があり、および/または装置は何か他の適当な方途へ進行する場合がある。
受け入れられると、概して、更新メモリコンテンツを装置が格納し、対応するメモリコンテンツを置き換える。ある実施形態において、ここで説明するように、受信された更新メモリコンテンツのバージョンインジケータに対応する値へバージョンカウンタをインクリメントすることを、更新はさらに含む。例えば、インクリメントは、受信されたバージョンインジケータに等しいバージョンカウンタを設定することを含んでもよい。別の実施形態においては、受信されたバージョンインジケータに等しいバージョンカウンタのシーケンスに位置を有するカウンタ値に等しいバージョンカウンタを設定することを、インクリメントは含んでもよい。
本発明は、上述および下述の方法と、それに対応する装置およびコンピュータとを含む異なる様相に関し、各様相は、上述の方法に関連して説明される1または2以上の利益および利点を生み、上述の方法に関連して説明される実施形態に対応する1または2以上の実施形態を有する。
さらに具体的に、別の様相によれば、データ処理装置に格納されるメモリコンテンツのバージョンを示すバージョンカウンタを維持するように構成されるデータ処理装置は、第1のモードおよび第2のモードのうち1つで選択的に操作可能であり、その場合第1のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第2のモードへのアクセスとは別に制御される。
第1のモードで操作される場合、上記処理装置は以下のステップを行うように構成される。
前記バージョンカウンタの少なくとも1つの初期カウンタ値を生成するステップ。その場合初期カウンタは、一連のカウンタ値から選択される。
第2のモードでの処理装置の操作中、生成された初期カウンタ値の完全性を暗号保護するための初期完全性保護値を生成するステップ。
格納媒体に目下の完全性保護値として初期完全性保護値を格納するステップ。
上記処理装置は、第2のモードで操作される場合、目下のカウンタ値を後続カウンタ値へインクリメントするようにさらに構成され、後続カウンタ値は、一連のカウンタ値において目下のカウンタ値の後に続き、その場合インクリメントすることは、目下のカウンタ値の完全性を暗号保護するための目下の完全性保護値を上記格納媒体から削除することを含む。
処理装置(processing device)という言葉は、データ処理のための処理手段を備えるいかなる電子装置をも含むことを意図する。特に、処理装置という言葉は、いかなる電子機器やポータブルラジオ通信機器および他のハンドヘルドまたはポータブル装置、およびそのような機器に使用される集積回路、チップまたはチップセットをも含むことを意図する。ポータブルラジオ通信機器という言葉は、携帯電話、ポケットベル、コミュニケータ、電子手帳、スマートフォン、携帯情報端末(personal digital assistants:PDAs)、ハンドヘルドコンピュータなどの移動端末のような全部の機器を含む。
格納媒体という言葉は、デジタルデータ項目を格納するいかなる回路網またはデバイスをも含むように意図する。このような格納媒体の例は、不揮発性メモリ、読み出し専用メモリ(read‐only‐memory:ROM)ランダムアクセスメモリ(random access memory:RAM)、フラッシュメモリ、消去可能プログラム可能読み出し専用メモリ(Erasable Programmable Read‐Only Memory:EPROM)などを含む。ある実施形態において、格納媒体は処理装置に備わる。
別の様相によれば、処理装置に格納されるメモリコンテンツを更新する方法は、
上記処理装置によりバージョンカウンタを維持することを含む。バージョンカウンタは上記メモリコンテンツのバージョンを示す。その場合、バージョンカウンタを維持することは、第1のモードおよび第2のモードのうち1つで処理装置を選択的に操作することを含む。その場合、第1のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第2のモードへのアクセスとは別に制御される。
その場合、第1のモードで処理装置を操作することは、
第2のモードでの処理装置の操作中、上記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも1つの初期完全性保護値を生成することと、その場合初期カウンタ値は、一連のカウンタ値から選択されることと、
格納媒体に目下の完全性保護値として初期完全性保護値を格納すること
を含む。
その場合、上記方法は、
第2のモードで処理装置を操作することと、
上記メモリコンテンツの更新バージョンを受信することと、更新バージョンはバージョンインジケータを含むことと、
受信されたメモリコンテンツの真正を検証することと、
バージョンインジケータとバージョンカウンタの目下の値とに基づいて、受信された更新メモリコンテンツのバージョン制御を行うことと、
バージョンインジケータとバージョンカウンタの目下の値とに基づいて、受信された更新メモリコンテンツを受け入れることと、
目下のカウンタ値を後続カウンタ値へインクリメントすることと、後続カウンタ値は上記バージョンインジケータに対応し、一連のカウンタ値において目下のカウンタ値の後に続くことと、その場合インクリメントすることは、目下のカウンタ値の完全性を暗号保護するための目下の完全性保護値を上記格納媒体から削除することを含むことと、
をさらに含む。
上述および後述の方法の特徴は、ソフトウェアにおいて実施可能であり、コンピュータ実行可能命令のようなプログラム符号手段の実行によりデータ処理装置上または他の処理装置上で実行可能であることが留意される。ここおよび以下で、処理手段(processing means)という言葉は、上述の機能を行うように適当に適合されるいかなる回路および/または装置をも含む。特に、上記言葉は、汎用または特定用途向けプログラム可能マイクロプロセッサ、デジタル信号プロセッサ(Digital Signal Processor:DSP)、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラム可能論理アレイ(Programmable Logic Array:PLA)、電界プログラム可能ゲートアレイ(Field Programmable Gate Array:FPGA)、特定用途向け電子回路など、またはその組み合わせを含む。
ゆえに、別の様相によれば、コンピュータプログラムは、データ処理装置上で実行されると、上述および下述の方法のステップをデータ処理装置に行わせるように適合されるプログラム符号手段を含む。
例えば、プログラム符号手段は、格納媒体から、またはコンピュータネットワークを介して別のコンピュータから、RAM(ランダムアクセスメモリ)のようなメモリにロードされる場合がある。あるいは、説明する特徴は、ソフトウェアではなく有線回路網により、またはソフトウェアと有線回路網とを組み合わせて実施される場合もある。
上述の様相および他の様相は、図面に関連させながら以下で説明する実施形態から明白に解明されるであろう。
図1は、処理装置の一例として、1または2以上の特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)を、例えば移動端末または他の電磁装置において用いられる1または2以上のASICを備える装置の概略ブロック図を示す。ASICは、一般的に100と表すが、中央処理論理ブロック102と、ASIC装置から/へデータを入力/出力するインターフェースブロック(I/F)186と、データおよび/またはプログラム符号を格納するデータ格納ブロック103とを備える。データ格納ブロック103は、システムバス105を介して中央処理論理ブロック102と接続される。データ格納ブロック103は、プログラム命令を格納するプログラムメモリブロック(PROG)106と、レジスタおよびランダムアクセスメモリ(RAM)などを収容するデータメモリブロック(DAT)107と、再書き込み可能不揮発性メモリブロック108、例えば電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)とを備える。プログラムメモリブロックは、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、フラッシュメモリ、EEPROMなどとして実施可能である。しかしながら、データ格納ブロックは追加および/または代替のメモリブロックまたはストレージタイプを含み得ることが理解される。
例えばデータ格納ブロック103に格納されるプログラム符号を実行することにより、移動端末または他の電子装置の操作を制御するために適切なマイクロプロセッサ(μp)188または他の論理回路網を、中央処理論理ブロック102は備える。特に、中央処理論理ブロック102は、データ格納ブロック103に格納されるプログラム符号のバージョン番号を維持するために、不揮発性メモリブロック108の場所109に格納されるバージョンカウンタ値を維持するように構成される。さらに、例えば不変の間隔で、起動処理中に、インストール/アップグレード中に、および/またはバージョンカウンタが関連するプログラム符号の実行の前などに、中央処理論理ブロックは、バージョンカウンタ値109の完全性監査を開始するように構成される。さらに、中央処理論理ブロック102は、対応ソフトウェアの新バージョンがデータ格納ブロック103にロードされると、格納バージョンカウンタ値109のインクリメントを開始するように構成される。
このため、中央処理ブロック102は、無許可ユーザによる操作、例えば修正、別の値で、特に低い値での置き換えなどからカウンタ値を保護するために、以下でさらに詳細に説明するカウンタ値109の完全性を検証するように構成される論理回路網を備える完全性保護論理ブロック101を備える。このため、不揮発性メモリブロック108は、完全性保護論理ブロック101により実施される検証処理に使用される1または2以上の完全性保護値を格納する格納場所110をさらに備える。完全性保護値は、完全性保護論理ブロック101により生成され、格納場所109に格納されるカウンタ値の検証中、完全性保護論理ブロック101により参照完全性保護値として使用される。完全性保護論理ブロック101は、2つのモード(mode)で操作可能である。第1の、またはいわゆる「prog mode」と、第2の、またはいわゆる「verify mode」である。操作モードは、適当な制御信号を用いて中央処理論理ブロック102により制御される。「prog mode」で操作される場合、少なくとも1つの初期参照保護値が、完全性保護論理ブロック101により生成される。生成された完全性保護値は、後の検証処理に対する参照値として格納場所110に格納される。「verify mode」で操作される場合、場所109に格納されるカウンタ値の検証は、完全性保護論理ブロック101により行われる。
以下でさらに詳細に説明するように、完全性保護論理ブロック101は、ユーザが「prog mode」での完全性保護論理ブロック101の操作を要求する場合、別々の許可処理を行うように構成されるアクセス制御ブロック111を備える。あるいは、アクセス制御111は、完全性保護論理ブロック101の外部にあるアクセス制御ブロックにより行われてもよい。例えば「verify mode」であるような処理装置の操作は、例えば初期アクセス制御を用いるユーザ許可処理にも重要である場合があることが理解される。ゆえに、初期アクセス制御に加えて、または初期アクセス制御の代わりに、「prog mode」で完全性保護論理ブロック101を操作するアクセス制御111が行われてもよい。第1の場合、ユーザは最初に装置へのアクセス許可を得るよう、例えば「verify mode」で装置を操作するよう要求される場合がある。操作を「prog mode」へ切り替えるために、初期アクセス制御と異なる追加アクセス制御が要求される。第2の場合、装置は、例えば2つの代替操作モードで起動可能であり、代替操作モードの片方は装置を「verify mode」で操作することを含み、他方は装置を「prog. mode」で操作することを含む。ゆえに、どちらのモードで装置を操作することをユーザが望むかに応じて、ユーザはアクセス制御処理の対応する1つを行う。
完全性保護論理ブロック101は、保護されたハードウェアブロックとして、すなわち無許可アクセスに対して守られたハードウェアブロックとして実施される。特に、ある実施形態において、ASICが「prog. mode」で操作されている場合、すなわちASICを起動したユーザが「prog mode」でASICを操作することを許可される場合、完全性保護論理ブロック101は、少なくとも初期完全性保護値が完全性保護論理ブロック101から読み出し可能であるように構成される。
ユーザ許可の検証は、いかなる適切な方法で行われてもよく、例えば予め格納された値と比較されるアクセス符号を入力するようユーザに要求すること、有効なキーカードまたは他のハードウェアセキュリティデバイスを入力することをユーザに要求すること、指紋のようなユーザの肉体的属性に基づく許可機構を行うこと、またはユーザが許可されているものであることを確立する他の適当な機構によってもよい。許可の証拠を提供する適当な方法の一例は、例えば米国特許第4748668号明細書に記載されているような、いわゆるファイアット‐シャミール識別アルゴリズム(Fiat‐Shamir identification algorithm)である。「prog mode」を入力するアクセス制御は、「verify mode」で装置を操作するアクセス制御のように、同一のまたは異なる許可機構に基づく場合があることが理解される。例えば、両モードへのアクセスは、アクセス符号に基づく同一の許可機構により制御される場合があるが、その場合異なるアクセス符合が2つのモードに必要となる。
ハードウェア保護は、いかなる適当な保護技術により実施されてもよく、例えばW・ラクル(W Rakl)、W・エフィング(W Effing)による「スマートカードハンドブック(Smart Card Handbook)」、第3版、Wiley2003年、の第8.2章「スマートカードセキュリティ」(Chapter8.2 “Smart card Security”)に記載される、スマートカードでハードウェアを保護するために使用される技術により実施されてもよい。
カウンタ値109および完全性保護値110が、保護された完全性保護論理ブロック101の外部に格納されることに留意することは興味深い。特に、カウンタ値109および完全性保護値110は、非保護不揮発性メモリ、特に再書き込み可能メモリ、例えば100の装置のメモリブロック108に格納可能である。
ASIC装置100が単一のブロックとして示してあるとはいえ、装置100は複数の異なるASICとして実施可能であることが了解されるであろう。例えば、製造コストを削減するために、EEPROMとマイクロプロセッサと完全性保護論理ブロックとを異なるASIC上で実施することが望ましい場合がある。ゆえに、ASICおよびASIC装置という言葉は、単一のASICと、個別のASICの組み合わせとを含むよう意図されている。
完全性保護論理ブロック101の実施形態を、ここで図2および3を参照しながら、さらに詳細に説明することとする。
図2は、完全性保護論理ブロックの一例のより詳細なブロック図を示す。完全性保護論理ブロック201は、それぞれのカウンタ値を保護するための1または2以上の暗号メッセージ許可コード(MAC)値を計算するように構成されるMAC計算ブロック212を備える。
一般的に、MAC計算は、以下の式により表される。M=H(k,d)、ただし、Hは適当なMAC関数であり、dは保護されることとなるデータであり、Mは計算されたMAC値であり、kはシークレットキー値である。ある実施形態において、シークレットkはASIC100上でアクセス可能であるが、ASIC100から読み出し可能ではない。適当なMAC関数の一例は、ネットワークワーキンググループ(Network Working Group)のコメント要求(Request for Comments:RFC)2104、「HMAC:メッセージ許可のためのキードハッシング」、1997年2月において定められるHMAC関数である。したがって、209と表すカウンタ値cntの現在の許可について、完全性保護論理ブロック201は、格納ブロック109からカウンタ値209を受信し、MAC計算ブロック212へカウンタ値209をフィードする。例えばASIC100または完全性保護ブロック201の内部ROMなどの安全メモリに、望ましくない読み出しに対して安全に格納される、216と表すシークレットキーkを、MAC計算ブロック212はさらに受信する。すなわち、このような完全性保護ブロック201はシークレットキーkへの読み出しアクセスを有している。MAC計算ブロック212は、MAC値M=H(k,cnt)を計算し、モード選択部、例えばスイッチへ、計算値287を送信する。
上述のように、完全性保護ブロック201は、制御入力215により制御される場合、2つのモード、「prog mode」および「verify mode」で操作可能である。上述のように、「prog. mode」での操作は、アクセス制御211により実施される対応するアクセス制御にとって重要である。したがって、アクセス制御ブロック211は、モード選択制御信号215を受信する。モード選択信号215が「prog. mode」に対応する場合、上述のように、「prog. mode」での完全性保護ブロックの操作が許可ユーザに制限されていることを確かめるために、アクセス制御ブロック211はユーザの許可を検証する。ユーザが許可されている場合、アクセス制御ブロック211は、計算MAC値のデータフローを制御するために、選択部218へ制御信号としてモード選択信号215を送信する。モード選択信号215が「verify mode」に対応する場合、アクセス制御ブロック211は、選択部218へ選択信号を送信する。ある実施形態において、「verify mode」はアクセス制御にとって重要である場合もあることが理解される。
「prog. mode」で操作される場合、選択部218は、接続220を介して出力214へMAC値が格納されているところから、格納場所110における参照マック値として、計算MAC値287を送信する。この実施形態において、完全性保護ブロック201は、「prog. mode」で操作される場合、所定の数Nのバージョンカウンタ値VersionCount、VersionCount、……、VersionCountについて、複数のMAC値mac_VC_ref=H(k,VersionCount)、mac_VC_ref=H(k,VersionCount)、……、mac_VC_ref=H(k,VersionCount)を計算し、格納場所110に格納するように制御される。本説明のために、バージョンカウント値は昇順に並べられる、すなわちVersionCount<VersionCount<……<VersionCountであることが仮定される。しかしながら、カウンタ値は、いかなる適当な順序付けスキームにしたがって連続的に並べられてもよいことが理解される。数Nの予め計算され、格納されたMAC値は、必要な格納スペースと、保護バージョンカウンタにより管理されるべきバージョン更新の予想数との間のトレードオフとして選択可能である。例えば、バージョンMAC値214は、それぞれのバージョンカウント値に関連して、例えば図2bに示すような表形式のデータ構造で、格納可能である。あるいは、バージョンMAC値は、バージョンカウンタ値に独立に格納可能である。例えば、カウンタをインクリメントすることなどによってカウンタ値のシーケンスを生成する論理回路を装置が備える実施形態において、カウンタ値は明示的に格納される必要はない。
「verify mode」で操作される場合、選択部218は計算MAC値を例えば比較部など検証ブロック217へフィードする。検証ブロック217は、計算MAC値287を、格納場所110に格納される参照MAC値のうち1または2以上と比較する。参照MAC値210がそれぞれのカウンタ値209に関連して格納される実施形態において、検証ブロックは、計算MAC値287を、MAC値287が計算されたカウンタ値に関連して格納される参照値210と比較する場合がある。あるいは、検証ブロック217は、計算MAC値287を格納参照値210と、一致が見られるまで、または全参照値が処理されてしまうまで、続けて比較する場合がある。検証ブロック217は、計算MAC287に対応する一致参照MAC210が発見されるかどうかを示す出力信号219を生成する。すなわち、出力信号219は、カウンタ値209が真正であり、最新であるかどうかを示す。出力信号213は、出力ノード213における完全性保護ブロック201により出力される。
処理装置の各起動時、または例えばコアソフトウェアのプラットフォームなど、処理装置上で動作するアプリケーションに要求されればいつでも、完全性保護ブロックは、上述のように、格納場所109に格納される目下のカウンタ値を検証するように制御される。ある実施形態において、バージョンカウンタの完全性は、バージョン制御処理がバージョンカウンタをアクセスする度に検証される。メモリ110に格納される参照MAC値210に計算MAC値287が対応する場合、処理装置は普通に機能することを続ける。さもなければ、処理装置の機能のいくつかまたは全部は無効とされる、および/または別の適切な行動がとられる。
ここで説明するバージョンカウンタは、ソフトウェアバージョン制御に多くの異なる方法で使用可能である。バージョンカウンタの目下の値、すなわち最低カウンタ値に関連する有効な完全性保護値を有する最低カウンタ値が、処理装置上で実行されることが許可される最低許可ソフトウェアバージョンを識別する2つの例を、以下で説明することにする。
ある実施形態において、バージョン制御は、インストールされたソフトウェア自体により行われる。このようなシステムにおいて、ソフトウェアは、無許可ユーザによりソフトウェアが変更されていないことを確かめるために、デジタル署名を提供される。受信/または格納ソフトウェアの認証を検証する適当な方法の例は、米国特許第6026293号明細書、またはトラステドコンピューティンググループ(Trusted Computing Group)のPCクライアントワークグループ(PC Cliant work group)の仕様書(www.trustedcomputinggroup.org)に記載される方法を含む。代替または追加として、ソフトウェアの認証は、別の適当な機構により保護可能である。処理装置が起動されると、またはソフトウェアの実行が開始されると、処理装置は、ソフトウェアのデジタル署名を検証する。デジタル署名が成功検証ではない場合、起動処理および/またはソフトウェアの実行はアボートされる。ソフトウェアは、ソフトウェアのバージョン番号を示すバージョンインジケータをさらに備える。ソフトウェアの実行が開始されると、ソフトウェアは自身のバージョンインジケータを、ここで説明する処理装置により維持されるバージョンカウンタの目下のカウンタ値により示される目下許可されるバージョン番号と比較する。ソフトウェアのバージョンインジケータがバージョンカウンタの目下のカウンタ値に等しい、またはそれより大きい場合、ソフトウェアは実行を続行する。さもなければ、実行はアボートされる。ソフトウェアのバージョンインジケータがバージョンカウンタの目下のカウンタ値より大きい場合、処理装置は、インストールされたソフトウェアのバージョンインジケータに等しい更新値へバージョンカウンタをインクリメントする。ここで説明するように、このインクリメントは、更新値より小さい全カウンタ値に関連する完全性保護値を、例えばMAC値などを削除することを含む。
代替例において、上述のバージョン制御は、個別のローダソフトウェアまたは起動ソフトウェアにより行われる。しかし、この代替実施形態においては、実行されることになるソフトウェアのデジタル署名または他の完全性保護は、実行されることになるソフトウェアの無許可操作(例えばバージョンインジケータの変更)をなお防止する。
処理装置100が、目下の値から後続値へバージョンカウンタを更新/インクリメント/起動するように制御される場合、処理装置100は、上記後続カウンタ値より小さいカウンタ値に関連する全参照MAC値をメモリ110から削除する。例えば、カウンタ値の更新は、中央処理論理ブロック102のマイクロプロセッサ188上で実行されるソフトウェア更新エージェント141により行われる場合がある。ある実施形態において、バージョンカウンタのステップアップは、ASICの第2の部分において実施される。あるいは、ステップアップは、信用のある/検証済みソフトウェアにより行われる場合もある。
バージョンカウンタ値VersionCount、VersionCount、……、VersionCountの上例において、バージョンカウンタがVersionCountからVersionCountへインクリメントされると、処理装置はMAC値mac_VC_refをメモリから削除する。同様に、バージョンカウンタがVersionCountへインクリメントされると、処理装置はMAC値mac_VC_ref、……、mac_VCK−1_refをメモリから削除する。図2bに示すカウンタ値およびMAC値の表であるが、VersionCountへのカウンタ値の更新後、すなわちMAC値mac_VC_ref、……、mac_VCK−1_refがメモリから削除されたものを、図2cは示している。ゆえに、一般的に、目下のカウンタ値は、完全性が成功検証可能である最小カウンタ値、すなわち有効な関連完全性保護値が装置に格納される最小カウンタ値である。結果的に、対応するMAC値がもはや存在しないので、完全性保護ブロックにより低いカウンタ値を検証する後続試行は失敗するであろう。さらに、「prog. mode」でASICを操作することを許可されていないユーザは、前の(より低い)カウンタ値に対応するMAC値を再計算できない。
上例は、後続カウンタ値は、シーケンスのいかなる後続カウンタ値であってもよく、直後のカウンタ値である必要はないことをさらに説明する。すなわち、中間カウンタ値は、カウンタ値をインクリメントするとき、スキップ可能である。上例において、カウンタ値は、例えば、k>2として、VersionCount、VersionCount、……、VersionCountであってもよい。中間カウンタ値がスキップ可能であることは、例えばソフトウェアバージョンが新バージョンへ更新され、そのため1または2以上の中間バージョンがスキップされる場合に有用である。
図3は、完全性保護論理ブロック301の別例のより詳細なブロック図を示す。完全性保護論理ブロック301は、図2の完全性保護ブロックと同様であり、それぞれのカウンタ値を保護するための1または2以上の暗号メッセージ認証符号(MAC)値を計算するように構成されるMAC計算ブロック212と、選択部218を制御するアクセス制御ブロック211と、検証ブロック217とを備える。MAC計算ブロック212、アクセス制御ブロック211、選択部218、および検証ブロック217は、図2に関連させて説明したので、ここで再び説明はしないことにする。
完全性保護ブロック301は、さらなるMAC計算ブロック312を備えるという点で、図2の完全性保護ブロック201と異なる。MAC計算ブロック312は、MAC計算ブロック212と同一の計算を行い、同一のシークレットキーkを受信する。しかしながら、MAC計算ブロック312は、MAC計算ブロック212へフィードされるカウンタ値209ではなく、インクリメントされたカウンタ値333を受信する。このため、カウンタ値209を受信し、インクリメントされたカウンタ値333、すなわち一連のカウンタ値における次のカウンタ値を生成するインクリメントブロック332を、完全性保護ブロック301は備える。あるいは、MAC計算ブロック212および312は、単一のブロックに組み合わせることが可能であり、任意でインクリメントブロック332も一緒に組み合わせることも可能である。なお別の代替実施形態において、完全性保護ブロック301は、カウンタ値209とインクリメントされたカウンタ値333とに対して順次MAC値を生成するように制御される単一のMAC計算ブロックのみを備える。MAC計算ブロック312により生成されるインクリメントされたカウンタ値333のMAC値331は、スイッチ330へフィードされる。参照MAC値110に対して目下のカウンタ値109のMAC値を検証ブロック217が成功検証した場合、スイッチ330は、MAC値331を出力213へフィードするように、検証ブロック217の出力219により制御される。検証ブロック217が目下のカウンタ値を成功検証しなかった場合(または、完全性保護ブロック301が「prog. mode」で操作されるため、検証ブロック217がMAC計算ブロック212から入力を受信しなかった場合)、MAC値331は出力213において提供されない。
ゆえに、図3の例において、完全性保護ブロック301が「verify mode」で操作されるとき、バージョンカウンタ値VersionCountがその参照MACに対して成功検証される場合、完全性保護ブロック301は、VersionCountk+1のMAC値を出力するために構成される。この実施形態において、完全性保護ブロック301は、「prog. mode」で操作され、第1の有効なカウンタ値のみに対して1つの初期参照MACを生成し、格納する。概して、かかる処理は装置製造中に、例えば製造者が装置にソフトウェアをロードする製造ステップの一部で行われる。この場合、製造者は、装置を「prog. mode」で操作することを許可されている。装置を「prog. mode」で起動させるのに必要ないかなるキーやパスワードなども、このように製造者により秘匿可能である。
「verify mode」で操作される場合の、図3の完全性保護ブロック301により行われる処理を、ここで図4を参照しながらさらに詳細に説明することにする。
図4は、カウンタ機構の一実施形態の実施形態の流れ図を示す。初期ステップS401において、処理は、目下のカウンタcntと、対応するMAC参照値mac_cnt_refとを受信する。後続ステップS402において、処理は、受信したカウンタ値cntとシークレットキーkとからMAC値mac_cnt=h(k,cnt)を計算する。ステップS403において、処理は、計算MAC値mac_cntを、受信した参照MAC値mac_cnt_refと比較する。それらが等しければ、処理はステップS405へ進行する。さもなければ、処理はステップS404へ進行する。ステップS404において、処理は、目下のカウンタの検証が成功ではなかったことを示すエラー条件「no」を出力し、処理は終了する。任意で、処理が受信する不適当参照値mac_cnt_refを、処理はさらに出力してもよい。ステップS405において、すなわち計算MAC値と参照MAC値とが一致する場合、処理は、インクリメントされたカウンタcnt+1のMAC値h(k,cnt+1)を計算し、ステップ406において、参照MACmac_(cnt+1)_ref=h(k,cnt+1)として計算値を、目下のカウンタ値が成功検証されるという表示「yes」とともに出力する。
この実施形態は、目下の参照値および後続の参照値へ格納されることとなるMAC参照値のリストを削減し、それにより装置内のメモリスペースを節約することがこの実施形態の有利である。バージョンカウンタがインクリメントされると、処理装置は、格納された目下の参照値mac_cnt_refを、前検証ステップ中に計算された後続参照値mac_(cnt+1)_refで置き換える次の参照MAC値mac_(cnt+2)_refは、後続検証ステップ中にこのように生成される。ある実施形態において、目下の参照値のみが保存される。例えば、ソフトウェア更新は、目下のカウンタの検証に関する場合があり、言い換えると、上述のように計算され、出力されることとなる後続参照値がもたらされる。
図5は、図3および図4に関する実施形態に関連して、バージョンカウンタ値および完全性保護値を維持するデータ構造の一例を示す。図5aは、目下のカウンタ値――この例ではVersionCount――と次に高いカウンタ値――この例ではVersionCountk+1――とがそれぞれの参照MAC値mac_VC_refおよびmac_VCk+1_refに関連して格納される表形式構造を示す。図5bは、バージョンVersionCountk+1へのバージョン更新後の表形式構造を示す。したがって、表形式構造において、古いカウンタ値および参照MACは、新しい目下の値VersionCountk+2およびmac_VCk+2_refでそれぞれ上書きされている。さらに、新しい後続値VersionCountk+2およびmac_VCk+2_refはデータ構造に書き込まれている。ゆえに、再び、目下のカウンタ値は、完全性が成功検証される最小カウンタ値、すなわち有効な関連完全性保護値が装置に格納される最小カウンタ値である。対応する参照MAC値がもはや存在しないため、完全性保護ブロックにより低いカウンタ値を検証する後続試行は失敗するであろう。さらに、「verify mode」で操作される場合、ASICは後続MAC値を出力するのみであり、目下のまたは前のMAC値は出力しないため、ASICを「prog. mode」で操作することを許可されていないユーザは、前の(より低い)カウンタ値に対応するMAC値を再計算できない。
いくつかの実施形態を詳細に説明し、図示してきたが、本発明は、それらの実施形態に限定されるものではなく、添付の特許請求の範囲において記載される主題の範囲内の他の方法でも実施可能である。
特に、これらの実施形態は、データ処理装置の一例として移動端末を参照しながら主に説明してきた。しかしながら、ここで説明した方法、製品手段および装置は、他のデータ処理装置にも応用可能であることが理解される。
さらに、これらの実施形態は、単一のソフトウェアバージョンカウンタに関連して主に説明してきた。しかしながら、ここで説明した方法、装置および製品手段は、ソフトウェアバージョンのほかメモリコンテンツのバージョンに関する他の更新イベントや状態などをカウントする他種のバージョンカウンタにも応用可能であることが理解される。このようなメモリコンテンツの例は、格納データ、例えばデータベースなどに格納されるデータを含むが、限定はされない。同様に、処理装置は、ここで説明した機構を用いて1つより多くのカウンタ、例えば異なるソフトウェア実体またはモジュールおよび/またはデータ項目などに対する異なるカウンタを維持可能である。
ここで説明した方法、製品手段および装置は、いくつかの別個の要素を備えるハードウェアを用いて、および適当にプログラムされたマイクロプロセッサを用いて実施可能である。いくつかの手段を列挙する装置請求項において、これらの手段のいくつかは、ハードウェアの1つの同一項目、例えば適当にプログラムされたマイクロプロセッサや1または2以上のデジタル信号プロセッサなどにより実施可能である。ある量が、互いに異なる独立請求項において列挙されている、または異なる実施形態において説明されているという単なる事実は、このような量の組み合わせを有利に利用することが不可能であることを示すものではない。
「含む(comprises/comprising)」という言葉を本明細書において用いる場合、言明する特徴、整数、ステップまたは構成要素の存在を明記するが、1または2以上の他の特徴、整数、ステップ、構成要素、またはそれらの組の存在または追加を排除してはいないことが強調されるべきである。
処理装置の実施形態の概略ブロック図を示す。 カウンタを実施する処理部の一例と、バージョンカウンタ値および完全性保護値を維持するデータ構造の一例との概略ブロック図を示す。 カウンタを実施する処理部の別例の概略ブロック図を示す。 カウンタ機構の一実施形態の流れ図を示す。 バージョンカウンタ値および完全性保護値を維持するデータ構造の一例を示す。

Claims (34)

  1. 処理装置によりバージョンカウンタを維持する方法であって、前記バージョンカウンタは、前記処理装置に格納されるメモリコンテンツのバージョンを示し、前記方法は、第1のモードおよび第2のモードのうち1つで選択的に処理され、前記第1のモードは、許可ユーザに制限され、前記第2のモードとは別に制御される、前記方法において、
    前記第1のモードでの処理は、前記処理装置が、
    前記第2のモードでの前記処理装置の操作中、前記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも1つの初期参照完全性保護値を生成することと、前記初期カウンタ値は、所定の一連のカウンタ値から選択されることと、
    前記一連のカウンタ値のそれぞれの完全性を暗号保護するための、対応する一連の参照完全性保護値を生成することと、
    格納媒体に目下の参照完全性保護値として前記初期参照完全性保護値を格納すること
    を含み、
    前記一連のカウンタ値のうち目下のカウンタ値及び先のカウンタ値の少なくとも1つの参照完全性保護値を出力することは、前記第1のモードに制限され、
    前記第2のモードでの処理は、前記処理装置が、
    前記目下の参照完全性保護値に基づいて、目下のカウンタ値の完全性を検証することと、
    前記目下のカウンタ値の完全性が成功検証され、更新バージョンのバージョンインジケータが、検証された前記目下のカウンタ値より大きいまたは等しい場合にのみ、メモリコンテンツの更新バージョンへのメモリコンテンツ更新を受け入れることと、さもなければ前記メモリコンテンツ更新を防止することを含み、
    前記メモリコンテンツ更新を受け入れることは、前記処理装置が、
    目下のカウンタ値を後続カウンタ値へインクリメントすることと、前記後続カウンタ値は、前記一連のカウンタ値において前記目下のカウンタ値の後に続くことを含み、
    インクリメントすることは、前記処理装置が、前記目下のカウンタ値の完全性を暗号保護するための前記目下の参照完全性保護値を前記格納媒体から削除することを含むことと、
    を含む方法。
  2. 前記第1のモードでの処理は、前記処理装置が、
    格納媒体に前記一連の参照完全性保護値を格納することとを含み、
    前記一連のカウンタ値は、前記初期カウンタ値から始まり、連続して並べられる
    請求項1に記載の方法。
  3. 前記処理装置が前記第1および第2のモードのうち前記第1のモードで操作される場合のみ、前記一連の参照完全性保護値の生成参照完全性保護値を出力するように構成される完全性保護値計算部を提供することをさらに含む請求項2に記載の方法。
  4. 目下のカウンタ値を後続カウンタ値へインクリメントすることは、前記後続カウンタ値に対応する後続参照完全性保護値を生成することと、前記目下の参照完全性保護値を前記後続参照完全性保護値で置き換えることとを含む、請求項1に記載の方法。
  5. 前記後続参照完全性保護値を生成することは、前記目下の参照完全性保護値に基づいて前記目下のカウンタ値を検証することと、前記目下のカウンタ値の成功検証を条件として前記後続参照完全性保護値を生成することとを含む、請求項4に記載の方法。
  6. 生成された各参照完全性保護値は、対応する前記カウンタ値および前記処理装置に固有である、請求項1から5のいずれか1項に記載の方法。
  7. 生成された各参照完全性保護値は、前記バージョンカウンタの値およびシークレットキー値からメッセージ認証符号関数により生成されるメッセージ認証符号値である、請求項1から6のいずれか1項に記載の方法。
  8. 前記シークレットキー値は装置固有である、請求項7に記載の方法。
  9. 前記初期カウンタ値は装置固有である、請求項1から8のいずれか1項に記載の方法。
  10. 対応する前記参照完全性保護値を用いた前記カウンタ値の前記生成および検証は、完全性保護モジュールにより実施され、前記完全性保護モジュールは改ざんに対して安全である、請求項1から9のいずれか1項に記載の方法。
  11. 前記完全性保護モジュールはハードウェアモジュールである、請求項10に記載の方法。
  12. 前記処理装置はプログラム可能マイクロプロセッサである、請求項1から11のいずれか1項に記載の方法。
  13. 前記処理装置は移動端末である、請求項1から12のいずれか1項に記載の方法。
  14. 前記格納媒体は前記処理装置に備わる、請求項1から13のいずれか1項に記載の方法。
  15. 前記バージョンカウンタはソフトウェアバージョンカウンタである、請求項1から14のいずれか1項に記載の方法。
  16. 前記方法は、前記処理装置が、
    前記メモリコンテンツの更新バージョンを受信することと、前記更新バージョンはバージョンインジケータを含むことと、
    受信された前記メモリコンテンツの真正を検証することと、
    前記バージョンインジケータおよび前記バージョンカウンタの目下の値に基づいて、受信された更新メモリコンテンツのバージョン制御を行うことと、
    前記バージョン制御の結果を条件に、受信された前記更新メモリコンテンツを受け入れること
    をさらに含む、請求項1から15のいずれか1項に記載の方法。
  17. 前記方法は、前記処理装置が、
    前記バージョンカウンタを、受信された前記更新メモリコンテンツの前記バージョンインジケータに対応する後続カウンタ値へインクリメントすることをさらに含む請求項16に記載の方法。
  18. 受け入れることは、前記処理装置に格納されるメモリコンテンツを、受け入れられた前記更新メモリコンテンツで更新することを含む、請求項1から17のいずれか1項に記載の方法。
  19. データ処理装置上で実行されると請求項1から18のいずれか1項に記載の方法を行うプログラムを格納したコンピュータ読み取り可能な記録媒体。
  20. 処理装置に格納されるメモリコンテンツのバージョンを示すバージョンカウンタを維持するように構成される前記処理装置であって、前記処理装置は、第1のモードおよび第2のモードのうち1つで選択的に操作可能であり、前記第1のモードで前記処理装置を操作することへのアクセスは、許可ユーザに制限され、前記第2のモードへのアクセスとは別に制御され、
    前記処理装置は、前記第1のモードで操作される場合、
    前記バージョンカウンタの少なくとも1つの初期カウンタ値を生成することと、前記初期カウンタ値は、所定の一連のカウンタ値から選択されることと、
    前記一連のカウンタ値のそれぞれの完全性を暗号保護するための、対応する一連の参照完全性保護値を生成することと、
    前記第2のモードでの前記処理装置の操作中、生成された前記初期カウンタ値の完全性を暗号保護するための初期参照完全性保護値を生成することと、
    格納媒体に目下の参照完全性保護値として前記初期参照完全性保護値を格納することと
    を行うように構成され、
    前記処理装置は、前記一連のカウンタ値のうち、目下のカウンタ値及び先のカウンタ値の少なくとも1つの参照完全性保護値の出力を第1のモードに制限するように構成され、
    前記処理装置は、
    前記目下の参照完全性保護値に基づいて、目下のカウンタ値の完全性を検証し、
    前記目下のカウンタ値の完全性が成功検証され、更新バージョンのバージョンインジケータが、検証された前記目下のカウンタ値より大きいまたは等しい場合にのみ、メモリコンテンツの更新バージョンへのメモリコンテンツ更新を受け入れ、さもなければ前記メモリコンテンツ更新を防止するように構成され、前記メモリコンテンツ更新を受け入れることは、
    目下のカウンタ値を後続カウンタ値へインクリメントすることと、前記後続カウンタ値は、前記一連のカウンタ値において前記目下のカウンタ値の後に続くことと、インクリメントすることは、前記目下のカウンタ値の完全性を暗号保護するための前記目下の参照完全性保護値を前記格納媒体から削除することを含む、
    処理装置。
  21. 前記第1のモードで操作される場合、
    格納媒体に前記一連の参照完全性保護値を格納することを更に
    を行うように構成され、
    前記一連のカウンタ値は、前記初期カウンタ値から始まり、連続して並べられる
    請求項20に記載の処理装置。
  22. 前記処理装置が前記第1のモードおよび第2のモードのうち前記第1のモードで操作される場合にのみ、前記一連の参照完全性保護値の生成参照完全性保護値を出力するように構成される完全性保護値計算部を備える請求項21に記載の処理装置。
  23. 前記後続カウンタ値に対応する後続参照完全性保護値を生成し、前記目下の参照完全性保護値を前記後続参照完全性保護値で置き換えることにより、前記目下のカウンタ値を後続カウンタ値へインクリメントするようにさらに構成される請求項20に記載の処理装置。
  24. 前記目下の参照完全性保護値を用いて前記目下のカウンタ値を検証し、前記目下のカウンタ値の成功検証を条件として前記後続参照完全性保護値を生成するようにさらに構成される請求項23に記載の処理装置。
  25. 対応する前記カウンタ値および前記処理装置に固有となるように各参照完全性保護値を生成するようにさらに構成される請求項20から24のいずれか1項に記載の処理装置。
  26. 前記バージョンカウンタの値とシークレットキー値とからメッセージ認証符号関数により生成されるメッセージ認証符号値として各参照完全性保護値を生成するように構成される請求項20から25のいずれか1項に記載の処理装置。
  27. 前記シークレットキー値は装置固有である、請求項26に記載の処理装置。
  28. 前記初期カウンタ値は装置固有である、請求項20から27のいずれか1項に記載の処理装置。
  29. 対応する前記参照完全性保護値を用いて前記カウンタ値の前記生成および検証を実施するように構成される完全性保護モジュールを備え、前記完全性保護モジュールは改ざんに対して安全である、請求項20から28のいずれか1項に記載の処理装置。
  30. 前記完全性保護モジュールはハードウェアモジュールである、請求項29に記載の処理装置。
  31. 前記処理装置はプログラム可能マイクロプロセッサである、請求項20から30のいずれか1項に記載の処理装置。
  32. 前記処理装置は移動端末である、請求項20から31のいずれか1項に記載の処理装置。
  33. 前記処理装置は前記格納媒体を備える、請求項20から32のいずれか1項に記載の処理装置。
  34. 前記バージョンカウンタはソフトウェアバージョンカウンタである、請求項20から33のいずれか1項に記載の処理装置。
JP2009506952A 2006-04-24 2007-04-18 ソフトウェアバージョンのインストールの許可 Expired - Fee Related JP5038397B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP06388031A EP1850256B1 (en) 2006-04-24 2006-04-24 Authorisation of the installation of a software version
EP06388031.4 2006-04-24
US74767606P 2006-05-19 2006-05-19
US60/747,676 2006-05-19
PCT/EP2007/003389 WO2007121903A1 (en) 2006-04-24 2007-04-18 Authorisation of the installation of a software version

Publications (2)

Publication Number Publication Date
JP2009534765A JP2009534765A (ja) 2009-09-24
JP5038397B2 true JP5038397B2 (ja) 2012-10-03

Family

ID=37398783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009506952A Expired - Fee Related JP5038397B2 (ja) 2006-04-24 2007-04-18 ソフトウェアバージョンのインストールの許可

Country Status (10)

Country Link
US (1) US8880898B2 (ja)
EP (1) EP1850256B1 (ja)
JP (1) JP5038397B2 (ja)
KR (1) KR20090005390A (ja)
CN (1) CN101427259B (ja)
AT (1) ATE470909T1 (ja)
CA (1) CA2646003A1 (ja)
DE (1) DE602006014801D1 (ja)
TW (1) TW200817964A (ja)
WO (1) WO2007121903A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789716B2 (en) 2020-09-23 2023-10-17 Kabushiki Kaisha Toshiba Electronic apparatus capable of updating firmware program securely and method of updating firmware program securely

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008018055A2 (en) * 2006-08-09 2008-02-14 Neocleus Ltd Extranet security
WO2008114257A2 (en) * 2007-03-21 2008-09-25 Neocleus Ltd. Protection against impersonation attacks
WO2008114256A2 (en) * 2007-03-22 2008-09-25 Neocleus Ltd. Trusted local single sign-on
US8474037B2 (en) 2008-01-07 2013-06-25 Intel Corporation Stateless attestation system
EP2286333A4 (en) * 2008-06-05 2012-08-08 Neocleus Israel Ltd SAFE MULTIPURPOSE COMPUTER CLIENT
US8266684B2 (en) 2008-09-30 2012-09-11 General Instrument Corporation Tokenized resource access
US8364598B2 (en) * 2009-10-13 2013-01-29 Microsoft Corporation Use of software update policies
US8621337B1 (en) * 2010-09-30 2013-12-31 Juniper Networks, Inc. Detecting memory corruption
US20120204254A1 (en) * 2011-02-04 2012-08-09 Motorola Mobility, Inc. Method and apparatus for managing security state transitions
JP5759845B2 (ja) * 2011-09-21 2015-08-05 株式会社メガチップス 情報処理システム、情報処理装置、外部記憶媒体、プログラム、記憶媒体、及び、ファイル管理方法
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
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
AU2014229568A1 (en) 2013-03-15 2015-10-22 Assa Abloy Ab Method, system, and device for generating, storing, using, and validating NFC tags and data
CN105814791B (zh) * 2013-12-12 2018-10-02 松下知识产权经营株式会社 电动机驱动装置
US9460312B2 (en) * 2014-03-11 2016-10-04 Qualcomm Incorporated Data integrity protection from rollback attacks for use with systems employing message authentication code tags
US9621549B2 (en) 2014-07-25 2017-04-11 Qualcomm Incorporated Integrated circuit for determining whether data stored in external nonvolative memory is valid
US9928385B2 (en) * 2014-08-29 2018-03-27 The Boeing Company Periodic memory refresh in a secure computing system
US9325506B2 (en) 2014-09-23 2016-04-26 Red Hat, Inc. Cryptographically enforcing strict separation of environments
CN107111730B (zh) * 2014-11-07 2021-01-08 新思公司 用于数据存储的完整性保护
US10042780B2 (en) * 2014-11-07 2018-08-07 Synopsys, Inc. Integrity protection for data storage
JP6595822B2 (ja) * 2015-07-07 2019-10-23 キヤノン株式会社 情報処理装置及びその制御方法
US10019309B2 (en) * 2015-12-28 2018-07-10 International Business Machines Corporation Analytics-based dynamic adaptation of client-server mobile applications
US10126960B2 (en) 2016-05-10 2018-11-13 Qualcomm Incorporated Fuse-based anti-replay mechanism
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
WO2019148470A1 (zh) * 2018-02-02 2019-08-08 深圳配天智能技术研究院有限公司 一种可编程逻辑芯片的保护电路及控制系统
EP3614622A1 (en) * 2018-08-24 2020-02-26 Nagravision SA Sending and receiving messages
EP3887987A4 (en) * 2018-11-30 2022-06-15 Hewlett-Packard Development Company, L.P. SOFTWARE FIX DIFFERENCE DEVICES
CN113168319A (zh) 2018-11-30 2021-07-23 惠普发展公司,有限责任合伙企业 轮询计算设备
US11128460B2 (en) * 2018-12-04 2021-09-21 EMC IP Holding Company LLC Client-side encryption supporting deduplication across single or multiple tenants in a storage system
WO2020118639A1 (zh) * 2018-12-13 2020-06-18 深圳市大疆软件科技有限公司 无人飞行器及其固件升级方法
US11288361B1 (en) * 2019-03-29 2022-03-29 NortonLifeLock Inc. Systems and methods for restoring applications
US10474809B1 (en) * 2019-07-12 2019-11-12 Capital One Services, Llc Computer-based systems and computing devices configured to utilize one or more authentication servers for securing device commands transmissions and methods of use thereof
KR20220093664A (ko) 2020-12-28 2022-07-05 삼성전자주식회사 크립토 장치, 그것을 갖는 집적 회로 및 컴퓨팅 장치, 및 그것의 쓰기 방법
US20220382868A1 (en) * 2021-06-01 2022-12-01 Mellanox Technologies Ltd. Unidirectional counter
CN113255263B (zh) * 2021-06-07 2021-10-01 上海国微思尔芯技术股份有限公司 颗粒带分割方法、装置、计算机设备和存储介质
CN113486399B (zh) * 2021-07-14 2023-03-24 上海瓶钵信息科技有限公司 基于risc-v架构的数据存储方法及系统
CN117668872A (zh) * 2023-12-04 2024-03-08 北京海泰方圆科技股份有限公司 一种数据保护方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
GB2353120B (en) * 1996-06-28 2001-03-21 Intel Corp Method and apparatus for protecting flash memory
KR20010100011A (ko) * 1999-10-29 2001-11-09 요트.게.아. 롤페즈 보안 카운터를 경유하여 데이터 통합성을 보증하는 방법
JP4193321B2 (ja) * 2000-03-29 2008-12-10 オムロン株式会社 画像処理システム及びコンピュータ並びに画像処理装置及び処理方法
US9213836B2 (en) * 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
JP2003202931A (ja) * 2002-01-09 2003-07-18 Toshiba Corp ソフトウェアダウンロードシステム、サーバ装置、端末装置、サーバ制御プログラム、端末制御プログラム、サーバ制御方法、端末制御方法
US7421579B2 (en) * 2002-06-28 2008-09-02 Microsoft Corporation Multiplexing a secure counter to implement second level secure counters
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
EP1563388A2 (en) * 2002-11-18 2005-08-17 ARM Limited Secure memory for protecting against malicious programs
US20050021968A1 (en) * 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US7100205B2 (en) * 2003-10-22 2006-08-29 The United States Of America As Represented By The Secretary Of The Navy Secure attention instruction central processing unit and system architecture
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US7877313B2 (en) * 2004-04-16 2011-01-25 Sap Ag Method and system for a failure recovery framework for interfacing with network-based auctions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789716B2 (en) 2020-09-23 2023-10-17 Kabushiki Kaisha Toshiba Electronic apparatus capable of updating firmware program securely and method of updating firmware program securely

Also Published As

Publication number Publication date
EP1850256B1 (en) 2010-06-09
ATE470909T1 (de) 2010-06-15
US8880898B2 (en) 2014-11-04
EP1850256A1 (en) 2007-10-31
TW200817964A (en) 2008-04-16
CN101427259A (zh) 2009-05-06
DE602006014801D1 (de) 2010-07-22
CA2646003A1 (en) 2007-11-01
US20090100272A1 (en) 2009-04-16
CN101427259B (zh) 2011-11-23
JP2009534765A (ja) 2009-09-24
KR20090005390A (ko) 2009-01-13
WO2007121903A1 (en) 2007-11-01

Similar Documents

Publication Publication Date Title
JP5038397B2 (ja) ソフトウェアバージョンのインストールの許可
US10719606B2 (en) Security processor for an embedded system
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
TWI607376B (zh) 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法
US8015378B2 (en) Updating memory contents of a processing device
TW201516733A (zh) 用以核對uefi認證變量變化之系統及方法
WO2002027441A1 (en) System for protecting static and dynamic data against unauthorised manipulation
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
US20100100966A1 (en) Method and system for blocking installation of some processes
CN103329095A (zh) 用编码的信息验证管理程序
US8495389B2 (en) Locking changing hard disk content to a hardware token
US8181037B2 (en) Application protection systems and methods
EP3176723B1 (en) Computer system and operating method therefor
EP1811460B1 (en) Secure software system and method for a printer
CN116089967B (zh) 数据防回滚方法和电子设备
US20240031143A1 (en) Apparatuses and methods for verification of updated data-set
CN117874784A (zh) 一种车辆加密系统和方法
CN113935012A (zh) 用于执行控制设备的安全启动序列的方法
WO2023174755A1 (en) Method to prevent anti-replay attack
JP2012039390A (ja) フレキシブル認証ルールの修正
CN116028381A (zh) 用于锁定可重写非易失性存储器的方法和实施所述方法的电子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

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

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

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

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5038397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees