Merk op dat het hier voornamelijk gaat om de waarde van data in de toekomst. De enige manier om een bericht voor een aantal jaar te bewaren alvorens het vrij te geven is door het te versleutelen met een sleutelsterkte die verwacht wordt dat tegen die tijd kraakbaar is. Zo heeft Ron Rivest, de bedenker van onder andere MD5 en RC4, een encrypted stuk tekst gepubliceerd dat tegen 2034 gekraakt zou moeten kunnen worden (lcs35).
Om terug te komen op het onderwerp, dat is dus wat Google aan het doen is: Zelfs als er een MITM-aanval plaatsvindt die enkel data opslaat zal 2048-bits langer veilig blijven dan 1024-bits encrypted data, en hopelijk zo lang dat de data uiteindelijk waardeloos is.
De reden waarom we met z'n allen nog niet op 4096-bit keys of hoger zitten (hoger heeft ook veel minder ondersteuning) is omdat het ook best wel wat trager is en meer rekenkracht kost. Vooral met de opkomst van mobiele apparaten en laptops die de hele dag mee moeten gaan is dit best wel een issue.
Hoelang 1024-bits of 2048-bits veilig blijven alvorens het, gegeven voldoende geld en enkele maanden tijd, gekraakt kan worden weet ik niet. Ik kan een vage gok doen gegeven de wet van Moore, maar ik kan het niet preciezer berekenen dan dat.
Ik vraag me trouwens ook af in hoeverre het nuttig is en in hoeverre Google dit doet voor de show. Ze zijn wel een grote speler, maar vooralsnog is 1024-bits best wel veilig:
http://security.stackexchange.com/a/4528/10863Merk ook op dat data niet encrypted wordt met deze 1024-bits sleutel, enkel het certificaat wordt ermee gesigneerd. De daadwerkelijke encryptie verloopt via een symmetrisch protocol zoals AES (of voorheen RC4) omdat dit vele malen sneller is dan RSA. De reden dat RSA wordt gebruikt om het certificaat te signeren is omdat asymmetrische encryptie simpelweg nodig is voor veilige communicatie op te zetten over een onveilig kanaal. Zelfs als je dus de data op zou slaan van een https sessie, is de kans nog altijd klein dat je jaren later daadwerkelijk data kan achterhalen, gegeven dat voor het symmetrische protocol een lang genoege sleutel gebruikt is. Misschien dat Google ook nog iets kan zeggen over de configuratie daarvan... maar dat zal wel te geek zijn en minderheden zijn voor hun geen prioriteit.
Het is grotendeels afhankelijk van de server's instellingen met wat voor key de daadwerkelijke communicatie plaatsvindt. Daarom is het ook belangrijk dat je je webserver goed configureert wanneer je https aanzet. De server biedt meerdere protocollen en keylengtes aan, en de client pakt de sterkste van de set die hij ook ondersteunt. Het probleem is echter dat in deze initialisatiefase de communicatie nog volledig MITM-baar is. Een aanvaller kan zonder al te veel moeite de client vertellen dat de server alleen DES+MD4 ondersteunt, waarna een client geforceerd is dat te gebruiken als hij verder wil communiceren. Als de client dat probeert, en de server weigert vervolgens de connectie door zijn configuratie, kan de aanvaller tenminste de data niet aftappen. Dit is dus de zwakheid die nog altijd in communicatie zit: beschikbaarheid valt uit te schakelen. (Vertrouwelijkheid, integriteit en beschikbaarheid zijn de drie basiselementen van informatieveiligheid. Vertrouwelijkheid wordt gewaarborgd door de encryptie en integriteit door het MAC-systeem dat SSL/TLS gebruikt. En dan heb ik het over een Message Authentication Code, niet een Macintosh.)
Idem dito voor de client overigens, maar nagenoeg niemand verandert deze instellingen. De client kan ook de verbinding weigeren bij configuraties die te zwak zijn of bekend zijn een lek te hebben (TLS compressie maakt bijvoorbeeld de CRIME-aanval mogelijk door de manier waarop lz77 werkt in combinatie met een chosen-plaintext aanval).
Misschien nog eens een artikeltje over schrijven, ik merk dat er veel uitvloeit als ik eenmaal begin over SSL. Kan ook iets te maken hebben met dat ik een keer in een tijdschrift heb gestaan over dit onderwerp :P