Welk paswoord systeem kiezen / veranderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Pagina: « vorige 1 2 3 4 volgende »

Thomas van den Heuvel

Thomas van den Heuvel

28/02/2019 22:33:18
Quote Anchor link
Natuurlijk is het verstanding om wachtwoorden zo goed mogelijk te hashen.

Aan de andere kant, het slecht hashen van wachtwoorden is weer alleen een probleem wanneer je altijd dezelfde wachtwoorden gebruikt, en dan ook alleen weer als op verschillende sites dezelfde algoritmes worden gebruikt.

Dus zelfs als jij MD5 gebruikt (bij wijze van spreken...), dan loopt dat misschien wel weer los, omdat heel weinig anderen dit intussen nog gebruiken, nietwaar? :))

En om voort te borduren op die metafoor: als je er vervolgens achter komt dat het ongeluk werd veroorzaakt door weigerende remmen dan is het natuurlijk extra fijn dat je die airbag had (maar wellicht span je dan nog een rechtzaak aan om kosten te verhalen), maar als de remmen in eerste instantie hadden gewerkt had het ongeluk mogelijk helemaal nooit plaatsgevonden.
Gewijzigd op 28/02/2019 22:40:30 door Thomas van den Heuvel
 
PHP hulp

PHP hulp

06/05/2024 09:39:06
 
Ozzie PHP

Ozzie PHP

28/02/2019 23:30:34
Quote Anchor link
>> omdat heel weinig anderen dit intussen nog gebruiken, nietwaar? :))

Hmmm, ja ... je hebt vast wel eens gehoord van Rainbow tables ...

>> maar als de remmen in eerste instantie hadden gewerkt had het ongeluk mogelijk helemaal nooit plaatsgevonden.

... maar als jouw ouders geen kinderen hadden kunnen krijgen, hadden we deze discussie niet gevoerd ... als als als :D
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 00:33:32
Quote Anchor link
>> Hmmm, ja ... je hebt vast wel eens gehoord van Rainbow tables ...
Hmmm ja, als jouw wachtwoord daar in voorkomt dan is je uitgangspunt al verre van optimaal he. Daar is geen enkel kruid tegen gewassen. Als je een bagger wachtwoord kiest maakt het niet uit wat voor geavanceerd systeem je gebruikt. Dat maakt dan elke vervolgdiscussie nogal zinloos.

>> ... maar als jouw ouders geen kinderen hadden kunnen krijgen, hadden we deze discussie niet gevoerd ... als als als :D
Waar slaat dit in hemelsnaam op? Ik probeer te wijzen op een andere punt in het systeem waarmee je onheil daadwerkelijk kunt voorkomen. Hashing voorkomt geen problemen.

En als je een match vindt door flink te rekenen levert je dat "iets" op dat werkt, maar dat is niet noodzakelijkerwijs het oorspronkelijke wachtwoord maar iets wat "toevallig" dezelfde hash heeft. Dat wachtwoord werkt dus ook niet als je daarmee probeert in te loggen bij een ander systeem (Facebook, GMail of een andere dienst), zelfs als de gedupeerde hetzelfde wachtwoord gebruikte als in het gekraakte systeem omdat het berekende wachtwoord en het daadwerkelijke wachtwoord dus waarschijnlijk niet overeen komen. De hashes daarvan komen dus ook niet overeen.

In zekere zin heeft de hashing dan al zijn doel bereikt?

Je doet nu net alsof je met 100% zekerheid het oorspronkelijke wachtwoord kunt extraheren (rainbow tables daar gelaten uiteraard - als je een prut wachtwoord kiest uit een standaard lijst van wachtwoorden...) als je een zwak hashing algoritme gebruikt en dat is simpelweg niet waar. Dit is gewoon niet mogelijk. Punt. Dit is de hele crux van hashing, tijdens de berekening hiervan gaat informatie van de brondata onherroepelijk verloren - het is een "one way system". Je kunt hoogstens iets vinden dat dezelfde hash oplevert. En dan werken dit soort collisions alleen in een ander systeem wanneer beide systemen precies dezelfde hashingstrategie gebruiken. Wat ook nogal onwaarschijnlijk is.

De hashing heeft dan dus nog steeds zijn werk gedaan, zelfs als je een zwak algoritme gebruikt, omdat het nog steeds verijdelt dat je hiermee ergens anders in kunt loggen omdat je simpelweg het oorspronkelijke wachtwoord niet kent.

