Först lite bakgrund:
All webbtrafik mellan Flashback och dess användare är som vi vet krypterad med TLS eller SSL. Det är utmärkt, och innebär att någon som avlyssnar trafiken knappast har möjlighet att se vilken data som skickas, så länge de inte får tag på Flashbacks SSL-certifikat. Men om de lagrar all trafik, trots att den är krypterad, och sedan någon gång i framtiden lyckas tvinga eller lura sig till certifikatet så kan de utan problem dekryptera all gammal data de har sparat.
Man kan tycka att det låter rimligt och att det helt enkelt är något som man måste acceptera - om de har nyckeln så kan de naturligtvis dekryptera trafiken - men det finns faktiskt sätt att skydda sig mot det. Det kallas 'forward secrecy' och innebär att servern genererar nya, tillfälliga nycklar för varje ny SSL-uppkoppling och bara använder certifikatet för att garantera att de tillfälliga nycklarna är genererade av Flashback. De tillfälliga nycklarna används för att kryptera all trafik i den uppkopplingen och raderas sedan. Om någon har lagrat all trafik så räcker det alltså inte att de har fått tag på Flashbacks certifikat, de måste knäcka de tillfälliga nycklarna för varje uppkoppling de är intresserade av, vilket är extremt svårt.
De flesta webbläsare har stöd för SSL både med och utan forward secrecy, och åtminstone i Firefox så kan man gå in i de 'gömda' inställningarna (about:config) och slå av alla krypton som inte använder forward secrecy. På det sättet kan man vara någorlunda säker på att de SSL-uppkopplingar man gör inte kan dekrypteras i efterhand. Problemet är att en del webbservrar, bland annat Flashback, inte har stöd för krypton med forward secrecy. Jag testade det genom att gå till about:config och slå av alla krypton som inte börjar med security.ssl3.ecdhe_ eller security.ssl3.dhe_ (ecdhe står för elliptic curve Diffie-Hellman ephemeral, dhe står för Diffie-Hellman ephemeral - ephemeral betyder ungefär 'tillfällig') och ansluta till Flashback - jag får då ett felmeddelande som säger att servern inte har stöd för något av mina valda krypton. Om jag går tillbaka till about:config och slår på security.ssl3.rsa_aes_128_sha, ett krypto utan forward secrecy, så kan jag ansluta till Flashback som vanligt igen.
Det vore väldigt bra om Flashback hade stöd för åtminstone ett av de krypton som har forward secrecy. Nackdelen är att det drar lite mer datorkraft på servern eftersom den måste generera nya nycklar för varje uppkoppling. En kompromiss skulle kunna vara att bara använda ett sådant krypto om webbläsaren som ansluter inte har stöd för några andra, så att man som användare åtminstone kan välja själv ifall man tycker att man behöver forward secrecy.
TL;DR - Skulle Flashback kunna lägga till stöd för några DHE- eller ECDHE-krypton?
All webbtrafik mellan Flashback och dess användare är som vi vet krypterad med TLS eller SSL. Det är utmärkt, och innebär att någon som avlyssnar trafiken knappast har möjlighet att se vilken data som skickas, så länge de inte får tag på Flashbacks SSL-certifikat. Men om de lagrar all trafik, trots att den är krypterad, och sedan någon gång i framtiden lyckas tvinga eller lura sig till certifikatet så kan de utan problem dekryptera all gammal data de har sparat.
Man kan tycka att det låter rimligt och att det helt enkelt är något som man måste acceptera - om de har nyckeln så kan de naturligtvis dekryptera trafiken - men det finns faktiskt sätt att skydda sig mot det. Det kallas 'forward secrecy' och innebär att servern genererar nya, tillfälliga nycklar för varje ny SSL-uppkoppling och bara använder certifikatet för att garantera att de tillfälliga nycklarna är genererade av Flashback. De tillfälliga nycklarna används för att kryptera all trafik i den uppkopplingen och raderas sedan. Om någon har lagrat all trafik så räcker det alltså inte att de har fått tag på Flashbacks certifikat, de måste knäcka de tillfälliga nycklarna för varje uppkoppling de är intresserade av, vilket är extremt svårt.
De flesta webbläsare har stöd för SSL både med och utan forward secrecy, och åtminstone i Firefox så kan man gå in i de 'gömda' inställningarna (about:config) och slå av alla krypton som inte använder forward secrecy. På det sättet kan man vara någorlunda säker på att de SSL-uppkopplingar man gör inte kan dekrypteras i efterhand. Problemet är att en del webbservrar, bland annat Flashback, inte har stöd för krypton med forward secrecy. Jag testade det genom att gå till about:config och slå av alla krypton som inte börjar med security.ssl3.ecdhe_ eller security.ssl3.dhe_ (ecdhe står för elliptic curve Diffie-Hellman ephemeral, dhe står för Diffie-Hellman ephemeral - ephemeral betyder ungefär 'tillfällig') och ansluta till Flashback - jag får då ett felmeddelande som säger att servern inte har stöd för något av mina valda krypton. Om jag går tillbaka till about:config och slår på security.ssl3.rsa_aes_128_sha, ett krypto utan forward secrecy, så kan jag ansluta till Flashback som vanligt igen.
Det vore väldigt bra om Flashback hade stöd för åtminstone ett av de krypton som har forward secrecy. Nackdelen är att det drar lite mer datorkraft på servern eftersom den måste generera nya nycklar för varje uppkoppling. En kompromiss skulle kunna vara att bara använda ett sådant krypto om webbläsaren som ansluter inte har stöd för några andra, så att man som användare åtminstone kan välja själv ifall man tycker att man behöver forward secrecy.
TL;DR - Skulle Flashback kunna lägga till stöd för några DHE- eller ECDHE-krypton?