(57)【要約】  ここで説明するシステムおよび方法は、ハードウェア修正を検出してもよい。テストループは、プロセッサフットプリントパッドの送信ピンと受信ピンにおいて終了してもよい。プロセッサは、送信ピンと受信ピンを介してテストループに結合されていてもよい。プロセッサは、信号を送信ピンからテストループに送信させ、受信ピンにおいてテストループから修正された信号を受信してもよい。プロセッサは、修正された信号に基づいてテストループと通信してハードウェア修正を検出するために、修正された信号を分析してもよい。
2018517203.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア修正を検出するためのシステムであって、
プロセッサフットプリントパッドの送信ピンと受信ピンにおいて終了するテストループと、
前記送信ピンと前記受信ピンを介して前記テストループに結合されているプロセッサとを備え、
前記プロセッサは、
信号を前記送信ピンから前記テストループに送信させ、
前記受信ピンにおいて前記テストループから修正された信号を受信し、
前記修正された信号に基づいて前記テストループと通信してハードウェア修正を検出するために、前記修正された信号を分析するように構成されている、システム。
【請求項２】
前記プロセッサフットプリントパッドの複数の送信ピンおよび受信ピンにおいて終了する複数のテストループをさらに備え、
前記プロセッサは、前記送信ピンおよび前記受信ピンを介して各テストループに結合され、
前記プロセッサは、
信号を各送信ピンからの各テストループに送信させ、
各受信ピンにおいて各テストループから修正された信号を受信し、
前記修正された信号のうちの少なくとも１つに基づいて前記テストループのうちの少なくとも１つと通信して前記ハードウェア修正を検出するために、各修正された信号を分析するようにさらに構成されている、請求項１に記載のシステム。
【請求項３】
前記テストループは、複数の送信ピン、複数受信ピン、または、これらの組み合わせにおいて終了し、
前記プロセッサは、前記複数の送信ピン、前記複数の受信ピン、または、前記これらの組み合わせを介して前記テストループに結合され、
前記プロセッサは、
前記信号を前記複数の送信ピンのうちの１つから前記テストループに送信させ、
前記複数の受信ピンのうちの少なくとも１つにおいて前記テストループから前記修正された信号を受信し、または、
これらの組み合わせをするようにさらに構成されている、請求項１に記載のシステム。
【請求項４】
前記プロセッサは、前記ハードウェア修正のためにテストされるプロセッサ、前記ハードウェア修正のためにテストされる前記プロセッサに結合されたコプロセッサ、または、これらの組み合わせを備える、請求項１に記載のシステム。
【請求項５】
前記プロセッサに結合されるメモリをさらに備え、
前記プロセッサは、前記修正された信号と前記メモリ中に記憶されたデータを比較することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項６】
前記ハードウェア修正がないと知られているときに、前記データは、実験的に導出された前のテストループ分析データを備える、請求項５に記載のシステム。
【請求項７】
前記送信された信号は、
既知の上昇時間、既知の下降時間、または、既知の上昇および下降時間を有するパルス信号と、
既知の駆動強度を有する信号と、
複数の周波数または一連の信号にわたってスイープする信号と、ここにおいて、前記一連の信号の各々は、前記複数の周波数のうちの異なる１つにおける信号であり、
既知のデータコンテンツを有する信号と、
アナログ波形信号と、または、
これらの組み合わせとを備える、請求項１に記載のシステム。
【請求項８】
前記プロセッサは、
前記送信ピンから前記テストループに前記信号を送信するように構成されているパルスモジュールと、
前記送信ピンから前記テストループに前記信号を送信するように構成されているアナログ波形モジュールと、または、
これらの組み合わせとを備える、請求項１に記載のシステム。
【請求項９】
前記プロセッサは、
前記修正された信号の上昇信号が予測された上昇時間とは異なる、前記修正された信号の下降時間が予測された下降時間とは異なる、または、これらの組み合わせであると決定することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項１０】
前記プロセッサは、前記修正された信号の駆動強度が予測された駆動強度とは異なると決定することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項１１】
前記プロセッサは、前記修正された信号の帯域幅パラメータが予測された帯域幅パラメータとは異なると決定することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項１２】
前記プロセッサは、前記修正された信号のデータコンテンツが予測されたデータコンテンツとは異なると決定することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項１３】
前記プロセッサは、前記修正された信号の波形パラメータが予測された波形パラメータとは異なると決定することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項１４】
前記プロセッサは、前記ハードウェア修正のためにテストされるプロセッサに結合されている外部コンポーネントを備え、
前記テストループは、前記外部コンポーネントに結合され、前記外部コンポーネントに前記信号を送信するように構成され、
前記外部コンポーネントは、前記信号を受信することに応答して、前記テストループを介して前記受信ピンに前記修正された信号を送信するように構成され、
前記プロセッサは、前記修正された信号のデータコンテンツが予測されたデータコンテンツとは異なると決定することにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析するように構成されている、請求項１に記載のシステム。
【請求項１５】
前記テストループは、
前記送信ピンに結合されている第１のアンテナと、
前記受信ピンに結合されている第２のアンテナとを備える、請求項１に記載のシステム。
【請求項１６】
ハードウェア修正を検出するための方法であって、
プロセッサにより、プロセッサフットプリントパッドの送信ピンから前記プロセッサフットプリントパッドの前記送信ピンと受信ピンにおいて終了するテストループに信号を送信させることと、前記プロセッサは、前記送信ピンと前記受信ピンを介して前記テストループに結合され、
前記プロセッサにより、前記受信ピンにおいて前記テストループから修正された信号を受信することと、
前記プロセッサにより、前記修正された信号に基づいて前記テストループと通信してハードウェア修正を検出するために、前記修正された信号を分析することとを備える、方法。
【請求項１７】
前記プロセッサにより、前記プロセッサフットプリントパッドの複数の送信ピンのそれぞれから前記プロセッサフットプリントパッドの前記送信ピンと複数の受信ピンにおいて終了する複数のテストループに信号を送信させることと、前記プロセッサは、各送信ピンおよび各受信ピンを介して各テストループに結合され、
前記プロセッサにより、各受信ピンにおいて各テストループから修正された信号を受信することと、
前記プロセッサにより、前記修正された信号のうちの少なくとも１つに基づいて前記テストループのうちの少なくとも１つと通信して前記ハードウェア修正を検出するために、各修正された信号を分析することとをさらに備える、請求項１６に記載の方法。
【請求項１８】
前記プロセッサにより、前記信号を複数の送信ピンのうちの１つから前記テストループに送信させることと、
前記プロセッサにより、複数の受信ピンのうちの少なくとも１つにおいて前記テストループから前記修正された信号を受信することと、または、
これらの組み合わせとをさらに備える、請求項１６に記載の方法。
【請求項１９】
前記プロセッサは、前記ハードウェア修正のためにテストされるプロセッサ、前記ハードウェア修正のためにテストされる前記プロセッサに結合されたコプロセッサ、または、これらの組み合わせを備える、請求項１６に記載の方法。
【請求項２０】
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、前記修正された信号と前記プロセッサに結合されているメモリ中に記憶されたデータを比較することを備える、請求項１６に記載の方法。
【請求項２１】
前記ハードウェア修正がないと知られているときに、前記データは、実験的に導出された前のテストループ分析データを備える、請求項２０に記載の方法。
【請求項２２】
前記送信された信号は、
既知の上昇時間、既知の下降時間、または、既知の上昇および下降時間を有するパルス信号と、
既知の駆動強度を有する信号と、
複数の周波数または一連の信号にわたってスイープする信号と、ここにおいて、前記一連の信号の各々は、前記複数の周波数のうちの異なる１つにおける信号であり、
既知のデータコンテンツを有する信号と、
アナログ波形信号と、または、
これらの組み合わせとを備える、請求項１６に記載の方法。
【請求項２３】
前記プロセッサのパルスモジュールにより、前記送信ピンから前記テストループに前記信号を送信することと、
前記プロセッサのアナログ波形モジュールにより、前記送信ピンから前記テストループに前記信号を送信することと、または、
これらの組み合わせとを備える、請求項１６に記載の方法。
【請求項２４】
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、
前記修正された信号の上昇信号が予測された上昇時間とは異なる、前記修正された信号の下降時間が予測された下降時間とは異なる、または、これらの組み合わせであると決定することを備える、請求項１６に記載の方法。
【請求項２５】
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、前記修正された信号の駆動強度が予測された駆動強度とは異なると決定することを備える、請求項１６に記載の方法。
【請求項２６】
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、前記修正された信号の帯域幅パラメータが予測された帯域幅パラメータとは異なると決定することを備える、請求項１６に記載の方法。
【請求項２７】
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、前記修正された信号のデータコンテンツが予測されたデータコンテンツとは異なると決定することを備える、請求項１６に記載の方法。
【請求項２８】
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、前記修正された信号の波形パラメータが予測された波形パラメータとは異なると決定することを備える、請求項１６に記載の方法。
【請求項２９】
前記テストループにより、前記ハードウェア修正のためにテストされたプロセッサに結合されている外部コンポーネントに前記信号を送信することと、
前記外部コンポーネントにより、前記信号を受信することに応答して、前記テストループを介して前記受信ピンに前記修正された信号を送信することとをさらに備え、
前記プロセッサにより、前記少なくとも１つのハードウェア修正を検出するために前記修正された信号を分析することは、前記修正された信号のデータコンテンツが予測されたデータコンテンツとは異なると決定することを備える、請求項１６に記載の方法。
【請求項３０】
前記プロセッサにより、前記送信ピンから前記テストループに前記信号を送信させることは、前記送信ピンに結合されている第１のアンテナにより前記信号を送信することを備え、
前記プロセッサにより、前記受信ピンにおいて前記テストループから前記修正された信号を受信することは、前記受信ピンに結合されている第２のアンテナにより前記信号を受信すること備える、請求項１６に記載の方法。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
この出願は、２０１５年４月１４日に出願された米国仮出願番号第６２／１４８，５５１号の出願日の利益に基づいており、および、利益を導出する。この出願の内容全体は、参照によりその全体の内容がここに組み込まれている。
【図面の簡単な説明】
【０００２】
【図１】図１は、ハードウェア中間者（ｍａｎ  ｉｎ  ｔｈｅ  ｍｉｄｄｌｅ）インプリメンテーションを図示している。
【図２】図２は、標準プロセッサマウントおよびハードウェア中間者インプリメンテーションマウントを図示している。
【図３】図３は、本発明の実施形態にしたがった、自己検出特徴を備えるプロセッサを図示している。
【図４】図４は、本発明の実施形態にしたがった、ハードウェア中間者伝播遅延テストを実行するためのテストループを図示している。
【図５】図５は、本発明の実施形態にしたがった、ハードウェア中間者伝播遅延テストのためのタイミングダイヤグラムを図示している。
【図６Ａ】図６Ａは、本発明の実施形態にしたがった、複数のテストループを備えるプロセッサを図示している。
【図６Ｂ】図６Ｂは、本発明の実施形態にしたがった、複数のテストループを備えるプロセッサを図示している。
【図７】図７は、本発明の実施形態にしたがった、ハードウェア中間者インプリメンテーションに結合されているシステムオンチップを図示している。
【図８】図８は、本発明の実施形態にしたがった、ハードウェア中間者インプリメンテーションを検出するための方法を図示している。
【いくつかの実施形態の詳細な説明】
【０００３】
「中間者」（ｍａｎ  ｉｎ  ｔｈｅ  ｍｉｄｄｌｅ：ＭＩＴＭ）攻撃は、ソフトウェアベースの攻撃の広く知られ、かつ、配備された形態であり、マルウェアが、接続されたソフトウェア間のすべての通信上でマルウェアがスパイ行為をし、接続されたソフトウェアエンドポイントのコマンドまたは応答のうちのいずれかを偽装できるように、２つ以上の接続されたソフトウェア間にマルウェアが配置されている。ＭＩＴＭ攻撃は、システムへの物理的アクセスにより、または、システムへの物理的アクセスなく、実現されることができる。
【０００４】
ハードウェアベースのＭＩＴＭ攻撃の新興の脅威もあり、これは、例えば、不正な半導体製造および州支援の半導体サプライチェーン改ざん（ｔａｍｐｅｒｉｎｇ）により、もたらされるかもしれない。外部ハードウェアは、フィールドプログラム可能ゲートアレイ（ＦＧＰＡ）コンフィギュレーションビットストリームのような、内部通信およびデータフォーマットを記録およびデコードするためのＭＩＴＭとして、システムに追加されてもよい。システムへのこれらの低レベル近接により、ハードウェアベースのＭＩＴＭ攻撃は、極めて危険になることがある。
【０００５】
図１は、例示的なハードウェアＭＩＴＭ（ＨＭＩＴＭ）インプリメンテーションを図示している。ＨＭＩＴＭプロセッサ１０は、ＣＰＵ２０と周辺機器３０との間に配置されている。ＨＭＩＴＭプロセッサ１０は、周辺機器３０とＣＰＵ２０との間で電子的に偽装できる。ＨＭＩＴＭプロセッサ１０は、どのコマンドおよび応答がＣＰＵ２０と周辺機器３０との間を通過するかを選ぶことができる。検出することがとても難しいかもしれない悪意ある結末を達成するために、ランダムな時間期間で有害な状態でエンドポイント（例えば、ＣＰＵ２０および周辺機器３０）を一時的に置くように、ＨＭＩＴＭプロセッサ１０は設計されることができる。
【０００６】
ＨＭＩＴＭインプリメンテーションは、これらの柔軟性、真のハードウェアレベルスレッド同時実行、および、最小内部信号伝播遅延により、中央プロセッサとしてＦＰＧＡまたは他のプログラム可能論理デバイス（ＰＬＤ）変形を使用してもよいが、これらに限定されない。マイクロ制御装置および／またはＣＰＵも、いくつかの実施形態において使用されてもよい。ＨＭＩＴＭ物理インプリメンテーションは、ターゲットプリント回路基板に追加された視覚的に知覚できる異質な（ｆｏｒｅｉｇｎ）半導体パッケージおよびソケットから、より精巧で視覚的に検出できない要素にまで広がっている。
【０００７】
ターゲットＣＰＵに対するオリジナルマザーボードのフットプリントを使用している間、ＨＭＩＴＭがその下に実装されることができるように、ＨＭＩＴＭは、ターゲットプロセッサを呼び出すカスタムソケットと挿入プリント基板の使用を通して、コンピュータマザーボードのような既存のハードウェア上のレトロフィットとして実現されることができる。例えば、図２は、標準プロセッサマウント４０およびＨＭＩＴＭインプリメンテーションマウント５０を示している。ＨＭＩＴＭインプリメンテーション５０のためのソケットおよび挿入基板は、ボールグリッドアレイ（ＢＧＡ）、プラスチックリードレスチップキャリア（ＰＬＣＣ）、または、プラスチッククワッドフラットパック（ＰＱＦＰ）のような、さまざまなプロセッサおよびプロセッサパッケージタイプに対して使用されてもよい。
【０００８】
ここで説明するシステムおよび方法は、ＨＭＩＴＭインプリメンテーションを検出してもよい。深く組み込まれたＨＭＩＴＭインプリメンテーションは、視覚的に検出することが難しいかもしれず、すべてのＰＣＢまたはモジュールは、グローバルサプライチェーンの端部で調べられないかもしれないことから、プロセッサまたはインテリジェントモジュールは、重要なＩ／Ｏ接続上で、ＭＩＴＭハードウェアおよび／または異質な外部接続を検出するための自己テストを実現してもよい。例えば、外部プロセッサまたは他の回路が、そのポストプロダクションに取り付けられている場合、プロセッサは、それが、自己検出できるようにする構成を含んでいてもよい。プロセッサは、監視し、変更し、盗聴し、置換し、別の目的に利用し、ブロックし、または、プロセッサ信号を損なう他の何らかの方法で試行する、外部ポストプロダクションハードウェア修正を自己検出してもよい。プロセッサは、ＨＭＩＴＭのような、許可されていない外部プロセッサ接続が追加されているか否かを決定するために、デジタルカウンタ、アナログ比較器、および、優先割り込みのような統合されているリソースを利用して、１つ以上の自己テストを実行してもよい。ＨＭＩＴＭは、直列に、並列に、または、直列および並列の両方で、ＣＰＵおよび周辺機器に接続されてもよい。並列接続は、検出するのがより難しいかもしれないが、例えば、特定のパターンが検出されたときに、信号を変えようと試行する方法を使用することにより、これらの影響を検出することが可能であるかもしれない。ここで説明するシステムおよび方法は、ＨＭＩＴＭ要素を検出するために使用されるが、これらは、例えば、自己検出システムに接続されているか、または、接続されていない、許可されたモジュールハードウェアの存在を確認するためにも使用されてもよいことに留意すべきである。
【０００９】
いくつかの実施形態では、生産設計は、オプション的なハードウェアベースのモジュールアドオンを有していてもよい。このようなモジュール電子システムのためのファームウェアは、どのハードウェアが取り付けられているかをシステム制御装置（ＣＰＵ）に知らせるために、ソフトウェアフラグまたはハードウェアジャンパを含んでいてもよいが、フェイルセーフとして、または、動作領域でモジュールアドオンが挿入されたり、取り除かれたりすることが多いインプリメンテーションのために、以下で説明するシステムおよび方法はまた、システムをそれに応じて動作させて、予測されたまたは許可された外部ハードウェアアタッチメントが存在するか否かを検出するために使用されてもよい。
【００１０】
図３は、本発明の実施形態にしたがう自己検出構成を備えるプロセッサ１００を示している。プロセッサ１００は、無許可の外部プロセッサ接続（ＵＥＰＣ）を検出するように構成されている、１つ以上の自己テストモジュールを含んでいてもよい。例えば、プロセッサ１００は、パルスモジュール１０５と、遅延モジュール１１０と、上昇時間／下降時間モジュール１１５と、駆動強度モジュール１２０と、帯域幅モジュール１２５と、高速モジュール１３０と、アナログ波形モジュール１３５と、および／または、他のモジュールとを含んでいてもよい。さらに、いくつかの実施形態では、１つ以上の外部コプロセッサ１５０が設けられてもよい。これらのモジュールの特定の構成および機能は、以下でより詳細に説明する。ＵＰＥＣ検出モジュールは、それぞれ、較正データのための、自身の安全な内部メモリ装置を有していてもよい。較正データは、例えば、厳密な工場自己テストを通して生成されてもよい。環境フィールドパラメータは広く変化し、コンポーネントは常に古くなることから、記憶された較正データもまた、環境および時間パラメータ補正ファクターを含んでいてもよい。
【００１１】
伝播遅延テスト
図４は、本発明の実施形態にしたがう、ＨＭＩＴＭ伝播遅延テストおよび／または他のテストを実行するためのテストループ４１０を図示している。図１中に示したもののようなＨＭＩＴＭは、それを通った信号の意図された宛先への伝播にわずかな遅延をもたらすかもしれない。ＨＭＩＴＭを実現するために使用される半導体テクノロジーおよび物理接続インプリメンテーションに基づいて、追加の伝播遅延を検出することができる。隠れた物理テストループ４１０は、プロセッサ１００（示していない）が取り付けられることになるマザーボードプリント回路基板（ＰＣＢ）上に取り付けられてもよい。テストループ４１０は、ＣＰＵフットプリントパッド４００のテスト送信ピン４２０から出てもよく、テスト受信ピン４３０または受信ピン群上で終了してもよい。プロセッサ１００のパルスモジュール１０５は、送信ピン４２０を介してテストループ４１０に接続してもよく、遅延モジュール１１０（および／または以下で説明する他のモジュール）は、受信ピン４３０を介してテストループ４１０に接続してもよい。いくつかの実施形態では、テストループ４１０は、その上下に接地平面を有するＰＣＢの中間レイヤに位置付けられていてもよく、それをさらに覆ったり、改ざんのためにアクセスしづらくしたり、および／または、電磁ノイズに対してより不感受にしてもよい。わかりにくくし、かつ、テスト信頼性をより高くするために、追加のループ４１０を使用して、異なるレイヤにわたって拡散し、異なるテスト送信ピン４２０および受信ピン４３０を使用してもよい。
【００１２】
パルスモジュール１０５は、受信ピン４３０をテストするために、ループ４１０を通して送信ピン４２０から搬送されるパルスを生成してもよい。受信ピン４３０は、送信されたパルス上で測定を行うために使用されてもよい。テストループ４１０に沿って受信ピン４３０へのＣＰＵ生成パルスの伝播遅延を測定するために、遅延モジュール１１０のカウンタは、送信パルスが生成された瞬間に開始されてもよい。パルスが受信ピン４３０に達すると、遅延モジュール１１０は、例えば、ソフトウェア割込みを起動することにより、伝播遅延テストカウンタを停止してもよい。
【００１３】
図５は、本発明の実施形態にしたがう、ＨＭＩＴＭ伝播遅延テストのためのタイミングダイヤグラムを示している。トップ信号は送信ピン４１０における信号であり、ボトム信号は受信ピン４３０における信号である。テストカウントは、パルス５１０が生成されたときに開始されてもよい。例えば、パルス５１０の時間から、受信ピン４３０における上昇５２０の中点への伝播遅延が決定されてもよい。このサンプルタイミングダイヤグラムでは、パルスの上昇５１０からパルスの上昇５２０の中点までに、おおよそ１２０ｎｓの伝播遅延がある。
【００１４】
ＣＰＵまたは他のデバイスに対して予測される伝播遅延は既知であってもよい。ＨＭＩＴＭがＣＰＵとマザーボードとの間に挿入される場合、伝播カウントはより大きくてもよく、ＨＭＩＴＭ伝播時間に基づいてもよい。遅延モジュール１１０は、伝播遅延テストからのカウント（またはカウントの統計的平均）を、ＣＰＵに対する同じテストから記憶されたファクトリーデータと比較してもよい（いくつかの実施形態では、記憶されたファクトリーテストは、温度の範囲および可能性ある他の環境パラメータに渡って実行されてもよい）。測定されたカウント（または平均化されたカウント）が、予め定められたしきい値だけ安全なファクトリー較正データと異なる場合、遅延モジュール１１０は、高い程度の可能性でＨＭＩＴＭが存在すると知ってもよい。
【００１５】
遅延モジュール１１０は、テスト送信ピンからテスト受信ピンまでの記憶された較正伝播遅延時間に対するアクセスを有していてもよい。このデータは、例えば、ＣＰＵの内部にまたは外部の安全な記憶装置中に、安全に記憶されることができる。このデータは、改ざんを検出するために使用されることができることから、攻撃者による改ざんや改造から安全となるように、高度に保証され、暗号化されることができる。伝播遅延テストデータの信頼性を増加させるために、追加のテストループならびに送信および受信テストピンが使用されてもよい。さらに、システム中の他のコンポーネントおよびプロセッサ（例えば、外部プロセッサ）は、テストパルスを中継するために使用されてもよい。
【００１６】
例えば、一般的に、クロックサイクル毎に単一の機械命令のみが可能であり、８ＧＰＩＯピンの固定されたポート幅を有するマイクロ制御装置（ＭＣＵ）を有するＨＭＩＴＭインプリメンテーションを検討する。ＨＭＩＴＭを検出するための方法を実現するＣＰＵが、９つのテストループ（またはＨＭＩＴＭ固定ポート幅＋１）を有する場合、遅延カウンタは、ＨＭＩＴＭによって付加された物理伝播遅延と、１又はそれ以上の機械命令の遅延を含んでいてもよい。これが当てはまるのは、９個のテストループのうちの８個がＨＭＩＴＭの同じポートにルーティングされるような場合、これらは、例えば、割り込みサービスルーチン（「ポートＸ＝ポートＹ」）において、１つの高レベル命令でポートを連続して通過するかもしれないからである。第９（またはポート幅＋１）のテストループは、次の高レベル命令で取り扱われてもよい。入力を感知し、そのポート出力レベルを変更するＨＭＩＴＭによってもたらされる時間を検出できるほどＣＰＵが十分に速い場合、これは、複数のテストループ上で伝播遅延テストを実現するＣＰＵによって反復可能であり、検出可能である。
【００１７】
マルチループ伝播遅延テストが行われる順序を変更することはまた、｛ポートＢ＝ポートＡ；ポートＤ＝ポートＣ；ポートＦ＝ポートＥ；｝のような、ポート幅の出力レベル割り当て（ｐｏｒｔ−ｗｈｉｄｅ  ｏｕｔｐｕｔ  ｌｅｖｕｌｅｌ  ａｓｓｉｇｎｍｅｎｔｓ）の連続ループにより、ＣＰＵを通して連続して信号をルーティングするＣＰＵベースのＨＭＩＴＭインプリメンテーションを識別することを手助けしてもよい。第１のテストパルスがポートＥ上のＨＭＩＴＭに入る場合、ＨＭＩＴＭの追加されたループ長だけでなく、別のポートを読み取ることに応答して、ＨＭＩＴＭがポート出力レベルを調節するために、ＨＭＩＴＭに対して必要とされる時間の二倍に等しい時間の長さだけ、第１のテストパルスは遅延されてもよい。これは、ＨＭＩＴＭ  ＣＰＵが、ループ中にポート同値（ｐｏｒｔ  ｅｑｕｉｖａｌｅｎｃｉｅｓ）を連続して割り当てるからである。例えば、ポートＢ＝ポートＡコマンドでプログラムが開始する場合、ポートＤ＝ポートＣコマンドが最初に実行されるから、その後にポート書込みが続くポート読取りを実行するために必要とされる命令の量の少なくとも２倍だけ、ポートＦ＝ポートＥコマンドは遅延される。ＦＰＧＡ  ＨＭＩＴＭが複数のＩ／Ｏポート同値をゲートレベルで恒久的に割り当てることができ、ＣＰＵのような連続的なコマンドループを要求しないことから、これは、ＦＰＧＡ  ＨＭＩＴＭについては真ではないかもしれない。
【００１８】
図６Ａ−図６Ｂは、本発明の１つの実施形態にしたがう、複数のテストループ４１０を備えるプロセッサ１００を図示している。テストループ４１０は、シングルエンドまたは差動ペアであってもよく、同一ポート上で開始および終了する複数のＩ／Ｏポート上にあってもよい。図６Ａ−図６Ｂはまた、テストパルスが生成されるときにゼロで開始し、テストパルスが受信ピンにおいて受信されるときにカウント「Ｔｐｒｏｐ」で終了する、ハードウェアカウンタのカウントにおける例示的な伝播時間を示している。いくつかの実施形態では、各テストループ４１０は、ルーティング制約により他のテストループ４１０とは異なる長さを有していてもよく、したがって、テストループ４１０は、異なる伝播時間を有していてもよい。ＨＭＩＴＭの挿入は、Ｔｐｒｏｐの値を増加させることができ、遅延モジュール１１０は、テストが有効になるように追加された時間を検出するのに十分な速度および分解能を有していてもよい。
【００１９】
すべての実験的に導出された平均テスト結果と、テスト測定のためのすべての動作環境範囲における肯定ＨＭＩＴＭ識別しきい値を含むルックアップテーブルまたは他のデータ構造は、システムメモリ中に記憶されてもよい。遅延モジュール１１０はこのデータにアクセスしてもよく、テストループ４１０結果を動作のフィールド中に記憶されたデータと比較してもよい。
【００２０】
テストループ４１０を伴うさらなるテストを以下に説明する。プロセッサ１００から出るおよびプロセッサ１００で終了するテストループ４１０を攻撃者が切断または除去する場合、テストのすべては失敗するだろうということに留意すべきである。遅延モジュール１１０は、この失敗を検出してもよく、これにより、ポストプロダクション改ざんを検出してもよい。
【００２１】
上昇および下降時間テスト
送信パルス上昇および下降時間測定は、同じテストループ４１０を伝播テストとして使用する、上昇時間／下降時間モジュール１１５によって実行されてもよい。いくつかの実施形態では、ＨＭＩＴＭからの引き起こされた変化は、伝播遅延測定において測定された変化よりも知覚されにくいことから、高速ＭＣＵまたはＦＰＧＡのようなより細かいカウント分解能を有するより速い外部コンポーネントが、測定のための内部上昇時間／下降時間モジュール１１５を増強させるために使用されてもよい。高密度接続を有する基板のような、ある回路基板レイアウトシナリオについて、基板の端に配置されたＨＭＩＴＭ検出を増強するための外部コンポーネントは、長いテストループ４１０よりも実装するのが容易であるかもしれない。図５中で上記に示したように、受信パルス５２０は、時間に関して送信パルス５１０よりも遅い上昇端を有していてもよい。受信パルス５２０の下降端は、送信パルス５１０と比較して同様に遅くてもよい。受信パルス５２０のこの特性は、寄生インダクタンス、キャパシタンス、ループ抵抗、ループ長、および／または、送信ピンの駆動強度のような、テストループ４１０送信ラインパラメータの関数であってもよい。ＨＭＩＴＭを挿入することは、前述のパラメータに影響を及ぼすかもしれず、それによって、これらをより速くまたはより遅くすることによって、受信パルス５２０の上昇および下降時間を変化させることができる。
【００２２】
上昇時間／下降時間モジュール１１５がアナログ比較器および／またはアナログデジタル変換器（ＡＤＣ）を含む場合、例えば、テストループ４１０上の受信テストパルス５２０の上昇および下降時間が計算されてもよい。ＡＤＣが十分に速い場合（時間に関するテストパルスの傾きの速度の５−１０倍）、テストパルスをサンプリングして上昇および下降時間の傾きを計算し、これらを保証された較正データと比較してもよい。傾きが予め定められたしきい値だけ異なる場合、信号経路がＨＭＩＴＭによって変更されたとしてもよい。
【００２３】
代替的に、アナログ比較器およびカウンタは、上昇および下降端が１つの安定した電圧基準レベルから別の安定した電圧基準レベルに移行するのにどのくらい時間がかかるのかをカウントするために、使用されることができる。カウンタおよび比較器は、信頼できる測定を行うために、テストパルスに関して十分な分解能および速度を有していてもよい。本質的に、上昇および下降時間測定は、時間に関する電圧レベルの差であってもよい。したがって、上昇時間／下降時間モジュール１１５は、テストパルスの上昇時間が劇的に変化したか否かを決定するために、以下の計算を実行してもよい：しきい値＿上昇＿時間＿最小（Ｔｈｒｅｓｈｏｌｄ＿Ｒｉｓｅ＿Ｔｉｍｅ＿Ｍｉｎｉｍｕｍ）＜ΔＶ／Δｔ＜しきい値＿上昇＿時間＿最大（Ｔｈｒｅｓｈｏｌｄ＿Ｒｉｓｅ＿Ｔｉｍｅ＿Ｍａｘｉｍｕｍ）、ここで、ΔＶは、時間範囲Δｔにわたって測定されるテストパルスの電圧における変化である。下降時間変更決定は、同じ方法で測定され、計算されてもよいが、上昇時間と下降時間が異なることから、異なるしきい値を使用してもよい。
【００２４】
実験的に導出された平均結果と、さまざまな動作環境範囲におけるこの測定に対するしきい値とを含むルックアップテーブルまたは他のデータ構造を、システムメモリ中に記憶することができる。上昇時間／下降時間モジュール１１５は、記憶されたデータを、ＨＭＩＴＭ検出自己テストからの測定と比較してもよい。
【００２５】
駆動強度テスト
駆動強度モジュール１２０は、テストループ４１０におけるテストパルス送信の最低有効駆動強度をテストしてもよい。いくつかのプロセッサ１００ピンは、プログラム可能な駆動強度を有していてもよい。テストループ４１０の終了において、テスト受信ピンにおける受信を登録するのに必要とされる最小駆動強度が、工場で測定され、記録されてもよい。いくつかの事例では、ＨＭＩＴＭの挿入は、最小の電力供給されたパルスを受信ピン４３０において登録させないようにし、したがって、ＨＭＩＴＭ、または、単に劣化した出力ドライバの存在を示してもよい。したがって、記録された最小駆動強度における、または、記録された最小駆動強度の近くのパルスが送信され、駆動強度モジュール１２０は、パルスに対する受信ピン４３０を監視してもよい。パルスが検出されない場合、ＨＭＩＴＭが存在するかもしれない。
【００２６】
代替的に、記録された最小駆動強度よりも低い駆動強度を有するパルスが受信ピン４３０に依然として到達するように、より強い出力ドライバをＨＭＩＴＭは有していてもよい。したがって、記録された最小駆動強度よりも低いパルスが送信されてもよく、駆動強度モジュール１２０は、パルスに対する受信ピン４３０を監視してもよい。パルスが検出される場合、ＨＭＩＴＭが存在するかもしれない。
【００２７】
実験的に導出された平均結果と、さまざまな動作環境範囲におけるこの測定のためのしきい値とを含むルックアップテーブルまたは他のデータ構造が、システムメモリ中に記憶されてもよい。駆動強度モジュール１２０は、記憶されたデータを、ＨＭＩＴＭ検出自己テストからの測定と比較してもよい。
【００２８】
テストループ送信ライン帯域幅キャラクタライゼーション
ＨＭＩＴＭの挿入は、テストループ４１０の送信ライン特性を変更してもよい。テストループのラインインピーダンス、帯域幅、寄生キャパシタンス、および、寄生インダクタンスへ引き起こされた変化は、上記の方法で測定された、テストパルスの工場およびポストＨＭＩＴＭ特性における差に寄与することができる。テストループの送信ライン特性はまた、工場において、基板上で測定され、記憶されてもよい。
【００２９】
例えば、テストループ４１０ラインのインピーダンス（すなわち、より高い周波数に対するより高い抵抗）により、受信ピン４３０を監視する帯域幅モジュール１２５が、最後には、いくつかのより高い周波数においてもはやパルスを検出しなくなるように、パルスモジュール１０５が、テストループ４１０ライン上の適切な量の周波数をスウィープできるような場合、テストループ４１０の帯域幅は導出されてもよい。ＨＭＩＴＭを挿入することは、テストループ４１０の帯域幅を（より良くまたはより悪く）を変化させるかもしれず、受信ピン４３０上の測定された信号を、記憶された工場帯域幅数およびしきい値範囲と比較することによって、帯域幅モジュール１２５がＨＭＩＴＭ存在を検出することを可能にする。テストループ４１０のうちのいくつかの送信ラインパラメータは、例えば、その入力において検出された周波数を測定し、デジタル的に書き出すことができる専用周波数カウンタデバイスのような、追加の外部コンポーネントにより測定されることもできる。
【００３０】
実験的に導出された平均結果と、さまざまな動作環境範囲におけるこの測定のためのしきい値とを含むルックアップテーブルまたは他のデータ構造は、システムメモリ中に記憶されてもよい。帯域幅モジュール１２５は、記憶されたデータを、ＨＭＩＴＭ検出自己テストからの測定値と比較してもよい。
【００３１】
高速自己メッセージループテスト
外部ハードウェアのポストプロダクション追加を検出するために実行されることができる別の自己テストは、可能性ある最も高いデータレートによりそれ自身をメッセージングし、メッセージが変更されなかったことを確実にするために、受信したメッセージを送信したメッセージと比較するプロセッサ１００を含んでもよい。例えば、複数のユニバーサル非同期受信機／送信機（ＵＡＲＴ）ポート（または均等物）を有するプロセッサ１００は、高速モジュール１３０を使用して、１つのＵＲＡＴの送信ポートから、同じＵＡＲＴポートまたは同じプロセッサ１００上の別のものの何れかの受信ポートに、「これはテストです」のような、ストリングメッセージを送信してもよい。テストメッセージまたはメッセージは、既知のメッセージであってもよく、したがって、高速モジュール１３０は、テストが実行されたときに受信されるべきものを知っていてもよい。
【００３２】
テストは、生産設備の工場ハードウェアで可能な最高速度で行われてもよい。テストメッセージとともに最も高い成功データレートがメモリ中に記録されてもよく、自己メッセージテストは、記憶されたデータレートにおけるフィールドにおいて、記憶されたメッセージで実行されてもよい。受信された自己メッセージが送ったメッセージと一致しない、または、繰り返された試行の後にエラーを有する場合、信号経路が外部ハードウェアにより変更された可能性があるかもしれない。いくつかの実施形態では、複数のメッセージを使用するときに送られることになるテストメッセージの順序をランダム化するために、アルゴリズムを使用してもよい。
【００３３】
このテストは、外部ハードウェア検出のための自己テストを行うように構成されたプロセッサ１００上の特定の通信ポートに限定されなくてもよい。高速モジュール１３０が、パターンまたはメッセージを抽出するためのビットタイミングアルゴリズムを実現する受信ピンを監視するように、任意のピンは、特定のデータパターンまたはメッセージを別のピンに送出することができてもよい。カスタム通信スキームを実現するこの方法は、一般に「ビットバンギング（ｂｉｔ−ｂａｎｋｉｎｇ）」として呼ばれている。
【００３４】
低電圧感知アナログデジタル（Ａ−ｔｏ−Ｄ）受信器入力ループテストへの低電圧アナログ波形出力
アナログ波形モジュール１３５は、アナログ波形を出力するためのテストループ４１０上の送信ピン４２０と、波形における実質的な妨害がわかるほど十分に速いレート（〜１０ｘ）でアナログ波形をサンプリングするためのテストループ４１０上の受信ピン４３０を使用してもよい。このテストを実現するテストループ４１０上のＨＭＩＴＭが、単にデジタルＩ／Ｏパスである場合、「ＴＴＬ」信号に対して２．０ボルトのような、その電圧感知レベルの下部のアナログ波形の部分を検出しないであろう。したがって、２．０Ｖボルトの下に留まるアナログ信号は、テストループ４１０の受信ピン４３０に決して到達できない。アナログ波形モジュール１３５は、アナログテストパルスの開始に関連して実行されてもよいデジタルループタイマを含んでいてもよい。いくつかのタイムアウト時間パラメータｔの後に、受信ピン４３０においてパルスが受信されない場合、ＨＭＩＴＭインプリメンテーションが存在すると合理的に決定してもよい。
【００３５】
ＡｔｏＤ入力およびＤｔｏＡ出力を使用することによるアナログ入力の原因となるほど十分にＨＭＩＴＭ攻撃が精巧である場合、余分な変換時間は、アナログ波形モジュール１３５によって検出可能であってもよい。代替的に、ＨＭＩＴＭ攻撃がアナログライン上のアナログ波形を単に通過する場合、接続は、検出されるのに十分なように信号を変更してもよい。したがって、アナログ波形モジュール１３５は、振幅、期間、デューティサイクル、および／または、受信信号と比較するための半値全幅（ｈｕｌｌ−ｗｈｉｄｔｈ  ｈａｌｆ−ｍａｘ）のような、予想される受信アナログ信号のために記憶されたパラメータにアクセスしてもよい。受信されたパラメータのいずれかまたはすべてが、予め定められ記憶されている受け入れ可能な帯域外である場合、ＨＭＩＴＭインプリメンテーションが根本原因であると考えてもよい。
【００３６】
ＨＭＩＴＭ検出のための外部コンポーネントからのテストパルスエコー（または変更されたエコー）の使用
ＨＭＩＴＭ攻撃ベクトルのためのシステムを分析する熟練した攻撃者は、単一のプロセッサ１００で開始および終了する複数のＰＣＢループまたはワイヤに気付いた場合に、疑いはじめるかも知れない。テストループ４１０が内部ＰＣＢレイヤに組み込まれている場合、それらを視覚的に検出することは非常に困難であるが、冗長な連続テストは、（ＰＣＢ設計ファイルが利用可能でない場合）ＰＣＢの３Ｄ  Ｘ線リバースエンジニアリングとともにこれらを発見するかもしれない。
【００３７】
ＨＭＩＴＭ検出器から、受信したテストパルスまたはメッセージをＨＭＩＴＭ検出器に単純に繰り返して（“ｅｃｈｏ”）戻すようにプログラムまたは設計されている別の外部プロセッサまたは全体システム中のコンポーネントに進むテストループ４１０のような、より隠れた手段が使用される場合、ＰＣＢテストループ４１０によりＨＭＩＴＭを検出するのに成功する機会を改善するかもしれない。例えば、外部マイクロコントローラのＵＡＲＴは、受信したものは何でも中継するように「エコー」モードでプログラムされてもよい。テストメッセージの帯域レートがＨＭＩＴＭテストに対して高すぎて、エラーなく通過できない場合、テストは失敗するかもしれない。
【００３８】
より簡単には、外部バッファ集積回路（ＩＣ）は、それ自体を通してテストパルスの正確なレプリカを通過させ、ＨＭＩＴＭ自己テストを実行するデバイスにも戻るように配線またはプログラムされてもよい。ＨＭＩＴＭが存在する場合、パルスは、上述の自己テストに関して説明したような、異なる特性を有していてもよい。
【００３９】
さらに、ＨＭＩＴＭの追加が、予測された戻りパルスまたはメッセージについての記録された比較しきい値を使用して、自己試験器によって検出可能な方法でテストパルスをさらに変更するように、外部コンポーネントまたはデバイスは、繰り返し可能および記録可能な方法で、自己テストを実行するデバイスからのテストパルスまたはメッセージを変更するために使用されてもよい。
【００４０】
ＨＭＩＴＭ検出のための専用の外部コプロセッサの使用
プロセッサ１００は、外部に追加されたポストプロダクションハードウェアまたはＨＭＩＴＭインプリメンテーションを検出する必要があるが、それ自体の内部リソースを割くことができない、または、それを行うための十分なリソースを有していない場合、ＨＭＩＴＭ検出専用外部コプロセッサ１５０およびおそらくは他のセキュリティ機能を用いてもよい。２つのプロセッサ１００／１５０（および、おそらくは他のサポートエレクトロニクス）は、単に、１つのチップまたはシステムオンチップ（ＳＯＣ）に見えるように、単一のチップパッケージまたはモジュールにパッケージ化されてもよい。
【００４１】
この実施形態は、区画化された製品およびセキュリティ機能を提供することができ、ＨＭＩＴＭ検出のための最良のタイプのプロセッサの使用を可能にしてもよい。ＨＭＩＴＭ検出器コプロセッサ１５０は、上記で説明したすべてのテストを実装してもよく、上記で説明したモジュールおよび／またはしきい値パラメータのセットを含んでいてもよい。コプロセッサ１５０はまた、ホストプロセッサ１００との通信インタフェースを含んでいてもよく、データとテスト結果をプロセッサ１００と共有できるようにする。
【００４２】
図７は、本発明の実施形態にしたがう、ＨＭＩＴＭ１０に結合されたＳＯＣ７００を図示している。この例示的なＳＯＣ７００のインプリメンテーションは、プロセッサ１００（ＣＰＵ）と、コプロセッサ１５０（ＨＭＩＴＭ検出器）を含み、これらは、例えば、結合プログラム可能論理デバイス（ＣＰＬＤ）、ＦＰＧＡ、ＭＣＵ、ディスクリートマイクロエレクトロニクス、または、これらの組合せにより実装されてもよい。図７中のＳＯＣ７００の右は、悪意に対するシステムポストプロダクションに追加されたＨＭＩＴＭインプリメンテーション１０である。簡略化のために、この例では、ＨＭＩＴＭ１０を通過する単一のループ４１０のみが明示的に描かれているが、いくつかの実施形態では、特に、攻撃がソケットベースであり、ＳＯＣ７００からＩ／Ｏラインの大部分またはすべてをキャプチャする場合、ＣＰＵ１００および/またはＨＭＩＴＭ検出器１５０からの複数のＩ／Ｏラインが、ＨＭＩＴＭ１０を通過してもよい。
【００４３】
図示された単一のテストループ４１０は、ＳＯＣ７００から出て、ＨＭＩＴＭプロセッサ１０を通過し、ＳＯＣ７００に戻る。ＨＭＩＴＭ検出器１５０は、アプリケーション特有のイベントにおけるそのＨＭＩＴＭ検出テストのすべてを実行してもよい。ＨＭＩＴＭプロセッサ１０を通過しないテストループ４１０は、負の検出結果を生じさせるかもしれないが、ＨＭＩＴＭプロセッサ１０を通過するループ４１０は、記憶された工場しきい値とは異なるテスト結果を有していてもよく、したがって、ＨＭＩＴＭ１０の肯定的な識別につながる。
【００４４】
攻撃が検出器のＩ／Ｏのすべてをキャプチャしない場合、ＨＭＩＴＭ検出器１５０からのすべての利用可能なテストループ４１０がＨＭＩＴＭ１０を通過しない可能性があるかもしれない。したがって、用いられるテストループ４１０が多いほど、それらのうちの１つがＨＭＩＴＭプロセッサ１０を通過してそれを検出する機会は多くなる。十分なテストループ４１０を有することと、ＨＭＩＴＭ１０をインストールする攻撃者に容易に検出可能でないこととの間でバランスがとられてもよい。他の部品上の未使用のピンに進むループのようなデコイループは、攻撃者からＨＭＩＴＭ検出器の真の目的を偽るために使用されてもよい。
【００４５】
ＨＭＩＴＭ検出のための組み込まれたＲＦアンテナＰＣＢループの使用
図４は、ＨＭＩＴＭ自己検出プロセッサ１００上のピンから出て、同じプロセッサ１００の異なるピンで終了するテストループ４１０を示している。ＰＣＢ上のこのような物理テストループ４１０を使用して行われる同一テストは、物理的ループが必要とされないようにワイヤレス通信によってエミュレートされてもよく、または、補足されてもよい。１つ以上のテストループ４１０が送信アンテナを備える場合、プロセッサ１００の駆動ピンはその出力において適切な駆動信号を生成でき、その後、設計された受信アンテナまたはチップアンテナは、送信アンテナループからの送信を検出してもよい。送信信号がＨＭＩＴＭデバイスを通過する場合、予想されるテスト結果のための記憶された比較しきい値データと比較されるとき、その受信した特性は、検出可能な方法で変更されてもよい。これは、ワイヤレス通信が、送信ライン特性に対して非常に敏感であるかもしれないからであり、いくつかの実施形態では、ワードワイヤ接続されている通信よりもはるかに敏感であるかもしれない。高周波無線信号の送信および／または受信経路におけるＨＭＩＴＭプロセッサの存在は、検出可能な方法で信号に影響を及ぼすかもしれない。
【００４６】
ＨＭＩＴＭ検出方法
図８は、本発明の実施形態にしたがうハードウェア中間者インプリメンテーションを検出するための方法８００を図示している。所定のプロセッサ１００に対して、フィールド中で行われることになるすべてのＨＭＩＴＭ自己テストは、既知の真正のハードウェアからテストデータを取得するために、生産設備で実行されてもよい（８１０）。テストは、多くの生産システムで既に行われているテストの自動テスト一式に単に追加されてもよい。テストループ特性は、各生産システムに対してわずかに変化するかもしれないことから、テストは、すべての生産システム上、および、生産システムが動作するように意図されているすべての環境条件において行われてもよい。
【００４７】
テストは繰り返されてもよい（８２０）。各自己テストについて統計的に平均化された検出しきい値を計算し、記憶するのに十分なテストが行われてもよい。
【００４８】
各テストに対するしきい値も設定されてもよい（８３０）。任意の自己テストのためのしきい値は、平均結果がその間になければならない最小および最大の範囲であってもよく、または、平均化された結果が、例えば、上または下のいずれかでなければならない絶対最小値または最大値であってもよい。各テストに対するしきい値は、誤った肯定識別を最小化するのに十分に大きくなるように選択されてもよい。テストがこのようなしきい値を生じない場合、それは、プロセッサ１００に対して含まれないかもしれない。また、いくつかの実施形態における、いくつかのプロセッサ１００のための特定の環境範囲に対して、一意的な検出しきい値を記憶することが必要であるかもしれない。温度がテスト結果に影響を及ぼすことがあると決定されているので、例えば、いくつかのしきい値パラメータ「Ａｌ」は、摂氏０−２０度の温度範囲に対する「テストＡ」について記憶されてもよい。このテストのために、テストＡの平均結果が、テストのために実験的に導出されたしきい値よりも少ない場合、テストは、外部ハードウェアが測定に干渉していないと結論付けてもよい。その後、しきい値パラメータ「Ａ２」を、摂氏２１−４０度の温度範囲に対するテストＡのために記憶してもよい。（システムが温度を正確に感知することができると仮定して）システムが摂氏２５度でテストＡを自己実行する場合、その平均化された結果をしきい値Ａ１の代わりにしきい値Ａ２と比較して、その決定を行ってもよい。関心のあるすべての動作環境範囲におけるＨＭＩＴＭ自己検出測定のための実験的に導出された肯定ＨＭＩＴＭ識別しきい値を含むルックアップテーブルまたは他のデータ構造が、上記で着目したように、製造設備自己テストのために記憶されてもよい。自己テストの記憶されたプログラムと、必要な肯定ＨＭＩＴＭ識別しきい値パラメータを含むルックアップテーブルにより、システムは、フィールド内のＨＭＩＴＭ検出自己テストを実行することができてもよい。
【００４９】
自己テストは、電源を入れるおよび／またはシステムリセットする、時間ベースのイベント、センサベースのイベント、ならびに／あるいは、他のイベントのような、アプリケーションまたは配備特定イベントで実行されてもよい（８４０）。各自己テストを複数回実行して、平均結果を取得してもよい。各平均結果は、メモリ中に記憶されたしきい値と比較されてもよい（８５０）。平均されたＨＭＩＴＭ検出自己テスト結果が、追加された外部ハードウェアの肯定的な識別を生じさせる場合（８６０）、その後、適切なアプリケーション特有の操作が行われてもよい（８７０）。これは、センシティブ・データを消去すること、ある通信ポートと通信しないこと、あるコマンドに応答しないこと、システム管理者に警告すること、または、アンロックされている手順が実施されるまで動作しないことを含むが、これらに限定されない。
【００５０】
外部ハードウェアが存在するか否かの最終的な決定の前に、アプリケーション特有のルールは、すべて、１つ、または、複数のＨＭＩＴＭ検出自己テストのうちのいずれか、および、おそらくは、複数の環境条件においででさえも、肯定検出結果を要求するように生成されてもよい。あるテストはまた、複合スコア方法において、他よりも重く重み付けされてもよい。例えば、肯定ＨＭＩＴＭ検出の結果を有する伝播遅延テストは、２．０重み付けしてもよい一方で、同じ結果を有する他のすべてのテストは、１．０だけ重み付けされてもよい。この重み付けされたスキームでは、３．０の最終スコアが必要であり、外部ハードウェアが追加されていることをシステムが自己決定するのに十分である。
【００５１】
さまざまな実施形態を上記で説明してきたが、それらは例として提示したものであり、限定するものではないことを理解すべきである。精神および範囲から逸脱することなく、形態および詳細においてさまざまな変更をそこで行うことができることが、当業者には明白となろう。事実、上記の説明を読んだ後に、代替的な実施形態の実現の仕方が当業者に明白となろう。
【００５２】
加えて、機能性および利点を際立たせる任意の図面は、例示的な目的のためのみに提示していることを理解すべきである。開示した方法論およびシステムは各々、十分に柔軟なものであり、示した以外の方法でそれらを利用できるように構成可能である。
【００５３】
用語「少なくとも１つ」をしばしば明細書、特許請求の範囲、および図面中で使用しているが、用語「ａ」、「ａｎ」、「ｔｈｅ」、「ｓａｉｄ」等はまた、明細書、特許請求の範囲、および図面中で「少なくとも１つ」または「前記少なくも１つ」を表す。
【００５４】
最後に、表現言語「ための手段」または「ためのステップ」を含む請求項のみが米国特許法第１１２条（ｆ）の下で解釈されるべきであることが出願人の意図である。フレーズ「ための手段」または「ためのステップ」を明示的に含まない請求項は、米国特許法第１１２条（ｆ）の下で解釈するべきではない。
【図１】
2018517203.tif 000003
【図２】
2018517203.tif 000004
【図３】
2018517203.tif 000005
【図４】
2018517203.tif 000006
【図５】
2018517203.tif 000007
【図６Ａ】
2018517203.tif 000008
【図６Ｂ】
2018517203.tif 000009
【図７】
2018517203.tif 000010
【図８】
2018517203.tif 000011
【国際調査報告】
2018517203.tif 000012