İçeriğe geç

Sabit IV (ARCH7114)

Anahtar php.security.static-iv · Önem error · Kategori security · CWE CWE-329

Sabit veya sıfır bir IV/nonce, CBC/CTR/GCM modlarının anlamsal güvenliğini yok eder: aynı düz metin her zaman aynı şifreli metni üretir ve örüntüler sızar. Her şifreleme için rastgele bir IV üretilmelidir.

<?php
$iv = str_repeat("\0", 16);
$ct = openssl_encrypt($plain, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
<?php
$len = openssl_cipher_iv_length('aes-256-cbc');
$iv = random_bytes($len);
$ct = openssl_encrypt($plain, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
$out = $iv . $ct; // IV'yi şifreli metinle birlikte saklayın

Her şifreleme işleminde random_bytes() ile benzersiz bir IV üretin ve şifreli metinle birlikte saklayın.