Form based authentication for websites

Op Stackoverflow is men druk bezig in een poging “The Definitive Guide To Forms based Website Authentication” te maken. Komen best wat interessante punten voorbij. Sommige zijn relatief eenvoudig implementeerbaar in bestaande omgevingen terwijl andere “aanbevelingen” wat dieper gaan. Zeker als je een nieuwe applicatie opzet die nét dat stukje meer veiligheid vereist kan dit een heel interessant document zijn om nog eens kritisch te kijken naar je bestaande authenticatieprocedures.

De highlites zoals ik ze zie

Onderstaand lijstje is absoluut niet als richtlijn te gebruiken maar meer als “o ja, die” reminders van de zaken die in iedere geval in het oog springen, te gemakkelijk zijn om niet te doen of een flink verschil maken in de veiligheid van de login:

  • CAPTCHA’s zijn in basis nutteloos (op reCAPTCHA na want die is echt onmogelijk irritant)
  • Ben je goeroe dan ga je voor een Diffie-Hellman key exchange (wiki)
  • Cookies voor je sessie geef je het beste een HTTP Only header mee en zijn ‘secure’
  • Mocht je een “onthoudt mij” willen sla dan in iedere geval een zeer gezouten hash op van de token in je DB en niet de ‘kale’ cookie token
  • Geheime vragen zijn evil en vormen een veiligheidslek
  • Wachtwoord vergeten = nieuwe kiezen. Een “gereset” wachtwoord toezenden wat onmogelijk ingewikkeld is wordt vermoedelijk geprint, op een post-it gezet etc.
  • Stel minimale eisen aan een wachtwoord (javascript wachtwoord complexiteit checker)
  • Blokkeer massale login pogingen door pogingen te loggen en blocks uit te delen bij X aantal false attempts
  • Geef straf “delays” bijv. 2 seconde na 3e foutieve login, 5 seconde na 4e foutieve login etc zodat het onmogelijk is massa’s logins te testen
  • Gebruik SSL (beetje open deur maar hij hoort erbij)
  • Sla wachtwoorden alleen encrypted en salted op

De bron

Dit zijn maar een paar korte hightlites uit dit prachtige artikel:
http://stackoverflow.com/questions/549/the-definitive-guide-to-forms-based-website-authentication

Geef een reactie

Jouw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *