[go: up one dir, main page]

JP5175856B2 - セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法 - Google Patents

セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法 Download PDF

Info

Publication number
JP5175856B2
JP5175856B2 JP2009537138A JP2009537138A JP5175856B2 JP 5175856 B2 JP5175856 B2 JP 5175856B2 JP 2009537138 A JP2009537138 A JP 2009537138A JP 2009537138 A JP2009537138 A JP 2009537138A JP 5175856 B2 JP5175856 B2 JP 5175856B2
Authority
JP
Japan
Prior art keywords
flash memory
mac
data
stored
memory 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.)
Active
Application number
JP2009537138A
Other languages
English (en)
Other versions
JP2010510574A (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 JP2010510574A publication Critical patent/JP2010510574A/ja
Application granted granted Critical
Publication of JP5175856B2 publication Critical patent/JP5175856B2/ja
Active 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

データ秘密性と信憑性が実質滴に必要条件となるコンシューマー向け装置(consumer devices)や器具(appliances)において、フラッシュメモリは世界的に普及するに至った。フラッシュメモリ・デバイス上のデータに対して秘密性と信憑性を提供するために数々の技術が使われている。セキュリティ機構は、そのようなフラッシュメモリ・デバイスドライバに実装されてもよいし、オペレーティング・システムの実装に関連してもよい。
データの暗号化と復号化は、コンピュータのデータ記憶装置に通常よくあることである。データを格納する際に、暗号化技術がしばしば使われる。このような技術を使うことで不正アクセスからセキュリティレベルが確保されるが、異なったコンピュータプラットホームにもかかわらず、データを格納したり、記憶装置からデータを読み込んだりする際には同じ暗号化方法を使っているという現実がある。これらの方法には、以下のものに限定されるわけではないが、データ暗号規格(DES)、新暗号規格(AES)、及びSHA(セキュア・ハッシュ・アルゴリズム)がある。異なるプラットホームにもかかわらず共通の暗号化方法を用いているため、仮にある者が鍵を入手した場合(access to the key)、1台のコンピュータから記憶装置を取り外し、同じ方法を使う他のコンピュータ上で暗号化されたデータを読み込むことが可能である。セキュリティを十分にするには、鍵はあらゆるプラットホームで共通な鍵であってはいけない。さもなければセキュリティはその単一鍵だけの秘密保持性に依存することになるだろう。
幾つかのアプリケーションでは、メッセージ認証コード(例:HMACs)が、メッセージブロックのための認証検証データを提供するのに使用される。データブロックにおいてMACを格納することは、許容データや読み書き性能オーバーヘッドを生み出さなければならない。1つの望ましい特徴は、フラッシュメモリ・デバイスにおけるビットエラーに対し堅牢な方法を提供することにある。もう1つの望ましい特徴は、複数アプリケーションからのデータが、オペレーティング・システムにおいて互いにプロテクトされるべきであることである。即ち、あるアプリケーションをアクセスに用いて、別のアプリケーションやそのデータを制御したり変更したりできることがあってはならない。
USBフラッシュドライブは、フラッシュメモリを使用する一般的な記憶装置であり、その比較的小さなサイズがエンドユーザに対しコンピュータ情報やそこに格納されたデータのポータビリティを容易にする。例えば、エンドユーザは、1台のコンピュータのUSBポートにフラッシュドライブデバイスを装着し、情報をこのデバイスに格納し、デバイスを取り外して別のコンピュータのUSBポートに装着し、格納された情報を読み込むことができる。データが1つのプラットホームによって暗号化されたとしても、鍵がそのプラットホームによってプロテクトされない限りは、共通な暗号化技術を他のプラットホーム上で用いることでそのデータはセキュアだとは言えなくなる。加えて、フラッシュメモリ・デバイスへの読み書きを可能にする様々なデバイスが、消費者にとって入手可能な状態で存在する。このため、フラッシュメモリ・デバイスをセキュリティ違反からプロテクトするような、更なるセキュリティ機構が必要である。
上述したこれら関連技術の例や制限事項は、あくまで説明に役立つものとして例証したものであって排他的ではない。関連技術の他の制限事項は、当該技術者が本願明細書を読み、図面を検討することにより明らかになるであろう。
フラッシュメモリ・デバイスやそれに不可欠なデータブロックに対してセキュリティ対策を提供する技術は、1つのコンピュータプラットホームにインストールされた状態におけるデバイスに特有の情報変数(informational variables)を抜粋して、使用するといったような暗号法の採用を含む。データブロックは、フラッシュメモリ・デバイスにおけるデータのアクセス単位である。フラッシュメモリ・デバイスのデータブロックは、消費者に入手可能な種々のデバイスを使用することで読み書き可能となるため、フラッシュメモリ・デバイスのセキュリティ違反に対してプロテクトする機構が必要である。
1つの具体的な実施形態では、データブロックに書かれたデータは暗号化され、MACは認証のために使用される。データブロックから読み込まれたデータは復号化され、MACは検証される。その順番は交換可能である。代表的なセキュアデバイスでは、セキュリティカーネルは認証付きで読み込まれ、セキュア・オブジェクトストア(secure object store)や、様々なクライアントに対するAPIインターフェースをサポートする。暗号化/復号化機能、MACの計算、及びデータ検証は、セキュリティカーネルで実行されるものである。セキュリティカーネルは、鍵データベースにおける鍵をプロテクトし、鍵のオーナーシップを強化し、機密性を維持する。鍵は、別のI/Oドライバ、例えばネットワーク・ドライバにアクセスすることはできない。フラッシュデバイス・ドライバに対応する鍵は、セキュリティカーネルにアクセス可能な不揮発性メモリに格納されるか、さもなければ乱数発生器(RNG)を使用して内部的に生成され格納されても良い。セキュリティカーネルは、アプリケーション・プログラミング・インターフェース(API)を介してオペレーティング・システムとのインターフェースを取り、フラッシュ・オペレーティング・システムだけが暗号化/復号化やMACの計算、及びデータ検証のために鍵を獲得するのを可能にしている。鍵は、API境界を超えて露出(exposed)されることはない。セキュリティカーネルによって発呼者を特定することができ、鍵使用の際のプロテクトを強化することができる。そのようなプロテクトがなければ、他のI/Oドライバやアプリケーションを使用し、セキュリティAPIにアクセスできる如何なるクライアントのソフトウェアやデータを侵害することで、フラッシュ・オペレーティング・システムのセキュリティが壊される可能性もある。
本発明の実施形態を図面に示す。しかしながら、ここに示した実施形態と図面は、本発明を制限するものというよりむしろ説明するためのものであって、本発明の例を提供するものである。
ここで説明される技術を実施するのに適したコンピュータ・システムを示す図である。 ここで説明される技術を実施するのに適したセキュアシステムの例を示す図である。 フラッシュメモリ・デバイスの例を示す図である。 バージョン管理されたファイルを格納する方法の例のフローチャートである。 バージョン管理されたファイルを読み込む方法の例のフローチャートである。
以下の説明では、本発明の実施形態の十分な理解を与えるために幾つかの特定の具体的な構成が提示される。しかし、当業者であれば、1つ以上のこれら特定の具体的な構成がなくとも、あるいは他の構成部などとの組み合わせにより、本発明を実施することが可能であることが理解されるであろう。また別の例では、様々な実施形態における本発明の特徴を曖昧にすることを避けるため、周知の具体的構成や動作は、図示または詳細に説明されていない。
図1はここで説明される技術の実施に適するコンピュータ・システム100を示している。コンピュータ・システム100は、コンピュータ102、I/Oデバイス104、及びディスプレイデバイス106を含む。コンピュータ102は、プロセッサ108、通信インターフェース110、メモリ112、ディスプレイコントローラ114、不揮発性記憶装置116、及びI/Oコントローラ118を含む。コンピュータ102は、I/Oデバイス104とディスプレイデバイス106に接続する形でも、あるいはそれらを含む形でも良い。
コンピュータ102は、モデムやネットワークインターフェースを含んでもよい通信インターフェース110を介し、外部システムと接続する。通信インターフェース110は、コンピュータ・システム100の一部かコンピュータ102の一部として考えることができる。通信インターフェース110は、アナログ・モデム、ISDNモデム、ケーブルモデム、トークン・リング・インタフェース、衛星通信インターフェース(例えば、“ダイレクトPC”)、又は1つのコンピュータ・システムを他のコンピュータ・システムに接続する他のインターフェースのいずれでも良い。従来のコンピュータは通常、一種の通信インターフェースを備えるが、インターフェースを含まないコンピュータを作成することで、通信インターフェース110を厳密な意味で任意的なものとすることができる。
プロセッサ108は、それに限定されない一例として、インテル社のペンティアム(登録商標)マイクロプロセッサやモトローラ社のパワーPCマイクロプロセッサなどの従来マイクロプロセッサを具備しても良い。プロセッサ108は、総ての従来型コンピュータにとって重要な部品と言えるが、ここで説明した技術を実施するためには、適用可能な如何なる公知の(又は手頃な)プロセッサを使用することも可能である。メモリ112は、バス120によって、プロセッサ108に接続される。メモリ112(以下、“主記憶装置(primary memory)”と呼ぶこともある)は、ダイナミック・ランダムアクセス・メモリ(DRAM)を備えたり、またスタティック・ラム(SRAM)を備えたりすることも可能である。バス120は、プロセッサ108をメモリ112に接続したり、又不揮発性記憶装置116にも、ディスプレイコントローラ114にも、更にI/Oコントローラ118にも接続したりすることができる。
I/Oデバイス104は、キーボード、ディスクドライブ、プリンタ、スキャナ、及びマウスか他のポインティング・デバイスを含む他の入出力装置を含むことができる。説明のため、これらI/Oデバイスの少なくとも1つを、DVDプレーヤーのようなブロックベースドメディアデバイスと仮定する。ディスプレイコントローラ114は、公知の又は手頃な方法で、ディスプレイデバイス106上のディスプレイを制御しても良く、ディスプレイデバイス106は、例えば、ブラウン管(CRT)だったり、液晶ディスプレイ(LCD)だったりする。
ディスプレイコントローラ114とI/Oコントローラ118はデバイスドライバを具備しても良い。デバイスドライバは、ハードウェアデバイスとの相互作用を可能にするべく開発された特定のコンピュータ・ソフトウェアである。通常、これは、デバイスと通信するためのインターフェースを構成し、ハードウェアが接続されるバスや通信サブシステムを介し、デバイスへの命令送信及び/又はデバイスからのデータ受信を実行する一方、必要不可欠なものはOSとソフトウェアアプリケーションと相互作用する。
デバイスドライバは、OS特有でもあるハードウェア依存型コンピュータ・プログラムを含んでもよい。そのコンピュータ・プログラムにより、別のプログラム(通常OS、アプリケーションソフトウェアパッケージ、又はOSカーネル上で動くコンピュータ・プログラム)は、透過的にハードウェアデバイスと相互作用することができ、同コンピュータ・プログラムは通常、ニーズと調和した如何なる必要な非同期・時間依存型ハードウェアにも必要不可欠な割り込み処理を提供する。
往々にして不揮発性記憶装置116(以下、“補助記憶装置(secondary memory)”と呼ぶこともある)は、磁気ハードディスクだったり、光ディスクだったり、或いは大量データ用の他の種類の記憶装置だったりする。このデータのいくつかはしばしば、コンピュータ102でソフトウェアを実行している間に、ダイレクトメモリアクセスプロセスによってメモリ112に書き込まれる。不揮発性記憶装置116は、ブロックベースドメディアデバイスを含むものでも良い。“機械可読メディア”や“コンピュータ可読メディア”という用語は、プロセッサ108によってアクセス可能であって、データ信号を符号化する搬送波を包含する如何なる公知の(又は手頃な)記憶装置をも含んでいる。
コンピュータ・システム100は、異なったアーキテクチャを持っている多くの実行可能なコンピュータ・システムの一例である。例えば、インテルマイクロプロセッサをベースとするパーソナルコンピュータは往々にして複数のバスを有し、その1つは周辺機器へのI/Oバスであったり、プロセッサ108とメモリ112を直接接続するもの(しばしば“メモリバス”と呼ばれる)であったりする。これらのバスは、バスプロトコルが異なることによって必要とされる如何なる変換(translation)を実行できるブリッジコンポーネントを介して接続される。
ネットワーク・コンピュータは、ここで提供した教示に関連して使用可能な別のタイプのコンピュータ・システムである。通常、ネットワーク・コンピュータはハードディスクや他の大容量記憶装置を備えておらず、実行可能プログラムは、プロセッサ408による実行のために、ネットワーク接続からメモリ112に取り込まれる。当該技術では既知のウェブテレビシステムも又、1つのコンピュータ・システムと考えることもできるが、ある入力や出力装置のように図1に示した特徴の幾つかを欠く可能性がある。通常、一般的なコンピュータ・システムは、少なくともプロセッサ、メモリ、メモリをプロセッサに接続するバスを具備することになる。
オペレーティングシステム(OS)でコンピュータ・システム100を制御しても良い。OSは、全部ではないが殆どのコンピュータ・システムに使用されるソフトウェアプログラムであって、コンピュータのハードウェア及びソフトウェア・リソースを管理している。通常、OSは、メモリを制御して割り当てをしたり、システムの要求に優先順位を付けたり、入出力装置を制御したり、ネットワーキングを補助したり、ファイルを管理するといったような基本タスクを実行するものである。パーソナルコンピュータ用オペレーティングシステムの例としては、マイクロソフト社のウインドウズ(登録商標)やビスタ(登録商標)、リナックス、マックOS(登録商標)などがある。OSとアプリケーション・ソフトウエアとの間の線引きは往々にしてかなり難しい。幸いにも、何らかのリーズナブルな線引きで十分であるため、本願で説明した技術を理解するのにこの線引きは不要である。
通常、OSは、慣例的な階層化ディレクトリと、フラッシュメモリ・デバイスに格納されたデータのファイルベースド組織(file based organization)を提供する。加えて、OSはディレクトリやファイル上における読み(read)、書き(write)、及び承認の実行(execute permissions)に基づく代表的なアクセスコントロールを実行する。それ自体、セキュアデバイス上で認証されたセキュアOSの一部であるオペレーティング・システムを介してフラッシュへのデータアクセスがなされる際に、上記アクセスコントロールが実行される。
最も低いレベルのOSとしては、その(OSの)カーネルであっても良い。通常、カーネルは、システムブートや、スタートアップする際にメモリに取り込まれるソフトウェアの第1の層(first layer)である。カーネルは、他のシステムやアプリケーション・プログラムに対する様々な共通コアサービスへのアクセスを提供する。
ここに使用されたように、コンピュータメモリ中のデータ・ビットにおける操作のアルゴリズム的記述と象徴(symbolic representations)は、当業者に対し最も効果的に技術を伝えるものと思われる。アルゴリズムという用語は、ここで使用するとき、また一般に使用されるとき、所望の結果を導き出す動作(operations)の首尾一貫したシーケンス(self-consistent sequence)と考えられる。この動作は、物理量の物理的な操作(manipulations)を必要とするものである。必ずしも必要ではないが、通常、こうした量は、格納、転送、結合、比較、及び他の操作を行うことができる電気、または磁気の信号の形を取る。時には、主に一般的な使用のために、こうした信号をビット(bits)、値(values)、要素(elements)、記号(symbols)、文字(characters)、項(terms)、数字(numbers)などと呼ぶのが便利であることがわかっている。
しかしながら、これら、及びこれらと同様の用語はすべて、適切な物理量に関連付けられ、単にこうした量に適用される手頃なラベル(labels)にすぎないことを心に留めておくべきである。特に明記しない限り、または下記の記述から明らかであるように、“処理する(processing)”、“演算する(computing)”、“計算する(calculating)”、“決定する(determining)”、“表示する(displaying)”などの用語は、コンピュータ・システムのレジスタおよびメモリ内の物理的な(電子)量として表されるデータを操作し、コンピュータ・システムのメモリまたはレジスタ、または他のこうした情報記憶装置、送信装置またはディスプレイデバイス内の同じように物理(電子)量として表される他のデータに変換するコンピュータの動作および処理(process)を指す。
ここで説明した技術を実施するための装置は、要求された目的のためにそれ専用に構成しても良く、又コンピュータに格納されたコンピュータ・プログラムによって選択的に起動(activated)されたり再構成(reconfigured)されたりする汎用コンピュータから成るものでも良い。そのようなコンピュータ・プログラムは、それらに限定されるものではないが例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光学カード、フレキシブルディスクを含む如何なるタイプのディスク、光ディスク、CD-ROM、DVD、光磁気ディスク、或いは電子的な指示(instructions)を格納するのに適した如何なる公知の(又は手頃な)の媒体のような、コンピュータ可読記憶媒体に格納されても良い。
ここに提示されたアルゴリズムとディスプレイは本来、如何なる特定コンピュータ・アーキテクチャにも関連するものではない。この技術は、高いレベル(例えば、C/C++)であろうと低レベル(例えば、アセンブリ言語)だろうと、又インタープリタ型(例えば、Perl)だろうと、コンパイラ型(例えば、C/C++)だろうと、バイトコード(例えば、Java(登録商標))からコンパイルされるジャストインタイム(JIT)であろうと、如何なる公知の(又は手頃な)プログラミング言語を使用して実施されても良い。どんな公知の(又は手頃な)コンピュータでも、アーキテクチャに関係なく、コンパイルされた機械コードか、さもなければ何らかの言語からコンピュータ・アーキテクチャと互換性がある機械コードへとアセンブルされた機械コードを実行することが可能でなければならない。
図2は、ここに記載した技術を実施するのに適していたセキュアシステム200の一例を示している。代表的なセキュアシステム500は、ペイ・パー・ビュー方式の装置(pay-per-view device)、ゲーム機、メディアプレーヤー、埋め込み型(embedded)セキュアデバイス、セキュアプロセッサ付き“従来型”PC、或いはセキュアプロセッサを備える他のコンピュータ・システムを備えても良い。
図2の例においてセキュアシステム200は、セキュアプロセッサ202、OS204、フラッシュメモリ・デバイスドライバ206、フラッシュメモリ・デバイス208、及びプロテクト・メモリ510を含む。図5の例ではOS204は、鍵ストア216、暗号化/復号化エンジン216、及びセキュリティAPI218を順に含むセキュリティカーネル212を有する。別の実施形態では、セキュリティカーネル212に乱数発生器(RNG)(図示せず)を設けても良い。上述したこれら部品の1つ又はそれ以上、或いはその一部を、プロテクト・メモリ510又はプロテクトされていないメモリ(図示せず)に属させるようにしても良いことを留意すべきである。
さらに留意すべきは、慣例だけによって、セキュリティカーネル212が、OS504に属するように表現されていることである。実際にOS204の一部であってもなくても良く、OSの外側に存在することも、或いはOSを含まないシステム上に存在することも可能である。説明を簡単にする目的で、OS204は認証可能であることが前提である。実施形態では、フラッシュメモリ・デバイスドライバ206は、OS204の一部であっても良い。認証付きのフラッシュメモリ・デバイスドライバ206を読み込むこと(loading)が、セキュリティを向上できるという理由で、これは望ましいかもしれない。
フラッシュメモリ・デバイス208として使用可能なフラッシュメモリ・デバイスの例を、図3を参照して説明する。フラッシュメモリ・デバイスドライバ206は、フラッシュメモリ・デバイス208にデータを保存すると共に、同デバイスからデータを読み込む。フラッシュメモリ・デバイスドライバ206は、自身に関連した独自のプロテクト鍵または秘密鍵を有し、同鍵はセキュリティカーネル212の鍵ストア214に格納される。これに代えて、プロテクト鍵が、セキュリティカーネル212に格納された乱数発生器(RNG)(図示せず)機能を用いて記憶されるようにしても良い。セキュリティカーネル212はプロテクト鍵の使用を実行する。一実施形態では、フラッシュメモリ・デバイスドライバ206は、セキュリティカーネル212にある鍵ストア214内に鍵を所有し、同鍵は、例えばネットワーキングのような別のI/Oドライバによってアクセス不可能になっている。セキュリティカーネル212は、セキュリティAPI218に対して露出され(is exposed)、フラッシュメモリ・デバイスドライバ206は、メッセージ認証コード(MAC)や鍵付きハッシュメッセージ認証コード(HMAC)を暗号化したり復号化したり、又は計算したりするために、プロテクト鍵を使用しても良い。
説明の簡略化のために、プロテクト・メモリ210は単一メモリとして示される。しかしながら、このプロテクト・メモリ210は、プロテクトされた主記憶装置、プロテクトされた補助記憶装置、及び/又は、シークレットメモリを含んでも良い。メモリがプロテクトされるのを確実とするためには、公知の(又は手頃な)メカニズムが適所にあることが前提である。主記憶装置と補助記憶装置との間、及び/又は、揮発性記憶装置と不揮発性記憶装置との間のインタープレイ(interplay)は、公知であるため、様々な種類のメモリと記憶装置の間の区別は図2に関しては示されていない。
一実施形態では、セキュリティカーネル212が、起動時点において読み込み(loaded)されてもよい。別の実施形態では、セキュリティカーネル212の一部が、起動時点において読み込みされ、残りが後で読み込みされても良い。セキュアな方法(技術的に安全性が保証された方法、in a secure manner)で、セキュリティカーネル212を読み込みするべく、如何なる公知の(又は手頃な)技術も使用可能である。
鍵ストア214は、フラッシュメモリ・デバイスドライバ206のプロテクト鍵のような鍵のための格納場所群からなる。鍵を格納するのに使用されるデータ構造は重要な意味をもつものではないが、鍵ストア214は、鍵の一配列と思われても良い。鍵を格納するために、適用可能な如何なる公知の(又は、手頃な)構造も使用可能である。非限定的な実施形態では、鍵ストア214は、静的な(static)鍵を以て初期化されるが、可変鍵(variable keys)は初期化されない(或いは、セキュアでない値に初期化される)。例えば、幾つかの鍵ストア位置(key store locations)は、認証されたセキュリティカーネル212の読み込み(loading)の一部としての信頼値(例えば信頼ルート鍵)で予備充填(pre-filled)される。不揮発性メモリにおけるプライベートキーは、ここから取り出すことも、また将来の使用に備えて鍵ストアに格納することも可能である。
一実施形態において、暗号化/復号化エンジン216は、暗号化と復号化の両方が可能である。例えば、かかる動作において、アプリケーションは、セキュリティAPI218に、アプリケーションが暗号化に使用できるというキーハンドルを要求するかもしれない。
暗号化/復号化エンジン216を、キーハンドルを使用してデータを暗号化するのに使用しても良い。好都合なことには、セキュリティAPI218は、キーハンドルを平文で提供するが、鍵そのものは決してセキュリティカーネル212から離れることはない。
セキュリティAPI218は、鍵を明らかにすることなく(すなわち、鍵がセキュリティカーネル212を離れないか、或いは暗号化される場合にだけに限って鍵がセキュリティカーネル212を離れるような状態で)、鍵ストア214内の鍵を使用した動作を実行することができる。セキュリティAPI218は、鍵ストア214で鍵(そして潜在的には、他のセキュリティマテリアル)を作成(create)し、投入(populate)し、使用するためのサービスを含んでも良い。また、一実施形態では、セキュリティAPI218は、秘密鍵とデバイス・プライベートキーを含む、内部の秘密と不揮発性データへのアクセスを与える。例えば、フラッシュメモリ・デバイスドライバ206のプライベートキーは、鍵ストア214に格納されたり、セキュリティAPI218に使用されたりするかもしれない。1つのAPI呼び出し(API call)が、(ここで記述した、証明書を作成するためのアルゴリズムを用いて)デバイス証明書を戻すために使用されることも可能である。また復号化のための共用鍵を算出するためにプライベートキーを使用したり、メッセージや証明書に署名するためにプライベートキーを使用したりするために、別のAPI呼び出しが構成されることが可能である。実装の形態によっては、セキュリティAPI218は、ハードウェア加速を使用することで暗号化オペレーションをサポートするようにしても良い。
図3は、フラッシュメモリ・デバイス300の一例を示している。フラッシュメモリ・デバイス300は、フラッシュヘッダ302と、データブロック304−1〜304−N(以下、データブロック304と総称する)を含む。1つの具体的な実施形態では、フラッシュヘッダ302は、後述するフラッシュメモリ・デバイス用グローバルバージョン番号(GVN_f)を含む。
1つ又はそれ以上のデータブロック304は、フラッシュメモリ・デバイス300に格納されたファイルと関連性を持つ。データブロック304は、各メタデータ306−1〜306−N(以下、メタデータ306と総称する)と、格納データ308−1〜308−N(以下、格納データ308と総称する)とを含む。データブロック304における格納データ308は、(一例であってこれらに限定されるものではないが)DESやAESのような暗号化関数を使って暗号化されても良い。 以下で説明される具体的な実施形態では、各データブロックは、後述するMACとファイルバージョン番号(VN_f)によってプロテクトされる。
1つの具体的な実施形態で、メタデータ306は、フラッシュページの予備エリアに格納される。予備エリアは、物理的に格納データ308を含んだデータエリアの前に、データエリアの後に、或いはデータエリアそのものの内部に位置されてもよい。図3の例で、メタデータ306が、格納データ308の“上方”に記述されているのは、あくまで例証目的で示されたものであって、それに限定した形で構成されるべきではない。
オペレーティング・システムまたはセキュリティカーネルは、フラッシュメモリ・デバイスドライバの使用を介して、慣例的な階層化ディレクトリやフラッシュメモリ・デバイス300に格納されるファイル構造を提供しても良い。更に、オペレーティング・システムまたはセキュリティカーネルは、フラッシュメモリ・デバイス300に格納されたファイル上における読み(read)、書き(write)、及び承認の実行(execute permissions)に基づく代表的なアクセスコントロールを実施してもよい。このアクセスコントロールは、格納データ308へのアクセス要求がセキュアデバイスによってなされた時に実行されるようにしても良い。フラッシュメモリ・デバイス300を取り外したり、セキュアデバイス外のデバイスを異なるデバイス上で読み込んだり、再プログラミングしたりすることでセキュアデバイスのプロテクションを避けるといったようなセキュリティ違反に対して、上述したアクセスコントールが、単独でデバイスをプロテクトするものではない。顧客によっては、フラッシュメモリ・デバイス300を読み込み可能にするだけでなく、書き込み可能にするような種々の公知の(又は手頃な)デバイスを使用する可能性もある。このようなことに対処するべく、更なるセキュリティ機構が求められるかも知れない。
1つの具体的な実施形態では、データブロック304に対しセキュリティを提供するために、各データブロック304に格納されたデータ308が暗号化され、算出されたMACが、ブロックと共に格納される。逆に、各データブロック304から読み出された格納データ308は復号化され、算出されたMACが検証される。この順番については取り換え可能である。
MACの演算
MACを計算するために、多くの変数が強制的にフラッシュメモリ・データブロックに含められる場合がある。1つの具体的な実施形態では、MAC計算の一部として、有益なデータ(informative data)の包含が、セキュリティカーネル内の信頼できるソフトウェア(trusted software)によって実行される。この実施形態の特定の実施態様において、この信頼できるソフトウェアとフラッシュデバイス・ドライバは、フラッシュメモリにアクセスする唯一の手段であって、言い換えればハードウェア及びソフトウェア機構によって実行されてもよい。これは、仮にフラッシュメモリ・デバイスが改竄された場合、各データブロックにある格納データが使用不可能になるのを潜在的に確実にしている。
適当なHMACを計算するために、特定の信頼できるデバイスドライバのみが関連する鍵や有益なデータへのアクセスが許される。セキュリティカーネルにより、オペレーティング・システムの他の部分や信頼されていないソフトウェアによってフラッシュデバイス上に有効な(usable)又は検証可能なデータを作成することが防止される。この処理は、セキュリティカーネルが、セキュリティAPIの発呼者(caller)を特定するために、特別に許可されたデータ(privileged data)を使用することで実行される。例えば、このデータとしては、プロセスID(process ID)、スレッドID(thread ID)、ユーザID(user ID)、及びオーナーシップスペースを分離するその他の技術を含むかもしれない。
MACの計算に含められることができる1つの値(one value)は、各ファイルに割り当てられかつ従来のファイルメタデータとしてフラッシュヘッダに格納される独自の数値(unique value)である。MACの計算に含められることができる別の値は、各フラッシュメモリ・データブロックの論理ブロックインデックスを示し、かつ予備エリアに格納される数値である。 MACの計算に含められることができる他の変数は、物理的なブロック番号、所有者ID、アプリケーション又はコンピュータ・システムいずれかの変数、或いはアプリケーションID変数を含む。加えて、アプリケーションは、IDに対し、アプリケーションによって管理されるファイルに書き込まれるデータにタグ付けを要求することができる。このタグ付きIDは、MACの計算に含められることができる。このようにしてアプリケーションにより、2つの管理ファイルのデータブロック同士の他方からのプロテクトを管理することができる。
認証コード作成方法の1つの具体的な実施形態では、データが配列であることを条件として、数値HMACh=HMAC(データ)の関係を作るかもしれない。そのような実施形態では、ユーザがデータ配列を供給するかもしれないし、セキュリティカーネルが幾つかの強制的な数値(mandatory values)を付加するかもしれない。例えば、h=HMAC(データ、ファイル名、ブロック番号、物理アドレス)で表される。場合によっては、アプリケーションは、タグ付きIDの追加を要求するかもしれない。例えば、APIへのインプットとして、ユーザはデータ配列とタグ付きIDを供給してもよく、セキュリティカーネルは、以下のように計算してもよい。h=HMAC(データ、ファイル名、ブロック番号、物理アドレス、タグ付きID)
カーネルにおける検証のために同じ固定次数(fixed order)が使用される限り、これらの量の配置(location)とシーケンスは固定的でなく、実際には変えることができる。重要な点は、これらの量のこのタグ付けは、発呼者によってこのデバイス上で削除したり制御したり任意に処置することが不可能であるということである。信頼できるカーネルは、データのブロックに認証情報を追加するために必要なルールを施行するであろう。
データのバージョン管理(Versioning the Data)
使用目的によっては、旧バージョンへの逆行を回避するべく、フラッシュメモリ・デバイス内において現行又は最新バージョンのファイルやデータを維持することが望ましい。ユーザがフラッシュメモリ・デバイスを置き換え、フラッシュメモリ・データブロック内の格納データを操作するのを防止するため、これはクライアントのためのプロテクトを提供することになる。仮に、使用データや消費情報、やペイ・パー・ビュー方式の情報がフラッシュメモリ・デバイスに格納されるならば、このようなことは特に好ましいこととなる。これは又、情報が最新バージョン番号に更新されたり維持されたりすべきものである、サーバの有効性や取消しリストのようなセキュリティ情報を格納することに有益であるかもしれない。強制的なセキュリティ更新を含み、ソフトウェア・パッチング及び更新機構は、セキュアなバージョン管理を実行する上でこの特徴を利用することもできる。
1つの具体的な実施形態では、セキュリティカーネルは、バージョン番号の正確な増加を実行する。セキュリティカーネルは、セキュアな不揮発性メモリにGVN_nを格納してもよい。この番号は、何らかのバージョン管理されたファイル(versioned file)が更新された際に更新され、例えば、キュリティカーネルに対してAPI呼び出しをすることによるオペレーティング・システムによって、アクセス可能であり、また更新可能でもある。
フラッシュメモリ・デバイスのフラッシュヘッダには、GVN_n値と同期し得るGVN_f値を含むファイルシステム・メタデータを含ませることも可能である。本実施形態では、このメタデータはそれ自体、如何なる必要な(又は望ましい)有益な値を使って作成されたMACによってプロテクトされている。フラッシュヘッダは、バージョン番号、フラッシュメモリ・デバイスに格納された各ファイルに夫々関連したVN_fも含んでも良い。
バージョン管理可能なファイルのバージョン番号が変わった時は、ファイルに関連したVN_fが更新され、GVN_fやGVN_nも続いて更新され、MACは再計算され、結果として得られたMACが格納されることになる。即ち、ファイルのバージョン番号における変化は、そのファイルに関連したデータブロック・セットのMACに影響する。この実施形態におけるGVN_nは、チップ内部の不揮発メモリの一部を成しており、セキュリティカーネルにアクセス可能であり、とりわけセキュリティカーネルの改竄に対する抵抗力を強くしている。これによりフレキシブルな機構が提供され、結果としてセキュアなチップ上でのハードウェア・セキュリティが拡大され、フラッシュメモリ・デバイス条におけるセキュアなバージョン管理が実行され、そのバージョン管理(versioning)を使用するファイルにのみ該バージョン管理が適用される。この後者の方法は、不揮発性メモリへの書き込み回数が節約されるべきものである場合に有効な方法となる。この総合技術は、耐タンパ型オンチップ書換え可能メモリのプロテクトを拡大し、フラッシュメモリ・データブロックに格納されるデータのセキュアなバージョン管理を維持するものである。エンドユーザによって所望される場合、セキュアなバージョン管理は、フラッシュメモリ・デバイス上の総てのファイルやフラッシュデータ・ブロックを含むように命じられることができる。
バージョン管理されたファイルの格納
図4は、バージョン管理されたファイルを格納する方法の例のフローチャートである。フローチャートは、モジュール402で始まり、VN_fを読み込みする。フローチャートは、モジュール404に進み、フラッシュメモリ・デバイス上でファイルデータを格納する。フローチャートは、モジュール406に進み、GVN_fとGVN_nを夫々更新する。フローチャートは、モジュール408に進み、新しいMACを生成する。フローチャートは、モジュール410に進み、フラッシュメモリ・デバイスのフラッシュヘッダと、ファイルデータが保存されるフラッシュメモリ・ブロックの予備エリアとに新しいMACを格納する。フローチャートは、モジュール412に進み、フラッシュヘッダと予備エリアに、更新されたGVN_fを格納する。フローチャートは、モジュール414に進み、セキュリティカーネルに対して呼び出しをすることによって、更新されたGVN_nを格納する。フローチャートは、モジュール416に進み、パラメータとしてVN_fを用いてファイルデータブロックのために新MACを生成する。フローチャートは、モジュール418に進み、ファイルデータに関連する予備エリアにMACを格納する。その後、フローチャートが終了する。
バージョン管理されたファイルの読み込み
図5は、バージョン管理されたファイルを読み込むための方法の例のフローチャート500である。フローチャートは、モジュール502で始まり、セキュリティカーネルに対する呼び出しを行い、GVN_nを読み込む。フローチャートは、モジュール504に進み、GVN_fとフラッシュヘッダに格納されたMACを読み込む。フローチャートは、モジュール506に進み、MACを生成し、このMACとフラッシュヘッダにあるMACとを比較する。フローチャートは、決定ポイント508に進み、2つの値が一致しているかを見るために、GVN_nに対しGVN_fがチェックされる。GVN_fとGVN_nが一致していない場合、フローチャートは、モジュール520に進み、読み込みが拒絶され、フローチャートが終了する。これに対しGVN_fとGVN_nが一致している場合、フローチャートは、モジュール510に進み、ファイルにあるVN_fを読み込む。続いてフローチャートは、モジュール512に進み、ここではNVMに格納された鍵とVN_fを用いて、MACが算出される。フローチャートは、モジュール514に進み、各データブロックに格納されたMACを読み込んで、算出されたMACと比較する。フローチャートは、決定ポイント516に進み、算出されたMACが各データブロックのMACと比較される。算出されたMACと各データブロックのMACが一致していない場合、フローチャートは、モジュール520に進み、読み込みが拒絶され、フローチャートが終了する。算出されたMACと各データブロックMACが一致している場合、フローチャートは、モジュール518に進み、ここでバージョン管理されたファイルを読み込む。その後、フローチャートが終了する。
好都合なことに、誰かが先のバージョンからデータブロックを置き換えた場合、HMACは、自動的に先のバージョン番号を含ませることとなり、結果として、検証されたメタデータにある正しい番号で演算されたHMACと一致しないことになる。
MACの格納
1つの具体的な実施形態で、MACは、20バイト長であり、ファイルのフラッシュヘッダ302、各メタデータ、予備エリア306に格納される。ファイルのブロックヘッダは、ビットエラー情報(ECC)やステータス情報とともに、データブロックの予備エリアを利用してもよい。予備エリアにこの情報を格納する利点は、それがさらなるオーバーヘッドなしでデータと共に読み込まれることであり、予備エリアは、データブロック304上に格納されたデータ308を伴ってMACを含むというよりもむしろこの付加的MAC情報を収容するのに利用される。
記憶装置の別の特徴としては、フラッシュ上にあるシングルビットエラーとダブルビットエラーに対して堅牢性(robustness)があるということである。MACの2つのコピーは、予備エリアに格納されることが可能である。これら2つのMACの各々がセキュリティカーネル108によって算出されたMACと照合した場合、格納データ308に格納された情報は有効であると考えられる。また、2つのMACの内の1つのみが照合した場合、照合しなかったMACにはシングルビットエラーがあると推測される。そのブロックは別のデータブロック304へとコピーされ、新しいMACの組み合わせが新しいブロックに書き込まれ、古いブロックは解放された(freed)ものと見なされる。どちらのMACも照合しない場合、データは改竄されたものと推測されるか、又はマルチビットエラーがあると推測される。ブロックアクセスしても失敗(failure)を返すこととなり、データブロック304の格納データ308は読み込まれない。
MACを格納するにあたり予備エリアを使うことは、以下の例に示されるように正当化される。ここでは仮に、128MBのフラッシュ部が論理ブロック内に組織化され、それぞれのブロックは8つの2Kバイトページを含むものとする。各ページの予備エリアは、1ページあたり1ステータスバイト(one status byte)、および512バイト毎に3ECCバイトを含む。MACの2つのコピーが方程式に組み込まれと、結果として、予備エリアの((2*20)+8+(3*4*8))=144バイトが使用されることになる。モデルは、各ブロックに付き512バイトの予備エリアを有することとなり、予備エリアにはECC情報と共に2つのMAC値を具備するのに十分なスペースが存在することになる。
ここで使用されたように、用語“実施形態”は、それに限定されない一例として説明を行うための実施例を意味している。
当業者であれば前述した実施例と実施形態は、代表的なものであり、本発明の範囲を限定するものでないことが理解されるであろう。当業者が明細書を考慮し、図面を検討したときに自明な置き換え、増強、均等物やそれらへの改良が、本発明の要旨と範囲に含まれることを意図している。したがって、添付された特許請求の範囲は、本発明の要旨と範囲内にあるこのような総ての変更、置き換え、均等物を含むことを意図している。
100 コンピュータ・システム
102 コンピュータ
104 I/Oデバイス
106 ディスプレイデバイス
108 プロセッサ
110 通信インターフェース
112 メモリ
114 ディスプレイコントローラ
116 不揮発性記憶装置
118 I/Oコントローラ
120 バス
200 セキュアシステム
202 セキュアプロセッサ
204 OS
206 フラッシュメモリ・デバイスドライバ
208 フラッシュメモリ・デバイス
210 プロテクト・メモリ
212 セキュリティカーネル
214 鍵ストア
216 暗号化/復号化エンジン
218 セキュリティAPI
300 フラッシュメモリ・デバイス
302 フラッシュヘッダ
304 データブロック
306 メタデータ
308 格納データ
400、500 フローチャート

Claims (21)

  1. データを暗号化し、
    前記暗号化されたデータを、フラッシュメモリ・デバイスのフラッシュメモリ・ブロックに格納し、
    前記データ、及びオペレーティング・システム・ソフトウェアによって生成されるか又はオペレーティング・システム・ソフトウェアにアクセス可能な情報変数であって、その変数のうち少なくとも幾つかはフラッシュデバイスに格納されていないような情報変数、の双方をカバーする暗号化されたメッセージ認証コード(MAC)を生成し、
    前記MACを、前記フラッシュメモリ・ブロックに格納し、
    前記フラッシュメモリ・ブロックから、前記暗号化されたデータと前記MACを取り出し、
    前記MACを用いて、取り出した前記データの有効性チェックを実行し、
    取り出した前記データが前記有効性チェックで不合格となった場合、取り出した前記データを拒絶し、
    取り出した前記データが前記有効性チェックで合格となった場合、
    取り出した前記データを受け入れ、
    取り出した前記データを復号化する方法であって、
    前記MACを格納することは、予備エリアに前記MACのコピーを格納することを含むことを特徴とする方法。
  2. データを暗号化し、
    前記暗号化されたデータを、フラッシュメモリ・デバイスのフラッシュメモリ・ブロックに格納し、
    前記データ、及びオペレーティング・システム・ソフトウェアによって生成されるか又はオペレーティング・システム・ソフトウェアにアクセス可能な情報変数であって、その変数のうち少なくとも幾つかはフラッシュデバイスに格納されていないような情報変数、の双方をカバーする暗号化されたメッセージ認証コード(MAC)を生成し、
    前記MACを、前記フラッシュメモリ・ブロックに格納し、
    前記フラッシュメモリ・ブロックから、前記暗号化されたデータと前記MACを取り出し、
    前記MACを用いて、取り出した前記データの有効性チェックを実行し、
    取り出した前記データが前記有効性チェックで不合格となった場合、取り出した前記データを拒絶し、
    取り出した前記データが前記有効性チェックで合格となった場合、
    取り出した前記データを受け入れ、
    取り出した前記データを復号化するする方法であって、
    前記オペレーティング・システム・ソフトウェアにアクセス可能な複数の前記変数は、アプリケーション変数を含み、前記アプリケーション変数は、アプリケーションIDパラメータ、前記メッセージ認証コードによってカバーされる前記データの一部として使用するためのセキュリティカーネルへの入力、及び前記フラッシュメモリ・ブロックにおける前記データのバージョン番号から成るグループの中から選択された1つ又はそれ以上の値を含むことを特徴とする方法。
  3. 更に、データを暗号化したり復号化したりするために、DES又はAES方法を使用することを特徴とする請求項1または2に記載の方法。
  4. 更に、前記フラッシュメモリ・ブロックの予備エリアに、前記MACを格納することを特徴とする請求項1または2に記載の方法。
  5. 前記MACは、HMAC技術を用いて生成されることを特徴とする請求項1または2に記載の方法。
  6. 前記オペレーティング・システム・ソフトウェアにアクセス可能な複数の前記変数は、ランタイム中にオペレーティング・システムのソフトウェア手段によって決定された値、ファイルに割り当てられかつファイル特有のメタデータと共に格納される独自の番号、論理ブロックインデックスを示す値、前記フラッシュメモリ・ブロックの物理的なブロック番号、及びアプリケーションに関連する変数から成るグループの中から、1つ又はそれ以上選択されることを特徴とする請求項1に記載の方法。
  7. 少なくとも1つのフラッシュメモリ・ブロックを含むフラッシュメモリ・デバイスと、
    コンピュータ可読メディアに具現化されたフラッシュメモリ・デバイスドライバと、
    コンピュータ可読メディアに具現化されたセキュリティカーネルとを備え、
    動作において、前記セキュリティカーネルは、オペレーティング・システム・ソフトウェアにアクセス可能な複数の変数を使ってMACを生成し、前記フラッシュメモリ・デバイスドライバは、前記MACを前記フラッシュメモリ・ブロックに格納するため前記フラッシュメモリ・デバイスに送るのを容易ならしめ、
    動作において、前記フラッシュメモリ・デバイスドライバは、前記フラッシュメモリ・ブロックからの前記MACの受け取りを容易ならしめ、前記セキュリティカーネルは、前記MACを使用して有効性チェックを実行し、
    前記フラッシュメモリ・デバイスドライバに関連するプロテクト鍵は、前記セキュリティカーネルを介してシークレット不揮発性メモリに格納されることを特徴とするシステム。
  8. 少なくとも1つのフラッシュメモリ・ブロックを含むフラッシュメモリ・デバイスと、
    コンピュータ可読メディアに具現化されたフラッシュメモリ・デバイスドライバと、
    コンピュータ可読メディアに具現化されたセキュリティカーネルとを備え、
    動作において、前記セキュリティカーネルは、オペレーティング・システム・ソフトウェアにアクセス可能な複数の変数を使ってMACを生成し、前記フラッシュメモリ・デバイスドライバは、前記MACを前記フラッシュメモリ・ブロックに格納するため前記フラッシュメモリ・デバイスに送るのを容易ならしめ、
    動作において、前記フラッシュメモリ・デバイスドライバは、前記フラッシュメモリ・ブロックからの前記MACの受け取りを容易ならしめ、前記セキュリティカーネルは、前記MACを使用して有効性チェックを実行し、
    前記フラッシュメモリ・ブロックへの格納または前記フラッシュメモリ・ブロックからの読み込みのために、データを暗号化したり復号化したりするため、コンピュータ可読メディアに具現化された暗号化/復号化エンジンを更に備えることを特徴とするシステム。
  9. 前記MACは、前記フラッシュメモリ・ブロックの予備エリアに格納されることを特徴とする請求項7または8に記載のシステム。
  10. バージョン管理可能なファイルに関連するファイルバージョン番号を読み込み、
    ファイルデータを、フラッシュメモリ・デバイスの1つ又はそれ以上のフラッシュメモリ・ブロックに格納し、
    前記フラッシュメモリ・デバイス上のグローバルバージョン番号のコピーを更新し、前記グローバルバージョン番号は、少なくとも一部が前記フラッシュメモリ・デバイス上に格納された総てのバージョン管理されたファイルに関連し、
    セキュリティカーネルの不揮発性メモリにおける前記グローバルバージョン番号を更新し、
    前記グローバルバージョン番号をプロテクトするため、オペレーティング・システム・ソフトウェアにアクセス可能な複数の変数を用いてMACを生成し、
    前記MACを、前記フラッシュメモリ・デバイスの1つ又はそれ以上のフラッシュメモリ・ブロックに格納し、
    更新された前記グローバルバージョン番号のコピーを、前記フラッシュメモリ・デバイスの前記1つ又はそれ以上のフラッシュメモリ・ブロックに格納し、
    前記グローバルバージョン番号を、前記セキュリティカーネルの不揮発性メモリに格納することを特徴とする方法。
  11. 更に、前記1つ又はそれ以上のフラッシュメモリ・ブロックの予備エリアに、前記MACを確保することを特徴とする請求項10に記載の方法。
  12. 前記MACは、HMAC技術を使用して生成されることを特徴とする請求項10に記載の方法。
  13. 前記オペレーティング・システム・ソフトウェアにアクセス可能な複数の前記変数は、ランタイム中にオペレーティング・システムのソフトウェア手段によって決定された値、ファイルに割り当てられかつファイル特有のメタデータと共に格納される独自の番号、論理ブロックインデックスを示す値、前記フラッシュメモリ・ブロックの物理的なブロック番号、前記セキュリティカーネルに関連するコンピュータ・システムのオーナーID、及びアプリケーションに関連する変数から成るグループの中から選択された1つ又はそれ以上の変数を含むことを特徴とする請求項10に記載の方法。
  14. アプリケーションに関連する前記変数は、アプリケーションIDパラメータ、前記アプリケーションによってタグ付けされかつ前記フラッシュメモリ・デバイスに書き込まれたIDパラメータ、及び前記フラッシュメモリ・ブロックにおけるデータのバージョン番号から成るグループから選択された値を含むことを特徴とする請求項13に記載の方法。
  15. 前記MACを格納することは、前記フラッシュメモリ・ブロックの予備エリアに前記MACを格納することを含むことを特徴とする請求項10に記載の方法。
  16. 前記MACを格納することは、前記MACのコピーを格納することを含むことを特徴とする請求項10に記載の方法。
  17. 前記MACのコピーを保存することは、前記フラッシュメモリ・ブロックの予備エリアにMACを格納することを含むことを特徴とする請求項16に記載の方法。
  18. 更に、前記デバイス上に格納されない、少なくとも幾つかのパラメータを用いて、前記グローバルバージョン番号を含むブロックに署名することを特徴とする請求項10に記載の方法。
  19. 前記ブロックにおいてバージョン管理された各ファイルに関連するファイル特有のバージョン番号を含むことを特徴とする請求項18に記載の方法。
  20. 更に、バージョン管理された前記ファイルのデータブロックをプロテクトする前記MACを算出する際、変数として前記ファイル特有のバージョン番号を使用することを特徴とする請求項19に記載の方法。
  21. セキュリティカーネルの不揮発性メモリに格納された第1のグローバルバージョン番号を読み込み、
    複数のフラッシュメモリ・ブロックを含むフラッシュメモリ・デバイスのヘッダに格納された第2のグローバルバージョン番号を読み込み、
    前記第1グローバルバージョン番号を、前記第2グローバルバージョン番号に対して検証し、
    前記フラッシュメモリ・デバイスの前記ヘッダに格納された第1のMACを読み込み、
    第2のMACを生成し、
    前記第2のMACを、前記第1のMACと検証し、
    前記フラッシュメモリの前記ヘッダから、前記複数のフラッシュメモリ・ブロックの1フラッシュメモリ・ブロックに格納されたデータを有するバージョン管理されたファイルのファイルバージョン番号を読み込み、
    前記フラッシュメモリ・ブロックに格納された第3のMACを読み込み、
    前記セキュリティカーネルの不揮発性メモリに格納された鍵と、前記ファイルバージョン番号とをパラメータに用いて第4のMACを生成し、
    前記第4のMACを、前記第3のMACと検証し、
    バージョン管理された前記ファイルに関連するデータを受け取ることを特徴とする方法。
JP2009537138A 2006-11-19 2007-09-14 セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法 Active JP5175856B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86004906P 2006-11-19 2006-11-19
US60/860,049 2006-11-19
US11/679,108 2007-02-26
US11/679,108 US8200961B2 (en) 2006-11-19 2007-02-26 Securing a flash memory block in a secure device system and method
PCT/US2007/019956 WO2008063262A2 (en) 2006-11-19 2007-09-14 Securing a flash memory block in a secure device system and method

Publications (2)

Publication Number Publication Date
JP2010510574A JP2010510574A (ja) 2010-04-02
JP5175856B2 true JP5175856B2 (ja) 2013-04-03

Family

ID=39416763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009537138A Active JP5175856B2 (ja) 2006-11-19 2007-09-14 セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法

Country Status (4)

Country Link
US (1) US8200961B2 (ja)
EP (1) EP2095241A4 (ja)
JP (1) JP5175856B2 (ja)
WO (1) WO2008063262A2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886162B2 (en) * 2007-05-29 2011-02-08 International Business Machines Corporation Cryptographic secure program overlays
US8422674B2 (en) * 2007-05-29 2013-04-16 International Business Machines Corporation Application-specific secret generation
US8433927B2 (en) * 2007-05-29 2013-04-30 International Business Machines Corporation Cryptographically-enabled privileged mode execution
US8332635B2 (en) * 2007-05-29 2012-12-11 International Business Machines Corporation Updateable secure kernel extensions
US8326353B1 (en) 2007-06-27 2012-12-04 ENORCOM Corporation Customizable mobile device
US8311513B1 (en) 2007-06-27 2012-11-13 ENORCOM Corporation Automated mobile system
US12245028B1 (en) 2007-06-27 2025-03-04 ENORCOM Corporation Intelligent interface mechanism for an electronic system
US8332636B2 (en) * 2007-10-02 2012-12-11 International Business Machines Corporation Secure policy differentiation by secure kernel design
US8296584B2 (en) * 2007-12-28 2012-10-23 Alcatel Lucent Storage and retrieval of encrypted data blocks with in-line message authentication codes
JP5178839B2 (ja) * 2009-11-27 2013-04-10 株式会社東芝 メモリチップ
US8826035B2 (en) * 2009-12-23 2014-09-02 Intel Corporation Cumulative integrity check value (ICV) processor based memory content protection
US20120069995A1 (en) * 2010-09-22 2012-03-22 Seagate Technology Llc Controller chip with zeroizable root key
EP2503482A1 (en) * 2011-03-23 2012-09-26 ST-Ericsson SA Electronic device with flash memory component
JP2013069250A (ja) * 2011-09-26 2013-04-18 Toshiba Corp 記憶装置および書き込み装置
CN102436423B (zh) * 2011-10-13 2014-09-03 浙江大学 通用片外NorFlash核心数据保护的控制器及方法
KR101638025B1 (ko) * 2012-10-17 2016-07-20 소니 컴퓨터 엔터테인먼트 인코포레이티드 정보처리장치
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
US9553855B2 (en) 2014-02-14 2017-01-24 Red Hat, Inc. Storing a key to an encrypted file in kernel memory
US9304941B2 (en) 2014-02-27 2016-04-05 Mangstor, Inc. Self-encrypting flash drive
US10387662B2 (en) * 2014-07-16 2019-08-20 Jeffrey B. Canter Flash memory device for storing sensitive information and other data
US10185842B2 (en) * 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
US9710675B2 (en) * 2015-03-26 2017-07-18 Intel Corporation Providing enhanced replay protection for a memory
US9792229B2 (en) 2015-03-27 2017-10-17 Intel Corporation Protecting a memory
US9904805B2 (en) 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US10031861B2 (en) 2015-09-25 2018-07-24 Intel Corporation Protect non-memory encryption engine (non-mee) metadata in trusted execution environment
US10025956B2 (en) * 2015-12-18 2018-07-17 Intel Corporation Techniques to compress cryptographic metadata for memory encryption
US10282189B2 (en) 2016-06-30 2019-05-07 Synaptics Incorporated Updating program code stored in an external non-volatile memory
US10528485B2 (en) 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
US11100011B2 (en) * 2018-12-13 2021-08-24 Sony Semiconductor Israel Ltd. Flash translation layer with hierarchical security
US11263308B2 (en) 2019-03-25 2022-03-01 Micron Technology, Inc. Run-time code execution validation
WO2020263298A1 (en) * 2019-06-26 2020-12-30 Google Llc Data authentication for storage systems

Family Cites Families (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI111789B (fi) 1989-01-10 2003-09-15 Nintendo Co Ltd Elektroninen pelilaite, jossa on mahdollisuus pseudostereofoniseen äänen kehittämiseen
US5184830A (en) 1989-01-10 1993-02-09 Nintendo Company Limited Compact hand-held video game system
KR0149503B1 (ko) 1989-04-20 1999-05-15 야마우찌 히로시 메모리 카트리지
US5715398A (en) * 1989-06-16 1998-02-03 R.R. Donnelley & Sons Company System for distributing items from an origin to a plurality of destinations
GB2239810B (en) * 1990-01-10 1994-06-22 Leung Yiu Choi Computer game control apparatus
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5367698A (en) * 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
US5404505A (en) * 1991-11-01 1995-04-04 Finisar Corporation System for scheduling transmission of indexed and requested database tiers on demand at varying repetition rates
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5400402A (en) * 1993-06-07 1995-03-21 Garfinkle; Norton System for limiting use of down-loaded video-on-demand data
EP0711179B2 (en) * 1993-07-30 2010-09-01 IMCOR Pharmaceutical Co. Stabilized microbubble compositions for ultrasound
US5528513A (en) * 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5586264A (en) 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5610839A (en) * 1994-10-07 1997-03-11 Itt Corporation Communications management system architecture
US5638443A (en) * 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US6571279B1 (en) * 1997-12-05 2003-05-27 Pinpoint Incorporated Location enhanced information delivery system
US5729279A (en) * 1995-01-26 1998-03-17 Spectravision, Inc. Video distribution system
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5867223A (en) * 1995-07-17 1999-02-02 Gateway 2000, Inc. System for assigning multichannel audio signals to independent wireless audio output devices
US5815662A (en) * 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
US5765152A (en) * 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US5829046A (en) * 1995-10-27 1998-10-27 Emc Corporation On-line tape backup using an integrated cached disk array
US5781901A (en) * 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
US5903723A (en) * 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
WO1997025798A1 (en) * 1996-01-11 1997-07-17 Mrj, Inc. System for controlling access and distribution of digital property
JPH09261617A (ja) * 1996-01-19 1997-10-03 Matsushita Electric Ind Co Ltd オンデマンド通信システム
DE69729495T2 (de) 1996-03-08 2004-10-28 Matsushita Electric Industrial Co., Ltd., Kadoma Bildinformationsverarbeitungssystem und Mikroprozessor für die geschützte Reproduktion von audiovisuellen Daten
DE19610010A1 (de) * 1996-03-14 1997-09-18 Sel Alcatel Ag Einrichtung und Dienst zur Übertragung von Videobilddaten sowie Einrichtung zur Übertragung von Anforderungssignalen
US5905860A (en) * 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5809242A (en) * 1996-04-19 1998-09-15 Juno Online Services, L.P. Electronic mail system for displaying advertisement at local computer received from remote system while the local computer is off-line the remote system
JPH09284746A (ja) * 1996-04-19 1997-10-31 Sony Corp 双方向情報伝送システムおよび双方向情報伝送方法
US6219708B1 (en) * 1996-05-30 2001-04-17 Multi-Tech Systems, Inc. System for network resource management
US5928327A (en) * 1996-08-08 1999-07-27 Wang; Pong-Sheng System and process for delivering digital data on demand
US6032200A (en) * 1996-09-30 2000-02-29 Apple Computer, Inc. Process scheduling for streaming data through scheduling of disk jobs and network jobs and the relationship of the scheduling between these types of jobs
US6016348A (en) * 1996-11-27 2000-01-18 Thomson Consumer Electronics, Inc. Decoding system and data format for processing and storing encrypted broadcast, cable or satellite video data
US6185625B1 (en) * 1996-12-20 2001-02-06 Intel Corporation Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object
US6049821A (en) * 1997-01-24 2000-04-11 Motorola, Inc. Proxy host computer and method for accessing and retrieving information between a browser and a proxy
JP4091139B2 (ja) * 1997-04-10 2008-05-28 富士通株式会社 データ保存装置及びデータ保存方法
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6219680B1 (en) * 1997-06-19 2001-04-17 International Business Machines Corporation System and method for building a web site for use in E-commerce with user specific pricing
IL121230A (en) * 1997-07-03 2004-05-12 Nds Ltd Intelligent electronic program guide
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
FR2766942B1 (fr) 1997-07-31 1999-10-01 Gemplus Card Int Lecteur de carte a puce avec microcontroleur et composant de securite
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
JPH11120048A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd クライアント/サーバ分散システムにおけるデータキャッシング装置及び方法並びにデータキャッシングプログラムを記録した媒体
US6594682B2 (en) * 1997-10-28 2003-07-15 Microsoft Corporation Client-side system for scheduling delivery of web content and locally managing the web content
US6289452B1 (en) * 1997-11-07 2001-09-11 Cybersource Corporation Method and system for delivering digital products electronically
US6167441A (en) 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
EP1056015A4 (en) * 1998-01-21 2005-01-05 Tokyo Electron Ltd MEMORY DEVICE, DEVICE AND DECOMPOSITION DEVICE AND ACCESS PROCESS FOR NON-VOLATILE MEMORY
US6170014B1 (en) * 1998-03-25 2001-01-02 Community Learning And Information Network Computer architecture for managing courseware in a shared use operating environment
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
US6148340A (en) 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
TW393331B (en) * 1998-05-14 2000-06-11 Sega Enterprises Kk Information processing device,information processing method, information storage media and information processing system
US6052720A (en) * 1998-05-14 2000-04-18 Sun Microsystems, Inc. Generic schema for storing configuration information on a server computer
US6427238B1 (en) * 1998-05-29 2002-07-30 Opentv, Inc. Module manager for interactive television system
US6330566B1 (en) 1998-06-22 2001-12-11 Microsoft Corporation Apparatus and method for optimizing client-state data storage
JP4634547B2 (ja) 1998-06-30 2011-02-16 株式会社東芝 リアルタイム情報配信方法
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6826593B1 (en) 1998-09-01 2004-11-30 Lucent Technologies Inc. Computer implemented method and apparatus for fulfilling a request for information content with a user-selectable version of a file containing that information content
US6412011B1 (en) * 1998-09-14 2002-06-25 At&T Corp. Method and apparatus to enhance a multicast information stream in a communication network
US6292899B1 (en) * 1998-09-23 2001-09-18 Mcbride Randall C. Volatile key apparatus for safeguarding confidential data stored in a computer system memory
US6563517B1 (en) 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6338050B1 (en) * 1998-11-16 2002-01-08 Trade Access, Inc. System and method for providing and updating user supplied context for a negotiations system
EP1003117A3 (en) * 1998-11-17 2003-07-23 Citibank, N.A. Method and system for strategic services enterprise workload management
US6377972B1 (en) * 1999-01-19 2002-04-23 Lucent Technologies Inc. High quality streaming multimedia
US6892238B2 (en) * 1999-01-27 2005-05-10 International Business Machines Corporation Aggregating and analyzing information about content requested in an e-commerce web environment to determine conversion rates
US6412008B1 (en) * 1999-01-28 2002-06-25 International Business Machines Corporation System and method for cooperative client/server customization of web pages
US6321209B1 (en) 1999-02-18 2001-11-20 Wired Solutions, Llc System and method for providing a dynamic advertising content window within a window based content manifestation environment provided in a browser
US6691312B1 (en) * 1999-03-19 2004-02-10 University Of Massachusetts Multicasting video
US6470378B1 (en) 1999-03-31 2002-10-22 Intel Corporation Dynamic content customization in a clientserver environment
JP3471654B2 (ja) * 1999-04-06 2003-12-02 富士通株式会社 ライセンスサーバ、著作権者システム、利用者システム、システム、記録媒体およびコンテンツ利用制御方法
US6920567B1 (en) * 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US6654388B1 (en) 1999-05-26 2003-11-25 Larscom Incorporated Method and apparatus for automatically determining allocation of voice and data channels on T1/E1 line
US6500070B1 (en) 1999-05-28 2002-12-31 Nintendo Co., Ltd. Combined game system of portable and video game machines
US6704797B1 (en) * 1999-06-10 2004-03-09 International Business Machines Corporation Method and system for distributing image-based content on the internet
US6446113B1 (en) * 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
US6526581B1 (en) * 1999-08-03 2003-02-25 Ucentric Holdings, Llc Multi-service in-home network with an open interface
US6371854B1 (en) 1999-08-20 2002-04-16 Ninetendo Co., Ltd. Combined game system
CN1296846C (zh) 1999-08-27 2007-01-24 索尼公司 信息发送系统、发送装置和发送方法与信息接收系统、接收装置和接收方法
CA2322113A1 (en) 1999-10-04 2001-04-04 Pitney Bowes Inc. System and method for managing user permissions for accessing functionality of multiple software applications
US6993557B1 (en) * 1999-10-25 2006-01-31 Broadon Communications Corp. Creation of customized web pages for use in a system of dynamic trading of knowledge, goods and services
US6928551B1 (en) 1999-10-29 2005-08-09 Lockheed Martin Corporation Method and apparatus for selectively denying access to encoded data
US6675350B1 (en) * 1999-11-04 2004-01-06 International Business Machines Corporation System for collecting and displaying summary information from disparate sources
JP2001209586A (ja) 2000-01-26 2001-08-03 Toshiba Corp コンピュータにおけるコンテンツ管理装置及びコンテンツ管理方法
US6757832B1 (en) * 2000-02-15 2004-06-29 Silverbrook Research Pty Ltd Unauthorized modification of values in flash memory
US6606644B1 (en) * 2000-02-24 2003-08-12 International Business Machines Corporation System and technique for dynamic information gathering and targeted advertising in a web based model using a live information selection and analysis tool
US6901386B1 (en) * 2000-03-31 2005-05-31 Intel Corporation Electronic asset lending library method and apparatus
JP2002011250A (ja) 2000-04-25 2002-01-15 Nintendo Co Ltd ゲームシステムおよび携帯ゲーム機
US20020016818A1 (en) * 2000-05-11 2002-02-07 Shekhar Kirani System and methodology for optimizing delivery of email attachments for disparate devices
JP2002024178A (ja) 2000-07-11 2002-01-25 Web I Inc コンテンツ認証システム、コンテンツ認証方法及び記録媒体
US20020059384A1 (en) * 2000-07-13 2002-05-16 Koninklijke Philips Electronics N.V. Substituting URL for attachment in forwarding electronic content
US6805629B1 (en) * 2000-09-13 2004-10-19 Casino Data System Gaming device and method
EP1197826B1 (en) 2000-09-18 2003-12-10 Kabushiki Kaisha Toshiba Secured portable electronic device
US6785712B1 (en) * 2000-09-21 2004-08-31 Rockwell Collins, Inc. Airborne e-mail data transfer protocol
WO2002029642A2 (en) 2000-10-04 2002-04-11 Routefree, Inc. Replacement of requested data with equivalent data
WO2002030088A1 (en) 2000-10-04 2002-04-11 Routefree, Inc. Adaptive predictive delivery of information
JP4470312B2 (ja) 2000-10-10 2010-06-02 ソニー株式会社 サーバ装置、再生装置、データ配信方法、データ再生方法、記憶媒体
WO2002039640A2 (en) * 2000-10-25 2002-05-16 Ngame Limited Electronic game programming system
JP2002169620A (ja) 2000-12-01 2002-06-14 Konami Co Ltd ゲーム装置の管理システム、ゲーム装置、制御方法、ソフトウェア記録媒体
US7127069B2 (en) * 2000-12-07 2006-10-24 Igt Secured virtual network in a gaming environment
US7168089B2 (en) * 2000-12-07 2007-01-23 Igt Secured virtual network in a gaming environment
US6811486B1 (en) 2000-12-20 2004-11-02 Sierra Design Group Method and apparatus for enhancing game play through savable game play state
US7092953B1 (en) * 2000-12-28 2006-08-15 Rightlsline, Inc. Apparatus and methods for intellectual property database navigation
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
JP2004530185A (ja) * 2001-02-01 2004-09-30 エイビーエヌ アムロ サービスィズ カンパニー,インコーポレイテッド 自動ライセンス設備のためのシステムおよび方法
US7134144B2 (en) 2001-03-01 2006-11-07 Microsoft Corporation Detecting and responding to a clock rollback in a digital rights management system on a computing device
JP3392120B2 (ja) 2001-03-23 2003-03-31 任天堂株式会社 ゲーム装置及びそのプログラム
JP2002358460A (ja) 2001-03-27 2002-12-13 Art Connection:Kk ウェブサイト付加システム
US7584491B2 (en) * 2001-04-25 2009-09-01 Sony Corporation System and method for managing interactive programming and advertisements in interactive broadcast systems
JP4691268B2 (ja) 2001-05-02 2011-06-01 任天堂株式会社 ゲームシステムおよびゲームプログラム
US6466048B1 (en) * 2001-05-23 2002-10-15 Mosaid Technologies, Inc. Method and apparatus for switchably selecting an integrated circuit operating mode
US6976009B2 (en) 2001-05-31 2005-12-13 Contentguard Holdings, Inc. Method and apparatus for assigning consequential rights to documents and documents having such rights
US8099364B2 (en) * 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US20030028622A1 (en) * 2001-08-06 2003-02-06 Mitsuhiro Inoue License management server, terminal device, license management system and usage restriction control method
EP1444022A4 (en) * 2001-10-10 2005-02-02 Sony Comp Emtertainment Us SYSTEM AND METHOD FOR SECURING GAME DATA
US7974923B2 (en) * 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
EP1485833A4 (en) 2001-11-20 2005-10-12 Contentguard Holdings Inc EXTENSIBLE RIGHTS EXPRESSION PROCESSING SYSTEM
US7850066B2 (en) * 2001-12-07 2010-12-14 Ecebs Limited Smartcard system
US20030154381A1 (en) * 2002-02-12 2003-08-14 Pervasive Security Systems, Inc. Managing file access via a designated place
US20030120541A1 (en) * 2001-12-21 2003-06-26 Siann Jonathan I. Storage and delivery of electronic media content with advertising
US20030157985A1 (en) 2002-02-19 2003-08-21 Koninklijke Philips Electronics N.V. Virtual IPR system in electronic game environment
WO2003079269A1 (en) * 2002-03-14 2003-09-25 Contentguard Holdings, Inc. Rights expression profile system and method using templates and profiles
CN1297911C (zh) * 2002-03-29 2007-01-31 松下电器产业株式会社 内容重放设备和内容重放控制方法
US20030220142A1 (en) 2002-05-21 2003-11-27 Mark Siegel Video Game controller with display screen
US7322044B2 (en) * 2002-06-03 2008-01-22 Airdefense, Inc. Systems and methods for automated network policy exception detection and correction
AUPS324802A0 (en) * 2002-06-27 2002-07-18 Borthwick, Frederick Kevin Graphical user interface for data acquisition, retrieval and communication
US7509683B2 (en) 2002-08-26 2009-03-24 Hewlett-Packard Development Company, L.P. System and method for authenticating digital content
US20040054923A1 (en) * 2002-08-30 2004-03-18 Seago Tom E. Digital rights and content management system and method for enhanced wireless provisioning
US7228567B2 (en) * 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US7757075B2 (en) 2002-11-15 2010-07-13 Microsoft Corporation State reference
US7428751B2 (en) * 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
EP1573478A2 (en) 2002-12-19 2005-09-14 International Business Machines Corporation A method for distributing software licenses using xml documents
GB0301726D0 (en) * 2003-01-24 2003-02-26 Ecebs Ltd Improved smartcard
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
US8332653B2 (en) 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
DE112005002845T5 (de) * 2004-11-12 2007-12-13 Discretix Technologies Ltd. Verfahren, Vorrichtung und System zur sicheren Datenspeicherung
US8504849B2 (en) * 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
WO2007004219A2 (en) 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US20070067826A1 (en) 2005-09-19 2007-03-22 Texas Instruments Incorporated Method and system for preventing unsecure memory accesses
US8959339B2 (en) 2005-12-23 2015-02-17 Texas Instruments Incorporated Method and system for preventing unauthorized processor mode switches

Also Published As

Publication number Publication date
JP2010510574A (ja) 2010-04-02
WO2008063262A2 (en) 2008-05-29
EP2095241A4 (en) 2010-08-25
US20080117679A1 (en) 2008-05-22
US8200961B2 (en) 2012-06-12
WO2008063262A3 (en) 2008-08-21
EP2095241A2 (en) 2009-09-02

Similar Documents

Publication Publication Date Title
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US10007793B2 (en) Secure object having protected region, integrity tree, and unprotected region
US7624276B2 (en) Secure device authentication system and method
US7945789B2 (en) System and method for securely restoring a program context from a shared memory
US7721114B2 (en) Method for using shared library in tamper resistant microprocessor
JP5260081B2 (ja) 情報処理装置及びその制御方法
US8095802B2 (en) System and method for securely saving a program context to a shared memory
US8307215B2 (en) System and method for an autonomous software protection device
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
US20070061597A1 (en) Secure yet flexible system architecture for secure devices with flash mass storage memory
US20020194389A1 (en) Secure machine platform that interfaces to operating systems and customized control programs
Müller et al. AESSE: a cold-boot resistant implementation of AES
US20090037721A1 (en) Program development method, program development supporting system, and program installation method
EP1934879A2 (en) Secure yet flexible system architecture for secure devices with flash mass storage memory
KR20140051350A (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
JP2009064126A (ja) Icカードシステム、その端末装置、プログラム
JP2023136601A (ja) ソフトウェア管理装置、ソフトウェア管理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120518

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120525

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120618

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120625

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120815

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130107

R150 Certificate of patent or registration of utility model

Ref document number: 5175856

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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