Stap 1: Zouten en Hashing
Laat snel onderbreken om uit te leggen waarom dit systeem werkt als de website u inloggen in doet dingen recht. Misschien weet u al deze spullen. Zo ja, voel je vrij om deze stap overslaan. Bent u nog steeds verward op de titel van deze stap, zal je jezelf een groot plezier als u via deze stap lezen en een fundamenteel begrip krijgt van wat is achter de schermen van een website gaande er.
Wanneer u een wachtwoord met een website maakt, moet het niet worden opgeslagen als tekst zonder opmaak. Er was een redelijk betrouwbare website die een paar jaar terug kreeg gehackt. De hackers kreeg alle wachtwoorden die mensen gebruikt om te loggen op de site, omdat de wachtwoorden werden opgeslagen als tekst zonder opmaak.
Hoe moeten ze de wachtwoorden ze opslaan? Ze moeten worden gezouten en hashed. Laten we uitleggen hash eerste.
Hashing
Dit is een numerieke bewerking die wordt toegepast op een wachtwoord. Het blijkt een tekst-wachtwoord in een reeks cijfers.
Bijvoorbeeld: MyVoiceIsMyPassword
Onder een hash genoemd "md5" Becomes: 7be7c47db5818d392367c183e6f4a8f3
Zolang ik al mijn inkomende wachtwoorden naar een md5-hash converteren en slaan alleen de hash, wordt het veel moeilijker voor de bad guys om de ze bent stelen wachtwoorden te gebruiken. Als u waren om te breken in mijn website nu en kijken dat hash, is het moeilijk om te zetten naar de oorspronkelijke tekst.
Maar elke keer als ik log in en typt u "MyVoiceIsMyPassword" het elke keer wordt omgevormd tot "7be7c47db5818d392367c183e6f4a8f3". Dat hash verandert niet. Dus wanneer de computer gaat en controleert of u het juiste wachtwoord hebt ingevoerd, is het mijn wachtwoord kunt omzetten in een hash en het komt overeen met de hash in de database opgeslagen.
Kunt u vertellen als een website is het hash van uw wachtwoord? Nope. Helaas u kunt niet, maar het is belangrijk om te begrijpen waarom dit wachtwoordsysteem werkt.
Zouten
Naast het hashing binnenkomende wachtwoorden, moeten ze ook worden gezouten. Een zout is een tekenreeks die wordt toegevoegd aan alle binnenkomende wachtwoorden. Als zeggen Instructables besloten om een zout van "1n57ruc7ab135" (die een niet erg goed idee zou zijn, het moet meer willekeurige) Dit is hoe het eruitziet.
Bijvoorbeeld: MyVoiceIsMyPassword met een ragout van 7be7c47db5818d392367c183e6f4a8f3
Wanneer gezouten wordt: 1n57ruc7ab135MyVoiceIsMyPassword met een ragout van 731408efd06313fe205ee18fe253a5ee
De ragout zijn niet hetzelfde. Maar waarom is dat belangrijk?!? Je zou kunnen vragen, en is het een goede vraag. Het is omdat daar elke website heeft een unieke zout, het buitengewoon moeilijk via een hash gestolen van één website toegang krijgen tot een hash op een andere site geworden.
Kunt u vertellen als een website is het zouten van hun wachtwoorden? Nope. Dit is weer net belangrijk voor het begrijpen van het systeem wordt gepresenteerd.