HardcodedIVCNG (Windows Driver CodeQL クエリ)

概要

初期化ベクトル (IV) は、初期状態を提供するために使用される暗号化プリミティブへの入力です。 通常、IV はランダムまたは擬似ランダム (ランダム化スキーム) である必要がありますが、場合によっては、IV が予測不可能または一意であること (ステートフル スキーム) のみを必要とする場合もあります。

一部の暗号化スキームでは、セマンティック セキュリティを達成するためにランダム化が重要です。このセキュリティにより、攻撃者は、同じキーの下でスキームを繰り返し使用しても、暗号化されたメッセージの (類似している可能性がある) セグメント間の関係を推測できなくなります。

推奨事項

すべての対称ブロック暗号は、使用されている動作モードに応じて適切な初期化ベクトル (IV) とともに使用する必要があります。

CBC などのランダム化スキームを使用する場合は、BCryptGenRandom などの暗号的に安全な擬似乱数ジェネレーターを使用することをお勧めします。

追加の詳細

このクエリは、Microsoft GitHub CodeQL リポジトリにあります。 Windows ドライバー開発者が CodeQL をダウンロードして実行する方法の詳細については、「CodeQL と静的ツールのロゴ テスト」ページを参照してください。

参考資料