17 november 2007
Encryptie ligt gevoelig. Het is noodzakelijk voor beveiliging, maar kan tegelijkertijd een groot probleem vormen voor opsporingsdoeleinden. Het Amerikaanse National Security Agency is voorstander van een van de vier technieken opgenomen in de nieuwe standaard voor 'engines' voor het genereren van willekeurige nummers, de basis is voor encryptie. Deze nieuwe standaard van het NIST (National Institute of Standards and Technology) beschrijft vier technieken, waarvan er een de voorkeur heeft van het NSA. Die techniek, Dual_EC_DRBG genoemd, gaat uit van 'elliptische krommen', maar blijkt een kritische zwakke plek te bevatten. Omdat de willekeurige nummers in encryptiesleutels worden gebruikt, worden die dus kraakbaar. De zwakke plek is in augustus uit de doeken gedaan op de Crypto 2007 -conferentie. Beveiligingsonderzoekers Dan Shumow en Niels Ferguson hebben in hun presentatie daar getoond dat er constante waarden staan in de gebruikte elliptische kromme. Die waarden hebben een relatie met een reeks geheime nummers die een universele sleutel vormen. De verdenking bestaat dat er een achterdeur (backdoor) is gemaakt in de encryptietechniek, waardoor de overheid altijd de mogelijkheid heeft toegang te verwerven tot versleutelde gegevens.
Het genereren van willekeurige nummers is ingewikkeld en een geliefd onderwerp van onderzoek. Onderzoekers hebben heel wat problemen en aanvallen geidentificeerd in de loop der jaren. Leo Dorrendorf, Zvi Gutterman en Benny Pinkas ontdekten een lek in de nummergenerator voor Windows 2000. Gutterman, Pinkas en Tzachy Reinman vonden eveneens kwetsbaarheden in de Linux-equivalent. In 1996 werd een vroege versie van SSL gekraakt vanwege een lek in de nummergenerator. De release van de officiele standaard voor deze nummergeneratoren zal ongetwijfeld gevolgd worden door de ontwikkeling van hardware en software-mogelijkheden voor het exploiteren van deze standaard. De NIST Special Publication 800-90, een 130 pagina's tellend document, telt vier verschillende goedgekeurde technieken, oftwel 'Deterministic Random Bit Generators (DRBG's). Al deze vier technieken zijn gebaseerd op bestaande cryptografische technieken. Een is gebaseerd op hash-functies, een op HMAC, een op blokcijfers en een op elliptische krommen. Het is uiteraard slim en verstandig om vertrouwde cryptografische technieken te gebruiken. Maar een van deze generatoren (gebaseerd op elliptische krommen) is niet ontwikkeld zoals de andere drie. Dual_EC-DRBG is onvoorstelbaar veel trager dan dan de drie andere technieken. Het is in de standaard opgenomen omdat het voorgesteld is door de NSA, die deze techniek al jaren geleden heeft voorgesteld aan het Amerikaanse standaardisatieinstituut. De NSA is altijd zeer nauw betrokken geweest bij de ontwikkeling van cryptografische standaarden. De dienst is immers een expert in het maken en breken van geheime codes. De deelname van de NSA aan de standaardisatiecommissie is wat dat betreft dan ook helemaal niet vreemd. Maar er rijzen wel vragen als naar de bijdrage van de NSA wordt gekeken. Problemen met Dual_EC_DRBG werden voor het eerst beschreven begin 2006. De onderliggende wiskunde is complex, maar de algehele conclusie is dat de willekeurige nummers die worden gegenereerd een nogal smalle basis hebben. Geen probleem dat het algoritme onbruikbaar maakt (de standaard geeft zelfs in een bijlage een optionele 'work-around'), maar wel reden geeft voor zorg. Cryptografen houden er niet van te werken met een algoritme wat problematisch is. Het werk van Shumow en Ferguson toont echter aan dat het niet zomaar een kwetsbaarheid is, maar dat het er sterk op lijkt dat het een bewuste 'backdoor' is. Bruce Schneier beschrijft het als volgt: 'There are a bunch of constants — fixed numbers — in the standard used to define the algorithm's elliptic curve. These constants are listed in Appendix A of the NIST publication, but nowhere is it explained where they came from. What Shumow and Ferguson showed is that these numbers have a relationship with a second, secret set of numbers that can act as a kind of skeleton key. If you know the secret numbers, you can predict the output of the random-number generator after collecting just 32 bytes of its output. To put that in real terms, you only need to monitor one TLS internet encryption connection in order to crack the security of that protocol. If you know the secret numbers, you can completely break any instantiation of Dual_EC_DRBG'. Het is niet bekend wat de geheime nummers zijn, maar gezien de wijze waarop het algoritme werkt lijkt het waarschijnlijk dat degene die de vaste nummers bepaald heeft dat wel weet. Er is geen enkele manier om vast te stellen of de NSA de beschikking heeft over die geheime nummers. Maar zowel NIST als NSA kunnen ook niet bewijzen dat die codes er niet zijn. Het bestaan van deze 'backdoor' maakt de techniek uiterst gevaarlijk. Het is verwonderlijk dat het NSA zo nadrukkelijk op opname van deze techniek in de standaard heeft aangedrongen. Het heeft nauwelijks zin als een valkuil: het is publiek en erg opvallend. Het is zo traag dat geen enkele applicatie er gebruik van zal willen maken. Wat wel duidelijk is, is dat geen enkele hard- en software-leverancier die SP 800-90 moet gebruiken, gebruik moet maken van deze techniek. En uiteraard: wij zijn erg benoeiwd naar de uitleg van NIST en NSA. Als het geen zin heeft als valkuil: waarom toch opgenomen ? Is het huiswerk door het NSA niet goed gedaan ?