デバイスに、セキュリティ上重要な CPU 命令のスキップが発生した場合に、それを検出して緩和するための回路やセンサーが実装されていないか、不適切である。
ハードウェアの動作条件は変化する可能性がある。
予期せぬ動作が発生する可能性があります、
セキュリティ上重要な CPU 命令のスキップなど
命令のスキップなど、予期せぬ動作を引き起こすことがある。一般的に、これは
これは一般的に、電気的な障害や、デバイスが想定された条件
一般的には、電気的な障害や、デバイスが想定された条件以外で動作した場合に発生します。
実際には、アプリケーション・コードには
アプリケーション・コードには、セキュリティーに敏感な条件分岐が含まれることがあります(例:ユーザーから提供されたパスワードを受け入れるか拒否するか)、
アプリケーション・コードには、セキュリティに敏感な条件分岐が含まれることがあります(例 えば、ユーザーから提供されたパスワードを受け入れるか拒否するかなど)。このような
このような条件分岐は、通常
バイナリで実装されます。
バイナリによって実装されます。
分岐条件を反転させる、つまり、間違った分岐をさせることになります。
つまり、セキュリティーに敏感でない分岐が行われることになります。これは
これは、ファームウェア認証、パスワード検証
認証、その他のセキュリティに敏感な
ポイントに影響する。
攻撃者は、フォールト・インジェクションのテクニックを使って
ハードウェアの動作条件を変更し
セキュリティ上重要な命令が
より頻繁に、あるいはより確実にスキップさせることができます。
「よりも頻繁に、あるいはより確実にスキップされるようにします。
The device is missing or incorrectly implements circuitry or sensors that detect and mitigate the skipping of security-critical CPU instructions when they occur.
The operating conditions of hardware may change
in ways that cause unexpected behavior to occur,
including the skipping of security-critical CPU
instructions. Generally, this can occur due to
electrical disturbances or when the device operates
outside of its expected conditions.
In practice, application code may contain
conditional branches that are security-sensitive (e.g.,
accepting or rejecting a user-provided password). These
conditional branches are typically implemented by a
single conditional branch instruction in the program
binary which, if skipped, may lead to effectively
flipping the branch condition - i.e., causing the wrong
security-sensitive branch to be taken. This affects
processes such as firmware authentication, password
verification, and other security-sensitive decision
points.
Attackers can use fault injection techniques to
alter the operating conditions of hardware so that
security-critical instructions are skipped more
frequently or more reliably than they would in a
"natural" setting.