(57)【要約】  様々な特徴は、スマートフォンプロセッサまたは他のデバイスを過渡フォールト攻撃から防御することに関する。一例では、プロセッサは、フォールト検出システムを使用して過渡フォールトを検出し、過渡フォールトに応じて、制御パラメータを適応的に調整するように備え、この場合、制御パラメータは、(そのクロック信号をゲートすることによってなど)プロセッサの物理的動作または(過渡フォールトを検出するために採用される特定のソフトウェアフォールトセンサー(SFS)など)フォールト検出システムの機能的動作を制御する。いくつかの例では、それぞれの新しく検出されたフォールトに応じて、検出システムは、追加のフォールトを検出する際に積極性を増加させるようにより多くのプロセッサ時間を消費するように制御される。これは、セキュリティ鍵またはパスコードなど、機密情報の損失を防ぐためにデバイスが無効化され得るように、攻撃を即座に検出するために、進行中の攻撃に応じて、フォールト検出を迅速にエスカレートさせるのに役立つ。
2019510318.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサデバイス上で動作可能な方法であって、
前記プロセッサデバイス内の過渡フォールトを検出するステップと、
前記検出された過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように制御パラメータを適応的に調整するステップと
を含む、方法。
【請求項２】
前記プロセッサデバイスが、前記制御パラメータを適応的に調整するために過渡フォールト防御システムを実装し、前記過渡フォールト防御システムが、過渡フォールト抵抗システム、前記過渡フォールト検出システム、および過渡フォールト反応システムのうちの1つまたは複数を含み、前記制御パラメータを適応的に調整するステップが、前記過渡フォールト抵抗システム、前記過渡フォールト検出システム、および前記過渡フォールト反応システムのうちの1つまたは複数を制御するために実行される、請求項1に記載の方法。
【請求項３】
前記制御パラメータが、より高い頻度の過渡フォールトに対して積極性を増加させて対応し、より低い頻度の過渡フォールトに対して積極性を低減させて対応するように適応的に調整される、請求項1に記載の方法。
【請求項４】
前記制御パラメータを適応的に調整するステップが、
最後の過渡フォールトからの時間量を検出するステップと、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整するステップと、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって前記過渡フォールト防御プロセスに割り振られる時間量を低減させるように前記制御パラメータを調整するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記制御パラメータが、
前記過渡フォールト防御に充てられるプロセッサデバイスリソースの割合、
前記過渡フォールト防御のために使用される構成要素が前記プロセッサデバイスによって周期的にアクティブ化される頻度、
前記過渡フォールト防御のために使用される構成要素の実行の持続時間、
過渡フォールト検出および/または過渡フォールト攻撃検出のために使用されるしきい値、
過渡フォールト攻撃検出のために前記プロセッサデバイスに接続される周辺センサーによって使用されるしきい値、
次のフォールトを検出するために使用される特定のフォールト検出手順、および/または
少なくとも1つの他のプロセスに対する前記プロセッサデバイス上で実行する少なくとも1つのプロセスのタイミング
のうちの1つまたは複数を制御する、請求項1に記載の方法。
【請求項６】
前記制御パラメータを適応的に調整するステップが、
最後の過渡フォールトからの時間量を追跡するステップと、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって防御対策に充てられる時間の割合を増大させるステップと、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を低減させるステップと
を含む、請求項1に記載の方法。
【請求項７】
前記追跡間隔内で検出された新しい過渡フォールトの数が下限しきい値を超える場合のみ、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が増大される、請求項6に記載の方法。
【請求項８】
前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が前記追跡間隔内で検出された新しい過渡フォールトの数に比例して前記追跡間隔中に増大される、請求項6に記載の方法。
【請求項９】
前記追跡間隔内で検出された新しい過渡フォールトの数が中間しきい値に達する場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が最大対策レベルに増大される、請求項6に記載の方法。
【請求項１０】
前記追跡間隔内で検出された新しい過渡フォールトの数が最高しきい値に達する場合、前記プロセッサデバイスが無効化される、請求項6に記載の方法。
【請求項１１】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項1に記載の方法。
【請求項１２】
プロセッサデバイスであって、
通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記プロセッサデバイス内の過渡フォールトを検出し、
前記過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように前記プロセッサデバイスの制御パラメータを適応的に調整する
ように構成される、プロセッサデバイス。
【請求項１３】
前記プロセッサ回路が、前記制御パラメータを適応的に調整するために過渡フォールト防御システムを実装し、前記過渡フォールト防御システムが、過渡フォールト抵抗システム、前記過渡フォールト検出システム、および過渡フォールト反応システムのうちの1つまたは複数を含む、請求項12に記載のプロセッサデバイス。
【請求項１４】
前記制御パラメータが、より高い頻度の過渡フォールトに対して積極性を増加させて対応し、より低い頻度の過渡フォールトに対して積極性を低減させて対応するように適応的に調整される、請求項12に記載のプロセッサデバイス。
【請求項１５】
前記処理回路が、
最後の過渡フォールトからの時間量を検出し、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整し、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって前記過渡フォールト防御プロセスに割り振られる前記時間量を低減させるように前記制御パラメータを調整する
ことによって、前記制御パラメータを適応的に調整する、請求項12に記載のプロセッサデバイス。
【請求項１６】
前記制御パラメータが、
前記過渡フォールト防御に充てられるプロセッサデバイスリソースの割合、
前記過渡フォールト防御のために使用される構成要素が前記プロセッサデバイスによって周期的にアクティブ化される頻度、
前記過渡フォールト防御の構成要素の実行の持続時間、
過渡フォールト検出および/または過渡フォールト攻撃検出のために使用されるしきい値、
過渡フォールト攻撃検出のために前記プロセッサデバイスに接続される周辺センサーによって使用されるしきい値、
次のフォールトを検出するために使用される特定のフォールト検出手順、および/または
少なくとも1つの他のプロセスに対する前記プロセッサデバイス上で実行する少なくとも1つのプロセスのタイミング
のうちの1つまたは複数を制御する、請求項12に記載のプロセッサデバイス。
【請求項１７】
前記処理回路が、
最後の過渡フォールトからの時間量を追跡し、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって防御対策に充てられる時間の割合を増大させ、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を低減させる
ことによって、前記制御パラメータを適応的に調整する、請求項12に記載のプロセッサデバイス。
【請求項１８】
前記追跡間隔内で検出された新しい過渡フォールトの数が下限しきい値を超える場合のみ、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が増大される、請求項19に記載のプロセッサデバイス。
【請求項１９】
前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が前記追跡間隔内で検出された新しい過渡フォールトの数に比例して前記追跡間隔中に増大される、請求項19に記載のプロセッサデバイス。
【請求項２０】
前記追跡間隔内で検出された新しい過渡フォールトの前記数が中間しきい値に達する場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が最大対策レベルに増大される、請求項19に記載のプロセッサデバイス。
【請求項２１】
前記追跡間隔内で検出された新しい過渡フォールトの前記数が最高しきい値に達する場合、前記プロセッサデバイスが無効化される、請求項19に記載のプロセッサデバイス。
【請求項２２】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項12に記載のプロセッサデバイス。
【請求項２３】
プロセッサデバイスであって、
前記プロセッサデバイス内の過渡フォールトを検出するための手段と、
前記過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように前記プロセッサデバイスの制御パラメータを適応的に調整するための手段と
を含む、プロセッサデバイス。
【請求項２４】
前記制御パラメータを適応的に調整するための前記手段がさらに、より高い頻度に対して積極性を増加させて対応し、より低い頻度に対して積極性を低下させて対応するように適応的に調整する、請求項23に記載のプロセッサデバイス。
【請求項２５】
前記制御パラメータを適応的に調整するための前記手段が、
最後の過渡フォールトからの時間量を検出するための手段と、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整するための手段と、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって前記過渡フォールト防御プロセスに割り振られる前記時間量を低減させるように、前記制御パラメータを適応的に調整するための手段と
を含む、請求項23に記載のプロセッサデバイス。
【請求項２６】
1つまたは複数の命令を有する機械可読記憶媒体であって、前記命令が、処理回路によって実行されると、前記処理回路に、
前記プロセッサデバイス内の過渡フォールトを検出させ、
前記過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように前記プロセッサデバイスの前記過渡フォールト防御のための制御パラメータを適応的に調整させる
機械可読記憶媒体。
【請求項２７】
前記処理回路によって実行されると、前記処理回路に、より高い頻度の過渡フォールトに対して積極性を増加させて対応し、より低い頻度の過渡フォールトに対して積極性を低下させて対応するように前記制御パラメータを適応的に調整する1つまたは複数の命令をさらに有する、請求項26に記載の機械可読記憶媒体。
【請求項２８】
前記処理回路によって実行されると、前記処理回路に、
最後の過渡フォールトからの時間量を検出させ、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整させ、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる前記時間量を低減させるように前記制御パラメータを調整させる
1つまたは複数の命令をさらに有する、請求項26に記載の機械可読記憶媒体。
【請求項２９】
プロセッサデバイス上で動作可能な方法であって、
前記プロセッサデバイス内の過渡フォールトを検出するステップと、
前記過渡フォールトに応じて、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整するステップと
を含む、方法。
【請求項３０】
前記クロック信号が、ゲートするための前記クロック信号のクロックサイクルを選択するためにハッシュコードを印加することによって適応的に調整される、請求項29に記載の方法。
【請求項３１】
前記ハッシュコードがランダムまたは疑似ランダムに生成される、請求項30に記載の方法。
【請求項３２】
前記クロック信号が、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御するように適応的に調整される、請求項29に記載の方法。
【請求項３３】
前記クロック信号を適応的に調整するステップが、
最後の過渡フォールトからの時間量を検出するステップと、
追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるように前記制御パラメータを調整するステップと、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの前記数を低減させるように前記制御パラメータを調整するステップと
を含む、請求項29に記載の方法。
【請求項３４】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項29に記載の方法。
【請求項３５】
プロセッサデバイスであって、
通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記プロセッサデバイス内の過渡フォールトを検出し、
前記過渡フォールトに応じて、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整する
ように構成される、プロセッサデバイス。
【請求項３６】
前記処理回路が、ゲートするための前記クロック信号のクロックサイクルを選択するためにハッシュコードを印加することによって前記クロック信号を適応的に調整する適応制御システムを実装するようにさらに構成される、請求項35に記載のプロセッサデバイス。
【請求項３７】
前記ハッシュコードがランダムまたは疑似ランダムに生成される、請求項36に記載のプロセッサデバイス。
【請求項３８】
前記クロック信号が、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御するように前記処理回路によって適応的に調整される、請求項35に記載のプロセッサデバイス。
【請求項３９】
前記処理回路が、
最後の過渡フォールトからの時間量を検出し、
追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるように前記制御パラメータを調整し、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの前記数を低減させるように前記制御パラメータを調整する
ことによって、前記クロック信号を適応的に調整するように構成される、請求項35に記載のプロセッサデバイス。
【請求項４０】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項35に記載のプロセッサデバイス。
【請求項４１】
プロセッサデバイスであって、
前記プロセッサデバイス内の過渡フォールトを検出するための手段と、
前記過渡フォールトに応じて、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整するための手段と
を含む、プロセッサデバイス。
【請求項４２】
1つまたは複数の命令を有する機械可読記憶媒体であって、前記命令が、処理回路によって実行されると、前記処理回路に、
前記プロセッサデバイス内の過渡フォールトを検出させ、
前記過渡フォールトに応じて、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整させる
機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年4月1日に米国特許商標局に出願した非仮出願第15/089,379号の優先権および利益を主張し、その内容全体は、全文が以下に完全に記載されるかのように、すべての適用可能な目的のために参照により本明細書に組み込まれる。
【０００２】
本開示は、スマートフォンなどのプロセッサなど、プロセッサデバイスを過渡フォールト攻撃(transient fault attacks)から防御するための技法に関する。
【背景技術】
【０００３】
過渡フォールト攻撃は、たとえば、悪意のあるエンティティが、たとえば、セキュリティ鍵を取得するために、または特に無許可取引を可能にするために、プロセッサのセキュリティを破壊するために使用することができる過渡動作処理フォールトをインジェクションまたは誘起するためにプロセッサに物理的なエネルギーまたは力(すなわち、物理的摂動)を選択的に印加する、プロセッサに対する物理的な攻撃である。たとえば、悪意のある攻撃者は、レジスタビットをフリップすることによって過渡フォールトをインジェクションするために、プロセッサが実行している間にプロセッサの一部分にレーザービームを向ける可能性がある。この形態の攻撃は、トランジスタなどのON状態およびOFF状態に関連する電圧同士の間に比較的狭い差が存在し得る、最新のプロセッサの比較的狭い「ガードバンド」を活用する可能性がある。適切にタイミングをとり、加えられた場合、そのような攻撃は、動作の間、システムに誤った決定を行わせる可能性があり、これは、口座からの金銭の引き落としなど、セキュリティコードを明らかにするか、または無許可取引を可能にする可能性がある。そのようなフォールトは、永続的ではなく過渡的であるため、そのようなフォールトは適切に検出して、対処することが困難であり得る。加えて、悪意のある攻撃がない場合ですら、周囲放射または他の環境要因によってトリガされるランダムな動作上の「グリッチ」により、いくつかのフォールトが発生する可能性がある。
【０００４】
過渡フォールト攻撃は、チェックサムエラーを検出するためのフォールト検出手順を実行することによって検出され得る。たとえば、プロセッサは、数学関数を周期的に算出して、その結果を知られている(正確な)結果と比較する能力を備え得る。何のマッチもない場合、それによりフォールトが検出される。プロセッサは、その場合、フォールト検出カウンタを増分する。カウンタが最終的に所定のしきい値を超える場合、デバイスは自動的に無効化される。フォールトが悪意のあるユーザによる進行中の攻撃による場合、攻撃はそれにより妨害される(攻撃がまだ成功していないと仮定すると)。代わりに、フォールトが自然に生じる場合、無害のユーザは、次いで、新しい銀行カードなどを取得することによってなど、置換デバイスを取得する。実際に、多くの攻撃されやすいデバイスは、フォールト攻撃に対する少なくとも何らかの抵抗が提供されない限り、使用に対して認定され得ない。たとえば、セキュアコンテンツストレージ協会(SCSA:Secure Content Storage Association)およびEMV(Europay/MasterCard/Visa)などの団体に関連する規格および基準を参照されたい。これらの戦略は、いくつかのデバイスに関して、かつ何らかの状況で、十分な場合がある。安価なスマートカードの場合、たとえば、ユーザは、無効化されたスマートカードを廃棄して、新しいスマートカードを取得することができる。しかしながら、スマートフォンまたは他の高価かつ高性能のデバイスの場合、デバイスのメインプロセッサを無効化することは、かなりの負担および迷惑をユーザにかける可能性がある。ユーザが危険にさらされる可能性があり、スマートフォンを使用する必要がある緊急状況では、無効化されたスマートフォンはユーザに深刻かつ不利な結果をもたらし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、特に、従来の手法が十分でない可能性があるスマートフォンまたは他のデバイスにおいて使用するために、過渡フォールト攻撃から防御すための、改善されたシステムおよび手順を提供することが望ましいことになる。
【課題を解決するための手段】
【０００６】
プロセッサデバイス上で動作可能な方法について説明する。プロセッサデバイス内の過渡フォールトを(たとえば、フォールト検出システムを使用して)検出することができる。プロセッサデバイスの(過渡フォールト防御システムの)制御パラメータは、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように適応的に調整され得る。
【０００７】
別の態様では、プロセッサデバイスは、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出することができる。プロセッサデバイスは、次いで、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するようにプロセッサデバイスの(たとえば、過渡フォールト防御システムの)制御パラメータを調整することができる。
【０００８】
さらに別の態様では、デバイスは、プロセッサデバイス内の過渡フォールトを検出するための手段と、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するようにプロセッサデバイスの制御パラメータを適応的に調整するための手段とを含む。
【０００９】
またさらに別の態様では、機械可読記憶媒体は1つまたは複数の命令を含み、1つまたは複数の命令は、少なくとも1つの処理回路によって実行されると、少なくとも1つの処理回路に、プロセッサデバイス内の過渡フォールトを検出させ、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するようにプロセッサデバイスの制御パラメータを適応的に調整させる。
【００１０】
別の態様では、プロセッサデバイス上で動作可能な方法は、プロセッサデバイス内の過渡フォールトを検出するステップと、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調整するステップとを含む。
【００１１】
別の態様では、プロセッサデバイスは、プロセッサデバイス内の過渡フォールトを検出し、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調整するように構成され得る。
【００１２】
さらに別の態様では、デバイスは、フォールト検出システムを使用してプロセッサデバイス内の過渡フォールトを検出するための手段と、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調整するための手段とを含む。
【００１３】
またさらに別の態様では、機械可読記憶媒体は1つまたは複数の命令を有し、1つまたは複数の命令は、処理回路によって実行されると、処理回路に、フォールト検出システムを使用してプロセッサデバイス内の過渡フォールトを検出させ、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調整させる。
【００１４】
様々な特徴、性質、および利点は、以下に記載された詳細な説明を図面と併せて検討したときに明らかになり得、図面全体にわたって、同様の参照符号はそれに対応して同一視する。
【図面の簡単な説明】
【００１５】
【図１】デバイスから機密情報を取得するために攻撃者によって使用され得る例示的な過渡フォールト攻撃システムを示す図である。
【図２】フォールト攻撃防御戦略の概要を提供する図である。
【図３】例示的なフォールト抵抗のシステムおよび手順を示す図である。
【図４】例示的なフォールト検出システムおよび手順を示す図である。
【図５】例示的なソフトウェアフォールト検出システムおよび手順を示す図である。
【図６】例示的なフォールト反応状態を示す図である。
【図７】例示的なフォールト検出カウンタ(FDC)調整を示す図である。
【図８】過渡フォールト攻撃から防御するための適応防御システムを備えたスマートフォンの例示的なシステムオンチップ(SoC)を示す図である。
【図９】進行中の過渡フォールト攻撃に応じた適応防御システムの例示的な動作を示す図である。
【図１０】悪意のない過渡フォールトに応じた適応防御システムの例示的な動作を示す図である。
【図１１】過渡フォールトに応じた適応防御システムの例示的な動作をさらに示す図である。
【図１２】過渡フォールトに応じて適応防御システムによって実行される例示的なプロセッサクロック調整を示す図である。
【図１３】フォールト検出カウンタ(FDC)を選択的に増分および減分する、過渡フォールトに応じて実行される例示的なプロセスを示す図である。
【図１４】適応防御システムの特徴を要約する図である。
【図１５】図2〜図14のシステム、方法、および装置を活用することができる処理システムを採用する装置のためのハードウェア実装形態の一例を示すブロック図である。
【図１６】過渡フォールト防御を適応的に制御することを目的としたプロセッサデバイスの選択された例示的な構成要素を示すブロック図である。
【図１７】プロセッサクロックを適応的に制御することを目的としたプロセッサデバイスの選択された例示的な構成要素を示すブロック図である。
【図１８】過渡フォールト防御を適応的に制御することとプロセッサクロックを適応的に制御することとの両方のための構成要素を含むプロセッサデバイスの選択された例示的な構成要素を示すブロック図である。
【図１９】過渡フォールト防御を適応的に制御するためにプロセッサデバイス上で動作可能な方法を広く示す流れ図である。
【図２０】プロセッサクロックを適応的に制御するためにプロセッサデバイス上で動作可能な方法を広く示す流れ図である。
【図２１】過渡フォールト防御を適応的に制御することとプロセッサクロックを適応的に制御することとの両方のための手順を含む、プロセッサデバイス上で動作可能な例示的な方法をさらに示す流れ図である。
【図２２】プロセッサデバイス上で動作可能な別の方法を広く示す流れ図である。
【図２３】プロセッサデバイス上で動作可能なさらに別の方法を広く示す流れ図である。
【図２４】プロセッサデバイス上で動作可能なさらにまた別の方法を広く示す流れ図である。
【発明を実施するための形態】
【００１６】
以下の説明では、実施形態についての完全な理解を可能にするために特定の詳細を提供している。しかしながら、これらの特定の詳細がなくても実施形態を実践することができることは、当業者には理解されよう。たとえば、不必要な詳細によって実施形態が不明瞭になることがないように、回路はブロック図で示される場合がある。他の事例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
【００１７】
概説
図1は、悪意のあるエンティティ(すなわち、攻撃者)によって使用される過渡フォールト攻撃システム100を示す。例示および説明のために、この具体的な例では、攻撃を受けているデバイスは盗まれたスマートカード102である。しかしながら、本明細書で説明する例示的な過渡フォールト攻撃手順は、スマートフォンなどのプロセッサを含めて、攻撃されやすい他のデバイスまたは構成要素に適用可能である。図1では、盗まれたスマートカード102は、適切な資格に応じて、セキュリティコードまたは他の所望の情報を出力するようにシステムに催促する能力を備えたスマートカードリーダ104に結合される。しかし、悪意のある攻撃者は、これらの資格がなく、したがって、スマートカードのチップ内で1つまたは複数の過渡フォールトを誘起することによって、適切な資格がないにもかかわらず、セキュリティコードを出力するように、盗まれたスマートカードを誘起しようとする。このために、スマートカードの処理チップ内に過渡フォールトを誘起またはインジェクションすることを目的として、熱、光、または他の形態の電磁エネルギー108をスマートカード102に印加するために、レーザーまたは他の過渡フォールトインジェクションデバイス106が攻撃者によって使用される。たとえば、過渡フォールトインジェクションの攻撃をされやすいことが知られている、スマートカードの処理チップの特定の部分にレーザービームを印加する可能性がある。上記で説明したように、過渡フォールトのインジェクションは、トランジスタまたは他の回路構成要素のON状態およびOFF状態に関連する電圧同士の間に比較的狭い差が存在し得る、最新のプロセッサの比較的狭いガードバンドを活用することによって、レジスタビットをフリップする可能性がある。他の例では、攻撃者は、電源変動またはクロック摂動を誘起する可能性がある。適切にタイミングをとり、加えられた場合、そのような攻撃は、動作の間、チップに誤った決定を行わせる可能性があり、これは、無許可取引を可能にするために使用され得るセキュリティコードを明らかにし得る。
【００１８】
したがって、攻撃者は、フォールトにより、スマートカード102のチップに、誤った決定をさせ、パスコードまたは他の所望の情報を明らかにするために十分な情報を出力させることを期待して、過渡フォールトインジェクションコントローラ110を使用し、インジェクションデバイス106を制御して、1つまたは複数のインジェクションフォールトを誘起するために、レーザービームまたは他のエネルギー源をスマートカード102に選択的に印加する可能性がある。同時に、スマートカード102からの出力は、スマートカードリーダ104によって読み取られ、スマートカード出力分析器112に転送され、スマートカード出力分析器112は、出力を分析して、パスコードまたは他の所望の情報がその出力から取得され得るかどうかを判定する。スマートカード出力分析器112によって取得された情報は、インジェクションデバイス106をさらに制御するために、過渡フォールトインジェクションコントローラ110にフィードバックされる。場合によっては、所望の情報を明らかにすることになるフォールトをトリガする可能性を高めるために、レーザーパルスの印加のタイミングは注意深くとられる。すなわち、攻撃は「時間定位(time localization)」を活用する。これは、たとえば、スマートカードリーダ104を使用して、スマートカード102のチップ内の知られている割込みをトリガする催促をスマートカード102に加え、次いで、所望の情報を取得する可能性を最大にするために、割込みの後に、正確に制御された時間にレーザーパルスを送達することによって達成され得る。
【００１９】
実際には、所望の情報を明らかにするために十分な過渡フォールトがトリガされるまで、スマートカード102がスマートカードリーダ104によって繰返し催促される間に、スマートカード102にレーザービームを周期的に印加するのに時間がかかる可能性がある。攻撃者がスマートカード102のセキュリティコードを取得するのに成功したと仮定すると、次いで、資金を引き出すか、または他の無許可取引を可能にするために、スマートカード102は現金自動預け払い機(ATM)などに持って行かれる可能性がある。得られる情報が十分に有益であり(たとえば、かなり多額の金額が取得され得)、スマートカードを「解読する」のに必要とされる時間があまり長くない場合、攻撃者は、図1の手順の実行が有益であることに気づく可能性がある。しかしながら、手順にあまりにも時間がかかりすぎる場合、または攻撃者が自らの攻撃を完了するまでスマートカードがスマートカード内の内部フォールト検出システムによって自動的に無効化されるかなりの可能性が存在する場合、そのような攻撃が有益であると見なされる可能性は低いことになる。たとえば、(a)攻撃が成功するのにより時間がかかるものにし、かつ/または(b)攻撃者が攻撃を完了し得る前に、攻撃を受けたデバイスが自ら自動的に無効化することになる可能性を大いに増大し、それにより、そのような攻撃を抑制するかまたは防止するのに役立つシステムおよび手順について本明細書で説明する。
【００２０】
上記で説明したように、過渡フォールト攻撃から防御するための1つの技法は、過渡フォールトを検出するためのフォールト検出システムをプロセッサまたはチップ内に提供することである。システムは、過渡フォールトの数をカウントし、フォールトカウントが所定の限度を超える場合、プロセッサは自らを自動的に無効化する。しかしながら、攻撃が完了され得る前にプロセッサを無効化するために進行中の過渡フォールト攻撃を適時に検出するために、限度をかなり低い値に設定する必要があり得る。そうである場合、周囲放射などによってトリガされ得る一連の自然に発生する過渡フォールトは、次いで、実際の攻撃がない場合、プロセッサをシャットダウンさせる可能性がある。ユーザが無効化されたスマートカードを廃棄して、新しいカードを取得することができる場合、これは比較的安価なスマートカードに関しては、あまり重要な問題ではない可能性がある。しかしながら、スマートフォンまたは他の高価かつ高性能のデバイスの場合、デバイスのメインプロセッサを無効化することは、かなりの負担をユーザにかける可能性がある。したがって、以下で説明するシステムおよび手順は、多種多様なプロセッサまたはチップに適用可能であるが、主にスマートフォンまたは他の比較的高価かつ高性能のデバイス内のプロセッサの使用を意図する。比較的高性能のデバイスの他の例には、ナビゲーションデバイス、通信デバイス、モバイルフォン、携帯情報端末(PDA)、固定位置端末、タブレットコンピュータ、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、および/またはラップトップコンピュータがある。
【００２１】
盗まれたスマートフォンまたは同様のデバイスに対して過渡フォールト攻撃を実行するためには、攻撃者は、一般に、レーザービームなどがプロセッサに印加され得るように、デバイスを開いて、デバイスのメインプロセッサを除去すること(または、少なくとも露出させること)になることに留意されたい。攻撃者がデバイス内に記憶されたパスワードまたは他のセキュリティ鍵を取得するのに成功したと仮定すると、攻撃者は、次いで、そのパスワードを使用して、無許可の金融取引を開始するためにウェブサイトを介してバンキングシステムにアクセスする可能性がある。次いで、スマートフォン自体は破棄される可能性が最も高い。本明細書で説明する過渡攻撃の例は単なる例示であり、デバイスから多種多様な所望の情報を取得するために、または攻撃を受けたデバイスに多種多様な所望の機能を実行させるために、多種多様な他の形態の攻撃が実行され得ることに留意されたい。過渡フォールト攻撃は、サイドチャネル攻撃など、他のタイプの悪意のある攻撃内で組合せ可能であることにも留意されたい。
【００２２】
これらのおよび他の課題に対処するために、様々な適応システムおよび適応手順について本明細書で説明する。一例では、それにより、フォールトの検出に応じて、頻度の高いフォールトに応じて手順の積極性を増加させ、頻度の低いフォールトに応じて積極性を低下させるための、プロセッサフォールト防御手順(場合によっては従来型であり得る)が調整される適応手順が実現される。すなわち、フォールト検出/抵抗システムの少なくとも1つの機能的動作は、より多くのプロセッサデバイスリソースを過渡フォールト防御に充てるように適応的に調整される。一例では、プロセッサがチェックサムエラーを介して過渡フォールトを検出するためにフォールト検出プログラムを周期的に実行する場合、プログラムがアクティブ化される頻度は、ある時間間隔内のそれぞれの新しいフォールトの検出に応じて高まり、それにより、より多くのプロセッサデバイスリソースを過渡フォールト検出に充て、フォールト検出をより積極的にする。特定の例として、場合によっては毎秒1回実行し得るフォールト検出手順を、毎秒10回実行するように、次いで、毎秒100回実行するように、など、加速させることができる。その間隔内で新しいフォールトが何も検出されない場合、頻度を下げる。次に、あまりにも多くのフォールトが検出される場合(たとえば、フォールトカウントがプログラム可能かつ調整可能なしきい値を超えた場合)、プロセッサは無効化されるか、または他の対策がとられる。
【００２３】
一連のフォールトに応じて、フォールト防御の積極性を徐々に増加させることによって、悪意のある攻撃によってトリガされる頻度の高いフォールトは、フォールトカウントを迅速にエスカレートさせ、デバイスのかなり敏速なシャットダウンをトリガし得る。しかしながら、周囲条件、または、場合によっては、無害の動作上の「グリッチ」によって生じる頻度の低いフォールトは、フォールト検出/抵抗の積極性を一時的に増加させるだけであり、デバイスのシャットダウンをもたらさないことになる。フォールト防御はより積極的な状態で動作しているが、より多くのプロセッサのリソースがフォールト検出/抵抗手順の実行に充てられることになるため、攻撃者がシステムを「破壊する」にはより長い時間がかかる可能性があることにも留意されたい。したがって、悪意のある攻撃はより困難になるが、これは、(a)あまりにも多いフォールトに応じてプロセッサが無効化されるまで、システムを破壊または「解読する」ために利用可能な合計時間がより短いため、および(b)その間、プロセッサは(フォールトがその動作中に誘起される場合、機密情報を明らかにし得る他のプロセッサよりも)フォールト防御手順を実行するためにより多くのリソースを充てるため、である。たとえば、プロセッサが、フォールト検出および/または抵抗手順を実行するためにその時間の1%を通常充てる場合、その割合は、頻度の高いフォールトに応じて、10%、50%、および、次いで、90%などに適応的に増大され得る。
【００２４】
本明細書で、「積極的」という用語は、概して、フォールトに抵抗するため、それを検出するため、および/またはそれに応じるために充てられるリソースの相対量を指し、積極性が比較的より高い手順は、過渡フォールトに抵抗するため、それを検出するため、および/またはそれに応じるために、より多くのプロセッサリソースを充て、積極性がより低い手順は、過渡フォールトに抵抗するため、それを検出するため、および/またはそれに応じるために、より少ないプロセッサリソースを充てる。積極性がより高い手順は、積極性がより低い手順と比較して、そのプロセッサにインジェクションされている過渡フォールトを検出する可能性がより高い。積極性がより高い手順は、積極性がより低い手順と比較して、過渡フォールト攻撃が開始されていると結論付け、適切な対策をとる可能性がより高い。したがって、積極的な手順こそ、概して、フォールト攻撃に対するよりロバストな手順である。
【００２５】
概して、積極性に関するものだけでなく、フォールト検出および/またはフォールト抵抗に影響を及ぼす任意のソフトウェアまたはハードウェアのパラメータまたは構成は、適応的に調整され得る。本明細書で説明するソフトウェア例には、周期的なフォールト検出手順の頻度または持続時間を調整すること、および/または頻度の低いフォールトが存在するときには、徹底性がより低く、かつ性能がより低い手順を使用する一方、頻度の高いフォールトに応じて、徹底性がより高い高性能のフォールト検出手順を使用すること、がある。いくつかの例では、過渡フォールトをカウントするためにカウンタが使用され、その場合、カウンタ値の関数としてスケーリングする適応対策が採用される。本明細書で説明する例は、主に、フォールト防御に関するが、本明細書で説明する様々な技法は、適用可能な場合、フォールト以外の物理的摂動(以下で論じる)に関連して使用され得る。摂動とは対照的に、実際のフォールトをカウントするための様々なカウンタを含めて、複数のカウンタを使用することができる。いくつかの例では、プロセッサ上で実行するいくつかのプロセスのタイミングは、フォールトまたは摂動に基づいて他のプロセスに対して適応的に調整される。これは、インジェクションされた過渡フォールトの正確なタイミングに依存する攻撃、すなわち、時間定位に依存する攻撃を防御するのに役立つ。適応調整の本明細書で説明するハードウェア例には、プロセッサのクロックを選択的に調整すること、具体的には、クロックサイクルを選択的にスキップすること、または「ゲートすること」がある。いくつかのクロックサイクルをスキップすることによって、インジェクションされた過渡フォールトの正確なタイミングに依存する悪意のある攻撃はさらに困難になるが、これは、クロックサイクルがスキップされることにより、プロセッサの動作のタイミングがオフセットされるためである。すなわち、「移動ターゲット」を攻撃者に提供して攻撃をより困難にするために、手順の時間定位が適応的に調整される。適応調整のいずれも、ソフトウェアの形であろうと、ハードウェアの形であろうと、悪意のある攻撃をさらに妨害するために、ランダム構成要素または疑似ランダム構成要素を含み得る。たとえば、クロックサイクルのゲーティングは、どのクロックサイクルがスキップされるかを制御する、ランダムに生成されたハッシュコードに基づき得る。
【００２６】
他の特徴の中でも、本明細書で説明する適応手順は、以下を行うために役立つ可能性がある:(a)要求されるとき、抵抗レベルを大いに高めながら、全性能に対するセキュリティ特徴の影響を制限し、(b)各フォールトインジェクションに応じて、積極性がより高いセキュリティパラメータを用いてプロセッサチップを再構成し、(c)ターゲットプロセスの時間定位が変化した場合、移動ターゲットを攻撃者に提供する、これにより、(d)進行中の攻撃の検出の機会または可能性の増大をしばしばもたらす。これは「好循環」を提供し、好循環は過渡フォールト攻撃を大いに抑制する。
【００２７】
防御戦略および他の考慮事項
フォールト攻撃は、チップまたは他のプロセッサのハードウェア挙動に影響を及ぼす可能性があり、したがって、ハードウェア上で実行するソフトウェアに潜在的に影響を及ぼす。フォールト攻撃は、チップ上の何らかの動作または特徴を修正し、通常、1つまたは複数のビットフリップに変換し、これは、適切なセンサーを用いて検出され得る。フォールト攻撃に好適な戦略は、自らが攻撃を受けていることをシステムが検出することを可能にし、次いで、それに応じてその攻撃に反応することを可能にすることである。追加の目標は、デバイスのフィールド上の攻撃の活用を低減させるために、攻撃者が別のデバイス上で同じ攻撃を繰り返すときの成功確率を低減させることである。抵抗を高めることは、成功する前に、攻撃者により多くのフォールトをインジェクションさせ、次に、フォールトの検出の機会を高め、それにより、積極性がより高い対策をトリガするため、やはり有益である。
【００２８】
図2は、抵抗ブロック202(すなわち、抵抗)と、検出ブロック204(すなわち、検出)と、反応ブロック206(すなわち、反応)とを含む全体的な防御戦略を示す。例示的な抵抗形態は、ランダム遅延である。例示的な検出形態は、ハードウェア(HW)センサーとソフトウェア(SW)センサーとを含む。例示的な反応形態は、コールドリセット、フォールトカウンタの増分(様々な反応機能をトリガするために使用され得る)、抵抗の増大、および検出の増大を含む。フォールト抵抗手順、フォールト検出手順、および/またはフォールト反応手順(たとえば、対策)を制御または実行するシステムは、フォールト防御システムと呼ばれる場合がある。まとめて、フォールト抵抗手順、フォールト検出手順、および/またはフォールト反応(たとえば、対策)手順は、フォールト防御手順と呼ばれる場合がある。
【００２９】
図3は、セキュアコーディング304および/または時間非同期306に関連し得るかまたはこれらを利用し得る抵抗ブロック302を示すことによって、抵抗戦略をさらに示す。時間非同期の例には、SWランダム遅延308と、HW CPUクロックゲーティング310と、HWランダム分岐312とがある。これらの技法を使用することによって、システム固有の抵抗を、時間非同期により再現性を低減させることによって、かつ攻撃が成功するの可能性を低減させるセキュアコーディングスタイルを使用することによって、高めることができる。時間非同期は、SWおよび/またはHW内で達成され得る。HWランダム遅延は、ボードにわたって一般的なカバレッジを提供し得ることに留意されたい。SWランダム遅延を選択的に追加して(たとえば、機密プロセス内のみに)、特に、機密テストと対応する冗長テストとの間に追加のセキュリティレイヤを提供し、攻撃者が2つのフォールトをインジェクションするのに成功する可能性をかなり低減して、冗長テストを克服することができる。
【００３０】
図4は、フォールト攻撃を実装するのに成功するために攻撃者によって実行される3つの主なステップに応じて適用され得る検出戦略をさらに示す。すなわち、(1)正確な摂動パラメータが攻撃者によって印加された状態の物理的摂動402、これは(2)時間と空間(すなわち、チップ位置)の両方において正確な位置決めによりデジタルフォールト404をトリガし、それにより、(3)フォールト攻撃406を引き起こす。この点で、検出戦略は、フォールト攻撃または攻撃をもたらし得る状態または状況を検出することを目的とする場合がある。これは、攻撃者によって使用される3つのステップのうちのいずれかまたはすべてにおいて動作可能な、様々なタイプのセンサー(HW内)および検出器(SW内)をシステムに実装することによって達成され得る。既存のコード内の一般機構またはアドホック機構のいずれかを介してソフトウェア内のフォールト検出器を実装することが可能であることに留意されたい。攻撃者によって適応され得る物理的摂動402の例には、レーザーパルス、電圧グリッチ(たとえば、電源Vccグリッチ)の誘起、クロックグリッチの誘起、または電磁(EM)パルスの印加(EM)がある。1つまたは複数のHW摂動センサー408を使用して、Vccレベル、チップ温度、動作周波数を監視することによって、および/またはチップリセット状態を検出することによってなど、摂動を検出することができる。例示的なデジタルフォールト404には、読取りフォールト、書込みフォールト、命令セット(INS)復号フォールト、およびアルゴリズム論理ユニット(ALU)計算フォールトがある。1つまたは複数のHWフォールトセンサー410を使用して、たとえば、パリティビットまたはデジタルセンサーを使用することによって、そのようなフォールトを検出することができる。さらに、「マジックナンバー」ベースの検出器(いわゆる、マジックデバッグ値を活用する検出器など)、または決定論的コード検出器など、1つまたは複数のSWフォールトセンサー412を使用することができる。フォールト攻撃406自体が、アクセス制御を迂回すること、差分フォールト分析またはメモリダンプをトリガすることが可能であり、これらは冗長ベースのまたは整合性ベースのSFフォールト攻撃検出器414を使用して検出され得る。
【００３１】
図5は、SWフォールト検出器502によって実行され得るSWフォールト検出システムおよび手順をさらに示す。一般的なソフトウェアフォールト検出器は、ランタイムにおいて修正され得る少なくとも1つのパラメータ、すなわち、コード長を有する。したがって、一般的な決定論的コード504は、コード長506を評価するために使用され得る。さらに、コードが、HWタイマーに基づいてランダムで発生する割込みの下で実行される場合、発生の頻度もランタイムにおいて構成され得る。一般的な決定論的技法は、固定位置における呼出し508および割込み頻度512を評価し得る割込み510を活用することができる。アドホック技法514が関連する限り、例は、整合しないステータスの検査516(値が決して割り当てられない場合など)、ループ後に整合しない長さの検査518、または様々な他のアドホック技法520を含む。
【００３２】
図6は、4つの反応状態(状態1〜状態4)を示すグラフ600による例示的な防御反応状態を示す。グラフ内で、x軸602は、多くの検出されたフォールトをカウントし、以下で説明するように増分および減分される、フォールト検出カウンタ(FDC)に関する値を示す。グラフのy軸604は、様々な対策(CM)を実行する間にプロセッサが費やす時間の相対的割合を示す。状態1(606)において、プロセッサはベースラインまたはデフォルトレベル(CMbaseline)608において対策を実行する。FDCが下限しきい値(FDCCMMIN)610に達すると、プロセッサは状態2(612)に入り、その間、増大ライン614によって示すように、増大するFDCで対策をスケーリングすることによって、対策は徐々に積極性を増加させる。状態2内で、FDCの所与の値X(616)に関して、デバイスリソースの割合Y(618)が対策に充てられる。進行中の攻撃が存在する場合、FDCが上限しきい値(FDCCMMAX)620に達するまで、FDCは上昇し続けることになり、上限しきい値(FDCCMMAX)620は、最大レベルの対策(CMMAX)624が採用される状態3(622)への進出をトリガする。FDCが依然として上昇し続ける場合、FDCは、プロセッサ(または、セキュアプロセッササブシステム(SPSS)など、その構成要素)が無効化される状態4 628をトリガする上限しきい値(FDCCMMAX)626に達することになる。述べたように、これはコールドリセットであり得る。3つのしきい値が使用される実施形態では、FDCCMMAXしきい値は「中間しきい値」と呼ばれる場合があることに留意されたい。図6には示さないが、ソフトウェアは、(以下でより詳細に説明するタイプの)適応防御戦略を有効化するために、進行中の攻撃の試行を記録することにも留意されたい。その上、説明するように、追跡間隔内で追加のフォールトが検出されない場合、FDCの減分をトリガする追跡間隔を採用することができる。したがって、FDC値は、常に(図6に示すように)単調に増大するとは限らず、代わりに、時間的に減少する場合があり、対策の低減をトリガする。様々な状態は、機能的なコード処理に対する対策の異なる比率を表し得ることにも留意されたい。状態1内で、比率はCMbaselineとして表される。状態2内で、比率はYとして表される。状態3内で、比率はCMMAXとして表される。プロセッサが無効化される状態4内で、比率は、実質的に「無限」と見なされ得るが、これは何の機能的コードも実行されておらず、したがって、比率の分母はゼロであるためである。
【００３３】
Table I(表1)は、図6の4つの状態およびそれらの対応する比率を要約する。
【００３４】
【表１】
2019510318.tif 000003
【００３５】
図7は、異なる条件下のFDC値の例示的な変化を示し、具体的には、FDCがどのように選択的に減分され得るかを示す。この点で、悪意のある攻撃に無関係なフォールト検出(たとえば、環境的に誘起されたグリッチ)をもたらす「好ましくない環境」に対処するために、プロセッサが攻撃を受けていない場合、プロセッサは、FDCが再度ゆっくりとゼロに低減させることを可能にする。図7の第1のグラフ700は、何の進行中の攻撃もない(すなわち、フォールト検出がフォールスポジティブである)一例を示す。より具体的には、グラフ700は、FDCが、x軸704によって表されるように経時的に変化するときのy軸702上のFDC値を示す。第1の時間706におけるフォールト検出は、FDCを0から1に増分させる(第1のFDC値708によって示すように)。この例では、時間間隔ΔT710(1つのフォールトから「復元する」ために必要な時間)の間にそれ以上のフォールトは検出されず、次いで、第2の時間712において、FDCを0に再度減分させる。後で、第3の時間714に開始して、連続的なフォールト検出の対はFDCを0から1に、次いで、1から2に増分させる(第2のFDC値716によって示すように)。しかしながら、この場合も、続くΔT時間間隔中にそれ以上のフォールトは検出されず、次いでFDCを再度1に減分させ、次いで、再度0に減分させる。さらに別のフォールト検出、第4の時間717における第3のFDC値718は、FDCが0にリセットされる前に、FDCを一時的に1に増分させる。この例では、FDCは決して低いしきい値FDCCMMIN720に達することはなく、したがって、対策の増大はトリガされない。すなわち、プロセッサは、状態1(図6)に完全に残り、様々なフォールトは、たとえば、ランダムな環境「雑音」によってトリガされたフォールスポジティブと見なされる。
【００３６】
図7の第2のグラフ722は、進行中の攻撃の一例を示す。FDC値は、FDCがx軸726によって表されるように経時的に変化するときに、y軸724上に示される。時間間隔ΔT(730)内で第5の時間728において開始する、一連の密接に連続するフォールト検出は、FDCに最高で、進行中の攻撃試行を示す低いしきい値732まで急速に増分させ、低いしきい値732は、第6の時間734において状態2(図6)への進出をトリガする。第6の時間734に開始して、すでに論じたように、対策は積極性を増大する。この特定の例では、増大した対策は、さらなるフォールトがインジェクションされることが成功することを防止することによって攻撃を妨害するのに役立つ。したがって、それぞれの続く時間間隔ΔTの終了時に、FDCが第7の時間736において再度0に達するまで、FDCは減分する。この例では、攻撃が追加のフォールトをインジェクションするのに成功することを中止し、したがって、それ以上のフォールトは検出されないため、攻撃者は第6の時間734の後の何らかの時点で攻撃を放棄したと仮定する。攻撃者が代わりに攻撃を再開するとした場合、プロセッサは、次いで、新しい一連のフォールト(図7に示さず)を検出し、対策の積極性を再度急速に増加させることになる。またさらに、すでに論じたように、攻撃が続き、ますます積極な対策が攻撃を妨害するのに失敗する場合、プロセッサは最終的に、無効化をトリガする状態4(図6)にプッシュされることになる。
【００３７】
図2〜図7は、様々な適応防御の戦略、手順、およびシステムを示している。以下では、より詳細な例が記載される。
【００３８】
例示的なシステムオンチップハードウェア環境
本明細書で説明するシステムおよび手順は、多種多様なデバイスにおいて活用され得る。具体的な例を提供するために、モバイル通信デバイスまたは他のアクセス端末内で使用するためのシステムオンチップ(SoC)処理回路上に構成要素が提供される、例示的なハードウェア環境をこれから説明する。
【００３９】
図8は、様々な新規の特徴を活用できる一例による、モバイル通信デバイスのSoC処理回路800を示す。SoC処理回路は、本明細書で説明する様々な追加の構成要素および特徴を組み込むように修正された、Qualcomm IncorporatedのSnapdragon(商標)処理回路であり得る。SoC処理回路800は、この例では、マルチコアCPU812を有するアプリケーション処理回路810を含めて、SoCのすべての構成要素にクロック信号を提供するシステムクロックコントローラ802を含む。アプリケーション処理回路810は、過渡フォールト攻撃に対する防御を目的とするフォールト防御システム817の動作を制御する適応コントローラ815を含む。この例では、フォールト防御システム817は、図2〜図7に示した手順(および、以下で論じる他の手順)に対応する手順を実行または制御し得る、フォールト抵抗システム819と、フォールト検出システム821と、フォールト反応システム823とを含む。以下で説明するように、適応コントローラ815はまた、システムクロックコントローラ802および/またはSoCまたは周辺システム(たとえば、図8に示されていないSPSS)の他の構成要素を選択的かつ適応的に制御して、過渡フォールト攻撃から知的に防御することができる。過渡フォールト検出システム821は、様々なソフトウェアフォールトセンサー(SFS)を含み得る。適応コントローラ815、フォールト防御システム817、およびそれらの様々な構成要素は、特定の実装に応じて、ハードウェアおよび/またはソフトウェア内で実装され得る。いくつかの例では、フォールトは、追加または代替として、SoCの一部ではない、周辺フォールトセンサーによって検出され得る。
【００４０】
アプリケーション処理回路810は、通常、モバイル通信デバイスのすべての構成要素の動作を制御することにも留意されたい。一態様では、アプリケーション処理回路810は、内部共有HWリソース830の一部を形成する内部共有ストレージデバイス832の鍵ストレージ要素833における公開鍵および秘密鍵の記憶を含むデータの記憶を制御するためのホストストレージコントローラ850に結合される。過渡フォールト攻撃は、CPUコア812上で実行するホストシステムプログラムに鍵を明らかにさせる誤った処理決定を行わせるのに十分な方法で、SoC800の回路内のどこかにフォールトをインジェクションすることによって、鍵ストレージ833内に記憶された秘密鍵を取得しようとする可能性がある。適応コントローラ815は、以下で詳細に説明するシステムおよび手順を使用して、SoC800が組み込まれているスマートフォンのユーザに対する限定されたまたは最小の中断を伴って、それらの攻撃を妨げるかまたは妨害するように動作する。
【００４１】
アプリケーション処理回路810は、SoC処理回路800の様々な構成要素のためのブートシーケンス命令を記憶するブートROM818を含むこともできる。SoC処理回路800は、アプリケーション処理回路810によって制御される1つまたは複数の周辺サブシステム820をさらに含む。周辺サブシステム820は、ストレージサブシステム(たとえば、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM))、ビデオ/グラフィックスサブシステム(たとえば、デジタル信号処理回路(DSP)、グラフィックス処理回路ユニット(GPU))、オーディオサブシステム(たとえば、DSP、アナログ-デジタル変換器(ADC)、デジタル-アナログ変換器(DAC))、電力管理サブシステム、セキュリティサブシステム(たとえば、他の暗号化構成要素およびデジタル著作権管理(DRM)構成要素)、入出力(I/O)サブシステム(たとえば、キーボード、タッチスクリーン)、ならびに有線およびワイヤレスの接続性サブシステム(たとえば、ユニバーサルシリアルバス(USB)、全地球測位システム(GPS)、Wi-Fi、グローバルシステムモバイル(GSM(登録商標))、符号分割多元接続(CDMA)、4Gロングタームエボリューション(LTE)モデム)を含むことができるが、これに限定されない。モデムサブシステムである例示的な周辺サブシステム820は、DSP822、様々な他のHW構成要素およびSW構成要素824、ならびに様々な無線周波数(RF)構成要素826を含む。一態様では、各周辺サブシステム820は、関連する周辺サブシステム820のプライマリブートイメージ(図示せず)を記憶するブートROM828をも含む。
【００４２】
述べたように、SoC処理回路800は、内部共有ストレージ832(たとえば、スタティックRAM(SRAM)、フラッシュメモリなど)などの様々な内部共有HWリソース830をさらに含み、内部共有ストレージ832は、様々なランタイムデータまたは他のパラメータを記憶するため、およびホストメモリを提供するために、アプリケーション処理回路810および様々な周辺サブシステム820によって共有される。図8の例では、内部共有ストレージ832は、公開鍵および秘密鍵または他の機密情報を記憶するのに使用され得る、前述の鍵ストレージ構成要素833を含む。他の例では、鍵は、モバイルデバイス内の他所において記憶される。
【００４３】
一態様では、SoC800の構成要素810、818、820、828、および830は、シングルチップ基板上に集積される。SoC処理回路800は、異なるチップ基板上に配置され得、1つまたは複数のバスを介してSoC処理回路800と通信することができる、様々な外部共有HWリソース840をさらに含む。外部共有HWリソース840は、たとえば、外部共有ストレージ842(たとえば、ダブルデータレート(DDR)ダイナミックRAM)および/または永久的もしくは半永久的データストレージ844(たとえば、セキュアデジタル(SD)カード、ハードディスクドライブ(HDD)、埋込み型マルチメディアカード、ユニバーサルフラッシュデバイス(UFS:universal flash device)、など)を含み得、それらは、オペレーティングシステム(OS)情報、システムファイル、プログラム、アプリケーション、ユーザデータ、オーディオ/ビデオファイル、などの様々なタイプのデータを記憶するために、アプリケーション処理回路810および様々な周辺サブシステム820によって共有され得る。
【００４４】
過渡フォールト攻撃から防御するための例示的な適応手順
図9は、進行中の過渡フォールト攻撃に応じて、システムクロックコントローラ902、適応コントローラ904、および過渡フォールト防御システム906(過渡フォールト抵抗構成要素、過渡フォールト検出構成要素、および過渡フォールト反応構成要素を含み得る)によって実行される動作を含む、スマートフォンまたは他のデバイスの構成要素の例示的な動作を示し、特に、攻撃からスマートフォンを防御する際に使用するためにそれらの間で交換される情報および制御信号を示す、タイミング図900を提供する。適応フォールト防御は、以下でさらに詳細に説明する、増大したランダム性を用いて様々なクロック周波数を調整すること、および/または遅延量を増大させるように様々なソフトウェアランダム遅延を調整することなど、様々な機能を含み得る。いくつかの例では、構成要素902、904、および/または906の動作は、フォールト検出カウンタ(FDC)の関数としてYを調整することによってなど、フォールト防御において費やされる時間の量(Y)を制御するために、FDCに基づいて調整される(すなわち、Y=f(FDC)、この場合、Yは、したがって、Y1、Y2、またはY3...YNに設定可能であり、X1<X2<X3<YNであり、それにより積極性のレベルを制御する)。
【００４５】
908において、過渡フォールト防御システム906は、過渡フォールトを検出し、SoCの内部接続ラインを介してフォールトの指示を適応コントローラ904に送る。過渡フォールト防御システム906は、場合によっては、従来のフォールト検出手順または新規性のある手順を含めて、任意の好適な手順を使用して過渡フォールトを検出することができる。(たとえば、図5に関して上記で論じた検出手順を参照されたい。)一例では、過渡フォールトは、過渡フォールトにより生じ得るチェックサムエラーなどを検出するための標準の、ベースラインの、またはデフォルトのSFSフォールト検出手順を実行することによって検出される。たとえば、過渡フォールト防御システム906は、(何らかの所定の精度までπを算出することによってなど)数学関数を周期的に算出し、次いで、その結果を知られている(正確な)結果と比較する能力を備え得る。何の整合もない場合、908において、それによりフォールトが検出される。ベースラインまたはデフォルトの手順は、デバイスのY1リソースを消費し得、この場合、Y1は、1%など、処理リソースの一定の割合を表す。
【００４６】
フォールトの検出に応じて、910において、適応コントローラ904は、悪意のある攻撃が進行中であるか(その場合、スマートフォンのSPSSは無効化されることになる)または悪意のある攻撃が進行中でないか(その場合、以下で論じる、図10に示すような通常のデバイス動作が復元されることになる)を判定するのを助けるために使用される追跡間隔911(ΔT)の追跡を開始する。追跡間隔911(ΔT)は、たとえば、悪意のある攻撃が不在の場合、通常の要因により過渡フォールトがどの程度頻繁に発生することが予想されるか、および悪意のある攻撃が存在する場合、過渡フォールトがどの程度頻繁に発生することが予想されるかに基づいて、所定の値または調整可能な値に設定され得る。いくつかの例では、追跡間隔に関して好適な値は、たとえば、1分であり得る。
【００４７】
910において、適応コントローラ904は、過渡フォールト防御の積極性を増加させ、かつ/またはシステムクロックを調整または修正する。過渡フォールト防御の積極性を増加させるための様々な技法について以下で詳細に説明する。図9の目的で、適応コントローラは、そのプログラミングに応じて、信号を過渡フォールト防御システム906に送り、過渡フォールト防御システム906の機能的動作を制御する制御パラメータを調整することによって、過渡フォールト防御の積極性を増加させることができる。述べたように、制御パラメータは、フォールト防御に充てられるデバイスリソースの割合を制御することができる(たとえば、プロセッサが、通常、フォールト検出手順またはフォールト抵抗手順を実行するためにその時間のY1%を充てる場合、この割合を適応的にY2%に増大させることができ、Y2%は、10%、50%、90%、など、である)。別の例として、制御パラメータは、フォールト防御システムまたはその構成要素がアクティブ化される頻度(f)(たとえば、毎秒1回、ミリ秒ごとに1回、マイクロ秒ごとに1回、など)を制御する。さらに別の例では、制御パラメータは、(過渡フォールト防御システムが、そのうちのいくつかは他の手順よりも徹底的であるかまたは高度である、様々な選択可能なフォールト検出SFS手順を制御または実行する能力を備える場合)使用される特定のフォールト検出SFS手順を選択する。システムクロックを調整または修正する限り、適応コントローラ904は、そのプログラミングに応じて、(それにより、時間定位に依存する過渡フォールト攻撃を妨げるように、SoCプロセッサ内の事象の時間定位に影響を及ぼすために)クロックレートを選択的に増大または低減させることおよび/または特定のサイクルをスキップすることを指定するランダムハッシュまたは疑似ランダムハッシュを生成することによって、クロックサイクルをゲートすることを含めて、(それにより、SoCプロセッサ内の事象の時間定位にやはり影響を及ぼすために)クロックサイクルを選択的にスキップまたはゲートすることができる。システムクロックコントローラ902は、912において、指示されたように、システムクロックを調整または修正することによって応じる。
【００４８】
図9の例では、進行中の過渡フォールト攻撃が存在するため、914において、積極性がより高い検出手順を使用して追跡間隔内で別の過渡フォールトが敏速に検出される。914において採用される、積極性がより高い手順は、デバイスのY2リソースを消費することができ、この場合、Y2はY1よりも大きい。適応コントローラ904は、次いで、915において、積極性をさらにまた増加させる、および/またはシステムクロックをさらに修正または調整する。後者の場合、システムクロックコントローラ902は、916において、指示されたように応じる。フォールト防御システム906は、次いで、918において、さらに積極性がより高い防御手順を使用する。918において採用される、積極性がより高い手順は、デバイスのY3リソースを消費することができ、この場合、Y3はY2よりも大きい。最終的に、過渡フォールト攻撃が続くと仮定すると、SoCの自動無効化をトリガするために十分な数の過渡フォールトが追跡間隔内で検出されることになる。すなわち、920において、(たとえば、YNのリソースを消費する手順を使用する間に)進行中の攻撃を示す所定のしきい値を超えることになる過渡フォールトが検出されることになる。それに応じて、922において、適応コントローラ904は、(過渡フォールトの数が追跡間隔内で所定のしきい値を超える場合)進行中の悪意のある過渡フォールト攻撃を検出し、スマートフォンを無効化する。図6に関して上記で説明したように、複数のしきい値を使用することができる。
【００４９】
図10は、周囲放射または、場合によっては、無害のグリッチによって引き起こされるフォールトなど、悪意のない過渡フォールトに応じた、スマートフォンまたは他のデバイスの構成要素の例示的な動作を示すタイミング図1000を提供する。図9の場合と同様に、図10は、システムクロックコントローラ1002、適応コントローラ1004、および過渡フォールト防御システム1006によって実行される動作を別個に示す。1008において、過渡フォールト防御システム1006は、過渡フォールトを検出し、フォールトの指示を適応コントローラ1004に送る。過渡フォールト防御システム1006は、この場合も、Y1リソースを消費するベースライン手順またはデフォルト手順など、任意の好適な手順を使用して、過渡フォールトを検出することができる。フォールトの検出に応じて、1010において、適応コントローラ1004は、(図9におけるのと同じ持続時間ΔTに設定され得る)追跡間隔1011の追跡を開始し、過渡フォールト防御システム1006の積極性をY2に増加させる、かつ/またはシステムクロックを調整または修正する。システムクロックコントローラ1002は、1012において、指示されたように、システムクロックを調整または修正することによって応じる。過渡フォールト防御システム1006は、1014において、積極性がより高い検出手順を使用して追加の過渡フォールトを監視することによって応じる。
【００５０】
図10の例では、進行中の過渡フォールト攻撃が存在せず、したがって、積極性がより高い検出手順にもかかわらず、追跡間隔1011内でさらなる過渡フォールトは検出されない。したがって、1016において、追跡間隔1011の満了時に、適応コントローラ1004は、(追跡間隔内でさらなる過渡フォールトは検出されなかったため)進行中の悪意のある過渡フォールト攻撃は不在であることを判定、確認、または結論付け、通常のスマートフォン機能を復元する。システムクロックコントローラ1002は、1018において、通常のクロック動作を復元することによって応じる。過渡フォールト防御システム1006は、1020において、通常のフォールト防御動作を復元し、次いで、その標準の、デフォルトの、または場合によっては、通常のSFS検出手順(たとえば、Y1)を使用して、追加の過渡フォールトを監視することによって応じる。この場合も、図6に示したように、複数のしきい値が使用されてよい。
【００５１】
したがって、図9および図10に示したように、進行中の過渡フォールト攻撃が存在する場合、検出されたフォールトの数は急速にエスカレートすることになるが、これは、積極性がより高いフォールト検出手順が自動的にトリガされ、スマートフォンの無効化の催促を引き起こす可能性が高いためである。しかしながら、進行中の過渡フォールト攻撃が不在の場合、通常のデバイス動作は速やかに復元される。このようにして、自然または無害なソースから生じる過渡フォールトがスマートフォンの無効化を常にトリガする可能性は非常に低い。アカウントが完了し得る前にスマートフォンは敏速に無効化されることになるため、過渡フォールト攻撃が成功する可能性もやはり非常に低い。その上、過渡フォールトに応じて(検出および/または抵抗を含めて)フォールト防御の積極性を増加させることによって、スマートフォンのより多くのリソースは、それにより、フォールトの監視に充てられ、特定の悪意のある攻撃者が攻撃を完了するためにターゲットにする可能性がある、スマートフォンのSoC上で実行している他のプロセスを効果的に減速させる。すなわち、図9および図10のシステムおよび手順は、(a)過渡フォールト攻撃をより時間がかかるものにし、かつ/または(b)攻撃者が攻撃を完了し得る前に、攻撃を受けたスマートフォンが自ら自動的に無効化することになる可能性を大いに増大させ、それにより、そのような攻撃を抑制するかまたは防止するのに役立つ。
【００５２】
図11は、過渡フォールトに応じて、プロセッサデバイス(スマートフォンのSoCなど)によって実行され得る例示的な動作をさらに示す。1102において、プロセッサデバイスは、フォールト検出システムのSFS構成要素を使用してプロセッサデバイス内の過渡フォールトを検出し、時間を記録し、FDCを増分し、追跡間隔の追跡を開始する。フォールト検出システムは、そのうちのいくつかが、他の構成要素または手順よりも高度であるかまたは徹底的である、選択可能なフォールト検出構成要素またはフォールト検出手順(たとえば、選択可能なSFS構成要素)のセットを含み得る。概して、より高度な検出手順は、他のプロセスを排除するためにプロセッサのリソースをより多く消費することになり、したがって、他のプロセスの性能または完了を減速させる影響を及ぼし得る。上述のように、攻撃が完了するまでより長い時間がかかる可能性があるため、これは過渡フォールト攻撃をより困難にする影響を及ぼし得る。最初、1102において、過度なリソースを消費しない標準またはデフォルトのSFSフォールト検出手順が使用され、すなわち、比較的単純なベースラインSFSが採用され得る。
【００５３】
1104において、検出されたフォールトに応じて、プロセッサデバイスは、プロセッサデバイスおよび/または周辺フォールト検出システムの特徴のうちの1つまたは複数を適応的に調整する。たとえば、フォールト検出および/または抵抗に充てられるプロセッサデバイスリソースの割合を増大することができる。述べたように、プロセッサがフォールト検出手順の実行に、通常、その時間のY1%を充てる場合、その割合を適応的にY2%に増大させ、たとえば、前のフォールト検出へのリソースの割合の2倍を充てることができる。調整はFDCに基づいてよく、Yの値はFDCの関数として設定され、すなわち、Y=f(FDC)である。特定のプロセッサデバイスの能力に応じて、場合によっては従来のシステムツールまたは割込みを使用してプロセッサリソースの割振りを変更することによって、または他のプロセスに対してフォールト検出プロセスの優先順位または持続時間を変更することによって、これを達成することができる。別の調整例では、フォールト検出システムがアクティブ化される頻度が増大される。たとえば、フォールト検出プロセスが通常N個のクロックサイクルごとにアクティブ化される場合、より頻繁に、またはより高い頻度でプロセスをアクティブ化するようにNを低減させることができる。さらに別の例では、悪意のある攻撃検出のために使用されるしきい値のいずれかを調整することができる。たとえば、プロセッサを無効化するかどうかを判定するためにM個のクロックサイクル内でN個の過渡フォールトが通常使用される場合、Nの値を適応的に低減させることができる。さらに別の例として、追跡間隔内で検出された新しい過渡フォールトの各々に応じて、悪意のある攻撃検出のために使用される何らかのカウンタを選択的に増分することができる。別の例として、プロセッサデバイスによってアクティブ化される特定のフォールト検出および/または抵抗のシステム、手順、または構成要素は、たとえば、より徹底的なSFSをアクティブ化することによって、より高度なまたはより徹底的なフォールト検出手順を採用するように変更され得る。さらに別の例として、プロセッサデバイスのクロックは、時間定位に依存する攻撃を防止するのに役立つように調整され得る。非ゲート型サイクルに対するゲート型クロックサイクルの比率が適応的に調整される特定の例について以下で論じる。さらにまた別の例では、プロセッサデバイスの他のプロセスに対して選択されたプロセスのアクティブ化の特定のタイミングを変更または調整することができる。この場合も、プロセッサデバイスの能力に応じて、これは、プログラム可能なシステムツールまたは割込みを使用して達成され得る。これもまた、時間定位に依存する攻撃を妨害するのに役立ち得る。
【００５４】
1106において、プロセッサデバイスは、最後の過渡フォールトからの時間量を検出または追跡する。1108において、プロセッサデバイスは、次いで、何らかの追加のフォールトを(FDCを使用して)検出およびカウントし、(a)追跡間隔内で1つまたは複数の新しい過渡フォールトが検出されるときはいつでも、フォールト防御の積極性をより増加させるように、および(b)追跡間隔内で新しい過渡フォールトが検出されない場合、フォールト防御の積極性をより低下させるように、上記に列挙したパラメータのうちの1つまたは複数をさらに調整する。いくつかの例では、何のフォールト検出もないT時間の追跡間隔の後、FDCは減分される。1110において、フォールトのカウントが好適なしきい値を超える場合(たとえば、FDCが追跡期間ΔTの終了時に再度減分される前に、FDCが上記で説明したCMMAXしきい値を超える場合)または悪意のある攻撃がさもなければ検出または確認された場合、プロセッサデバイスは自らを無効化する。
【００５５】
図12は、図8の適応コントローラ815によって、または、たとえば非ゲート型クロックサイクルに対する、ゲート型クロックサイクルの比率を適応的に調整するための他の適切に装備された回路またはデバイスによって制御され得る様々な例示的なクロック調整またはクロック修正を示す。たとえば、8.5GHzクロックであり得るデフォルトクロック1202を示す。第1の新しい過渡フォールトの検出に応じて、クロックレートを、減速クロック1204によって示すように、そのレートの半分に減速させることができる。プロセッサは、その場合、攻撃者がそのプロセッサが使用していると仮定するレートとは異なるレートで動作することになるため、これは、過渡フォールトの正確なインジェクションタイミングに依存する悪意のある攻撃を妨害するのに役立ち得る。したがって、時間定位に依存する攻撃を防ぐことができるか、または妨害することができる。その上、特定の攻撃に応じて、クロックをそのレートの半分に減速させることによって、悪意のある攻撃は次いで2倍の長さがかかる可能性がある。次いで、追加の過渡フォールトを使用して、クロックレートにおいて、場合によっては、特定のプロセッサによって対応される最も遅いレートまでまたさらなる低減をトリガすることができる。いくつかの例では、進行中の攻撃が存在する場合、レートは最終的に1/10まで低減される。したがって、所望の情報を明らかにするようにシステムをトリックにかけるのに成功する十分な機会を有するために、場合によっては一時間を必要とすることになる攻撃は、代わりに10時間かかる可能性があり、これは攻撃者によって(デバイスから取得される情報の価値に応じて)有益とするにはあまりにも長すぎると見なされる可能性がある。進行中の攻撃が不在の場合、システムクロックの何らかの減速は、単に一時的であり、ユーザが気づく可能性が低いことに留意されたい。
【００５６】
図12は、非ゲート型クロックサイクルに対するゲート型クロックサイクルの選択された比率を用いて、ゲート型クロック1208を引き起こすようにクロック1202をハッシュするためのランダムハッシュ関数または疑似ランダムハッシュ関数1206の使用を示す。ハッシュまたはゲーティングのパターンまたは関数1206は、疑似乱数生成器(PRNG)によって生成され、ゲートに印加され得るか、または他のクロックサイクル(図示したように)を維持しながら、いくつかのクロックサイクルをスキップすることができ、この場合、いくつかの例では、PRNGは、0に対する1の選択された比率を提供するように制御される。プロセッサ(および、それがインストールされているスマートフォン全体)がゲート型クロックを用いて適切に動作すると仮定すると、プロセッサ上で実行するプロセスのタイミングをランダムにオフセットするかまたは遅延させて、何らかの時間定位攻撃を防ぐかまたは妨害する効果があることになる。ゲート型クロックはまた、デフォルトクロックと比較して比較的低速のクロックであり、したがって、上記で論じた考慮事項がこの場合も適用されるが、これはプロセッサの低速動作全体が、攻撃の完了をより長くすることによって攻撃を抑制し得るためである。この場合も、進行中の攻撃が不在の場合、クロックの何らかのゲーティングは、単に一時的であり、ユーザが気づく可能性は低い。少なくとも1つの例では、適応戦略は、ハッシュ1206内で1および0の比率を制御する。たとえば、デフォルトは1の50%(クロックサイクルの50%が維持される)であり得るが、より多くのフォールトが検出されるにつれて、適応戦略は、クロックコントローラのパラメータを変更して、1に対する0の比率を増大させ、これは、システムを減速させ、それにより、ターゲットプロセスを新しい時間位置に移動させ、それにより、フォールト攻撃プロセスを防ぐ。
【００５７】
図13は、すでに論じた特徴のうちのいくつかを活用する、処理デバイスによって採用され得る特定の例示的なプロセスをより詳細に示す。具体的には、図13は、FDCに対する比較のために上限しきい値および下限しきい値を使用して手順を記載する。手短に、FDC<低いしきい値(たとえば、FDCCMMIN)である場合、プロセッサ割振りにおいて何の変更も実行されない。低いしきい値<FDC<高いしきい値(たとえば、FDCCMMAX)である場合、デバイスは、FDCの値の関数として防御に充てられるプロセッサリソースの割合を増大させる(たとえば、FDCが大きければ大きいほど、この割合は大きくなる)。高いしきい値<FDCである場合、プロセッサは無効化される(または、上記で論じた、図6の例では、FDCMAXのさらに高いしきい値を使用して、デバイスの無効化をトリガすることができ、そうである場合、図13の高いしきい値は実際には中間しきい値である)。低いしきい値はデバイスが頻度の低いグリッチを完全に無視することを可能にする(FDCが追跡間隔内で低いしきい値に達する前に、FDCは減分されることになるため)。したがって、すでに説明したように、割振りの変更を補うために、プロセッサ割振りに対する調整は、追跡間隔内で十分な数のフォールト検出が発生した場合のみ発生する。
【００５８】
1302において、処理デバイスは、SFSを使用して過渡フォールトを監視し、フォールトの検出時に、FDCを増分し、時間を記録し、追跡間隔の追跡を開始する。1304において、処理デバイスは、FDCを下限しきい値と比較してFDCが追跡間隔内で下限しきい値を超えるかどうかを判定し、そうである場合、プロセッサデバイスは、SFSに充てられるプロセッサデバイスリソースの割合を増大させ、SFSを使用してフォールトの監視を続ける。1306において判定されるように、追跡間隔中に別のフォールトが検出されない場合、処理デバイスは、1308において、FDCを減分し、追跡間隔をリセットする。処理は、次いで、1302に戻り、新しいフォールトを監視する。これは、過渡フォールトの頻度が比較的低い、進行中の攻撃が不在の場合の処理デバイスの通常の動作を表す。他方で、1306において、追跡間隔内で別のフォールトが検出される場合、処理デバイスは、1310において、FDCを増分し、カウンタを上限(攻撃)検出しきい値と比較する。1312において判定されるように、FDCが上限しきい値をまだ超えていないと仮定すると、処理は1304に戻り、ここで、FDCが下限しきい値を超える場合、SFSに充てられるプロセッサデバイスリソースの割合が増分される。1312において判定されるように、FDCが最終的にやはり上限しきい値を超えた場合、1314において、プロセッサは無効化される。これは、過渡フォールトの頻度が高いとき、進行中の攻撃が存在する場合の処理デバイスのレスポンスを表す。
【００５９】
図14は、本明細書で説明する手順のうちの1つまたは複数を使用して達成され得る「好循環」を広く要約する。手短に、1402におけるフォールトの検出は、1404において、フォールト検出能力および/または積極性の増加をトリガする。これは、次に、1402において、新しくインジェクションされたフォールトの検出に役立ち、1404における検出能力および/または積極性のまたさらなる増加をもたらす。進行中の悪意のある攻撃は、それにより、検出能力の急速なエスカレーション、次いで、デバイスの無効化をもたらし、セキュリティ鍵またはパスワードなどの機密情報の損失を防ぐ。機密情報の消去またはプロセッサのリセットなど、スマートフォンのプロセッサの完全な無効化以外の他の対策を実装することも可能であることに留意されたい。
【００６０】
例示的なデバイスおよび方法
図15に、図2〜図14のシステム、方法、および装置を実装することができる全体的なシステムまたは装置1500を示す。本開示の様々な態様によれば、要素、または要素の任意の部分、または要素の任意の組合せは、1つまたは複数の処理回路1504を含む処理システム1514を用いて実装され得る。たとえば、装置1500は、モバイル通信システムの、スマートフォンなどのユーザ機器(UE)であってよく、別に示されていない無線ネットワークコントローラ(RNC)に関して使用され得る。いくつかの例では、処理回路1504は、SoC(図8のSoCなど)として実装される。SoCに加えて、好適な処理回路1504の例は、マイクロプロセッシング回路、マイクロコントローラ、デジタル信号処理回路(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明する様々な機能を実行するように構成された他の好適なハードウェアを含む。装置1500内で利用されるような処理回路1504は、上記で説明し、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11、図12、図13、および図14に示すプロセス(ならびに以下で論じる、図16、図17、図18、図19、図20、図21、図22、図23および図24に示すプロセス)のうちのいずれか1つまたは複数を実装するために使用され得る。
【００６１】
図15の例では、処理システム1514は、バス1502によって概略的に表されるバスアーキテクチャを用いて実装される。バス1502は、処理システム1514の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含む場合がある。バス1502は、(処理回路1504によって概略的に表される)1つまたは複数の処理回路を含む様々な回路、ストレージデバイス1505、および(非一時的機械可読媒体1506によって概略的に表される)機械可読媒体、プロセッサ可読媒体、処理回路可読媒体、またはコンピュータ可読媒体をリンクさせる。バス1502はまた、当技術分野でよく知られており、したがって、これ以上説明されない、タイミングソース、周辺機器、電圧調整器、および電力管理回路など、様々な他の回路をリンクさせてもよい。バスインターフェース1508は、バス1502とトランシーバ1510との間のインターフェースを提供する。トランシーバ1510は、伝送媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に応じて、ユーザインターフェース1512(たとえば、キーパッド、ディスプレイ、スピーカー、マイクロフォン、ジョイスティック)も設けられてよい。処理回路1504は、バス1502の管理と、機械可読媒体1506上に記憶されたソフトウェアの実行を含む一般的な処理とを担う。ソフトウェアは、処理回路1504によって実行されると、処理システム1514に、任意の特定の装置について本明細書で説明する様々な機能を実行させる。機械可読媒体1506は、ソフトウェアを実行するときに処理回路1504によって操作されるデータを記憶するためにも使用され得る。
【００６２】
処理システム1514の1つまたは複数の処理回路1504は、ソフトウェアまたはソフトウェア構成要素を実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、手続き、関数などを意味するように広く解釈されるべきである。処理回路は、タスクを実行し得る。コードセグメントは、手続き、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造、もしくはプログラム文の任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータを、またはメモリもしくはストレージの内容を渡すおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどを、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の好適な手段を介して渡し、転送し、または伝送することができる。
【００６３】
ソフトウェアは、機械可読媒体1506上に存在することができる。機械可読媒体1506は、非一時的機械可読媒体であり得る。非一時的処理回路可読媒体、機械可読媒体、またはコンピュータ可読媒体は、例として、磁気ストレージデバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、RAM、ROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ハードディスク、CD-ROM、ならびに機械またはコンピュータによってアクセスされ読み取られ得るソフトウェアおよび/または命令を記憶するための任意の他の好適な媒体を含む。「機械可読媒体」、「コンピュータ可読媒体」、「処理回路可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はしないが、ポータブルストレージデバイスまたは固定ストレージデバイス、光ストレージデバイス、ならびに命令および/またはデータを記憶し、含み、または搬送することが可能な様々な他の媒体などの非一時的媒体を含み得る。したがって、本明細書で説明する様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」、「処理回路可読媒体」、および/または「プロセッサ可読媒体」内に記憶され、1つまたは複数の処理回路、機械および/またはデバイスによって実行され得る命令および/またはデータによって完全にまたは部分的に実装され得る。機械可読媒体は、例として、搬送波、伝送線、ならびにコンピュータによってアクセスされ読み取られ得るソフトウェアおよび/または命令を伝送するための任意の他の好適な媒体も含み得る。
【００６４】
機械可読媒体1506は、処理システム1514内に存在してもよく、処理システム1514の外部に存在してもよく、または処理システム1514を含む複数のエンティティにわたって分散されてもよい。機械可読媒体1506は、コンピュータプログラム製品において具現化されてもよい。例として、コンピュータプログラム製品は、パッケージング材料内に機械可読媒体を含み得る。当業者は、特定の適用例および全体的なシステムに課される全体的な設計制約に応じて、本開示全体にわたって提示される説明した機能を実装する最良の方法を認識されよう。たとえば、機械可読記憶媒体1506は、処理回路1504によって実行されると、処理回路に、フォールト検出システムを使用してプロセッサ回路内の少なくとも1つの過渡フォールトを検出させ、少なくとも1つの過渡フォールトに応じて、制御パラメータを適応的に調整させる1つまたは複数の命令を有することができ、この場合、制御パラメータは、より多くのプロセッサデバイスリソースを過渡フォールト検出に充てるように、(a)プロセッサデバイスの物理的動作、または(b)フォールト検出システムの機能的動作のうちの1つまたは複数を制御する。
【００６５】
図に示す構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、並べ替えられ、かつ/または単一の構成要素、ブロック、特徴もしくは機能に結合され、あるいはいくつかの構成要素、ステップ、もしくは機能において具現化され得る。追加の要素、構成要素、ステップ、および/または機能も、本開示から逸脱することなく追加され得る。図に示す装置、デバイス、および/または構成要素は、図で説明する方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。本明細書で説明するアルゴリズムはまた、ソフトウェアにおいて効率的に実装されてもよく、かつ/またはハードウェアに組み込まれてもよい。
【００６６】
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用処理回路、デジタル信号処理回路(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用処理回路は、マイクロプロセッシング回路であってもよいが、代替として、処理回路は、任意の従来の処理回路、コントローラ、マイクロコントローラ、または状態機械であってもよい。処理回路はまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッシング回路の組合せ、いくつかのマイクロプロセッシング回路、DSPコアと連携する1つもしくは複数のマイクロプロセッシング回路、または任意の他のそのような構成として実装され得る。
【００６７】
したがって、本開示の一態様では、処理回路1504は、過渡フォールト攻撃からの防御を目的とするものなど、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11、図12、図13および/または図14(ならびに/または以下で論じる図16、図17、図18、図19、図20、図21、図22、図23および図24)で説明するアルゴリズム、方法、および/またはブロックのうちの少なくともいくつかを実行するように特別に設計されたおよび/または配線接続された専用処理回路(たとえば、ASIC)であってもよい。したがって、そのような専用処理回路(たとえば、ASIC)は、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11、図12、図13、および/または図14(ならびに/または以下で論じる図16、図17、図18、図19、図20、図21、図22、図23および図24)で説明するアルゴリズム、方法、および/またはブロックを実行するための手段の一例であってもよい。機械可読記憶媒体は、専用処理回路(たとえば、ASIC)によって実行されると、専用処理回路に本明細書で説明するアルゴリズム、方法、および/またはブロックを実行させる命令を記憶し得る。
【００６８】
図16は、スマートフォンのSoCなど、プロセッサデバイス1600の選択された例示的な構成要素を広く示すブロック図である。プロセッサデバイス1600は、処理回路1612(たとえば、1つまたは複数のプロセッサ)と、(プロセッサデバイスをバスおよび/または他のデバイスに結合するための)通信インターフェース回路1614とを含み得る。処理回路1612は、1つまたは複数の過渡フォールト検出機能、過渡フォールト適応制御機能、過渡フォールト抵抗機能、過渡フォールト反応機能、および/またはフォールト防御機能を実装することができる。様々な例では、フォールト検出システム、過渡フォールト制御システム、および/またはフォールト防御システムは、それぞれ、フォールト検出機能、過渡フォールト適応制御機能、過渡フォールト抵抗機能、過渡フォールト反応機能、および/またはフォールト防御機能を実装するために、ソフトウェア、ファームウェア、および/または処理回路のハードウェア/回路/モジュールと連携して動作する埋込みコード内で実装されてよいことに留意されたい。この例では、過渡フォールト防御システム1602は、フォールト抵抗手順を制御または実行するように動作可能な過渡フォールト抵抗システム1604と、フォールト検出手順を制御または実行するように動作可能な過渡フォールト検出システム1606と、他のフォールト反応手順の対策を制御または実行するように動作可能な過渡フォールト反応システム1608とを含む。過渡フォールト適応制御システム1610は、たとえば、過渡フォールトに応じて、過渡フォールト防御システム1606の制御パラメータを適応的に調整し、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するために、過渡フォールト防御システム1602またはその構成要素を適応的に制御するように動作可能である。
【００６９】
いくつかの例では、制御パラメータは、過渡フォールト防御システムの積極性を、より高い頻度の過渡フォールトに応じて増加させ、より低い頻度の過渡フォールトに応じて低下させるように適応的に調整され得る。たとえば、制御パラメータは、最後の過渡フォールトからの時間量を検出し、追跡間隔内で新しい過渡フォールトが検出される場合、プロセッサデバイスによって他のプロセスに割り振られる時間量と比較してプロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように制御パラメータを調整し、追跡間隔内で新しい過渡フォールトが検出されない場合、プロセッサデバイスによって他のプロセスに割り振られる時間量と比較してプロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を低減させるように制御パラメータを調整することによって、適応的に調整され得る。
【００７０】
さらにまた、いくつかの例では、制御パラメータは、フォールト防御システムに充てられるプロセッサデバイスリソースの割合、フォールト防御システムの構成要素がプロセッサデバイスによって周期的にアクティブ化される頻度、フォールト防御システムの構成要素の実行の持続時間、過渡フォールト攻撃検出のためにフォールト検出システムによって使用されるしきい値、過渡フォールト攻撃検出のためにプロセッサデバイスに接続された周辺センサーによって使用されるしきい値、次のフォールトを検出するために使用される特定のフォールト検出手順、および/または少なくとも1つの他のプロセスに対するプロセッサデバイス上で実行する少なくとも1つのプロセスのタイミングのうちの1つまたは複数を制御する。さらに他の例では、過渡フォールト防御システムの制御パラメータは、最後の過渡フォールトからの時間量の追跡、追跡間隔内で新しい過渡フォールトが検出される場合、プロセッサデバイスによって防御対策に充てられる時間の割合の増大、および、追跡間隔内で新しい過渡フォールトが検出されない場合、プロセッサデバイスによって防御対策に充てられる時間の割合の低減によって、適応的に調整される。
【００７１】
実装形態に応じて、上記で説明したデバイスおよび構成要素の機能および動作は、同じまたは同様の機能を実行する他の好適な構成要素によって実行され得る。したがって、いくつかの例では、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出するための手段と、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するようにプロセッサデバイスの(たとえば、過渡フォールト防御システムの)制御パラメータを適応的に調整するための手段とを含む装置、システム、またはデバイスが提供される。制御パラメータを適応的に調整するための手段は、過渡フォールト防御システムの積極性を、より高い頻度の過渡フォールトに応じて増加させ、より低い頻度の過渡フォールトに応じて低下させるように制御パラメータを適応的に調整するための手段を含み得る。制御パラメータを適応的に調整するための手段は、最後の過渡フォールトからの時間量を検出するための手段と、追跡間隔内で新しい過渡フォールトが検出される場合、プロセッサデバイスによって他のプロセスに割り振られる時間量と比較してプロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように制御パラメータを調整するための手段と、追跡間隔内で新しい過渡フォールトが検出されない場合、プロセッサデバイスによって他のプロセスに割り振られる時間量と比較してプロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を低減させるように制御パラメータを調整するための手段とを含み得る。
【００７２】
またさらに、実装形態に応じて、上記で説明したデバイスおよび構成要素の機能および動作は、機械可読記憶媒体とともに使用するための命令として実装され得る。したがって、いくつかの例では、処理回路によって実行されると、処理回路に、(たとえば、フォールト検出システムを使用して)プロセッサ回路内の過渡フォールトを検出させ、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するようにプロセッサデバイスの(たとえば、過渡フォールト防御システムの)制御パラメータを適応的に調整させる命令が提供される。
【００７３】
図17は、スマートフォンのSoCなど、代替プロセッサデバイス1700の選択された例示的な構成要素を広く示すブロック図である。プロセッサデバイス1700は、処理回路1704(たとえば、1つまたは複数のプロセッサ)と、(プロセッサデバイスをバスおよび/または他のデバイスに結合するための)通信インターフェース回路1708とを含み得る。処理回路1704は、1つまたは複数の過渡フォールト検出機能、過渡フォールト適応制御機能、および/またはフォールト防御機能を実装することができる。様々な例では、フォールト検出システム、過渡フォールト制御システム、および/またはフォールト防御システムは、それぞれ、フォールト検出機能、適応フォールト制御機能、および/またはフォールト防御機能を実装するために、ソフトウェア、ファームウェア、および/または処理回路のハードウェア/回路/モジュールと連携して動作する埋込みコード内で実装されてよいことに留意されたい。この例では、過渡フォールト防御システム1702は、フォールト検出手順を制御または実行するように動作可能な過渡フォールト検出システム1706を含む。過渡フォールト適応制御システム1710は、たとえば、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにクロック信号を適応的に調整するように、選択的にゲート可能なクロック信号を有するクロックシステム1712を適応的に制御するように動作可能である。いくつかの例では、クロック信号は、ゲートするためのクロック信号のクロックサイクルを選択するためにハッシュコードを印加することによって適応的に調整され、この場合、ハッシュコードは、ランダムにまたは疑似ランダムに生成される。具体的には、クロック信号は、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御するように適応的に調整され得る。いくつかの例では、クロック信号は、最後の過渡フォールトからの時間量を検出し、追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるように制御パラメータを調整し、追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの数を低減させるように制御パラメータを調整することによって、適応的に調整される。
【００７４】
実装形態に応じて、上記で説明したデバイスおよび構成要素の機能および動作は、同じまたは同様の機能を実行する他の好適な構成要素によって実行され得る。したがって、いくつかの例では、(フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出するための手段と、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調整するための手段とを含む装置、システム、またはデバイスが提供される。クロック信号は、ゲートするためのクロック信号のクロックサイクルを選択するためにハッシュコードを印加することによって適応的に調整され、ハッシュコードは、ランダムにまたは疑似ランダムに生成される。いくつかの例では、クロック信号は、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御するように適応的に調整される。また、いくつかの例では、クロック信号を適応的に調整するための手段は、最後の過渡フォールトからの時間量を検出するための手段と、追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるように制御パラメータを調整するための手段と、追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの数を低減させるように制御パラメータを調整するための手段とを含む。
【００７５】
またさらに、実装形態に応じて、上記で説明したデバイスおよび構成要素の機能および動作は、機械可読記憶媒体とともに使用するための命令として実装され得る。したがって、いくつかの例では、処理回路によって実行されると、処理回路に、(たとえば、フォールト検出システムを使用して)プロセッサ回路内の過渡フォールトを検出させ、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調整させる命令が提供される。
【００７６】
図18は、スマートフォンのSoCなど、さらに別の例示的なプロセッサデバイス1800の選択された例示的な構成要素を広く示すブロック図である。プロセッサデバイス1800は、この例では、(たとえば、1つまたは複数のSFSを含み得る)プロセッサデバイス1800内の少なくとも1つの過渡フォールトまたは摂動を検出するように動作可能な過渡フォールト/摂動検出システム1802を含む。フォールト抵抗システム1803は、フォールト抵抗手順を制御するように動作可能である。(対策を実行または制御する能力を備えた、図18の検出システム1802、フォールト抵抗システム1803、および様々な構成要素を、まとめて、上記で論じた、図16に示したようなフォールト防御システムと見なし得る。)一例では、図18に示すシステムは、図17に示した処理回路1704によって実装され得る。
【００７７】
適応制御システム1804は、フォールト/摂動検出システム1802および/またはフォールト抵抗システム1803に結合され、少なくとも1つの過渡フォールトまたは摂動に応じて、制御パラメータを適応的に調整するように適応され、この場合、制御パラメータは、(a)物理的動作制御システム1806を介してプロセッサデバイス1800の物理的動作、(b)(たとえば、より多くのプロセッサデバイスリソースを過渡フォールト検出のために充てるための)フォールト/摂動検出システム1802の機能的動作、または(c)機能的動作制御システム1808を介して(たとえば、より多くのプロセッサデバイスリソースをフォールト抵抗に充てるための)フォールト抵抗システム1803の機能的動作のうちの1つまたは複数を制御する。具体的には、適応制御システム1804は、フォールト/摂動検出システム1802および/またはフォールト抵抗システム1803などの他の構成要素の積極性を、より高い頻度の過渡フォールト/摂動に応じて、より増加させ、より低い頻度の過渡フォールト/摂動に応じて、より低下させるように制御パラメータを適応的に調整するためにフォールト/摂動防御積極性コントローラ1810を使用できる。
【００７８】
追跡間隔制御システム1812は、最後の過渡フォールトおよび/または摂動からの時間量を検出または追跡し、追跡間隔内で新しい過渡フォールトおよび/または摂動が検出される場合、より多くのプロセッサリソースをフォールト制御に充てるように制御パラメータを調整し、追跡間隔内で新しい過渡フォールトおよび/または摂動が検出されない場合、より少ないプロセッサリソースをフォールト防御に充てるように制御パラメータを調整するように動作可能である。例示的な制御パラメータは、フォールト検出システム1802、またはフォールト抵抗システムなどの他の構成要素に充てられるプロセッサデバイスリソースの割合、フォールト検出システム1802、またはフォールト抵抗システムなどの他の構成要素がプロセッサデバイス1800によって周期的にアクティブ化される頻度、過渡フォールト攻撃検出のためにプロセッサデバイス1800またはその構成要素によって使用されるしきい値、過渡フォールト攻撃検出のためにプロセッサデバイス1800またはその構成要素によって使用されるカウンタ、次のフォールトを検出または防止するためにフォールト検出システム1802および/またはフォールト抵抗システム1803、もしくはそれらの構成要素によって使用される特定の手順、および/または少なくとも1つの他のプロセスに対するプロセッサデバイス1800またはその構成要素上で実行する少なくとも1つのプロセスのタイミングのうちの1つまたは複数を制御するパラメータである。
【００７９】
これらのまたは他の制御パラメータを調整するために、処理デバイス1800は、この例では、プロセッサデバイス1800のクロックを調整または修正するように動作可能なクロックコントローラ1814と、クロックをゲートするためのハッシュを生成する際に使用するための乱数または疑似乱数を生成するように動作可能な疑似乱数生成器(PRNG)1816と、ランダムまたは疑似ランダムに生成されたハッシュコードによって指定されるような、かついくつかの例では、非ゲート型クロックサイクルに対するゲート型クロックサイクルの選択された比率を提供する、選択されたクロックサイクルをスキップまたはゲートするように動作可能なクロックゲーティングコントローラ1818とを含む。プロセスリソース頻度/タイミング/割振りシステム1820は、フォールト検出システム1802および/またはフォールト抵抗システム1803に充てられるプロセッサデバイスリソースの割合、フォールト検出システム1802および/またはフォールト抵抗システム1803がプロセッサデバイス1800によって周期的にアクティブ化される頻度、および/または少なくとも1つの他のプロセスに対するプロセッサデバイス1800上で実行する少なくとも1つのプロセスのタイミングを制御または調整するように動作可能である。ソフトウェアフォールトセンサー(SFS)選択システム1822は、プロセッサデバイス1800の過渡フォールト検出システム1802によって使用される特定のフォールト検出手順(特定のSFSなど)の選択を選択または制御するように動作可能である。
【００８０】
またさらに、プロセッサデバイス1800は、この例では、FDCなどのフォールトカウンタを増分または減分するように動作可能なフォールトカウンタ増分/減分システム1824と、フォールトカウンタを悪意のある過渡フォールト攻撃を示すしきい値と比較するように動作可能なしきい値比較システム1826と、悪意のある過渡フォールト攻撃を判定、検出、または確認するように動作可能な悪意のある過渡フォールト攻撃検出システム1828と、そのような攻撃の検出または確認時に、プロセッサ1800を無効化するように、または他の好適および適切な対策を実行するように動作可能なプロセッサ対策/シャットダウン/無効化システム1830とを含む。
【００８１】
実装形態に応じて、上記で説明したデバイスおよび構成要素の機能および動作は、同じまたは同様の機能を実行する他の好適な構成要素によって実行され得る。したがって、いくつかの例では、フォールト/摂動検出システムを使用してプロセッサデバイス内の少なくとも1つの過渡フォールトまたは摂動を検出するための手段と、少なくとも1つの過渡フォールトに応じて、制御パラメータを適応的に調整するための手段とを含む装置、システム、またはデバイスが提供され、この場合、制御パラメータは、(a)プロセッサデバイスの物理的動作、(b)より多くのプロセッサデバイスリソースを過渡フォールト検出に充てるためのフォールト/摂動検出システムの機能的動作、および/または(c)(より多くのプロセッサデバイスリソースをフォールト抵抗に充てるための)フォールト抵抗システム1803の機能的動作のうちの1つまたは複数を制御する。制御パラメータを適応的に調整するための手段は、フォールト検出システムおよび/またはフォールト抵抗システムの積極性を、より高い頻度の過渡フォールト/摂動に応じて増加させ、より低い頻度の過渡フォールト/摂動に応じて低下させるための手段を含み得る。
【００８２】
制御パラメータを適応的に調整するための手段は、追加または代替として、最後の過渡フォールトからの時間量を検出するための手段と、追跡間隔内で新しい過渡フォールトが検出される場合、より多くのプロセッサリソースをフォールト検出に充てるように制御パラメータを調整させるための手段と、追跡間隔内で新しい過渡フォールトが検出されない場合、より少ないプロセッサリソースをフォールト検出に充てるように制御パラメータを調整するための手段とを含む。これは、フォールト検出システムに充てられるプロセッサデバイスリソースの割合、フォールト検出システムがプロセッサデバイスによって周期的にアクティブ化される頻度、過渡フォールト攻撃検出のためにプロセッサデバイスによって使用されるしきい値、次のフォールトを検出するためにフォールト検出システムによって使用される特定のフォールト検出手順、および/または少なくとも1つの他のプロセスに対するプロセッサデバイス上で実行する少なくとも1つのプロセスのタイミングのうちの1つまたは複数を制御するための手段をさらに含み得る。ランダムまたは疑似ランダムに生成されるハッシュコードによって指定される、選択されたクロックサイクルをスキップするための手段を含めて、プロセッサデバイスのクロックを制御することによってプロセッサデバイスの物理的動作を制御するために手段が提供され得る。加えて、選択可能なフォールト検出手順のセットの中から特定のフォールト検出手順を選択するために手段が提供され得る。過渡フォールト攻撃を検出し、過渡フォールトのカウントがしきい値を超える場合、プロセッサデバイスを無効化するために手段も提供され得る。
【００８３】
またさらに、実装形態に応じて、上記で説明したデバイスおよび構成要素の機能および動作は、機械可読記憶媒体とともに使用するための命令として実装され得る。したがって、いくつかの例では、処理回路によって実行されると、処理回路に、フォールト検出システムを使用してプロセッサ回路内の少なくとも1つの過渡フォールトを検出させ、少なくとも1つの過渡フォールトに応じて、制御パラメータを適応的に調整させる命令が提供され、この場合、制御パラメータは、より多くのプロセッサデバイスリソースを過渡フォールト検出に充てるように、(a)プロセッサデバイスの物理的動作、または(b)フォールト検出システムの機能的動作のうちの1つまたは複数を制御する。制御パラメータを適応的に調整するための命令は、フォールト検出システムの積極性を、より高い頻度の過渡フォールトに応じて増加させ、より低い頻度の過渡フォールトに応じて低下させるための命令を含み得る。
【００８４】
制御パラメータを適応的に調整するための命令は、追加または代替として、最後の過渡フォールトからの時間量を検出するための命令と、追跡間隔内で新しい過渡フォールトが検出される場合、より多くのプロセッサリソースをフォールト検出に充てるように制御パラメータを調整するための命令と、追跡間隔内で新しい過渡フォールトが検出されない場合、より少ないプロセッサリソースをフォールト検出に充てるように制御パラメータを調整するための命令とを含む。これは、フォールト検出システムに充てられるプロセッサデバイスリソースの割合、フォールト検出システムがプロセッサデバイスによって周期的にアクティブ化される頻度、過渡フォールト攻撃検出のためにプロセッサデバイスによって使用されるしきい値、次のフォールトを検出するためにフォールト検出システムによって使用される特定のフォールト検出手順、および/または少なくとも1つの他のプロセスに対するプロセッサデバイス上で実行する少なくとも1つのプロセスのタイミングのうちの1つまたは複数を制御するための命令をさらに含み得る。ランダムまたは疑似ランダムに生成されるハッシュコードによって指定される、選択されたクロックサイクルをスキップするための命令を含めて、プロセッサデバイスのクロックを制御することによってプロセッサデバイスの物理的動作を制御するために命令が提供され得る。加えて、選択可能なフォールト検出手順のセットの中から特定のフォールト検出手順を選択するための命令が提供され得る。過渡フォールト攻撃を検出し、過渡フォールトのカウントがしきい値を超える場合、プロセッサデバイスを無効化するために命令も提供され得る。
【００８５】
図19は、スマートフォンのSoC、特に過渡フォールト攻撃を受けやすいSoCなど、プロセッサデバイス上で動作可能な方法を示す流れ図である。1902において、プロセッサデバイスは、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出する。1904において、プロセッサデバイスは、過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するようにプロセッサデバイスの(たとえば、過渡フォールト防御システムの)制御パラメータを適応的に調整し、たとえば、過渡フォールト防御システムの積極性を、より高い頻度の過渡フォールトに応じて増加させ、より低い頻度の過渡フォールトに応じて低減させる。たとえば、フォールト防御システムのフォールト検出システムの機能的動作は、追跡間隔内で新しい過渡フォールトが検出される場合、プロセッサデバイスによって防御対策に充てられる時間の割合を増大させ、追跡間隔内で新しい過渡フォールトが検出されない場合、プロセッサデバイスによって防御対策に充てられる時間の割合を低減させるように適応的に調整され得る。様々な例では、フォールト検出システムおよび/またはフォールト防御システムは、それぞれ、フォールト検出機能および/またはフォールト防御機能を実装するために、ソフトウェア、ファームウェア、および/またはプロセッサデバイスのハードウェア/回路/モジュールと連携して動作する埋込みコード内で実装されてよいことに留意されたい。
【００８６】
図20は、スマートフォンのSoC、特に過渡フォールト攻撃を受けやすいSoCなど、プロセッサデバイス上で動作可能な代替方法を示す流れ図である。2002において、プロセッサデバイスは、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出する。2004において、プロセッサデバイスは、過渡フォールトに応じて、クロックサイクルを選択的にゲートするようにプロセッサデバイスのクロック信号を適応的に調節して、たとえば、頻繁な過渡フォールトに応じて比率を増大させるように非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御する。
【００８７】
図21は、プロセッサデバイス上で動作可能な方法をさらに示す流れ図である。2102において、プロセッサデバイスは、そのうちのいくつかが他の手順よりも徹底的であるかまたは高度である、選択可能なフォールト検出手順のセットを有するプロセッサデバイス内の過渡フォールトを(たとえば、フォールト検出システムを使用して)検出し、プロセッサデバイスは、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータ内に組み込まれる。2104において、プロセッサデバイスは、少なくとも1つの過渡フォールトに応じて、制御パラメータを適応的に調整し、この場合、制御パラメータは、より多くのプロセッサデバイスリソースを過渡フォールト検出に充てるために、(a)プロセッサデバイスの物理的動作、または(b)フォールト検出システムの機能的動作のうちの1つまたは複数の制御し、制御パラメータは、たとえば、最後の過渡フォールトからの時間量を検出し、追跡間隔内で新しい過渡フォールトが検出される場合、より多くのプロセッサリソースをフォールト検出に充て、追跡間隔内で新しい過渡フォールトが検出されない場合、より少ないプロセッサリソースをフォールト検出に充てるように制御パラメータを調整することによってなど、フォールト検出の積極性を、より高い頻度の過渡フォールトに応じて増加させ、より低い頻度の過渡フォールトに応じて低減させるように適応的に調整される。
【００８８】
2106において、追加または代替として、プロセッサデバイスは、フォールト検出に充てられるプロセッサデバイスリソースの割合、フォールト検出がプロセッサデバイスによって周期的にアクティブ化される頻度、過渡フォールト攻撃検出のためにプロセッサデバイスによって使用されるしきい値、次のフォールトを検出するためにフォールト検出によって使用される特定のフォールト検出手順、および/または少なくとも1つの他のプロセスに対するプロセッサデバイス上で実行する少なくとも1つのプロセスのタイミングのうちの1つまたは複数を制御する制御パラメータを適応的に調整する。2108において、追加または代替として、プロセッサデバイスは、たとえば、より高速またはより低速で実行するように、またはランダムまたは疑似ランダムに生成され、かつたとえば、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を選択または制御するハッシュコードによって指定された、選択されたクロックサイクルをスキップするようにプロセッサデバイスのクロックを制御することによって、プロセッサデバイスの物理的動作を制御する制御パラメータを適応的に調整する。2110において、プロセッサデバイスは、過渡フォールト攻撃を検出し、過渡フォールトのカウントが過渡フォールト攻撃を示すしきい値を超える場合、プロセッサデバイスを無効化する(または、他の対策を実行する)。
【００８９】
図22は、スマートフォンのSoCなど、プロセッサデバイス上で動作可能なさらに別の方法を示す流れ図である。2202において、プロセッサデバイスは、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出する。いくつかの例では、そのようなフォールト検出システムは、フォールト検出機能を実装するために、ソフトウェア、ファームウェア、および/またはプロセッサデバイスのハードウェア/回路/モジュールと連携して動作する埋込みコード内で実装されてよい。2204において、プロセッサデバイスは、最後の過渡フォールトからの時間量を検出する。2206において、プロセッサデバイスは、追跡間隔内で新しい過渡フォールトが検出される場合、プロセッサデバイスによって他のプロセスに割り振られる時間量と比較してプロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように制御パラメータを調整する。2208において、プロセッサデバイスは、追跡間隔内で新しい過渡フォールトが検出されない場合、プロセッサデバイスによって他のプロセスに割り振られる時間量と比較してプロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を低減させるように制御パラメータを調整する。
【００９０】
図23は、スマートフォンのSoCなど、プロセッサデバイス上で動作可能なさらに別の方法を示す流れ図である。2302において、プロセッサデバイスは、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出する。くつかの例では、そのようなフォールト検出システムは、フォールト検出機能を実装するために、ソフトウェア、ファームウェア、および/またはプロセッサデバイスのハードウェア/回路/モジュールと組合せて動作する埋込みコード内で実装されてよい。2304において、プロセッサデバイスは、最後の過渡フォールトからの時間量を追跡する。2306において、追跡間隔内で新しい過渡フォールトが検出される場合、プロセッサデバイスは、追跡間隔内で検出された新しい過渡フォールトの数が下限しきい値を超える場合のみ、追跡間隔内で検出された新しい過渡フォールトの数に比例してプロセッサデバイスによって防御対策に充てられる時間の割合を増大させる。2308において、プロセッサデバイスは、追跡間隔内で検出された新しい過渡フォールトの数が中間しきい値に達する場合、防御対策に充てられる時間の割合を最大対策レベルに増大させ、次いで、追跡間隔内で検出された新しい過渡フォールトの数が最高しきい値に達する場合、プロセッサデバイスを無効化する。2310において、プロセッサデバイスは、追跡間隔内で新しい過渡フォールトが検出されない場合、プロセッサデバイスによって防御対策に充てられる時間の割合を低減させる。
【００９１】
図24は、スマートフォンのSoCなど、プロセッサデバイス上で動作可能なさらにまた別の方法を示す流れ図である。2402において、プロセッサデバイスは、(たとえば、フォールト検出システムを使用して)プロセッサデバイス内の過渡フォールトを検出する。いくつかの例では、そのようなフォールト検出システムは、フォールト検出機能を実装するために、ソフトウェア、ファームウェア、および/またはプロセッサデバイスのハードウェア/回路/モジュールと連携して動作する埋込みコード内で実装されてよい。2404において、プロセッサデバイスは、最後の過渡フォールトからの時間量を検出する。2406において、プロセッサデバイスは、追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるようにプロセッサデバイスの制御パラメータを調整する。2408において、プロセッサデバイスは、追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの数を低減させるようにプロセッサデバイスの制御パラメータを調整する。
【００９２】
加えて、実施形態は、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。フローチャートでは、動作について順次プロセスとして説明する場合があるが、動作の多くは並列にまたは同時に実行することができる。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了するときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応してよい。プロセスが関数に対応するとき、その終了は呼出し関数またはメイン関数への関数のリターンに対応する。
【００９３】
さらに、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表し得る。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定ストレージデバイス、光ストレージデバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶し、含み、または搬送することが可能な様々な他の媒体を含む。
【００９４】
本明細書で開示する例に関して説明した方法またはアルゴリズムは、処理ユニット、プログラミング命令、または他の指示の形態において、直接ハードウェアとして具現化されても、プロセッサによって実行可能なソフトウェアモジュールとして具現化されても、あるいは両方の組合せとして具現化されてもよく、単一のデバイスに含まれるかまたは複数のデバイスにわたって分散されることがある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で既知の任意の他の形態の記憶媒体に存在してよい。記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、プロセッサに結合されてもよい。この代替では、記憶媒体は、プロセッサと一体化してよい。
【００９５】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者はさらに諒解されよう。ハードウェアとソフトウェアとのこの互換性について明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記で概してそれらの機能性に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の用途およびシステム全体に課される設計の制約によって決まる。
【００９６】
本明細書で説明した本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムに実装することができる。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定しないよう意図されている。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替形態、修正形態、および変形形態が、当業者には明らかであろう。
【符号の説明】
【００９７】
100  過渡フォールト攻撃システム
102  スマートカード
104  スマートカードリーダ
106  過渡フォールトインジェクションデバイス、インジェクションデバイス
108  電磁エネルギー
110  過渡フォールトインジェクションコントローラ
112  スマートカード出力分析器
202  抵抗ブロック
204  検出ブロック
206  反応ブロック
302  抵抗ブロック
304  セキュアなコーディング
306  時間非同期
308  SWランダム遅延
310  HW CPUクロックゲーティング
312  HWランダム分岐
402  物理的摂動
404  デジタルフォールト
406  フォールト攻撃
408  HW摂動センサー
410  HWフォールトセンサー
412  SWフォールトセンサー
414  SFフォールト攻撃検出器
502  SWフォールト検出器
504  一般的な決定論的コード
506  コード長
508  固定位置における呼出し
510  割込み
512  割込み頻度
514  アドホック技法
516  整合しないステータスの検査
518  ループ後に整合しない長さの検査
520  他のアドホック技法
600  グラフ
602  x軸
604  y軸
606  状態1
608  ベースラインまたはデフォルトレベル(CMbaseline)
610  下限しきい値(FDCCMMIN)
612  状態2
614  増大ライン
616  所与の値X
618  デバイスリソースの割合Y
620  上限しきい値(FDCCMMAX)
622  状態3
624  最大レベルの対策(CMMAX)
626  上限しきい値(FDCCMMAX)
628  無効化される状態4
700  第1のグラフ
702  y軸
704  x軸
706  第1の時間
708  第1のFDC値
710  時間間隔ΔT
712  第2の時間
714  第3の時間
716  第2のFDC値
717  第4の時間
718  第3のFDC値
720  低いしきい値FDCCMMIN
722  第2のグラフ
724  y軸
726  x軸
728  第5の時間
730  時間間隔ΔT
732  低いしきい値
734  第6の時間
736  第7の時間
800  SoC処理回路、SoC
802  システムクロックコントローラ
810  アプリケーション処理回路、構成要素
812  CPUコア
815  適応コントローラ
817  フォールト防御システム
818  ブートROM、構成要素
819  フォールト抵抗システム
820  周辺サブシステム、構成要素
821  フォールト検出システム、過渡フォールト検出システム
822  DSP
823  フォールト反応システム
824  HW構成要素およびSW構成要素
826  無線周波数(RF)構成要素
828  ブートROM、構成要素
823  フォールト反応システム
830  内部共有HWリソース、構成要素
832  内部共有ストレージデバイス、内部共有ストレージ
833  鍵ストレージ要素、鍵ストレージ、鍵ストレージ構成要素
840  外部共有HWリソース
842  外部共有ストレージ
844  ダブルデータレート(DDR)ダイナミックRAMおよび/または永久的もしくは半永久的データストレージ
850  ホストストレージコントローラ
900  タイミング図
902  システムクロックコントローラ、構成要素
904  適応コントローラ、構成要素
906  過渡フォールト防御システム、構成要素
1000  タイミング図
1002  システムクロックコントローラ
1004  適応コントローラ
1006  過渡フォールト防御システム
1011  追跡間隔
1202  デフォルトクロック、クロック
1204  減速クロック
1206  乱数ハッシュ関数または疑似乱数ハッシュ関数、ハッシュ
1208  ゲート型クロック
1500  システムまたは装置
1502  バス
1504  処理回路
1505  ストレージデバイス
1506  非一時的機械可読媒体、機械可読媒体、機械可読記憶媒体
1508  バスインターフェース
1510  トランシーバ
1512  ユーザインターフェース
1514  処理システム
1600  プロセッサデバイス
1602  過渡フォールト防御システム
1604  過渡フォールト抵抗システム
1606  過渡フォールト検出システム
1608  過渡フォールト反応システム
1610  過渡フォールト反応システム
1612  処理回路
1614  通信インターフェース回路
1700  代替プロセッサデバイス
1702  過渡フォールト防御システム
1704  処理回路
1706  過渡フォールト検出システム
1708  通信インターフェース回路
1710  過渡フォールト適応制御システム
1712  クロックシステム
1800  プロセッサデバイス
1802  過渡フォールト/摂動検出システム、検出システム、フォールト/摂動検出システム、フォールト検出システム
1803  フォールト抵抗システム
1804  適応制御システム
1806  物理動作制御システム
1808  機能的動作制御システム
1810  フォールト/摂動防御積極性コントローラ
1812  追跡間隔制御システム
1814  クロックコントローラ
1816  疑似乱数生成器(PRNG)
1818  クロックゲーティングコントローラ
1820  プロセスリソース頻度/タイミング/割振りシステム
1822  ソフトウェアフォールトセンサー(SFS)選択システム
1824  フォールトカウンタ増分/減分システム
1826  しきい値比較システム
1828  悪意のある過渡フォールト攻撃検出システム
1830  プロセッサ対策/シャットダウン/無効化システム
【図１】
2019510318.tif 000004
【図２】
2019510318.tif 000005
【図３】
2019510318.tif 000006
【図４】
2019510318.tif 000007
【図５】
2019510318.tif 000008
【図６】
2019510318.tif 000009
【図７】
2019510318.tif 000010
【図８】
2019510318.tif 000011
【図９】
2019510318.tif 000012
【図１０】
2019510318.tif 000013
【図１１】
2019510318.tif 000014
【図１２】
2019510318.tif 000015
【図１３】
2019510318.tif 000016
【図１４】
2019510318.tif 000017
【図１５】
2019510318.tif 000018
【図１６】
2019510318.tif 000019
【図１７】
2019510318.tif 000020
【図１８】
2019510318.tif 000021
【図１９】
2019510318.tif 000022
【図２０】
2019510318.tif 000023
【図２１】
2019510318.tif 000024
【図２２】
2019510318.tif 000025
【図２３】
2019510318.tif 000026
【図２４】
2019510318.tif 000027
【手続補正書】
【提出日】平成30年10月2日(2018.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサデバイス上で動作可能な方法であって、
前記プロセッサデバイス内の過渡フォールトを検出するステップと、
前記検出された過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように制御パラメータを適応的に調整するステップであって、前記制御パラメータが、前記検出された過渡フォールトに対する少なくとも1つのプロセッサデバイスリソースの時間定位を変更するように適応的に調整される、適応的に調整するステップと
を含む、方法。
【請求項２】
前記プロセッサデバイスリソースが、前記制御パラメータを適応的に調整するように構成された過渡フォールト防御システムを含み、前記過渡フォールト防御システムが、過渡フォールト抵抗システム、過渡フォールト検出システム、および過渡フォールト反応システムのうちの1つまたは複数を含み、前記制御パラメータを適応的に調整するステップが、前記過渡フォールト抵抗システム、前記過渡フォールト検出システム、および前記過渡フォールト反応システムのうちの1つまたは複数を制御するために実行される、請求項1に記載の方法。
【請求項３】
前記制御パラメータが、より高い頻度の過渡フォールトに対して積極性を増加させて対応し、より低い頻度の過渡フォールトに対して積極性を低減させて対応するように適応的に調整される、請求項1に記載の方法。
【請求項４】
前記制御パラメータを適応的に調整するステップが、
最後の過渡フォールトからの時間量を検出するステップと、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整するステップと、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって前記過渡フォールト防御プロセスに割り振られる時間量を低減させるように前記制御パラメータを調整するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記制御パラメータが、
前記過渡フォールト防御に充てられるプロセッサデバイスリソースの割合、
前記過渡フォールト防御のために使用される構成要素が前記プロセッサデバイスによって周期的にアクティブ化される頻度、
前記過渡フォールト防御のために使用される構成要素の実行の持続時間、
過渡フォールト検出および/または過渡フォールト攻撃検出のために使用されるしきい値、
過渡フォールト攻撃検出のために前記プロセッサデバイスに接続される周辺センサーによって使用されるしきい値、
次のフォールトを検出するために使用される特定のフォールト検出手順、および/または
少なくとも1つの他のプロセスに対する前記プロセッサデバイス上で実行する少なくとも1つのプロセスのタイミング
のうちの1つまたは複数を制御する、請求項1に記載の方法。
【請求項６】
前記制御パラメータを適応的に調整するステップが、
最後の過渡フォールトからの時間量を追跡するステップと、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって防御対策に充てられる時間の割合を増大させるステップと、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を低減させるステップと
を含む、請求項1に記載の方法。
【請求項７】
前記追跡間隔内で検出された新しい過渡フォールトの数が下限しきい値を超える場合のみ、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が増大される、請求項6に記載の方法。
【請求項８】
前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が前記追跡間隔内で検出された新しい過渡フォールトの数に比例して前記追跡間隔中に増大される、請求項6に記載の方法。
【請求項９】
前記追跡間隔内で検出された新しい過渡フォールトの数が中間しきい値に達する場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合が最大対策レベルに増大される、請求項6に記載の方法。
【請求項１０】
前記追跡間隔内で検出された新しい過渡フォールトの数が最高しきい値に達する場合、前記プロセッサデバイスが無効化される、請求項6に記載の方法。
【請求項１１】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項1に記載の方法。
【請求項１２】
プロセッサデバイスであって、
通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記プロセッサデバイス内の過渡フォールトを検出することと、
前記過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように前記プロセッサデバイスの制御パラメータを適応的に調整することであって、前記制御パラメータが、前記検出された過渡フォールトに対する少なくとも1つのプロセッサデバイスリソースの時間定位を変更するように適応的に調整される、適応的に調整することと
を行うように構成される、プロセッサデバイス。
【請求項１３】
前記プロセッサデバイスリソースが、前記制御パラメータを適応的に調整するように構成された過渡フォールト防御システムを含み、前記過渡フォールト防御システムが、過渡フォールト抵抗システム、過渡フォールト検出システム、および過渡フォールト反応システムのうちの1つまたは複数を含む、請求項12に記載のプロセッサデバイス。
【請求項１４】
前記処理回路が、より高い頻度の過渡フォールトに対して積極性を増加させて対応し、より低い頻度の過渡フォールトに対して積極性を低減させて対応するように前記制御パラメータを適応的に調整するように構成される、請求項12に記載のプロセッサデバイス。
【請求項１５】
前記処理回路が、
最後の過渡フォールトからの時間量を検出し、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整し、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって前記過渡フォールト防御プロセスに割り振られる前記時間量を低減させるように前記制御パラメータを調整する
ことによって、前記制御パラメータを適応的に調整するように構成される、請求項12に記載のプロセッサデバイス。
【請求項１６】
前記制御パラメータが、
前記過渡フォールト防御に充てられるプロセッサデバイスリソースの割合、
前記過渡フォールト防御のために使用される構成要素が前記プロセッサデバイスによって周期的にアクティブ化される頻度、
前記過渡フォールト防御の構成要素の実行の持続時間、
過渡フォールト検出および/または過渡フォールト攻撃検出のために使用されるしきい値、
過渡フォールト攻撃検出のために前記プロセッサデバイスに接続される周辺センサーによって使用されるしきい値、
次のフォールトを検出するために使用される特定のフォールト検出手順、および/または
少なくとも1つの他のプロセスに対する前記プロセッサデバイス上で実行する少なくとも1つのプロセスのタイミング
のうちの1つまたは複数を制御するように構成される、請求項12に記載のプロセッサデバイス。
【請求項１７】
前記処理回路が、
最後の過渡フォールトからの時間量を追跡し、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって防御対策に充てられる時間の割合を増大させ、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を低減させる
ことによって、前記制御パラメータを適応的に調整するように構成される、請求項12に記載のプロセッサデバイス。
【請求項１８】
前記処理回路が、前記追跡間隔内で検出された新しい過渡フォールトの数が下限しきい値を超える場合のみ、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を増大させるように構成される、請求項17に記載のプロセッサデバイス。
【請求項１９】
前記処理回路が、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を前記追跡間隔内で検出された新しい過渡フォールトの数に比例して前記追跡間隔中に増大させるように構成される、請求項17に記載のプロセッサデバイス。
【請求項２０】
前記処理回路が、前記追跡間隔内で検出された新しい過渡フォールトの前記数が中間しきい値に達する場合、前記プロセッサデバイスによって防御対策に充てられる時間の前記割合を最大対策レベルに増大させるように構成される、請求項19に記載のプロセッサデバイス。
【請求項２１】
前記処理回路が、前記追跡間隔内で検出された新しい過渡フォールトの前記数が最高しきい値に達する場合、前記プロセッサデバイスを無効化するように構成される、請求項19に記載のプロセッサデバイス。
【請求項２２】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項12に記載のプロセッサデバイス。
【請求項２３】
プロセッサデバイスであって、
前記プロセッサデバイス内の過渡フォールトを検出するための手段と、
前記過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように前記プロセッサデバイスの制御パラメータを適応的に調整するための手段であって、前記制御パラメータが、前記検出された過渡フォールトに対する少なくとも1つのプロセッサデバイスリソースの時間定位を変更するように適応的に調整される、適応的に調整するための手段と
を含む、プロセッサデバイス。
【請求項２４】
前記制御パラメータを適応的に調整するための前記手段が、より高い頻度に対して積極性を増加させて対応し、より低い頻度に対して積極性を低下させて対応するように前記制御パラメータを適応的に調整する、請求項23に記載のプロセッサデバイス。
【請求項２５】
前記制御パラメータを適応的に調整するための前記手段が、
最後の過渡フォールトからの時間量を検出するための手段と、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整するための手段と、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって前記過渡フォールト防御プロセスに割り振られる前記時間量を低減させるように、前記制御パラメータを適応的に調整するための手段と
を含む、請求項23に記載のプロセッサデバイス。
【請求項２６】
1つまたは複数の命令を有する機械可読記憶媒体であって、前記命令が、処理回路によって実行されると、前記処理回路に、
プロセッサデバイス内の過渡フォールトを検出することと、
前記過渡フォールトに応じて、他の動作に充てられるプロセッサデバイスリソースの量と比較して過渡フォールト防御に充てられるプロセッサデバイスリソースの量を適応的に制御するように前記プロセッサデバイスの前記過渡フォールト防御のための制御パラメータを適応的に調整することであって、前記制御パラメータが、前記検出された過渡フォールトに対する少なくとも1つのプロセッサデバイスリソースの時間定位を変更するように適応的に調整される、適応的に調整することと
を行わせる、機械可読記憶媒体。
【請求項２７】
前記処理回路によって実行されると、前記処理回路に、より高い頻度の過渡フォールトに対して積極性を増加させて対応し、より低い頻度の過渡フォールトに対して積極性を低下させて対応するように前記制御パラメータを適応的に調整する1つまたは複数の命令をさらに有する、請求項26に記載の機械可読記憶媒体。
【請求項２８】
前記処理回路によって実行されると、前記処理回路に、
最後の過渡フォールトからの時間量を検出させ、
追跡間隔内で新しい過渡フォールトが検出される場合、前記プロセッサデバイスによって他のプロセスに割り振られる時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる時間量を増大させるように前記制御パラメータを調整させ、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、前記プロセッサデバイスによって他のプロセスに割り振られる前記時間量と比較して前記プロセッサデバイスによって過渡フォールト防御プロセスに割り振られる前記時間量を低減させるように前記制御パラメータを調整させる
1つまたは複数の命令をさらに有する、請求項26に記載の機械可読記憶媒体。
【請求項２９】
プロセッサデバイス上で動作可能な方法であって、
前記プロセッサデバイス内の過渡フォールトを検出するステップと、
前記過渡フォールトに応じて、クロックサイクルを選択的にスキップすることによって、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整するステップと
を含む、方法。
【請求項３０】
前記クロック信号が、選択的にスキップするための前記クロック信号のクロックサイクルを選択するためにハッシュコードを印加することによって適応的に調整される、請求項29に記載の方法。
【請求項３１】
前記ハッシュコードがランダムまたは疑似ランダムに生成される、請求項30に記載の方法。
【請求項３２】
前記クロック信号が、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御するように適応的に調整される、請求項29に記載の方法。
【請求項３３】
前記クロック信号を適応的に調整するステップが、
最後の過渡フォールトからの時間量を検出するステップと、
追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるように制御パラメータを調整するステップと、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの前記数を低減させるように前記制御パラメータを調整するステップと
を含む、請求項29に記載の方法。
【請求項３４】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項29に記載の方法。
【請求項３５】
プロセッサデバイスであって、
通信インターフェースと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記プロセッサデバイス内の過渡フォールトを検出し、
前記過渡フォールトに応じて、クロックサイクルを選択的にスキップすることによって、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整する
ように構成される、プロセッサデバイス。
【請求項３６】
前記処理回路が、選択的にスキップするための前記クロック信号のクロックサイクルを選択するためにハッシュコードを印加することによって前記クロック信号を適応的に調整するようにさらに構成される、請求項35に記載のプロセッサデバイス。
【請求項３７】
前記処理回路が、前記ハッシュコードをランダムまたは疑似ランダムに生成するようにさらに構成される、請求項36に記載のプロセッサデバイス。
【請求項３８】
前記処理回路が、非ゲート型クロックサイクルに対するゲート型クロックサイクルの比率を制御するように前記クロック信号を適応的に調整するようにさらに構成される、請求項35に記載のプロセッサデバイス。
【請求項３９】
前記処理回路が、
最後の過渡フォールトからの時間量を検出し、
追跡間隔内で新しい過渡フォールトが検出される場合、ゲート型クロックサイクルの数を増大させるように制御パラメータを調整し、
前記追跡間隔内で新しい過渡フォールトが検出されない場合、ゲート型クロックサイクルの前記数を低減させるように前記制御パラメータを調整する
ことによって、前記クロック信号を適応的に調整するように構成される、請求項35に記載のプロセッサデバイス。
【請求項４０】
前記プロセッサデバイスが、スマートフォン、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、モバイルフォン、音楽プレーヤ、携帯情報端末、固定位置端末、タブレットコンピュータ、および/またはラップトップコンピュータのうちの少なくとも1つに組み込まれる、請求項35に記載のプロセッサデバイス。
【請求項４１】
プロセッサデバイスであって、
前記プロセッサデバイス内の過渡フォールトを検出するための手段と、
前記過渡フォールトに応じて、クロックサイクルを選択的にスキップすることによって、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整するための手段と
を含む、プロセッサデバイス。
【請求項４２】
1つまたは複数の命令を有する機械可読記憶媒体であって、前記命令が、処理回路によって実行されると、前記処理回路に、
プロセッサデバイス内の過渡フォールトを検出させ、
前記過渡フォールトに応じて、クロックサイクルを選択的にスキップすることによって、クロックサイクルを選択的にゲートするように前記プロセッサデバイスのクロック信号を適応的に調整させる
機械可読記憶媒体。
【国際調査報告】
2019510318.tif 000028
2019510318.tif 000029
2019510318.tif 000030