Password_hash uitlezen!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior PHP developer

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Full Stack PHP Developer

Functieomschrijving Ervaren PHP Developer gezocht! Wij zijn op zoek naar een ervaren PHP Developer die het IT team van een organisatie in de regio Ermelo gaat versterken. Voor deze functie zijn we op zoek naar een enthousiaste en breed georiënteerde IT-er die deze innovatieve organisatie nog een stap verder gaat brengen. Wij zijn op zoek naar iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je bent verantwoordelijk voor het samenwerken met een externe partij het is hierbij jouw taak om deze partij uit te dagen op het geleverde werk. Het schrijven van concepten aan de AI

Bekijk vacature »

APEX Ontwikkelaar in een team van Oracle Developer

Bedrijfsomschrijving Wij zijn op zoek naar een APEX Ontwikkelaar om onze opdrachtgever in Den Haag te versterken. In deze rol zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van de front-end van onze applicaties met behulp van Oracle Application Express (APEX). Je werkt aan zowel inhouse als externe projecten. De sfeer binnen het Oracle team is gemoedelijk en men probeert elkaar te helpen én van elkaar te leren. Zo ontstaat er een prettige en plezierige werksfeer waar ruimte is voor persoonlijke ontwikkeling en groei. Er wordt gewerkt met de meest nieuwe technologieën waardoor je kennis up-to-date blijft. Het bedrijf

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

SQL database developer

