Backend les 07 Security In deze les

Opleiding Web Developer 2014-2015
10/02/15 Backend les 07 Security Dinsdag 10/02/2014 1 In deze les • Intro cryptografie
– Symmetrische sleutels
– Publiek/private sleutels
– Hashing
• Formulier met INSERT in database
1 © Vincent De Munck
Opleiding Web Developer 2014-2015
10/02/15 Symmetrische sleutels •  Sleutel: willekeurige, geheime tekst •  Met deze sleutel kan je data onleesbaar en terug leesbaar maken •  In MySQL: –  AES_ENCRYPT('onze tekst', 'sleutel') –  AES_DECRYPY('&%kbhui52'@', 'sleutel'); Publieke/private sleutels •  Sleutelparen: –  Publieke sleutel: wordt gebruikt om tekst te encrypteren (onleesbaar te maken) –  Private sleutel: nodig om de onleesbare tekst te decrypteren (terug leesbaar te maken) •  Iedereen mag de publieke sleutel weten: zo kunnen zij berichten onleesbaar maken en naar de houder van de private sleutel sturen, wetende dat enkel hij/zij deze kan ontcijferen. à dit vormt de basis van beveiligde verbindingen, zoals SSL/TLS 2 © Vincent De Munck
Opleiding Web Developer 2014-2015
10/02/15 Hashes •  Van elk stuk tekst dat minimum 1 teken lang is, kan een hash berekend worden. •  Voorbeeld: syntra à 61a9d18464940e4bef4085782992ccc2 •  Deze hash heec aldjd dezelfde lengte, en verandert totaal zodra er iets aan de brontekst verandert: syntA à 19edbdf3ea819358495a1fe06bd4addd •  Dit werkt slechts in 1 richdng: wie een hash heec kan de oorspronkelijke tekst niet weten, tenzij door alle combinades tekst te hashen, tot het resultaat overeenkomt Hashes en paswoorden •  Hashes zijn ideaal als alternadef om paswoorden op te slaan: –  Wanneer een gebruiker zijn paswoord instelt, berekenen we de hash en slaan die op. Het echte paswoord houden we niet bij. –  Wanneer de gebruiker aanmeldt, vergelijken we de hash van het opgegeven paswoord met de hash in de database. Indien deze overeenkomen, gaan we ervan uit dat het paswoord idendek was. à Voordeel: indien onze database uitlekt, blijven de paswoorden van onze gebruikers veilig. De hashes zijn immers nufeloos om in te loggen op andere sites, waar de gebruiker hetzelfde paswoord gebruikte. 3 © Vincent De Munck
Opleiding Web Developer 2014-2015
10/02/15 Hashes en salts •  In plaats van het paswoord te hashen, hashen we de combinade van het paswoord en een eigen gekozen stuk tekst, de salt. Bijvoorbeeld: md5($paswoord . $random_tekst) •  De bibliotheek PasswordHash.php (les backend 11) bevat een veilig algoritme, waarbij de salt mee in het resultaat zit. –  Meer uitleg op hfps://crackstadon.net/hashing-­‐security.htm 4 © Vincent De Munck
Opleiding Web Developer 2014-2015
10/02/15 Oefeningen: toppings, categorieen en klanten toevoegen AAN DE SLAG! 5 © Vincent De Munck