Condividi tramite


HardcodedIVCNG (Query codeQL del driver di Windows)

Panoramica

Un vettore di inizializzazione (IV) è un input per una primitiva crittografica usata per fornire lo stato iniziale. Il IV è in genere necessario essere casuale o pseudorandom (schema casuale), ma a volte un IV deve essere imprevedibile o univoco (schema con stato).

La casualizzazione è fondamentale per alcuni schemi di crittografia per ottenere la sicurezza semantica, una proprietà in cui l'utilizzo ripetuto dello schema nella stessa chiave non consente a un utente malintenzionato di dedurre relazioni tra segmenti (potenzialmente simili) del messaggio crittografato.

Recommendation

Tutte le crittografia a blocchi simmetrici devono essere usate anche con un vettore di inizializzazione appropriato (IV) in base alla modalità di utilizzo dell'operazione.

Se si usa uno schema casuale, ad esempio CBC, è consigliabile usare il generatore di numeri pseudorandom crittografati, ad esempio BCryptGenRandom.

Altri dettagli

Questa query è disponibile nel repository CodeQL di Microsoft GitHub. Per informazioni dettagliate sul modo in cui gli sviluppatori di Driver Windows possono scaricare ed eseguire CodeQL, vedere la pagina CodeQL e la pagina Test del logo degli strumenti statici .

Riferimenti aggiuntivi: