Nederlandse banken nonchalant met beveiliging webverkeer

Na enkele uurtjes puzzelen had ik een website zo ver dat hij A+ scoorde in de Qualys SSL test. Deze test beoordeelt hoe veilig het HTTPS-verkeer van en naar een beveiligde website is. Uit nieuwsgierigheid liet ik ook de websites checken van vier banken waarbij ik rekeningen heb. Tot mijn verbazing scoorden alle banken lager dan mijn website. Dat is niet zoals het zou moeten zijn; juist als het gaat om financiële transacties mag je verwachten dat de versleuteling optimaal is. Daarom hier een overzicht van de verbeterpunten voor de Nederlandse banken.

Bank Domein Geheel HTTPS SSLv2 TLS Ciphers HSTS Forward Secrecy SSL test Onveilige cookies Script-leesbare cookies Clickjacking Opmerking
ABN AMRO www.abnamro.nl ja nee 1.2 OK nee nee A-|100|90|80|90 ja ja nee
ASN www.asnbank.nl nee nee 1.0 RC4 nee nee B|100|70|90|80 nee nee ja
Friesland bank internetbankieren.frieslandbank.nl nee nee 1.0 RC4 nee nee B|100|70|90|90 ja nee ja (1)
ING mijn.ing.nl nee nee 1.2 OK nee nee A-|100|90|90|90 ja ja ja
Knab www.knab.nl ja nee 1.2 OK nee nee A-|100|90|90|90 nee nee nee
Van Lanschot www.vanlanschot.com nee nee 1.0 RC4 nee nee B|100|70|90|80 nee nee ja
Rabo bankieren.rabobank.nl nee nee 1.2 OK nee nee A-|100|90|90|90 ja ja ja
Regiobank www.regiobank.nl nee nee 1.0 RC4 nee nee B|100|70|90|80 nee ja ja
SNS www.snsbank.nl nee nee 1.0 RC4 nee nee B|100|70|90|80 nee ja ja
Triodos bankieren.triodos.nl nee nee 1.2 RC4 nee nee A-|100|90|90|80 ja ja nee

(1): Secure Renegotiation: Not supported

Verklaring van de tabel

