Microsoft steekt dubieuze getallen in Windows

keys.pngWillekeurige getallen zijn belangrijk in heel wat encryptiealgoritmes, onder andere voor allerlei authenticatieschema’s en het genereren van priemgetallen voor publieke-sleutelencryptie. Een zwakheid in de methode om willekeurige getallen te berekenen (random number generator, RNG) is vaak een opstapje naar het kraken van het hele erop gebaseerde systeem. De Amerikaanse overheid heeft dit jaar een nieuwe officiële standaard uitgebracht voor RNG’s, waarin het vier technieken beschrijft: NIST Special Publication 800-90.

Eén van de RNG’s in de standaard, Dual_EC_DRBG, is door de Amerikaanse NSA ontwikkeld en is veel trager dan de andere. Bovendien zijn er in 2006 verschillende problemen in gevonden: de gegenereerde willekeurige getallen hebben een kleine afwijking, niet groot genoeg om het algoritme waardeloos te maken, maar toch niet onbelangrijk. Dat is voor veel cryptografen al genoeg om het niet te gebruiken.

Op de Crypto 2007-conferentie presenteerden de onderzoekers Dan Shumow en Niels Ferguson nog iets dubieuzer: Dual_EC_DRBG-standaard definieert een aantal constanten om de elliptische kromme van het algoritme te beschrijven, maar nergens wordt uitgelegd waarvan die constanten komen. De onderzoekers toonden aan dat deze constanten in relatie staan met andere geheime getallen die als een loper kunnen werken. Wie deze geheime getallen weet, kan de uitvoer van de RNG bepalen na het verzamelen van slechts 32 bytes van zijn uitvoer.

nsa.pngDe onderzoekers kennen de loper niet, en de NSA misschien ook niet, maar er is wel wiskundig bewezen dat de NSA, die de constanten heeft geproduceerd, de geheime getallen kan kennen. De standaard definieert wel een manier om dit tegen te gaan door nieuwe constanten met een andere RNG te berekenen. Dat maakt het echter allemaal veel ingewikkelder en onbegrijpelijker waarom Dual_EC_DRBG zelfs maar in de standaard opgenomen is. Beveiligingsspecialist Bruce Schneier schreef daarom in november dat de NSA en NIST wel wat uit te leggen hebben.

Tot zover kan men nog zeggen: dat is bureaucratie, als niemand dit algoritme gebruikt is er nog geen man overboord. Maar wat vinden we in Microsoft Windows Vista Service Pack 1? Onder de titel “Security” van het overzicht van de verbeteringen staat (cursivering van mij):

Security improvements that will be in Windows Vista SP1 include:
[...]
* Strengthens the cryptography platform with a redesigned random number generator, which leverages the Trusted Platform Module (TPM), when present, for entropy and complies with the latest standards. The redesigned RNG uses the AES-based pseudo-random number generator (PRNG) from NIST Special Publication 800-90 by default. The Dual Elliptical Curve (Dual EC) PRNG from SP 800-90 is also available for customers who prefer to use it.

In de lijst van ondersteunde algoritmes heeft het gewraakte RNG-algoritme de identifier BCRYPT_RNG_DUAL_EC_ALGORITHM gekregen. Een gebruiker die in de community content van de pagina wijst op Schneiers analyse krijgt van een Microsoft-medewerker het volgende antwoord:

DUAL_EC_RNG is an implementation of a NIST standard specified in Special Publication 800-90(http://csrc.nist.gov/publications/nistpubs/800-90/SP800-90revised_March2007.pdf). It is never used by default in operating systems manufactured by Microsoft. Some theoretical concerns have been raised about it; however, to date, no one has shown a way to break the security of a cryptographic application that uses this PRNG. Specifically, no one has shown that a computer running Windows Server 2008 or Windows Vista and configured to use DUAL_EC_DRBG is easier to compromise in any way than one that uses the default settings. Nevertheless, we encourage each application programmer to do their own analysis before using this optional feature.

Dit is natuurlijk correct wat Microsoft zegt en op zich is het ook normaal dat Microsoft een standaard implementeert. Toch blijft het vreemd dat een standaard waarvan wiskundig bewezen is dat de NSA er een backdoor in kan hebben zitten als optie gegeven wordt aan software-ontwikkelaars. Bovendien staan Shumow en Ferguson die het probleem met de dubieuze getallen aankaartten op de loonlijst van Microsoft, wat het allemaal nog absurder maakt. Bruce Schneier raadt programmeurs aan om Dual_EC_DRBG nooit in hun computerprogramma’s te gebruiken. Als eindgebruiker heb je er echter niet gemakkelijk zicht op of één of ander programma op je computer deze mogelijk onveilige standaard gebruikt.

Een commentaar op Schneiers analyse is wel grappig:

To switch off this feature:
You will need a blank cd, cd burner, iso burning software and a some free space on your harddrive.
Goto www.ubuntu.com download feisty fawn.
Burn iso to CD
Insert CD
Reboot
Double click icon that installs software

This is all that is needed to ensure a safe OS

Dit raakt inderdaad een pijnpunt aan, dat mooi samengevat wordt door deze uitspraak van een anonieme auteur die ik ooit eens las:

Never trust an operating system you don’t have sources for.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*