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 .