JP4856080B2 - データ処理装置へのデータのセキュリティ上安全なロード及び格納 - Google Patents

データ処理装置へのデータのセキュリティ上安全なロード及び格納 Download PDF

Info

Publication number
JP4856080B2
JP4856080B2 JP2007535036A JP2007535036A JP4856080B2 JP 4856080 B2 JP4856080 B2 JP 4856080B2 JP 2007535036 A JP2007535036 A JP 2007535036A JP 2007535036 A JP2007535036 A JP 2007535036A JP 4856080 B2 JP4856080 B2 JP 4856080B2
Authority
JP
Japan
Prior art keywords
data item
data
hash value
data processing
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 - Lifetime
Application number
JP2007535036A
Other languages
English (en)
Other versions
JP2008516317A (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 テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority claimed from PCT/EP2005/009624 external-priority patent/WO2006039967A1/en
Publication of JP2008516317A publication Critical patent/JP2008516317A/ja
Application granted granted Critical
Publication of JP4856080B2 publication Critical patent/JP4856080B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Description

データをデータ処理装置にセキュリティ上安全にロード及び格納する方法、製品手段及び装置が開示される。
移動電話及び他のデータ処理装置のような組込みシステムは、使用許諾された正式なソフトウェアの実行に依存する。ソフトウェアの操作により、装置の挙動エラー又は装置の基本的なセキュリティ機能の無効化を招く恐れがある。従って、装置のコアソフトウェアを保護することが特に重要である。例えばこれは、プログラムを保護メモリに格納することにより達成される。メモリは、不法アクセスから物理的に保護されるか、あるいは暗号方式により保護される。実際には、適切な物理的な保護を有するメモリを製造すること及び特にメモリインタフェースを保護することは困難であり、費用がかかる。従って、最も好ましい解決策は、メモリに格納されたソフトウェアのいくつかの種類の暗号化保護を使用することである。
更に、非常に小さなシステムに対するソフトウェアも益々複雑になってきているため、特にソフトウェアのライフサイクルの間の初期のリリースにおいて、エラー及び意図しない特徴の危険性は高くなる。また、ソフトウェアの初期のリリースの機能性は、通常限定される。従って、組込み装置に格納されたソフトウェアの頻繁な更新が益々必要とされてきている。
頻繁な更新の必要性及びデータ処理装置のソフトウェアに十分な保護を提供することに対する要望により、格納の際にデータ処理装置のソフトウェアを保護するとともに、セキュリティ上安全なソフトウェアの更新を可能にするセキュリティの解決策が必要となる。
特許文献1は、電子装置における電子メモリの改竄を防止する方法を開示している。従来技術の方法によると、電子装置がデータ転送装置により再プログラムされる場合、電子装置は、公開鍵/秘密鍵を使用するチャレンジレスポンス認証方式を開始し、データ転送装置を認証する。認証されると、データ転送装置はアクセスを許可され、メモリを再プログラムする。メモリの再プログラミング後、電子装置は、変更されたメモリコンテンツのハッシュ計算を実行する。計算されたハッシュ値は、デジタル署名するためにデータ転送装置に送信され、署名されたハッシュ値は、格納するために電子装置に返される。その後、署名されたハッシュ値は、起動中に又は周期的にメモリコンテンツの完全性を監査するために使用される。
米国特許第6,026,293号公報
上述の従来技術の方法は、ロードする段階において認証保護及び電子装置のメモリコンテンツの完全性保護を提供するが、ハッシュ値を生成し、生成されたハッシュ値に署名する非常に複雑な方式を含むため、ロード処理は長時間かかる。
従って、ソフトウェアを装置にロードし、その後装置に格納する間にソフトウェアを保護する、計算量的により効率的なセキュリティ機構を提供することが課題である。
上記課題及び他の課題は、データ処理装置にデータをロードする方法であって、
−データ処理装置がペイロード・データ項目を受信する工程と、
−ペイロード・データ項目の信頼性を保証するために暗号認証処理を実行する工程と、
−認証し、受信したペイロード・データ項目をデータ処理装置に格納する工程と、
−格納したペイロード・データ項目の完全性を保護する工程と、
を備え、
暗号認証処理を実行する工程には、少なくとも受信したデータ項目の監査ハッシュ値を計算する工程が含まれ、
完全性を保護する工程には、データ処理装置に入力として格納された秘密鍵を使用して、少なくとも監査ハッシュ値の参照メッセージ認証コード値を計算する工程が更に含まれることを特徴とする方法により解決される。
特に、ロード処理中に計算される監査ハッシュ値が受信したペイロード・データから計算され、その後、監査ハッシュ値がメッセージ認証コードの計算において再利用されるため、ソフトウェアロード中に実行される必要な演算数は減少し、方法の計算量的な効率が向上する。
更に、通常の完全性保護がデータ処理装置に格納された秘密鍵に基づくため、完全性保護は、任意の外部暗号鍵に依存せず且つ特に公開鍵署名機構に依存しない。対称鍵に基づく完全性チェック、すなわちメッセージ認証コードに基づく完全性チェックは、署名検証を含む公開鍵に基づく完全性チェックより計算上更に効率的であるのが利点である。
用語「データ処理装置」は、データがデータ転送システム等の外部ソースからロードされるデータメモリを具備する任意の電子装置を含むことを意図する。特に、用語「データ処理装置」は、任意の電子機器、携帯無線通信機器、及び他のハンドヘルド又は携帯装置を含むことを意図する。用語「携帯無線通信機器」は、移動電話、ページャ、通信機、電子オーガナイザ、スマートフォン、パーソナルデジタルアシスタント(PDA)又はハンドヘルドコンピュータ等の全ての機器を含む。
用語「ペイロード・データ項目」は、データ処理装置にロードされた任意のデータを含むことを意図する。特に、用語「ペイロード・データ項目」は、装置等による実行を意図したプラットフォームソフトウェア又はアプリケーションソフトウェア等のプログラムコード、あるいは構成データを含むことを意図する。
暗号認証処理は、受信したデータの信頼性を検証するための任意の適切な暗号処理、すなわちデータが名前を搬送されるエンティティにより実際に送信されたこと、及びデータが偽造又は変更されていないことを保証するための任意の適切な暗号処理であってもよい。
いくつかの実施形態において、暗号認証処理には、
−参照ハッシュ値を受信する工程と、
−受信したペイロード・データ項目の信頼性を検証するために、受信した参照ハッシュ値と計算した監査ハッシュ値とを比較する工程と、が含まれる。
更なる実施形態において、暗号認証処理には、公開鍵暗号方式に基づいてデータ項目にデジタル署名を行う工程が含まれる。ソフトウェアのデジタル署名は、移動装置にロードされたソフトウェアの検証に対して効率的でセキュリティ上安全な原理である。署名の正常な検証により、ソフトウェアが妥当なソースにより発行されたことが保証される。更に、公開鍵技術に基づくデジタル署名は、検証に使用される公開鍵が転送又は格納の際に秘密保護される必要がないという利点を有する。従って、同一の公開鍵は、セキュリティを損なわずに多くの装置にインストールされる。これにより、高速でセキュリティ上安全なソフトウェアアップグレードに対する効率的な手順が可能になる。
いくつかの実施形態において、方法は、
−ペイロード・データ項目と、第1の公開鍵を含みデジタル署名されたデジタル証明書データ項目と、第1の公開鍵に対応する第1の秘密鍵を用いて暗号化された参照ハッシュ値を含むデジタル署名データ項目と、を受信する工程と、
−デジタル署名されたデジタル証明書データ項目を、データ処理装置に格納されたルート公開鍵に対して認証する工程と、
−デジタル署名データ項目を認証されたデジタル証明書に対して認証する工程と、
−受信したペイロード・データ項目の信頼性を検証するために、受信した参照ハッシュ値と計算した監査ハッシュ値とを比較する工程と、
を備える。
従って、デジタル署名の認証はデジタル証明書により保証され、ロード処理のセキュリティを更に向上する。データ処理装置は、証明書チェーンを形成する2つ以上のデジタル証明書を受信してもよい。この時、チェーンの1つの証明書が、データ処理装置に格納された公開ルート鍵により検証される。
更なる実施形態においては、参照ハッシュ値が暗号的に認証され、参照メッセージ認証コード値を計算する工程は、参照ハッシュ値が正常に認証された場合にのみ実行される。従って、データ処理装置におけるメッセージ認証コード手順の実行は、認証された参照ハッシュ値の受信を条件とする。これにより、無許可のメッセージ認証コード値を計算するためにデータ処理装置のメッセージ認証コード手順を不正者が利用する危険性が低減される。
メッセージ認証コード(MAC)は、完全性保護メッセージに対する周知の機構である。MACは、可変長の入力及び鍵を利用して固定の長さの出力、いわゆるMAC値又はタグ値を生成する関数である。通常、秘密鍵を共有する2者間で送信される情報を有効にするために、MACはそれら2者間で使用される。いくつかの実施形態において、MACは、ペイロード・データに一方向ハッシュ関数を適用し、秘密鍵を使用してその結果を暗号化することにより計算される。暗号ハッシュ関数と組み合わされる適切なMAC関数の例には、HMAC(メッセージ認証のための鍵付ハッシング)、例えばAES又はセキュリティ上安全な一方向ハッシュ関数を使用する暗号ブロック連鎖(CBC)MACが含まれる。本明細書において説明されるロード方法において、メッセージ認証コードは、信頼性のない又はセキュリティ上安全でない媒体に格納されたデータの完全性をチェックするのに使用される。すなわち、この状況において、ペイロード・データ項目を格納し、検索する場合、MACは、1つの装置、すなわち移動端末によってのみ使用される。
従って、いくつかの実施形態において、完全性を保護する工程には、計算した参照メッセージ認証コード値を、受信したペイロード・データ項目と関連づけて格納する工程が含まれ、これにより、データ処理装置によるペイロード・データ項目のその後のメモリ監査に対して利用可能にする。メモリコンテンツを監査する場合、装置は、装置に格納された秘密鍵を使用して、格納されたペイロード・データ項目のメッセージ認証コード値を計算し、その結果を先に格納された参照MAC値と比較する。従って、本実施形態において、デジタル処理装置のみが秘密鍵を知る必要がある。いくつかの実施形態において、秘密鍵は、データ処理装置に固有の秘密データ項目であり、例えばデータ処理装置のみが知る秘密データ項目である。
別の実施形態において、参照メッセージ認証コード値を計算する工程には、少なくとも監査ハッシュ値及び乱数から得られる組合せデータ項目の参照メッセージ認証コード値を計算する工程が更に含まれる。本実施形態の利点は、MACに対する入力が認証処理の結果に完全に依存せず、データ保護のセキュリティを更に向上させることである。
参照メッセージ認証コード値を計算する工程に、少なくとも監査ハッシュ値とバージョン制御データ項目とから得られる組合せデータ項目の参照メッセージ認証コード値を計算する工程が更に含まれる場合、メモリコンテンツ及びバージョン制御情報が一貫している場合にのみ後続するメモリ監査が正常に行なわれるため、完全性保護はバージョン制御機構と効率的に組み合わされる。
いくつかの実施形態において、バージョン制御データレコードはバージョン制御データ構造に格納され、バージョン制御データレコードには、少なくともバージョン制御データ項目を含む受信したペイロード・データ項目に関する情報が含まれる。いくつかの実施形態において、制御データ構造の完全性が保護される。
いくつかの実施形態において、バージョン制御データレコードはバージョンカウンタを備える。いくつかの実施形態において、バージョン制御データレコードは、ペイロード・データ項目の現在のバージョンを置換してもよい先のバージョン数を識別するバックカウンタを更に備える。それにより、上位互換性を制御する機構を含む単純で効率的なバージョン制御機構が提供される。
既存のソフトウェアがソフトウェアの新しいバージョンによりアップグレードされる周知のソフトウェアアップグレード方式において、ソフトウェアアップグレードは、いわゆるデルタファイル又はデルタ更新として受信されることが多い。そのようなデルタ更新は、現在のソフトウェアに対する新しい(更新された)ソフトウェアの差異を含み、それによりアップグレードパケットのサイズを減少する。いくつかのデルタファイル技術において、更新ファイルは、現在のソフトウェア及び受信した更新データから更新されたソフトウェアバージョンを生成することを制御するコマンドを更に含む。デルタファイル技術は、従来技術において周知であり、例えばChristian Reichenbergerによる「Delta storage for arbitrary non-text files」Proc. Of the 3rd International Workshop on Software Configuration Management、144〜152ページ、ノルウェー、1991年6月において説明される。デルタ更新に適用可能な効率的でセキュリティ上安全な機構を提供するのが望ましい。ペイロード・データ項目を受信する工程に、先に受信した現在のデータ項目のデルタ更新を受信する工程と、先に受信した現在のデータ項目と受信したデルタ更新とから、更新されたペイロード・データ項目としてペイロード・データ項目を生成する工程とが含まれる場合、この課題は解決される。本実施形態によると、更新されたペイロード・データ項目が生成され、監査ハッシュ値は、生成された更新ペイロード・データ項目から計算される。従って、鑑査ハッシュ値は、装置に格納された更新ペイロード・データの参照メッセージ認証コードの計算に対して再利用される。
第2の側面によると、上記の従来技術のシステムの課題は、格納されたデータ項目の異なるバージョンのアップグレードが頻繁に発生する場合に、データ処理装置に格納されたデータ項目の現在のバージョンの完全性を保護する効率的でセキュリティ上安全な方法を提供することである。
上記課題及び他の課題は、データ処理装置に格納されたデータ項目の現在のバージョンの完全性を保護する方法であって、
−少なくとも前記データ項目の参照ハッシュ値を決定する工程と、
−前記データ処理装置に格納された秘密鍵を使用して、前記決定された参照ハッシュ値から参照メッセージ認証コード値を計算する工程と、
−前記計算した参照メッセージ認証コード値を、前記データ項目と関連づけて格納する工程と、
を備え、
前記参照メッセージ認証コード値を計算する工程には、前記決定された参照ハッシュ値と少なくともバージョン制御データレコードの一部とから得られる組合せデータ項目から前記参照メッセージ認証コード値を計算する工程が含まれ、
前記バージョン制御データレコードには、前記データ項目の現在のバージョンに関するバージョン制御情報が含まれる
ことを特徴とする方法により解決される。
従って、判定された参照ハッシュ値及び少なくともバージョン制御データレコードの一部から得られる組合せデータ項目から参照メッセージ認証コードを計算することにより、格納されたペイロード・データの完全性保護は、格納されたデータのセキュリティ上安全なバージョン制御と効率的に組み合わされる。
少なくともデータ項目の参照ハッシュ値は、データ項目からハッシュ値を計算することにより判定されてもよく、あるいは上述のように、データ項目と共にハッシュ値を受信することにより又はデータ項目の受信に関連する認証処理からハッシュ値を受信することにより判定されてもよい。
用語「組合せデータ項目」は、2つ以上のデータ項目の関数として、例えば一方のデータ項目が他方のデータ項目の最後に追加される2つ以上のデータ項目の連結として生成される任意のデータ項目を含むことを意図する。判定された参照ハッシュ値及び少なくともバージョン制御データレコードの一部から得られる組合せデータ項目は、少なくとも参照ハッシュ値の関数として及び少なくともバージョン制御データレコードの一部の関数として生成される。
いくつかの実施形態において、バージョン制御データレコードの完全性が保護される。
いくつかの実施形態において、バージョン制御データレコードにはバージョンカウンタが含まれ、参照メッセージ認証コード値を計算することには、判定された監査ハッシュ値と少なくともバージョンカウンタとから得られる組合せデータ項目から参照メッセージ認証コード値を計算することが含まれる。
いくつかの実施形態において、バージョン制御データレコードには、ペイロード・データ項目の現在のバージョンを置換してもよい先のバージョン数を識別するバックカウンタが含まれる。それにより、上位互換性を制御する機構を含む単純で効率的なバージョン制御機構が提供される。いくつかの実施形態において、参照メッセージ認証コード値を計算する工程には、判定された参照ハッシュ値と少なくともバックカウンタとから得られる組合せデータ項目から参照メッセージ認証コード値を計算する工程が含まれる。
別の実施形態において、バージョン制御データレコードは、データ項目の現在のバージョンに対する参照ハッシュ値を更に含み、それによりデータ項目のコンパクトな「指紋」を提供する。
いくつかの実施形態において、デジタル処理装置のみが秘密鍵を知っている。更に、秘密鍵は、データ処理装置に固有の秘密データ項目であってもよい。
いくつかの実施形態において、ペイロード・データは、最初に説明した方法によりロードされる。それにより、セキュリティ上安全なロード及び格納をセキュリティ上安全なバージョン制御と効率的に組み合わせる。
更に別の実施形態において、方法は、
−先に受信した現在のデータ項目のデルタ更新を受信する工程と、
−先に受信した現在のデータ項目と受信したデルタ更新とから、更新されたデータ項目としてデータ項目を生成する工程と、
を更に備える。
更に別の実施形態において、方法は、バージョン制御データレコードを生成することと、バージョン制御データ構造にバージョン制御データレコードを格納することとを更に含み、後続するメモリ監査に対して利用可能にする。
別の側面において、データ処理装置に格納されたデータ項目の現在のバージョンの完全性を検証する方法は、
−前記データ項目の監査ハッシュ値を計算する工程と、
−前記データ処理装置に格納された秘密鍵を使用して、前記計算された監査ハッシュ値から監査メッセージ認証コード値を計算する工程と、
−前記計算された監査メッセージ認証コード値と、前記データ項目と関連づけて格納された参照メッセージ認証コード値とを比較する工程と、
を備える。
この側面においては、方法は、バージョン制御データレコードを検索する工程を更に備え、
前記バージョン制御データレコードには、前記データ項目の前記現在のバージョンに関するバージョン制御情報が含まれ、
前記監査メッセージ認証コード値を計算する工程には、前記計算された監査ハッシュ値と少なくとも前記バージョン制御データレコードの一部とから得られる、組合せデータ項目から監査メッセージ認証コード値を計算する工程が含まれる。
本発明は、上述され且つ以下に説明される方法、対応する装置及びコンピュータプログラムを含む種々の面に関する。それら方法、装置及びコンピュータプログラムの各々は、上述の方法の1つと関連して説明された1つ以上の利点及び特長をもたらし、上述の方法の1つと関連して説明された実施形態に対応する1つ以上の実施形態を有する。
更に詳細には、別の面によると、データ処理装置は、上述され且つ以下に説明されるデータ処理装置にデータをロードする方法を実行できる第1の処理回路を具備する。
特に、本明細書において説明されるセキュリティ機構は、マルチチップアーキテクチャを有する装置に有利に適用されてもよいことが分かる。特に、2つのチップのうち第1のチップが第2のチップを介してメモリにアクセスする場合、データの信頼性及びメモリコンテンツの完全性を保証することが第1のチップにとって特に重要である。
従って、いくつかの実施形態において、データ処理装置は、受信したペイロード・データ項目を格納できる格納手段と、格納手段及び第1の処理回路に接続された第2の処理回路とを更に具備し、第2の処理回路は、少なくとも格納手段に対する読み出しアクセスを第1の処理回路に提供できる。
更なる実施形態において、第1の処理回路は、非対称暗号方式のルート公開鍵を格納するローカル格納手段を含む。更なる実施形態において、第1の処理回路は、前記秘密鍵を格納するローカル格納手段を含む。それにより、データ信頼性及び完全性機構において使用される暗号鍵の第1のチップの制御下でセキュリティ上安全な格納を提供する。
別の側面によると、データ処理装置は、データ項目の現在のバージョン及びバージョン制御データレコードを格納する格納手段と処理手段を備え、バージョン制御データレコードは、データ項目の現在のバージョンに関するバージョン制御情報を含み、処理手段は、上述され且つ以下に説明されるデータ項目の現在のバージョンの完全性を検証する方法を実行できる。
尚、上述され且つ以下に説明される方法の特徴は、ソフトウェアにおいて実現されてもよく、コンピュータ実行可能命令等のプログラムコード手段の実行によりデータ処理装置又は他の処理手段において実行されてもよい。以降、用語「処理手段」には、上記機能を適切に実行できる任意の回路と装置との少なくともいずれかが含まれる。特に、上記用語は、汎用又は専用プログラマブルマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、専用電子回路等、あるいはそれらの組合せを含む。
別の側面によると、コンピュータプログラムがデータ処理装置上で実行される場合、前記コンピュータプログラムは、上述され且つ以下に説明される方法のステップをデータ処理装置に実行させるプログラムコード手段を含む。
例えば、プログラムコード手段は、コンピュータネットワークを介して記憶媒体又は別のコンピュータからRAM(ランダムアクセスメモリ)等のメモリにロードされてもよい。あるいは、説明された特徴は、ソフトウェアの代わりに又はソフトウェアと組み合わせてハードウェア回路網により実現されてもよい。
上記面及び他の面は、図面を参照して以下に説明される実施形態から明らかとなるだろう。
図1は、データを移動端末にロードするシステムを示す概略ブロック図である。システムは、ローディング装置101及び移動端末102を含む。
ローディング装置は、適切な通信インタフェースを含むPC等の従来の適切にプログラムされたコンピュータであってもよい。いくつかの実施形態において、ローディング装置は、ロードされるソフトウェアバージョンや構成データ等のペイロード・データを生成してもよい。特に、ローディング装置は、ペイロード・データと共にロードされる証明書及びデジタル署名を生成してもよい。他の実施形態において、ローディング装置は、パーソナルコンピュータ、ワークステーション、ネットワークサーバ等のリモートコンピュータからペイロード・データ及びヘッダ情報を受信する。データは、例えばフロッピディスク、CD ROM等のコンピュータ可読媒体上に、インターネット、ローカルエリアネットワーク、イントラネット、エクストラネット等のコンピュータネットワークを介して又は他の適切な手段により受信されてもよい。本実施形態において、署名の計算及び証明書の生成は、ローディング装置ではなくリモートコンピュータにより実行されてもよい。ローディング装置は、移動端末と協働して移動端末へのデータのロードを実行する。
移動端末102は、通信インタフェース104を含む。通信インタフェース104は、移動端末が直接データリンク又は通信ネットワーク等の有線又は無線通信リンクを介してローディング装置とデータを通信することを可能にするのに適した装置と回路網との少なくともいずれかを含む。例えば、データは、Bluetooth接続又は赤外線接続等のローカル狭域無線通信リンクを介して、あるいは有線インタフェースを介してロードされてもよい。他の実施形態において、データは、GSM WCDMA等の携帯通信網を介するOTA(over-the-air)等の通信網を介して移動端末にロードされてもよい。
従って、適切な通信ユニットの例には、IEEE1394規格等で説明されるようなRS−232リンク、USB接続、FireWire接続等の有線シリアル接続が含まれる。更なる例として、携帯電話(不図示)のメインアンテナ又はBluetoothトランシーバ等の携帯電話内の別のアンテナ等のRFインタフェース又は無線赤外線インタフェースを含む。適切なインタフェースの他の例は、ケーブルモデム、電話モデム、統合デジタル通信網(ISDN)アダプタ、デジタル加入者回線(DSL)アダプタ、衛星トランシーバ又はイーサネット(登録商標)アダプタを含む。
移動端末は、移動端末の動作を制御する処理ユニット105及びメモリ106を更に含む。例えば、処理ユニットは、汎用又は専用プログラマブルマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)又はそれらの組合せを含んでもよい。メモリ106は、不揮発性メモリ等のフラッシュメモリ、EPROM、EEPROM、あるいは任意の他の種類のメモリ又は記憶装置であってもよい。
データが移動端末にロードされる場合、処理ユニット105は、本明細書において説明されるデータ認証及び完全性保護を実行し、データをメモリ106に格納する。
移動端末の後続の動作中に、処理ユニットは、ロードされたデータをメモリ106から検索できる。例えばソフトウェアの場合、処理ユニットは、実行するためにソフトウェアをメモリ106からRAMにロードする。
図2は、シングルチップアーキテクチャを有する移動端末の一例を示すブロック図である。移動端末101は、移動端末の動作を制御する制御器105を含む。制御器105は、フラッシュプログラムメモリ106及びランダムアクセスメモリ(RAM)209と連携して動作する。制御器105は、マイクロプロセッサ208、内部読み出し専用メモリ(ROM)207及びセキュリティ上安全に格納された秘密鍵218を含む。例えば、秘密鍵218は、例えばいわゆるe-fuse技術を使用してハードウェアに格納されたチップ固有の鍵であってもよい。あるいは、秘密鍵はROM207に格納されてもよい。ROM207は、ブートコード、ハッシュコード、MACコード、認証コード及び公開ルート鍵を含む。いくつかの実施形態において、ハッシュコード及び/又はMACコードは、ROMに実装される代わりに又はそれに加えて少なくとも部分的にハードウェアに実装されてもよい。携帯電話の一般的な動作に関わる命令コードは、フラッシュプログラムメモリ106に含まれる。RAMメモリ209は、正常な移動端末通話処理の一部である動作に対して使用される。いくつかの実施形態において、感知可能データ、ハッシュ値の計算及び認証処理を含む動作は、マイクロコントローラ105に含まれる保護スタティックランダムアクセスメモリ(PSRAM)(不図示)と連携して実行される。制御器105は、メモリバス219を介してフラッシュプログラムメモリ106及びRAM209と通信する。
図3は、2チップアーキテクチャを有する移動端末の一例を示す概略ブロック図である。本実施形態において、制御器105は、2つのチップ310及び313、外部メモリ106、並びに内部メモリ209を含む。2つのチップは、少なくとも1つのマイクロプロセッサ312及び315、並びにROM311及び314をそれぞれ含む。外部メモリ106は、任意の適切な種類の不揮発性メモリであり、例えばフラッシュメモリである。内部メモリ209は高速アクセスメモリであり、例えばRAMである。図3の実施形態において、2つのチップは、内部メモリ209を共有する。更に、本実施形態において、チップ313のみが外部メモリ106に直接アクセスする。従って、チップ310のプロセッサ312が外部メモリ106に格納されたソフトウェアを実行する場合、実行されるソフトウェアは、実行される前にチップ313を介して内部メモリ209にロードされる。本実施形態において、ROM311及び314の双方がブートコードを含むが、ROM311のみがハッシュコード、MACコード、認証コード及び公開ルート鍵を含み、チップ310のみが秘密鍵318を含む。上述のように、秘密鍵318は、例えばいわゆるe-fuse技術を使用してハードウェアに格納されてもよい。あるいは、秘密鍵はROM311に格納されてもよい。更に、いくつかの実施形態において、ハッシュコードとMACコードとの少なくともいずれかは、ROMに実装される代わりに又はそれに加えて少なくとも部分的にハードウェアに実装されてもよい。
図4は、2チップアーキテクチャを有する移動端末の別の例を示す概略ブロック図である。本実施形態は、本実施形態の2つのチップ310及び313が共通の内部メモリを共有しないことを除いて図3の実施形態と同様である。各チップは、各々の内部メモリ416及び417を有する。図3の実施形態と同様に、チップ313のみが外部メモリ106に直接アクセスする。従って、チップ310のプロセッサ312が外部メモリ106に格納されたソフトウェアを実行する場合、実行されるソフトウェアは、実行される前にチップ313を介してチップ310の内部メモリ416にロードされる。
共有の又は個別のRAM(ランダムアクセスメモリ)を含む別の2チップの実施形態において、双方のチップは、外部不揮発性メモリに直接アクセスし、実行されるソフトウェアをメモリから直接実行してもよく、あるいは最初にRAMにロードして、その後実行してもよい。
図5は、ソフトウェアを移動端末にロードするロード処理において使用されるメッセージ構成の一例を示す。メッセージ520は、ヘッダセクション521、ペイロードセクション522、デジタル証明書セクション523及びデジタル署名524を含む。
ペイロードセクション522は、移動端末にロードされる実際のペイロード・データを含む。ペイロード・データは、アプリケーションソフトウェア、他のソフトウェアのロードを管理及び/又は制御するためのプリローダソフトウェア、あるいは移動端末のオペレーティングシステムの一部等のソフトウェアを含んでもよい。あるいは又はそれに加えて、ペイロード・データは、フラッシュメモリ、あるいはEPROM又はEEPROM等の移動端末の他のメモリに格納する構成データ等の他のデータを含んでもよい。
ヘッダセクション521は、バージョン制御データ等のペイロード・データに関する情報、移動端末に関する情報及び/又は移動端末のデータ処理方法を判定する制御パラメータ等のロード処理に関連する情報を含む。
署名セクションは、ペイロード522のデジタル署名を含む。デジタル署名は、RSA(Rivest、Shamir及びAdleman)方式等の非対称暗号方式の1組の公開鍵/秘密鍵を使用して計算される。デジタル署名は、ペイロード・データの一方向ハッシュ関数、すなわち移動端末にロードされるソフトウェア及び/又はデータの一方向ハッシュ関数を最初に計算することにより計算される。計算されたハッシュ値は、1組の公開鍵/秘密鍵の秘密鍵を使用して暗号化される。
一方向ハッシュ関数は、ペイロード・データ522のハッシュ値の例を得るのに使用される。公開鍵/秘密鍵方式は、有効なハッシュ値に対してセキュリティを提供し且つメッセージ520を送信するデータ転送装置又はローディング装置を認証するために使用される。
一方向ハッシュ関数は、順方向の演算が容易であり且つ逆方向の演算が困難な関数である。一方向ハッシュ関数H(M)は、任意の長さの入力Mに作用する。いくつかの実施形態において、Mは、ペイロード・データ522又はペイロード・データの選択された部分により構成される。Mに対して実行されるハッシュ関数は、固定の長さのハッシュ値h=H(M)を返す。
任意の長さの入力を使用し且つ固定の長さの出力を返す関数が多く存在するが、一方向ハッシュ関数は以下の追加の特性を有する。Mを与えた場合にhを演算するのは容易であるが、hを与えた場合にMを演算するのは困難であり、Mを与えた場合にH(M)=H(M’)となるような他のメッセージM’を見つけるのは困難である。一方向ハッシュの目的は、Mの「指紋」又は固有の署名を提供することである。ハッシュ関数の出力は、ハッシュ値又はメッセージダイジェストと呼ばれる。
本明細書において説明される方法の実施形態において、移動端末にメッセージ520を送信する前に、セキュリティ上安全な一方向ハッシュ関数は、ペイロード・データ522又はペイロード・データ522の選択されたコンテンツに対して実行され、参照ハッシュ値を生成する。以下に更に説明するように、参照ハッシュ値は、デジタル署名としてメッセージ520に含まれる。メッセージ520を受信すると、移動端末は、ペイロード・データ522(又はペイロード・データ522の選択されたコンテンツ)の監査ハッシュ値を計算し、メッセージ520の一部として受信された参照ハッシュ値と監査ハッシュ値を比較する。
適切な一方向ハッシュ関数は、例えばSHA−1関数である。適切な関数の他の例は、MD5アルゴリズム、Snerfu、H−Hash、MD2又はMD4等を含む。
公開鍵アルゴリズムは、メッセージの暗号化及び復号化、メッセージ認証、並びにデジタル署名等のタスクに対して、2つの鍵、すなわち非公開に保持される(秘密の)鍵と公開されて利用可能な鍵とを使用する。送信者が秘密鍵でメッセージを暗号化する場合、秘密鍵を所有してる送信者のみがメッセージを暗号化できたため、対応する公開鍵を有する任意の受信者は送信者の信頼性を保証される。本明細書において説明されるロード処理に従ってペイロード・データを認証するのに利用されるのは後者の方式である。適切な公開鍵アルゴリズムはRSAアルゴリムである。他の適切な例は、Fiat−Shamir(FS)アルゴリズム、ELGAMAL、DSA又はFiega−Fiat−Shamir等を含む。
特に、本明細書において説明されるロード処理において、計算されたハッシュ値は、ローディング装置(又はペイロードの発生器)の秘密鍵で暗号化され、メッセージ520に含まれるデジタル署名524を生成する。
対応する公開鍵は、メッセージ520のデジタル証明書セクション523に含まれる証明書に含まれる。デジタル証明書は、特定の認証された個人を特定の公開鍵に結び付ける公開鍵方式において使用されるデータ構造である。デジタル証明書は情報のデジタル表現であり、その情報は、デジタル証明書を発行する認証機関を識別し、公開鍵が含まれる個人に名前を付けるか又はその個人を識別し、且つ個人の公開鍵を含む。デジタル証明書はデジタル証明書を発行する認証機関によりデジタル署名され、それにより、受信者は認証機関の公開鍵を使用することにより証明書を認証できる。
デジタル証明書セクションは、単一のデジタル証明書を含んでもよく、あるいは証明書のチェーンを含んでもよいことが理解される。いずれの場合においても、証明書又は証明書のチェーンは、単一の証明書又は証明書チェーンの最後の証明書に対応するルート公開鍵を使用して移動端末により認証される。国際公開第WO03/060673号において、ソフトウェアの移動電話へのロードに関連する鍵階層の一例が説明される。
いくつかの実施形態において、例えば国際公開第WO03/060673号において説明されるように、ペイロードはデジタル署名を計算する目的で複数の小さな部分に分割されてもよく、あるいは署名のみが計算されてもよいことが理解される。
通常、ペイロード・データ522と共にヘッダデータ521を保護することが望ましい。いくつかの実施形態において、これは、デジタル署名によりヘッダデータ521自体を保護することにより達成される。他の実施形態において、計算されたハッシュ値の上述の暗号化は、例えばソフトウェア(及びデータ)522に対して計算されたハッシュ値h(SW)及びヘッダデータ521に対して計算されたハッシュ値h(H)の連結h(SW)|h(H)を暗号化/署名することによりヘッダデータ521に対して計算されたハッシュ値を暗号化することを更に含む。
図6は、ソフトウェアバージョンの最初のロードに対するソフトウェアロード処理を示すフローチャートである。
最初のステップ601において、上述したように、移動端末は、GSM、WCDMA等のローカルインタフェース又はリモートインタフェースを介して再プログラミングツールからソフトウェアデータパケットを受信する。図5と関連して上述したように、パケットは、新しいソフトウェアSW、1つ以上の証明書C、並びに保護されたソフトウェア及びデータのデジタル署名S(hr)を含む。オプションとして、新しいソフトウェアは構成データ等のデータを含んでもよい。署名S(hr)は、少なくともソフトウェア及びデータから計算された暗号化ハッシュ値を含む。まずソフトウェア及びデータSWの1方向ハッシュhr=H(SW)が計算され、次に少なくとも計算されたハッシュ値が1組のRSA公開鍵/秘密鍵等の1組の公開鍵/秘密鍵の秘密鍵を使用して暗号化されるように、署名は計算される。対応する公開鍵は、ソフトウェアデータパケットに含まれる証明書に含まれる。ソフトウェア及びデータパケットを受信すると、移動端末は、ソフトウェア、データ、証明書及び署名を外部メモリ106に格納する。図5と関連して上述したように、いくつかの実施形態において、署名は、例えばソフトウェアから計算されたハッシュ値とヘッダから計算されたハッシュ値との組合せを暗号化することにより、ペイロードだけでなくヘッダデータも保護してもよい。
ステップ602において、移動端末のプロセッサは、新しく格納されたソフトウェア及びデータSW、証明書C、並びに署名S(hr)を内部メモリに読み出す。
ステップ603において、プロセッサは、新しいソフトウェア及びデータSWの一方向監査ハッシュ値ha=H(SW)を計算する。
ステップ604において、プロセッサは、メモリ605からルート公開鍵PKを読み出す。いくつかの実施形態において、ルート公開鍵はセキュリティ上安全に格納される。すなわち、ルート公開鍵の完全性が保護される。一実施形態において、上述のように、ルート公開鍵はプロセッサの内部ROMに格納される。プロセッサは、ルート公開鍵PKを使用して新しいソフトウェア及びデータの署名S(hr)を検証する。1つの証明書のみが使用される場合、署名S(hr)は、証明書Cの公開鍵に対して検証される。その結果、証明書Cはルート公開鍵PKに対して検証される。いくつかの証明書が使用される場合、証明書のチェーン全体が検証される。そのような場合、チェーンの最後の証明書の署名がルート公開鍵に対して検証される。従って、ステップ604において、プロセッサは、新しいソフトウェア及びデータに署名するのに使用される公開鍵を検証する。検証が正常に行なわれた場合、プロセッサはステップ606に進み、署名を検証する。検証が正常に行なわれなかった場合、ソフトウェアロード処理は中止される。
ステップ606において、プロセッサは、ステップ604で検証された公開鍵を使用してソフトウェア及びデータのデジタル署名S(hr)を復号化し、参照ハッシュ値hrを結果として得る。
ステップ607において、復号化された署名、すなわち参照ハッシュ値hrは、ステップ603で計算された一方向監査ハッシュ値haに対して検証される。検証が正常に行なわれた場合、すなわち監査ハッシュ値haと参照ハッシュ値hrとが同等である場合、プロセッサはステップ608に進み、参照メッセージ認証コード(MAC)を計算する。値が同等でない場合、ソフトウェアロード処理は中止される。
ステップ608において、プロセッサは、検証された一方向ハッシュ値ha(=hr)及びチップ固有の鍵K(又はKから得られる値)をMAC計算関数に対する入力値として使用し、参照メッセージ認証コード値tr=MAC(ha;K)を結果として得る。MAC関数の出力値は、新しいソフトウェア及びデータの参照MAC値である。いくつかの実施形態において、チップ固有の鍵Kは、プロセッサのみがアクセス可能なセキュリティ上安全なメモリに格納される。例えば、固有の鍵Kは、例えばいわゆるe-fuse技術を使用して、製造工程中にチップに焼き付けられてもよい。メッセージ認証コードの実施形態については以下に説明する。プロセッサは、新しいソフトウェア及びデータSWと共に新しい参照MAC値trを外部メモリ106に格納する。オプションとして、証明書及びデジタル署名値は外部メモリから除去される。
上述のロード処理は、移動端末のプロセッサにより制御される。図3及び図4と関連して説明されたような2チップアーキテクチャにおいて、上記ステップはチップ311により実行され、チップ311はその後ソフトウェアを実行する。
受信データを認証する暗号化関数及び実際にはMAC関数は、上記ステップを実行するプロセッサの内部ROMに例えばブートコードの一部として格納される専用ソフトウェアにより実行されてもよい。
従って、この時点において、格納された参照MAC値は、プロセッサによるソフトウェア及びデータの後続の監査に対して利用可能である。例えば格納されたソフトウェアの完全性を検証するために、プロセッサは、チップ固有の鍵Kを使用して、格納されたソフトウェア及びデータの監査ハッシュ値h(SW)、並びに計算された監査ハッシュ値の監査MAC値ta=MAC(h(SW);K)を計算する。プロセッサは、計算された監査MAC値taを格納された参照MAC値trと比較する。2つの値が同等である場合、ソフトウェアの完全性が検証される。
例えば米国特許第6,026,293号公報において説明されるように、そのような監査は、移動端末のブート処理中及び/又はソフトウェアが実行される度及び/又は所定の時間間隔で周期的に実行されてもよい。
図7は、メッセージ認証コード(MAC)の一実施形態の計算を示す。MACは、可変長の入力M及び鍵Kを利用して固定の長さの出力t、いわゆるMAC値又はタグ値t=MAC(M;K)を生成する関数である。いくつかの実施形態において、Mの知識を有し且つKの値に関する情報を有さない侵入者にとって、同一のタグ値を有するMとは異なるメッセージM’を見つけるのが計算上困難(実行不可能)となるように、MACは規定される。更に、MAC関数は、メッセージMの知識を有し且つKの値に関する情報を有さない侵入者にとって正確なタグ値tを予測することが困難であるように規定されてもよい。本明細書において説明されるロード方法において、MACは、信頼性のない又はセキュリティ上安全でない媒体に格納されたデータの完全性をチェックするのに使用される。すなわち、この状況において、ペイロード・データを格納し且つ検索する場合、MACは、1つの装置、すなわち移動端末によってのみ使用される。いくつかの実施形態において、MAC関数は、暗号ハッシュ関数に基づき、特に上述のように受信したペイロード・データを認識するのに使用されるハッシュ関数Hに基づく。これにより、後続する完全性保護のためにMAC値を計算する場合、受信したペイロード・データの認証中に計算されたハッシュ値を再利用できるため、MAC値の演算に対する計算上の労力が大幅に減り、インストール時間が減少される。
図7は、MAC計算モジュールを示すブロック図である。MAC計算モジュールは、MAC関数計算機732を含む。MAC関数計算機732は、受信したペイロードに対する先の署名検証処理736の間に計算された検証ハッシュ値であるhを入力として受信する。すなわち、h=ha又はh=hrである。MAC関数732は、チップ固有の鍵Kから得られる秘密鍵K’を第2の入力として受信する。特に鍵K’は、例えばSHA−1等のハッシュ関数に基づく擬似ランダム関数である擬似ランダム関数731を使用して、チップ固有の鍵K及びモード識別子735から生成されてもよい。例えば、チップ固有の鍵Kは、チップのASIC製造中に生成される乱数であってもよい。マスタ鍵Kから鍵K’を得ることは、異なる鍵K’が、例えば異なる種類のソフトウェアを保護するために又はソフトウェアの異なる部分を保護するためになど、異なる目的で使用されてもよいという利点を有する。これにより暗号分離を保証し、方法の融通性を向上する。モード識別子735は、異なるモードの選択を可能にする。例えば、マルチチップの例において、異なるモードは、ソフトウェアの各目標チップに対して使用されてもよい。適切なMAC関数の例は、HMAC(メッセージ認証のための鍵付ハッシング)、例えばAES又はセキュリティ上安全な一方向ハッシュ関数を使用する暗号ブロック連鎖(CBC)MACを含む。例えばCBC−MACは、A.J. Menezes、P.C van Oorschot、S.A. Vanstoneによる「Handbook of Cryptology」353ページ、CRC Press、1997年に示される。ここで、AESブロック暗号化暗号文は、ブロック暗号文Eとして使用される。上述のように、MAC関数732は対応するタグ値tを生成する。
MAC値の無許可の演算を防止するために、MAC回路網は、正常な署名検証が演算前に行われた場合のみ、演算されたMAC値tを解放する。従って、MAC計算モジュールは、受信したペイロード・データのデジタル署名が正常に検証されたかを示す署名検証処理736から更なる入力733を受信する。ブロック734は、タグ値及び信号733を入力として受信し、ハッシュ値hが検証されたハッシュ値、すなわち信頼できるハッシュ値であることを信号733が示す場合に計算されたタグ値を解放する。例えば、図6の方法において、信号733はステップ607により生成される。
尚、MAC演算モジュールは、プロセッサチップ上の別個のMAC演算回路網として実現されてもよい。更に、演算されたMAC値と参照値との間の後続する比較は、MAC回路網に接続される比較回路の内部で実行される。更に、秘密鍵Kは、回路網の一部として格納されてもよい。従って、MAC演算の全体は専用回路に制限されてもよいため、演算されたMACの回路網外への露出/解放を必要としない。
図7のMAC計算は、セキュリティ上安全なバージョン制御を更に含み且つMAC演算への入力hの予測可能度をなくすように、計算上非常に安価に更に改善される。次に、MAC計算のこの別の実施形態について、図8及び図9を参照して説明する。
図8は、バージョン制御機構を含むメッセージ認証コードの別の実施形態の計算を示す。図9は、バージョン制御処理を示すフローチャートである。
MAC回路800の本実施形態によると、ブロック732におけるMAC演算は、4個組(rand,h,cnt,back_cnt)844に対して実行される。4個組844は、短い(例えば、64ビット)乱数randを含み、MAC演算への入力が署名検証処理736からの入力による完全な制御下にないことを保証する。4個組は、先の実施形態と同様に検証されたハッシュ値hを更に含む。最後に、4個組は、以下に説明されるバージョン制御機構のバージョン制御カウンタcnt及びバージョン制御バックカウンタback_cntを含む。HMAC又はCBC−MAC等のMAC関数732は、図7と関連して説明されたように秘密鍵K’を更に受信し、4個組及び秘密鍵K’からMAC値tを計算する。同様に、図7と関連して説明したように、計算されたタグ値tは、署名検証処理がハッシュ値hを検証したことを署名信号733が示す場合にのみ解放される。
4個組844は、先に受信したソフトウェアバージョンのバージョン制御リスト842を維持するバージョン制御モジュール841により生成される。特に、バージョン制御リスト842は、データレコードのリストを含む。ここで、各データレコードは、先に観察したハッシュ値に対応する4個組を含む。最後のハッシュ値を含むレコードは、実際にインストールされた/使用されているソフトウェアに対応するリスト842の最上位の要素と呼ばれる。
上述のように、バージョン制御モジュール841は、署名が正常に検証されたことを示すデジタル信号733及び検証されたハッシュ値hを署名検証処理から受信する。更に、バージョン制御モジュール841は、ソフトウェアバージョンカウンタcnt及び数back_cntを署名検証処理736から受信する。数back_cntは、所定のソフトウェアバージョンがインストールされてからインストールされてもよい先のバージョンの数を示す。例えば、back_cntは、0〜CMAXの間の数であってもよい。例えば、CMAX=15である。back_cnt=0は、新しいソフトウェアが先のバージョンと置換されることを許可しないことを意味する。従って、back_cntは、ロードされたソフトウェアの上位互換性及び下位互換性を制御する単純で効果的な機構を実現する。いくつかの実施形態において、cnt及びback_cntの値は、ロード処理中に受信されるソフトウェアパケットの一部として、例えば受信したソフトウェアパケットのヘッダセクションの一部として受信される。
ロード処理中に新しいハッシュh、新しいカウンタcnt、新しいback_cnt値及び信号733を署名検証処理736から受信すると(ステップ901)、バージョン制御モジュール841は、信号733を使用して、ハッシュ値hが署名検証処理736中に検証されたかを検証する(ステップ902)。ハッシュ値hが検証されなかった場合、バージョン制御モジュール841はhの値を保護する。すなわち、バージョン制御及びMAC計算処理が中止される。ハッシュ値の信頼性があることを信号733が示す場合、バージョン制御モジュール841はステップ903に進む。
ステップ903において、バージョン制御モジュール841は、受信したハッシュ値をバージョン制御リスト842のハッシュ値と比較する。受信したハッシュ値hがバージョン制御リスト842中の先のハッシュ値hprevの1つと同等である場合、バージョン制御モジュール841はステップ904に進む。同等でない場合、ステップ906に進む。
ステップ904において、すなわち受信したハッシュ値hが先のハッシュ値hprevの1つと同等である場合、処理は、対応する4個組(rand,h,cnt,back_cnt)prevを検索し、先のバージョンのカウンタ値cntprevが署名検証処理736から受信された値cnt及びback_cntにより規定される許容範囲内にあるかを判定する。いくつかの実施形態において、許容範囲は範囲[cnttop−back_cnt,∞)と定義される。ここで、cnttopは、リストの現在最上位にある要素のcnt値である。単純化するために、許容値の範囲に対して上限は存在しないと仮定する。しかし、他の実施形態において、上限が規定されてもよいことは理解される。
cntprevが許容範囲内にある場合、バージョン制御モジュール841は、構成要素randnew=バージョン制御モジュール841により生成された新しい乱数、hnew=h、cntnew=cntprev、back_cntnew=back_cntprevを含む新しい4個組(rand,h,cnt,back_cnt)newを生成し(ステップ905)、バージョン制御モジュールは、同一のh値を含む先の組を新しい組で置換し、新しい組を最上位の要素としてリストに設定する。
ステップ903のテストにより、hが先のハッシュ値の1つと同等でないことが示される場合、新しい乱数、ハッシュ値h及びカウンタは、許容されるback_cnt(hと関連付けられる)と共にバージョン制御リストに格納される(ステップ906)。この場合、新しい4個組(rand,h,cnt,back_cnt)newは、randnew=新しい乱数、hnew=h、cntnew=cnt、back_cntnew=min(back_cnt,cnt−min_allowed_version)に従って作成され、新しい組がリストの最上位の要素となる。ここで、min_allowed_versionは、更新リストの任意の組により現在許容される最小のバージョンである。エントリが更新リストの最上位に配置された後、min_allowed_versionは、cnttop−back_cnttopとして、すなわち最上位の要素のカウンタcnttop及びback_cntバージョンから再度演算される(ステップ907)。最後に、リストの全ての要素は、それらのback_cnt値が許容される最小のバージョンmin_allowed_versionより小さいバージョン番号を与えない可能な最大値となるように更新される(ステップ908)。リストが許容範囲外のバージョンを有するエントリを含む場合、そのエントリは削除される。
いくつかの実施形態において、MACチェック値(MACLIST)は、リスト中のエントリの無許可の操作を防止するためにバージョン制御リストと関連付けられ、それにより方法のセキュリティを更に向上させる。MACLIST値は、リストが更新された場合にのみ、すなわち正常な署名検証の後にのみ更新される。バージョン制御リストにアクセスする前/リストを使用する前に、現在のMACチェック値はMACLIST値に対してチェックされる。MACLIST値の無許可の演算を防止するために、正常な署名検証が演算の前に行なわれた場合のみ、MAC回路網は演算したMAC値を解放する(図7及び図8のブロック734により制御されるように)。
従って、この時点で、格納された参照MAC値及びバージョン制御リストは、プロセッサによるソフトウェア及びデータの後続する監査に対して利用可能である。例えば、格納されたソフトウェアの完全性を検証するために、プロセッサは、格納されたソフトウェア及びデータの監査ハッシュ値ha=h(SW)を計算し、バージョン制御リストから検索される値rand、cnt及びback_cntを含む監査組(rand,ha,cnt,back_cnt)を生成する。プロセッサは、これをもとに、チップ固有の鍵Kを使用して、計算された監査組の監査MAC値ta=MAC((rand,ha,cnt,back_cnt);K)を計算する。プロセッサは、計算された監査MAC値taを格納された参照MAC値trと比較する。2つの値が同等である場合、ソフトウェアの完全性は検証される。
上述のように、そのような監査は、移動端末のブート処理中及び/又はソフトウェアが実行される度及び/又は所定の時間間隔で周期的に実行されてもよい。
次に、上記処理について、一例として図10を参照して更に説明する。
図10は、サイズが3のバージョン制御リストが使用される場合、すなわちバージョン制御リストが3個組を格納できる場合のバージョン制御機構の一例を示す。この例において、署名検証処理から受信したハッシュ値h、バージョンカウンタcnt及びバックカウンタback_cntの以下の値(h,cnt,back_cnt)を含む8つのソフトウェアバージョンリリースのシーケンスが存在すると更に仮定する。
バージョン1:(H1,1,0)
バージョン2:(H2,2,1)
バージョン3:(H3,3,2)
バージョン4:(H4,4,3)
バージョン5:(H5,5,2)
バージョン6:(H6,6,3)
バージョン7:(H7,7,4)
バージョン8:(H8,8,4)。
上記バージョンが、適用されたなかったバージョン7を除くシーケンスに適用されたと更に仮定する。図10は、バージョン8のインストール後のバージョン制御リスト1001を示す。バージョン制御リスト1001の各行は、インストールされたバージョンの1つに対する対応する4個組を含む。リストの最上位の要素である行1002はバージョン8に対応し、行1003はバージョン6に対応し、行1004はバージョン5に対応する。R8、R6及びR5は、上述のようにバージョン制御モジュールにより生成された乱数である。バージョン8が適用された後、許容される最小のバージョンは4(バージョン8のcntが8であり且つバージョン8のback_cntが4であるため、8−4=4)であったため、min_allowed_version=4である。従って、リスト中の残りのエントリのback_cnt値は、バージョン8が追加された後の許容される最小のバージョンに対する制限を満足するためにバージョン8のインストール中に調整されている。特に、行1002のback_cnt値は2に設定され、行1003のback_cnt値は1に設定されている。バージョン8で更新する前、許容される最小のバージョンは3であったが、この値はバージョン8により4に増加されている。
図10は、バージョン7のインストール後のバージョン制御テーブル1011を更に示す。最初に、バージョン7のカウンタ値cntは7であり、すなわち現在のバージョンの許容範囲内にある。ハッシュ値H7は、バージョン制御リスト1001に存在していないため、新しいハッシュ値H7を含む新しい4個組1007は、バージョン制御テーブル1011の新しい最上位の要素1012として格納される。前の最上位の要素は、リストの下方に移動し、行1013に対応する。この時、バージョン6は行1014に配置されている。この例において、バージョン制御リストには3つの4個組に対する空間しか存在しないため、バージョン5はリストから除去される。現在許容される最小のバージョンの制限(min_allowed_version=4)を満足するために、新しい最上位の要素1012のback_cntの値は3に設定される。
図11は、ソフトウェアのアップグレードに対するソフトウェアロード処理を示すフローチャートである。処理は、最初にソフトウェアをロードする図6に示される処理と同様である。
最初のステップ1101において、上述のように、移動端末は、GSM、WCDMA等のローカルインタフェース又はリモートインタフェースを介して再プログラミングツールからソフトウェアアップグレードデータパケットを受信する。図5と関連して上述したように、パケットは、保護されたソフトウェアの新しいソフトウェアアップグレードΔ、1つ以上の証明書C及びデジタル署名S(hr)を含む。オプションとして、ソフトウェアは、更新された構成データ等のデータを更に含んでもよい。一実施形態において、新しいソフトウェアは、現在のソフトウェアに対する新しいソフトウェアの差異を含むいわゆるデルタファイルとしてロードされ、アップグレードパケットのサイズを減少する。デルタファイル技術は、従来技術において周知であり、例えばChristian Reichenbergerによる「Delta storage for arbitrary non-text files」Proc. Of the 3rd International Workshop on Software Configuration Management、144〜152ページ、ノルウェー、1991年6月において説明される。あるいは、他のアップグレードファイル生成方法が使用されてもよく、又は新しいソフトウェア全体が受信されてもよい。署名S(hr)は、新しいソフトウェアから計算される暗号化ハッシュ値を含む。まず新しいソフトウェアSWの一方向ハッシュhr=H(SW)が計算され、次にハッシュ値が1組のRSA公開鍵/秘密鍵等の1組の公開鍵/秘密鍵の秘密鍵を使用して暗号化される。対応する公開鍵は、ソフトウェアアップグレードパケットに含まれる証明書に含まれる。ソフトウェアアップグレードパケットを受信すると、移動端末は、ソフトウェアアップグレード、証明書及び署名を外部メモリ106に格納する。
ステップ1102において、移動端末のプロセッサは、新しく格納されたソフトウェアアップグレード、証明書C及び署名S(hr)を内部メモリに読み出す。
ステップ1122において、プロセッサはバージョン制御を実行する。移動端末は、新しいソフトウェアバージョンのソフトウェアバージョン番号をアップグレードパケットの一部として受信した。新しいソフトウェアイメージのソフトウェアバージョン番号は、外部メモリ(MACにより保護される)に格納された現在のソフトウェアのバージョン番号に対してチェックされる。新しいソフトウェアバージョン番号が旧ソフトウェアバージョン番号より小さい場合、移動端末は更新処理を中止する。別の実施形態において、図8及び図9に関連して説明されたバージョン制御処理が実行される。
ステップ1122のバージョン制御が正常に行なわれた場合、ステップ1123に進む。ステップ1123において、プロセッサは、受信したデルタファイルΔ及び外部メモリ(MACにより保護される)に格納された現在のソフトウェアバージョンSWprevから新しいソフトウェアSWnewを生成する。
ステップ1103において、プロセッサは、新しいソフトウェアSWnewの一方向監査ハッシュ値ha=H(SWnew)を計算する。
ステップ1104において、プロセッサはメモリ1105からルート公開鍵PKを読み出す。いくつかの実施形態において、ルート公開鍵はセキュリティ上安全に格納される。すなわち、ルート公開鍵の完全性が保護される。一実施形態において、上述のように、ルート公開鍵はプロセッサの内部ROMに格納される。プロセッサは、ルート公開鍵PKを使用して新しいソフトウェアの署名S(hr)を検証する。1つの証明書のみが使用される場合、署名S(hr)は証明書Cの公開鍵に対して検証される。その結果、証明書Cは、ルート公開鍵PKに対して検証される。いくつかの証明書が使用される場合、証明書のチェーン全体が検証される。この場合、チェーンの最後の証明書の署名がルート公開鍵に対して検証される。従ってステップ1104において、プロセッサは、新しいソフトウェアに署名するために使用される公開鍵を検証する。検証が正常に行なわれた場合、プロセッサはステップ1106に進み、署名を検証する。検証が正常に行なわれなかった場合、ソフトウェアロード処理は中止される。
ステップ1106において、プロセッサは、ステップ1104で検証された公開鍵を使用してソフトウェアのデジタル署名S(hr)を復号化し、参照ハッシュ値hrを結果として得る。
ステップ1107において、復号化された署名、すなわち参照ハッシュ値hrは、ステップ1103で計算された一方向監査ハッシュ値haに対して検証される。検証が正常に行なわれた場合、すなわち監査ハッシュ値haと参照ハッシュ値hrとが同等である場合、プロセッサはステップ1108に進み、参照メッセージ認証コード(MAC)を計算する。値が同等でない場合、ソフトウェアロード処理は中止される。
ステップ1108において、プロセッサは、検証された一方向ハッシュ値ha及びチップ固有の鍵K(又はKから得られる値)をMAC計算関数に対する入力値として使用し、参照メッセージ認証コード値tr=MAC(ha;K)を結果として得る。MAC関数の出力値は、新しいソフトウェアの参照MAC値である。いくつかの実施形態において、チップ固有の鍵Kは、例えばいわゆるe-fuse技術を使用して、製造工程中にチップに焼き付けられる。あるいは、鍵Kは、プロセッサのみがアクセス可能な別のセキュリティ上安全なメモリに格納される。メッセージ認証コードの実施形態については上述した。プロセッサは、新しいソフトウェアと共に新しい参照MAC値trを外部メモリ106に格納する。先のMAC値は削除される。オプションとして、証明書及びデジタル署名値は、外部メモリから除去される。新しいソフトウェアバージョンSWnewは外部メモリに格納され、旧ソフトウェアバージョンは削除される。
上述のロード処理は、移動端末のプロセッサにより制御される。図3及び図4と関連して説明されたような2チップアーキテクチャにおいて、上記ステップはチップ311により実行され、チップ311はその後ソフトウェアを実行する。
上述において、多くの異なるシステムに対するソフトウェアを保護する強力なソフトウェア署名機構が説明された。その機構は、セキュリティ上安全にソフトウェアを格納する対称鍵に基づく完全性保護機構と効率的に組み合わされる。SWがプラットフォームにインストールされると、対称鍵に基づく機構が使用され、先の演算から利点が得られる。更に、保護するための組合せ機構及びバージョン制御ソフトウェアが、本明細書において説明される。
不揮発性メモリが信頼できないCPUに接続され、SW更新を必要とする場合、格納の際に提供された完全性保護は、2CPUアーキテクチャに関して特に有利である。
いくつかの実施形態を詳細に説明し示したが、本発明はそれらに限定されず、以下の請求の範囲に規定される趣旨の範囲内で他の方法により実現されてもよい。
特に、実施形態は、データ処理装置の一例として移動端末を参照して主に説明された。しかし、本明細書において説明された方法、製品手段及び装置は、他のデータ処理装置に適用されてもよいことが理解される。
本明細書において説明された方法、製品手段及び装置は、いくつかの別個の要素を含むハードウェア及び適切にプログラムされたマイクロプロセッサにより実現される。いくつかの手段を列挙する装置の請求項において、それら手段のいくつかは、適切にプログラムされたマイクロプロセッサ又は1つ以上のデジタル信号プロセッサ等のハードウェアの全く同一の項目により実現される。ある特定の手段が相互に異なる独立請求項において示されるか又は異なる実施形態において説明されるが、利点を得るために、それら手段の組合せが使用されないということを示すわけではない。
尚、用語「具備する」は、本明細書において使用される場合、記載される特徴、数字、ステップ又は構成要素の存在を特定するために使用されるが、1つ以上の他の特徴、数字、ステップ、構成要素又はそれらの集合の存在又は追加を除外するわけではない。
データを移動端末にロードするシステムを示す概略ブロック図である。 シングルチップアーキテクチャを有する移動端末の一例を示す概略ブロック図である。 2チップアーキテクチャを有する移動端末の一例を示す概略ブロック図である。 2チップアーキテクチャを有する移動端末の別の例を示す概略ブロック図である。 ソフトウェアを移動端末にロードするロード処理において使用されるメッセージ構成の一例を示す図である。 ソフトウェアバージョンの最初のロードに対するソフトウェアロード処理を示すフローチャートである。 メッセージ認証コードの一実施形態の計算を示す図である。 バージョン制御機構を含むメッセージ認証コードの別の実施形態の計算を示す図である。 バージョン制御処理を示すフローチャートである。 バージョン制御機構の一例を示す図である。 ソフトウェアのアップグレードに対するソフトウェアロード処理を示すフローチャートである。

