(57)【特許請求の範囲】
【請求項１】
メモリ（１０６）へのダミーメモリアクセスを実施することであって、ランダムなメモリロケーションにおいてランダムな時間に、ダミーの読み出し動作を実施すること及びダミーの書き込み動作を実施することのうちの少なくとも１つを含む、実施すること、並びに、
前記メモリ（１０６）に記憶されたデータへのリアルなメモリアクセスの前に遅延を挿入すること、
を含む、方法。
【請求項２】
前記ダミーメモリアクセスをルックアップテーブルのランダムなページにダイレクトすることを更に含む、請求項１に記載の方法。
【請求項３】
前記メモリ（１０６）のアドレスを動的にリマッピングすることを更に含む、請求項１または２に記載の方法。
【請求項４】
前記ダミーメモリアクセスは、メモリトランザクションのタイミング解析により入手可能な情報を不明瞭にするために、リアルな前記メモリトランザクションにノイズを付加する、請求項１から３の何れか一項に記載の方法。
【請求項５】
前記ダミーメモリアクセスは、前記メモリ（１０６）の読み書き比を、処理装置（１０４）によるリアルなメモリアクセスのパターンと一致させるように行われる、請求項１から４の何れか一項に記載の方法。
【請求項６】
前記遅延を挿入することは、読み出しメモリアクセスをランダムな期間遅延させることを含み、該読み出しメモリアクセスの後に、同じ論理ロケーションへの書き込みメモリアクセスが後続する、請求項１から５の何れか一項に記載の方法。
【請求項７】
データが変化しない場合でも、前記遅延中、書き込みカウンタ又はクロックを更新することを更に含む、請求項６に記載の方法。
【請求項８】
前記書き込みメモリアクセスが修正されて、前記読み出しメモリアクセスによって先行される、請求項６に記載の方法。
【請求項９】
リアルなメモリアクセスの統計を保持することを更に含み、前記統計は、処理装置（１０４）の挙動を模擬するために、又は前記処理装置（１０４）のアクセスパターンを隠蔽するために、ダミーメモリアクセスの生成を統制する、請求項１から８の何れか一項に記載の方法。
【請求項１０】
メモリ（１０６）と接続された処理装置（１０４）であって、前記メモリ（１０６）に記憶されたデータにアクセスするように設定された、処理装置（１０４）、並びに
前記処理装置（１０４）及び前記メモリ（１０６）と接続された、メモリトランザクション装置（１０２）
を含むシステムであって、前記メモリトランザクション装置（１０２）は、請求項１から９の何れか一項に記載の方法を実施するように設定された、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［００１］本システム及び方法は、セキュアなコンピューティングにおいてメモリアクセスパターンからの情報漏洩を低減することに関する。
【背景技術】
【０００２】
［００２］コンピュータセキュリティは、コンピュータやスマートフォンなどのコンピューティングデバイス、並びに、インターネットを含むプライベート及びパブリックネットワークなどのコンピュータネットワークに応用される情報セキュリティである。コンピュータセキュリティは、意図しないもしくは不正なアクセス、変更、又は破壊から、コンピュータベースの機器、情報及びサービスが保護されるプロセス及びメカニズムを包含する。現行のセキュアなコンピューティングシステムは、メモリアクセスパターンの解析を介して行われる情報窃盗に対して脆弱である。シンプルな対策の１つは、例えば、本物（ｒｅａｌ）と並行してダミーの暗号化を実施することにより偽のアクセスを付加することによって、メモリアクセスパターンにノイズを付加することである。このノイズが攻撃者にとって可視の信号を減少させ、これはより多くのサンプルを必要とさせるが、意図しないアクセスや不正アクセスが除去されるわけではない。
【発明の概要】
【０００３】
［００３］一態様によれば、システム及び方法は、メモリに接続された処理装置を提供し、該処理装置はメモリからのデータにアクセスするように設定される。メモリトランザクション装置は、処理装置及びメモリと接続している。メモリトランザクション装置は、ランダムなメモリロケーションで、ランダムな時間にダミーの読み書き動作を実施するように設定され、及び／又は、メモリに記憶されたデータへの処理装置によるリアルなアクセスの前に、ランダムな遅延をインサートするように設定される。
【０００４】
［００４］他のシステム、方法、特徴、及び利点は、下記の図面及び後述の詳細な説明を精査することにより明らかとなる。そのような更なるシステム、方法、特徴、及び利点は、この説明中に含まれ、且つ添付の特許請求の範囲により保護されることが意図されている。
【０００５】
［００５］下記の詳細な説明と共に添付の図面が参照されるが、種々の図面において、類似の参照番号が同じ要素を表すことがある。
【図面の簡単な説明】
【０００６】
【図１】中央処理装置（ＣＰＵ）／ダイレクトメモリアクセス（ＤＭＡ）とメモリとの間に挿入された、セキュアなメモリトランザクション装置（ＳＭＴＵ）の一実施例のブロック図である。
【図２】メモリアクセスパターンを難読化するプロセスの一実施例のフロー図である。
【発明を実施するための形態】
【０００７】
［００８］例えば、悪意ある者がセキュアなプロセッサに取り付けられたランダムアクセスメモリ（ＲＡＭ）に対し無制限アクセスを取得しようとする場合に、セキュアなコンピューティングシステムのセキュリティを向上させるためのシステム及び方法について説明する。このアクセスは、標的とするマシンに悪意者がインストールした、当該マシンのＲＡＭに対するメモリアクセス情報を記録するためのメモリバスアナライザによって、達成され得る。記録されるデータは、メモリアクセスが発生した際のアドレス、転送データ、及び時間を含む。本システム及び方法は、悪意者が監視しているタイミングパターン及びアドレスパターンからの情報漏洩を低減し、セキュアなコンピューティングシステムを提供し得る。
【０００８】
［００９］図１は、中央処理装置（ＣＰＵ）／ダイレクトメモリアクセス（ＤＭＡ）１０４とメモリ１０６との間に位置するセキュアなメモリトランザクション装置（ＳＭＴＵ）１０２を含む、コンピューティングシステム１００の一実施例のブロック図である。ＳＭＴＵ１０２の一実施例は、ＳＥＣＵＲＥ  ＭＥＭＯＲＹ  ＴＲＡＮＳＡＣＴＩＯＮ  ＵＮＩＴと題する２０１４年９月２３日発行の同一出願人による米国特許第８，８４３，７６７号に記載されており、該特許は全体として本願に組み込まれる。ＳＭＴＵ１０２を、本明細書に記載するように動作する他のメモリトランザクション装置に替えてもよい。コンピューティングシステム１００はしばしば、長期的及び短期的に利用されるデータを記憶するための外部メモリ１０６（例えば、ＤＲＡＭ、ＦＬＡＳＨ、ＲＯＭ、ＲＡＭ、ＳＳＤ、磁気ハードディスクなど）を必要とする。セキュリティ要件を満たすため、メモリ１０６のデータコンテンツは保護される。物理的な保護は、高価であり信頼性が低いことがある。従って、暗号及びアルゴリズムを用いたタイプの保護がより望ましい。安全性が保証された暗号化アルゴリズムのための保護された回路と、隠蔽された高エントロピー鍵とを用いて、メモリ１０６に記憶する前にデータを暗号化し、読み出し後にデータを復号することにより、ＣＰＵ／ＤＭＡ１０４などのセキュアなマイクロプロセッサに適切な秘密性が提供され得る。
【０００９】
［０１０］暗号化されたデータに、セキュアなデータ認証タグが付加されるのが通例である。それらは、記憶されたデータが変更されたかどうかをＣＰＵ／ＤＭＡ１０４に知らせる。しかしながら、暗号化及びデータ認証の後に発生する情報漏洩というセキュリティ上の問題が残る。情報漏洩の起源は、ＣＰＵ／ＤＭＡ１０４が実施する特定の動作、及びそれらの動作を制御するソフトウェアに固有のメモリアクセスにおけるパターンであり得る。
【００１０】
［０１１］ＳＭＴＵ１０２は、ＣＰＵ／ＤＭＡ１０４とメモリ１０６との間でコンピューティングシステム１００に付加され、メモリ１０６に記憶されたデータを暗号化及び認証する。悪意者が、例えば、コンピューティングシステム１００の機能を制御しインプットを供給してそれらの刺激に対する反応におけるメモリアクセスパターンを監視する場合、大きな情報損失を生み出す攻撃は、そのようなメモリアクセスパターンの監視によって発生することがある。これはしばしばプロファイリングと称される。次いで、学習された知識が用いられて、実際の状況での使用時にコンピューティングシステム１００から情報を取得する。メモリアクセスにおけるパターンは、例えばコンピューティングシステム１００内で動作するソフトウェアのバージョンを悪意者に暴露し得、それらのバージョンは、既知の悪用可能なバグ、当該ソフトウェアの機能部分のプロファイリング後の任意の時間に実施されるアクション／機能、例えばＡＥＳ、ＤＥＳなどの暗号化方式のソフトウェア実装において大きなルックアップテーブルが用いられる場合に鍵のビット（長期的には秘密鍵）を暴露するキャッシュミスイベント、コンピューティングシステム１００が所与の時間に実行する機能、などを含み得る。
【００１１】
［０１２］データ漏洩を低減するために、ＳＭＴＵ１０２は、ランダムなメモリロケーションにおいてランダムな時間にダミーの読み書き動作を実施し得、及び／又は、例えばＣＰＵ／ＤＭＡ１０４もしくは入出力（Ｉ／Ｏ）動作によって開始されたリアルなメモリアクセスの前にランダム遅延を挿入する。ダミーの読み書き動作がメモリアクセスパターンを隠蔽する。これらのダミー動作は、メモリ１０４（例えば、暗号化用ＲＡＭコントローラ）とＣＰＵ／ＤＭＡ１０４及び／又は実際のアプリケーションと同時に動作するソフトウェアタスクとの間でコンピューティングシステム１００に挿入された、ＳＭＴＵ１０２によって実施され得る。何れの方式でも、ダミーメモリアクセス機能は、コンピューティングシステム１００で動作するソフトウェアに対してトランスペアレントである。
【００１２】
［０１３］付加的に又は代替的に、リアルなメモリアクセスを追跡し、それらのロケーションへのダミーアクセスをより低頻度にすることにより、当該ダミーメモリアクセス戦略は更に向上し得る。ルックアップテーブルの場合、ダミーメモリアクセスは、ルックアップテーブルのランダムなページにダイレクトされる。ハードウェア実装において、ハードコードアルゴリズムが用いられて、リアルなメモリアクセスが限られた範囲のメモリアクセスに対して反復して発生したかどうかを特定し、次いで、それらのアドレスが、より高いダミーアクセス確率で使用される。ソフトウェア実装において、当該プログラムは、ルックアップテーブルがいつ処理されるかを示すバックグラウンドダミーメモリアクセスタスクに対するヒントを提供し得る。これは、自動ルックアップテーブル認識に代わるものであってもよく、又はそれに付加されるものであってもよい。本開示で記載する戦略は、メモリアドレスの動的なリマッピングと組み合わせると最良の効果を発揮するが、セキュアなコンピューテーションのセキュリティはアドレスのリマッピングなしでも向上する。
【００１３】
［０１４］ダミーメモリアクセスは、リアルなメモリアクセスのアドレス及びそれらのタイミングからの情報漏洩を低減させる。コンピューティングシステム１００において動的なアドレスリマッピングが用いられる場合、ダミーの書き込み動作によるアドレスの難読化は不要（メモリアクセスのタイミングパターンを難読化することのみが必要）であるが、ＳＭＴＵ１０２によるセキュリティの全体的な向上は、コンピューティングシステム１００のメモリアクセスタイミング情報を隠蔽することのみよりも大きい。ＳＭＴＵ１０２は、メモリ１０６へのアクセスが悪意者によって監視可能及び解析可能である場合に、コンピューティングシステム１００のセキュリティを向上させる。コンピューティングシステム１００は、フライトコンピュータ、軍用及び宇宙用プログラム、企業ネットワーク、パーソナル及びラップトップコンピュータ、スマートモバイルデバイスなどを含む。従来型の暗号式及びアルゴリズム式メモリ保護と共にＳＭＴＵ１０２が配備される場合、メモリアクセスパターンからの実質的にすべての情報漏洩が防止可能であり、悪意あるデータ変更が検出可能である。
【００１４】
［０１５］図２は、メモリアクセスパターンを難読化するプロセス２００の一実施例のフロー図である。ＣＰＵ／ＤＭＡ１０４が、メモリ１０６のアクセスリクエストを作成する（２０２）。ＳＭＴＵ１０２が、メモリ１０６に記憶されたデータのキューアクセスを提供する（２０４）。セキュアなキューアクセスを収容するために、ＳＭＴＵ１０２は、リアルなメモリアクセスの統計を構築し更新する（２０６）。統計は、例えば、保護されていないシステムのプロセッサの挙動を模擬するために、又はプロセッサのアクセスパターンを隠蔽するために、ダミーメモリアクセスの生成を統制する。ダミートランザクションの生成は、リアルなトランザクションにノイズを付加し、メモリトランザクションのタイミング解析によって入手可能な任意の情報を不明瞭にするための方法である。ダミートランザクションはＣＰＵ／ＤＭＡ１０４がこの環境で生来行うことに一致するが、その制約内でランダム化されている。通常の出力パターンに一致しないダミートランザクションは容易に除外されるので、タイミング情報の不明瞭化には有用でない。統計は、リアルなメモリアクセスに対する遅延を統制するためにも使用可能である。
【００１５】
［０１６］ＣＰＵ／ＤＭＡ１０４のメモリ１０６との相互作用は、ＣＰＵ／ＤＭＡ１０４のキャッシュシステムを通じて達成され得るので、キャッシュシステムの挙動が知られることとなる。キャッシュ挙動は複数のプロセッサ間で異なるので、詳細な相互作用はケースバイケースで遂行され得る。典型的に、キャッシュ装置は、キャッシュラインに基づいてメモリと相互作用するので、このサイズは、サポートされる各プロセッサにおいて例えば統計を構築／更新する（２０６）ことにより把握される。一般的に、キャッシュ装置は２つの異なる書き込みモードで動作する。一方のモードはライトスルーと称され、他方は通常コピーバックと称される。ライトスルーモードで、すべての書き込みは即座にメモリ１０６へ進みキャッシュラインを修正する。ライトスルー書き込みは、読み出し・修正・書き込み（リード・モディファイ・ライト）サイクルをＳＭＴＵ１０２中に生成する。コピーバックモードが用いられる場合、キャッシュラインはリアルタイムで修正される。キャッシュがコピーバックモードにあるとき、キャッシュミスが存在する際は常に、フラッシュされるキャッシュラインが書き込みを受信する場合にキャッシュフラッシュが発生する。コピーバックモードにおいて起こり得るシーケンスは、キャッシュラインフラッシュ、続いてキャッシュラインリードまたはキャッシュラインリードオンリである。キャッシュがライトスルーモードにある場合、キャッシュミスはキャッシュラインリードのみを生成する。
【００１６】
［０１７］効率のために、キャッシュラインサイズはＳＭＴＵ１０２ブロックサイズに一致する。これにより、ＳＭＴＵ１０２をライトスルーするライトスルーモードが、コピーバックモードにある場合に得られるキャッシュフラッシュのように見える。この区別を取り払うことにより、タイミング情報を不明瞭にする労力が単純化される。後述のように、ＳＭＴＵ１０２がメモリ１０６へのアクセスをスケジュールし、遅延生成器が必要に応じて遅延を挿入する（２１０）。ＣＰＵ／ＤＭＡ１０４はメモリ１０６にアクセスし（２１２）、メモリ１０６はデータをＣＰＵ／ＤＭＡ１０４へ戻す（２１４）。タイミング情報を隠蔽するために、メモリ（１０６）は、一定の読み出し及び書き込みトランザクションパターンで連続的に動作し得、これにより、すべてのタイミングパターンを隠蔽するが、スピード及び電力使用という点では高コストである。このパターンは、Ｎ個の読み出し及び後続するＭ個の書き込みの形態をとる。Ｎ及びＭの値は、２つの競合する目的を念頭に選ばれた設定可能なパラメータである。１つのゴールは、読み書きの比をＣＰＵの実際の使用パターンと一致させることにより、この比が悪意者に知られる場合、ダミーメモリアクセスが発生するという事実を隠蔽することである。もう１つのゴールは、例えば、悪意者がこの比を知らないという仮定が合理的である場合、これらの値を用いて実際の読み書き比を不明瞭にすることである。ＳＭＴＵ１０２は、利用できる場合にはリアルなトランザクションを用いたパターンに従ってトランザクションを連続的に生成し得、利用できない場合にはランダムにトランザクションを生成し得る。ダミー書き込みモードの動作全体で、実際の読み書き比、及び、それらの分布（連続する同じタイプの数及びアドレスメモリアクセスのアドレス範囲）についての統計が保持される（２０６）。
【００１７】
［０１８］ＳＭＴＵ１０２は、少なくとも２つのタイプのメモリ攻撃（ワンショット攻撃及び平均化攻撃）に対する保護である。ワンショット攻撃では、システム中で実施されるアルゴリズムの特定のメモリアドレスコンフィギュレーションについて、悪意者はメモリバス上のトラフィックを１回限り監視できる。システム挙動は常に異なるので、悪意者は、同じアクションを再度実施させることができない。この状況で、ランダムに遅延されたメモリアクセス（２１２）及び付加されたダミーメモリアクセス（２０８）は、トラフィック解析に対抗する有効な戦略である。この状況は、幾つかの用途（大抵はリアルタイム又は通信システム）において、及びメモリアドレスがランダムにリマップされる場合に発生する。後者の場合、メモリアドレスは攻撃者にとってランダムに見え、遅延及びダミーアクセスの技術によってタイミング情報が不明瞭となる。タイミング情報からの漏洩の一例は、（テーブルルックアップを用いたプログラムの）１つのデータが既にキャッシュにあり、システム１００がテーブルの対応するページをメモリ１０６からロードしない場合である。対応するメモリアクセスの不在が特定可能であり、定期的なキャッシュロードパターンが破壊される。
【００１８】
［０１９］平均化攻撃では、悪意者は、攻撃対象のシステムに同じアクションを反復して実施させることができる。例えば、スタートアップメモリ初期化、又はファームウェアのロード／復号プロセスが反復可能であり得る。この場合、監視される多くのメモリトラフィックパターンの平均化プロセスは、リアルなメモリアクセスを暴露する一方、ダミーアクセスがノイズ中に消失する。この状況で、ＳＭＴＵ１０２は、攻撃を示している可能性のあるシステムの反復アクションを検知する。反復の検知において、セキュアなコンピューティングシステムは、鍵の消去、ストレージのクリア、警報発生、又は他の方式を含む特定のアクションを実施し、システム管理者に進行中の攻撃を知らせる。反復検知サブシステムは（リセット、介入などの）外部からの刺激におけるシステムの状態のハッシュをとり、これらのハッシュ値を、保護された非揮発性メモリに記憶する。反復する多くのハッシュ値が平均化攻撃を示す。
【００１９】
［０２０］上述のように、ＳＭＴＵ１０２は暗号化及び認証されたメモリにおいて動作し、暗号化及び認証は、データロケーション（アドレス）及びデータバージョン（書き込みカウンタ、タイムスタンプなど）に依存する。上記の説明に加えて又は替えて、読み出しメモリアクセスがランダムな期間遅延され得、同じ（論理）ロケーションへの書き込みが、短いランダム遅延の後に（必ずしも直後でなくともよいが）後続し得る。その間、データバージョン情報が更新される（例えば、書き込みカウンタ又はクロックが計上される）。データが変化しない場合でも、暗号化は（データバージョンに依存して）変化するので、同じデータ又は更新されたデータがライトバックされているかどうかが傍受者には分からない。書き込みメモリアクセスが修正され、これらは、（データの真正性を検証するのみで、ただしそうでない（例えばそれが既にＣＰＵ／ＤＭＡ１０４のキャッシュにある場合など）前記メモリデータが不要である場合にはそれを用いずに）読み出しに進む。これらの２つの修正により、傍受者はメモリ読み書きアクセスを（それらは常に同じに見えるので）区別できない。
【００２０】
［０２１］このように、ＳＭＴＵ１０２の使用は暗号化及びデータ認証よりも複雑である。ＣＰＵでダミーアルゴリズム（例えば、ダミー暗号化）は実施されないが、メモリアクセスがランダム化される。ＳＭＴＵ１０２は、タイミング攻撃の防止のために、ランダムな又はノーマライズ遅延を付加するのみではない。ランダム遅延のみの導入は、リニアな要因による攻撃の複雑性を増大させ得、従って、適切なセキュリティをもたらさないことがある。寧ろ、ＳＭＴＵ１０２は、まずダミーメモリアクセスをランダム時間に挿入し、その後、明示的なランダム遅延を導入するか又は導入しなくてもよい。データブロックのリマッピングを難読化する方法と比較して、ストレージのスペースを占めメモリアクセスを複雑化する可能性がある履歴リストの保持、及びダミーデータブロックの使用が不要である。ＳＭＴＵ１０２は、適応性を有しより複雑なアルゴリズムを用いてメモリアクセス及び遅延をランダム化する。プログラムによってアクセスされない場合、ＳＭＴＵ１０２は実際のデータブロックに対してダミーアクセスを作成できる。現行のアクセスパターン保護スキームは、メモリ領域間で常に２つのブロックをスワップするので、２つのブロックにアクセスする。しかしながら、ＳＭＴＵ１０２はメモリスワッピング領域を必要とせず、１つがリクエストされる場合に厳密に２つのデータブロックへのアクセスに限定されない。寧ろ、ＳＭＴＵ１０２は、リアルなデータに対するダミーアクセスの可変数を導入するアルゴリズムを含む。適応性を有するアルゴリズムは、リアルなメモリアクセスのパターンの変化に応じて変化できる。
【００２１】
［０２２］ＳＭＴＵ１０２の適応性は、その挙動を、現在は隠蔽されているリアルなメモリアクセスパターンに従って変化させるのに用いられ得る。周波数に関して、ダミーメモリアクセスは、全体的なメモリアクセスの周波数が一定となるように挿入され得る。極端な場合は、メモリ帯域の１００％が利用される場合である。この一定の周波数は、典型的なもしくはセキュリティ上重要なタスクを実施しながら、システム１００のプロファイリングの段階でオフラインで決定され得るか、又は、例えば、平均化プロセスを移動することによって動的に決定され得る。タイミングパターンに関しては、幾つかのアルゴリズムは様々なメモリアクセス周波数で動作する。高頻度アクセスのバーストが、静穏期によって分断される。ＳＭＴＵ１０２は、そのようなパターンを特定し、アクセスのダミーバーストを挿入することによってこれらパターンを模擬できる。アドレス範囲に関して、（例示的に）画像処理、マトリクス操作又はテーブルルックアップのプログラムは、ある範囲のメモリにしばしばアクセスし、この範囲外には概ね（アルゴリズムの指示フェッチを示す）シーケンスでアクセスし得る。ＳＭＴＵ１０２は、そのようなパターンを検知し、それに従いダミーアクセスを調整する。ダミーアクセスのほとんどは限定された範囲で発生し（そうでない場合は無関係な画像の部分に対するアクセスを装う）、連続するメモリロケーションの短いシーケンスに（偽プログラムの実行のために）時折アクセスする。アドレスシーケンスに関しては、プログラムコードのローディングは認識可能であることが多いので、他のシーケンスへのジャンプ及びインターリーブループによって、リニアなアドレスシーケンスがアクセスされる。そのようなリアルなアクセス間に注入されるダミーメモリアクセスの同様のパターンが、容易に作成可能である。これにより、プログラム実行中のパターンが難読化される。
【００２２】
［０２３］上記の説明及び添付図面内に提示された教示の恩恵を受ける当業者には、本書に明記された実施形態の多数の修正例、及び他の実行形態が想起されよう。本書では特定の用語が用いられているが、それらは、一般的且つ説明的な意味でのみ使用されており、限定を目的とするものではない。
【図１】
0006663674.tif 000002
【図２】
0006663674.tif 000003