Functie omschrijving Voor een software bedrijf in omgeving Breda zijn wij op zoek naar een SQL database ontwikkelaar. Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het huidige team developers zijn wij op zoek naar een SQL database ontwikkelaar. De klanten van dit groeiende bedrijf zitten door heel Europa en jouw werkzaamheden zullen er als volgt uitzien: Het samenstellen van de software op basis van de input vanuit de klant (T-SQL & C#.NET). Het bezoeken van klanten om de processen en mogelijkheden in kaart te brengen. Het ontwerpen van databases met T-SQL als programmeer laag.

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van Software Developer! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van ervaren

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Java/Kotlin Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

Pagina: 1 2 volgende »

Nick van der heijden

nick van der heijden

24/10/2017 17:21:31
Quote Anchor link
Goededag PHPHulpers,

Zoals de titel al aangeeft is het mogelijk om een gehashed password te echoen?
ik heb geen idee hoe dit moet. Ik heb het al gegoogled en dan kom ik op password_verify maar dat is volgens mij alleen om in te loggen zodra er iets gepost word en niet om te echoen.

Kan iemand mij uitleggen hoe ik dit wil kan doen?

Mvg,

Nick
 
PHP hulp

PHP hulp

26/12/2024 17:04:38
 
Ozzie PHP

Ozzie PHP

24/10/2017 17:32:07
Quote Anchor link
>> Zoals de titel al aangeeft is het mogelijk om een gehashed password te echoen?

Ik denk dat je bedoelt of je het originele wachtwoord kunt tonen. Het antwoord is nee.
 
Ben van Velzen

Ben van Velzen

24/10/2017 17:33:44
Quote Anchor link
Wat je wil kan niet, dat is de kracht van hashing. Een betere vraag is waarom je dat zou willen.
 
Nick van der heijden

nick van der heijden

24/10/2017 17:34:13
Quote Anchor link
ja dat klopt Ozzie dat bedoel ik inderdaad.

Oke dan weet ik genoeg Bedankt!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/10/2017 17:35:59
Quote Anchor link
Tja waarschijnlijk is je vraag goed bedoeld maar het antwoord zou zijn iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $hash;
?>

Dat is natuurlijk niet het antwoord waarop je zit te wachten.

De meeste wachtwoord hashes zijn niet reversible hetgeen wil zeggen dat je van 'Frank' wel '0df02da8548eeef2174c97c2ade67b4c5adc3160' kunt maken maar andersom niet.

Maar misschien is het handig als je je probleem wat meer uitlegt.
 
Nick van der heijden

nick van der heijden

24/10/2017 17:44:58
Quote Anchor link
@frank ja zo echoen is geen probleem haha, ik moet inderdaad juist andersom van hash naar normale tekst maar dat kan dus niet...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/10/2017 17:48:14
Quote Anchor link
Met openSSL kun je encrypten en decrypten mocht je daar iets aan hebben. https://secure.php.net/openssl_encrypt

Echter dit is echt NIET bedoeld om passwords mee te gaan encrypten
Gewijzigd op 24/10/2017 17:49:13 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

24/10/2017 18:07:47
Quote Anchor link
En waarom zou je een paswoord willen uitlezen?
 
Toms Diner

Toms Diner

24/10/2017 23:37:13
Quote Anchor link
Je kunt bij de hash, en je wil het password weten, neem ik aan. Als je je eigen (admin) password moet recoveren, vervang de hash door een nieuwe hash waarvan je het bijbehorende password wel weet. (Dus een nieuw wachtwoord hashen, en dat wachtwoord op de plaats van het wachtwoord dat je moet hebben plaatsen) Daarbij moet je het hashen eigenlijk door hetzelfde systeem laten doen, omdat er een salting gebruikt kan zijn. (het toevoegen van tekens aan het wachtwoord voor het hashen, zodat er geen standaard hash ontstaat)

Deze truc kan niet bij andere users: ze zullen doorhebben dat hun wachtwoord veranderd is.

Zijn hashes dan niet te kraken? Niet met een formule. Vergelijk het met een sinus of cosinus berekening: als je de output weet, kun je onmogelijk de input raden. Hetzelfde met restwaarde berekeningen: neem een getal in gedachte (tussen de 100 en de 999), en onthoud de rest bij een deling door 7. Dat getal is niet meer te herleiden naar het getal wat je in je hoofd had.

Een hash berekening is dus een soort controlegetal, en het is niet ondenkbaar dat er in theorie meerdere passwords zijn met dezelfde hash. Overigens is de berekening zo gekozen dat het veranderen van 1 letter in een password van 20 tekens tot een totaal verschillende hash leidt: niet één teken is gelijk... En bij het inloggen op een site zou het dus in theorie ook kunnen dat een ander password met dezelfde hash ook toegang biedt. Maar die kans is bijna net zo groot als zes keer de staatsloterij in een jaar winnen.

Een inlogfunctie genereert dus bij het inschrijven de hash van het password, en onthoudt deze. Bij een inlogpoging wordt hetzelfde trucje gedaan, waarna de hash vergeleken wordt met een opgeslagen hash. Op deze manier kan je op een veilige website (zonder overname users-sessie door admin) een goede logging bij houden: niemand kan elkaars rol overnemen, zelfs als hij toegang heeft tot de hashes. Je zult immers het wachtwoord moeten veranderen om je voor te doen als iemand anders, en dat gaat die persoon merken.

Maar zijn hashed helemaal onkraakbaar? Dat hangt er vanaf. De hash van "Welkom123" of "12345" of "datraadjenooit" is op heel veel servers aanwezig. In tegenstelling tot "*us1&*Skj09aUY". Er bestaan tabellen van veelvoorkomende wachtwoorden en hashes (zei iemand rainbow?) en websites als hashkiller. Deze vormen gelijk het bewijs dat een zwak wachtwoord geen goed idee is.
 
Rob Doemaarwat

Rob Doemaarwat

25/10/2017 07:53:04
Quote Anchor link
Rainbow tables gaan hier niet werken. Omdat er "zout" wordt toegevoegd zal hetzelfde wachtwoord (zonder kennis van het gebruikte "zout") steeds een andere hash genereren. Alleen als je inderdaad een "vrij standaard" wachtwoord hebt zou je nog een "woordenboek aanval" (= alle "bekende" wachtwoorden proberen) kunnen doen. Brute-force (= alle combinaties van alle karakters proberen) is niet te doen.
 
Toms Diner

Toms Diner

25/10/2017 22:45:34
Quote Anchor link
Rob Doemaarwat op 25/10/2017 07:53:04:
Rainbow tables gaan hier niet werken. Omdat er "zout" wordt toegevoegd zal hetzelfde wachtwoord (zonder kennis van het gebruikte "zout") steeds een andere hash genereren. Alleen als je inderdaad een "vrij standaard" wachtwoord hebt zou je nog een "woordenboek aanval" (= alle "bekende" wachtwoorden proberen) kunnen doen. Brute-force (= alle combinaties van alle karakters proberen) is niet te doen.


Ehhh... Waar lees jij dat? Ik zie in de info van de TS nergens een aanwijzing dat salting speelt.. En mocht hij wel gesalte hashes hebben: daar waarschuw ik in mijn post zelf ook al voor....
 
Rob Doemaarwat

Rob Doemaarwat

25/10/2017 23:06:23
Quote Anchor link
Hij heeft het over password_verify(), dan begin je bij password_hash(), en die voegt zelf zout toe: http://php.net/manual/en/function.password-hash.php
 
Thomas van den Heuvel

Thomas van den Heuvel

26/10/2017 13:34:50
Quote Anchor link
Quote:
Er bestaan tabellen van veelvoorkomende wachtwoorden en hashes (zei iemand rainbow?) en websites als hashkiller. Deze vormen gelijk het bewijs dat een zwak wachtwoord geen goed idee is.

Ik dacht dat dat juist wilde zeggen dat de hashingmethode zelf zwak was. Natuurlijk is een sterk wachtwoord goed, maar als de hashingmethode zelf zwak is helpt een sterk wachtwoord niet echt (of liever gezegd, minder goed).

Hashes zijn, zoals @Frank zegt, niet omkeerbaar. Hashing moet je zien als invoer die je door de papierversnipperaar gooit en wat er uitkomt opvangt in verschillende emmers. Deze "rest na deling" (waar @Toms Diner het over had), of de "emmer configuratie" is je hash. Wanneer iemand inlogt met een wachtwoord gooi je deze invoer door dezelfde papierversnipperaar en kijk je of deze "rest na deling" overeenkomt met de eerder opgeslagen hash.

Dit maakt het dus effectief onmogelijk om een wachtwoord te herleiden. Wanneer iemand zijn/haar wachtwoord kwijt is geraakt zal deze persoon via een "lost password" routine deze moeten (kunnen) resetten. Dit gebeurt meestal via e-mail en een unieke hyperlink (ook weer met een hash :)) die een tijdelijke geldigheid heeft.

