CWE一覧に戻る
CWE-343

前回値から予測可能な値域

Predictable Value Range from Previous Values
脆弱性 レビュー中
JA

この製品の乱数発生器は、一連の値を生成し、それを観察することで、次に生成される可能性のある値の比較的小さな範囲を推測することができる。

乱数生成器の出力は、以前の値の観測に基づいて予測可能であってはならない。場合によっては、攻撃者は次に生成される正確な値を予測することはできないが、可能性を大幅に絞り込むことはできる。これにより、ブルートフォース攻撃を実行する労力を減らすことができる。たとえば、この製品が1から100までの乱数を生成するが、100に達するまでは常に大きな値を生成するとする。ジェネレーターが80を生成した場合、攻撃者は次の値が81と100の間のどこかになることを知っている。100の可能性の代わりに、攻撃者は20の可能性を考えるだけでよい。

EN

The product's random number generator produces a series of values which, when observed, can be used to infer a relatively small range of possibilities for the next value that could be generated.

The output of a random number generator should not be predictable based on observations of previous values. In some cases, an attacker cannot predict the exact value that will be produced next, but can narrow down the possibilities significantly. This reduces the amount of effort to perform a brute force attack. For example, suppose the product generates random numbers between 1 and 100, but it always produces a larger value until it reaches 100. If the generator produces an 80, then the attacker knows that the next value will be somewhere between 81 and 100. Instead of 100 possibilities, the attacker only needs to consider 20.

Scope: Other / Impact: Varies by Context
Increase the entropy used to seed a PRNG.
Use products or modules that conform to FIPS 140-2 [REF-267] to avoid obvious entropy problems. Consult FIPS 140-2 Annex C ("Approved Random Number Generators").
Use a PRNG that periodically re-seeds itself using input from high-quality sources, such as hardware devices with high entropy. However, do not re-seed too frequently, or else the entropy source might block.
MITRE公式ページ — CWE-343