Domein
Het geteste domein. Ik heb het domein gekozen waarop het inlogscherm voor telebankieren zich bevond. Soms is dat hetzelfde als de rest van de website, maar soms ook niet.
Geheel HTTPS
Iedere bank heeft gelukkig het gebruik van het telebankiergedeelte versleuteld. Maar hoe zit dat met het publieke deel van de website? Als dat niet versleuteld is, loopt u twee risico’s.
Ten eerste kunnen partijen die het bezoekersverkeer afluisteren, zien in welke bankzaken u geïnteresseerd bent. Zou u willen dat anderen kunnen zien dat u bijvoorbeeld veel geld wilt beleggen?
Ten tweede is er het risico van een MitM (man in the middle) attack, bij bezoekers die via de publieke website doorklikken naar de bankierwebsite. Een partij die een router tussen u en de bank gehackt heeft, zou u vlak voor het moment van inloggen kunnen doorsturen naar een nepwebsite die als twee druppels water op de echte bankierwebsite lijkt. Zo kunnen ze uw password bemachtigen en betaalopdrachten manipuleren. Als de gehele website van een bank versleuteld is, is het risico op een MitM aanval aanzienlijk kleiner, zeker in combinatie met HSTS (zie onder).
SSLv2
Dit protocol is verouderd en onveilig. Gelukkig ben ik het bij deze inventarisatie niet tegengekomen. Dat wil echter niet zeggen dat het niet gebruikt wordt. Om een voorbeeld te noemen: paypal.com scoort een redelijke A- in de Qualys SSL test, maar om Paypal IPN (instant payment notification) berichten te ontvangen, moet je of HTTP gebruiken of het verouderde en onveilige SSLv2. Het is niet mogelijk om slechts voor een enkele URL SSLv2 in te schakelen, omdat het SSL/TLS protocol wordt gekozen voordat de server de gevraagde bestandsnaam kent. Voor maximale veiligheid zou een webwinkel-webmaster een apart domein alleen voor Paypal IPN-berichten moeten opzetten waarop SSLv2 is ingeschakeld. In de praktijk zullen veel webmasters van webwinkels HTTP gebruiken. Paypal zegt dat er een software upgrade wordt gepland om dit te verhelpen. Maar het roept de vraag op welke specifieke diensten van banken nog meer niet goed beveiligd zijn.
TLS
Het nieuwste en veiligste protocol voor versleuteling van webverkeer is TLS versie 1.2. Helaas zijn er nog veel banken die dit niet ondersteunen. Het kost weinig moeite om 1.2 te ondersteunen. Het updaten van software (openssl, apache) op de webserver is vaak al genoeg. Soms moet een enkele regel in de configuratie van de webserver worden aangepast.
Ciphers
Er zijn vele versleutelingsalgoritmen beschikbaar. Regelmatig veranderen de inzichten over welke veilig en minder veilig zijn. Banken die het algoritme RC4 prominent naar voren schuiven, hebben vorig jaar niet goed opgelet. RC4 is niet zo veilig als ooit gedacht en dient vermeden te worden.
HSTS
HTTP Strict Transport Security is een techniek waarbij de webserver aan browsers meldt, dat de website bij een volgend bezoek alleen over HTTPS benaderd dient te worden en niet (eerst) via HTTP. Als een browser één keer de website bezocht heeft, onthoudt hij dat en zal hij de volgende keer de bezoeker meteen naar de HTTPS website sturen. De webserver hoeft de browser niet door te sturen. Een onveilige stap (namelijk een eerste contact via HTTP) wordt hiermee overgeslagen. De kans op een MitM (man in the middle) aanval wordt hiermee verminderd. Een enkele regel in de configuratie van de webserver volstaat om dit in te schakelen.
Forward Secrecy
Het bezoek aan een website wordt verleuteld met een digitale sleutel. Een partij die het berichtenverkeer analyseert, zou kunnen proberen de gebruikte sleutel te reconstrueren. Er zijn partijen zoals de NSA die massaal webverkeer opslaan, met de bedoeling om dat later, als computers steeds krachtiger worden, alsnog te ontcijferen. Forward Secrecy is een techniek waarbij regelmatig nieuwe wegwerpsleutels worden aangemaakt; de kans dat later met terugwerkende kracht het opgenomen verkeer kan worden oncijferd neemt hierbij drastisch af. Een recente openssl is nodig voor FS. Om FS met voldoende sterke sleutels te gebruiken in Apache, dient minimaal versie 2.4.7 geïnstalleerd te zijn.
SSL test
In deze kolom heb ik het resultaat van de Qualys SSL test opgenomen. De hoogst mogelijke score is A+. De percentages geven aan hoe een webserver scoort op verschillende onderdelen. Een bank zou zeker 100, 90, 90 en 90% moeten halen. Meer dan dat heeft niet altijd zin omdat dan het bezoekersverkeer trager kan worden of, voor sommige browsers, zelfs onmogelijk.
Secure cookies
Een HTTPS website zou secure cookies moeten instellen. Cookies die niet secure zijn, zouden ook via HTTP verstuurd kunnen worden en dan afgeluisterd kunnen worden. Afhankelijk van de functie van de cookies, bijvoorbeeld een sessie-ID, zou een sessie overgenomen kunnen worden. Dat laatste heb ik niet getest: als in de onveilige cookies alleen onbelangrijke informatie staat, hoeft dit geen probleem te zijn.
HTTPonly cookies
Cookies zonder HTTPonly kenmerk kunnen door scripts worden gelezen. Als een aanvaller in staat is om bijvoorbeeld cross site scripting (XSS) een script in de browsersessie te draaien, kan hij deze cookies lezen. Als in de cookies zonder HTTPonly kernmerk slechts onbelangrijke informatie staat, hoeft dit geen probleem te zijn.
Clickjacking
Bij clickjacking wordt een site geladen in een andere website. De website van de bank is dan onzichtbaar, maar een vervalsende pagina is er overheen gelegd. Muisklik- en toetsenbordhandelingen kunnen dan worden gemanipuleerd. Dit is met HTTP header X-Frame-Options te voorkomen. Bij sites die deze header gebruiken, is deze kolom groen.

Verder lezen

Hardening Your Web Server’s SSL Ciphers

Boek: Bulletproof SSL/TLS and PKI, van de maker van de Qualys SSL test.

Het Amerikaanse EFF heeft een soortgelijke inventarisatie gemaakt van Amerikaanse IT service providers.