Iets doet mij vermoeden dat daar mogelijk het probleem zit (het ontbreken van een dergelijke routine).
 
Toms Diner

Toms Diner

26/10/2017 23:09:45
Quote Anchor link
Thomas van den Heuvel op 26/10/2017 13:34:50:
Quote:
Er bestaan tabellen van veelvoorkomende wachtwoorden en hashes (zei iemand rainbow?) en websites als hashkiller. Deze vormen gelijk het bewijs dat een zwak wachtwoord geen goed idee is.

Ik dacht dat dat juist wilde zeggen dat de hashingmethode zelf zwak was. Natuurlijk is een sterk wachtwoord goed, maar als de hashingmethode zelf zwak is helpt een sterk wachtwoord niet echt (of liever gezegd, minder goed).


Mijn interpretatie is dat de hashing niet zwak is, maar het feit dat de hash al in teveel tabellen voorkomt. (de rainbows en andere hash-databases bevatten de hashes van de meest voorkomende wachtwoorden) En dus "herkend worden", als een reeds eerder gehashte waarde.

Een zwakke hash zou te kraken zijn, en bij mijn weten is een hash niet kraakbaar.

Toch heb ik in custom code voor de zorgsector er bewust voor gekozen om een variabele salt te kiezen. Bij elke user is wel een tweede var te vinden die nooit meer wijzigt, maar wel per persoon verschillend is. Denk aan usernumber, username, UTS of registration, enzovoort. Dit was de salt, en levert een tweetraps login op: eerst de username controleren, en de tweede var uit de database halen. Dan die als salt voor het wachtwoord gebruiken, en de hash controleren met de database.

Wat ik overigens lastig vind, is dat het niet ondenkbaar is dat we binnen enkele jaren met een (te) grote onveiligheid in het systeem geconfronteerd worden. De kans is groot dat die uit de hoek van de steeds sneller wordende computers gaat komen, waardoor brute forcen opeens wèl regelmatig tot resultaat leidt. (was geloof ik vorige maand al in het nieuws, dat de rekensnelheid van computers ervoor zorgt dat 5-10 jaar oude beveiligingssystemen te onveilig beginnen te worden).

In bovenstaande situatie zou je graag de boel beter beveiligen, maar omdat je een hash niet om kan draaien, zou je hooguit de hash met een verbeterde hash kunnen behandelen om het gevaar te keren. Om die reden past een kennis van mij AES256 encryptietoe ipv hashing. Dat zou je wel compleet om kunnen zetten naar wat nieuws. Overigens vind ik dit niet kunnen: het is in strijd met de basisbeginselen van veiligheid. De admin kan elk wachtwoord decrypten en zich voordoen als iemand anders.

Rob Doemaarwat op 25/10/2017 23:06:23:
Hij heeft het over password_verify(), dan begin je bij password_hash(), en die voegt zelf zout toe: http://php.net/manual/en/function.password-hash.php


?

Lees nog eens wat hij schrijft? Dat was een term die hij op google vond.....
 
Willem vp

Willem vp

27/10/2017 18:20:58
Quote Anchor link
Toms Diner op 26/10/2017 23:09:45:
Mijn interpretatie is dat de hashing niet zwak is, maar het feit dat de hash al in teveel tabellen voorkomt. (de rainbows en andere hash-databases bevatten de hashes van de meest voorkomende wachtwoorden) En dus "herkend worden", als een reeds eerder gehashte waarde.

