Perfect Forward Secrecy

Perfect Forward Secrecy is een protocol dat voorkomt dat met het verkrijgen van de private key, informatie die in eerste instantie versleuteld is verzonden alsnog ontcijferd kan worden. Dit omdat er gebruik wordt gemaakt van unieke session keys.

Cipher suites

Met SSL wordt een veilige verbinding opgezet tussen een browser en een server. Tijdens het opzetten van deze verbinding stuurt de browser waar verbinding mee gemaakt wordt een lijst van encryptiemethoden die de browser ondersteunt, op volgorde van voorkeur. De server reageert daarop met een verificatie certificaat en kiest uit deze lijst de hoogst mogelijke encryptie die hij ook ondersteunt. Deze encryptie keuzes worden 'cipher suites' genoemd.

Session key

De keuze voor een encryptiemethode is van belang omdat de soort encryptie die gebruikt wordt bepalend is voor het aanmaken van de session key. Bij het aangaan van een verbinding met een browser, gebruikt de server zijn private key om een session key aan te maken. Deze session key is alleen bekend bij de browser en de server en zorgt ervoor dat de informatie die verzonden wordt versleuteld is, en dus niet te lezen is door afluisteraars. De meeste gebruikte vorm van encryptie voor sleuteluitwisseling is op dit moment gebaseerd op RSA, waarbij de private key van de server wordt gebruikt om de session keys te beschermen. Deze methode heeft echter een nadeel; wanneer de private key van de server achterhaald wordt, kunnen de session keys achterhaald worden en het versleutelde gesprek alsnog ontcijferd worden. Als de communicatie tussen de server en de browser over een periode afgeluisterd is, is de in eerste instantie onleesbare informatie die verstuurd is dan toch nog leesbaar te maken.

Ondersteuning

Perfect Forward Secrecy voorkomt dat met het verkrijgen van de private key, informatie die in eerste instantie versleuteld is verzonden alsnog ontcijferd kan worden. Wanneer dit protocol gebruikt wordt, wordt er een tijdelijke sleutel aangemaakt voor elke verbinding. Als beide partijen de session key vernietigen na afloop van de sessie, is deze later niet meer met de private key te achterhalen. Dit zou betekenen dat iemand die de server zou hacken iedere sessie apart zou moeten ontcijferen. SSL ondersteunt twee soorten algoritmes waarmee Perfect Forward Secrecy gebruikt kan worden; het standaard Diffie-Hellman algoritme en de speciaal voor het gebruik van Elliptic Curve cryptografie hiervoor aangepaste versie; ECDHE.

De reden dat Perfect Forward Secrecy nog niet breed ondersteund wordt is omdat hiervoor Diffie-Hellman gebruikt dient te worden en dit merkbaar langzamer werkt dan andere soorten encryptie. Om deze reden schakelen website ontwikkelaars de Diffie-Hellman suites vaak uit om de performance van de website te verbeteren. Daarbij worden de hiervoor benodigde suites ook nog niet door alle browsers ondersteund. ECDHE algoritmes zijn minder langzaam dan DHE maar wel weer relatief nieuw waardoor deze door veel browsers nog niet ondersteund worden.

Perfect Forward Secrecy inschakelen

De wijze van inschakelen verschilt per type webserver:

point up