Claims (20)

  1. データ処理装置にデータをロードする方法であって、
    −前記データ処理装置がペイロード・データ項目を受信する工程と、
    前記データ処理装置が前記ペイロード・データ項目の信頼性を保証するために暗号認証処理を実行する工程と、
    前記データ処理装置が、認証し、受信した前記ペイロード・データ項目を前記データ処理装置に格納する工程と、
    前記データ処理装置が、格納した前記ペイロード・データ項目の完全性を保護する工程と、
    を備え、
    前記暗号認証処理を実行する工程には、少なくとも前記受信したデータ項目の監査ハッシュ値を計算する工程が含まれ、
    前記完全性を保護する工程には、前記暗号認証処理において計算された少なくとも前記監査ハッシュ値の参照メッセージ認証コード値を計算する工程が更に含まれ、
    前記メッセージ認証コード値計算する工程は、少なくとも前記ハッシュ値と前記データ処理装置に記憶された秘密鍵とからメッセージ認証コード値を計算するための回路を備えた計算モジュールにより実行され、前記計算モジュールは前記暗号認証処理の正常終了を示す前記暗号認証処理からの信号の受信に応じてのみ、計算されたメッセージ認証コード値を解放する、ことを特徴とする方法。
  2. 前記暗号認証処理には、
    −参照ハッシュ値を受信する工程と、
    −前記受信したペイロード・データ項目の信頼性を検証するために、前記受信した参照ハッシュ値と前記計算した監査ハッシュ値とを比較する工程と、
    が含まれる請求項1記載の方法。
  3. 前記暗号認証処理には、公開鍵暗号方式に基づいて前記データ項目にデジタル署名を行う工程が含まれる、請求項2記載の方法。
  4. 前記データ処理装置が、前記ペイロード・データ項目と、第1の公開鍵を含みデジタル署名されたデジタル証明書データ項目と、前記第1の公開鍵に対応する第1の秘密鍵を用いて暗号化された参照ハッシュ値を含むデジタル署名データ項目と、を受信する工程と、
    前記データ処理装置が、前記デジタル署名されたデジタル証明書データ項目を、前記データ処理装置に格納されたルート公開鍵に対して認証する工程と、
    前記データ処理装置が、前記デジタル署名データ項目を前記認証されたデジタル証明書に対して認証する工程と、
    前記データ処理装置が、前記受信したペイロード・データ項目の信頼性を検証するために、前記受信した参照ハッシュ値と前記計算した監査ハッシュ値とを比較する工程と、
    を備える請求項3記載の方法。
  5. 前記データ処理装置が、前記参照ハッシュ値を暗号的に認証する工程を更に備え、
    前記参照メッセージ認証コード値を計算する工程は、前記参照ハッシュ値が正常に認証された場合にのみ実行される、請求項3又は4記載の方法。
  6. 前記完全性を保護する工程には、前記計算した参照メッセージ認証コード値を、前記受信したペイロード・データ項目と関連づけて格納する工程が含まれる、請求項1から5のいずれか1項に記載の方法。
  7. 前記参照メッセージ認証コード値を計算する工程には、少なくとも前記監査ハッシュ値及び乱数から得られる組合せデータ項目の前記参照メッセージ認証コード値を計算する工程が更に含まれる、請求項1から6のいずれか1項に記載の方法。
  8. 前記参照メッセージ認証コード値を計算する工程には、少なくとも前記監査ハッシュ値及びバージョン制御データ項目から得られる組合せデータ項目の前記参照メッセージ認証コード値を計算する工程が更に含まれる、請求項1から7のいずれか1項に記載の方法。
  9. 前記データ処理装置が、バージョン制御データレコードをバージョン制御データ構造に格納する工程を更に含み、
    前記バージョン制御データレコードには、少なくとも前記バージョン制御データ項目を含む前記受信したペイロード・データ項目に関する情報が含まれる、請求項8記載の方法。
  10. 前記格納されたバージョン制御データレコードの完全性が保護される、請求項9記載の方法。
  11. 前記バージョン制御データレコードはバージョンカウンタを備える、請求項9又は10記載の方法。
  12. 前記バージョン制御データレコードは、前記ペイロード・データ項目の現在のバージョンを置換してもよい先のバージョン数を識別するバックカウンタを更に備える、請求項11記載の方法。
  13. 前記秘密鍵は、前記データ処理装置に固有の秘密データ項目である、請求項1から12のいずれか1項に記載の方法。
  14. 前記秘密鍵は、前記データ処理装置のみが知る秘密データ項目である、請求項1から13のいずれか1項に記載の方法。
  15. 前記ペイロード・データ項目を受信する工程には、
    先に受信した現在のデータ項目のデルタ更新を受信する工程と、
    前記先に受信した現在のデータ項目と前記受信したデルタ更新とから、更新されたペイロード・データ項目として前記ペイロード・データ項目を生成する工程と、
    が含まれる請求項1から14のいずれか1項に記載の方法。
  16. 当該コンピュータプログラムがデータ処理装置上で実行された場合、請求項1から15のいずれか1項に記載の方法のステップを前記データ処理装置に実行させるプログラムコード手段を備える、コンピュータプログラム。
  17. −ペイロード・データ項目を受信する工程と、
    −前記ペイロード・データ項目の信頼性を保証するために暗号認証処理を実行する工程と、
    −前記データ処理装置において、認証し、受信した前記ペイロード・データ項目を格納する工程と、
    −格納した前記ペイロード・データ項目の完全性を保護する工程と、
    の各工程を実行する第1の処理回路を備えるデータ処理装置であって、
    前記暗号認証処理を実行する工程には、少なくとも前記受信したデータ項目の監査ハッシュ値を計算する工程が含まれ、
    前記完全性を保護する工程には、前記暗号認証処理において計算された少なくとも前記監査ハッシュ値の参照メッセージ認証コード値を計算する工程が更に含まれ、
    前記メッセージ認証コード値を計算する工程は、少なくとも前記ハッシュ値と前記データ処理装置に記憶された秘密鍵とからメッセージ認証コード値を計算するための回路を備えた計算モジュールにより実行され、前記計算モジュールは前記暗号認証処理の正常終了を示す前記暗号認証処理からの信号の受信に応じてのみ、計算されたメッセージ認証コード値を発行する、ことを特徴とするデータ処理装置。
  18. 前記受信したペイロード・データ項目を格納する格納手段と、
    前記格納手段及び前記第1の処理回路に接続される第2の処理回路と、
    を更に備え、
    前記第2の処理回路は、少なくとも前記格納手段に対する読み出しアクセスを前記第1の処理回路に提供する
    請求項17記載のデータ処理装置。
  19. 前記第1の処理回路は、非対称暗号方式のルート公開鍵を格納するローカル格納手段を備える、請求項17又は18記載のデータ処理装置。
  20. 前記第1の処理回路は、前記秘密鍵を格納するローカル格納手段を備える、請求項17から19のいずれか1項に記載のデータ処理装置。
JP2007535036A 2004-10-11 2005-09-07 データ処理装置へのデータのセキュリティ上安全なロード及び格納 Expired - Lifetime JP4856080B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP04388069.9 2004-10-11
EP04388069A EP1645931A1 (en) 2004-10-11 2004-10-11 Secure loading and storing of data in a data processing device
US61803704P 2004-10-12 2004-10-12
US60/618,037 2004-10-12
PCT/EP2005/009624 WO2006039967A1 (en) 2004-10-11 2005-09-07 Secure loading and storing of data in a data processing device

Publications (2)

Publication Number Publication Date
JP2008516317A JP2008516317A (ja) 2008-05-15
JP4856080B2 true JP4856080B2 (ja) 2012-01-18

Family

ID=34931962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007535036A Expired - Lifetime JP4856080B2 (ja) 2004-10-11 2005-09-07 データ処理装置へのデータのセキュリティ上安全なロード及び格納

Country Status (4)

Country Link
EP (1) EP1645931A1 (ja)
JP (1) JP4856080B2 (ja)
CN (1) CN101073045A (ja)
ZA (1) ZA200703608B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3486832A1 (en) 2017-11-21 2019-05-22 Renesas Electronics Corporation Semiconductor device, authentication system, and authentication method

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0601849D0 (en) 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
KR100780362B1 (ko) * 2006-10-27 2007-11-30 삼성전자주식회사 휴대용 단말기에서 소프트웨어 다운로드 방법 및 장치
US20080148001A1 (en) * 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming
US7934197B2 (en) 2006-12-19 2011-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Maintaining code integrity in a central software development system
US8064597B2 (en) 2007-04-20 2011-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for mobile device credentialing
CN102982274B (zh) * 2007-06-20 2015-12-02 华为技术有限公司 智能终端系统的管理方法和智能终端
IL187039A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure overlay manager protection
GB0724436D0 (en) * 2007-12-14 2008-01-30 Icera Inc Method of encryping chip identifier
US8407769B2 (en) 2008-02-22 2013-03-26 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for wireless device registration
US8553883B2 (en) 2008-02-22 2013-10-08 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for managing subscription credentials in a wireless communication device
US20090290714A1 (en) * 2008-05-20 2009-11-26 Microsoft Corporation Protocol for Verifying Integrity of Remote Data
CN101355428B (zh) * 2008-09-11 2010-12-08 上海交通大学 采用增量检验来保护数据完整性的方法
JP5442877B2 (ja) * 2010-12-28 2014-03-12 三洋電機株式会社 端末装置
US9571489B2 (en) 2011-08-12 2017-02-14 Sony Corporation System and method for performing commands from a remote source
CN103259672B (zh) * 2012-02-17 2016-09-28 阿里巴巴集团控股有限公司 软件升级方法和系统
CN102833101B (zh) * 2012-08-22 2015-06-17 瑞斯康达科技发展股份有限公司 一种分布式网络系统的软件升级方法及设备
DE112014002673T5 (de) 2013-06-04 2016-02-25 Mitsubishi Electric Corporation Daten-Authentifizierungs-Vorrichtung und Daten-Authentifizierungs-Verfahren
CN103763336B (zh) * 2013-11-29 2017-04-12 北京中启智源数字信息技术有限责任公司 一种面向复杂网络架构的软件更新方法
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
US9697359B2 (en) 2015-04-15 2017-07-04 Qualcomm Incorporated Secure software authentication and verification
US11367077B2 (en) 2015-06-11 2022-06-21 Idid Tecnologia Ltda Antifraud resilient transaction identifier datastructure apparatuses, methods and systems
US11715109B2 (en) 2015-06-11 2023-08-01 Idid Tecnologia Ltda Point of sale apparatuses, methods and systems
JP6560604B2 (ja) * 2015-12-08 2019-08-14 Kddi株式会社 管理装置、管理方法、及びプログラム
DE102016106819A1 (de) * 2016-04-11 2017-10-26 Endress+Hauser Conducta Gmbh+Co. Kg Verfahren zur Aktualisierung einer Firmware-Komponente und Gerät der Mess- und Regeltechnik
JP7342809B2 (ja) * 2020-07-02 2023-09-12 トヨタ自動車株式会社 情報処理システム及び情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198543A (ja) * 2001-12-28 2003-07-11 Canon Inc 画像検証システム、画像検証装置、画像検証方法、プログラムおよび記録媒体
WO2003100583A1 (en) * 2002-05-28 2003-12-04 Symbian Limited Tamper evident removable media storing executable code
US20040025010A1 (en) * 2002-07-30 2004-02-05 Texas Instruments Incorporated Computing platform certificate

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
AU6759998A (en) * 1997-03-06 1998-09-22 Skylight Software, Inc. Cryptographic digital identity method
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
KR100455566B1 (ko) * 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 코드 갱신을 위한 장치 및 방법
US7069445B2 (en) * 2001-11-30 2006-06-27 Lenovo (Singapore) Pte. Ltd System and method for migration of a version of a bootable program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198543A (ja) * 2001-12-28 2003-07-11 Canon Inc 画像検証システム、画像検証装置、画像検証方法、プログラムおよび記録媒体
WO2003100583A1 (en) * 2002-05-28 2003-12-04 Symbian Limited Tamper evident removable media storing executable code
US20040025010A1 (en) * 2002-07-30 2004-02-05 Texas Instruments Incorporated Computing platform certificate

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3486832A1 (en) 2017-11-21 2019-05-22 Renesas Electronics Corporation Semiconductor device, authentication system, and authentication method
US10949527B2 (en) 2017-11-21 2021-03-16 Renesas Electronics Corporation Semiconductor device, authentication system, and authentication method

Also Published As

Publication number Publication date
ZA200703608B (en) 2008-08-27
JP2008516317A (ja) 2008-05-15
EP1645931A1 (en) 2006-04-12
CN101073045A (zh) 2007-11-14

Similar Documents

Publication Publication Date Title
JP4856080B2 (ja) データ処理装置へのデータのセキュリティ上安全なロード及び格納
US8627086B2 (en) Secure loading and storing of data in a data processing device
US11361087B2 (en) Security data processing device
JP4814083B2 (ja) 暗号を使ってソフトウェアをハードウェアに関連付けること
JP4854677B2 (ja) 処理デバイスのメモリコンテンツの更新
CN101213814B (zh) 安全修补系统
US20200252207A1 (en) Software encryption
JP4501349B2 (ja) システムモジュール実行装置
US20100005304A1 (en) Security and ticketing system control and management
US8751811B2 (en) Integrated circuit and system for installing computer code thereon
TW201516733A (zh) 用以核對uefi認證變量變化之系統及方法
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
CN117642742A (zh) 用于向更新代理提供软件更新的认证方案
CN114448794B (zh) 一种基于芯片可信根对固件进行安全升级的方法及装置
US8335317B2 (en) Secure interface for versatile key derivation function support
RU2408071C2 (ru) Защищенные загрузка и хранение данных в устройстве обработки данных
CN120455013A (zh) 一种软件包的处理方法、设备、介质及程序产品
CN111369332B (zh) 基于区块链的数据处理方法及装置
CN101099327B (zh) 用于通用密钥导出函数支持的安全接口
Bin et al. Research and design of Bootrom supporting secure boot mode
CN120639302A (zh) 经由退化密钥的数据完整性验证
HK1115208A (en) Secure loading and storing of data in a data processing device
KR20240158217A (ko) 전자 디바이스의 소유권 관리
CN121682809A (zh) 片上系统、安全启动验证方法、芯片及设备
JP2021026585A (ja) 電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110914

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

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

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4856080

Country of ref document: JP

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term