Een zwakke hash zou te kraken zijn, en bij mijn weten is een hash niet kraakbaar.

Een hash is niet terug te rekenen naar het origineel, maar bij een zwakke hash is het wel mogelijk om collisions te krijgen, oftewel meerdere input-strings die dezelfde hash geven. De zwakte van MD5 en SHA1 is dan ook dat het té eenvoudig is geworden om dergelijke collisions te vinden.

Quote:
Toch heb ik in custom code voor de zorgsector er bewust voor gekozen om een variabele salt te kiezen. Bij elke user is wel een tweede var te vinden die nooit meer wijzigt, maar wel per persoon verschillend is. Denk aan usernumber, username, UTS of registration, enzovoort. Dit was de salt,

Toegegeven, het is beter dan niets, maar het is nog steeds suboptimaal. Het beste is om elke keer dat een gebruiker zijn wachtwoord wijzigt een volledig willekeurige string te genereren en die als salt te gebruiken. In de oplossing die je nu hebt gekozen wijzigt de salt niet als de gebruiker zijn wachtwoord wijzigt, en ook dat is een zwak punt.

Quote:
Wat ik overigens lastig vind, is dat het niet ondenkbaar is dat we binnen enkele jaren met een (te) grote onveiligheid in het systeem geconfronteerd worden. De kans is groot dat die uit de hoek van de steeds sneller wordende computers gaat komen, waardoor brute forcen opeens wèl regelmatig tot resultaat leidt.

Om die reden moet je bcrypt gebruiken voor het genereren van password-hashes. Bcrypt (ook wel Blowfish genoemd, maar dat is niet volledig correct) voegt naast de salt een cost-parameter toe, waarmee je ervoor zorgt dat het hashen langer duurt. Worden de computers sneller, dan verhoog je simpelweg de cost. Elke hash begint met een identifier waaraan je kunt zien met welke cost die gegenereerd is; gebruikers met een te lage cost kun je vervolgens dwingen hun wachtwoord te veranderen.

Momenteel gebruik ik een cost van 14; bcrypt gebruikt dan 2^14 expansierondes, wat op mijn server ongeveer een seconde duurt. Voor het checken van een wachtwoord vind ik dat acceptabel.
 
Ward van der Put
Moderator

Ward van der Put

27/10/2017 18:33:37
Quote Anchor link
Willem vp op 27/10/2017 18:20:58:
Momenteel gebruik ik een cost van 14; bcrypt gebruikt dan 2^14 expansierondes, wat op mijn server ongeveer een seconde duurt. Voor het checken van een wachtwoord vind ik dat acceptabel.

Willem, hoe ga je dan om met een aanvullende vereiste: als de gebruiker het wachtwoord wijzigt (per 90 dagen bijvoorbeeld), mag het nieuwe wachtwoord niet gelijk zijn aan een eerder gebruikt wachtwoord.

Bij een hoge work factor / cost is dat een bijna onoplosbaar probleem: je moet namelijk de hash berekenen van het huidige wachtwoord, van het nieuwe wachtwoord én van alle vorige wachtwoorden. De serverbelasting daarvan is hoog, heel hoog.

Wij hebben het opgelost door steekproefsgewijs, in leeglooptijd als een serverfarm nauwelijks belast is, de nieuwe wachtwoorden te controleren. Dat is een werkbare situatie voor adminaccounts, maar ik moet er niet aan denken dit op grotere schaal in te zetten voor reguliere gebruikersaccounts.

Hoe zou jij dit oplossen?
 
Willem vp

Willem vp

27/10/2017 18:39:24
Quote Anchor link
Ward van der Put op 27/10/2017 18:33:37:
Willem, hoe ga je dan om met een aanvullende vereiste: als de gebruiker het wachtwoord wijzigt (per 90 dagen bijvoorbeeld), mag het nieuwe wachtwoord niet gelijk zijn aan een eerder gebruikt wachtwoord.

Hoe zou jij dit oplossen?

Niet, want ik vind dat een belachelijke vereiste.

Maar het is volgens mij wel oplosbaar. Bij het wijzigen van een wachtwoord moet je meestal ook je oude wachtwoord opgeven. Dat oude wachtwoord zou je met een simpele SHA-512 of zo kunnen hashen en opslaan in de tabel met niet meer toegestane wachtwoorden.

Edit:

De reden dat ik het een belachelijke vereiste vind, is omdat je met dat soort maatregelen vaak het tegenovergestelde bereikt van wat je zou willen. Je wilt een veilig systeem waar niemand zomaar een wachtwoord kan kraken, maar je werkt ermee in de hand dat mensen hun wachtwoord gaan bewaren op een briefje onder hun toetsenbord, omdat ze het anders vergeten.

