Als reactie op de onthulling dat de NSA op allerlei manieren achter de inhoud van versleutelde berichten probeert te komen, geeft Bruce Schneier een aantal tips om veilig te blijven (zie vooral ook de discussie op zijn blog. Zijn advies om symmetrische cryptografie te gebruiken verbaasde mij echter.
De belangrijkste conclusies zijn de volgende. Zowel Schneier als Snowden zeggen dat de NSA sterke cryptografie niet direct kunnen breken. De NSA kan echter wel op ieder mogelijk device inbreken en daarmee dus bij de gegevens komen voordat ze versleuteld worden. Implementaties van cryptografie in daadwerkelijk gebruikte systemen kunnen echter wel degelijk zwak zijn of opzettelijk zwak gemaakt worden. Bijvoorbeeld door achterdeurtjes in te bouwen in telecom apparatuur. De NSA steekt ook hier veel moeite in. Dit is overigens indirect bewijs is voor de stelling dat ze de cryptografie zelf niet direct kunnen kraken.
Er zijn legio mogelijkheden om dergelijke achterdeurtjes te plaatsen. Vooral als de encryptie plaatsvindt in hardware (waarvan de werking niet te controleren is omdat het een 'black box' is). Bijvoorbeeld door de cryptografische sleutels die gebruikt worden minder willekeurig te laten zijn zodat ze door de NSA achteraf te raden zijn. Of door informatie over de sleutel te lekken in de berichtenstroom die door de hardware gegenereerd wordt. Een andere mogelijkheid is om een veilig lijkend systeem te ontwerpen dat echter alleen voor een kleine verzameling sleutels echt veilig is.
Samengevat: vooral de implementatie van cryptografie geeft problemen.
Daarom verbaasde het mij dat Schneier het volgende advies geeft.
Prefer symmetric cryptography over public-key cryptography. Prefer conventional discrete-log-based systems over elliptic-curve systems; the latter have constants that the NSA influences when they can.
Symmetrische cryptografie beter dan public key cryptografie? Dat is precies tegenovergesteld van wat je zou verwachten.
By symmetrische cryptografie gebruiken de zender en ontvanger dezelfde sleutel. Dat betekent dat het lastig is om er voor te zorgen dat je met iedereen die jou een bericht wil sturen zo'n sleutel deelt, terwijl niemand anders die sleutel kent. Bij symmetrische cryptosystemen (DES en AES) worden het bericht en de sleutel op onontwarbare manier vermengd. De manier waarop is ondoorgrondelijk, en er is geen wiskundig bewijs dat die methode echt veilig is.
Bij public key cryptografie genereert de ontvanger een sleutelpaar: een privé sleutel die hij geheim houdt, en een bijbehorende publieke sleutel die iedereen mag weten. De publieke sleutel wordt gebruikt om het bericht te versleutelen. De privé sleutel is nodig om het bericht te ontcijferen. Dit lost het sleutel distributie probleem van symmetrische cryptografie dus (deels) op. Public key cryptografie is gebaseerd op de (door wiskundigen breed gedragen) aanname dat bepaalde wiskundige problemen moeilijk zijn op te lossen. Zo moeilijk dat een supersnelle computer binnen zeg 100 jaar zo'n probleem niet kan oplossen. Een voorbeeld van zo'n probleem is het ontbinden van een getal in priem factoren. Hierop is het RSA public key cryptosysteem gebaseerd.
Rondvraag leverde de volgende argumenten op voor het (gezien bovenstaande) verassende advies om symmetrische cryptografie te verkiezen boven public key cryptografie.
Ik begrijp het wantrouwen tegen ECC wel. Echter, de zogenaamde discrete log systemen en het op priemfactorisatie gebaseerde RSA hebben een probleem. Er worden steeds snellere algoritmen gevonden die de onderliggende wiskundige problemen kunnen oplossen. Vandaar dat voor RSA een echt veilige sleutel op dit moment al 2048 bits lang moet zijn. Dit is al behoorlijk onwerkbaar groot, en de vraag is wanneer de sleutellengte nog verder verhoogd moet worden.
Met andere woorden: op de vraag of cryptografie nog veilig is, is het ontluisterende antwoord: ja, waarschijnlijk wel, maar we weten het niet zeker, en onze onzekerheid is toch iets toegenomen na de onthullingen van de afgelopen dagen. Helaas bestaat er geen cryptosysteem waarvan we kunnen bewijzen dat deze echt absoluut veilig is.
Het lijkt erop dat de NSA inderdaad een verzwakking in IPSEC heeft helpen introduceren. https://freedom-to-tinker.com/blog/felten/on-security-backdoors/
Goede discussie ook over twee soorten backdoors: een voor alleen de NSA, de andere voor iedereen. Felten benadrukt dat beide opties een verschillende politiek debat behoeven.
` As long as the NSA has a license to undermine security standards, we’ll have to be suspicious of any standard in which they participate. ’