Neemt ook nog steeds niet weg dat er dan hiervoor al een heleboel is misgegaan (slechte remmen enzo) op het moment dat dit een probleem gaat vormen. Airbag of niet, je auto is aan gort.

TL;DR het is nog altijd beter om te investeren op andere ("beveiligings")punten in je systeem zodat je nooit het punt bereikt dat je iets aan hashing zou hebben.
Gewijzigd op 01/03/2019 00:55:04 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

01/03/2019 01:30:49
Quote Anchor link
>> Daar is geen enkel kruid tegen gewassen.

Niet helemaal waar ... veel MD5 wachtwoorden zijn letterlijk terug te herleiden naar de oorsprong. Daarom wordt MD5 afgeraden. Een "123geheim" zou bij MD5 hashing veel eenvoudiger zijn terug te vinden dan wanneer je bijv. password_hash gebruikt.

>> Waar slaat dit in hemelsnaam op? Ik probeer te wijzen op ...

Lol, ik probeer jou middels een grapje (het was een grapje Thomas, rustig blijven) erop te wijzen dat allerlei ALS ALS situaties niet hoeven in te houden dat je iets niet hoeft te doen. Jij bent van nature (afgaande op je reacties) vrij sterk geneigd om als iemand een vraag heeft er allerlei 'randvoorwaarden' bij te halen "ja maar als dit ..." "ja maar als dat ...". En begrijp me niet verkeerd, want je hebt op al die punten gelijk, maar dat wil niet zeggen dat de vragensteller niet ook gelijk kan hebben of het met jou oneens zou zijn. Dat is wat ik je (middels een grapje) probeerde duidelijk te maken. Als ik naar de frietboer ga en ik wil een gehaktbal, dan wil ik gewoon een gehaktbal en hoef ik niet (altijd) te horen wat er nog meer verkrijgbaar is en hoe gezond de sla-salade is.


Ga voor de grap eens naar deze website:

https://md5decrypt.net/en/

Voer de onderstaande MD5 hash in, druk op 'Decrypt' en zie wat eruit komt.

70a31911dbc81959df10dd5725f40d71

En dat is dus wat ik bedoel met de zwakte van MD5
Gewijzigd op 01/03/2019 01:32:59 door Ozzie PHP
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 02:06:19
Quote Anchor link
Please...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// https://www.random.org/passwords/?num=5&len=8&format=html&rnd=new
$passwords = array(
'hmBUJZNw', // 31a613f8773bda977b917cbc5b34f4b9 // Sorry, this hash is not in our database
'my5EQwPy', // 148db98774323698f3331499cafb946a // Sorry, this hash is not in our database
'34SJbJpG', // 2cfc543a42ab5e9b77bd57562f75a405 // Sorry, this hash is not in our database
'BXB2KX2N', // 91ce7b1b115802dbe98da4e7c3edb844 // Sorry, this hash is not in our database
'487Tbr4J', // d4a844c706c42e8cad506555a1adb9ee // Sorry, this hash is not in our database
);

foreach ($passwords as $password) {
    echo md5($password).'<br>';
}

?>

Thanks, come again.

Anders "decrypt" (<-- verkeerde terminologie zelfs) deze eens:
48c109c6c50851348f972f52f2d88d6e

Typisch geval shit in --> shit out.
Gewijzigd op 01/03/2019 02:09:19 door Thomas van den Heuvel
 
Rob Doemaarwat

Rob Doemaarwat

01/03/2019 07:00:14
Quote Anchor link
Kweenie, maar deze discussie heeft voor mij een beetje het niveau van: "zal ik wel of geen pleisters meenemen op vakantie; ik ga d'r vanuit dat er niks gebeurd, maar andersom wegen ze ook niks". Dan neem je ze toch gewoon mee, hop in je rugtas en 3 jaar later vind je ze terug en denk je "o ja, die pleisters, gelukkig nooit nodig gehad".

Ja, met super intelligente gebruikers die volledige random wachtwoorden nemen (of krijgen?) is MD5() een prima optie, maar password_hash() is net zo veel werk, en redelijk fool proof. Waarom dan nog proberen te beargumenteren dat MD5 ook een optie is? Ga door met de rest van je werk (de rest van de site hacker proof maken), of lekker buiten in de zon zitten.
 
