Als je SSL server verkeerd geconfigureerd of als er bekende kwetsbaarheden in zitten dan is je SSL server niet veilig.
Volg deze 10 stappen om de gemeenschappelijke beveiligingsfouten te voorkomen.
- Disable support voor SSL v2 – Deze versie van het SSL protocol is 15 jaar geleden al niet veilig bevonden, maar veel webservers ondersteunen het nog steeds.
Het uitzetten is eenvoudig en zal niet meer dan een paar minuten kosten. Als voorbeeld in Apache v2 hoef je alleen maar een kleine uitbreiding toe te voegen in de standaard configuratie:SSLProtocol allMoet worden
SSLProtocol all -SSLv2
- Zet het support voor zwakke versleutelingen uit – Bijna alle web servers ondersteunen sterke (128 bit) of zeer sterke (256 bit) encryptie versleutelingen, maar ze ondersteunen ook de zwakke encrypties, waardoor ze alsnog vatbaar zijn voor exploited door hackers om binnen te komen in het beveiligde netwerk. Er is geen reden om zwakker versleutelingen te ondersteunen en ze kunnen eenvoudig uitgeschakeld worden binnen een paar minuten door de configuratie te veranderen in bijvoorbeeld:SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW
- Wees er zeker van dat de server geen onveilige heronderhandelingen doet – The SSL en TLS Authentication Gap vulnerability zorgt ervoor dat de man-in-the-middle gebruik kan maken van de heronderhandelingen om willekeurige inhoud toe tevoegen in de versleutelde data stroom. De meeste software leveranciers hebben intussen al wel patches gemaakt om dit misbruikt te voorkomen, dus als je dat nog niet gedaan hebt zorg dan voor een verhoogde prioriteit om beveiligde heronderhandelingen te implementeren.
- Check dat alle stappen van de authenticatie over SSL gaan – Het beveiligen van de gebruikers credentials is een must en dat betekent het verzenden van de gebruikers login gegevens moet over een SSL verbinding gaan zo ook het aanmelden van de gebruikers moet over SSL gaan. Als dit wordt vergeten wordt het voor hackers makkelijk gemaakt om het login form te veranderen en er een eigen versie van te maken waardoor gebruikers credentials doorgestuurd kunnen worden naar de hackers.
- Meng nooit SSL beveiligde verbindingen met stukken niet beveiligde code, zoals stukjes javascript – gemengde inhoud kan ervoor zorgen dat je site gecompromitteerd wordt omdat er een klein stukje code, zoals javascript, gebruikt kan worden om kwaadaardige code toe te voegen wat tot een man-in-the-middle aanval kan leiden.
- Gebruik HTTP Strict Transport Security (HSTS) om je domeinen te beveiligen (inclusief sub-domains) Wanneer je website beveiligd is met HSTS dan word nadat je je eerste bezoek alle paginas en linkje automatisch omgezet naar https en bezoekers kunnen de website niet meer bezoeken zonder een geverifieerd en geldig (niet zelf gesigneerd) certificaat. Dat betekent dat hackers niet meer in staat zijn om je bezoekers om te leiden naar een phishing site waar zij controle over hebben op een niet beveiligde verbinding (SSL stripping ) of dat ze niet beveiligde sessies/ cookies kunnen stelen (Firesheep ).Strict-Transport-Security headers mogen alleen via een HTTPS respons verstuurd worden en de configuratie kan zo een voudig zijn als een paar regels in Apache:Header set Strict-Transport-Security “max-age=XXXXXX”
Header append Strict-Transport-Security includeSubDomains - Beveilig cookies door gebruik te maken van de HttpOnly en Secure flaggen – Cookies die worden gebruikt voor authenticatie van de bezoeker tijdens het bezoek op de SSL website kunnen worden misbruikt voor de sessies SSL beveiliging. De HttpOnly flag zorgt ervoor dat de cookies die je uitgeeft onzichtbaar zijn voor de client site scripts (zoals javascript), zodat deze niet gestolen kunnen worden via cross-site scripting exploits, de Secure flag betekent dat de cookie alleen verzonden kan worden over een versleutelde SSL verbinding, waardoor deze niet onderschept kan worden.Het configureren van je webserver om cookies met HttpOnly en Secure attributes te beschermen tegen beide soorten aanvallen kan eenvoudig gedaan worden door het toevoegen van ; secure ; HttpOnly in je Set Cookie Http response header:Set-Cookie: =; =
; expires=; domain=
; secure; HttpOnly - Maak gebruik van de Extended Validation (EV) certificaten – Hoewel dit niet meer veiligheid biet op de beveiliging van je website geeft de EV certificaten een duidelijk visuele bevestiging naar de bezoeker toe in de adres balk van de meeste browsers.Een Extended Validation (EV) certificaat geeft duidelijk aan dat er een verbinding is naar de juiste website en dat je niet omgeleid bent naar een phishing site. EV certificaten worden alleen maar afgegeven nadat een certificaten authoriteit rigoreuze stappen heeft ondernomen om je identiteit vast te stellen en dat je ook de eigenaar bent en controle hebt over je domeinnaam die je ingedient hebt.
- Zorg ervoor dat het certificaat ook subdomeinen bevat – Om problemen te voorkomen van bezoekers die naar https://rsquare.org ipv https://www.rsquare.org toe gaan.Je kunt gebruik maken van een multi-domain SSL certificaat waarin meestal tot 3 alternatieve namen Subject Alternative Names (SANs) toegevoegd kan worden.
- Maak regelmatig gebruik van een online SSL Server test – Je kunt hiermee je algehele SSL security check mee doen, inclusief de SSL server configuratie, certificate chain en protocol- en cipher- suite support. Ook kan er gechecked worden op bekende beveiligings lekken zoals de heronderhandelings renegotiation kwetsbaarheid.Maak gebruik van de gratis SSL Labs SSL Server Test https://www.testmijnu.nl/