Wat te doen, wanneer je je WordPress wachtwoord bent vergeten?
Ben je je WordPress wachtwoord vergeten? In eerste instantie is de oplossing hiervoor natuurlijk kinderlijk eenvoudig. Want het enige wat je hoeft te doen is naar de inlogpagina te gaan en aan te klikken ‘WordPress wachtwoord vergeten’ en je wordt gevraagd om je inlognaam of email adres en je krijgt het opnieuw.
Tenminste. Als alles goed gaat. Omdat de ‘Wachtwoord Vergeten’ emails van WordPress nogal veel over het Internet verstuurd worden, kan het zo zijn, dat af en toe een spam filter denkt dat het spam is, en daardoor het bericht weigert of in de ‘spam’ folder plaatst.
Maar ook hier is er nog steeds geen mens overboord. Want ook al krijg je dit bericht niet, je kan altijd een ‘contact formulier’ of een direct email adres gebruiken om je probleem te melden.
Some pigs are more equal
Tenzij jij natuurlijk de beheerder van de site bent. Want als je niet in kan loggen en ook geen reset email ontvangt, dan heb je werkelijk een probleem.
Met een beetje geluk ben je niet de enige beheerder van de website, maar in veel gevallen zal dit wel het geval zijn.
Wat moet je doen, wanneer jij de enige beheerder bent en je jouw WordPress wachtwoord vergeten bent?
En wanneer bovendien de email niet aan lijkt te komen?
Gelukkig heeft WordPress daarvoor ook een ingebouwde oplossing. Maar die is alles behalve voor de hand liggend.
Dus lees verder…
Delven in de database!
Zonder wachtwoord kan je WordPress niet in. Er is dus geen mogelijkheid om dit probleem ‘in WordPress’ op te lossen. Maar om te begrijpen hoe je het wel op kan lossen, is het goed om iets meer te begrijpen over het toegangssysteem van WordPress.
Inloggen
Wanneer jij inlogt, dan geef je een gebruikersnaam en een wachtwoord op. Wat WordPress vervolgens doet is de door jou opgegeven gegevens vergelijken met dezelfde gegevens die zijn opgeslagen in de database.
Maar omdat het nogal onveilig is om een wachtwoord op te slaan, is daar in een grijs verleden een andere methode voor bedacht. MD5
MD5
MD5 is oorspronkelijk een soort ‘digitale handtekening’ om te controleren of de inhoud van een bericht of bestand niet stiekem is veranderd. Wat er precies gebeurt is niet echt interessant, maar MD5 is een serie van 32 tekens tussen 0-9 en A-F. Hoofd- en kleine letters maken hier niets uit.
Om even een super simple voorbeeld te bedenken. Stel, ik verstuur een bericht via het Internet. Maar ik vrees dat ergens in het traject iemand het bericht aan zou kunnen passen. Om dat te voorkomen, geef ik iedere letter een waarde. 1 voor A, 2 voor B etc.
Wanneer ik nu al die getallen bij elkaar optel en separaat de ontvanger laat weten, dat de totale optelsom van alle letter waarden 132786 is, kan de ontvanger eenvoudig controleren, of er iets veranderd zou zijn in mijn bericht.
Natuurlijk zijn er meerdere berichten denkbaar die dezelfde optelsom hebben.
Maar de kans dat bij een veranderd bericht deze optelsom nog steeds hetzelfde zou zijn en het bericht nog steeds logisch lijkt is minimaal.
MD5 werkt op een enigszins zelfde wijze als het bovenstaande voorbeeld, maar is nog veel geavanceerder en de kans dat twee berichten dezelfde ‘digest‘ (zoals het bij MD5 genoemd wordt) hebben en als logische tekst overkomen is vrijwel nihil.
MD5 voor wachtwoord opslag
Zo’n vijftien jaar geleden was het heel gebruikelijk om je wachtwoorden ‘veilig’ op te slaan door een MD5 digest te gebruiken. Dat is namelijk heel makkelijk, omdat PHP – de programmeertaal die toen nog voor de meeste applicaties op het Internet werd gebruikt- hier standaard functies voor heeft.
De MD5 voor ‘Wilko van der Ploeg’ is c361aa91569938b87bddf2fb68c99014
Ik heb het niet gecontroleerd, maar het is niet helemaal ondenkbaar dat de MD5 voor de Statenvertaling van de bijbel of het filmscript van Chinatown ook c361aa91569938b87bddf2fb68c99014 is.
De MD5 voor ‘Wilko van der Ploeg’ is dus niet uniek, maar de kans, dat twee wachtwoorden dezelfde MD5 opleveren is minimaal.
Minimaal, maar niet uitgesloten. Met 32 tekens met ieder 16 mogelijkheden zijn er ongeveer 3,4 x 1038 mogelijkheden.
Nu heeft een toetsenbord 87 verschillende tekens (letters, cijfers en leestekens). Hier laten we letters met diakritische tekens even buiten beschouwing.
Met een wachtwoord van 20 tekens heb ik dus 6,2 x 1038 mogelijkheden.
Kortom, de kans, dat er bij een wachtwoord van 20 tekens of meer meerdere wachtwoorden dezelfde MD5 digest delen is reëel. Maar is het ook een probleem?
Wat doet een hacker met een password file?
Stel. Een hacker heeft toegang gekregen tot een kopie van de gebruikerstabellen in een WordPress site. Hij kan ze lezen, niet aanpassen. Omdat de wachtwoorden als ‘onleesbare’ MD5 digests zijn opgeslagen kan hij daar weinig mee. Want op de site zelf zal hij nog steeds het niet-gecodeerde wachtwoord op moeten geven.
Wat hij echter zou kunnen doen is een bestand maken met passwords die een specifieke MD5 genereren. Het hoeft niet jouw password te zijn, zolang het password maar de MD5 genereert, die overeenkomt met jouw password.
Vijftien jaar geleden was dat ondenkbaar, dat een hacker dat zou doen. Met een krachtige consumenten PC zou hem dat 32 jaar kosten.
Maar in 15 jaar zijn de computers een stuk sneller geworden en dezelfde MD5 lijst kan je nu in enkele uren laten genereren.
MD5 was nooit bedoeld om wachtwoorden ‘veilig op te slaan’. Het was bedoeld als ‘checksum’ voor grote bestanden. En als zodanig is het nog steeds veilig, omdat de kans dat twee grote bestanden ‘betekenis’ hebben en bovendien dezelfde checksum hebben, nihil is. Wachtwoorden hoeven geen betekenis te hebben. 4%sGtp12Di& is even geldig als wachtwoord als mijngeheim.
WordPress en MD5
Zoals zoveel andere systemen uit die tijd heeft WordPress oorspronkelijk MD5 gebruikt om wachtwoorden ‘veilig’ op te slaan. Maar alweer een aardig aantal jaartjes terug, in één van de 3.x versies, besloten de makers dat MD5 toch wel achterhaald was en hebben toen een veiligere methode geïmplementeerd.
Eén belangrijk verschil met de ‘oude’ opslag, is dat de manier van coderen van het wachtwoord afhankelijk is gemaakt van een speciaal uniek voor jouw site gegenereerde sleutel. En die sleutel is niet opgeslagen in de database, maar in het wp-config.php bestand.
Kortom, met de inhoud van de database kan met niets. Het is godsonmogelijk om op basis van de waarde van het ‘password’ veld in de database te herleiden wat het oorspronkelijke password was.
Shut up Wilko! Je vertelde mij juist wat ik niet wil horen!
Ok. Dus jij bent je WordPress wachtwoord vergeten en ik vertel je, dat het godsonmogelijk is om dit nog te achterhalen. Ik kan mij voorstellen, dat ik je niet echt blij heb gemaakt. Natuurlijk: Je WordPress wachtwoord vergeten is helemaal jouw fout (je zou het toch minimaal ergens op papier op een superveilige plaats kunnen verbergen), maar ik kan mij voorstellen, dat mijn verhaal over ‘hoe veilig WordPress is’ je niet echt doet springen van blijdschap.
Gelukkig hebben de makers van WordPress nog een achterdeurtje voor jou open gelaten.
Randvoorwaarde is natuurlijk wel dat je toegang hebt tot de database. Heb je dat niet, of weet je niet hoe je daar moet komen, neem dan contact op met de helpdesk van je hoster.
Wachtwoord veranderen met PHPMyAdmin
Ben je je WordPress Wachtwoord vergeten en wil je het resetten, dan is dit met PHPMyAdmin wel het makkelijkst. PHPMyAdmin is een tool waar je het liefst altijd van af blijft wanneer je niet weet wat je moet doen. Directe toegang tot de WordPress Database is namelijk absoluut niet aan te bevelen!
Maar wanneer je de instructies hieronder volgt, dan kan je jezelf weer toegang tot WordPress geven, zonder je database al te zeer te beschadigen.
De users tabel
Wanneer je in PHPMyAdmin zit, dan moet je allereerst naar de ‘users’ tabel.
Deels uit praktische, deels uit veiligheidsoverwegingen hebben alle tabellen in WordPress een zogenaamde ‘prefix’. Deze prefix heb je bij installatie ingesteld, of -indien je een ‘one click install’ hebt uitgevoerd, is deze voor jou ingesteld.
De standaard naam voor deze tabel is wp_users. Maar in jouw geval kan het net zo goed ‘123fprt9_users’ of ‘my_users’ zijn.
Je klikt echter in PHPMyAdmin op jouw users tabel. Wat de naam ook mag zijn.
PHPMyAdmin laat nu een lijst gebruikers zien. Je klikt voor de juiste gebruikers op het woord ‘wijzigen’ en je krijgt vervolgens een lijst met alle velden voor die gebruiker te zien.
We gaan nu naar het veld user_pass en vullen daar het nieuwe wachtwoord in. In de keuzelijst voor dat veld kiezen we voor MD5. Hierdoor vertellen we de database, dat we op de waarde voor het veld user_pass de functie MD5 uit willen voeren.
Tenslotte gaan we helemaal naar de onderkant van de pagina en klikken daar op de knop ‘starten’ om de wijzigingen ook daadwerkelijk op te slaan.
Waarom MD5?
Om ‘oude’ wachtwoorden te kunnen lezen, kan WordPress nog steeds MD5 wachtwoorden lezen, WordPress slaat de wachtwoorden alleen niet meer zelf op als MD5. Dus wanneer je dit hebt gedaan en je probeert in te loggen, dan zal het gewoon werken.
Denk er wel aan, dat het MD5 wachtwoord minder veilig is dan het ‘nieuwe gecodeerde wachtwoord’. Het is dus wel verstandig om direct na het inloggen in WordPress nog een keer je wachtwoord te wijzigen, maar nu gewoon via de WordPress pagina’s.
Meer weten?
Door regelmatig de blog van WordXPression te lezen blijf je op de hoogte over van alles rond WordPress, e-Commerce, e-Learning en marketing. Wil je op de hoogte blijven, dan kan je je inschrijven voor de nieuwsbrief of je abonneren op de browserberichten. Dat laatste kan je doen door op de bel linksonder de pagina te klikken en de instructies te volgen.