Hoe werkt SSL: Cipher suites


Zonder dat we het doorhebben, hebben we allemaal al wel eens gewerkt met een Cipher. Kinderen weten er alles van; briefjes schrijven in code, waarbij letters vervangen worden door tekens of cijfers, of zelfs hele woorden vervangen werden door andere woorden. Als we het kort door de bocht stellen, zijn Cipher suites niets anders dan de volwassen versies van onze geheimtaal van vroeger.

In het artikel van vorige week werd al duidelijk dat SSL configureren verder gaat dan alleen een certificaat installeren. Vooral de serverconfiguraties kunnen in uw voordeel werken. Een belangrijk onderdeel van uw serverconfiguratie zijn de Cipher suites. Een Cipher suite is een vastgelegde combinatie van verschillende algoritmes die worden gebruikt voor het versleutelde verkeer tussen server en gebruiker.

Hierin zijn de volgende onderdelen opgenomen die samen de Cipher suites definiëren:

  • Het key exchange algoritme, dat vastlegt of en hoe authenticatie plaatsvindt tijdens de handshake
  • Het bulk encryption algoritme, dat bepaalt hoe het verkeer wordt versleuteld
  • Het message authentication code algoritme, ook wel bekend als MAC, dat bepaalt waarmee elk blok verkeer wordt gehasht tot een cryptografisch versleuteld bericht
  • De PRF of pseudorandom function, een zogenaamde salt-functie die elke keer wanneer de MAC een blok verkeer wil versleutelen, dient als de cryptografische geheime sleutel waarmee het blok ook weer gelezen kan worden.

cipher-suite-breakdown-768x307

Bovenstaand plaatje geeft mooi weer hoe de Cipher suite is opgebouwd. Hij geeft eerst aan welke PRF gebruikt wordt, gevolgd door het gekozen key exchange algoritme, het bulk encryption algoritme, en het message authentication code algoritme. Zo kan er voor de server geen twijfel bestaan over hoe de Cipher gebruikt moet worden.

Hello Server

Cipher suites zijn dus bepalend voor hoe het verkeer tussen server en gebruiker wordt versleuteld, en hoe dat versleutelde verkeer wordt verwerkt. Hiervoor wordt bij elke afzonderlijke verbinding tussen server en gebruiker, dus bij elke geladen pagina en elk aangeroepen script, een zogenaamde handshake uitgevoerd. Tijdens deze handshake zoekt de gebruiker contact met de server door middel van een ClientHello en een ServerHello, en wisselen zij uit welke Cipher suites ze bekend mee zijn. De server bepaalt dan aan de hand van de lijst met overeenkomende Cipher suites welke het beste bruikbaar is, en gebruikt de protocollen zoals die in de Cipher suite zijn opgenomen voor de verdere versleuteling van het verkeer.

De opbouw van de Cipher suite is voor het bepalen van de meest veilige optie voor de server van groot belang. Welke Ciphers het meest veilig zijn is zeer afhankelijk van de persoonlijke voorkeur van de eigenaar van de server, maar er wordt een voorkeur gegeven aan Cipher suites die gebruik maken van ECDHE, een protocol dat gebruik maakt van het zeer lastig te kraken ECC algoritme.

Daarnaast wordt gekeken naar welk cryptografisch protocol gebruikt wordt: het meest gebruikte protocol is tegenwoordig TLS 1.2, al wordt 1.0 ook nog steeds veel gebruikt. De voorgangers, SSL 2.0 en 3.0, worden in het algemeen gezien als onveilig: hun implementatie had zwakke punten waardoor er met een Man in the Middle-attack met het verkeer geknoeid kon worden. Zo was de handshake in SSL 2.0 niet beveiligd, waardoor een hacker ervoor kon zorgen dat er een zwakkere Cipher suite gekozen werd dan normaal. SSL 3.0 werd in 2014 gemarkeerd als pertinent onveiligtoen bekend werd dat er een ontwerpfout in het protocol zat waardoor hackers geheime informatie zoals wachtwoorden en cookies konden opvangen en achterhalen.

cipher-suites-768x618

Een lijst met Cipher suites die naar voren komt uit een scan op ssllabs.com. Klik om te vergroten.

Zelf aan de slag