Ozzie PHP

Ozzie PHP

01/03/2019 10:24:46
Quote Anchor link
>> Anders "decrypt" (<-- verkeerde terminologie zelfs) deze eens:

Oh je gaat nu een lullige houding aannemen? Beetje jammer.

Als je niet openstaat voor argumenten dan houdt de discussie op. Lekker MD5 blijven gebruiken dan.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 16:56:48
Quote Anchor link
> Oh je gaat nu een lullige houding aannemen? Beetje jammer.
Nee, dat ("decrypt") is de terminologie die de site gebruikt waar jij naar verwijst. Het is waarschijnlijk helemaal geen decryptie (eerder aangedragen: onmogelijk bij hashing) maar gewoon een lookup-tabel waarin gekeken wordt of het wachtwoord voorkomt.

> Als je niet openstaat voor argumenten dan houdt de discussie op.
Dat is grappig, ik probeer je met al mijn vorige antwoorden een andere kant te laten zien maar die blijft jou blijkbaar bijster. Wie staat er nu niet open voor een ander inzicht dan?

> Lekker MD5 blijven gebruiken dan.
Dat stel ik nergens voor, het was meer als onorthodox voorbeeld bedoeld om wat "discussie" uit te lokken en je aan het denken te zetten. Het enige wat ik kreeg was een razende schuimbekkende menigte. Als je er over *nadenkt* is het allemaal niet eens zo krankjorum. Dat wil niet zeggen dat je dan direct ook moet doen wat er wordt voorgesteld... Dat jij nu direct getriggerd wordt als ergens "md5" wordt genoemd voor wachtwoordbeveiliging. Het vogeltje zingt zoals het gebekt is? Vervolgens gaat het verstand op nul en wordt er niet eens meer gelezen wat er wordt geschreven. Okay dan.

Het is grappig dat je het uberhaupt over "discussie" hebt want je volgt de regels die bij een discussie horen zelf geenszins.

> Ja, met super intelligente gebruikers die volledige random wachtwoorden nemen (of krijgen?) is MD5() een prima optie, maar password_hash() is net zo veel werk, en redelijk fool proof. Waarom dan nog proberen te beargumenteren dat MD5 ook een optie is?
Lees mijn vorige antwoorden nogmaals en probeer mijn redenatie te volgen. Ik zeg nergens dat je het zou moeten gebruiken, ik probeer het alleen aannemelijk te maken (met argumenten) dat het niet compleet ongeschikt is voor het beoogde doel. Of het verstandig is om dat dan ook te gebruiken is vers twee...

> Ga door met de rest van je werk (de rest van de site hacker proof maken)
Dat is eigenlijk precies wat ik voorstel. Je bent (ook) veel meer gebaat bij een sterk wachtwoord dan een sterk hashingalgoritme. Dus daar zou dan ook de nadruk moeten liggen qua tijdsinvestering.
Gewijzigd op 01/03/2019 17:03:06 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

01/03/2019 21:07:17
Quote Anchor link
>> Nee, dat ("decrypt") is de terminologie die de site gebruikt waar jij naar verwijst

Het ging me niet over het woord decrypt, maar om de inhoud van de hash ... het leek alsof die gericht was op hetgeen ik aanvoerde in mijn gesprek.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 21:55:33
Quote Anchor link
Ik voer vijf random hashes -de eerste vijf die random.org uitspuugt- aan die site (wie zegt trouwens dat die een autoriteit is?) en geen van allen kunnen ze worden "gedecrypt". Jij daarentegen levert "bewijs" aan (zwak wachtwoord) die in dienst staat van de hypothese die je probeert te toetsen (zwakte van MD5? wat, omdat een standaard wachtwoord geïndexeerd is? wut?). Het enige wat je daarmee aantoont (of in ieder geval aannemelijk maakt) is dat een niet voor de hand liggend wachtwoord je verder helpt dan een hashingmethode.

Maar dit is zinloos. Dit is zelfs niet eens een discussie. De strekking van wat ik probeer over te brengen komt niet aan.

Maar doe voor de gein eens een gedachtenexperiment, zonder aannames of vooroordelen over md5 en vraag je zelf eens af wat voor implicaties dit nu echt heeft en wanneer deze nou echt daadwerkelijk van toepassing zijn. Want iedereen is het er over eens dat het "not done" is maar kun je ook uitleggen waarom?

EDIT: een argument is bijvoorbeeld: md5 is niet geschikt als / is geen cryptografische hashingfunctie (onder andere) omdat dit een snel algoritme is. Nergens in deze hele thread behalve de door @Remco gelinkte site en op php.net wordt dit aangehaald...

Of je gebruikt gewoon password_hash() en password_verify() en je kijkt niet verder dan je neus lang is, mij ook best.
Gewijzigd op 01/03/2019 22:07:03 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

01/03/2019 22:08:58
Quote Anchor link
Ik vind het tof dat je een heel verhaal vertelt ... maar waar reageer je nu eigenlijk precies op? Wat ik zeg is dat een "bekend" wachtwoord, laten we het voor het gemak even zo noemen, makkelijk gevonden wordt als dat gehasht is met MD5 dan met bijv. password_hash.

Wat klopt daar niet aan?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 22:16:34
Quote Anchor link
Het wordt niet gevonden in de zin van "berekend", het is gewoon een hash-wachtwoord paar dat wordt opgeslagen. Als het bekend is hoe er gehashed wordt met password_hash() is dit even (on)veilig. (actually, dit maakt niet eens uit want alle informatie wordt in de hash opgeslagen) Het enige verschil is dat je wellicht wat langer moet rekenen voordat je kunt constateren dat twee hashes equivalent zijn. Je kunt nog steeds dezelfde dictionary attack gebruiken. Dit is letterlijk lood om oud ijzer. Nogmaals, een sterker hashing algoritme maakt een zwak/bekend wachtwoord niet opeens veiliger.

Ik weet echt niet hoe ik dit eenvoudiger moet uitleggen.
Gewijzigd op 01/03/2019 23:33:26 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

01/03/2019 22:27:05
Quote Anchor link
>> Het wordt niet gevonden in de zin van "berekend"

Ja, dat klopt ... er is als het ware een heeeeel groot woordenboek met bekende hashes en de daarbij behorende vertalingen. Hoe het gevonden wordt boeit niet. Het feit is dat er heel veel wachtwoorden bekend zijn wat MD5 dus in gebruik onveiliger gemaakt in de zin van dat een wachtwoord makkelijker is te herleiden.

>> Als het bekend is hoe er gehashed wordt met password_hash() is dit even (on)veilig.

Nou nee, bij iedere generering ontstaat een andere hash. Jij en ik kunnen hetzelfde wachtwoord hebben en toch een totaal andere hash.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 23:12:28
Quote Anchor link
.............. die je controleert met password_verify(). Het maakt wat dat betreft niet uit of de hashes hetzelfde zijn of niet.

Je gebruikt nog steeds de oorspronkelijke wachtwoorden in de dictionary attack... en je loopt nog steeds gewoon die lijst af...

Het wordt een ander verhaal als je ook een salt gebruikt. <-- hmm maakt dit uberhaupt uit?
Gewijzigd op 01/03/2019 23:38:19 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

01/03/2019 23:25:07
Quote Anchor link
Zover ik heb begrepen, correct me gerust if I'm wrong, levert MD5 altijd dezelfde hash op. Dus als wij beiden hetzelfde wachtwoord hebben kun je bij MD5 aan de hash zien wat het wachtwoord is.

Als je password_hash gebruikt hebben wij beiden een andere hash. Er is dus niet meer een vaste hash voor het wachtwoord "geheim" en dus kun je aan mijn of jouw hash niet zien wat het wachtwoord is.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 23:26:21
Quote Anchor link
Ja dat zeg ik dus. Je gebruikt "geheim" als password en de hash die je hebt gestolen en kijkt dan of password_verify() iets oplevert.
 
Ozzie PHP

Ozzie PHP

01/03/2019 23:32:56
Quote Anchor link
Maar dat is dus iets totaal anders dan wat er met MD5 gebeurt.

Bij MD5 is het:

xyz123 = geheim

Wat jij nu zegt is:

xyz123 => laten we het eens matchen met 'geheim' en kijken of daar toevallig een hit uitkomt.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 23:35:06
Quote Anchor link
Ja, dat is wat password_verify() doet bruh.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$password
= 'welkom'; // zwak wachtwoord

$iterations = 10;
for ($i=0; $i < $iterations; $i++) {
    echo password_hash($password, PASSWORD_BCRYPT).'<br>';
}

