HardcodedIVCNG (Windows Driver CodeQL-fråga)

Översikt

En initieringsvektor (IV) är en indata till en kryptografisk primitiv som används för att ange det inledande tillståndet. IV måste vanligtvis vara slumpmässigt eller pseudorandomiserat (randomiserat schema), men ibland behöver en IV bara vara oförutsägbar eller unik (tillståndkänsligt schema).

Slumpmässighet är avgörande för att vissa krypteringsscheman ska uppnå semantisk säkerhet, en egenskap där upprepad användning av schemat under samma nyckel inte tillåter att en angripare härleder relationer mellan (potentiellt liknande) segment i det krypterade meddelandet.

Rekommendation

Alla symmetriska block chiffer måste också användas med en lämplig initieringsvektor (IV) enligt det driftsätt som används.

Om du använder ett randomiserat schema, till exempel CBC, rekommenderar vi att du använder kryptografiskt säker pseudorandomnummergenerator, till exempel BCryptGenRandom.

Ytterligare information

Den här frågan finns på Microsoft GitHub CodeQL-lagringsplatsen. Mer information om hur Windows Driver-utvecklare kan ladda ner och köra CodeQL finns på sidan CodeQL och testsidan för logotyper av statiska verktyg.

Ytterligare referenser: