[PHP] Is dit veilig genoeg

Gestart doorAlexnder16 reacties161 weergaven

17 berichten · pagina 1 van 2

Alexnder

Lid · Topicstarter

Berichten
1.000
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Voor me wachtwoorden op te slaan heb ik een functie gemaakt

is dit veilig genoeg of zou het nog veiliger moeten

(Sommige variables heb ik er tussenuit gehaald wegens veiligheid

function pwsafe($variable){ 
    $bokje = sha1($variable);
    $bokje = str_replace("A", "<", $bokje);
    $bokje = str_replace("4", ">", $bokje);
    $salt = r324rtn328342y6j746h645wg4r4w54t49qs3;
    return 
                md5(
                sha1(
                md5(
                sha1(
                sha1(
                md5(
                sha1(
                $salt.md5(
                $salt.sha1(
                $salt.md5(
                sha1(
                $salt.sha1(
                $salt.sha1(
                sha1(
    md5($salt.$bokje.$salt);
}


Als dit niet veilig genoeg is hoe zou het nog veiliger kunnen?
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Wat is het praktisch nut van zovaak hem erdoorheen gooien? Als je een salt hebt + 1 keer sha dan is het al bijna praktisch onmogelijk. wink Een sha1 hash bestaat uit 40 tekens. Gooi je salt ook door de sha1 functie heen en je hebt 80 tekens. De mogelijkheid dat iemand hem met bruteforcen kraakt is dus 10 tot de macht 80. Gewoon onmogelijk wink
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Het is onveilig dat je dit hier post confused. Overigens zou hij niet werken omdat je tientallen functies gebruikt maar er maar 1 sluit. En die salt miss tussen haakjes?
0
Alexnder

Lid · Topicstarter

Berichten
1.000
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Alexnder schreef:
(Sommige variables heb ik er tussenuit gehaald wegens veiligheid
Dit is maar een klein deel ik ga het niet helemaal posten en die haakjes staan er normaal wel maar dan zijn het er een heleboel meer maar ik had geen zin ze te tellen dus staat er maar 1
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Vriendje schreef:
Het is onveilig dat je dit hier post confused. Overigens zou hij niet werken omdat je tientallen functies gebruikt maar er maar 1 sluit. En die salt miss tussen haakjes?
Tuurlijk is het niet onveilig wink Behalve dat ie nu zn salt wat moet aanpassen wink Gewoon dit gebruiken:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #007700]function[/COLOR] secureHash[COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]) {[/COLOR]
    
    [COLOR= #0000BB]$salt[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]Ploppie ^^[/COLOR][COLOR= #007700];[/COLOR]

    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/is_string"]is_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700])) {[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$salt[/COLOR][COLOR= #007700]).[/COLOR][URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]))
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];
    }

}[/COLOR]
?>
0
Alexnder

Lid · Topicstarter

Berichten
1.000
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jenner schreef:
Eerdere citaten tonen
Vriendje schreef:
Het is onveilig dat je dit hier post confused. Overigens zou hij niet werken omdat je tientallen functies gebruikt maar er maar 1 sluit. En die salt miss tussen haakjes?
Tuurlijk is het niet onveilig wink Behalve dat ie nu zn salt wat moet aanpassen wink Gewoon dit gebruiken:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #007700]function[/COLOR] secureHash[COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]) {[/COLOR]
    
    [COLOR= #0000BB]$salt[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]Ploppie ^^[/COLOR][COLOR= #007700];[/COLOR]

    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/is_string"]is_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700])) {[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$salt[/COLOR][COLOR= #007700]).[/COLOR][URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]))
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];
    }

}[/COLOR]
?>

Dat is maar 1 salt ik gebruik een stuk of 18 salts wink
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Alexnder schreef:
Eerdere citaten tonen
Jenner schreef:
Eerdere citaten tonen
Vriendje schreef:
Het is onveilig dat je dit hier post confused. Overigens zou hij niet werken omdat je tientallen functies gebruikt maar er maar 1 sluit. En die salt miss tussen haakjes?
Tuurlijk is het niet onveilig wink Behalve dat ie nu zn salt wat moet aanpassen wink Gewoon dit gebruiken:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #007700]function[/COLOR] secureHash[COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]) {[/COLOR]
    
    [COLOR= #0000BB]$salt[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]Ploppie ^^[/COLOR][COLOR= #007700];[/COLOR]

    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/is_string"]is_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700])) {[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$salt[/COLOR][COLOR= #007700]).[/COLOR][URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]))
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];
    }

}[/COLOR]
?>

Dat is maar 1 salt ik gebruik een stuk of 18 salts wink
Dat doe ik, omdat het al onmogelijk is om dit te kraken als kraker. Het maakt geen drol uit. Als je zelf je salt geheim houdt, dan is het bovenstaande script genoeg wink Salt van 40 tekens + wachtwoord van 15 tekens is 55 tekens. 90^55 = (ongeveer 90 tekens, cijfers, letters, speciale tekens) 3,04*10^107 (En dat is als de persoon weet dat je zoveel tekens hebt. Nog veel meer als hij dat niet weet)
Ik kan je vertellen dat dat een onmogelijk aantal is om te laten kraken. Zelfs met de beste computers ben je hier miljoenen jaren zoet mee.
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Als je serieus 15 salts enz wilt gaan gebruiken kan het je site wel ns vertragen ofzo. 2 X sha ofzo lijkt me ook al voldoende. 1 X zou het eigenlijk ook al moeten zijn. En denk ook eens aan de kans dat iemand je database kraakt MET als doel passwoorden van gebruikers te kraken die die heel misschien ook voor hun mail gebruiken.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Je hebt er helemaal niks aan om het zo vaak te hashen; je kunt beter elke gebruiker een unieke salt geven, daar vergroot je de veiligheid veel meer mee dan op deze manier, want nu kun je alsnog voor je hele site een rainbow table maken; als elke gebruiker een eigen salt heeft dat geen zin.
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Lennard schreef:
Je hebt er helemaal niks aan om het zo vaak te hashen; je kunt beter elke gebruiker een unieke salt geven, daar vergroot je de veiligheid veel meer mee dan op deze manier, want nu kun je alsnog voor je hele site een rainbow table maken; als elke gebruiker een eigen salt heeft dat geen zin.
Waarom doe je dit? Voor als hacker je database in komt. Maar nu kan die dan alsnog aan de salts dus confusedAlhoewel ze nu niet zo snel een programma ervoor gaan kunnen gebruiken ofzo.
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Vriendje schreef:
Eerdere citaten tonen
Lennard schreef:
Je hebt er helemaal niks aan om het zo vaak te hashen; je kunt beter elke gebruiker een unieke salt geven, daar vergroot je de veiligheid veel meer mee dan op deze manier, want nu kun je alsnog voor je hele site een rainbow table maken; als elke gebruiker een eigen salt heeft dat geen zin.
Waarom doe je dit? Voor als hacker je database in komt. Maar nu kan die dan alsnog aan de salts dus confusedAlhoewel ze nu niet zo snel een programma ervoor gaan kunnen gebruiken ofzo.
Als je voor iedere gebruiker een andere salt krijgt dan is het nutteloos voor een hacker om een rainbow table te maken, want dan zou hij per gebruiker er eentje moeten maken. Anders kun je gewoon 1 tabel maken en dan wachten tot iemand een slecht wachtwoord heeft en die overeenkomt met de hash die je hebt geproduceerd door dezelfde functie miljarden keren een random code in te laten voeren.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Jenner schreef:
Eerdere citaten tonen
Vriendje schreef:
Eerdere citaten tonen
Lennard schreef:
Je hebt er helemaal niks aan om het zo vaak te hashen; je kunt beter elke gebruiker een unieke salt geven, daar vergroot je de veiligheid veel meer mee dan op deze manier, want nu kun je alsnog voor je hele site een rainbow table maken; als elke gebruiker een eigen salt heeft dat geen zin.
Waarom doe je dit? Voor als hacker je database in komt. Maar nu kan die dan alsnog aan de salts dus confusedAlhoewel ze nu niet zo snel een programma ervoor gaan kunnen gebruiken ofzo.
Als je voor iedere gebruiker een andere salt krijgt dan is het nutteloos voor een hacker om een rainbow table te maken, want dan zou hij per gebruiker er eentje moeten maken. Anders kun je gewoon 1 tabel maken en dan wachten tot iemand een slecht wachtwoord heeft en die overeenkomt met de hash die je hebt geproduceerd door dezelfde functie miljarden keren een random code in te laten voeren.
Precies ja.
En neem dan ook nog een hash-functie als bcrypt die er relatief lang (0,2 sec ofzo, kun je evt langer maken als je dat wil) over doet om een hash te maken, en dan ben je al tot 2 JAAR (!!!) bezig om een simpel wachtwoord van 1 tot 6 kleine letters (dus a tot z, en niet A-Z of 0-9 ofzo) te acherhalen.

Jouw voorbeeld met die shas en md5s doet gemiddeld 0,000017 seconden over het maken van een hash, waardoor je ineens nog maar minder dan 1,5 uur (!!) bezig bent om het zelfde wachtwoord te kraken.

En bovendien kun je bij jouw manier eenvoudig eerst alle meest voorkomende mogelijkheden proberen (dus a-z, A-Z, 0-9 van 3 tot 15 karakters) omdat het hashen toch veel sneller gaat. Als je dat gedaan hebt kun je eenvoudig kijken of de gehashte wachtwoorden van je leden in de lijst met hashes voorkomt die je zojuist gemaakt hebt; zo ja dan heb je het wachtwoord.
Bij de methode die ik beschreef kan dat niet en moet je echt per gebruiker zijn wachtwoord proberen te vinden; zelfs als iemand anders precies hetzelfde wachtwoord heeft.
0
Alexnder

Lid · Topicstarter

Berichten
1.000
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maar zoals ik het bij mij doe
via str_replace (de hash weer aanpassen dan kan die ook bijna niet meer gevonden worden toch?)
dan moet je eerst de str_replace weten en die staan in een php bestand alleen te vinden dus via host dus dat is opzich ook wel veilig?
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Alexnder schreef:
Maar zoals ik het bij mij doe
via str_replace (de hash weer aanpassen dan kan die ook bijna niet meer gevonden worden toch?)
dan moet je eerst de str_replace weten en die staan in een php bestand alleen te vinden dus via host dus dat is opzich ook wel veilig?
Ze moeten ook eerst alle andere 100 functies weten die je erover heen hebt gegooid.
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Vriendje schreef:
Eerdere citaten tonen
Alexnder schreef:
Maar zoals ik het bij mij doe
via str_replace (de hash weer aanpassen dan kan die ook bijna niet meer gevonden worden toch?)
dan moet je eerst de str_replace weten en die staan in een php bestand alleen te vinden dus via host dus dat is opzich ook wel veilig?

Ze moeten ook eerst alle andere 100 functies weten die je erover heen hebt gegooid.
Ik weet niet in wat voor website je hem gooit, maar wij weten hem nu biggrinp Als je gewoon de hash verborgen houdt dan is het net zo moeilijk voor een hacker smile Zelfs moeilijker.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren