JP4854677B2 - 処理デバイスのメモリコンテンツの更新 - Google Patents

処理デバイスのメモリコンテンツの更新 Download PDF

Info

Publication number
JP4854677B2
JP4854677B2 JP2007549817A JP2007549817A JP4854677B2 JP 4854677 B2 JP4854677 B2 JP 4854677B2 JP 2007549817 A JP2007549817 A JP 2007549817A JP 2007549817 A JP2007549817 A JP 2007549817A JP 4854677 B2 JP4854677 B2 JP 4854677B2
Authority
JP
Japan
Prior art keywords
memory
integrity protection
protection data
data item
content
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
JP2007549817A
Other languages
English (en)
Other versions
JP2008527510A (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 JP2008527510A publication Critical patent/JP2008527510A/ja
Application granted granted Critical
Publication of JP4854677B2 publication Critical patent/JP4854677B2/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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

処理デバイスのメモリコンテンツを更新するための方法、製品手段、及びデバイスが開示される。
携帯電話のような埋め込み型システム及び他のデータ処理デバイスは、正しいソフトウェア(許可されていない方法で操作されたものでない)の実行に依存する。ソフトウェアの操作により、デバイスが正しくない振る舞いをする、又はデバイスの基本的なセキュリティ機能が壊れることがある。したがって、デバイスのソフトウェアを保護することが特に重要なこととなる。これは、たとえば、プログラムを保護されたメモリ内に格納することによって達成され得る。メモリは、違法アクセスから物理的に保護されるか、又は暗号方式によって保護されるかのいずれかであり得る。実際には、良い物理的な保護を用いてメモリを作成すること及び特にメモリインターフェースを保護することは、困難であるか又は高価である。したがって、最も魅力的なソリューションは、メモリ内に格納されているソフトウェアについて、いくつかの種類の暗号保護を使用することである。
さらに、かなり小さいシステム用のソフトウェアがますます複雑なものになってきており、これにより、ソフトウェアのライフサイクル中の特に早期のリリースにおいて、エラーの危険性及び意図せぬ機能が増加している。さらに、早期のソフトウェアリリースの機能は、通常、限られている。したがって、埋め込み型デバイス内に格納されているソフトウェアの頻繁な更新の必要性が増加している。
データ処理デバイスのソフトウェアの、頻繁な更新の必要性及び十分な保護を実現したいという要求により、記憶装置にあるデータ処理デバイスのソフトウェアを保護し、かつ安全なソフトウェアアップグレードを可能にする、セキュリティソリューションの必要性が生じる。米国特許第6,026,293号明細書では、電子デバイスにおいて電子メモリの改ざんを防止する方法について開示している。この先行技術による方法によれば、電子デバイスがデータ転送デバイスによって再プログラムされる場合には、電子デバイスは、公開/秘密鍵ベースのチャレンジレスポンス認証方式(challenge-response authentication scheme)を始動して、そのデータ転送デバイスを認証する。データ転送デバイスは、認証されると、メモリを再プログラムするためのアクセスが許可される。メモリの再プログラミングに続いて、電子デバイスは、修正されたメモリコンテンツのハッシュ計算を遂行する。計算されたハッシュ値は、デジタル署名のためにデータ転送デバイスに送信され、署名されたハッシュ値は、電子デバイスに戻されて格納される。署名されたハッシュ値は、その後、たとえば起動中に又は周期的に、メモリコンテンツの完全性(the integrity)を監査するのに使用される。
たとえ、上記の先行技術による方法により、ローディング段階中の認証保護及び電子デバイスのメモリコンテンツの完全性保護の両方が実現されたとしても、完全性保護メカニズムのセキュリティを向上させるという課題が残ることとなる。
上記及び他の課題は、処理デバイスのメモリ内に格納されているメモリコンテンツの少なくとも一部を更新する方法によって解決される。メモリは、複数のアドレス可能メモリブロックを備え、メモリコンテンツは、処理デバイス内に格納されている現在の完全性保護データ項目(a current integrity protection data item)によって保護される。この方法は、
各現在のメモリブロックコンテンツから各更新されたメモリブロックコンテンツへの更新を必要とする前記複数のメモリブロックの第1の部分集合と、前記更新によって変化しない各現在のメモリコンテンツをその中に格納している複数のメモリブロックの第2の部分集合とを判断する工程と、
複数のメモリブロック全体にわたって(over the plurality of memory blocks)第1及び第2の完全性保護データ項目を計算する工程であって、第1の完全性保護データ項目が、メモリブロックの第1及び第2の部分集合の現在のメモリコンテンツ全体にわたって計算され、第2の完全性保護データ項目が、メモリブロックの第2の部分集合の現在のメモリコンテンツ及びメモリブロックの第1の部分集合の更新されたメモリブロックコンテンツ全体にわたって計算され、第1及び第2の完全性保護データ項目を計算することが、並列プロセスとして遂行される、工程と、
メモリブロックの前記第1の部分集合のメモリコンテンツを更新する工程を含む。
本明細書に記述されている方法の利点は、悪意のあるユーザが、たとえばメモリの再書き込み後に、かつ基準完全性保護データ項目の再計算の前に、更新プロセスを中断する危険性が減少することである。したがって、本明細書に記述されている方法の利点は、新しい完全性保護データ項目が正しいメモリイメージ全体にわたって計算されることが保証されることである。
本明細書に記述されている方法は、携帯電話の無線による更新などの、処理デバイスのソフトウェア及び/又は他のデータのための頑強かつ安全な更新プロセスを実現する。本明細書に記述されている方法のさらなる利点は、更新されたソフトウェアイメージ全体への署名を、外部の更新サーバに頼らないことである。これは、いわゆるデルタ更新(delta updates)に関連して、及び/又は現在のメモリの一部のみが更新され、及び更新サーバ、又はソフトウェア更新パッケージを生成する別のエンティティが、処理デバイスの現在のメモリコンテンツ全体を認識していない状況において、特に有利である。デルタ更新は、現在のソフトウェアに対する新しい(更新された)ソフトウェアの差異を含み、これにより、アップグレードパケットの大きさが減少する。いくつかのデルタファイル技術においては、更新ファイルはまた、現在のソフトウェアと受信された更新から更新されたソフトウェアバージョンを生成することを、制御するためのコマンドを含む。このようなデルタファイル技術が、当業者には公知であり、たとえば、クリスチャン・ライヘンバーガー(Christian Reichenberger)による、ソフトウェア構成管理に関する第3回国際ワークショップ議事録、144〜152ページ、「任意の非テキストファイル用のデルタ記憶(Delta storage for arbitrary non−text files)」(1991年6月ノルウェイ)に記述されている。デルタ更新は、特に帯域幅の制限があることから、無線(over-the-air)(OTA)更新に関連して特に興味深い。本明細書に記述されている方法の利点は、デルタ更新に適用され得る、効率的なセキュリティメカニズムが実現されることである。
更新ステップは、一般に、メモリブロックの少なくとも第1の部分集合の現在のメモリブロックコンテンツを各更新されたメモリブロックコンテンツと交換することを含む。更新されたメモリコンテンツは、たとえば更新サーバから受信されるか、又は、たとえば本明細書に記述したデルタファイルなどの受信された更新ファイル/パッケージから決定することができる。
用語「完全性保護データ項目」は、メモリ内に格納されている情報が偶然又は悪意をもって改変される又は破壊されることがないことを確実にするためのメカニズムによって生成される任意のデータ項目を含むことを意図したものである。完全性保護メカニズムの例には、メッセージ認証コードと、一方向ハッシュ関数と、デジタル署名とが含まれる。完全性メカニズムが秘密鍵に基づく暗号完全性保護メカニズムである場合には、完全性保護のセキュリティが増加する。完全性保護データ項目がメッセージ認証コードである場合には、特に安全かつ効率的な完全性保護が達成される。
メッセージ認証コード(MAC)は、完全性保護データのための公知のメカニズムである。MACとは、可変長入力及び鍵を利用して、出力ととして固定長の完全性保護データ項目、いわゆるMAC値又はタグ値を作成する関数である。MACは、通常、2人の当事者の間で伝送された情報の正当性を検証するために秘密鍵を共用するこれらの当事者の間で使用される。いくつかの実施形態において、MACは、一方向ハッシュ関数をデータに適用し、秘密鍵を使用してその結果を暗号化することによって計算される。暗号ハッシュ関数と組み合わせられ得る好適なMAC関数の例には、HMAC(メッセージ認証のための鍵付ハッシング)、たとえばAESを使用する暗号ブロック連鎖方式(CBC)MAC、又は安全な一方向ハッシュ関数が含まれる。本明細書に記述されている方法において、メッセージ認証コードは、処理デバイスのメモリ内に格納されているデータの完全性を検査するのに使用される。即ち、この状況においては、MACは、1当事者のみ、即ちデータ処理デバイスにより、たとえば周期的に、データを格納する及び/又は検索する時に、及び/又はスタートアップ中などの他の事象に応答して、使用される。第1及び第2の完全性保護データ項目のそれぞれの計算は、1つのMACの計算又は複数のMACの計算を含むことがあると理解されたい。第1の及び第2の完全性保護データ項目は、同じ又は異なるアルゴリズムに基づいて、同じ又は異なる秘密鍵に基づいて、計算されることがある。
したがって、いくつかの実施形態において、完全性保護は、保護されるべきメモリコンテンツに対して、計算された基準完全性保護データ項目、たとえばメッセージ認証コード値を格納することを含み、これにより、データ処理デバイスによるメモリコンテンツのその後のメモリ監査に利用可能となる。したがって、メモリコンテンツを監査する場合には、デバイスは、デバイス内に格納されている秘密鍵を使用して、格納されているデータの完全性保護データ項目を計算し、その結果を以前に格納された基準データ項目、たとえば基準MAC値と比較する。したがって、この実施形態において、秘密鍵は、デジタル処理デバイスにのみ公知であれば良い。いくつかの実施形態において、秘密鍵は、データ処理デバイスに対して固有の秘密データ項目、たとえばデータ処理デバイスにのみ公知の秘密データ項目である。
一実施形態において、この方法は、さらに、
第1の完全性保護データ項目を現在の完全性保護データ項目と比較する工程と、
第1の完全性保護データ項目及び現在の完全性保護データ項目が互いに対応する場合、第2の完全性保護データ項目を格納し、各更新されたメモリブロックコンテンツでメモリブロックの第1の部分集合を更新する工程と、
格納されている第2の完全性保護データ項目に基づいて、更新されたメモリコンテンツの完全性検査を遂行する工程とを含む。したがって、実際にメモリを再フラッシュしている間に更新プロセスを中断しようとするどのような試みも、最終的な完全性検査において検出され、これにより、全プロセスのセキュリティが確実となる。
一実施形態において、完全性検査を遂行する工程は、各更新されたメモリブロックコンテンツでメモリブロックの第1の部分集合を更新した後に、更新されたメモリの監査完全性保護データ項目を計算する工程と、計算された監査完全性保護データ項目を格納されている第2の完全性保護データ項目と比較する工程とを含む。その後、このような監査は、モバイル端末の起動処理中に、及び/又はソフトウェアが実行される毎に、及び/又は所定の時間間隔で周期的に、遂行することができる。
第1及び第2の完全性保護データ項目は、並列プロセスにおいて計算されるので、完全性保護データ項目が同じ現在のメモリブロックコンテンツを使用して計算されることが保証され、これにより、更新プロセス中にメモリコンテンツを交換しようとするどのような試みも、計算された完全性保護データ項目のその後の検証によって検出され得ることが確実となる。
一実施形態において、第1及び第2の完全性保護データ項目を並列プロセスとして計算する工程は、第1及び第2の完全性保護データ項目の任意の1つの計算を完了する前に、第1及び第2の完全性保護データ項目の計算を始動する工程を含む。したがって、不誠実なユーザが更新プロセスを中断し、第1の完全性保護データ項目の計算と第2の完全性保護データ項目の計算との間に現在のメモリコンテンツを交換するという危険性が解消される。
さらなる実施形態において、第1及び第2の完全性保護データ項目のそれぞれを計算する工程が、いくつかの反復を含む、対応する反復プロセスを遂行する工程を含む。それぞれの反復が、前記複数のメモリブロックの1つ以上を処理することを含み、それぞれの反復が、その後の反復を処理する前に、第1及び第2の完全性保護データ項目の計算のために遂行される。したがって、前記1つ以上の複数のメモリブロックの同じバージョンが両方の計算プロセスにおいて使用されることが保証され、これにより、更新プロセスのセキュリティがさらに向上する。
またさらなる実施形態において、第1及び第2の完全性保護データ項目を並列プロセスとして計算する工程が、その後のメモリブロックを処理する前に、それぞれのメモリブロックが第1及び第2の完全性保護データ項目の計算のために処理されるよう、複数のメモリブロックを順次処理する工程を含む。したがって、完全性保護データ項目の計算の合間に、不誠実なユーザによってメモリブロックが交換されないことが保証される。
一実施形態において、この方法は、
a)第1のメモリブロックの現在のメモリブロックコンテンツを取得する工程と、
b)第1の完全性保護データ項目の計算のために、取得された現在のメモリブロックコンテンツを処理する工程と、
c)メモリブロックの第1の部分集合が第1のメモリブロックを含む場合は、第2の完全性保護データ項目の計算のために、第1のメモリブロックの更新されたメモリコンテンツを取得して処理し、含まない場合は、第2の完全性保護データ項目の計算のために、第1のメモリブロックの取得された現在のメモリブロックコンテンツを処理する工程と、
d)すべてのメモリブロックについて項目a)〜c)を遂行する工程とを含む。
一実施形態において、メモリは、フラッシュメモリである。フラッシュメモリ(「フラッシュRAM」と呼ばれることもある)は、ブロックと呼ばれるメモリのユニット単位で消去され得る及び再プログラムされ得る、一種の不揮発性メモリであり、それぞれのブロックが複数のバイトを含む。データをフラッシュメモリ内で変更する(再書き込みする)必要がある場合には、フラッシュメモリは、(バイトではなく)ブロックサイズで書き込まれ得る。
さらに別の実施形態において、この方法は、さらに、前記更新されたメモリブロックコンテンツを含むデータ項目を受信する工程を含む。データ項目は、デルタ更新プロセスのデルタファイル又はデルタ更新パッケージを含むことがある。代替形態として、データ項目は、1つ以上のソフトウェアアプリケーション、コンフィギュレーションデータ、ペイロードデータ、及び/又はその他の更新する必要のあるものの、ソフトウェアイメージ全体を含むことがある。データ項目は、ローディングステーション、ソフトウェア更新サーバなどの外部データ処理システムから、好適な通信媒体、たとえばワイヤード又はワイヤレス通信リンクを介して受信することができる。ワイヤード通信リンクの例には、USB、ファイアワイア、LANなどの、シリアル通信リンクが含まれる。ワイヤレス通信リンクの例には、たとえばIrDaなどの赤外線リンク、ブルートゥースなどの短距離ワイヤレス通信リンク、ワイヤレスLANなどの、短距離無線周波数リンクが含まれる。一実施形態において、データ項目は、セルラー通信網などの通信網を介して無線により受信される。
データ項目を受信する工程が、暗号化認証プロセスを適用することによりデータ項目を検証する工程を含む場合には、受信されたデータ項目の信憑性及び/又は完全性が保証され、これにより、更新プロセスのセキュリティが向上する。一実施形態において、暗号化認証プロセスは、公開鍵暗号化システムに従ってデータ項目をデジタル署名することを含む。ソフトウェアのデジタル署名は、モバイルデバイスにロードされたソフトウェアを検証するための効率的かつ安全なメカニズムである。署名の検証成功は、ソフトウェアが合法的なソースによって発行されたことの保証となる。さらに、公開鍵技術に基づくデジタル署名は、転送時又は格納時に、検証に使用される公開鍵の秘匿性保護を必要としないという利点を有する。したがって、セキュリティの漏洩を引き起こさずに、同じ公開鍵が多数のデバイスにインストールされ得る。このことにより、速くかつ安全なソフトウェアアップグレードの効率的な手順が可能となる。
データ項目がデジタル署名の信憑性を検証するデジタル証明書を含む場合には、更新プロセスのセキュリティがさらに向上する。データ処理デバイスは、証明書チェーン(certificate chain)を形成する1つ以上のデジタル証明書を受信することがあり、そのチェーンの1つの証明書は、データ処理デバイス内に格納されている公開ルート鍵によって検証されることを理解されたい。
一実施形態において、データ項目を受信する工程が、更新されたメモリブロック全体にわたって計算されたデジタル署名を受信する工程を含み、更新を必要とする前記複数のメモリブロックの第1の部分集合を判断する工程が、更新されたメモリブロックのデジタル署名を検証する工程をさらに含む。
第1及び第2の完全性保護データ項目の計算が信頼できるプログラムコードによって遂行される場合には、プロセスのセキュリティが向上する。本明細書においては、用語「信頼できるプログラムコード」は、処理デバイスのファームウェア内に含まれているプログラムコード、その実行前に暗号化により完全性が検査されるコード、処理デバイスのブートROMコード内に含まれるプログラムコードなどの、任意の完全性保護プログラムコードを含むことを意図したものである。
いくつかの実施形態において、第1及び第2の完全性保護データ項目の計算に加えて、以下のステップの少なくともいくつかが、信頼できるプログラムコードによって遂行される。即ち、メモリブロックの第1及び第2の部分集合の判断、第1の完全性保護データ項目と現在の完全性保護データ項目との比較、第2の完全性保護データ項目の格納、メモリブロックの第1の部分集合の更新、及び格納されている第2の完全性保護データ項目に基づく、更新されたメモリコンテンツの完全性検査である。
第1及び第2の完全性保護データ項目の計算は、メッセージ認証コードのハードウェア実装によって遂行され、これにより、特に効率的かつ安全な更新プロセスが実現する。完全性保護データ項目が、ブロック暗号又は一方向ハッシュ関数に基づいて構築されたメッセージ認証コードである場合には、特に効率的なハードウェア実装が提供され得る。
さらなる実施形態において、第1及び第2の完全性保護データ項目を計算する工程が、
一連の反復を含む反復メッセージ認証コード計算プロセスを実施するよう適応されたメッセージ認証計算モジュールを提供する工程であって、それぞれの反復が、1組の状態変数を更新することを含む、工程と、
各第1及び第2の組の状態変数を格納するための第1及び第2の組のレジスタを提供する工程と、
メッセージ認証計算モジュールに、第1及び第2の完全性保護データ項目の計算の反復を交互に遂行させ、第1及び第2の組のレジスタを交互に更新させる工程とを含む。
したがって、特にハードウェア実装に関連して、1つのMAC計算モジュールしか必要とされないので、非常にコンパクトな実装形態が実現される。さらに、この実施形態により、2つのMACの効率的な並列計算が保証されるので、速くかつ安全な更新プロセスが実現される。
本発明は、上述した及び以下に記述する方法、これに対応するデバイス、及びコンピュータプログラムを含む、異なる態様に関するものであり、それぞれが、上述の方法に関連して記述されている利益及び利点の1つ以上を有し、それぞれが、上述の方法に関連して記述されている実施形態に対応する1つ以上の実施形態を有する。
より具体的には、別の態様によれば、データ処理デバイスはメモリコンテンツを格納するためのメモリを備え、メモリは複数のアドレス可能メモリブロックを含み、メモリコンテンツは処理デバイス内に格納されている現在の完全性保護データ項目によって保護されており、処理手段は、
メモリコンテンツの少なくとも一部の更新中に、各現在のメモリブロックコンテンツから各更新されたメモリブロックコンテンツへの更新を必要とする前記複数のメモリブロックの第1の部分集合、及び前記更新によって変化しない各現在のメモリコンテンツをその中に格納している複数のメモリブロックの第2の部分集合を判断し、
複数のメモリブロック全体にわたって第1及び第2の完全性保護データ項目を計算するよう適応されており、第1の完全性保護データ項目は、メモリブロックの第1及び第2の部分集合の現在のメモリコンテンツ全体にわたって計算され、第2の完全性保護データ項目は、メモリブロックの第2の部分集合の現在のメモリコンテンツ及びメモリブロックの第1の部分集合の更新されたメモリブロックコンテンツ全体にわたって計算され、第1及び第2の完全性保護データ項目を計算することは、並列プロセスとして遂行される。
一実施形態において、処理手段は、さらに、
第1の完全性保護データ項目を現在の完全性保護データ項目と比較し、
第1の完全性保護データ項目及び現在の完全性保護データ項目が互いに対応する場合、第2の完全性保護データ項目を格納し、各更新されたメモリブロックコンテンツでメモリブロックの第1の部分集合を更新し、
格納されている第2の完全性保護データ項目に基づいて、更新されたメモリコンテンツの完全性検査を遂行するよう適応される。したがって、実際にメモリを再フラッシュしている間に更新プロセスを中断しようとするどのような試みも、最終的な完全性検査において検出され、これにより、全プロセスのセキュリティが確実となる。
一実施形態において、処理手段は、さらに、各更新されたメモリブロックコンテンツでメモリブロックの第1の部分集合を更新した後に、更新されたメモリの監査完全性保護データ項目を計算することにより、そして、計算された監査完全性保護データ項目を格納されている第2の完全性保護データ項目と比較することにより、完全性検査を遂行するよう適応される。
一実施形態において、処理手段は、さらに、第1及び第2の完全性保護データ項目の任意の1つの計算を完了する前に、第1の及び第2の完全性保護データ項目の計算を始動するよう適応される。したがって、不誠実なユーザが更新プロセスを中断し、第1の完全性保護データ項目の計算と第2の完全性保護データ項目の計算との間に、現在のメモリコンテンツを交換するという危険性が解消される。
さらなる実施形態において、処理手段は、さらに、いくつかの反復を含む、対応する反復プロセスを遂行することにより、第1及び第2の完全性保護データ項目のそれぞれを計算するよう適応され、それぞれの反復は前記複数のメモリブロックの1つ以上を処理することを含み、それぞれの反復は、その後の反復を処理する前に第1及び第2の完全性保護データ項目の計算のために遂行される。したがって、前記1つ以上の複数のメモリブロックの同じバージョンが、両方の計算プロセスにおいて使用されることが保証され、これにより、更新プロセスのセキュリティがさらに向上する。
またさらなる実施形態において、処理手段は、さらに、それぞれのメモリブロックが、その後のメモリブロックを処理する前に、第1及び第2の完全性保護データ項目の計算のために処理されるように、複数のメモリブロックを順次処理するよう適応される。したがって、完全性保護データ項目の計算の間に、不誠実なユーザによってメモリブロックが交換されないことが保証される。
一実施形態において、処理手段は、さらに、
a)第1のメモリブロックの現在のメモリブロックコンテンツを取得し、
b)第1の完全性保護データ項目の計算のために、取得された現在のメモリブロックコンテンツを処理し、
c)メモリブロックの第1の部分集合が第1のメモリブロックを含む場合は、第2の完全性保護データ項目の計算のために、第1のメモリブロックの更新されたメモリコンテンツを取得して処理し、含まない場合は、第2の完全性保護データ項目の計算のために、第1のメモリブロックの取得された現在のメモリブロックコンテンツを処理し、
d)すべてのメモリブロックについて項目a)〜c)を遂行するよう適応される。
一実施形態において、処理デバイスは、モバイル端末である。
一実施形態において、メモリは、フラッシュメモリである。
一実施形態において、デバイスは、さらに、前記更新されたメモリブロックコンテンツを含むデータ項目を受信する手段を備える。
一実施形態において、前記データ項目は、デジタル署名によって保護され、処理手段は、さらに、前記デジタル署名を検証するよう適応される。
一実施形態において、データ項目は、デルタ更新パッケージを含む。
一実施形態において、処理手段は、メッセージ認証コードを実施するためのハードウェアモジュールを備える。
一実施形態において、処理手段は、
一連の反復を含む反復メッセージ認証コード計算プロセスを実施するよう適応されたメッセージ認証計算モジュールであって、それぞれの反復が、1組の状態変数を更新する、メッセージ認証計算モジュールと、
各第1及び第2の組の状態変数を格納するための第1及び第2の組のレジスタとを備え、
処理手段は、メッセージ認証計算モジュールに、第1及び第2の完全性保護データ項目の計算の反復を交互に遂行させ、第1及び第2の組のレジスタを交互に更新させるよう適応される。
用語「データ処理デバイス」は、データが外部ソース(たとえばデータ転送システム)からロードされ得るデータメモリを備える任意の電子デバイスを含むことを意図したものである。特に、用語「データ処理デバイス」は、任意の電子機器、ポータブル無線通信機器、及び他のハンドヘルド又はポータブルデバイスを含むことを意図したものである。用語「ポータブル無線通信機器」は、モバイル端末などのすべての機器、たとえば、携帯電話、ページャ、通報器、電子オーガナイザ、スマートホン、携帯情報端末(PDA)、ハンドヘルドコンピュータなどを含む。
用語「メモリコンテンツ」は、データ処理デバイスのメモリ内に格納されている任意のデータを含むことを意図したものである。特に、用語「メモリコンテンツ」は、コンフィギュレーションデータ、プログラムコード、たとえば、デバイスが実行するためのプラットフォームソフトウェア又はアプリケーションソフトウェアなどを含むことを意図したものであるが、これらに限定されるものではない。特に、用語「メモリコンテンツ」は、メッセージ認証コードなどの完全性保護メカニズムにより完全性が保護されたモバイル端末のメモリコンテンツを含むことを意図したものである。したがって、これは、モバイル端末のメモリのコンテンツ全体又はメモリコンテンツの所定の一部のみを含むことがある。用語「メモリブロック」は、該メモリの、所定の大きさの好適な区分のメモリブロック/セグメントを含むことを意図したものである。一実施形態において、メモリブロックは、フラッシュメモリのブロックに対応する。
上述したかつ以下に記述する方法の機能は、ソフトウェアで実装され、コンピュータ実行可能命令などのプログラムコード手段を実行することにより、データ処理デバイス又は他の処理手段において行われることがあることに留意されたい。ここ及び以下において、用語「処理手段」は、上記の機能を遂行するよう好適に適応された、任意の回路及び/又はデバイスを含む。特に、上記の用語は、汎用又は専用プログラマブルマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、専用電子回路など、又はこれらの組合せを含む。
したがって、別の態様によれば、コンピュータプログラムは、前記コンピュータプログラムがデータ処理デバイスで動作する場合に、データ処理デバイスに、上述した及び以下に記述する方法のステップを遂行させるよう適応されたプログラムコード手段を含む。
たとえば、プログラムコード手段は、記憶媒体から又は別のコンピュータからコンピュータネットワークを介して、RAM(ランダムアクセスメモリ)などのメモリ内にロードされることがある。代替形態として、記述されている機能は、ソフトウェアではなくハードワイヤード回路により、又はソフトウェアと合わせて、実施されることがある。
図面を参照しながら、以下に記述されている実施形態より、上記の及び他の態様が明らかかつ明瞭となろう。
図1は、モバイル端末内にデータをロードするシステムを示す概略ブロック図である。システムは、ローディングステーション/更新サーバ101とモバイル端末102とを備える。
ローディングステーションは、好適な通信インターフェースを備える、従来の、好適にプログラムされたコンピュータ、たとえばPCであり得る。いくつかの実施形態において、ローディングステーションは、ロードされるべき、ペイロードデータ、たとえば、ソフトウェアバージョン、コンフィギュレーションデータ、及び/又はその他を、生成することができる。さらに、ローディングステーションは、ペイロードデータと共にロードされるべき、デジタル署名及び証明書を生成することができる。他の実施形態において、ローディングステーションは、リモートコンピュータ、たとえば、パーソナルコンピュータ、ワークステーション、ネットワークサーバなどから、ペイロードデータを受信する。たとえば、データは、コンピュータネットワーク、たとえば、インターネット、ローカルエリアネットワーク、イントラネット、エクストラネットなどを介して、又はたとえばフロッピー(登録商標)ディスク、CDROMなどのコンピュータ読取可能媒体上の、他の任意の好適な手段により、受信されることがある。この実施形態において、1つ又は複数のデジタル署名の計算及び1つ又は複数の証明書の生成が、ローディングステーションではなく、リモートコンピュータによって遂行されることがある。ローディングステーションは、モバイル端末にそのメモリコンテンツを更新させるペイロードデータ及び/又は命令を、モバイル端末に送信する。
モバイル端末102は、モバイル端末が、ローディングステーションから、直接データリンク、通信網などのワイヤード又はワイヤレス通信リンク103を介して、データを受信できるようにするのに適した回路及び/又はデバイスを含む、通信インターフェース104を備える。たとえば、データは、ローカル短距離ワイヤレス通信リンク、たとえば、ブルートゥース接続、赤外線接続などを介して、又はワイヤードインターフェースを介してロードされることがある。他の実施形態において、データは、通信網を介して、たとえばGSM WCDMAなどのセルラー通信網を介する無線(OTA)により、モバイル端末内にロードされることがある。
したがって、好適な通信ユニットの例には、IEEE1394標準などに記述されている、RS−232リンク、USB接続、ファイアワイア接続などのワイヤードシリアル接続が含まれる。さらなる例には、ワイヤレス赤外線インターフェース、又はセルラー電話(図示せず)の主要アンテナ及び受信機などのRFインターフェース、又はブルートゥーストランシーバなどのセルラー電話における別の受信機が含まれる。好適なインターフェースの他の例には、ケーブルモデム、電話モデム、統合サービスデジタルネットワーク(ISDN)アダプタ、デジタル加入者ライン(DSL)アダプタ、衛星トランシーバ、イーサネット(登録商標)アダプタなどが含まれる。
モバイル端末は、さらに、モバイル端末のオペレーションを制御するための処理ユニット105と、メモリ106とを備える。たとえば、処理ユニットは、汎用又は専用プログラマブルマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)など、又はこれらの組合せを含むことができる。一実施形態において、メモリ106は、フラッシュメモリである。しかし、本明細書に記述されている更新プロセスはまた、EPROM、EEPROMなどの他の種類のメモリ、又は不揮発性メモリなどの他の任意の種類のメモリ又は記憶装置にも適用することができる。
データがモバイル端末内にロードされた場合には、処理ユニット105は、本明細書に記述されているデータ認証及び完全性保護を遂行し、メモリ106内にデータを格納する。
モバイル端末のその後のオペレーション中に、処理ユニットは、メモリ106から、ロードされたデータを検索し得る。たとえば、ソフトウェアの場合、処理ユニットは、RAM内のメモリ106からソフトウェアをロードし、実行する。
多くのモバイル端末においては、許可されていない再プログラミングから、シム(SIM)ロック、プライバシなどを含む、基本電話機能を保護することが望ましい。これは、MACを有するモバイル端末のソフトウェアイメージの全部又は一部を保護する完全性によって達成され得る。MACは、モバイル端末のそれぞれのスタートアップ時に検査されることがある。ソフトウェアがモバイル端末のフラッシュメモリにフラッシュされた場合、ソフトウェアイメージ全体(又は保護されるべきソフトウェアイメージの一部)が、ローディングプロセス中に署名され、チップ固有MACが、たとえば受信されたソフトウェアのデジタル署名に基づいて該MACを判断することにより、モバイル端末内に格納される。
デルタ更新シナリオにおいて、ローディングステーション101は、デルタファイルを作り、そのデルタファイルをモバイル端末102、たとえばOTAに転送する。一実施形態において、デルタファイルは、現在の又はいわゆるベースラインバージョンのソフトウェアと、新しい/更新されたバージョンのソフトウェアとを、バイト毎に比較することによって、作られる。2つのバージョンの間の差異は、デルタファイル内に格納される。さらに、デルタファイルは、モバイル端末が、モバイル端末内に格納されているベースラインバージョンから新しいバージョンを生成できるようにする命令、及び更新ファイルが受け付けた差異(the differences received in the update file)を含むことがある。ローディングステーションからモバイル端末への転送中にデルタファイルが修正されるのを防ぐために、ローディングステーション101は、さらに、モバイル端末によりデルタファイルが適用されたことから生じたデルタファイルの又は新しいソフトウェアイメージの、デジタル署名又はメッセージ認証コードを計算することができる。
代替形態として、新しいソフトウェアアプリケーションが、モバイル端末の現在のソフトウェアイメージに追加される場合、新しいソフトウェア全体が、モバイル端末、たとえばOTAに伝送されることがある。上述したように、新しいソフトウェアアプリケーションは、MACによりデジタル署名される又は保護されることがある。
モバイル端末のソフトウェアイメージ全体がMACにより記憶装置で完全性保護されている場合、又はソフトウェアイメージの完全性保護されている一部が更新された場合、完全性保護されているソフトウェアイメージのMACも更新する必要がある。完全性保護されているソフトウェアイメージ全体が交換された場合、MACの計算が、ソフトウェアの初期ロードに関して遂行されることがある。しかし、ローディングステーション101、又はモバイル端末に転送される更新パッケージを生成するエンティティのみが、モバイル端末の、現在完全性が保護されているメモリコンテンツの一部を認識している場合、ローディングステーションは、更新されたソフトウェアイメージ全体の署名を提供することはできない。以下では、更新プロセスの実施形態について記述する。これによれば、モバイル端末は、頑強かつ安全な方法で、更新されたソフトウェアイメージの新しいMACを計算する。
図2は、モバイル端末の実施形態を示す、より詳細なブロック図である。図1に関連して既に記述したように、(全体が102で表されている)モバイル端末は、通信インターフェース104と、処理ユニット105と、フラッシュメモリ106とを備える。処理ユニット105は、処理回路210と、ランダムアクセスメモリ(RAM)などの内部メモリ211と、秘密鍵212を格納するために保護されたメモリとを備える。処理回路210は、秘密鍵212への読み取りアクセスと、内部メモリ211への及びフラッシュメモリ106への読み取り/書込みアクセスとを有する。一実施形態において、秘密鍵212は、モバイル端末のチップ外からアクセスされ得ないチップ固有鍵である。
フラッシュメモリ106は、1組のメモリブロックに分割される。この記述においては、フラッシュメモリは、本明細書に上述したように、完全性が保護されているnブロック213を含むと想定される。メモリブロックは、b,i=1,,,,nで表される。メモリブロックbがフラッシュメモリのブロックに対応する場合には、特に容易かつ効率的な実施が実現される。たとえば、それぞれのメモリブロックが、フラッシュメモリの複数のブロックのうちの一つのブロックと同一であり得る。メモリブロック213に加えて、フラッシュメモリ106は、その中に、さらに、メモリブロック213全体にわたって計算された1つ以上のMAC値214を格納している。いくつかのMACの場合には、それぞれのMACが、メモリブロック213の各部分集合全体にわたって計算されることがある。代替実施形態において、1つ又は複数のMAC214が、メモリ106ではなく、別個のメモリ内に格納されることがあることに留意されたい。
モバイル端末のそれぞれのスタートアップ時に、又はモバイル端末で動作しているアプリケーションにより(たとえばコアソフトウェアのプラットフォームにより)要請された時はいつでも、ブロック213の現在のメモリイメージの1つ又は複数のMACが、処理回路210により、秘密鍵212を入力として使用して計算される。したがって、メモリブロック全体にわたってのMACが、t=f(b,...,b;K)として書き込まれることがある。ここで、fはMAC関数であり、Kは秘密鍵212であり、tはこの結果生じたMAC値であり、これはMACのタグ値とも呼ばれる。
計算された値tがメモリ106内に格納されている基準タグ値trefに対応する場合、モバイル端末は、引き続き通常に機能する。そうでない場合には、モバイル端末の機能のいくつか又はすべてが、動作不能となる。
図3は、モバイル端末の代替実施形態を例示している。図3のモバイル端末102は、図2のモバイル端末に対応する。しかし、この実施形態において、処理ユニット105は、別個のMAC計算モジュール333を備える。MAC計算モジュールは、秘密鍵212を含む。この実施形態において、処理回路210は、MAC計算モジュール333のMAC計算関数を呼び出し、MAC計算モジュールにそれぞれの計算ステップのためのメモリブロックbを提供する。MAC計算モジュールは、計算されたMAC値を戻す。したがって、この実施形態において、鍵212へのアクセスはMAC計算モジュールに限られているので、処理回路210は、秘密鍵212への直接アクセスを有さず、これにより、セキュリティがさらに向上する。MAC計算モジュール333は、ソフトウェア及び/又はハードウェアでMAC計算の実施を提供することができる。
以下、図2〜図4を参照しながら、モバイル端末のメモリの一部のための更新プロセスの実施形態について記述する。
図4は、モバイル端末のメモリコンテンツの更新プロセスの実施形態を示す流れ図である。
図4aは、更新プロセスを示す全体的な流れ図である。初期ステップS401で、モバイル端末は、ローディングステーション/更新サーバから更新パッケージを受信する。更新パッケージは、ペイロードデータ、即ち実際のメモリ更新と、ローディングステーション/更新サーバによって生成されたデジタル署名とを含む。ローディングステーション/更新サーバによって伝送されたペイロードデータがmで表されており、ローディングステーション/更新サーバは、s=S(m,KPr)に従ってデジタル署名sを生成する。ここで、Sは署名関数であり、KPrはローディングステーション/更新サーバの秘密鍵である。ローディングステーション/更新サーバは、mとsとを含む更新パッケージを伝送する。ステップS401で、モバイル端末は、受信されたペイロードm’と受信された署名s’とを含む、対応する更新パッケージを受信する。
その後のステップS402で、モバイル端末は、受信されたアップグレードペイロードm’、受信された署名s’、及び署名ジェネレータによって使用される秘密鍵KPrに対応する公開鍵KPuを入力として、ブーリアン署名検査関数S’を適用することにより、署名s’を検査する。署名検査関数S’が署名の検証が成功したことを表示した場合、モバイル端末は、信憑性のあるものとして更新パッケージm’を受け入れ、ステップS403でプロセスを続行する。そうでない場合には、プロセスはアボートされ、任意に、対応するメッセージがローディングステーションに送られる。
ステップS403で、受信された更新パッケージm’及びメモリブロックの現在のコンテンツに基づいて、モバイル端末は、フラッシュメモリブロックのメモリブロックbのどれが更新によって変更される又は追加されるかを識別する。この記述においては、kメモリブロックが変更される/追加される(k≦n)必要があると想定される。これらのブロックは、b’j1,b’j2,...,b’jk,で表される。ここで、すべてのi=1,...,kについて、j∈{1,...,n}である。モバイル端末は、更新パッケージから、識別されたブロックの更新されたコンテンツを抽出し、好適な信頼できる内部電話メモリ211、たとえば内部RAM内に、識別されたブロックの新しいコンテンツを格納する。
代替実施形態において、ステップS401で計算され、かつステップS402で検証されたデジタル署名は、メッセージm全体にわたってではなく、更新から生じたブロックb’j1,b’j2,...,b’jk全体にわたって計算され、これにより、更新プロセスのセキュリティがさらに向上する。したがって、この代替実施形態において、署名の検証(ステップS402)は、これらのブロックが計算された時点で、即ちステップS403の後に、遂行される。
ステップS404で、モバイル端末は、2つのMACの並列計算を遂行する。即ち、MACで表されている第1のMACは、フラッシュメモリ106内に格納されている、現在のフラッシュメモリブロックb,...,b全体にわたって計算され、MACで表されている第2のMACは、更新中にも変わらないメモリ106内に格納されているメモリブロックの現在のコンテンツ全体と、内部メモリ211内に格納されている、識別された新しいメモリブロックのコンテンツ全体とにわたって、計算される。したがって、両方のMACは、全メモリイメージ全体にわたって、即ち現在のイメージ全体と更新後の新しいイメージ全体とにわたって計算される。第2のMACは、メモリ106及び内部メモリ211からのブロックの仮想ビルド全体にわたって(over a virtual build of blocks)、即ち完全に更新されたメモリイメージが生成される前に、計算される。以下、2つのMACを計算するための並列プロセスの実施形態についてより詳細に記述する。両方のMAC計算が、212で表された、チップ固有秘密鍵Kを、入力として、さらに受信する。
ステップS405で、モバイル端末は、計算された第1のMAC(MAC)と、モバイル端末のメモリ214内に格納されている、trefで表されている基準MAC値とを比較する。MAC値が一致した場合は、ステップS406でプロセスを続行する。一致しない場合は、プロセスはアボートされる。
ステップS406で、モバイル端末は、メモリ214内の現在の基準MAC値trefを第2のMAC値MACと交換する。
その後のステップS407で、モバイル端末は、受信されたアップグレードパッケージに従ってソフトウェア更新を遂行する。これは、たとえ更新中にモバイル端末の電源が切られても、モバイル端末が、電源が切られる前に達したステップから更新を継続できるような形で遂行される。たとえば、これは、頑強なデルタアップグレードプロセスを適用することによって達成することができる。一実施形態において、更新プロセスの状態情報、たとえばソフトウェア更新を遂行する更新エージェントが、新しいブロックがメモリにフラッシュされる毎に、即ちそれぞれのフラッシュオペレーションの直前に、フラッシュメモリの所定のエリア内に格納される。状態情報が格納されるフラッシュメモリのエリアを、状態メモリ又は作業ディレクトリと呼ぶ。状態情報は、フラッシュオペレーション前の、メモリブロックの現在のコンテンツを含む。実際に新しいブロックがメモリにフラッシュされると、状態メモリが更新され、状態カウンタが増分されて、更新プロセスのどのステップに達したかを示す。したがって、更新プロセスがアボートされ、その後再始動された場合、更新プロセスは、状態メモリのコンテンツを読み取り、中断されたところから更新プロセスを続行する。たとえば、あるブロックのフラッシュオペレーション中にプロセスが中断された場合、プロセスは、そのブロックの全フラッシュオペレーションを繰り返す。
いくつかの実施形態において、更新プロセスは、モバイル端末のリブートを必要とする。
ステップS408で、モバイル端末は、新しく格納された基準MAC、即ちtref=MACに基づいて、メモリ106の更新されたコンテンツの完全性検査を遂行する。完全性検査関数は、秘密鍵Kを使用して、メモリ106のコンテンツ全体にわたってMACを計算し、その結果をtrefと比較する。いくつかの実施形態においては、モバイル端末の次のスタートアップ時に、ステップ408が遂行される。
したがって、上述の更新プロセスにおいては、不誠実なユーザがメモリの再書込み(再フラッシュ)前に又は後に更新プロセスを中断し、許可されていないメモリコンテンツにより信憑性のあるメモリコンテンツを交換しようとする試みが、ステップS408における検証中に、及び/又はステップS405で元のMACの検証によって、検出されることとなる。
いくつかの実施形態において、ソフトウェア更新、又は更新プロセスの少なくともセキュリティ上重大なステップ、を担当するプログラムコードは、ファームウェア、完全性が保護されたコードなどの、信頼できるプログラムコードであり、これにより、モバイル端末内で更新ステップを遂行するソフトウェアが正しく働き、改ざんされていないことが保証される。したがって、このような実施形態において、少なくともステップS402、S403、S404、S405、S406、及びS408が、信頼できるプログラムコードによって遂行される。
図4bは、2つのメッセージ認証コードの並列計算の実施形態を示す流れ図である。ステップS404の2つのMAC、即ちMAC及びMACの並列計算は、初期化ステップS411によって開始し、ここで、各MACのための2つの状態機械MAC及びMACが初期化される。初期化ステップは、秘密鍵K、及び、任意に、いくつかの初期化パラメータに依存する。さらに、ブロックカウンタiが、初期化されて、MACが計算されるメモリブロックの第1のメモリブロックbを指し示す。初期化の後、ステップS412でプロセスを続行する。
ステップ412で、プロセスは、フラッシュメモリ106からカウンタiによって参照されるメモリブロックbの現在の値を検索し、内部レジスタb内にメモリブロックを格納する。
その後のステップS413で、プロセスは、レジスタbのコンテンツに基づいて、即ちブロックbの現在のコンテンツに基づいて、状態機械MACを更新する。
その後のステップS414で、プロセスは、ブロックbが、更新によって変更される、以前に識別されたブロックの1つであるかどうか、即ち、任意のκ∈{1,...,k}についてi=jκかどうかを判断する。ここで、jκとは、変更される、識別されたメモリブロックのインデックスである。現在のブロックが識別されたブロックの1つである場合は、プロセスはステップS415に進む。そうでない場合には、プロセスはステップS416に進む。
ステップS415で、プロセスは、内部メモリ211内に以前に格納された、識別されたメモリブロックの、対応する新しいメモリブロックコンテンツb’jκにより、レジスタ値bを交換する。次いで、プロセスは、ステップS416に進む。
ステップS416で、プロセスは、レジスタbのコンテンツに基づいて、即ちブロックbの現在のコンテンツ又は更新されたコンテンツb’jκのいずれかに基づいて、状態機械MACを更新する。状態機械MAC及びMACの両方の更新が、メモリ106からの現在のブロックbの1つのメモリ読み取りオペレーションに基づいて遂行されることに留意されたい。したがって、両方のMACが同じ現在のメモリコンテンツに基づくことが保証される。
その後のステップS417で、カウンタiは、増分されて、その後のメモリブロックbi+1を指し示す。
ステップS418で、すべてのメモリブロックが処理されたかどうかがテストされる。処理されている場合、プロセスは、ステップS419に進む。そうでない場合には、プロセスは、ステップS412に戻って、次のメモリブロックを処理する。
ステップS419で、2つのMAC値MAC及びMACの計算が終了し、プロセスは、全体の更新プロセスに戻る。
図5は、第1及び第2のMACを計算するための計算プロセスの実施形態を示す機能ブロック図である。2つのメッセージ認証コードMAC及びMACの計算は、各メッセージ認証コード計算モジュール524及び525によって遂行される。モジュール524は、フラッシュメモリ106内に格納されているメモリブロック213を受信し、メモリ106の現在のコンテンツ全体にわたってメッセージ計算コードMACを生成する。このために、計算プロセスは、所定のシーケンスでメモリ106からメモリブロックを読み取り(たとえば一度に1つのメモリブロックを読み取り)、それぞれの読み取りメモリブロックをメッセージ認証コード計算モジュール524及びセレクタモジュール523の両方に送る、メモリ読み取りモジュール522を含む。したがって、この実施形態において、セレクタモジュール及びMAC計算モジュール524によって受信されたメモリブロックは、フラッシュメモリの同じ読み取りオペレーションから発生し、これにより、2つの計算の間でのメモリを用いた許可されていない改ざんに対するセキュリティが向上する。
セレクタモジュール523は、読み取りモジュール522からメモリブロックを受信し、さらに、上述した内部メモリ211からメモリブロックb’j1,...,b’jkを読み取る。読み取りモジュール522から受信されたそれぞれのメモリブロックについて、セレクタモジュール523は、そのメモリブロックの更新されたバージョンが内部メモリ211内に存在するかどうかを判断する。そのような更新されたバージョンがあった場合、セレクタモジュール523は、更新されたメモリブロックをMAC計算モジュール525に送る。そうでない場合には、セレクタモジュールは、読み取りモジュール522から受信された現在のメモリブロックをMAC計算モジュール525に送る。したがって、MAC計算モジュール525は、メモリ106の仮想イメージ、即ちメモリ更新後に得られるメモリイメージ全体にわたって、メッセージ認証コードMACを計算する。
図6は、第1及び第2のMACを計算するための計算プロセスの別の実施形態を示す機能ブロック図である。この実施形態は、図5の2つのMAC計算モジュールとは異なり、1つのMAC計算モジュールのみを備える。MAC計算モジュール633は、反復MAC計算プロセスを遂行し、それぞれの反復が、MACが計算されるメモリブロックのうちの1つの処理を含む。それぞれの反復において、1組の内部状態変数が、メモリブロックの処理に基づいて更新される。
図6の実施形態は、2組のレジスタ635及び636を備え、それぞれが、MAC計算モジュール633の1組の内部状態変数を格納するよう適応される。したがって、オペレーショ中に、プロセスは、レジスタ635及び636のそれぞれの状態変数を初期化する。その後、MAC計算モジュール633は、セレクタモジュール623によって制御されて、一連の反復を遂行する。それぞれの反復時に、MAC計算モジュール633は、フラッシュメモリ106から現在のメモリブロック、又は内部メモリ211から更新されたブロックを受信する。MAC計算モジュールは、受信されたメモリブロックを処理し、レジスタ635及び636のうちの1つを更新する。このために、セレクタモジュールは、2つのスイッチ632及び634を制御する。セレクタモジュールは、MAC計算モジュールの1つおきの反復時にレジスタ635が更新され、残りの反復時にレジスタ636が更新されるよう、スイッチ634を制御する。さらに、セレクタモジュール623は、レジスタ635が更新されている間の反復時に、MAC計算モジュールがフラッシュメモリ106から対応するメモリブロックを受信するよう、スイッチ632を制御する。レジスタ636が更新されている間の反復時に、セレクタモジュール623は、MAC計算回路が、対応するメモリブロックが更新中に変化するかしないかに応じて、フラッシュメモリ106から現在のメモリブロックを、又は内部メモリ211から対応する更新されたメモリブロックを受信するよう、スイッチ632を制御する。一実施形態において、プロセスは、さらに、フラッシュメモリ106から一連のメモリブロックを読み出し、これらをスイッチ632に送る、読み取りモジュール622を備える。読み取りモジュールは、セレクタユニットによって制御されて、1つおきの反復時に、読み取りオペレーションを遂行し、これにより、同じメモリブロックコンテンツが両方のMAC計算に送られることが保証される。
一実施形態において、図6に関連して記述されているプロセスは、ハードウェアにおいて実施され、これにより、高度なセキュリティ及び高い計算性能が実現する。一実施形態において、MACは、高速なハードウェア実装が公知である、ブロック暗号又は一方向ハッシュ関数である。MACのハードウェア実装の一例が、G.セリミス(G. Selimis)らによる「ワイヤレスアプリケーションプロトコルのためのキードハッシュメッセージ認証コードのVLSI実施(VLSI implementation of the keyed−hash message authentication code for the wireless application protocol)」(電子機器、回路、及びシステムに関する第10回IEEE国際会議議事録(ICECS’03)、アラブ首長国連邦、2003年12月14日〜17日)に記述されている。
したがって、このようなハードウェア実装の実施形態において、MAC計算は、秘密鍵K及び任意に初期化ベクトルに依存する初期化によって開始する。初期化により、1組の状態変数の初期値が生じる。その後のMAC計算中に、状態変数のいくつか又はすべてが、処理されたそれぞれのメモリブロックのために更新される。MACハードウェアを2つ備える必要のない、本明細書に上述した2つのMACの並列計算が、図6の実施形態によって実現され得る。したがって、MAC状態変数を格納するための内部レジスタのみを2つ備え、ハードウェアブロックの1つおきの呼び出しにより、第1又は第2の組のレジスタのMAC更新が生じる。
いくつかの実施形態について記述し詳細に示してきたが、本発明はこれらに限定されるものではなく、特許請求の範囲で定義されている主題の範囲内において、他の方法で具現化されることもある。
特に、データ処理デバイスの一例としてのモバイル端末を参照しながら、実施形態について主に記述してきた。しかし、本明細書に記述されている方法、製品手段、及びデバイスはまた、他のデータ処理デバイスにも適用されることがあることを理解されたい。
さらに、1つのMACによりメモリイメージ全体が保護される状況を参照しながら、実施形態について主に記述してきた。しかし、本明細書に記述されている方法はまた、異なるMACによりメモリ内に格納されているデータの異なる一部が保護される状況にも適用され得ることを理解されよう。
さらに、ソフトウェアイメージのローディングを参照しながら、実施形態について主に記述してきた。しかし、本明細書に記述されている方法はまた、他の種類のメモリコンテンツが更新される状況にも適用され得ることを理解されよう。
本明細書に記述されている方法、製品手段、及びデバイスは、いくつかの互いに異なる要素を備えるハードウェアにより、そして、好適にプログラムされたマイクロプロセッサにより、実施され得る。いくつかの手段を列挙しているデバイスに関する請求項においては、これらの手段のいくつかが、ハードウェアの全く同一のアイテム、たとえば、好適にプログラムされたマイクロプロセッサ、1つ以上のデジタル信号プロセッサなどによって具現化され得る。一定の手段が互いに異なる従属請求項に引用されていること又は異なる実施形態に記述されていることは、これらの手段の組合せの使用が好ましくないことを示すものではない。
用語「含む/備える」は、本明細書に使用されている場合、記載されている機能、インテジャー(integers)、ステップ、又は構成要素の存在を規定するものであり、1つ以上の他の機能、インテジャー、ステップ、構成要素、又はこれらの群の存在又は追加を除外するものではないことを強調しておきたい。
モバイル端末内にデータをロードするシステムを示す概略ブロック図である。 処理デバイスの実施形態を示す概略ブロック図である。 処理デバイスの別の実施形態を示す概略ブロック図である。 処理デバイスのメモリコンテンツを更新する更新プロセスの実施形態を示す流れ図である。 第1及び第2のMACを計算するプロセスの実施形態を示す機能ブロック図である。 第1及び第2のMACを計算するプロセスの別の実施形態を示す機能ブロック図である。

Claims (25)

  1. 処理デバイスのメモリ内に格納されているメモリコンテンツの少なくとも一部を更新する方法であって、前記メモリが、複数のアドレス可能メモリブロックを備え、前記メモリコンテンツが、前記処理デバイス内に格納されている現在の完全性保護データ項目によって保護され、前記方法が、
    前記処理デバイス内の処理ユニットが、各現在のメモリブロックコンテンツから各更新されたメモリブロックコンテンツへの更新を必要とする前記複数のメモリブロックの第1の部分集合、及び前記更新によって変化しない各現在のメモリコンテンツをその中に格納している前記複数のメモリブロックの第2の部分集合を判断する工程と、
    前記処理ユニットが、前記複数のメモリブロック全体にわたって第1及び第2の完全性保護データ項目を計算する工程であって、前記第1の完全性保護データ項目が、メモリブロックの前記第1の及び第2の部分集合の前記現在のメモリコンテンツ全体にわたって計算され、前記第2の完全性保護データ項目が、メモリブロックの前記第2の部分集合の前記現在のメモリコンテンツ及びメモリブロックの前記第1の部分集合の前記更新されたメモリブロックコンテンツ全体にわたって計算され、前記第1の及び前記第2の完全性保護データ項目を計算することが、並列プロセスとして遂行される、工程と、
    前記処理ユニットが、メモリブロックの前記第1の部分集合の前記メモリコンテンツを更新する工程とを含む方法。
  2. 前記処理ユニットが、前記第1の完全性保護データ項目と前記現在の完全性保護データ項目とを比較する工程と、
    前記処理ユニットが、前記第1の完全性保護データ項目及び前記現在の完全性保護データ項目が互いに対応する場合、前記第2の完全性保護データ項目を格納し、前記各更新されたメモリブロックコンテンツでメモリブロックの前記第1の部分集合を更新する工程と、
    前記処理ユニットが、前記格納されている第2の完全性保護データ項目に基づいて、前記更新されたメモリコンテンツの完全性検査を遂行する工程とをさらに含む請求項1に記載の方法。
  3. 前記完全性検査を遂行する工程が、前記各更新されたメモリブロックコンテンツでメモリブロックの前記第1の部分集合を更新した後に、前記更新されたメモリの監査完全性保護データ項目を計算する工程と、前記計算された監査完全性保護データ項目と前記格納されている第2の完全性保護データ項目とを比較する工程とを含む請求項2に記載の方法。
  4. 前記第1及び前記第2の完全性保護データ項目を並列プロセスとして計算する工程が、前記第1及び第2の完全性保護データ項目の任意の1つの計算を完了する前に、前記第1及び前記第2の完全性保護データ項目の計算を始動する工程を含む請求項1〜3のいずれか一項に記載の方法。
  5. 前記第1及び第2の完全性保護データ項目のそれぞれを計算する工程が、いくつかの反復を含む、対応する反復プロセスを遂行する工程を含み、
    それぞれの反復が、前記複数のメモリブロックの1つ以上を処理することを含み、それぞれの反復が、その後の反復を処理する前に、前記第1及び前記第2の完全性保護データ項目の計算のために遂行される請求項1〜4のいずれか一項に記載の方法。
  6. 並列プロセスとして前記第1及び前記第2の完全性保護データ項目を計算する工程が、その後のメモリブロックを処理する前に、それぞれのメモリブロックが前記第1及び前記第2の完全性保護データ項目の計算のために処理されるよう、前記複数のメモリブロックを順次処理する工程を含む請求項1〜5のいずれか一項に記載の方法。
  7. a)前記処理ユニットが、第1のメモリブロックの現在のメモリブロックコンテンツを取得する工程と、
    b)前記処理ユニットが、前記第1の完全性保護データ項目の計算のために、前記取得された現在のメモリブロックコンテンツを処理する工程と、
    c)前記処理ユニットが、メモリブロックの第1の部分集合が前記第1のメモリブロックを含む場合には、前記第2の完全性保護データ項目の計算のために、前記第1のメモリブロックの前記更新されたメモリコンテンツを取得して処理し、含まない場合には、前記第2の完全性保護データ項目の計算のために、前記第1のメモリブロックの前記取得された現在のメモリブロックコンテンツを処理する工程と、
    d)前記処理ユニットが、すべてのメモリブロックについて項目a)〜c)を遂行する工程とを含む請求項1〜6のいずれか一項に記載の方法。
  8. 前記処理デバイスがモバイル端末である、請求項1〜7のいずれか一項に記載の方法。
  9. 前記メモリがフラッシュメモリである、請求項1〜8のいずれか一項に記載の方法。
  10. 前記処理ユニットが、前記更新されたメモリブロックコンテンツを含むデータ項目を受信する工程をさらに含む請求項1〜9のいずれか一項に記載の方法。
  11. 前記データ項目を受信する工程が、暗号化認証プロセスを適用することにより前記データ項目を検証する工程を含む請求項10に記載の方法。
  12. 前記データ項目が、デルタ更新パッケージを含む請求項10又は11に記載の方法。
  13. 前記データ項目を受信する工程が、前記更新されたメモリブロック全体にわたって計算されたデジタル署名を受信する工程を含み、更新を必要とする前記複数のメモリブロックの第1の部分集合を判断する工程が、前記更新されたメモリブロックの前記デジタル署名を検証する工程をさらに含む請求項10〜12のいずれか一項に記載の方法。
  14. 前記完全性保護データ項目が、メッセージ認証コードである請求項1〜13のいずれか一項に記載の方法。
  15. 前記第1及び第2の完全性保護データ項目を計算する工程が、メッセージ認証コードのハードウェア実装によって遂行される請求項14に記載の方法。
  16. 前記第1及び第2の完全性保護データ項目を計算する工程が、
    一連の反復を含む反復メッセージ認証コード計算プロセスを実施するよう適応されたメッセージ認証計算モジュールを提供する工程であって、それぞれの反復が、1組の状態変数を更新する、工程と、
    各第1及び第2の組の状態変数を格納するための第1及び第2の組のレジスタを提供する工程と、
    前記メッセージ認証計算モジュールに、前記第1及び第2の完全性保護データ項目の計算の反復を交互に遂行させ、前記第1及び第2の組のレジスタを交互に更新させる工程とを含む請求項14又は15に記載の方法。
  17. 請求項1〜16のいずれか一項に記載の方法のステップを遂行することにより、メモリ内に格納されているメモリコンテンツの少なくとも一部の更新を遂行するよう構成された処理デバイス。
  18. 前記処理デバイスが前記メモリを含む、請求項17に記載の処理デバイス。
  19. 前記処理デバイスがモバイル端末である、請求項17〜18のいずれか一項に記載の処理デバイス。
  20. 前記メモリがフラッシュメモリである、請求項17〜19のいずれか一項に記載の処理デバイス。
  21. 前記更新されたメモリブロックコンテンツを含むデータ項目を受信する手段をさらに備える請求項17〜20のいずれか一項に記載の処理デバイス。
  22. 前記データ項目が、デジタル署名によって保護され、前記処理ユニットが、さらに、前記デジタル署名を検証するよう適応された請求項21に記載の処理デバイス。
  23. 前記処理ユニットがメッセージ認証コードを実施するためのハードウェアモジュールを備える、請求項17〜22のいずれか一項に記載の処理デバイス。
  24. 前記処理ユニットが、
    一連の反復を含む反復メッセージ認証コード計算プロセスを実施するよう適応されたメッセージ認証計算モジュールであって、それぞれの反復が、1組の状態変数を更新することを含む、メッセージ認証計算モジュールと、
    各第1及び第2の組の状態変数を格納するための第1及び第2の組のレジスタとを備え、
    前記処理手段が、前記メッセージ認証計算モジュールに、前記第1及び第2の完全性保護データ項目の計算の反復を交互に遂行させ、前記第1及び第2の組のレジスタを交互に更新させるよう適応された、請求項17〜2のいずれか一項に記載の処理デバイス。
  25. コンピュータを、
    前記処理デバイスに、請求項1〜16のいずれか一項に記載の方法を実行させるプログラムコード手段として機能させるプログラム。
JP2007549817A 2005-01-07 2005-12-20 処理デバイスのメモリコンテンツの更新 Expired - Fee Related JP4854677B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP05388002.7 2005-01-07
EP05388002A EP1679573B1 (en) 2005-01-07 2005-01-07 Updating memory contents of a processing device
US64289405P 2005-01-11 2005-01-11
US60/642,894 2005-01-11
PCT/EP2005/013929 WO2006072410A1 (en) 2005-01-07 2005-12-20 Updating memory contents of a processing device

Publications (2)

Publication Number Publication Date
JP2008527510A JP2008527510A (ja) 2008-07-24
JP4854677B2 true JP4854677B2 (ja) 2012-01-18

Family

ID=34942820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007549817A Expired - Fee Related JP4854677B2 (ja) 2005-01-07 2005-12-20 処理デバイスのメモリコンテンツの更新

Country Status (6)

Country Link
US (1) US8015378B2 (ja)
EP (1) EP1679573B1 (ja)
JP (1) JP4854677B2 (ja)
AT (1) ATE365938T1 (ja)
DE (1) DE602005001497T2 (ja)
WO (1) WO2006072410A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016508002A (ja) * 2013-02-07 2016-03-10 クアルコム,インコーポレイテッド 固定長データ構造の完全性を保護するための方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5090066B2 (ja) * 2006-06-08 2012-12-05 パナソニック株式会社 データ格納装置、管理サーバ、集積回路、データ更新システム、家電機器、データ更新方法、暗号化方法、および、暗復号鍵生成方法
US8842836B2 (en) * 2007-11-26 2014-09-23 Koolspan, Inc. System for and method of cryptographic provisioning
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8166368B2 (en) * 2009-02-24 2012-04-24 International Business Machines Corporation Writing a special symbol to a memory to indicate the absence of a data signal
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
EP2507991B1 (en) * 2009-12-04 2017-08-30 LG Electronics Inc. Digital broadcast receiver and booting method of digital broadcast receiver
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
KR20110118975A (ko) * 2010-04-26 2011-11-02 삼성전자주식회사 휴대용 단말기에서 펌웨어 업데이트를 수행하기 위한 장치 및 방법
US8555067B2 (en) 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
GB2499963B (en) 2010-12-09 2014-03-26 Ibm Computer-readable storage mediums for encrypting and decrypting a virtual disc
US9082474B2 (en) 2011-04-21 2015-07-14 Micron Technology, Inc. Method and apparatus for providing preloaded non-volatile memory content
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
US9135446B2 (en) * 2012-09-28 2015-09-15 Intel Corporation Systems and methods to provide secure storage
US9973492B2 (en) 2012-12-25 2018-05-15 At&T Mobility Ip, Llc Unified mobile security system and method of operation
US9443107B2 (en) * 2013-02-19 2016-09-13 Qualcomm Incorporated Method for protecting the integrity of a group of memory elements using an aggregate authentication code
US9633227B2 (en) * 2013-07-29 2017-04-25 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and system of detecting unauthorized data modification
US20150235052A1 (en) * 2014-02-17 2015-08-20 Samsung Electronics Co., Ltd. Electronic device and method for protecting users privacy
US9430220B2 (en) * 2014-07-22 2016-08-30 GM Global Technology Operations LLC Method, medium, and apparatus for re-programming flash memory of a computing device
US9560030B2 (en) 2014-11-07 2017-01-31 Kaiser Foundation Hospitals Nodal random authentication
CN107111730B (zh) * 2014-11-07 2021-01-08 新思公司 用于数据存储的完整性保护
US9560046B2 (en) 2014-11-07 2017-01-31 Kaiser Foundation Hospitals Device notarization
US10042780B2 (en) * 2014-11-07 2018-08-07 Synopsys, Inc. Integrity protection for data storage
DE102015224300A1 (de) * 2015-12-04 2017-06-08 Siemens Aktiengesellschaft Speicherprogrammierbarer Baustein und Verfahren zur geschützten Übertragung von Daten auf einen speicherprogrammierbaren Baustein
DE102016221108A1 (de) 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
JP7458763B2 (ja) 2018-12-13 2024-04-01 ソニーセミコンダクタソリューションズ株式会社 階層セキュリティを備えたフラッシュ変換層
CN111695111A (zh) * 2020-06-15 2020-09-22 浙江中控技术股份有限公司 固件程序的安全启动方法及装置
US20220416996A1 (en) * 2021-06-25 2022-12-29 Graphcore Limited Block Cipher Encryption Pipeline

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108811A (ja) * 2000-07-24 2002-04-12 Sony Corp データ処理装置およびデータ処理方法、並びにプログラム提供媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581790A (en) * 1994-06-07 1996-12-03 Unisys Corporation Data feeder control system for performing data integrity check while transferring predetermined number of blocks with variable bytes through a selected one of many channels
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US20020069316A1 (en) * 1998-04-15 2002-06-06 Mattison Phillip E. Method and apparatus for protecting flash memory
US6295604B1 (en) * 1998-05-26 2001-09-25 Intel Corporation Cryptographic packet processing unit
US7558953B2 (en) * 2002-01-18 2009-07-07 Telefonaktiebolaget L M Ericsson (Publ) Loading data into a mobile terminal
US20050257205A1 (en) * 2004-05-13 2005-11-17 Microsoft Corporation Method and system for dynamic software updates

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108811A (ja) * 2000-07-24 2002-04-12 Sony Corp データ処理装置およびデータ処理方法、並びにプログラム提供媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016508002A (ja) * 2013-02-07 2016-03-10 クアルコム,インコーポレイテッド 固定長データ構造の完全性を保護するための方法

Also Published As

Publication number Publication date
JP2008527510A (ja) 2008-07-24
DE602005001497T2 (de) 2008-03-13
ATE365938T1 (de) 2007-07-15
EP1679573A1 (en) 2006-07-12
US8015378B2 (en) 2011-09-06
EP1679573B1 (en) 2007-06-27
US20080222368A1 (en) 2008-09-11
DE602005001497D1 (de) 2007-08-09
WO2006072410A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
JP4854677B2 (ja) 処理デバイスのメモリコンテンツの更新
US8627086B2 (en) Secure loading and storing of data in a data processing device
JP4856080B2 (ja) データ処理装置へのデータのセキュリティ上安全なロード及び格納
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US8751818B2 (en) Method and apparatus for a trust processor
US8732445B2 (en) Information processing device, information processing method, information processing program, and integrated circuit
US8880898B2 (en) Anti-roll-back mechanism for counter
US8201240B2 (en) Simple scalable and configurable secure boot for trusted mobile phones
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
US8250373B2 (en) Authenticating and verifying an authenticable and verifiable module
US7506381B2 (en) Method for securing an electronic device, a security system and an electronic device
US7886355B2 (en) Subsidy lock enabled handset device with asymmetric verification unlocking control and method thereof
KR101229148B1 (ko) 소프트웨어 신뢰성 검증 방법, 장치 및 컴퓨터 판독가능 매체
US20090282254A1 (en) Trusted mobile platform architecture
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
RU2408071C2 (ru) Защищенные загрузка и хранение данных в устройстве обработки данных
JP2024501395A (ja) 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体
KR20070017455A (ko) 프로세서 내에서의 보호된 리소스들로의 억세스에 대한안전한 보호 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110912

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

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

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

Ref document number: 4854677

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees