[PHP/JS/HTTPS]wachtwoord md5 verzenden via https

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik heb een website gemaakt waarbij de inlog via https verloopt.

De inlog.php is dus zo aan te roepen. https://www.mijndomein.nl/inlog.php

Is het dan noodzakelijk/veiliger om een .js file te downloaden en het wachtwoord via md5 daadwerkelijk te verzenden naar de server?

Jochemmol


Acties:
  • 0 Henk 'm!

  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 17-06 07:31

Swaptor

Java Apprentice

Met een ge-encrypte verbinding (https) wordt er sowieso geen plaintext over de lijn gegooid, maar wordt er versleuteld gecommuniceerd tussen de browser en de server.
Je password als MD5 overgooien is leuk, en kan natuurlijk gedaan worden, maar brengt geen verdere veiligheid naar het systeem.

Óf je wil natuurlijk ge-encrypte data (MD5) re-encrypten (HTTPS). :+

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Als MD5 gelijkstaat aan het wachtwoord, dan is er toch geen verschil met gewoon het wachtwoord oversturen. Immers als ik de MD5 afvang, kan ik alsnog als die gebruiker inloggen. Wachtwoorden als MD5 hashes opslaan in de database heeft een andere reden. Dan wordt juist bij de login (door de server) het wachtwoord omgezet naar MD5 en dat wordt vergeleken met de waarde in de database. De MD5 op die manier als wachtwoord ingeven zal er dan voor zorgen dat er een MD5 hash over de MD5 hash uitgevoert wordt waardoor de login niet lukt.

Wel zou je een techniek zoals APOP kunnen toepassen. Daarbij wordt aan het wachtwoord een vooraf gedefineerde string (token) geplakt en daarover wordt de MD5 berekend. Belangrijk is daarbij dan wel dat het oorspronkelijk password nooit verstuurd wordt. Deze techniek hebben wij ooit toegepast op een website waarbij de clients geen support voor HTTPS hadden.

Omdat je bij elke login poging een andere token gebruikt, zal ook bij elke login de password verschillen. Belangrijk daarbij is wel dat je aan de serverkant het wachtwoord als plaintext beschikbaar hebt zodat je ook de MD5 aan de serverkant kunt berekenen.

Echter als je HTTPS tot je beschikking hebt, dan is dan voor een man-in-the-middle attach voldoende beveiliging (in de zin dat een eigen security schema niet voor meer of betere veiligheid zal zorgen). Omdat alle data al encrypted wordt overgestuurd, is extra hashing van het wachtwoord overbodig.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Swaptor, MD5 is een hash algoritme, geen encryptie algoritme ;)

TS: als je niet zeker bent over de veiligheid dan zijn er laatste tijd best nog topics over veilige login systemen te vinden. Opzich ben je met HTTPS al zeer veilig, dat scheelt :)

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Niemand_Anders schreef op maandag 11 februari 2008 @ 16:31:
...
Omdat je bij elke login poging een andere token gebruikt, zal ook bij elke login de password verschillen. Belangrijk daarbij is wel dat je aan de serverkant het wachtwoord als plaintext beschikbaar hebt zodat je ook de MD5 aan de serverkant kunt berekenen.
...
Dat hoeft niet. stel je hebt je password als MD5 in de DB. Dan kan je ook iets versturen als:
MD5(token + MD5(wachtwoord))

Dat kan je aan de serverkant prima verifieren, en je hoeft geen plaintext passwords op te slaan.

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Voor alle duidelijkheid: je wilt nooit de MD5 van een password leesbaar wil oversturen. Relatief zwakke passwords zijn dan gewoon met een dictionary te kraken; Het vooraf berekenen van een miljard MD5s is erg goedkoop. De token oplossing voorkomt dat.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Verwijderd

Om on-topic te blijven: het wachtwoord md5-en over een SSL/TLS-verbinding heeft weinig zin.

Je zou met cryptografische hashes kunnen werken op ervoor te zorgen dat het wachtwoord amper te herleiden is, zelfs niet als de server compromised raakt. Maar is vijfennegentig procent van de gevallen is dat overkill.

edit:
Het wachtwoord plus salt als hash in de database opslaan, biedt wel significant meer veiligheid, voorál als de server compromised raakt. Dan zou ik het wachtwoord alsnog plain over https laten lopen, en pas in de webapplicatie hashen.

[ Voor 28% gewijzigd door Verwijderd op 11-02-2008 22:29 ]


Acties:
  • 0 Henk 'm!

  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 17-06 07:31

Swaptor

Java Apprentice

Cartman! schreef op maandag 11 februari 2008 @ 17:13:
Swaptor, MD5 is een hash algoritme, geen encryptie algoritme ;)
Ah, je hebt nog gelijk ook.
Oh well, het idee kwam over, toch? :)

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Inmiddels is het misschien verstandiger op SHA256 over te stappen. MD5 begint aardig te rammelen, hoewel het nog niet echt stuk is.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Hangt van het gebruik af. Voor genoeg toepassingen is het, als je maar een goede salt gebruikt, nog ruim voldoende. :)

Overigens worden er in menig security topic hier grovere fouten gemaakt dan de keuze van hash algoritme. ;)

{signature}

Pagina: 1