Ik heb ooit gewerkt bij een organisatie waar je elke 6 weken een nieuw wachtwoord moest kiezen. Daar word ik recalcitrant van. Mijn wachtwoord veranderde van Welkom01 naar Welkom02 naar Welkom03, etc. En dat alles in het kader van veiligheid. :-/
Gewijzigd op 27/10/2017 18:47:12 door Willem vp
 
Ward van der Put
Moderator

Ward van der Put

27/10/2017 19:10:08
Quote Anchor link
Willem vp op 27/10/2017 18:39:24:
De reden dat ik het een belachelijke vereiste vind, is omdat je met dat soort maatregelen vaak het tegenovergestelde bereikt van wat je zou willen.

Eens, maar dit is een van hogerhand opgelegde vereiste.

Op het onveiliger hashen van een onveilig verklaard wachtwoord was ik zelf nooit gekomen.
Dank!! Dat sowieso zo op de vrijdagavond!
 
Thomas van den Heuvel

Thomas van den Heuvel

27/10/2017 19:46:46
Quote Anchor link
Los hiervan, alles is een tradeoff (bijvoorbeeld veiligheid <--> gebruikersgemak).

Daarnaast, als je met veiligheid bezig bent lijkt het mij dat je met lagen moet werken, en niet met een enkele oplossing die alles wat niet goed is tegenhoudt. Ben je die barriere voorbij, dan zou dat in dat geval inhouden dat iemand vrij spel heeft?

Los van het feit hoe snel iets uitgerekend kan worden zou je bijvoorbeeld ook een restrictie op kunnen leggen hoe vaak iemand in een bepaald tijdsbestek kan inloggen? Zelfs al maak je dan gebruik van MD5 of SHA1 (misschien niet aan te raden, maar illustreert wel goed wat ik probeer te zeggen) dan wordt je login al aanzienlijk "veiliger". Al je geld op één oplossing inzetten is sowieso niet verstandig.

En elke oplossing staat of valt toch met de eindgebruiker. Je systeem kan dan nog zo'n goed loginmechanisme hebben, als iemand besluit een memo aan zijn/haar monitor te plakken, hier is geen kruid tegen gewassen.
Gewijzigd op 27/10/2017 19:50:44 door Thomas van den Heuvel
 
Willem vp

Willem vp

27/10/2017 20:27:55
Quote Anchor link
Ward van der Put op 27/10/2017 19:10:08:
Eens, maar dit is een van hogerhand opgelegde vereiste.

Tsja, hogerhand... dat bewijst maar weer eens dat you don't need a brain to be a boss.

In eerste instantie kwam het op mij over als een workaround. En inderdaad. De vereiste is dat het wachtwoord minimaal 7 alfanumerieke tekens bevat. En zelf geven ze al aan dat dat gekraakt kan worden in de tijd die nodig is om een diepvriespizza op te warmen. In dat kader vind ik het eigenlijk nog best soepel dat je zo'n wachtwoord 90 dagen mag gebruiken.

En tsja, die beperking dat je de laatste 4 wachtwoorden niet mag hergebruiken is eenvoudig te omzeilen door op 'password changing day' gewoon je wachtwoord 4x te veranderen. Dat zou je weer kunnen ondervangen door in te stellen dat je pas na drie dagen of zo je wachtwoord meer mag veranderen (de organisatie waar ik in een eerdere post over sprak hanteerde zelfs een periode van een week), maar dat lees ik niet terug in de requirements. Zou trouwens ook dom zijn, want als dan na een dag blijkt dat je nieuwe wachtwoord gecompromitteerd is, kun je het de eerste paar dagen niet eens veranderen. ;-)

Wat me een veel werkbaarder compromis zou lijken, is dat de sterkte van je wachtwoord bepaalt hoelang je dat wachtwoord mag gebruiken. Een wachtwoord van 8 tekens moet na uiterlijk een week worden veranderd, een wachtwoord van 9 letters en cijfers na 2 weken, of na 4 weken als er ook andere tekens worden gebruikt, een wachtwoord van 10 tekens na 6 maanden, etc. Op die manier moedig je mensen aan om sterkere wachtwoorden te gebruiken. Afhankelijk van de rechten die een gebruiker heeft zou je een strenger regime kunnen toepassen.
 
Remco nvt

Remco nvt

27/10/2017 22:11:22
Quote Anchor link
Ik ben zelf ook erg voorstander om naar entropy te kijken als je wachtwoorden wilt gebruiken (en natuurlijk two factor authentication)

https://github.com/dropbox/zxcvbn
 

Pagina: 1 2 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.