/*
$2y$10$HrPMcjHoVYsKC7GtFmfKbOS92SvIV/pcMHu/luU4frGCYkO1FQt9S
$2y$10$Auf4NqsVJqD00MA6IOHbH.PWv86sMl83457Tjo3zTyNmHFUVaKQfe
$2y$10$/tdj793VKJqHs4XdK4xeVedEyesngnyEP3oK1Wxf8Nn9xoyzQV33G
$2y$10$Yh1PWzYUajfC22G7AfrFguOmtKzWMyAje5kBb.eSABLbn7OzDRHa2
$2y$10$.hh77fACFTwiJb9ho7U32OAOgONanCEjtt3sR2Q7CBUir8CwesEJe
$2y$10$V6cop8P.5QU4ab.17u429Og6cIXO1wy11gltwdCOEKy56dpBFxPqq <--- pak deze bijvoorbeeld
$2y$10$oq.KXHnrvABH3FkiUFw.x.lCFN5BkAcPltdgKR8UhoeLqk4HDLaaO
$2y$10$DiQTJsPXoq8ZUc4mmtEE8udqTelNBYe6Ge8/.0dTWceq1BJt/6m4G
$2y$10$B5NMUBYkds3hLxORmqr/4e8rrDQOydxPoIvkYHzWWQI9gIcQH0yv6
$2y$10$hV1cvprUKExjfKOf.Yz9m.1rvmISJJNUo5bI.njdQYx68hydrBiou
*/

// Dit wordt gestolen

$stolenHash = '$2y$10$V6cop8P.5QU4ab.17u429Og6cIXO1wy11gltwdCOEKy56dpBFxPqq';

// Nou dan pakken we het woordenboek erbij...
$dictionary = array(
    'geheim',
    'welkom',
    'lol',
);


// dictionary attack bij zwak wachtwoord werkt nog steeds hetzelfde
foreach ($dictionary as $candidate) {
    echo $candidate.': ';
    if (password_verify($candidate, $stolenHash)) {
        echo 'pass';
    }
else {
        echo 'fail';
    }

    echo '<br>';
}

/*
geheim: fail
welkom: pass
lol: fail
*/

?>


Dus nogmaals: je doet er verstandiger aan te investeren in een strategie die sterke wachtwoorden oplevert, want een sterkere hashing lost het probleem met zwakke wachtwoorden niet op...
Gewijzigd op 01/03/2019 23:50:19 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

01/03/2019 23:48:53
Quote Anchor link
Ik snap wel wat je bedoelt, maar je snapt toch dat de approach anders is?

Laten we even doen alsof het gehashte wachtwoord een woord in een vreemde taal is. Laten we zeggen 'sojeojekre'.

Nu pak ik m'n MD5 woordenboek erbij, ga naar de letter 's' ... 'so' ... 'soj'... ah daar staat het. De vertaling (het originele wachtwoord) is 'amigo'.

Nu wil jij ook weten wat 'sojeojekre' betekent, maar jij moet nu eerst miljoenen mogelijke wachtwoorden gaan afvuren om te kijken of er misschien een match is.

Stel dat een hacker nu een database heeft onderschept met 100.000 wachtwoorden, dan moet ie in het geval van password_hash 100.000 keer miljoenen wachtwoorden gaan afschieten, terwijl ie ze met MD5 gewoon stuk voor stuk in het 'woordenboek' kan opzoeken en dan is ie met 100.000 zoekopdrachten klaar. En dan heb ik de cost factor van password_verify nog even buiten beschouwing gelaten.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2019 23:55:15
Quote Anchor link
Ik heb het nog steeds over een wachtwoordenbibliotheek, geen hash lookup. Ja, je vindt een zwak wachtwoord niet direct maar wel veel sneller dan de bedoeling is. Het is nog steeds lineair? Je hebt de hash, loop maar door de bekende wachtwoorden heen.

Zie ook de toevoeging in de vorige reactie:
Dus nogmaals: je doet er verstandiger aan te investeren in een strategie die sterke(re) wachtwoorden oplevert, want een sterkere hashing lost het probleem met zwakke wachtwoorden niet op...
Gewijzigd op 01/03/2019 23:58:19 door Thomas van den Heuvel
 

Pagina: « vorige 1 2 3 4 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.