Omdat Cipher suites gebruikt worden voor het beveiligen van data lopen ze vanaf hun eerste implementatie gevaar om gekraakt te worden. Daarom is het voor de veiligheid van een server belangrijk dat er regelmatig gecontroleerd wordt of deze nog wel als veilig worden aangemerkt. Een webserver maakt gebruik van webserver software, zoals Apache of nginx, die op hun beurt weer gebruik maken van zogenaamde software libraries zoals OpenSSL. Hierin staan alle bekende Cipher suites vermeld. Het regelmatig bijwerken en updaten van OpenSSL is daarom zeer belangrijk, omdat een Cipher suite opgeslagen moet zijn in de library alvorens deze aangeroepen en gebruikt kan worden door de serversoftware. Beheerders van een server kunnen daarnaast hun serversoftware zo instellen, dat er alleen Ciphers worden gebruikt die zij op een whitelist hebben gezet. Zo behoudt de beheerder zelf de controle over de gebruikte Ciphers. Ook is het mogelijk om aan te geven dat bepaalde protocollen niet mogen worden gebruikt; dit wordt voornamelijk gebruikt om de onveilige protocollen SSLv2 en SSLv3 uit te sluiten.

De meest recente veilige Cipherlists en de code die gebruikt wordt voor uw webserver softwarepakket zijn te vinden op de website cipherli.st. Ook kunt u met regelmatige controle van uw website via de scanner van SSL Labs gemakkelijk bekijken welke Ciphers er gebruikt worden op uw server, en of er Ciphers tussen staan die onveilig zijn verklaard. Het aanpassen van de code van uw webserver softwarepakket is echter niet voor zomaar iedereen weggelegd: als u een foutje maakt in de configuratie zou u zomaar uw website onbruikbaar kunnen maken.

Het aanmaken van een whitelist van Cipher suites op uw webserver heeft als groot voordeel dat u volledig de controle heeft over welke Ciphers gebruikt worden bij versleuteld verkeer tussen uw webserver en de gebruikers. Maar het betekent wel dat u verantwoordelijk bent voor deze whitelist en hem altijd up to date moet houden. Ook betekent het dat u goed moet opletten welke Cipher suites u wel en welke u niet toevoegt, en dat u rekening moet houden met backwards compatability: oudere browsers die niet meer geüpdatet worden door de fabrikant kunnen alleen omgaan met Cipher suites die bekend waren toen ze zelf nog actueel waren. Als u alleen de nieuwste Cipher suites toelaat, is er een reële kans dat u gebruikers met oudere browsersoftware of zelfs OS uitsluit.

Hoewel het niet voor iedereen mogelijk is om de configuratie van hun serversoftware zelf aan te passen, is het wel goed om te weten wat Cipher suites zijn, hoe ze werken, en hoe ze van invloed zijn op de veiligheid van een server. Daarnaast zijn Cipher suites nóg een belangrijke reden om ervoor te zorgen dat uw serversoftware en libraries altijd up-to-date blijven, zodat de beste Cipher suites altijd op uw server beschikbaar zijn.

Volgende week gaan we het hebben over perfect forward secrecy en HSTS: twee mechanismen die helpen met het beschermen tegen Man in the Middle attacks.

Geschreven door Stefanie Weber (Networking4all)

Dit ingezonden artikel is geschreven door Stefanie Weber van Networking4all.

Lees ook de onderstaande artikelen van Networking4all

Stuur ook uw blog, achtergrond artikel of andere bijdrage in!

Indien u zelf een interessante bijdrage, zoals een blog, how-to of achtergrond heeft, dan plaatsen wij die graag en dat kost u niks. Neem contact op met de ISPam.nl redactie via [email protected] of kijk op deze pagina voor meer informatie over het leveren van een bijdrage aan ISPam.nl.

Nog geen reacties

Laatste reacties

Bedankt voor het succes van ISPam.nl
Koen Stegeman, Editor-in-Chief & founder Hostingjournalist.com: Jammer Arnout, maar je hebt een mooie bijdrage aan de hosting industrie geleverd, en dat jaren lang....

Bedankt voor het succes van ISPam.nl
Dillard Blom: Jammer dat een 'instituut' verdwijnt, en daarmee een bron van informatie over actuele zaken (en opin...

Bedankt voor het succes van ISPam.nl
L.: Uit automatisme kijk ik toch nog steeds elke dag naar ispam.nl, toch de hoop dat er nog een berichtj...

Bedankt voor het succes van ISPam.nl
Toni Donkers: Arnout bedankt! ik ga het missen dat is een feit!

Bedankt voor het succes van ISPam.nl
Marcel Stegeman: Ik zie het nu pas. Inderdaad jammer maar ik kijk nu al uit naar het volgende project.