Door
Ozzie PHP
op 14-10-2014 01:08
gewijzigd op 14-10-2014 01:08
5.123 views
Maandag geha-c-ktdag!
Ik kreeg vandaag een mailtje van m'n hostingprovider met de mededeling dat een van m'n e-mailadressen behoort tot de 1,3 miljoen .nl e-mailadressen die in handen zijn gevallen van hackers.
Mijn hostingprovider vermeldt in de mail dat hun server niet gehackt is, maar dat het een wereldwijde hack betreft op 100.000'en websites. Er wordt geadviseerd om onmiddelijk je wachtwoord te veranderen.
Wat ik dus vreemd vind, is dat je je wachtwoord moet wijzigen. Dit houdt dus in dat mijn wachtwoord mogelijkerwijs gehackt is. Dan vraag ik me af hoe dat kan. De enige plek waar dat wachtwoord is opgeslagen, is toch op de server van mijn hostingprovider? En dan neem ik ook nog aan dat het versleuteld is opgeslagen. Mijn hostingprovider zegt dat hun servers niet gehackt zijn. Hoe zouden die hackers dan aan mijn wachtwoord moeten zijn gekomen? Een man-in-the-middle attack lijkt me dan de enige optie, maar ik ga er vanuit dat mijn gebruikersnaam en wachtwoord over een versleutelde verbinding worden verstuurd. Ik snap dus niet hoe dat zou kunnen. Iemand die hier meer over kan zeggen?
Ward, wat ik bedoel te zeggen is dat je jezelf zo goed als mogelijk kunt "bewapenen", maar op het moment dat er een lek zit in jouw ssl-certificaat, dan ben je alsnog de sigaar. Anders gezegd, je kunt jouw klanten/websitegebruikers dus nooit een 100% veilige site beloven. Maar goed daar kun je dus niks aan doen.
>> Wat ik dus vreemd vind, is dat je je wachtwoord moet wijzigen. Dit houdt dus in dat mijn wachtwoord mogelijkerwijs gehackt is. Dan vraag ik me af hoe dat kan. De enige plek waar dat wachtwoord is opgeslagen, is toch op de server van mijn hostingprovider?
"Mijn hostingprovider zegt dat hun servers niet gehackt zijn. "
>> je kunt jouw klanten/websitegebruikers dus nooit een 100% veilige site beloven.
Maar je verbindt nu 2 verschillende dingen aan elkaar ;-)
De hostingprovider geeft aan dat hun servers NIET gehackt zijn. Dus de vraag is hoe de hackers dan je wachtwoord kunnen weten. Ja, het zou kunnen dat je hetzelfde wachtwoord bij een andere site gebruikt die niet goed beveiligd is. Dat zou de enige mogelijkheid zijn lijkt me.
> je kunt jouw klanten/websitegebruikers dus nooit een 100% veilige site beloven
Klopt. Wat je hoogstens kan beloven, is dat je eventuele (potentiële) zwakke plekken zo snel als mogelijk probeert te verhelpen. Maar let op dat het dan gaat om een inspanningsverplichting en niet om een resultaatverplichting, want dan kun je alsnog gigantisch de sjaak zijn. ;-)
En dat heeft ook zo zijn zwakheden. Zo heeft bcrypt weinig geheugen nodig, waardoor het relatief snel te brute-forcen als je FPGA's gebruikt. Een betere keuze zou in dat opzicht scrypt zijn, maar dat zit nog niet standaard in PHP, voor zover ik weet.
Sure, een 100% veilige encryptie bestaat ook gewoon niet. Je moet het een aanvaller alleen zo lastig mogelijk maken.
Zelf ben ik niet zo'n fan van scrypt. Lees onderstaande linkjes maar eens waarom:
>> Sure, een 100% veilige encryptie bestaat ook gewoon niet.
Dat is op zich duidelijk. Maar wanneer doe je het als programmeur goed? Dus stel we gebruiken bcrypt, maar we staan toe dat hackers oneindig mogen proberen dan lijkt het me niet handig, maar als je bijv. zorgt dat ze maar max. 5 keer kunnen proberen dan zit je wel redelijk safe toch?
De conclusie van je eerste link is dat scrypt met zwakke settings ongeveer even sterk is als bcrypt. Het laat zich raden wat er gebeurt als je wél de juiste instellingen gebruikt. ;-)
De algehele teneur van de berichten is dat men scrypt liever niet gebruikt omdat het pas een paar jaar oud is en dus niet zoveel is getest als bcrypt. Echter, als je naar de algoritmiek gaat kijken, wint scrypt met twee vingers in zijn neus. Bovendien zijn de artikelen (op de eerste na) alweer een paar jaar oud en dus geschreven toen scrypt nog erg nieuw was. Inmiddels heeft men scrypt alweer een paar jaar kunnen testen en ik kan me eigenlijk niet herinneren de afgelopen tijd security advisories te hebben gelezen die het gebruik van scrypt afraden.
Het voordeel van bcrypt (zijn 'ouderdom') is meteen ook het nadeel. bcrypt is alweer zo'n 15 jaar oud en dus ingehaald door de technologie. Zoals ik al zei in een eerdere post, is bcrypt slecht bestand tegen een brute force van een heleboel parallelle FPGA's. Verder is bcrypt gebaseerd op blowfish, een algoritme dat ook een aantal zwakke plekken heeft en daardoor niet eens meer wordt gebruikt door degene die het heeft bedacht. Als ik naar scrypt kijk, krijg ik de indruk dat dat een stuk toekomstvaster is.